import { Value } from '../../cloudformation/Value';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type PolicyAttributes = {
    Id: Attribute<string>;
    Arn: Attribute<string>;
    AwsManaged: Attribute<boolean>;
};
export type Policy = AwsResource<'AWS::Organizations::Policy', PolicyProperties, PolicyAttributes>;
/**
  Creates a policy of a specified type that you can attach to a root, an organizational unit (OU), or an individual AWS account.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-policy.html">the AWS Docs</a>
*/
export declare function policy(policyProps: PolicyProperties): Policy;
/**
  Creates a policy of a specified type that you can attach to a root, an organizational unit (OU), or an individual AWS account.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-organizations-policy.html">the AWS Docs</a>
*/
export interface PolicyProperties {
    /** <code>Type</code>  <a name="cfn-organizations-policy-type"></a>
  The type of policy to create.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>AISERVICES_OPT_OUT_POLICY | BACKUP_POLICY | SERVICE_CONTROL_POLICY | TAG_POLICY</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    type: Value<'AISERVICES_OPT_OUT_POLICY' | 'BACKUP_POLICY' | 'SERVICE_CONTROL_POLICY' | 'TAG_POLICY'>;
    /** <p> */
    targetIds?: Value<Value<string>[]>;
    /** <code>Description</code>  <a name="cfn-organizations-policy-description"></a>
  Human readable description of the policy.<br />
  
  Required: No<br />
  
  Maximum: <code>512</code><br />
  
  Pattern: <code>[\s\S]*</code><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> */
    description?: Value<string>;
    /** <p> */
    content: Value<any>;
    /** <code>Tags</code>  <a name="cfn-organizations-policy-tags"></a>
  A list of tags that you want to attach to the newly created policy. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can’t set it to <code>null</code>. For more information about tagging, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging.html">Tagging AWS Organizations resources</a> in the AWS Organizations User Guide.<br />
  If any one of the tags is not valid or if you exceed the allowed number of tags for a policy, then the entire request fails and the policy is not created.
  
  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> */
    tags?: Tag[];
    /** <code>Name</code>  <a name="cfn-organizations-policy-name"></a>
  Name of the policy.<br />
  The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of any of the characters in the ASCII character range.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>128</code><br />
  
  Pattern: <code>[\s\S]*</code><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> */
    name: Value<string>;
}
