UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

1,089 lines 214 kB
import * as cdk from "../../core/lib"; import * as constructs from "constructs"; import * as cfn_parse from "../../core/lib/helpers-internal"; import { ComponentReference, ContainerRecipeReference, DistributionConfigurationReference, IComponentRef, IContainerRecipeRef, IDistributionConfigurationRef, IImagePipelineRef, IImageRecipeRef, IImageRef, IInfrastructureConfigurationRef, ILifecyclePolicyRef, ImagePipelineReference, ImageRecipeReference, ImageReference, InfrastructureConfigurationReference, IWorkflowRef, LifecyclePolicyReference, WorkflowReference } from "../../interfaces/generated/aws-imagebuilder-interfaces.generated"; import { aws_iam as iamRefs, aws_imagebuilder as imageBuilderRefs, aws_sns as snsRefs } from "../../interfaces"; /** * 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, IComponentRef, 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; /** * Checks whether the given object is a CfnComponent */ static isCfnComponent(x: any): x is CfnComponent; static arnForComponent(resource: IComponentRef): string; /** * The change description of the component. */ private _changeDescription?; /** * Component `data` contains inline YAML document content for the component. */ private _data?; /** * Describes the contents of the component. */ private _description?; /** * The Amazon Resource Name (ARN) that uniquely identifies the KMS key used to encrypt this component. */ private _kmsKeyId?; /** * The name of the component. */ private _name; /** * The operating system platform of the component. */ private _platform; /** * The operating system (OS) version supported by the component. */ private _supportedOsVersions?; /** * Tag Manager which manages the tags for this resource */ readonly tags: cdk.TagManager; /** * The tags that apply to the component. */ private _tagsRaw?; /** * The `uri` of a YAML component document file. */ private _uri?; /** * The semantic version of the component. This version follows the semantic version syntax. */ private _version; /** * Create a new `AWS::ImageBuilder::Component`. * * @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); get componentRef(): ComponentReference; /** * The change description of the component. */ get changeDescription(): string | undefined; /** * The change description of the component. */ set changeDescription(value: string | undefined); /** * Component `data` contains inline YAML document content for the component. */ get data(): string | undefined; /** * Component `data` contains inline YAML document content for the component. */ set data(value: string | undefined); /** * Describes the contents of the component. */ get description(): string | undefined; /** * Describes the contents of the component. */ set description(value: string | undefined); /** * The Amazon Resource Name (ARN) that uniquely identifies the KMS key used to encrypt this component. */ get kmsKeyId(): string | undefined; /** * The Amazon Resource Name (ARN) that uniquely identifies the KMS key used to encrypt this component. */ set kmsKeyId(value: string | undefined); /** * The name of the component. */ get name(): string; /** * The name of the component. */ set name(value: string); /** * The operating system platform of the component. */ get platform(): string; /** * The operating system platform of the component. */ set platform(value: string); /** * The operating system (OS) version supported by the component. */ get supportedOsVersions(): Array<string> | undefined; /** * The operating system (OS) version supported by the component. */ set supportedOsVersions(value: Array<string> | undefined); /** * The tags that apply to the component. */ get tagsRaw(): Record<string, string> | undefined; /** * The tags that apply to the component. */ set tagsRaw(value: Record<string, string> | undefined); /** * The `uri` of a YAML component document file. */ get uri(): string | undefined; /** * The `uri` of a YAML component document file. */ set uri(value: string | undefined); /** * The semantic version of the component. This version follows the semantic version syntax. */ get version(): string; /** * The semantic version of the component. This version follows the semantic version syntax. */ set version(value: string); /** * 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 */ get attrArn(): string; /** * Returns the encryption status of the component. For example `true` or `false` . * * @cloudformationAttribute Encrypted */ get attrEncrypted(): cdk.IResolvable; /** * The latest version references of the component. * * @cloudformationAttribute LatestVersion */ get attrLatestVersion(): cdk.IResolvable; /** * The latest version Amazon Resource Name (ARN) of the Image Builder resource. * * @cloudformationAttribute LatestVersion.Arn */ get attrLatestVersionArn(): string; /** * The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource. * * @cloudformationAttribute LatestVersion.Major */ get attrLatestVersionMajor(): string; /** * The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource. * * @cloudformationAttribute LatestVersion.Minor */ get attrLatestVersionMinor(): string; /** * The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource. * * @cloudformationAttribute LatestVersion.Patch */ get attrLatestVersionPatch(): string; /** * Returns the name of the component. * * @cloudformationAttribute Name */ get 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 */ get attrType(): string; 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 CfnComponent { /** * The resource ARNs with different wildcard variations of semantic versioning. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-component-latestversion.html */ interface LatestVersionProperty { /** * The latest version Amazon Resource Name (ARN) of the Image Builder resource. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-component-latestversion.html#cfn-imagebuilder-component-latestversion-arn */ readonly arn?: string; /** * The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-component-latestversion.html#cfn-imagebuilder-component-latestversion-major */ readonly major?: string; /** * The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-component-latestversion.html#cfn-imagebuilder-component-latestversion-minor */ readonly minor?: string; /** * The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-component-latestversion.html#cfn-imagebuilder-component-latestversion-patch */ readonly patch?: string; } } /** * 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 Amazon Resource Name (ARN) that uniquely identifies the KMS key used to encrypt this component. * * This can be either the Key ARN or the Alias ARN. For more information, see [Key identifiers (KeyId)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN) in the *AWS Key Management Service Developer Guide* . * * @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 semantic version of the component. This version follows the semantic version syntax. * * > 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. * * @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, IContainerRecipeRef, 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; /** * Checks whether the given object is a CfnContainerRecipe */ static isCfnContainerRecipe(x: any): x is CfnContainerRecipe; static arnForContainerRecipe(resource: IContainerRecipeRef): string; /** * Build and test components that are included in the container recipe. */ private _components?; /** * Specifies the type of container, such as Docker. */ private _containerType; /** * The description of the container recipe. */ private _description?; /** * 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. */ private _dockerfileTemplateData?; /** * The S3 URI for the Dockerfile that will be used to build your container image. */ private _dockerfileTemplateUri?; /** * Specifies the operating system version for the base image. */ private _imageOsVersionOverride?; /** * A group of options that can be used to configure an instance for building and testing container images. */ private _instanceConfiguration?; /** * The Amazon Resource Name (ARN) that uniquely identifies which KMS key is used to encrypt the container image for distribution to the target Region. */ private _kmsKeyId?; /** * The name of the container recipe. */ private _name; /** * The base image for customizations specified in the container recipe. */ private _parentImage; /** * Specifies the operating system platform when you use a custom base image. */ private _platformOverride?; /** * Tag Manager which manages the tags for this resource */ readonly tags: cdk.TagManager; /** * Tags that are attached to the container recipe. */ private _tagsRaw?; /** * The destination repository for the container image. */ private _targetRepository; /** * The semantic version of the container recipe. This version follows the semantic version syntax. */ private _version; /** * The working directory for use during build and test workflows. */ private _workingDirectory?; /** * Create a new `AWS::ImageBuilder::ContainerRecipe`. * * @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); get containerRecipeRef(): ContainerRecipeReference; /** * Build and test components that are included in the container recipe. */ get components(): Array<CfnContainerRecipe.ComponentConfigurationProperty | cdk.IResolvable> | cdk.IResolvable | undefined; /** * Build and test components that are included in the container recipe. */ set components(value: Array<CfnContainerRecipe.ComponentConfigurationProperty | cdk.IResolvable> | cdk.IResolvable | undefined); /** * Specifies the type of container, such as Docker. */ get containerType(): string; /** * Specifies the type of container, such as Docker. */ set containerType(value: string); /** * The description of the container recipe. */ get description(): string | undefined; /** * The description of the container recipe. */ set description(value: string | undefined); /** * 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. */ get dockerfileTemplateData(): string | undefined; /** * 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. */ set dockerfileTemplateData(value: string | undefined); /** * The S3 URI for the Dockerfile that will be used to build your container image. */ get dockerfileTemplateUri(): string | undefined; /** * The S3 URI for the Dockerfile that will be used to build your container image. */ set dockerfileTemplateUri(value: string | undefined); /** * Specifies the operating system version for the base image. */ get imageOsVersionOverride(): string | undefined; /** * Specifies the operating system version for the base image. */ set imageOsVersionOverride(value: string | undefined); /** * A group of options that can be used to configure an instance for building and testing container images. */ get instanceConfiguration(): CfnContainerRecipe.InstanceConfigurationProperty | cdk.IResolvable | undefined; /** * A group of options that can be used to configure an instance for building and testing container images. */ set instanceConfiguration(value: CfnContainerRecipe.InstanceConfigurationProperty | cdk.IResolvable | undefined); /** * The Amazon Resource Name (ARN) that uniquely identifies which KMS key is used to encrypt the container image for distribution to the target Region. */ get kmsKeyId(): string | undefined; /** * The Amazon Resource Name (ARN) that uniquely identifies which KMS key is used to encrypt the container image for distribution to the target Region. */ set kmsKeyId(value: string | undefined); /** * The name of the container recipe. */ get name(): string; /** * The name of the container recipe. */ set name(value: string); /** * The base image for customizations specified in the container recipe. */ get parentImage(): string; /** * The base image for customizations specified in the container recipe. */ set parentImage(value: string); /** * Specifies the operating system platform when you use a custom base image. */ get platformOverride(): string | undefined; /** * Specifies the operating system platform when you use a custom base image. */ set platformOverride(value: string | undefined); /** * Tags that are attached to the container recipe. */ get tagsRaw(): Record<string, string> | undefined; /** * Tags that are attached to the container recipe. */ set tagsRaw(value: Record<string, string> | undefined); /** * The destination repository for the container image. */ get targetRepository(): cdk.IResolvable | CfnContainerRecipe.TargetContainerRepositoryProperty; /** * The destination repository for the container image. */ set targetRepository(value: cdk.IResolvable | CfnContainerRecipe.TargetContainerRepositoryProperty); /** * The semantic version of the container recipe. This version follows the semantic version syntax. */ get version(): string; /** * The semantic version of the container recipe. This version follows the semantic version syntax. */ set version(value: string); /** * The working directory for use during build and test workflows. */ get workingDirectory(): string | undefined; /** * The working directory for use during build and test workflows. */ set workingDirectory(value: string | undefined); /** * 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 */ get attrArn(): string; /** * The latest version references of the container recipe. * * @cloudformationAttribute LatestVersion */ get attrLatestVersion(): cdk.IResolvable; /** * The latest version Amazon Resource Name (ARN) of the Image Builder resource. * * @cloudformationAttribute LatestVersion.Arn */ get attrLatestVersionArn(): string; /** * The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource. * * @cloudformationAttribute LatestVersion.Major */ get attrLatestVersionMajor(): string; /** * The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource. * * @cloudformationAttribute LatestVersion.Minor */ get attrLatestVersionMinor(): string; /** * The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource. * * @cloudformationAttribute LatestVersion.Patch */ get attrLatestVersionPatch(): string; /** * Returns the name of the container recipe. * * @cloudformationAttribute Name */ get attrName(): string; 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; /** * The Amazon Resource Name (ARN) that uniquely identifies the KMS key to use when encrypting the device. * * This can be either the Key ARN or the Alias ARN. For more information, see [Key identifiers (KeyId)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN) in the *AWS Key Management Service Developer Guide* . * * @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; } /** * The resource ARNs with different wildcard variations of semantic versioning. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-latestversion.html */ interface LatestVersionProperty { /** * The latest version Amazon Resource Name (ARN) of the Image Builder resource. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-latestversion.html#cfn-imagebuilder-containerrecipe-latestversion-arn */ readonly arn?: string; /** * The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-latestversion.html#cfn-imagebuilder-containerrecipe-latestversion-major */ readonly major?: string; /** * The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-latestversion.html#cfn-imagebuilder-containerrecipe-latestversion-minor */ readonly minor?: string; /** * The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-latestversion.html#cfn-imagebuilder-containerrecipe-latestversion-patch */ readonly patch?: 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; /** * The Amazon Resource Name (ARN) that uniquely identifies which KMS key is used to encrypt the container image for distribution to the target Region. * * This can be either the Key ARN or the Alias ARN. For more information, see [Key identifiers (KeyId)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN) in the *AWS Key Management Service Developer Guide* . * * @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. This version follows the semantic version syntax. * * > 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. * * @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, IDistributionConfigurationRef, 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; /** * Checks whether the given object is a CfnDistributionConfiguration */ static isCfnDistributionConfiguration(x: any): x is CfnDistributionConfiguration; static arnForDistributionConfiguration(resource: IDistributionConfigurationRef): string; /** * The description of this distribution configuration. */ private _description?; /** * The distributions of this distribution configuration formatted as an array of Distribution objects. */ private _distributions; /** * The name of this distribution configuration. */ private _name; /** * Tag Manager which manages the tags for this resource */ readonly tags: cdk.TagManager; /** * The tags of this distribution configuration. */ private _tagsRaw?; /** * Create a new `AWS::ImageBuilder::DistributionConfiguration`. * * @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); get distributionConfigurationRef(): DistributionConfigurationReference; /** * The description of this distribution configuration. */ get description(): string | undefined; /** * The description of this distribution configuration. */ set description(value: string | undefined); /** * The distributions of this distribution configuration formatted as an array of Distribution objects. */ get distributions(): Array<CfnDistributionConfiguration.DistributionProperty | cdk.IResolvable> | cdk.IResolvable; /** * The distributions of this distribution configuration formatted as an array of Distribution objects. */ set distributions(value: Array<CfnDistributionConfiguration.DistributionProperty | cdk.IResolvable> | cdk.IResolvable); /** * The name of this distribution configuration. */ get name(): string; /** * The name of this distribution configuration. */ set name(value: string); /** * The tags of this distribution configuration. */ get tagsRaw(): Record<string, string> | undefined; /** * The tags of this distribution configuration. */ set tagsRaw(value: Record<string, string> | undefined); /** * 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 */ get attrArn(): string; /** * Returns the name of the distribution configuration. * * @cloudformationAttribute Name */ get attrName(): string; 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-amidistrib