import { StaticPolicyDefinitionProps } from './StaticPolicyDefinitionProps';
import { TemplateLinkedPolicyDefinitionProps } from './TemplateLinkedPolicyDefinitionProps';
/**
  A structure that defines a Cedar policy. It includes the policy type, a description, and a policy body. This is a top level data type used to create a policy.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-policy-policydefinition.html">the AWS Docs</a>
*/
export interface PolicyDefinitionProps {
    /** <code>Static</code>  <a name="cfn-verifiedpermissions-policy-policydefinition-static"></a>
  A structure that describes a static policy. An static policy doesn’t use a template or allow placeholders for entities.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    static?: StaticPolicyDefinitionProps;
    /** <code>TemplateLinked</code>  <a name="cfn-verifiedpermissions-policy-policydefinition-templatelinked"></a>
  A structure that describes a policy that was instantiated from a template. The template can specify placeholders for <code>principal</code> and <code>resource</code>. When you use <a href="https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicy.html">CreatePolicy</a> to create a policy from a template, you specify the exact principal and resource to use for the instantiated policy.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    templateLinked?: TemplateLinkedPolicyDefinitionProps;
}
