import { Value } from '../../cloudformation/Value';
import { ChefConfigurationProps } from './stack/ChefConfigurationProps';
import { StackConfigurationManagerProps } from './stack/StackConfigurationManagerProps';
import { SourceProps } from './stack/SourceProps';
import { ElasticIpProps } from './stack/ElasticIpProps';
import { RdsDbInstanceProps } from './stack/RdsDbInstanceProps';
import { Tag } from '../Tag';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  Creates a new stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-edit.html">Create a New Stack</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html">the AWS Docs</a>
*/
export type Stack = AwsResource<'AWS::OpsWorks::Stack', StackProperties>;
export declare function stack(stackProps: StackProperties): Stack;
/**
  Creates a new stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-edit.html">Create a New Stack</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-stack.html">the AWS Docs</a>
*/
export interface StackProperties {
    /** <p> */
    agentVersion?: Value<string>;
    /** <code>Attributes</code>  <a name="cfn-opsworks-stack-attributes"></a>
  One or more user-defined key-value pairs to be added to the stack attributes.<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> */
    attributes?: Value<{
        [key: string]: Value<string>;
    }>;
    /** <code>ChefConfiguration</code>  <a name="cfn-opsworks-stack-chefconfiguration"></a>
  A <code>ChefConfiguration</code> object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.<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> */
    chefConfiguration?: ChefConfigurationProps;
    /** <code>CloneAppIds</code>  <a name="cfn-opsworks-stack-cloneappids"></a>
  If you’re cloning an AWS OpsWorks stack, a list of AWS OpsWorks application stack IDs from the source stack to include in the cloned stack.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    cloneAppIds?: Value<Value<string>[]>;
    /** <code>ClonePermissions</code>  <a name="cfn-opsworks-stack-clonepermissions"></a>
  If you’re cloning an AWS OpsWorks stack, indicates whether to clone the source stack’s permissions.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    clonePermissions?: Value<boolean>;
    /** <code>ConfigurationManager</code>  <a name="cfn-opsworks-stack-configmanager"></a>
  The configuration manager. When you create a stack we recommend that you use the configuration manager to specify the Chef version: 12, 11.10, or 11.4 for Linux stacks, or 12.2 for Windows stacks. The default value for Linux stacks is currently 12.<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> */
    configurationManager?: StackConfigurationManagerProps;
    /** <code>CustomCookbooksSource</code>  <a name="cfn-opsworks-stack-custcookbooksource"></a>
  Contains the information required to retrieve an app or cookbook from a repository. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html">Adding Apps</a> or <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html">Cookbooks and Recipes</a>.<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> */
    customCookbooksSource?: SourceProps;
    /** <code>CustomJson</code>  <a name="cfn-opsworks-stack-custjson"></a>
  A string that contains user-defined, custom JSON. It can be used to override the corresponding default stack configuration attribute values or to pass data to recipes. The string should be in the following format:<br />
  <code>&quot;{\&quot;key1\&quot;: \&quot;value1\&quot;, \&quot;key2\&quot;: \&quot;value2\&quot;,...}&quot;</code><br />
  For more information about custom JSON, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html">Use Custom JSON to Modify the Stack Configuration Attributes</a>.<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> */
    customJson?: Value<any>;
    /** <code>DefaultAvailabilityZone</code>  <a name="cfn-opsworks-stack-defaultaz"></a>
  The stack’s default Availability Zone, which must be in the specified region. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>. If you also specify a value for <code>DefaultSubnetId</code>, the subnet must be in the same zone. For more information, see the <code>VpcId</code> parameter description.<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> */
    defaultAvailabilityZone?: Value<string>;
    /** <code>DefaultInstanceProfileArn</code>  <a name="cfn-opsworks-stack-defaultinstanceprof"></a>
  The Amazon Resource Name (ARN) of an IAM profile that is the default profile for all of the stack’s EC2 instances. For more information about IAM ARNs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.<br />
  
  Required: Yes<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> */
    defaultInstanceProfileArn: Value<string>;
    /** <p> */
    defaultOs?: Value<string>;
    /** <code>DefaultRootDeviceType</code>  <a name="cfn-opsworks-stack-defaultrootdevicetype"></a>
  The default root device type. This value is the default for all instances in the stack, but you can override it when you create an instance. The default option is <code>instance-store</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device">Storage for the Root Device</a>.<br />
  
  Required: No<br />
  
  Allowed values: <code>ebs | instance-store</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> */
    defaultRootDeviceType?: Value<'ebs' | 'instance-store'>;
    /** <code>DefaultSshKeyName</code>  <a name="cfn-opsworks-stack-defaultsshkeyname"></a>
  A default Amazon EC2 key pair name. The default value is none. If you specify a key pair name, AWS OpsWorks installs the public key on the instance and you can use the private key with an SSH client to log in to the instance. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html"> Using SSH to Communicate with an Instance</a> and <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html"> Managing SSH Access</a>. You can override this setting by specifying a different key pair, or no key pair, when you <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html"> create an instance</a>.<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> */
    defaultSshKeyName?: Value<string>;
    /** <code>DefaultSubnetId</code>  <a name="defaultsubnet"></a>
  The stack’s default subnet ID. All instances are launched into this subnet unless you specify another subnet ID when you create the instance. This parameter is required if you specify a value for the <code>VpcId</code> parameter. If you also specify a value for <code>DefaultAvailabilityZone</code>, the subnet must be in that zone.<br />
  
  Required: Conditional<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> */
    defaultSubnetId?: Value<string>;
    /** <code>EcsClusterArn</code>  <a name="cfn-opsworks-stack-ecsclusterarn"></a>
  The Amazon Resource Name (ARN) of the Amazon Elastic Container Service (Amazon ECS) cluster to register with the AWS OpsWorks stack.<br />
  If you specify a cluster that’s registered with another AWS OpsWorks stack, AWS CloudFormation deregisters the existing association before registering the cluster.
  
  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> */
    ecsClusterArn?: Value<string>;
    /** <code>ElasticIps</code>  <a name="cfn-opsworks-stack-elasticips"></a>
  A list of Elastic IP addresses to register with the AWS OpsWorks stack.<br />
  If you specify an IP address that’s registered with another AWS OpsWorks stack, AWS CloudFormation deregisters the existing association before registering the IP address.
  
  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> */
    elasticIps?: ElasticIpProps[];
    /** <p> */
    hostnameTheme?: Value<string>;
    /** <code>Name</code>  <a name="cfn-opsworks-stack-name"></a>
  The stack name. Stack names can be a maximum of 64 characters.<br />
  
  Required: Yes<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>;
    /** <code>RdsDbInstances</code>  <a name="cfn-opsworks-stack-rdsdbinstances"></a>
  The Amazon Relational Database Service (Amazon RDS) database instance to register with the AWS OpsWorks stack.<br />
  If you specify a database instance that’s registered with another AWS OpsWorks stack, AWS CloudFormation deregisters the existing association before registering the database instance.
  
  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> */
    rdsDbInstances?: RdsDbInstanceProps[];
    /** <code>ServiceRoleArn</code>  <a name="cfn-opsworks-stack-servicerolearn"></a>
  The stack’s IAM role, which allows AWS OpsWorks Stacks to work with AWS resources on your behalf. You must set this parameter to the Amazon Resource Name (ARN) for an existing IAM role. For more information about IAM ARNs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    serviceRoleArn: Value<string>;
    /** <code>SourceStackId</code>  <a name="cfn-opsworks-stack-sourcestackid"></a>
  If you’re cloning an AWS OpsWorks stack, the stack ID of the source AWS OpsWorks stack to clone.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    sourceStackId?: Value<string>;
    /** <p> */
    tags?: Tag[];
    /** <code>UseCustomCookbooks</code>  <a name="usecustcookbooks"></a>
  Whether the stack uses custom cookbooks.<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> */
    useCustomCookbooks?: Value<boolean>;
    /** <p> */
    useOpsworksSecurityGroups?: Value<boolean>;
    /** <p> */
    vpcId?: Value<string>;
}
