import { LoggingProps } from './infrastructureconfiguration/LoggingProps';
import { Value } from '../../cloudformation/Value';
import { InstanceMetadataOptionsProps } from './infrastructureconfiguration/InstanceMetadataOptionsProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type InfrastructureConfigurationAttributes = {
    Arn: Attribute<string>;
    Name: Attribute<string>;
};
export type InfrastructureConfiguration = AwsResource<'AWS::ImageBuilder::InfrastructureConfiguration', InfrastructureConfigurationProperties, InfrastructureConfigurationAttributes>;
/**
  The infrastructure configuration allows you to specify the infrastructure within which to build and test your image. In the infrastructure configuration, you can specify instance types, subnets, and security groups to associate with your instance. You can also associate an Amazon EC2 key pair with the instance used to build your image. This allows you to log on to your instance to troubleshoot if your build fails and you set terminateInstanceOnFailure to false.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html">the AWS Docs</a>
*/
export declare function infrastructureConfiguration(infrastructureConfigurationProps: InfrastructureConfigurationProperties): InfrastructureConfiguration;
/**
  The infrastructure configuration allows you to specify the infrastructure within which to build and test your image. In the infrastructure configuration, you can specify instance types, subnets, and security groups to associate with your instance. You can also associate an Amazon EC2 key pair with the instance used to build your image. This allows you to log on to your instance to troubleshoot if your build fails and you set terminateInstanceOnFailure to false.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html">the AWS Docs</a>
*/
export interface InfrastructureConfigurationProperties {
    /** <code>Logging</code>  <a name="cfn-imagebuilder-infrastructureconfiguration-logging"></a>
  The logging configuration defines where Image Builder uploads your logs.<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> */
    logging?: LoggingProps;
    /** <code>KeyPair</code>  <a name="cfn-imagebuilder-infrastructureconfiguration-keypair"></a>
  The Amazon EC2 key pair of the infrastructure configuration.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>1024</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> */
    keyPair?: Value<string>;
    /** <code>Description</code>  <a name="cfn-imagebuilder-infrastructureconfiguration-description"></a>
  The description of the infrastructure configuration.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>1024</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>;
    /** <code>InstanceProfileName</code>  <a name="cfn-imagebuilder-infrastructureconfiguration-instanceprofilename"></a>
  The instance profile of the infrastructure configuration.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>256</code><br />
  
  Pattern: <code>^[\w+=,.@-]+$</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> */
    instanceProfileName: Value<string>;
    /** <code>ResourceTags</code>  <a name="cfn-imagebuilder-infrastructureconfiguration-resourcetags"></a>
  The tags attached to the resource created by Image Builder.<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> */
    resourceTags?: Value<{
        [key: string]: Value<string>;
    }>;
    /** <code>TerminateInstanceOnFailure</code>  <a name="cfn-imagebuilder-infrastructureconfiguration-terminateinstanceonfailure"></a>
  The terminate instance on failure configuration of the infrastructure configuration.<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> */
    terminateInstanceOnFailure?: Value<boolean>;
    /** <code>SubnetId</code>  <a name="cfn-imagebuilder-infrastructureconfiguration-subnetid"></a>
  The subnet ID of the infrastructure configuration.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>1024</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> */
    subnetId?: Value<string>;
    /** <code>SecurityGroupIds</code>  <a name="cfn-imagebuilder-infrastructureconfiguration-securitygroupids"></a>
  The security group IDs of the infrastructure configuration.<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> */
    securityGroupIds?: Value<Value<string>[]>;
    /** <code>Name</code>  <a name="cfn-imagebuilder-infrastructureconfiguration-name"></a>
  The name of the infrastructure configuration.<br />
  
  Required: Yes<br />
  
  Pattern: <code>^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$</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> */
    name: Value<string>;
    /** <code>InstanceMetadataOptions</code>  <a name="cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions"></a>
  The instance metadata option settings for the infrastructure configuration.<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> */
    instanceMetadataOptions?: InstanceMetadataOptionsProps;
    /** <code>InstanceTypes</code>  <a name="cfn-imagebuilder-infrastructureconfiguration-instancetypes"></a>
  The instance types of the infrastructure configuration.<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> */
    instanceTypes?: Value<Value<string>[]>;
    /** <code>SnsTopicArn</code>  <a name="cfn-imagebuilder-infrastructureconfiguration-snstopicarn"></a>
  The Amazon Resource Name (ARN) of the SNS topic for the infrastructure configuration.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>1024</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> */
    snsTopicArn?: Value<string>;
    /** <code>Tags</code>  <a name="cfn-imagebuilder-infrastructureconfiguration-tags"></a>
  The tags of the infrastructure configuration.<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> */
    tags?: Value<{
        [key: string]: Value<string>;
    }>;
}
