UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

954 lines 153 kB
import * as cdk from "../../core"; import * as constructs from "constructs"; import * as cfn_parse from "../../core/lib/helpers-internal"; /** * Creates a new component that can be used to build, validate, test, and assess your image. * * The component is based on a YAML document that you specify using exactly one of the following methods: * * - Inline, using the `data` property in the request body. * - A URL that points to a YAML document file stored in Amazon S3, using the `uri` property in the request body. * * @cloudformationResource AWS::ImageBuilder::Component * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html */ export declare class CfnComponent extends cdk.CfnResource implements cdk.IInspectable, cdk.ITaggable { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME: string; /** * Build a CfnComponent from CloudFormation properties * * A factory method that creates a new instance of this class from an object * containing the CloudFormation properties of this resource. * Used in the @aws-cdk/cloudformation-include module. * * @internal */ static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnComponent; /** * Returns the Amazon Resource Name (ARN) of the component. The following pattern is applied: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:\d{12}|aws):(?:image-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline)/[a-z0-9-_]+(?:/(?:(?:x|\d+)\.(?:x|\d+)\.(?:x|\d+))(?:/\d+)?)?$` . * * @cloudformationAttribute Arn */ readonly attrArn: string; /** * Returns the encryption status of the component. For example `true` or `false` . * * @cloudformationAttribute Encrypted */ readonly attrEncrypted: cdk.IResolvable; /** * Returns the name of the component. * * @cloudformationAttribute Name */ readonly attrName: string; /** * Image Builder determines the component type based on the phases that are defined in the component document. If there is only one phase, and its name is "test", then the type is `TEST` . For all other components, the type is `BUILD` . * * @cloudformationAttribute Type */ readonly attrType: string; /** * The change description of the component. */ changeDescription?: string; /** * Component `data` contains inline YAML document content for the component. */ data?: string; /** * Describes the contents of the component. */ description?: string; /** * The ID of the KMS key that is used to encrypt this component. */ kmsKeyId?: string; /** * The name of the component. */ name: string; /** * The operating system platform of the component. */ platform: string; /** * The operating system (OS) version supported by the component. */ supportedOsVersions?: Array<string>; /** * Tag Manager which manages the tags for this resource */ readonly tags: cdk.TagManager; /** * The tags that apply to the component. */ tagsRaw?: Record<string, string>; /** * The `uri` of a YAML component document file. */ uri?: string; /** * The component version. */ version: string; /** * @param scope Scope in which this resource is defined * @param id Construct identifier for this resource (unique in its scope) * @param props Resource properties */ constructor(scope: constructs.Construct, id: string, props: CfnComponentProps); protected get cfnProperties(): Record<string, any>; /** * Examines the CloudFormation resource and discloses attributes * * @param inspector tree inspector to collect and process attributes */ inspect(inspector: cdk.TreeInspector): void; protected renderProperties(props: Record<string, any>): Record<string, any>; } /** * Properties for defining a `CfnComponent` * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html */ export interface CfnComponentProps { /** * The change description of the component. * * Describes what change has been made in this version, or what makes this version different from other versions of the component. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-changedescription */ readonly changeDescription?: string; /** * Component `data` contains inline YAML document content for the component. * * Alternatively, you can specify the `uri` of a YAML document file stored in Amazon S3. However, you cannot specify both properties. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-data */ readonly data?: string; /** * Describes the contents of the component. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-description */ readonly description?: string; /** * The ID of the KMS key that is used to encrypt this component. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-kmskeyid */ readonly kmsKeyId?: string; /** * The name of the component. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-name */ readonly name: string; /** * The operating system platform of the component. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-platform */ readonly platform: string; /** * The operating system (OS) version supported by the component. * * If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-supportedosversions */ readonly supportedOsVersions?: Array<string>; /** * The tags that apply to the component. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-tags */ readonly tags?: Record<string, string>; /** * The `uri` of a YAML component document file. * * This must be an S3 URL ( `s3://bucket/key` ), and the requester must have permission to access the S3 bucket it points to. If you use Amazon S3, you can specify component content up to your service quota. * * Alternatively, you can specify the YAML document inline, using the component `data` property. You cannot specify both properties. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-uri */ readonly uri?: string; /** * The component version. * * For example, `1.0.0` . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-version */ readonly version: string; } /** * Creates a new container recipe. * * Container recipes define how images are configured, tested, and assessed. * * @cloudformationResource AWS::ImageBuilder::ContainerRecipe * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html */ export declare class CfnContainerRecipe extends cdk.CfnResource implements cdk.IInspectable, cdk.ITaggable { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME: string; /** * Build a CfnContainerRecipe from CloudFormation properties * * A factory method that creates a new instance of this class from an object * containing the CloudFormation properties of this resource. * Used in the @aws-cdk/cloudformation-include module. * * @internal */ static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnContainerRecipe; /** * Returns the Amazon Resource Name (ARN) of the container recipe. For example, `arn:aws:imagebuilder:us-east-1:123456789012:container-recipe/mybasicrecipe/2020.12.17` . * * @cloudformationAttribute Arn */ readonly attrArn: string; /** * Returns the name of the container recipe. * * @cloudformationAttribute Name */ readonly attrName: string; /** * Build and test components that are included in the container recipe. */ components: Array<CfnContainerRecipe.ComponentConfigurationProperty | cdk.IResolvable> | cdk.IResolvable; /** * Specifies the type of container, such as Docker. */ containerType: string; /** * The description of the container recipe. */ description?: string; /** * Dockerfiles are text documents that are used to build Docker containers, and ensure that they contain all of the elements required by the application running inside. */ dockerfileTemplateData?: string; /** * The S3 URI for the Dockerfile that will be used to build your container image. */ dockerfileTemplateUri?: string; /** * Specifies the operating system version for the base image. */ imageOsVersionOverride?: string; /** * A group of options that can be used to configure an instance for building and testing container images. */ instanceConfiguration?: CfnContainerRecipe.InstanceConfigurationProperty | cdk.IResolvable; /** * Identifies which KMS key is used to encrypt the container image for distribution to the target Region. */ kmsKeyId?: string; /** * The name of the container recipe. */ name: string; /** * The base image for customizations specified in the container recipe. */ parentImage: string; /** * Specifies the operating system platform when you use a custom base image. */ platformOverride?: string; /** * Tag Manager which manages the tags for this resource */ readonly tags: cdk.TagManager; /** * Tags that are attached to the container recipe. */ tagsRaw?: Record<string, string>; /** * The destination repository for the container image. */ targetRepository: cdk.IResolvable | CfnContainerRecipe.TargetContainerRepositoryProperty; /** * The semantic version of the container recipe. */ version: string; /** * The working directory for use during build and test workflows. */ workingDirectory?: string; /** * @param scope Scope in which this resource is defined * @param id Construct identifier for this resource (unique in its scope) * @param props Resource properties */ constructor(scope: constructs.Construct, id: string, props: CfnContainerRecipeProps); protected get cfnProperties(): Record<string, any>; /** * Examines the CloudFormation resource and discloses attributes * * @param inspector tree inspector to collect and process attributes */ inspect(inspector: cdk.TreeInspector): void; protected renderProperties(props: Record<string, any>): Record<string, any>; } export declare namespace CfnContainerRecipe { /** * Defines a custom base AMI and block device mapping configurations of an instance used for building and testing container images. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceconfiguration.html */ interface InstanceConfigurationProperty { /** * Defines the block devices to attach for building an instance from this Image Builder AMI. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceconfiguration.html#cfn-imagebuilder-containerrecipe-instanceconfiguration-blockdevicemappings */ readonly blockDeviceMappings?: Array<CfnContainerRecipe.InstanceBlockDeviceMappingProperty | cdk.IResolvable> | cdk.IResolvable; /** * The base image for a container build and test instance. * * This can contain an AMI ID or it can specify an AWS Systems Manager (SSM) Parameter Store Parameter, prefixed by `ssm:` , followed by the parameter name or ARN. * * If not specified, Image Builder uses the appropriate ECS-optimized AMI as a base image. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceconfiguration.html#cfn-imagebuilder-containerrecipe-instanceconfiguration-image */ readonly image?: string; } /** * Defines block device mappings for the instance used to configure your image. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.html */ interface InstanceBlockDeviceMappingProperty { /** * The device to which these mappings apply. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.html#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-devicename */ readonly deviceName?: string; /** * Use to manage Amazon EBS-specific configuration for this mapping. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.html#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-ebs */ readonly ebs?: CfnContainerRecipe.EbsInstanceBlockDeviceSpecificationProperty | cdk.IResolvable; /** * Use to remove a mapping from the base image. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.html#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-nodevice */ readonly noDevice?: string; /** * Use to manage instance ephemeral devices. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.html#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-virtualname */ readonly virtualName?: string; } /** * Amazon EBS-specific block device mapping specifications. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html */ interface EbsInstanceBlockDeviceSpecificationProperty { /** * Use to configure delete on termination of the associated device. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-deleteontermination */ readonly deleteOnTermination?: boolean | cdk.IResolvable; /** * Use to configure device encryption. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-encrypted */ readonly encrypted?: boolean | cdk.IResolvable; /** * Use to configure device IOPS. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-iops */ readonly iops?: number; /** * Use to configure the KMS key to use when encrypting the device. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-kmskeyid */ readonly kmsKeyId?: string; /** * The snapshot that defines the device contents. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-snapshotid */ readonly snapshotId?: string; /** * *For GP3 volumes only* – The throughput in MiB/s that the volume supports. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-throughput */ readonly throughput?: number; /** * Use to override the device's volume size. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-volumesize */ readonly volumeSize?: number; /** * Use to override the device's volume type. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-volumetype */ readonly volumeType?: string; } /** * Configuration details of the component. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-componentconfiguration.html */ interface ComponentConfigurationProperty { /** * The Amazon Resource Name (ARN) of the component. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-componentconfiguration.html#cfn-imagebuilder-containerrecipe-componentconfiguration-componentarn */ readonly componentArn?: string; /** * A group of parameter settings that Image Builder uses to configure the component for a specific recipe. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-componentconfiguration.html#cfn-imagebuilder-containerrecipe-componentconfiguration-parameters */ readonly parameters?: Array<CfnContainerRecipe.ComponentParameterProperty | cdk.IResolvable> | cdk.IResolvable; } /** * Contains a key/value pair that sets the named component parameter. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-componentparameter.html */ interface ComponentParameterProperty { /** * The name of the component parameter to set. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-componentparameter.html#cfn-imagebuilder-containerrecipe-componentparameter-name */ readonly name: string; /** * Sets the value for the named component parameter. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-componentparameter.html#cfn-imagebuilder-containerrecipe-componentparameter-value */ readonly value: Array<string>; } /** * The container repository where the output container image is stored. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-targetcontainerrepository.html */ interface TargetContainerRepositoryProperty { /** * The name of the container repository where the output container image is stored. * * This name is prefixed by the repository location. For example, `<repository location url>/repository_name` . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-targetcontainerrepository.html#cfn-imagebuilder-containerrecipe-targetcontainerrepository-repositoryname */ readonly repositoryName?: string; /** * Specifies the service in which this image was registered. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-targetcontainerrepository.html#cfn-imagebuilder-containerrecipe-targetcontainerrepository-service */ readonly service?: string; } } /** * Properties for defining a `CfnContainerRecipe` * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html */ export interface CfnContainerRecipeProps { /** * Build and test components that are included in the container recipe. * * Recipes require a minimum of one build component, and can have a maximum of 20 build and test components in any combination. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-components */ readonly components: Array<CfnContainerRecipe.ComponentConfigurationProperty | cdk.IResolvable> | cdk.IResolvable; /** * Specifies the type of container, such as Docker. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-containertype */ readonly containerType: string; /** * The description of the container recipe. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-description */ readonly description?: string; /** * Dockerfiles are text documents that are used to build Docker containers, and ensure that they contain all of the elements required by the application running inside. * * The template data consists of contextual variables where Image Builder places build information or scripts, based on your container image recipe. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-dockerfiletemplatedata */ readonly dockerfileTemplateData?: string; /** * The S3 URI for the Dockerfile that will be used to build your container image. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-dockerfiletemplateuri */ readonly dockerfileTemplateUri?: string; /** * Specifies the operating system version for the base image. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-imageosversionoverride */ readonly imageOsVersionOverride?: string; /** * A group of options that can be used to configure an instance for building and testing container images. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-instanceconfiguration */ readonly instanceConfiguration?: CfnContainerRecipe.InstanceConfigurationProperty | cdk.IResolvable; /** * Identifies which KMS key is used to encrypt the container image for distribution to the target Region. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-kmskeyid */ readonly kmsKeyId?: string; /** * The name of the container recipe. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-name */ readonly name: string; /** * The base image for customizations specified in the container recipe. * * This can contain an Image Builder image resource ARN or a container image URI, for example `amazonlinux:latest` . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-parentimage */ readonly parentImage: string; /** * Specifies the operating system platform when you use a custom base image. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-platformoverride */ readonly platformOverride?: string; /** * Tags that are attached to the container recipe. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-tags */ readonly tags?: Record<string, string>; /** * The destination repository for the container image. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-targetrepository */ readonly targetRepository: cdk.IResolvable | CfnContainerRecipe.TargetContainerRepositoryProperty; /** * The semantic version of the container recipe. * * > The semantic version has four nodes: <major>.<minor>.<patch>/<build>. You can assign values for the first three, and can filter on all of them. * > * > *Assignment:* For the first three nodes you can assign any positive integer value, including zero, with an upper limit of 2^30-1, or 1073741823 for each node. Image Builder automatically assigns the build number to the fourth node. * > * > *Patterns:* You can use any numeric pattern that adheres to the assignment requirements for the nodes that you can assign. For example, you might choose a software version pattern, such as 1.0.0, or a date, such as 2021.01.01. * > * > *Filtering:* With semantic versioning, you have the flexibility to use wildcards (x) to specify the most recent versions or nodes when selecting the base image or components for your recipe. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-version */ readonly version: string; /** * The working directory for use during build and test workflows. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-workingdirectory */ readonly workingDirectory?: string; } /** * A distribution configuration allows you to specify the name and description of your output AMI, authorize other AWS account s to launch the AMI, and replicate the AMI to other AWS Regions . * * It also allows you to export the AMI to Amazon S3 . * * @cloudformationResource AWS::ImageBuilder::DistributionConfiguration * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html */ export declare class CfnDistributionConfiguration extends cdk.CfnResource implements cdk.IInspectable, cdk.ITaggable { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME: string; /** * Build a CfnDistributionConfiguration from CloudFormation properties * * A factory method that creates a new instance of this class from an object * containing the CloudFormation properties of this resource. * Used in the @aws-cdk/cloudformation-include module. * * @internal */ static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnDistributionConfiguration; /** * Returns the Amazon Resource Name (ARN) of this distribution configuration. The following pattern is applied: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:\d{12}|aws):(?:image-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline)/[a-z0-9-_]+(?:/(?:(?:x|\d+)\.(?:x|\d+)\.(?:x|\d+))(?:/\d+)?)?$` . * * @cloudformationAttribute Arn */ readonly attrArn: string; /** * Returns the name of the distribution configuration. * * @cloudformationAttribute Name */ readonly attrName: string; /** * The description of this distribution configuration. */ description?: string; /** * The distributions of this distribution configuration formatted as an array of Distribution objects. */ distributions: Array<CfnDistributionConfiguration.DistributionProperty | cdk.IResolvable> | cdk.IResolvable; /** * The name of this distribution configuration. */ name: string; /** * Tag Manager which manages the tags for this resource */ readonly tags: cdk.TagManager; /** * The tags of this distribution configuration. */ tagsRaw?: Record<string, string>; /** * @param scope Scope in which this resource is defined * @param id Construct identifier for this resource (unique in its scope) * @param props Resource properties */ constructor(scope: constructs.Construct, id: string, props: CfnDistributionConfigurationProps); protected get cfnProperties(): Record<string, any>; /** * Examines the CloudFormation resource and discloses attributes * * @param inspector tree inspector to collect and process attributes */ inspect(inspector: cdk.TreeInspector): void; protected renderProperties(props: Record<string, any>): Record<string, any>; } export declare namespace CfnDistributionConfiguration { /** * The distribution configuration distribution defines the settings for a specific Region in the Distribution Configuration. * * You must specify whether the distribution is for an AMI or a container image. To do so, include exactly one of the following data types for your distribution: * * - amiDistributionConfiguration * - containerDistributionConfiguration * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html */ interface DistributionProperty { /** * The specific AMI settings, such as launch permissions and AMI tags. * * For details, see example schema below. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-amidistributionconfiguration */ readonly amiDistributionConfiguration?: any | cdk.IResolvable; /** * Container distribution settings for encryption, licensing, and sharing in a specific Region. * * For details, see example schema below. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-containerdistributionconfiguration */ readonly containerDistributionConfiguration?: any | cdk.IResolvable; /** * The Windows faster-launching configurations to use for AMI distribution. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-fastlaunchconfigurations */ readonly fastLaunchConfigurations?: Array<CfnDistributionConfiguration.FastLaunchConfigurationProperty | cdk.IResolvable> | cdk.IResolvable; /** * A group of launchTemplateConfiguration settings that apply to image distribution for specified accounts. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-launchtemplateconfigurations */ readonly launchTemplateConfigurations?: Array<cdk.IResolvable | CfnDistributionConfiguration.LaunchTemplateConfigurationProperty> | cdk.IResolvable; /** * The License Manager Configuration to associate with the AMI in the specified Region. * * For more information, see the [LicenseConfiguration API](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_LicenseConfiguration.html) . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-licenseconfigurationarns */ readonly licenseConfigurationArns?: Array<string>; /** * The target Region for the Distribution Configuration. * * For example, `eu-west-1` . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-region */ readonly region: string; /** * Contains settings to update AWS Systems Manager (SSM) Parameter Store Parameters with output AMI IDs from the build by target Region. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-ssmparameterconfigurations */ readonly ssmParameterConfigurations?: Array<cdk.IResolvable | CfnDistributionConfiguration.SsmParameterConfigurationProperty> | cdk.IResolvable; } /** * Define and configure faster launching for output Windows AMIs. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-fastlaunchconfiguration.html */ interface FastLaunchConfigurationProperty { /** * The owner account ID for the fast-launch enabled Windows AMI. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-fastlaunchconfiguration.html#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-accountid */ readonly accountId?: string; /** * A Boolean that represents the current state of faster launching for the Windows AMI. * * Set to `true` to start using Windows faster launching, or `false` to stop using it. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-fastlaunchconfiguration.html#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-enabled */ readonly enabled?: boolean | cdk.IResolvable; /** * The launch template that the fast-launch enabled Windows AMI uses when it launches Windows instances to create pre-provisioned snapshots. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-fastlaunchconfiguration.html#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-launchtemplate */ readonly launchTemplate?: CfnDistributionConfiguration.FastLaunchLaunchTemplateSpecificationProperty | cdk.IResolvable; /** * The maximum number of parallel instances that are launched for creating resources. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-fastlaunchconfiguration.html#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-maxparallellaunches */ readonly maxParallelLaunches?: number; /** * Configuration settings for managing the number of snapshots that are created from pre-provisioned instances for the Windows AMI when faster launching is enabled. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-fastlaunchconfiguration.html#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-snapshotconfiguration */ readonly snapshotConfiguration?: CfnDistributionConfiguration.FastLaunchSnapshotConfigurationProperty | cdk.IResolvable; } /** * Identifies the launch template that the associated Windows AMI uses for launching an instance when faster launching is enabled. * * > You can specify either the `launchTemplateName` or the `launchTemplateId` , but not both. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification.html */ interface FastLaunchLaunchTemplateSpecificationProperty { /** * The ID of the launch template to use for faster launching for a Windows AMI. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification.html#cfn-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-launchtemplateid */ readonly launchTemplateId?: string; /** * The name of the launch template to use for faster launching for a Windows AMI. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification.html#cfn-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-launchtemplatename */ readonly launchTemplateName?: string; /** * The version of the launch template to use for faster launching for a Windows AMI. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification.html#cfn-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-launchtemplateversion */ readonly launchTemplateVersion?: string; } /** * Configuration settings for creating and managing pre-provisioned snapshots for a fast-launch enabled Windows AMI. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-fastlaunchsnapshotconfiguration.html */ interface FastLaunchSnapshotConfigurationProperty { /** * The number of pre-provisioned snapshots to keep on hand for a fast-launch enabled Windows AMI. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-fastlaunchsnapshotconfiguration.html#cfn-imagebuilder-distributionconfiguration-fastlaunchsnapshotconfiguration-targetresourcecount */ readonly targetResourceCount?: number; } /** * Identifies an Amazon EC2 launch template to use for a specific account. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration.html */ interface LaunchTemplateConfigurationProperty { /** * The account ID that this configuration applies to. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration.html#cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-accountid */ readonly accountId?: string; /** * Identifies the Amazon EC2 launch template to use. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration.html#cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-launchtemplateid */ readonly launchTemplateId?: string; /** * Set the specified Amazon EC2 launch template as the default launch template for the specified account. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration.html#cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-setdefaultversion */ readonly setDefaultVersion?: boolean | cdk.IResolvable; } /** * Configuration for a single Parameter in the AWS Systems Manager (SSM) Parameter Store in a given Region. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-ssmparameterconfiguration.html */ interface SsmParameterConfigurationProperty { /** * Specify the account that will own the Parameter in a given Region. * * During distribution, this account must be specified in distribution settings as a target account for the Region. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-ssmparameterconfiguration.html#cfn-imagebuilder-distributionconfiguration-ssmparameterconfiguration-amiaccountid */ readonly amiAccountId?: string; /** * The data type specifies what type of value the Parameter contains. * * We recommend that you use data type `aws:ec2:image` . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-ssmparameterconfiguration.html#cfn-imagebuilder-distributionconfiguration-ssmparameterconfiguration-datatype */ readonly dataType?: string; /** * This is the name of the Parameter in the target Region or account. * * The image distribution creates the Parameter if it doesn't already exist. Otherwise, it updates the parameter. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-ssmparameterconfiguration.html#cfn-imagebuilder-distributionconfiguration-ssmparameterconfiguration-parametername */ readonly parameterName: string; } /** * Define and configure the output AMIs of the pipeline. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html */ interface AmiDistributionConfigurationProperty { /** * The tags to apply to AMIs distributed to this Region. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-amitags */ readonly amiTags?: cdk.IResolvable | Record<string, string>; /** * The description of the AMI distribution configuration. * * Minimum and maximum length are in characters. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-description */ readonly description?: string; /** * The KMS key identifier used to encrypt the distributed image. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-kmskeyid */ readonly kmsKeyId?: string; /** * Launch permissions can be used to configure which AWS account s can use the AMI to launch instances. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-launchpermissionconfiguration */ readonly launchPermissionConfiguration?: cdk.IResolvable | CfnDistributionConfiguration.LaunchPermissionConfigurationProperty; /** * The name of the output AMI. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-name */ readonly name?: string; /** * The ID of an account to which you want to distribute an image. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-targetaccountids */ readonly targetAccountIds?: Array<string>; } /** * Describes the configuration for a launch permission. * * The launch permission modification request is sent to the [Amazon EC2 ModifyImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html) API on behalf of the user for each Region they have selected to distribute the AMI. To make an AMI public, set the launch permission authorized accounts to `all` . See the examples for making an AMI public at [Amazon EC2 ModifyImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html) . * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-launchpermissionconfiguration.html */ interface LaunchPermissionConfigurationProperty { /** * The ARN for an AWS Organizations organizational unit (OU) that you want to share your AMI with. * * For more information about key concepts for AWS Organizations , see [AWS Organizations terminology and concepts](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html) . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-launchpermissionconfiguration.html#cfn-imagebuilder-distributionconfiguration-launchpermissionconfiguration-organizationalunitarns */ readonly organizationalUnitArns?: Array<string>; /** * The ARN for an AWS Organization that you want to share your AMI with. * * For more information, see [What is AWS Organizations ?](https://docs.aws.amazon.