

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# EC2 Image Builder
<a name="AWS_ImageBuilder"></a>

**Resource types**
+ [AWS::ImageBuilder::Component](aws-resource-imagebuilder-component.md)
+ [AWS::ImageBuilder::ContainerRecipe](aws-resource-imagebuilder-containerrecipe.md)
+ [AWS::ImageBuilder::DistributionConfiguration](aws-resource-imagebuilder-distributionconfiguration.md)
+ [AWS::ImageBuilder::Image](aws-resource-imagebuilder-image.md)
+ [AWS::ImageBuilder::ImagePipeline](aws-resource-imagebuilder-imagepipeline.md)
+ [AWS::ImageBuilder::ImageRecipe](aws-resource-imagebuilder-imagerecipe.md)
+ [AWS::ImageBuilder::InfrastructureConfiguration](aws-resource-imagebuilder-infrastructureconfiguration.md)
+ [AWS::ImageBuilder::LifecyclePolicy](aws-resource-imagebuilder-lifecyclepolicy.md)
+ [AWS::ImageBuilder::Workflow](aws-resource-imagebuilder-workflow.md)

# AWS::ImageBuilder::Component
<a name="aws-resource-imagebuilder-component"></a>

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.

## Syntax
<a name="aws-resource-imagebuilder-component-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-imagebuilder-component-syntax.json"></a>

```
{
  "Type" : "AWS::ImageBuilder::Component",
  "Properties" : {
      "[ChangeDescription](#cfn-imagebuilder-component-changedescription)" : String,
      "[Data](#cfn-imagebuilder-component-data)" : String,
      "[Description](#cfn-imagebuilder-component-description)" : String,
      "[KmsKeyId](#cfn-imagebuilder-component-kmskeyid)" : String,
      "[Name](#cfn-imagebuilder-component-name)" : String,
      "[Platform](#cfn-imagebuilder-component-platform)" : String,
      "[SupportedOsVersions](#cfn-imagebuilder-component-supportedosversions)" : [ String, ... ],
      "[Tags](#cfn-imagebuilder-component-tags)" : {Key: Value, ...},
      "[Uri](#cfn-imagebuilder-component-uri)" : String,
      "[Version](#cfn-imagebuilder-component-version)" : String
    }
}
```

### YAML
<a name="aws-resource-imagebuilder-component-syntax.yaml"></a>

```
Type: AWS::ImageBuilder::Component
Properties:
  [ChangeDescription](#cfn-imagebuilder-component-changedescription): String
  [Data](#cfn-imagebuilder-component-data): String
  [Description](#cfn-imagebuilder-component-description): String
  [KmsKeyId](#cfn-imagebuilder-component-kmskeyid): String
  [Name](#cfn-imagebuilder-component-name): String
  [Platform](#cfn-imagebuilder-component-platform): String
  [SupportedOsVersions](#cfn-imagebuilder-component-supportedosversions): 
    - String
  [Tags](#cfn-imagebuilder-component-tags): 
    Key: Value
  [Uri](#cfn-imagebuilder-component-uri): String
  [Version](#cfn-imagebuilder-component-version): String
```

## Properties
<a name="aws-resource-imagebuilder-component-properties"></a>

`ChangeDescription`  <a name="cfn-imagebuilder-component-changedescription"></a>
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.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Data`  <a name="cfn-imagebuilder-component-data"></a>
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.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `16000`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Description`  <a name="cfn-imagebuilder-component-description"></a>
Describes the contents of the component.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`KmsKeyId`  <a name="cfn-imagebuilder-component-kmskeyid"></a>
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*.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-imagebuilder-component-name"></a>
The name of the component.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Platform`  <a name="cfn-imagebuilder-component-platform"></a>
The operating system platform of the component.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `Windows | Linux | macOS`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SupportedOsVersions`  <a name="cfn-imagebuilder-component-supportedosversions"></a>
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.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `25`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-imagebuilder-component-tags"></a>
The tags that apply to the component.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Uri`  <a name="cfn-imagebuilder-component-uri"></a>
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.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Version`  <a name="cfn-imagebuilder-component-version"></a>
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.
*Required*: Yes  
*Type*: String  
*Pattern*: `^[0-9]+\.[0-9]+\.[0-9]+$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

## Return values
<a name="aws-resource-imagebuilder-component-return-values"></a>

### Ref
<a name="aws-resource-imagebuilder-component-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the resource ARN, such as `arn:aws:imagebuilder:us-west-2:123456789012:component/examplecomponent/2019.12.02/1`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-imagebuilder-component-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-imagebuilder-component-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
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+)?)?$`.

`Encrypted`  <a name="Encrypted-fn::getatt"></a>
Returns the encryption status of the component. For example `true` or `false`.

`LatestVersion.Arn`  <a name="LatestVersion.Arn-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) of the Image Builder resource.

`LatestVersion.Major`  <a name="LatestVersion.Major-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource.

`LatestVersion.Minor`  <a name="LatestVersion.Minor-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource.

`LatestVersion.Patch`  <a name="LatestVersion.Patch-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource.

`Name`  <a name="Name-fn::getatt"></a>
Returns the name of the component.

`Type`  <a name="Type-fn::getatt"></a>
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`.

## Examples
<a name="aws-resource-imagebuilder-component--examples"></a>



**Topics**
+ [Create a component using Data](#aws-resource-imagebuilder-component--examples--Create_a_component_using_Data)
+ [Create a component using a Uri](#aws-resource-imagebuilder-component--examples--Create_a_component_using_a_Uri)

### Create a component using Data
<a name="aws-resource-imagebuilder-component--examples--Create_a_component_using_Data"></a>

The following example shows the schema for the Component resource document in both JSON and YAML format. This example includes details for the `Data` field . You can use either the `Data` or `Uri` fields to reference the component document.

#### JSON
<a name="aws-resource-imagebuilder-component--examples--Create_a_component_using_Data--json"></a>

```
{
	"Resources": {
		"ComponentAllParameters": {
			"Type": "AWS::ImageBuilder::Component",
			"Properties": {
				"Name": "component-name",
				"Platform": "Linux",
				"Version": "1.0.0",
				"Description": "description",
				"ChangeDescription": "change-description",
				"KmsKeyId": "customer-kms-key-id",
				"SupportedOsVersions": ["Amazon Linux 2"],
				"Tags": {
					"CustomerComponentTagKey1": "CustomerComponentTagValue1",
					"CustomerComponentTagKey2": "CustomerComponentTagValue2"
				},
				"Data": "name: HelloWorldTestingLinuxDoc - InlineData\ndescription: This is hello world testing doc\nschemaVersion: 1.0\n\nphases:\n  - name: build\n    steps:\n      - name: HelloWorldStep\n        action: ExecuteBash\n        inputs:\n          commands:\n            - echo \"Hello World! Build.\"\n  - name: validate\n    steps:\n      - name: HelloWorldStep\n        action: ExecuteBash\n        inputs:\n          commands:\n            - echo \"Hello World! Validate.\"\n  - name: test\n    steps:\n      - name: HelloWorldStep\n        action: ExecuteBash\n        inputs:\n          commands:\n            - echo \"Hello World! Test.\"\n"
			}
		}
	}
}
```

#### YAML
<a name="aws-resource-imagebuilder-component--examples--Create_a_component_using_Data--yaml"></a>

```
Resources:
  ComponentAllParameters:
    Type: 'AWS::ImageBuilder::Component'
    Properties:
      Name: 'component-name'
      Platform: 'Linux'
      Version: '1.0.0'
      Description: 'description'
      ChangeDescription: 'change-description'
      KmsKeyId: 'customer-kms-key-id'
      SupportedOsVersions: 
        - 'Amazon Linux 2'
      Tags:
        CustomerComponentTagKey1: 'CustomerComponentTagValue1'
        CustomerComponentTagKey2: 'CustomerComponentTagValue2'
      # Require one of 'Data' or 'Uri' for Component template
      Data: |
        name: HelloWorldTestingLinuxDoc - InlineData
        description: This is hello world testing doc
        schemaVersion: 1.0

        phases:
          - name: build
            steps:
              - name: HelloWorldStep
                action: ExecuteBash
                inputs:
                  commands:
                    - echo "Hello World! Build."
          - name: validate
            steps:
              - name: HelloWorldStep
                action: ExecuteBash
                inputs:
                  commands:
                    - echo "Hello World! Validate."
          - name: test
            steps:
              - name: HelloWorldStep
                action: ExecuteBash
                inputs:
                  commands:
                    - echo "Hello World! Test."
```

### Create a component using a Uri
<a name="aws-resource-imagebuilder-component--examples--Create_a_component_using_a_Uri"></a>

The following example shows the schema for the Component resource document in both YAML and JSON format. This example includes details for the `Uri` field . You can use either the `Data` or `Uri` fields to reference the component document.

#### YAML
<a name="aws-resource-imagebuilder-component--examples--Create_a_component_using_a_Uri--yaml"></a>

```
Resources:
  ComponentAllParameters:
    Type: 'AWS::ImageBuilder::Component'
    Properties:
      Name: 'component-name'
      Platform: 'Linux'
      Version: '1.0.0'
      # Require one of 'Data' or 'Uri' for Component template
      Uri: 's3://imagebuilder/component_document.yml'
      Description: 'description'
      ChangeDescription: 'change-description'
      KmsKeyId: 'customer-kms-key-id'
      SupportedOsVersions: 
      - 'CentOS'
      - 'Red Hat Enterprise Linux'
      Tags:
        CustomerComponentTagKey1: 'CustomerComponentTagValue1'
        CustomerComponentTagKey2: 'CustomerComponentTagValue2'
```

#### JSON
<a name="aws-resource-imagebuilder-component--examples--Create_a_component_using_a_Uri--json"></a>

```
{
    "Resources": {
        "ComponentAllParameters": {
            "Type": "AWS::ImageBuilder::Component",
            "Properties": {
                "Name": "component-name",
                "Platform": "Linux",
                "Version": "1.0.0",
                "Uri": "s3://imagebuilder/component_document.yml",
                "Description": "description",
                "ChangeDescription": "change-description",
                "KmsKeyId": "customer-kms-key-id",
                "SupportedOsVersions": ["CentOS", "Red Hat Enterprise Linux"],
                "Tags": {
                    "CustomerComponentTagKey1": "CustomerComponentTagValue1",
                    "CustomerComponentTagKey2": "CustomerComponentTagValue2"
                }
            }
        }
    }
}
```

# AWS::ImageBuilder::Component LatestVersion
<a name="aws-properties-imagebuilder-component-latestversion"></a>

The resource ARNs with different wildcard variations of semantic versioning.

## Syntax
<a name="aws-properties-imagebuilder-component-latestversion-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-component-latestversion-syntax.json"></a>

```
{
  "[Arn](#cfn-imagebuilder-component-latestversion-arn)" : String,
  "[Major](#cfn-imagebuilder-component-latestversion-major)" : String,
  "[Minor](#cfn-imagebuilder-component-latestversion-minor)" : String,
  "[Patch](#cfn-imagebuilder-component-latestversion-patch)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-component-latestversion-syntax.yaml"></a>

```
  [Arn](#cfn-imagebuilder-component-latestversion-arn): String
  [Major](#cfn-imagebuilder-component-latestversion-major): String
  [Minor](#cfn-imagebuilder-component-latestversion-minor): String
  [Patch](#cfn-imagebuilder-component-latestversion-patch): String
```

## Properties
<a name="aws-properties-imagebuilder-component-latestversion-properties"></a>

`Arn`  <a name="cfn-imagebuilder-component-latestversion-arn"></a>
The latest version Amazon Resource Name (ARN) of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Major`  <a name="cfn-imagebuilder-component-latestversion-major"></a>
The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Minor`  <a name="cfn-imagebuilder-component-latestversion-minor"></a>
The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Patch`  <a name="cfn-imagebuilder-component-latestversion-patch"></a>
The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::ContainerRecipe
<a name="aws-resource-imagebuilder-containerrecipe"></a>

Creates a new container recipe. Container recipes define how images are configured, tested, and assessed.

## Syntax
<a name="aws-resource-imagebuilder-containerrecipe-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-imagebuilder-containerrecipe-syntax.json"></a>

```
{
  "Type" : "AWS::ImageBuilder::ContainerRecipe",
  "Properties" : {
      "[Components](#cfn-imagebuilder-containerrecipe-components)" : [ ComponentConfiguration, ... ],
      "[ContainerType](#cfn-imagebuilder-containerrecipe-containertype)" : String,
      "[Description](#cfn-imagebuilder-containerrecipe-description)" : String,
      "[DockerfileTemplateData](#cfn-imagebuilder-containerrecipe-dockerfiletemplatedata)" : String,
      "[DockerfileTemplateUri](#cfn-imagebuilder-containerrecipe-dockerfiletemplateuri)" : String,
      "[ImageOsVersionOverride](#cfn-imagebuilder-containerrecipe-imageosversionoverride)" : String,
      "[InstanceConfiguration](#cfn-imagebuilder-containerrecipe-instanceconfiguration)" : InstanceConfiguration,
      "[KmsKeyId](#cfn-imagebuilder-containerrecipe-kmskeyid)" : String,
      "[Name](#cfn-imagebuilder-containerrecipe-name)" : String,
      "[ParentImage](#cfn-imagebuilder-containerrecipe-parentimage)" : String,
      "[PlatformOverride](#cfn-imagebuilder-containerrecipe-platformoverride)" : String,
      "[Tags](#cfn-imagebuilder-containerrecipe-tags)" : {Key: Value, ...},
      "[TargetRepository](#cfn-imagebuilder-containerrecipe-targetrepository)" : TargetContainerRepository,
      "[Version](#cfn-imagebuilder-containerrecipe-version)" : String,
      "[WorkingDirectory](#cfn-imagebuilder-containerrecipe-workingdirectory)" : String
    }
}
```

### YAML
<a name="aws-resource-imagebuilder-containerrecipe-syntax.yaml"></a>

```
Type: AWS::ImageBuilder::ContainerRecipe
Properties:
  [Components](#cfn-imagebuilder-containerrecipe-components): 
    - ComponentConfiguration
  [ContainerType](#cfn-imagebuilder-containerrecipe-containertype): String
  [Description](#cfn-imagebuilder-containerrecipe-description): String
  [DockerfileTemplateData](#cfn-imagebuilder-containerrecipe-dockerfiletemplatedata): String
  [DockerfileTemplateUri](#cfn-imagebuilder-containerrecipe-dockerfiletemplateuri): String
  [ImageOsVersionOverride](#cfn-imagebuilder-containerrecipe-imageosversionoverride): String
  [InstanceConfiguration](#cfn-imagebuilder-containerrecipe-instanceconfiguration): 
    InstanceConfiguration
  [KmsKeyId](#cfn-imagebuilder-containerrecipe-kmskeyid): String
  [Name](#cfn-imagebuilder-containerrecipe-name): String
  [ParentImage](#cfn-imagebuilder-containerrecipe-parentimage): String
  [PlatformOverride](#cfn-imagebuilder-containerrecipe-platformoverride): String
  [Tags](#cfn-imagebuilder-containerrecipe-tags): 
    Key: Value
  [TargetRepository](#cfn-imagebuilder-containerrecipe-targetrepository): 
    TargetContainerRepository
  [Version](#cfn-imagebuilder-containerrecipe-version): String
  [WorkingDirectory](#cfn-imagebuilder-containerrecipe-workingdirectory): String
```

## Properties
<a name="aws-resource-imagebuilder-containerrecipe-properties"></a>

`Components`  <a name="cfn-imagebuilder-containerrecipe-components"></a>
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.  
*Required*: No  
*Type*: Array of [ComponentConfiguration](aws-properties-imagebuilder-containerrecipe-componentconfiguration.md)  
*Minimum*: `1`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ContainerType`  <a name="cfn-imagebuilder-containerrecipe-containertype"></a>
Specifies the type of container, such as Docker.  
*Required*: No  
*Type*: String  
*Allowed values*: `DOCKER`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Description`  <a name="cfn-imagebuilder-containerrecipe-description"></a>
The description of the container recipe.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`DockerfileTemplateData`  <a name="cfn-imagebuilder-containerrecipe-dockerfiletemplatedata"></a>
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.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`DockerfileTemplateUri`  <a name="cfn-imagebuilder-containerrecipe-dockerfiletemplateuri"></a>
The S3 URI for the Dockerfile that will be used to build your container image.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ImageOsVersionOverride`  <a name="cfn-imagebuilder-containerrecipe-imageosversionoverride"></a>
Specifies the operating system version for the base image.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`InstanceConfiguration`  <a name="cfn-imagebuilder-containerrecipe-instanceconfiguration"></a>
A group of options that can be used to configure an instance for building and testing container images.  
*Required*: No  
*Type*: [InstanceConfiguration](aws-properties-imagebuilder-containerrecipe-instanceconfiguration.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`KmsKeyId`  <a name="cfn-imagebuilder-containerrecipe-kmskeyid"></a>
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*.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-imagebuilder-containerrecipe-name"></a>
The name of the container recipe.  
*Required*: No  
*Type*: String  
*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ParentImage`  <a name="cfn-imagebuilder-containerrecipe-parentimage"></a>
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`.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`PlatformOverride`  <a name="cfn-imagebuilder-containerrecipe-platformoverride"></a>
Specifies the operating system platform when you use a custom base image.  
*Required*: No  
*Type*: String  
*Allowed values*: `Windows | Linux`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-imagebuilder-containerrecipe-tags"></a>
Tags that are attached to the container recipe.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TargetRepository`  <a name="cfn-imagebuilder-containerrecipe-targetrepository"></a>
The destination repository for the container image.  
*Required*: No  
*Type*: [TargetContainerRepository](aws-properties-imagebuilder-containerrecipe-targetcontainerrepository.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Version`  <a name="cfn-imagebuilder-containerrecipe-version"></a>
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.
*Required*: No  
*Type*: String  
*Pattern*: `^(?:[0-9]+|x)\.(?:[0-9]+|x)\.(?:[0-9]+|x)$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`WorkingDirectory`  <a name="cfn-imagebuilder-containerrecipe-workingdirectory"></a>
The working directory for use during build and test workflows.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

## Return values
<a name="aws-resource-imagebuilder-containerrecipe-return-values"></a>

### Ref
<a name="aws-resource-imagebuilder-containerrecipe-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the resource ARN, such as `arn:aws:imagebuilder:us-east-1:123456789012:container-recipe/mybasicrecipe/2020.12.17`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-imagebuilder-containerrecipe-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-imagebuilder-containerrecipe-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
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`.

`LatestVersion.Arn`  <a name="LatestVersion.Arn-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) of the Image Builder resource.

`LatestVersion.Major`  <a name="LatestVersion.Major-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource.

`LatestVersion.Minor`  <a name="LatestVersion.Minor-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource.

`LatestVersion.Patch`  <a name="LatestVersion.Patch-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource.

`Name`  <a name="Name-fn::getatt"></a>
Returns the name of the container recipe.

## Examples
<a name="aws-resource-imagebuilder-containerrecipe--examples"></a>



### Create a container recipe.
<a name="aws-resource-imagebuilder-containerrecipe--examples--Create_a_container_recipe."></a>

The following example shows the schema for the ContainerRecipe resource document in both YAML and JSON format.

#### YAML
<a name="aws-resource-imagebuilder-containerrecipe--examples--Create_a_container_recipe.--yaml"></a>

```
Resources:
   ContainerRecipeAllParameters:
      Type: 'AWS::ImageBuilder::ContainerRecipe'
      Properties:
         Name: 'container-recipe-name'
         Version: '1.0.0'
         ParentImage: !Ref ParentImage
         Description: 'description'
         ContainerType: 'DOCKER'
         Components:
            - ComponentArn: !Ref ComponentArn
            - ComponentArn: !Ref AnotherComponentArn
         TargetRepository:
            Service: 'ECR'
            RepositoryName: !Ref RepositoryName
         DockerfileTemplateData: |
           FROM {{{ imagebuilder:parentImage }}}
           {{{ imagebuilder:environments }}}
           {{{ imagebuilder:components }}}
         WorkingDirectory: "dummy-working-directory"
         KmsKeyId: !Ref KmsKeyId
         Tags:
            Usage: 'Documentation'
   
Outputs:
   OutputContainerRecipeArn:
      Value:
         'Fn::GetAtt':
            - ContainerRecipeAllParameters
            - Arn
```

#### JSON
<a name="aws-resource-imagebuilder-containerrecipe--examples--Create_a_container_recipe.--json"></a>

```
{
   "Resources": {
      "ContainerRecipeAllParameters": {
         "Type": "AWS::ImageBuilder::ContainerRecipe",
         "Properties": {
            "Name": "container-recipe-name",
            "Version": "1.0.0",
            "ParentImage": {
               "Ref": "ParentImage"
            },
            "Description": "description",
            "ContainerType": "DOCKER",
            "Components": [
               {
                  "ComponentArn": {
                     "Ref": "ComponentArn"
                  }
               },
               {
                  "ComponentArn": {
                     "Ref": "AnotherComponentArn"
                  }
               }
            ],
            "TargetRepository": {
               "Service": "ECR",
               "RepositoryName": {
                  "Ref": "RepositoryName"
               },
            },
            "DockerfileTemplateData": "FROM {{{ imagebuilder:parentImage }}}\n{{{ imagebuilder:environments }}}\n{{{ imagebuilder:components }}}\n",
            "WorkingDirectory": "dummy-working-directory",
            "KmsKeyId": {
               "Ref": "KmsKeyId"
            },
            "Tags": {
               "Usage": "Documentation"
            }
         }
      }
   },
   "Outputs": {
      "OutputContainerRecipeArn": {
         "Value": {
            "Fn::GetAtt": [
               "ContainerRecipeAllParameters",
               "Arn"
            ]
         }
      }
   }
}
```

# AWS::ImageBuilder::ContainerRecipe ComponentConfiguration
<a name="aws-properties-imagebuilder-containerrecipe-componentconfiguration"></a>

Configuration details of the component.

## Syntax
<a name="aws-properties-imagebuilder-containerrecipe-componentconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-containerrecipe-componentconfiguration-syntax.json"></a>

```
{
  "[ComponentArn](#cfn-imagebuilder-containerrecipe-componentconfiguration-componentarn)" : String,
  "[Parameters](#cfn-imagebuilder-containerrecipe-componentconfiguration-parameters)" : [ ComponentParameter, ... ]
}
```

### YAML
<a name="aws-properties-imagebuilder-containerrecipe-componentconfiguration-syntax.yaml"></a>

```
  [ComponentArn](#cfn-imagebuilder-containerrecipe-componentconfiguration-componentarn): String
  [Parameters](#cfn-imagebuilder-containerrecipe-componentconfiguration-parameters): 
    - ComponentParameter
```

## Properties
<a name="aws-properties-imagebuilder-containerrecipe-componentconfiguration-properties"></a>

`ComponentArn`  <a name="cfn-imagebuilder-containerrecipe-componentconfiguration-componentarn"></a>
The Amazon Resource Name (ARN) of the component.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):component/[a-z0-9-_]+/(?:(?:([0-9]+|x)\.([0-9]+|x)\.([0-9]+|x))|(?:[0-9]+\.[0-9]+\.[0-9]+/[0-9]+))$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Parameters`  <a name="cfn-imagebuilder-containerrecipe-componentconfiguration-parameters"></a>
A group of parameter settings that Image Builder uses to configure the component for a specific recipe.  
*Required*: No  
*Type*: Array of [ComponentParameter](aws-properties-imagebuilder-containerrecipe-componentparameter.md)  
*Minimum*: `1`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::ContainerRecipe ComponentParameter
<a name="aws-properties-imagebuilder-containerrecipe-componentparameter"></a>

Contains a key/value pair that sets the named component parameter.

## Syntax
<a name="aws-properties-imagebuilder-containerrecipe-componentparameter-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-containerrecipe-componentparameter-syntax.json"></a>

```
{
  "[Name](#cfn-imagebuilder-containerrecipe-componentparameter-name)" : String,
  "[Value](#cfn-imagebuilder-containerrecipe-componentparameter-value)" : [ String, ... ]
}
```

### YAML
<a name="aws-properties-imagebuilder-containerrecipe-componentparameter-syntax.yaml"></a>

```
  [Name](#cfn-imagebuilder-containerrecipe-componentparameter-name): String
  [Value](#cfn-imagebuilder-containerrecipe-componentparameter-value): 
    - String
```

## Properties
<a name="aws-properties-imagebuilder-containerrecipe-componentparameter-properties"></a>

`Name`  <a name="cfn-imagebuilder-containerrecipe-componentparameter-name"></a>
The name of the component parameter to set.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[^\x00]+`  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Value`  <a name="cfn-imagebuilder-containerrecipe-componentparameter-value"></a>
Sets the value for the named component parameter.  
*Required*: Yes  
*Type*: Array of String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::ContainerRecipe EbsInstanceBlockDeviceSpecification
<a name="aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification"></a>

Amazon EBS-specific block device mapping specifications.

## Syntax
<a name="aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-syntax.json"></a>

```
{
  "[DeleteOnTermination](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-deleteontermination)" : Boolean,
  "[Encrypted](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-encrypted)" : Boolean,
  "[Iops](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-iops)" : Integer,
  "[KmsKeyId](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-kmskeyid)" : String,
  "[SnapshotId](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-snapshotid)" : String,
  "[Throughput](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-throughput)" : Integer,
  "[VolumeSize](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-volumesize)" : Integer,
  "[VolumeType](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-volumetype)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-syntax.yaml"></a>

```
  [DeleteOnTermination](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-deleteontermination): Boolean
  [Encrypted](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-encrypted): Boolean
  [Iops](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-iops): Integer
  [KmsKeyId](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-kmskeyid): String
  [SnapshotId](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-snapshotid): String
  [Throughput](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-throughput): Integer
  [VolumeSize](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-volumesize): Integer
  [VolumeType](#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-volumetype): String
```

## Properties
<a name="aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-properties"></a>

`DeleteOnTermination`  <a name="cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-deleteontermination"></a>
Use to configure delete on termination of the associated device.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Encrypted`  <a name="cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-encrypted"></a>
Use to configure device encryption.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Iops`  <a name="cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-iops"></a>
Use to configure device IOPS.  
*Required*: No  
*Type*: Integer  
*Minimum*: `100`  
*Maximum*: `64000`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`KmsKeyId`  <a name="cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-kmskeyid"></a>
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*.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SnapshotId`  <a name="cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-snapshotid"></a>
The snapshot that defines the device contents.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Throughput`  <a name="cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-throughput"></a>
**For GP3 volumes only** – The throughput in MiB/s that the volume supports.  
*Required*: No  
*Type*: Integer  
*Minimum*: `125`  
*Maximum*: `1000`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`VolumeSize`  <a name="cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-volumesize"></a>
Use to override the device's volume size.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `16000`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`VolumeType`  <a name="cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-volumetype"></a>
Use to override the device's volume type.  
*Required*: No  
*Type*: String  
*Allowed values*: `standard | io1 | io2 | gp2 | gp3 | sc1 | st1`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::ContainerRecipe InstanceBlockDeviceMapping
<a name="aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping"></a>

Defines block device mappings for the instance used to configure your image.

## Syntax
<a name="aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping-syntax.json"></a>

```
{
  "[DeviceName](#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-devicename)" : String,
  "[Ebs](#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-ebs)" : EbsInstanceBlockDeviceSpecification,
  "[NoDevice](#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-nodevice)" : String,
  "[VirtualName](#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-virtualname)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping-syntax.yaml"></a>

```
  [DeviceName](#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-devicename): String
  [Ebs](#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-ebs): 
    EbsInstanceBlockDeviceSpecification
  [NoDevice](#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-nodevice): String
  [VirtualName](#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-virtualname): String
```

## Properties
<a name="aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping-properties"></a>

`DeviceName`  <a name="cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-devicename"></a>
The device to which these mappings apply.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Ebs`  <a name="cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-ebs"></a>
Use to manage Amazon EBS-specific configuration for this mapping.  
*Required*: No  
*Type*: [EbsInstanceBlockDeviceSpecification](aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`NoDevice`  <a name="cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-nodevice"></a>
Use to remove a mapping from the base image.  
*Required*: No  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `0`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`VirtualName`  <a name="cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-virtualname"></a>
Use to manage instance ephemeral devices.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::ContainerRecipe InstanceConfiguration
<a name="aws-properties-imagebuilder-containerrecipe-instanceconfiguration"></a>

Defines a custom base AMI and block device mapping configurations of an instance used for building and testing container images.

## Syntax
<a name="aws-properties-imagebuilder-containerrecipe-instanceconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-containerrecipe-instanceconfiguration-syntax.json"></a>

```
{
  "[BlockDeviceMappings](#cfn-imagebuilder-containerrecipe-instanceconfiguration-blockdevicemappings)" : [ InstanceBlockDeviceMapping, ... ],
  "[Image](#cfn-imagebuilder-containerrecipe-instanceconfiguration-image)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-containerrecipe-instanceconfiguration-syntax.yaml"></a>

```
  [BlockDeviceMappings](#cfn-imagebuilder-containerrecipe-instanceconfiguration-blockdevicemappings): 
    - InstanceBlockDeviceMapping
  [Image](#cfn-imagebuilder-containerrecipe-instanceconfiguration-image): String
```

## Properties
<a name="aws-properties-imagebuilder-containerrecipe-instanceconfiguration-properties"></a>

`BlockDeviceMappings`  <a name="cfn-imagebuilder-containerrecipe-instanceconfiguration-blockdevicemappings"></a>
Defines the block devices to attach for building an instance from this Image Builder AMI.  
*Required*: No  
*Type*: Array of [InstanceBlockDeviceMapping](aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Image`  <a name="cfn-imagebuilder-containerrecipe-instanceconfiguration-image"></a>
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.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::ContainerRecipe LatestVersion
<a name="aws-properties-imagebuilder-containerrecipe-latestversion"></a>

The resource ARNs with different wildcard variations of semantic versioning.

## Syntax
<a name="aws-properties-imagebuilder-containerrecipe-latestversion-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-containerrecipe-latestversion-syntax.json"></a>

```
{
  "[Arn](#cfn-imagebuilder-containerrecipe-latestversion-arn)" : String,
  "[Major](#cfn-imagebuilder-containerrecipe-latestversion-major)" : String,
  "[Minor](#cfn-imagebuilder-containerrecipe-latestversion-minor)" : String,
  "[Patch](#cfn-imagebuilder-containerrecipe-latestversion-patch)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-containerrecipe-latestversion-syntax.yaml"></a>

```
  [Arn](#cfn-imagebuilder-containerrecipe-latestversion-arn): String
  [Major](#cfn-imagebuilder-containerrecipe-latestversion-major): String
  [Minor](#cfn-imagebuilder-containerrecipe-latestversion-minor): String
  [Patch](#cfn-imagebuilder-containerrecipe-latestversion-patch): String
```

## Properties
<a name="aws-properties-imagebuilder-containerrecipe-latestversion-properties"></a>

`Arn`  <a name="cfn-imagebuilder-containerrecipe-latestversion-arn"></a>
The latest version Amazon Resource Name (ARN) of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Major`  <a name="cfn-imagebuilder-containerrecipe-latestversion-major"></a>
The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Minor`  <a name="cfn-imagebuilder-containerrecipe-latestversion-minor"></a>
The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Patch`  <a name="cfn-imagebuilder-containerrecipe-latestversion-patch"></a>
The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::ContainerRecipe TargetContainerRepository
<a name="aws-properties-imagebuilder-containerrecipe-targetcontainerrepository"></a>

The container repository where the output container image is stored.

## Syntax
<a name="aws-properties-imagebuilder-containerrecipe-targetcontainerrepository-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-containerrecipe-targetcontainerrepository-syntax.json"></a>

```
{
  "[RepositoryName](#cfn-imagebuilder-containerrecipe-targetcontainerrepository-repositoryname)" : String,
  "[Service](#cfn-imagebuilder-containerrecipe-targetcontainerrepository-service)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-containerrecipe-targetcontainerrepository-syntax.yaml"></a>

```
  [RepositoryName](#cfn-imagebuilder-containerrecipe-targetcontainerrepository-repositoryname): String
  [Service](#cfn-imagebuilder-containerrecipe-targetcontainerrepository-service): String
```

## Properties
<a name="aws-properties-imagebuilder-containerrecipe-targetcontainerrepository-properties"></a>

`RepositoryName`  <a name="cfn-imagebuilder-containerrecipe-targetcontainerrepository-repositoryname"></a>
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`.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Service`  <a name="cfn-imagebuilder-containerrecipe-targetcontainerrepository-service"></a>
Specifies the service in which this image was registered.  
*Required*: No  
*Type*: String  
*Allowed values*: `ECR`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::DistributionConfiguration
<a name="aws-resource-imagebuilder-distributionconfiguration"></a>

A distribution configuration allows you to specify the name and description of your output AMI, authorize other AWS accounts to launch the AMI, and replicate the AMI to other AWS Regions. It also allows you to export the AMI to Amazon S3.

## Syntax
<a name="aws-resource-imagebuilder-distributionconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-imagebuilder-distributionconfiguration-syntax.json"></a>

```
{
  "Type" : "AWS::ImageBuilder::DistributionConfiguration",
  "Properties" : {
      "[Description](#cfn-imagebuilder-distributionconfiguration-description)" : String,
      "[Distributions](#cfn-imagebuilder-distributionconfiguration-distributions)" : [ Distribution, ... ],
      "[Name](#cfn-imagebuilder-distributionconfiguration-name)" : String,
      "[Tags](#cfn-imagebuilder-distributionconfiguration-tags)" : {Key: Value, ...}
    }
}
```

### YAML
<a name="aws-resource-imagebuilder-distributionconfiguration-syntax.yaml"></a>

```
Type: AWS::ImageBuilder::DistributionConfiguration
Properties:
  [Description](#cfn-imagebuilder-distributionconfiguration-description): String
  [Distributions](#cfn-imagebuilder-distributionconfiguration-distributions): 
    - Distribution
  [Name](#cfn-imagebuilder-distributionconfiguration-name): String
  [Tags](#cfn-imagebuilder-distributionconfiguration-tags): 
    Key: Value
```

## Properties
<a name="aws-resource-imagebuilder-distributionconfiguration-properties"></a>

`Description`  <a name="cfn-imagebuilder-distributionconfiguration-description"></a>
The description of this distribution configuration.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Distributions`  <a name="cfn-imagebuilder-distributionconfiguration-distributions"></a>
The distributions of this distribution configuration formatted as an array of Distribution objects.  
*Required*: Yes  
*Type*: Array of [Distribution](aws-properties-imagebuilder-distributionconfiguration-distribution.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-imagebuilder-distributionconfiguration-name"></a>
The name of this distribution configuration.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-imagebuilder-distributionconfiguration-tags"></a>
The tags of this distribution configuration.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-imagebuilder-distributionconfiguration-return-values"></a>

### Ref
<a name="aws-resource-imagebuilder-distributionconfiguration-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the Amazon Resource Name (ARN) of the resource, such as `arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/myexampledistribution`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-imagebuilder-distributionconfiguration-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-imagebuilder-distributionconfiguration-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
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+)?)?$`.

`Name`  <a name="Name-fn::getatt"></a>
Returns the name of the distribution configuration.

## Examples
<a name="aws-resource-imagebuilder-distributionconfiguration--examples"></a>



**Topics**
+ [Create a distribution configuration resource for an AMI](#aws-resource-imagebuilder-distributionconfiguration--examples--Create_a_distribution_configuration_resource_for_an_AMI)
+ [Create a distribution configuration resource for a container image](#aws-resource-imagebuilder-distributionconfiguration--examples--Create_a_distribution_configuration_resource_for_a_container_image)

### Create a distribution configuration resource for an AMI
<a name="aws-resource-imagebuilder-distributionconfiguration--examples--Create_a_distribution_configuration_resource_for_an_AMI"></a>

The following example shows the schema for a DistributionConfiguration resource document for an AMI that is shared using launch permissions, presented in both YAML and JSON.

#### YAML
<a name="aws-resource-imagebuilder-distributionconfiguration--examples--Create_a_distribution_configuration_resource_for_an_AMI--yaml"></a>

```
Resources:
  DistributionConfigurationAllParameters:
    Type: 'AWS::ImageBuilder::DistributionConfiguration'
    Properties:
      Name: 'distribution-configuration-name'
      Description: 'description'
      Distributions:
        - Region: 'us-west-2'
          AmiDistributionConfiguration:
            Name: 'ami-dist-config-name-1 {{ imagebuilder:buildDate }}'
            Description: 'Set launch permissions and specify a license configuration for destination Region.'
            AmiTags:
              AmiTagKey: 'ami-tag-key'
            LaunchPermissionConfiguration:
              UserGroups:
                - 'ExampleGroup1'
                - 'ExampleGroup2'
              UserIds:
                - '123123123123' # Example user Id A
                - '321321321321' # Example user Id B
          LicenseConfigurationArns:
            - 'example-license-configuration-arn'
        - Region: 'us-east-1'
          AmiDistributionConfiguration:
            Name: 'ami-dist-config-name-2 {{ imagebuilder:buildDate }}'
            Description: 'Distribute a copy of the AMI to specified target accounts.'
            TargetAccountIds:
              - '111122223333'
              - '444455556666'
        - Region: 'us-east-2'
          AmiDistributionConfiguration:
            Name: 'ami-dist-config-name-3 {{ imagebuilder:buildDate }}'
            Description: 'Distribute to orgs and OUs.'
            AmiTags:
              auto-delete: 'no'
            LaunchPermissionConfiguration:
              OrganizationArns:
                - 'arn:aws:organizations::123456789012:organization/o-myorganization123'
              OrganizationalUnitArns:
                - 'arn:aws:organizations::123456789012:ou/o-123example/ou-1234-myorganizationalunit'
          
    Tags:
      CustomerDistributionConfigTagKey1: 'CustomerDistributionConfigTagValue1'
      CustomerDistributionConfigTagKey2: 'CustomerDistributionConfigTagValue2'
```

#### JSON
<a name="aws-resource-imagebuilder-distributionconfiguration--examples--Create_a_distribution_configuration_resource_for_an_AMI--json"></a>

```
{
    "Resources": {
        "DistributionConfigurationAllParameters": {
            "Type": "AWS::ImageBuilder::DistributionConfiguration",
            "Properties": {
                "Name": "distribution-configuration-name",
                "Description": "description",
                "Distributions": [
                    {
                        "Region": "us-west-2",
                        "AmiDistributionConfiguration": {
                            "Name": "ami-dist-config-name-1 {{ imagebuilder:buildDate }}",
                            "Description": "Set launch permissions and specify a license configuration for destination Region.",
                            "AmiTags": {
                                "AmiTagKey": "ami-tag-key"
                            },
                            "LaunchPermissionConfiguration": {
                                "UserGroups": [
                                    "ExampleGroup1",
                                    "ExampleGroup2"
                                ],
                                "UserIds": [
                                    "123123123123",
                                    "321321321321"
                                ]
                            }
                        },
                        "LicenseConfigurationArns": [
                            "example-license-configuration-arn"
                        ]
                    },
                    {
                        "Region": "us-east-1",
                        "AmiDistributionConfiguration": {
                            "Name": "ami-dist-config-name-2 {{ imagebuilder:buildDate }}",
                            "Description": "Distribute to specified target accounts.",
                            "TargetAccountIds": [
                                "111122223333",
                                "444455556666"
                            ]
                            
                        }
                    },
                    {
                        "Region": "us-east-2",
                        "AmiDistributionConfiguration": {
	                        "Name": "ami-dist-config-name-3 {{ imagebuilder:buildDate }}",
	                        "Description": "Distribute to orgs and OUs.",
	                        "AmiTags": {
	                            "auto-delete": "no"
	                        },
	                        "LaunchPermissionConfiguration": {
	                    	    "OrganizationArns": [
	                    	   	 "arn:aws:organizations::123456789012:organization/o-myorganization123"
		                        ],
		                        "OrganizationalUnitArns": [
		                       	 "arn:aws:organizations::123456789012:ou/o-123example/ou-1234-myorganizationalunit"
		                        ]
	                        }
                        
                        }
                    }
                ]
            },
            "Tags": {
                "CustomerDistributionConfigTagKey1": "CustomerDistributionConfigTagValue1",
                "CustomerDistributionConfigTagKey2": "CustomerDistributionConfigTagValue2"
            }
        }
    }
}
```

### Create a distribution configuration resource for a container image
<a name="aws-resource-imagebuilder-distributionconfiguration--examples--Create_a_distribution_configuration_resource_for_a_container_image"></a>

The following example shows the schema for a DistributionConfiguration resource document for a container image that is distributed to two Regions, presented in both YAML and JSON.

#### YAML
<a name="aws-resource-imagebuilder-distributionconfiguration--examples--Create_a_distribution_configuration_resource_for_a_container_image--yaml"></a>

```
Resources:
  DistributionConfigurationAllParameters:
    Type: 'AWS::ImageBuilder::DistributionConfiguration'
    Properties:
      Name: 'distribution-configuration-all-parameters'
      Description: 'Set target repository and container tags for container distribution to two Regions.'
      Distributions:
        - Region: 'us-west-2'
          ContainerDistributionConfiguration:
            Description: 'test distribution cfn template'
            TargetRepository:
              Service: ECR
              RepositoryName: 'cfn-test'
            ContainerTags:
              - 'Tag1'
              - 'Tag2'
        - Region: 'us-east-1'
          ContainerDistributionConfiguration:
            Description: 'test distribution cfn template'
            TargetRepository:
              Service: ECR
              RepositoryName: 'cfn-test'
            ContainerTags:
              - 'Tag1'
              - 'Tag2'      
    Tags:
      DistributionConfigurationTestTagKey1: 'DistributionConfigurationTestTagValue1'
      DistributionConfigurationTestTagKey2: 'DistributionConfigurationTestTagValue2'
```

#### JSON
<a name="aws-resource-imagebuilder-distributionconfiguration--examples--Create_a_distribution_configuration_resource_for_a_container_image--json"></a>

```
{
    "Resources": {
        "DistributionConfigurationAllParameters": {
            "Type": "AWS::ImageBuilder::DistributionConfiguration",
            "Properties": {
                "Name": "distribution-configuration-name",
                "Description": "Set target repository and container tags for container distribution to two Regions.",
                "Distributions": [
                    {
                        "Region": "us-west-2",
                        "ContainerDistributionConfiguration": {
                            "Description": "description",
                            "TargetRepository": {
                                "Service": "ECR",
                                "RepositoryName": "cfn-test"
                            },
                            "ContainerTags": ["Tag1", "Tag2"]
                        }
                    },
                    {
                        "Region": "us-east-1",
                        "ContainerDistributionConfiguration": {
                            "Description": "description",
                            "TargetRepository": {
                                "Service": "ECR",
                                "RepositoryName": "cfn-test"
                            },
                           "ContainerTags": ["Tag1", "Tag2"]
                        }
                    }
                ]
            },
            "Tags": {
   			"DistributionConfigurationTestTagKey1": "DistributionConfigurationTestTagValue1",
   			"DistributionConfigurationTestTagKey2": "DistributionConfigurationTestTagValue2"
            }
        }
    }
}
```

## See also
<a name="aws-resource-imagebuilder-distributionconfiguration--seealso"></a>
+ [Create a distribution configuration](https://docs.aws.amazon.com/imagebuilder/latest/userguide/managing-image-builder-cli.html#image-builder-cli-create-distribution-configuration) in the *Image Builder User Guide*.



# AWS::ImageBuilder::DistributionConfiguration AmiDistributionConfiguration
<a name="aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration"></a>

Define and configure the output AMIs of the pipeline.

## Syntax
<a name="aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration-syntax.json"></a>

```
{
  "[AmiTags](#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-amitags)" : {Key: Value, ...},
  "[Description](#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-description)" : String,
  "[KmsKeyId](#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-kmskeyid)" : String,
  "[LaunchPermissionConfiguration](#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-launchpermissionconfiguration)" : LaunchPermissionConfiguration,
  "[Name](#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-name)" : String,
  "[TargetAccountIds](#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-targetaccountids)" : [ String, ... ]
}
```

### YAML
<a name="aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration-syntax.yaml"></a>

```
  [AmiTags](#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-amitags): 
    Key: Value
  [Description](#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-description): String
  [KmsKeyId](#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-kmskeyid): String
  [LaunchPermissionConfiguration](#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-launchpermissionconfiguration): 
    LaunchPermissionConfiguration
  [Name](#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-name): String
  [TargetAccountIds](#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-targetaccountids): 
    - String
```

## Properties
<a name="aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration-properties"></a>

`AmiTags`  <a name="cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-amitags"></a>
The tags to apply to AMIs distributed to this Region.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Description`  <a name="cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-description"></a>
The description of the AMI distribution configuration. Minimum and maximum length are in characters.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`KmsKeyId`  <a name="cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-kmskeyid"></a>
The Amazon Resource Name (ARN) that uniquely identifies the KMS key used to encrypt the distributed image. 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*.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LaunchPermissionConfiguration`  <a name="cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-launchpermissionconfiguration"></a>
Launch permissions can be used to configure which AWS accounts can use the AMI to launch instances.  
*Required*: No  
*Type*: [LaunchPermissionConfiguration](aws-properties-imagebuilder-distributionconfiguration-launchpermissionconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-name"></a>
The name of the output AMI.  
*Required*: No  
*Type*: String  
*Pattern*: `^[-_A-Za-z0-9{][-_A-Za-z0-9\s:{}\.]+[-_A-Za-z0-9}]$`  
*Minimum*: `1`  
*Maximum*: `127`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TargetAccountIds`  <a name="cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-targetaccountids"></a>
The ID of an account to which you want to distribute an image.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `1536`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::DistributionConfiguration ContainerDistributionConfiguration
<a name="aws-properties-imagebuilder-distributionconfiguration-containerdistributionconfiguration"></a>

Container distribution settings for encryption, licensing, and sharing in a specific Region.

## Syntax
<a name="aws-properties-imagebuilder-distributionconfiguration-containerdistributionconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-distributionconfiguration-containerdistributionconfiguration-syntax.json"></a>

```
{
  "[ContainerTags](#cfn-imagebuilder-distributionconfiguration-containerdistributionconfiguration-containertags)" : [ String, ... ],
  "[Description](#cfn-imagebuilder-distributionconfiguration-containerdistributionconfiguration-description)" : String,
  "[TargetRepository](#cfn-imagebuilder-distributionconfiguration-containerdistributionconfiguration-targetrepository)" : TargetContainerRepository
}
```

### YAML
<a name="aws-properties-imagebuilder-distributionconfiguration-containerdistributionconfiguration-syntax.yaml"></a>

```
  [ContainerTags](#cfn-imagebuilder-distributionconfiguration-containerdistributionconfiguration-containertags): 
    - String
  [Description](#cfn-imagebuilder-distributionconfiguration-containerdistributionconfiguration-description): String
  [TargetRepository](#cfn-imagebuilder-distributionconfiguration-containerdistributionconfiguration-targetrepository): 
    TargetContainerRepository
```

## Properties
<a name="aws-properties-imagebuilder-distributionconfiguration-containerdistributionconfiguration-properties"></a>

`ContainerTags`  <a name="cfn-imagebuilder-distributionconfiguration-containerdistributionconfiguration-containertags"></a>
Tags that are attached to the container distribution configuration.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Description`  <a name="cfn-imagebuilder-distributionconfiguration-containerdistributionconfiguration-description"></a>
The description of the container distribution configuration.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TargetRepository`  <a name="cfn-imagebuilder-distributionconfiguration-containerdistributionconfiguration-targetrepository"></a>
The destination repository for the container distribution configuration.  
*Required*: No  
*Type*: [TargetContainerRepository](aws-properties-imagebuilder-distributionconfiguration-targetcontainerrepository.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::DistributionConfiguration Distribution
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution"></a>

 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

## Syntax
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution-syntax.json"></a>

```
{
  "[AmiDistributionConfiguration](#cfn-imagebuilder-distributionconfiguration-distribution-amidistributionconfiguration)" : AmiDistributionConfiguration,
  "[ContainerDistributionConfiguration](#cfn-imagebuilder-distributionconfiguration-distribution-containerdistributionconfiguration)" : ContainerDistributionConfiguration,
  "[FastLaunchConfigurations](#cfn-imagebuilder-distributionconfiguration-distribution-fastlaunchconfigurations)" : [ FastLaunchConfiguration, ... ],
  "[LaunchTemplateConfigurations](#cfn-imagebuilder-distributionconfiguration-distribution-launchtemplateconfigurations)" : [ LaunchTemplateConfiguration, ... ],
  "[LicenseConfigurationArns](#cfn-imagebuilder-distributionconfiguration-distribution-licenseconfigurationarns)" : [ String, ... ],
  "[Region](#cfn-imagebuilder-distributionconfiguration-distribution-region)" : String,
  "[SsmParameterConfigurations](#cfn-imagebuilder-distributionconfiguration-distribution-ssmparameterconfigurations)" : [ SsmParameterConfiguration, ... ]
}
```

### YAML
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution-syntax.yaml"></a>

```
  [AmiDistributionConfiguration](#cfn-imagebuilder-distributionconfiguration-distribution-amidistributionconfiguration): 
    AmiDistributionConfiguration
  [ContainerDistributionConfiguration](#cfn-imagebuilder-distributionconfiguration-distribution-containerdistributionconfiguration): 
    ContainerDistributionConfiguration
  [FastLaunchConfigurations](#cfn-imagebuilder-distributionconfiguration-distribution-fastlaunchconfigurations): 
    - FastLaunchConfiguration
  [LaunchTemplateConfigurations](#cfn-imagebuilder-distributionconfiguration-distribution-launchtemplateconfigurations): 
    - LaunchTemplateConfiguration
  [LicenseConfigurationArns](#cfn-imagebuilder-distributionconfiguration-distribution-licenseconfigurationarns): 
    - String
  [Region](#cfn-imagebuilder-distributionconfiguration-distribution-region): String
  [SsmParameterConfigurations](#cfn-imagebuilder-distributionconfiguration-distribution-ssmparameterconfigurations): 
    - SsmParameterConfiguration
```

## Properties
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution-properties"></a>

`AmiDistributionConfiguration`  <a name="cfn-imagebuilder-distributionconfiguration-distribution-amidistributionconfiguration"></a>
 The specific AMI settings, such as launch permissions and AMI tags. For details, see example schema below.  
*Required*: No  
*Type*: [AmiDistributionConfiguration](aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ContainerDistributionConfiguration`  <a name="cfn-imagebuilder-distributionconfiguration-distribution-containerdistributionconfiguration"></a>
Container distribution settings for encryption, licensing, and sharing in a specific Region. For details, see example schema below.  
*Required*: No  
*Type*: [ContainerDistributionConfiguration](aws-properties-imagebuilder-distributionconfiguration-containerdistributionconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`FastLaunchConfigurations`  <a name="cfn-imagebuilder-distributionconfiguration-distribution-fastlaunchconfigurations"></a>
The Windows faster-launching configurations to use for AMI distribution.  
*Required*: No  
*Type*: Array of [FastLaunchConfiguration](aws-properties-imagebuilder-distributionconfiguration-fastlaunchconfiguration.md)  
*Minimum*: `1`  
*Maximum*: `1000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LaunchTemplateConfigurations`  <a name="cfn-imagebuilder-distributionconfiguration-distribution-launchtemplateconfigurations"></a>
A group of launchTemplateConfiguration settings that apply to image distribution for specified accounts.  
*Required*: No  
*Type*: Array of [LaunchTemplateConfiguration](aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration.md)  
*Minimum*: `1`  
*Maximum*: `100`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LicenseConfigurationArns`  <a name="cfn-imagebuilder-distributionconfiguration-distribution-licenseconfigurationarns"></a>
 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).  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `50`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Region`  <a name="cfn-imagebuilder-distributionconfiguration-distribution-region"></a>
 The target Region for the Distribution Configuration. For example, `eu-west-1`.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SsmParameterConfigurations`  <a name="cfn-imagebuilder-distributionconfiguration-distribution-ssmparameterconfigurations"></a>
Contains settings to update AWS Systems Manager (SSM) Parameter Store Parameters with output AMI IDs from the build by target Region.  
*Required*: No  
*Type*: Array of [SsmParameterConfiguration](aws-properties-imagebuilder-distributionconfiguration-ssmparameterconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Examples
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution--examples"></a>



**Topics**
+ [Example 1: AmiDistributionConfiguration schema with launch permissions](#aws-properties-imagebuilder-distributionconfiguration-distribution--examples--Example_1:_AmiDistributionConfiguration_schema_with_launch_permissions)
+ [Example 2: Create a distribution configuration resource for a copied AMI](#aws-properties-imagebuilder-distributionconfiguration-distribution--examples--Example_2:_Create_a_distribution_configuration_resource_for_a_copied_AMI)
+ [Example 3: ContainerDistributionConfiguration schema](#aws-properties-imagebuilder-distributionconfiguration-distribution--examples--Example_3:_ContainerDistributionConfiguration_schema)

### Example 1: AmiDistributionConfiguration schema with launch permissions
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution--examples--Example_1:_AmiDistributionConfiguration_schema_with_launch_permissions"></a>

The following example shows the schema for the AmiDistributionConfiguration property in both YAML and JSON format.

**Note**  
To make an AMI public, set the launch permission authorized accounts to `all`. See the examples for making an AMI public at [EC2 ModifyImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html).

#### YAML
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution--examples--Example_1:_AmiDistributionConfiguration_schema_with_launch_permissions--yaml"></a>

```
Distributions:
  - Region: 'us-west-2'
    AmiDistributionConfiguration:
      Name: 'AmiCopyConfiguration - {{ imagebuilder:buildDate }}'
      Description: 'Share an AMI in the distribution Region by granting launch permissions to specified AWS organizations, OUs, user groups, and accounts.'
      AmiTags:
        AmiTagKey: 'AmiTagValue'
      LaunchPermissionConfiguration:
        OrganizationArns:
          - 'arn:aws:organizations::123456789012:organization/o-myorganization123'
        OrganizationalUnitArns:
          - 'arn:aws:organizations::123456789012:ou/o-123example/ou-1234-myorganizationalunit'
        UserGroups:
          - 'GroupName1'
          - 'GroupName2'
        UserIds:
          - '123456789012'
          - '345678901234'
```

#### JSON
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution--examples--Example_1:_AmiDistributionConfiguration_schema_with_launch_permissions--json"></a>

```
"{
    "Distributions": [{
        AmiDistributionConfiguration": {
        "Name": "AmiCopyConfiguration - {{ imagebuilder:buildDate }}",
        "Description": "Share an AMI in the distribution Region by granting launch permissions to specified user groups and accounts.",
        "AmiTags": {
            "AmiTagKey": "AmiTagValue"
        },
        "LaunchPermissionConfiguration": {
            "OrganizationArns": ["arn:aws:organizations::123456789012:organization/o-myorganization123"],
            "OrganizationalUnitArns": ["arn:aws:organizations::123456789012:ou/o-123example/ou-1234-myorganizationalunit"],
            "UserGroups": [
                "GroupName1",
                "GroupName2"
            ],
            "UserIds": [
                "123456789012",
                "345678901234"
            ]
        }
    }]
}
```

### Example 2: Create a distribution configuration resource for a copied AMI
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution--examples--Example_2:_Create_a_distribution_configuration_resource_for_a_copied_AMI"></a>

The following example shows the schema for the AmiDistributionConfiguration property in both YAML and JSON.

#### YAML
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution--examples--Example_2:_Create_a_distribution_configuration_resource_for_a_copied_AMI--yaml"></a>

```
Distributions:
  - Region: 'us-west-2'
    AmiDistributionConfiguration:
      Name: AmiCopyConfiguration - {{ imagebuilder:buildDate }}
      Description: 'Distribute a copy of the AMI to specific accounts in the destination Region.'
      AmiTags:
        AmiTagKey: 'AmiTagValue'
      TargetAccountIds: 
        - '123456789012'
        - '345678901234'
```

#### JSON
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution--examples--Example_2:_Create_a_distribution_configuration_resource_for_a_copied_AMI--json"></a>

```
{
    "Distributions": [{
        "AmiDistributionConfiguration": {
            "Name": "AmiCopyConfiguration - {{ imagebuilder:buildDate }}",
            "Description": "Distribute a copy of the AMI to specific accounts in the destination Region.",
            "AmiTags": {
                "AmiTagKey": "AmiTagValue"
            },
            "TargetAccountIds": ["123456789012", "345678901234"]
        }
    }]
}
```

### Example 3: ContainerDistributionConfiguration schema
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution--examples--Example_3:_ContainerDistributionConfiguration_schema"></a>

The following example shows the schema for the ContainerDistributionConfiguration property in both YAML and JSON format.

#### YAML
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution--examples--Example_3:_ContainerDistributionConfiguration_schema--yaml"></a>

```
Distributions:
  - Region: 'us-west-2'
    ContainerDistributionConfiguration:
      Description: 'test distribution cfn template'
      TargetRepository:
        Service: ECR
        RepositoryName: 'cfn-test'
      ContainerTags:
        - 'Tag1'
        - 'Tag2'
```

#### JSON
<a name="aws-properties-imagebuilder-distributionconfiguration-distribution--examples--Example_3:_ContainerDistributionConfiguration_schema--json"></a>

```
{
    "Distributions": [{
        "ContainerDistributionConfiguration": {
            "Description": "test distribution cfn template",
            "TargetRepository": {
                "Service": "ECR",
                "RepositoryName": "cfn-test"
            },
            "ContainerTags": ["Tag1", "Tag2"]
        }
    }]
}
```

# AWS::ImageBuilder::DistributionConfiguration FastLaunchConfiguration
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchconfiguration"></a>

Define and configure faster launching for output Windows AMIs.

## Syntax
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchconfiguration-syntax.json"></a>

```
{
  "[AccountId](#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-accountid)" : String,
  "[Enabled](#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-enabled)" : Boolean,
  "[LaunchTemplate](#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-launchtemplate)" : FastLaunchLaunchTemplateSpecification,
  "[MaxParallelLaunches](#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-maxparallellaunches)" : Integer,
  "[SnapshotConfiguration](#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-snapshotconfiguration)" : FastLaunchSnapshotConfiguration
}
```

### YAML
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchconfiguration-syntax.yaml"></a>

```
  [AccountId](#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-accountid): String
  [Enabled](#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-enabled): Boolean
  [LaunchTemplate](#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-launchtemplate): 
    FastLaunchLaunchTemplateSpecification
  [MaxParallelLaunches](#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-maxparallellaunches): Integer
  [SnapshotConfiguration](#cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-snapshotconfiguration): 
    FastLaunchSnapshotConfiguration
```

## Properties
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchconfiguration-properties"></a>

`AccountId`  <a name="cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-accountid"></a>
The owner account ID for the fast-launch enabled Windows AMI.  
*Required*: No  
*Type*: String  
*Pattern*: `^[0-9]{12}$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Enabled`  <a name="cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-enabled"></a>
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.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LaunchTemplate`  <a name="cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-launchtemplate"></a>
The launch template that the fast-launch enabled Windows AMI uses when it launches Windows instances to create pre-provisioned snapshots.  
*Required*: No  
*Type*: [FastLaunchLaunchTemplateSpecification](aws-properties-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MaxParallelLaunches`  <a name="cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-maxparallellaunches"></a>
The maximum number of parallel instances that are launched for creating resources.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SnapshotConfiguration`  <a name="cfn-imagebuilder-distributionconfiguration-fastlaunchconfiguration-snapshotconfiguration"></a>
Configuration settings for managing the number of snapshots that are created from pre-provisioned instances for the Windows AMI when faster launching is enabled.  
*Required*: No  
*Type*: [FastLaunchSnapshotConfiguration](aws-properties-imagebuilder-distributionconfiguration-fastlaunchsnapshotconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::DistributionConfiguration FastLaunchLaunchTemplateSpecification
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification"></a>

Identifies the launch template that the associated Windows AMI uses for launching an instance when faster launching is enabled.

**Note**  
You can specify either the `launchTemplateName` or the `launchTemplateId`, but not both.

## Syntax
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-syntax.json"></a>

```
{
  "[LaunchTemplateId](#cfn-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-launchtemplateid)" : String,
  "[LaunchTemplateName](#cfn-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-launchtemplatename)" : String,
  "[LaunchTemplateVersion](#cfn-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-launchtemplateversion)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-syntax.yaml"></a>

```
  [LaunchTemplateId](#cfn-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-launchtemplateid): String
  [LaunchTemplateName](#cfn-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-launchtemplatename): String
  [LaunchTemplateVersion](#cfn-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-launchtemplateversion): String
```

## Properties
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-properties"></a>

`LaunchTemplateId`  <a name="cfn-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-launchtemplateid"></a>
The ID of the launch template to use for faster launching for a Windows AMI.  
*Required*: No  
*Type*: String  
*Pattern*: `^lt-[a-z0-9-_]{17}$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LaunchTemplateName`  <a name="cfn-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-launchtemplatename"></a>
The name of the launch template to use for faster launching for a Windows AMI.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LaunchTemplateVersion`  <a name="cfn-imagebuilder-distributionconfiguration-fastlaunchlaunchtemplatespecification-launchtemplateversion"></a>
The version of the launch template to use for faster launching for a Windows AMI.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::DistributionConfiguration FastLaunchSnapshotConfiguration
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchsnapshotconfiguration"></a>

Configuration settings for creating and managing pre-provisioned snapshots for a fast-launch enabled Windows AMI.

## Syntax
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchsnapshotconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchsnapshotconfiguration-syntax.json"></a>

```
{
  "[TargetResourceCount](#cfn-imagebuilder-distributionconfiguration-fastlaunchsnapshotconfiguration-targetresourcecount)" : Integer
}
```

### YAML
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchsnapshotconfiguration-syntax.yaml"></a>

```
  [TargetResourceCount](#cfn-imagebuilder-distributionconfiguration-fastlaunchsnapshotconfiguration-targetresourcecount): Integer
```

## Properties
<a name="aws-properties-imagebuilder-distributionconfiguration-fastlaunchsnapshotconfiguration-properties"></a>

`TargetResourceCount`  <a name="cfn-imagebuilder-distributionconfiguration-fastlaunchsnapshotconfiguration-targetresourcecount"></a>
The number of pre-provisioned snapshots to keep on hand for a fast-launch enabled Windows AMI.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `10000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::DistributionConfiguration LaunchPermissionConfiguration
<a name="aws-properties-imagebuilder-distributionconfiguration-launchpermissionconfiguration"></a>

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).

## Syntax
<a name="aws-properties-imagebuilder-distributionconfiguration-launchpermissionconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-distributionconfiguration-launchpermissionconfiguration-syntax.json"></a>

```
{
  "[OrganizationalUnitArns](#cfn-imagebuilder-distributionconfiguration-launchpermissionconfiguration-organizationalunitarns)" : [ String, ... ],
  "[OrganizationArns](#cfn-imagebuilder-distributionconfiguration-launchpermissionconfiguration-organizationarns)" : [ String, ... ],
  "[UserGroups](#cfn-imagebuilder-distributionconfiguration-launchpermissionconfiguration-usergroups)" : [ String, ... ],
  "[UserIds](#cfn-imagebuilder-distributionconfiguration-launchpermissionconfiguration-userids)" : [ String, ... ]
}
```

### YAML
<a name="aws-properties-imagebuilder-distributionconfiguration-launchpermissionconfiguration-syntax.yaml"></a>

```
  [OrganizationalUnitArns](#cfn-imagebuilder-distributionconfiguration-launchpermissionconfiguration-organizationalunitarns): 
    - String
  [OrganizationArns](#cfn-imagebuilder-distributionconfiguration-launchpermissionconfiguration-organizationarns): 
    - String
  [UserGroups](#cfn-imagebuilder-distributionconfiguration-launchpermissionconfiguration-usergroups): 
    - String
  [UserIds](#cfn-imagebuilder-distributionconfiguration-launchpermissionconfiguration-userids): 
    - String
```

## Properties
<a name="aws-properties-imagebuilder-distributionconfiguration-launchpermissionconfiguration-properties"></a>

`OrganizationalUnitArns`  <a name="cfn-imagebuilder-distributionconfiguration-launchpermissionconfiguration-organizationalunitarns"></a>
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).  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `25`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OrganizationArns`  <a name="cfn-imagebuilder-distributionconfiguration-launchpermissionconfiguration-organizationarns"></a>
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.com/organizations/latest/userguide/orgs_introduction.html).  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `25`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`UserGroups`  <a name="cfn-imagebuilder-distributionconfiguration-launchpermissionconfiguration-usergroups"></a>
The name of the group.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`UserIds`  <a name="cfn-imagebuilder-distributionconfiguration-launchpermissionconfiguration-userids"></a>
The AWS account ID.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `1536`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::DistributionConfiguration LaunchTemplateConfiguration
<a name="aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration"></a>

Identifies an Amazon EC2 launch template to use for a specific account.

## Syntax
<a name="aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration-syntax.json"></a>

```
{
  "[AccountId](#cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-accountid)" : String,
  "[LaunchTemplateId](#cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-launchtemplateid)" : String,
  "[SetDefaultVersion](#cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-setdefaultversion)" : Boolean
}
```

### YAML
<a name="aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration-syntax.yaml"></a>

```
  [AccountId](#cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-accountid): String
  [LaunchTemplateId](#cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-launchtemplateid): String
  [SetDefaultVersion](#cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-setdefaultversion): Boolean
```

## Properties
<a name="aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration-properties"></a>

`AccountId`  <a name="cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-accountid"></a>
The account ID that this configuration applies to.  
*Required*: No  
*Type*: String  
*Pattern*: `^[0-9]{12}$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LaunchTemplateId`  <a name="cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-launchtemplateid"></a>
Identifies the Amazon EC2 launch template to use.  
*Required*: No  
*Type*: String  
*Pattern*: `^lt-[a-z0-9-_]{17}$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SetDefaultVersion`  <a name="cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-setdefaultversion"></a>
Set the specified Amazon EC2 launch template as the default launch template for the specified account.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::DistributionConfiguration SsmParameterConfiguration
<a name="aws-properties-imagebuilder-distributionconfiguration-ssmparameterconfiguration"></a>

Configuration for a single Parameter in the AWS Systems Manager (SSM) Parameter Store in a given Region.

## Syntax
<a name="aws-properties-imagebuilder-distributionconfiguration-ssmparameterconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-distributionconfiguration-ssmparameterconfiguration-syntax.json"></a>

```
{
  "[AmiAccountId](#cfn-imagebuilder-distributionconfiguration-ssmparameterconfiguration-amiaccountid)" : String,
  "[DataType](#cfn-imagebuilder-distributionconfiguration-ssmparameterconfiguration-datatype)" : String,
  "[ParameterName](#cfn-imagebuilder-distributionconfiguration-ssmparameterconfiguration-parametername)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-distributionconfiguration-ssmparameterconfiguration-syntax.yaml"></a>

```
  [AmiAccountId](#cfn-imagebuilder-distributionconfiguration-ssmparameterconfiguration-amiaccountid): String
  [DataType](#cfn-imagebuilder-distributionconfiguration-ssmparameterconfiguration-datatype): String
  [ParameterName](#cfn-imagebuilder-distributionconfiguration-ssmparameterconfiguration-parametername): String
```

## Properties
<a name="aws-properties-imagebuilder-distributionconfiguration-ssmparameterconfiguration-properties"></a>

`AmiAccountId`  <a name="cfn-imagebuilder-distributionconfiguration-ssmparameterconfiguration-amiaccountid"></a>
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.  
*Required*: No  
*Type*: String  
*Pattern*: `^[0-9]{12}$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DataType`  <a name="cfn-imagebuilder-distributionconfiguration-ssmparameterconfiguration-datatype"></a>
The data type specifies what type of value the Parameter contains. We recommend that you use data type `aws:ec2:image`.  
*Required*: No  
*Type*: String  
*Allowed values*: `text | aws:ec2:image`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ParameterName`  <a name="cfn-imagebuilder-distributionconfiguration-ssmparameterconfiguration-parametername"></a>
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.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9_.\-\/]+$`  
*Minimum*: `1`  
*Maximum*: `1011`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::DistributionConfiguration TargetContainerRepository
<a name="aws-properties-imagebuilder-distributionconfiguration-targetcontainerrepository"></a>

The container repository where the output container image is stored.

## Syntax
<a name="aws-properties-imagebuilder-distributionconfiguration-targetcontainerrepository-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-distributionconfiguration-targetcontainerrepository-syntax.json"></a>

```
{
  "[RepositoryName](#cfn-imagebuilder-distributionconfiguration-targetcontainerrepository-repositoryname)" : String,
  "[Service](#cfn-imagebuilder-distributionconfiguration-targetcontainerrepository-service)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-distributionconfiguration-targetcontainerrepository-syntax.yaml"></a>

```
  [RepositoryName](#cfn-imagebuilder-distributionconfiguration-targetcontainerrepository-repositoryname): String
  [Service](#cfn-imagebuilder-distributionconfiguration-targetcontainerrepository-service): String
```

## Properties
<a name="aws-properties-imagebuilder-distributionconfiguration-targetcontainerrepository-properties"></a>

`RepositoryName`  <a name="cfn-imagebuilder-distributionconfiguration-targetcontainerrepository-repositoryname"></a>
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`.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Service`  <a name="cfn-imagebuilder-distributionconfiguration-targetcontainerrepository-service"></a>
Specifies the service in which this image was registered.  
*Required*: No  
*Type*: String  
*Allowed values*: `ECR`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::Image
<a name="aws-resource-imagebuilder-image"></a>

Creates a new image. This request will create a new image along with all of the configured output resources defined in the distribution configuration. You must specify exactly one recipe for your image, using either a ContainerRecipeArn or an ImageRecipeArn.

## Syntax
<a name="aws-resource-imagebuilder-image-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-imagebuilder-image-syntax.json"></a>

```
{
  "Type" : "AWS::ImageBuilder::Image",
  "Properties" : {
      "[ContainerRecipeArn](#cfn-imagebuilder-image-containerrecipearn)" : String,
      "[DeletionSettings](#cfn-imagebuilder-image-deletionsettings)" : DeletionSettings,
      "[DistributionConfigurationArn](#cfn-imagebuilder-image-distributionconfigurationarn)" : String,
      "[EnhancedImageMetadataEnabled](#cfn-imagebuilder-image-enhancedimagemetadataenabled)" : Boolean,
      "[ExecutionRole](#cfn-imagebuilder-image-executionrole)" : String,
      "[ImagePipelineExecutionSettings](#cfn-imagebuilder-image-imagepipelineexecutionsettings)" : ImagePipelineExecutionSettings,
      "[ImageRecipeArn](#cfn-imagebuilder-image-imagerecipearn)" : String,
      "[ImageScanningConfiguration](#cfn-imagebuilder-image-imagescanningconfiguration)" : ImageScanningConfiguration,
      "[ImageTestsConfiguration](#cfn-imagebuilder-image-imagetestsconfiguration)" : ImageTestsConfiguration,
      "[InfrastructureConfigurationArn](#cfn-imagebuilder-image-infrastructureconfigurationarn)" : String,
      "[LoggingConfiguration](#cfn-imagebuilder-image-loggingconfiguration)" : ImageLoggingConfiguration,
      "[Tags](#cfn-imagebuilder-image-tags)" : {Key: Value, ...},
      "[Workflows](#cfn-imagebuilder-image-workflows)" : [ WorkflowConfiguration, ... ]
    }
}
```

### YAML
<a name="aws-resource-imagebuilder-image-syntax.yaml"></a>

```
Type: AWS::ImageBuilder::Image
Properties:
  [ContainerRecipeArn](#cfn-imagebuilder-image-containerrecipearn): String
  [DeletionSettings](#cfn-imagebuilder-image-deletionsettings): 
    DeletionSettings
  [DistributionConfigurationArn](#cfn-imagebuilder-image-distributionconfigurationarn): String
  [EnhancedImageMetadataEnabled](#cfn-imagebuilder-image-enhancedimagemetadataenabled): Boolean
  [ExecutionRole](#cfn-imagebuilder-image-executionrole): String
  [ImagePipelineExecutionSettings](#cfn-imagebuilder-image-imagepipelineexecutionsettings): 
    ImagePipelineExecutionSettings
  [ImageRecipeArn](#cfn-imagebuilder-image-imagerecipearn): String
  [ImageScanningConfiguration](#cfn-imagebuilder-image-imagescanningconfiguration): 
    ImageScanningConfiguration
  [ImageTestsConfiguration](#cfn-imagebuilder-image-imagetestsconfiguration): 
    ImageTestsConfiguration
  [InfrastructureConfigurationArn](#cfn-imagebuilder-image-infrastructureconfigurationarn): String
  [LoggingConfiguration](#cfn-imagebuilder-image-loggingconfiguration): 
    ImageLoggingConfiguration
  [Tags](#cfn-imagebuilder-image-tags): 
    Key: Value
  [Workflows](#cfn-imagebuilder-image-workflows): 
    - WorkflowConfiguration
```

## Properties
<a name="aws-resource-imagebuilder-image-properties"></a>

`ContainerRecipeArn`  <a name="cfn-imagebuilder-image-containerrecipearn"></a>
The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`DeletionSettings`  <a name="cfn-imagebuilder-image-deletionsettings"></a>
Enables deletion of underlying resources of an image when it is replaced or deleted, including its Amazon Machine Images (AMIs), snapshots, or containers.  
*Required*: No  
*Type*: [DeletionSettings](aws-properties-imagebuilder-image-deletionsettings.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DistributionConfigurationArn`  <a name="cfn-imagebuilder-image-distributionconfigurationarn"></a>
The Amazon Resource Name (ARN) of the distribution configuration that defines and configures the outputs of your pipeline.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`EnhancedImageMetadataEnabled`  <a name="cfn-imagebuilder-image-enhancedimagemetadataenabled"></a>
Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ExecutionRole`  <a name="cfn-imagebuilder-image-executionrole"></a>
The name or Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to perform workflow actions.  
*Required*: No  
*Type*: String  
*Pattern*: `^(?:arn:aws(?:-[a-z]+)*:iam::[0-9]{12}:role/)?[a-zA-Z_0-9+=,.@\-_/]+$`  
*Minimum*: `1`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ImagePipelineExecutionSettings`  <a name="cfn-imagebuilder-image-imagepipelineexecutionsettings"></a>
The image pipeline execution settings of the image.  
*Required*: No  
*Type*: [ImagePipelineExecutionSettings](aws-properties-imagebuilder-image-imagepipelineexecutionsettings.md)  
*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)

`ImageRecipeArn`  <a name="cfn-imagebuilder-image-imagerecipearn"></a>
The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ImageScanningConfiguration`  <a name="cfn-imagebuilder-image-imagescanningconfiguration"></a>
Contains settings for vulnerability scans.  
*Required*: No  
*Type*: [ImageScanningConfiguration](aws-properties-imagebuilder-image-imagescanningconfiguration.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ImageTestsConfiguration`  <a name="cfn-imagebuilder-image-imagetestsconfiguration"></a>
The image tests configuration of the image.  
*Required*: No  
*Type*: [ImageTestsConfiguration](aws-properties-imagebuilder-image-imagetestsconfiguration.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`InfrastructureConfigurationArn`  <a name="cfn-imagebuilder-image-infrastructureconfigurationarn"></a>
The Amazon Resource Name (ARN) of the infrastructure configuration that defines the environment in which your image will be built and tested.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`LoggingConfiguration`  <a name="cfn-imagebuilder-image-loggingconfiguration"></a>
The logging configuration that's defined for the image. Image Builder uses the defined settings to direct execution log output during image creation.  
*Required*: No  
*Type*: [ImageLoggingConfiguration](aws-properties-imagebuilder-image-imageloggingconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-imagebuilder-image-tags"></a>
The tags of the image.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Workflows`  <a name="cfn-imagebuilder-image-workflows"></a>
Contains an array of workflow configuration objects.  
*Required*: No  
*Type*: Array of [WorkflowConfiguration](aws-properties-imagebuilder-image-workflowconfiguration.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

## Return values
<a name="aws-resource-imagebuilder-image-return-values"></a>

### Ref
<a name="aws-resource-imagebuilder-image-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the resource ARN, such as `arn:aws:imagebuilder:us-west-2:123456789012:image/my-example-image`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-imagebuilder-image-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-imagebuilder-image-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
Returns the Amazon Resource Name (ARN) of the image. For example, `arn:aws:imagebuilder:us-west-2:123456789012:image/mybasicrecipe/2019.12.03/1`.

`ImageId`  <a name="ImageId-fn::getatt"></a>
Returns the AMI ID of the Amazon EC2 AMI in the Region in which you are using Image Builder. Values are returned only for AMIs, and not for container images.

`ImageUri`  <a name="ImageUri-fn::getatt"></a>
Returns the URI for a container image created in the context Region. Values are returned only for container images, and not for AMIs.

`LatestVersion.Arn`  <a name="LatestVersion.Arn-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) of the Image Builder resource.

`LatestVersion.Major`  <a name="LatestVersion.Major-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource.

`LatestVersion.Minor`  <a name="LatestVersion.Minor-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource.

`LatestVersion.Patch`  <a name="LatestVersion.Patch-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource.

`Name`  <a name="Name-fn::getatt"></a>
Returns the name of the image.

## Examples
<a name="aws-resource-imagebuilder-image--examples"></a>



### Create an image
<a name="aws-resource-imagebuilder-image--examples--Create_an_image"></a>

The following example shows the schema for all of the parameters of the Image resource document in both YAML and JSON format.

#### YAML
<a name="aws-resource-imagebuilder-image--examples--Create_an_image--yaml"></a>

```
Resources:
  ImageAllParameters:
    Type: 'AWS::ImageBuilder::Image'
    Properties:
      ImageRecipeArn: !Ref ImageRecipeArn
      InfrastructureConfigurationArn: !Ref InfrastructureConfigurationArn
      DistributionConfigurationArn: !Ref DistributionConfigurationArn
      ImageTestsConfiguration:
        ImageTestsEnabled: false
        TimeoutMinutes: 60
      Tags:
        CustomerImageTagKey1: 'CustomerImageTagValue1'
        CustomerImageTagKey2: 'CustomerImageTagValue2'
```

#### JSON
<a name="aws-resource-imagebuilder-image--examples--Create_an_image--json"></a>

```
{
    "Resources": {
        "ImageAllParameters": {
            "Type": "AWS::ImageBuilder::Image",
            "Properties": {
                "ImageRecipeArn": {
                    "Ref": "ImageRecipeArn"
                },
                "InfrastructureConfigurationArn": {
                    "Ref": "InfrastructureConfigurationArn"
                },
                "DistributionConfigurationArn": {
                    "Ref": "DistributionConfigurationArn"
                },
                "ImageTestsConfiguration": {
                    "ImageTestsEnabled": false,
                    "TimeoutMinutes": 60
                },
                "Tags": {
                    "CustomerImageTagKey1": "CustomerImageTagValue1",
                    "CustomerImageTagKey2": "CustomerImageTagValue2"
                }
            }
        }
    }
}
```

# AWS::ImageBuilder::Image DeletionSettings
<a name="aws-properties-imagebuilder-image-deletionsettings"></a>

Contains deletion settings of underlying resources of an image when it is replaced or deleted, including its Amazon Machine Images (AMIs), snapshots, or containers.

**Note**  
If you specify the `Retain` option in the [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-updatereplacepolicy.html) or [UpdateReplacePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html), the deletion of underlying resources will not be executed.

## Syntax
<a name="aws-properties-imagebuilder-image-deletionsettings-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-image-deletionsettings-syntax.json"></a>

```
{
  "[ExecutionRole](#cfn-imagebuilder-image-deletionsettings-executionrole)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-image-deletionsettings-syntax.yaml"></a>

```
  [ExecutionRole](#cfn-imagebuilder-image-deletionsettings-executionrole): String
```

## Properties
<a name="aws-properties-imagebuilder-image-deletionsettings-properties"></a>

`ExecutionRole`  <a name="cfn-imagebuilder-image-deletionsettings-executionrole"></a>
The name or Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to delete the image and its underlying resources.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::Image EcrConfiguration
<a name="aws-properties-imagebuilder-image-ecrconfiguration"></a>

Settings that Image Builder uses to configure the ECR repository and the output container images that Amazon Inspector scans.

## Syntax
<a name="aws-properties-imagebuilder-image-ecrconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-image-ecrconfiguration-syntax.json"></a>

```
{
  "[ContainerTags](#cfn-imagebuilder-image-ecrconfiguration-containertags)" : [ String, ... ],
  "[RepositoryName](#cfn-imagebuilder-image-ecrconfiguration-repositoryname)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-image-ecrconfiguration-syntax.yaml"></a>

```
  [ContainerTags](#cfn-imagebuilder-image-ecrconfiguration-containertags): 
    - String
  [RepositoryName](#cfn-imagebuilder-image-ecrconfiguration-repositoryname): String
```

## Properties
<a name="aws-properties-imagebuilder-image-ecrconfiguration-properties"></a>

`ContainerTags`  <a name="cfn-imagebuilder-image-ecrconfiguration-containertags"></a>
Tags for Image Builder to apply to the output container image that Amazon Inspector scans. Tags can help you identify and manage your scanned images.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RepositoryName`  <a name="cfn-imagebuilder-image-ecrconfiguration-repositoryname"></a>
The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don’t provide this information, Image Builder creates a repository in your account named `image-builder-image-scanning-repository` for vulnerability scans of your output container images.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::Image ImageLoggingConfiguration
<a name="aws-properties-imagebuilder-image-imageloggingconfiguration"></a>

The logging configuration that's defined for the image. Image Builder uses the defined settings to direct execution log output during image creation.

## Syntax
<a name="aws-properties-imagebuilder-image-imageloggingconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-image-imageloggingconfiguration-syntax.json"></a>

```
{
  "[LogGroupName](#cfn-imagebuilder-image-imageloggingconfiguration-loggroupname)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-image-imageloggingconfiguration-syntax.yaml"></a>

```
  [LogGroupName](#cfn-imagebuilder-image-imageloggingconfiguration-loggroupname): String
```

## Properties
<a name="aws-properties-imagebuilder-image-imageloggingconfiguration-properties"></a>

`LogGroupName`  <a name="cfn-imagebuilder-image-imageloggingconfiguration-loggroupname"></a>
The log group name that Image Builder uses for image creation. If not specified, the log group name defaults to `/aws/imagebuilder/image-name`.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9\-_/\.]{1,512}$`  
*Minimum*: `1`  
*Maximum*: `512`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::Image ImagePipelineExecutionSettings
<a name="aws-properties-imagebuilder-image-imagepipelineexecutionsettings"></a>

Contains settings for starting an image pipeline execution.

## Syntax
<a name="aws-properties-imagebuilder-image-imagepipelineexecutionsettings-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-image-imagepipelineexecutionsettings-syntax.json"></a>

```
{
  "[DeploymentId](#cfn-imagebuilder-image-imagepipelineexecutionsettings-deploymentid)" : String,
  "[OnUpdate](#cfn-imagebuilder-image-imagepipelineexecutionsettings-onupdate)" : Boolean
}
```

### YAML
<a name="aws-properties-imagebuilder-image-imagepipelineexecutionsettings-syntax.yaml"></a>

```
  [DeploymentId](#cfn-imagebuilder-image-imagepipelineexecutionsettings-deploymentid): String
  [OnUpdate](#cfn-imagebuilder-image-imagepipelineexecutionsettings-onupdate): Boolean
```

## Properties
<a name="aws-properties-imagebuilder-image-imagepipelineexecutionsettings-properties"></a>

`DeploymentId`  <a name="cfn-imagebuilder-image-imagepipelineexecutionsettings-deploymentid"></a>
The deployment identifier of the pipeline, utilized to initiate new image pipeline executions.  
*Required*: No  
*Type*: String  
*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)

`OnUpdate`  <a name="cfn-imagebuilder-image-imagepipelineexecutionsettings-onupdate"></a>
Defines whether the pipeline should be executed upon pipeline updates. False by default.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)

# AWS::ImageBuilder::Image ImageScanningConfiguration
<a name="aws-properties-imagebuilder-image-imagescanningconfiguration"></a>

Contains settings for Image Builder image resource and container image scans.

## Syntax
<a name="aws-properties-imagebuilder-image-imagescanningconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-image-imagescanningconfiguration-syntax.json"></a>

```
{
  "[EcrConfiguration](#cfn-imagebuilder-image-imagescanningconfiguration-ecrconfiguration)" : EcrConfiguration,
  "[ImageScanningEnabled](#cfn-imagebuilder-image-imagescanningconfiguration-imagescanningenabled)" : Boolean
}
```

### YAML
<a name="aws-properties-imagebuilder-image-imagescanningconfiguration-syntax.yaml"></a>

```
  [EcrConfiguration](#cfn-imagebuilder-image-imagescanningconfiguration-ecrconfiguration): 
    EcrConfiguration
  [ImageScanningEnabled](#cfn-imagebuilder-image-imagescanningconfiguration-imagescanningenabled): Boolean
```

## Properties
<a name="aws-properties-imagebuilder-image-imagescanningconfiguration-properties"></a>

`EcrConfiguration`  <a name="cfn-imagebuilder-image-imagescanningconfiguration-ecrconfiguration"></a>
Contains Amazon ECR settings for vulnerability scans.  
*Required*: No  
*Type*: [EcrConfiguration](aws-properties-imagebuilder-image-ecrconfiguration.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ImageScanningEnabled`  <a name="cfn-imagebuilder-image-imagescanningconfiguration-imagescanningenabled"></a>
A setting that indicates whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::Image ImageTestsConfiguration
<a name="aws-properties-imagebuilder-image-imagetestsconfiguration"></a>

When you create an image or container recipe with Image Builder, you can add the build or test components that are used to create the final image. You must have at least one build component to create a recipe, but test components are not required. If you have added tests, they run after the image is created, to ensure that the target image is functional and can be used reliably for launching Amazon EC2 instances.

## Syntax
<a name="aws-properties-imagebuilder-image-imagetestsconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-image-imagetestsconfiguration-syntax.json"></a>

```
{
  "[ImageTestsEnabled](#cfn-imagebuilder-image-imagetestsconfiguration-imagetestsenabled)" : Boolean,
  "[TimeoutMinutes](#cfn-imagebuilder-image-imagetestsconfiguration-timeoutminutes)" : Integer
}
```

### YAML
<a name="aws-properties-imagebuilder-image-imagetestsconfiguration-syntax.yaml"></a>

```
  [ImageTestsEnabled](#cfn-imagebuilder-image-imagetestsconfiguration-imagetestsenabled): Boolean
  [TimeoutMinutes](#cfn-imagebuilder-image-imagetestsconfiguration-timeoutminutes): Integer
```

## Properties
<a name="aws-properties-imagebuilder-image-imagetestsconfiguration-properties"></a>

`ImageTestsEnabled`  <a name="cfn-imagebuilder-image-imagetestsconfiguration-imagetestsenabled"></a>
Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TimeoutMinutes`  <a name="cfn-imagebuilder-image-imagetestsconfiguration-timeoutminutes"></a>
The maximum time in minutes that tests are permitted to run.  
The timeout property is not currently active. This value is ignored.
*Required*: No  
*Type*: Integer  
*Minimum*: `60`  
*Maximum*: `1440`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::Image LatestVersion
<a name="aws-properties-imagebuilder-image-latestversion"></a>

The resource ARNs with different wildcard variations of semantic versioning.

## Syntax
<a name="aws-properties-imagebuilder-image-latestversion-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-image-latestversion-syntax.json"></a>

```
{
  "[Arn](#cfn-imagebuilder-image-latestversion-arn)" : String,
  "[Major](#cfn-imagebuilder-image-latestversion-major)" : String,
  "[Minor](#cfn-imagebuilder-image-latestversion-minor)" : String,
  "[Patch](#cfn-imagebuilder-image-latestversion-patch)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-image-latestversion-syntax.yaml"></a>

```
  [Arn](#cfn-imagebuilder-image-latestversion-arn): String
  [Major](#cfn-imagebuilder-image-latestversion-major): String
  [Minor](#cfn-imagebuilder-image-latestversion-minor): String
  [Patch](#cfn-imagebuilder-image-latestversion-patch): String
```

## Properties
<a name="aws-properties-imagebuilder-image-latestversion-properties"></a>

`Arn`  <a name="cfn-imagebuilder-image-latestversion-arn"></a>
The latest version Amazon Resource Name (ARN) of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Major`  <a name="cfn-imagebuilder-image-latestversion-major"></a>
The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Minor`  <a name="cfn-imagebuilder-image-latestversion-minor"></a>
The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Patch`  <a name="cfn-imagebuilder-image-latestversion-patch"></a>
The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::Image WorkflowConfiguration
<a name="aws-properties-imagebuilder-image-workflowconfiguration"></a>

Contains control settings and configurable inputs for a workflow resource.

## Syntax
<a name="aws-properties-imagebuilder-image-workflowconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-image-workflowconfiguration-syntax.json"></a>

```
{
  "[OnFailure](#cfn-imagebuilder-image-workflowconfiguration-onfailure)" : String,
  "[ParallelGroup](#cfn-imagebuilder-image-workflowconfiguration-parallelgroup)" : String,
  "[Parameters](#cfn-imagebuilder-image-workflowconfiguration-parameters)" : [ WorkflowParameter, ... ],
  "[WorkflowArn](#cfn-imagebuilder-image-workflowconfiguration-workflowarn)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-image-workflowconfiguration-syntax.yaml"></a>

```
  [OnFailure](#cfn-imagebuilder-image-workflowconfiguration-onfailure): String
  [ParallelGroup](#cfn-imagebuilder-image-workflowconfiguration-parallelgroup): String
  [Parameters](#cfn-imagebuilder-image-workflowconfiguration-parameters): 
    - WorkflowParameter
  [WorkflowArn](#cfn-imagebuilder-image-workflowconfiguration-workflowarn): String
```

## Properties
<a name="aws-properties-imagebuilder-image-workflowconfiguration-properties"></a>

`OnFailure`  <a name="cfn-imagebuilder-image-workflowconfiguration-onfailure"></a>
The action to take if the workflow fails.  
*Required*: No  
*Type*: String  
*Allowed values*: `CONTINUE | ABORT`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ParallelGroup`  <a name="cfn-imagebuilder-image-workflowconfiguration-parallelgroup"></a>
Test workflows are defined within named runtime groups called parallel groups. The parallel group is the named group that contains this test workflow. Test workflows within a parallel group can run at the same time. Image Builder starts up to five test workflows in the group at the same time, and starts additional workflows as others complete, until all workflows in the group have completed. This field only applies for test workflows.  
*Required*: No  
*Type*: String  
*Pattern*: `^[A-Za-z0-9][A-Za-z0-9-_+#]{0,99}$`  
*Minimum*: `1`  
*Maximum*: `100`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Parameters`  <a name="cfn-imagebuilder-image-workflowconfiguration-parameters"></a>
Contains parameter values for each of the parameters that the workflow document defined for the workflow resource.  
*Required*: No  
*Type*: Array of [WorkflowParameter](aws-properties-imagebuilder-image-workflowparameter.md)  
*Minimum*: `1`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`WorkflowArn`  <a name="cfn-imagebuilder-image-workflowconfiguration-workflowarn"></a>
The Amazon Resource Name (ARN) of the workflow resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws(?:-[a-z]+)*:imagebuilder:[a-z]{2,}(?:-[a-z]+)+-[0-9]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):workflow/(build|test|distribution)/[a-z0-9-_]+/(?:(?:([0-9]+|x)\.([0-9]+|x)\.([0-9]+|x))|(?:[0-9]+\.[0-9]+\.[0-9]+/[0-9]+))$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::Image WorkflowParameter
<a name="aws-properties-imagebuilder-image-workflowparameter"></a>

Contains a key/value pair that sets the named workflow parameter.

## Syntax
<a name="aws-properties-imagebuilder-image-workflowparameter-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-image-workflowparameter-syntax.json"></a>

```
{
  "[Name](#cfn-imagebuilder-image-workflowparameter-name)" : String,
  "[Value](#cfn-imagebuilder-image-workflowparameter-value)" : [ String, ... ]
}
```

### YAML
<a name="aws-properties-imagebuilder-image-workflowparameter-syntax.yaml"></a>

```
  [Name](#cfn-imagebuilder-image-workflowparameter-name): String
  [Value](#cfn-imagebuilder-image-workflowparameter-value): 
    - String
```

## Properties
<a name="aws-properties-imagebuilder-image-workflowparameter-properties"></a>

`Name`  <a name="cfn-imagebuilder-image-workflowparameter-name"></a>
The name of the workflow parameter to set.  
*Required*: No  
*Type*: String  
*Pattern*: `[^\x00]+`  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Value`  <a name="cfn-imagebuilder-image-workflowparameter-value"></a>
Sets the value for the named workflow parameter.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::ImagePipeline
<a name="aws-resource-imagebuilder-imagepipeline"></a>

An image pipeline is the automation configuration for building secure OS images on AWS. The Image Builder image pipeline is associated with an image recipe that defines the build, validation, and test phases for an image build lifecycle. An image pipeline can be associated with an infrastructure configuration that defines where your image is built. You can define attributes, such as instance types, a subnet for your VPC, security groups, logging, and other infrastructure-related configurations. You can also associate your image pipeline with a distribution configuration to define how you would like to deploy your image.

## Syntax
<a name="aws-resource-imagebuilder-imagepipeline-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-imagebuilder-imagepipeline-syntax.json"></a>

```
{
  "Type" : "AWS::ImageBuilder::ImagePipeline",
  "Properties" : {
      "[ContainerRecipeArn](#cfn-imagebuilder-imagepipeline-containerrecipearn)" : String,
      "[Description](#cfn-imagebuilder-imagepipeline-description)" : String,
      "[DistributionConfigurationArn](#cfn-imagebuilder-imagepipeline-distributionconfigurationarn)" : String,
      "[EnhancedImageMetadataEnabled](#cfn-imagebuilder-imagepipeline-enhancedimagemetadataenabled)" : Boolean,
      "[ExecutionRole](#cfn-imagebuilder-imagepipeline-executionrole)" : String,
      "[ImageRecipeArn](#cfn-imagebuilder-imagepipeline-imagerecipearn)" : String,
      "[ImageScanningConfiguration](#cfn-imagebuilder-imagepipeline-imagescanningconfiguration)" : ImageScanningConfiguration,
      "[ImageTestsConfiguration](#cfn-imagebuilder-imagepipeline-imagetestsconfiguration)" : ImageTestsConfiguration,
      "[InfrastructureConfigurationArn](#cfn-imagebuilder-imagepipeline-infrastructureconfigurationarn)" : String,
      "[LoggingConfiguration](#cfn-imagebuilder-imagepipeline-loggingconfiguration)" : PipelineLoggingConfiguration,
      "[Name](#cfn-imagebuilder-imagepipeline-name)" : String,
      "[Schedule](#cfn-imagebuilder-imagepipeline-schedule)" : Schedule,
      "[Status](#cfn-imagebuilder-imagepipeline-status)" : String,
      "[Tags](#cfn-imagebuilder-imagepipeline-tags)" : {Key: Value, ...},
      "[Workflows](#cfn-imagebuilder-imagepipeline-workflows)" : [ WorkflowConfiguration, ... ]
    }
}
```

### YAML
<a name="aws-resource-imagebuilder-imagepipeline-syntax.yaml"></a>

```
Type: AWS::ImageBuilder::ImagePipeline
Properties:
  [ContainerRecipeArn](#cfn-imagebuilder-imagepipeline-containerrecipearn): String
  [Description](#cfn-imagebuilder-imagepipeline-description): String
  [DistributionConfigurationArn](#cfn-imagebuilder-imagepipeline-distributionconfigurationarn): String
  [EnhancedImageMetadataEnabled](#cfn-imagebuilder-imagepipeline-enhancedimagemetadataenabled): Boolean
  [ExecutionRole](#cfn-imagebuilder-imagepipeline-executionrole): String
  [ImageRecipeArn](#cfn-imagebuilder-imagepipeline-imagerecipearn): String
  [ImageScanningConfiguration](#cfn-imagebuilder-imagepipeline-imagescanningconfiguration): 
    ImageScanningConfiguration
  [ImageTestsConfiguration](#cfn-imagebuilder-imagepipeline-imagetestsconfiguration): 
    ImageTestsConfiguration
  [InfrastructureConfigurationArn](#cfn-imagebuilder-imagepipeline-infrastructureconfigurationarn): String
  [LoggingConfiguration](#cfn-imagebuilder-imagepipeline-loggingconfiguration): 
    PipelineLoggingConfiguration
  [Name](#cfn-imagebuilder-imagepipeline-name): String
  [Schedule](#cfn-imagebuilder-imagepipeline-schedule): 
    Schedule
  [Status](#cfn-imagebuilder-imagepipeline-status): String
  [Tags](#cfn-imagebuilder-imagepipeline-tags): 
    Key: Value
  [Workflows](#cfn-imagebuilder-imagepipeline-workflows): 
    - WorkflowConfiguration
```

## Properties
<a name="aws-resource-imagebuilder-imagepipeline-properties"></a>

`ContainerRecipeArn`  <a name="cfn-imagebuilder-imagepipeline-containerrecipearn"></a>
The Amazon Resource Name (ARN) of the container recipe that is used for this pipeline.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Description`  <a name="cfn-imagebuilder-imagepipeline-description"></a>
The description of this image pipeline.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DistributionConfigurationArn`  <a name="cfn-imagebuilder-imagepipeline-distributionconfigurationarn"></a>
The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EnhancedImageMetadataEnabled`  <a name="cfn-imagebuilder-imagepipeline-enhancedimagemetadataenabled"></a>
Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ExecutionRole`  <a name="cfn-imagebuilder-imagepipeline-executionrole"></a>
The name or Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to perform workflow actions.  
*Required*: No  
*Type*: String  
*Pattern*: `^(?:arn:aws(?:-[a-z]+)*:iam::[0-9]{12}:role/)?[a-zA-Z_0-9+=,.@\-_/]+$`  
*Minimum*: `1`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ImageRecipeArn`  <a name="cfn-imagebuilder-imagepipeline-imagerecipearn"></a>
The Amazon Resource Name (ARN) of the image recipe associated with this image pipeline.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ImageScanningConfiguration`  <a name="cfn-imagebuilder-imagepipeline-imagescanningconfiguration"></a>
Contains settings for vulnerability scans.  
*Required*: No  
*Type*: [ImageScanningConfiguration](aws-properties-imagebuilder-imagepipeline-imagescanningconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ImageTestsConfiguration`  <a name="cfn-imagebuilder-imagepipeline-imagetestsconfiguration"></a>
The configuration of the image tests that run after image creation to ensure the quality of the image that was created.  
*Required*: No  
*Type*: [ImageTestsConfiguration](aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InfrastructureConfigurationArn`  <a name="cfn-imagebuilder-imagepipeline-infrastructureconfigurationarn"></a>
The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LoggingConfiguration`  <a name="cfn-imagebuilder-imagepipeline-loggingconfiguration"></a>
Defines logging configuration for the output image.  
*Required*: No  
*Type*: [PipelineLoggingConfiguration](aws-properties-imagebuilder-imagepipeline-pipelineloggingconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-imagebuilder-imagepipeline-name"></a>
The name of the image pipeline.  
*Required*: No  
*Type*: String  
*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Schedule`  <a name="cfn-imagebuilder-imagepipeline-schedule"></a>
The schedule of the image pipeline. A schedule configures how often and when a pipeline automatically creates a new image.  
*Required*: No  
*Type*: [Schedule](aws-properties-imagebuilder-imagepipeline-schedule.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Status`  <a name="cfn-imagebuilder-imagepipeline-status"></a>
The status of the image pipeline.  
*Required*: No  
*Type*: String  
*Allowed values*: `DISABLED | ENABLED`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-imagebuilder-imagepipeline-tags"></a>
The tags of this image pipeline.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Workflows`  <a name="cfn-imagebuilder-imagepipeline-workflows"></a>
Contains the workflows that run for the image pipeline.  
*Required*: No  
*Type*: Array of [WorkflowConfiguration](aws-properties-imagebuilder-imagepipeline-workflowconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-imagebuilder-imagepipeline-return-values"></a>

### Ref
<a name="aws-resource-imagebuilder-imagepipeline-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the resource ARN, such as `arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-imagebuilder-imagepipeline-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-imagebuilder-imagepipeline-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
Returns the Amazon Resource Name (ARN) of the image pipeline. For example, `arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline`.

`DeploymentId`  <a name="DeploymentId-fn::getatt"></a>
Returns the deployment ID of the pipeline, used for resource create/update triggers.

`Name`  <a name="Name-fn::getatt"></a>
Returns the name of the image pipeline.

## Examples
<a name="aws-resource-imagebuilder-imagepipeline--examples"></a>



### Create an image pipeline
<a name="aws-resource-imagebuilder-imagepipeline--examples--Create_an_image_pipeline"></a>

The following example shows the schema for all of the parameters of the ImagePipeline resource document in both YAML and JSON format .

#### YAML
<a name="aws-resource-imagebuilder-imagepipeline--examples--Create_an_image_pipeline--yaml"></a>

```
Resources:
  ImagePipelineAllParameters:
    Type: 'AWS::ImageBuilder::ImagePipeline'
    Properties:
      Name: 'image-pipeline-name'
      Description: 'description'
      ImageRecipeArn: !Ref ImageRecipeArn
      InfrastructureConfigurationArn: !Ref InfrastructureConfigurationArn
      DistributionConfigurationArn: !Ref DistributionConfigurationArn
      ImageTestsConfiguration:
        ImageTestsEnabled: false
        TimeoutMinutes: 90
      Schedule:
        ScheduleExpression: 'cron(0 0 * * ? *)'
        PipelineExecutionStartCondition: 'EXPRESSION_MATCH_ONLY'
      Status: 'DISABLED'
      Tags:
        CustomerImagePipelineTagKey1: 'CustomerImagePipelineTagValue1'
        CustomerImagePipelineTagKey2: 'CustomerImagePipelineTagValue2'
```

#### JSON
<a name="aws-resource-imagebuilder-imagepipeline--examples--Create_an_image_pipeline--json"></a>

```
{
    "Resources": {
        "ImagePipelineAllParameters": {
            "Type": "AWS::ImageBuilder::ImagePipeline",
            "Properties": {
                "Name": "image-pipeline-name",
                "Description": "description",
                "ImageRecipeArn": {
                    "Ref": "ImageRecipeArn"
                },
                "InfrastructureConfigurationArn": {
                    "Ref": "InfrastructureConfigurationArn"
                },
                "DistributionConfigurationArn": {
                    "Ref": "DistributionConfigurationArn"
                },
                "ImageTestsConfiguration": {
                    "ImageTestsEnabled": false,
                    "TimeoutMinutes": 90
                },
                "Schedule": {
                "ScheduleExpression": "cron(0 0 * * ? *)",
                    "PipelineExecutionStartCondition": "EXPRESSION_MATCH_ONLY"
                },
                "Status": "DISABLED",
                "Tags": {
                    "CustomerImagePipelineTagKey1": "CustomerImagePipelineTagValue1",
                    "CustomerImagePipelineTagKey2": "CustomerImagePipelineTagValue2"
                }
            }
        }
    }
}
```

# AWS::ImageBuilder::ImagePipeline AutoDisablePolicy
<a name="aws-properties-imagebuilder-imagepipeline-autodisablepolicy"></a>

Defines the rules by which an image pipeline is automatically disabled when it fails.

## Syntax
<a name="aws-properties-imagebuilder-imagepipeline-autodisablepolicy-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagepipeline-autodisablepolicy-syntax.json"></a>

```
{
  "[FailureCount](#cfn-imagebuilder-imagepipeline-autodisablepolicy-failurecount)" : Integer
}
```

### YAML
<a name="aws-properties-imagebuilder-imagepipeline-autodisablepolicy-syntax.yaml"></a>

```
  [FailureCount](#cfn-imagebuilder-imagepipeline-autodisablepolicy-failurecount): Integer
```

## Properties
<a name="aws-properties-imagebuilder-imagepipeline-autodisablepolicy-properties"></a>

`FailureCount`  <a name="cfn-imagebuilder-imagepipeline-autodisablepolicy-failurecount"></a>
The number of consecutive scheduled image pipeline executions that must fail before Image Builder automatically disables the pipeline.  
*Required*: Yes  
*Type*: Integer  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::ImagePipeline EcrConfiguration
<a name="aws-properties-imagebuilder-imagepipeline-ecrconfiguration"></a>

Settings that Image Builder uses to configure the ECR repository and the output container images that Amazon Inspector scans.

## Syntax
<a name="aws-properties-imagebuilder-imagepipeline-ecrconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagepipeline-ecrconfiguration-syntax.json"></a>

```
{
  "[ContainerTags](#cfn-imagebuilder-imagepipeline-ecrconfiguration-containertags)" : [ String, ... ],
  "[RepositoryName](#cfn-imagebuilder-imagepipeline-ecrconfiguration-repositoryname)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-imagepipeline-ecrconfiguration-syntax.yaml"></a>

```
  [ContainerTags](#cfn-imagebuilder-imagepipeline-ecrconfiguration-containertags): 
    - String
  [RepositoryName](#cfn-imagebuilder-imagepipeline-ecrconfiguration-repositoryname): String
```

## Properties
<a name="aws-properties-imagebuilder-imagepipeline-ecrconfiguration-properties"></a>

`ContainerTags`  <a name="cfn-imagebuilder-imagepipeline-ecrconfiguration-containertags"></a>
Tags for Image Builder to apply to the output container image that Amazon Inspector scans. Tags can help you identify and manage your scanned images.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RepositoryName`  <a name="cfn-imagebuilder-imagepipeline-ecrconfiguration-repositoryname"></a>
The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don’t provide this information, Image Builder creates a repository in your account named `image-builder-image-scanning-repository` for vulnerability scans of your output container images.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::ImagePipeline ImageScanningConfiguration
<a name="aws-properties-imagebuilder-imagepipeline-imagescanningconfiguration"></a>

Contains settings for Image Builder image resource and container image scans.

## Syntax
<a name="aws-properties-imagebuilder-imagepipeline-imagescanningconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagepipeline-imagescanningconfiguration-syntax.json"></a>

```
{
  "[EcrConfiguration](#cfn-imagebuilder-imagepipeline-imagescanningconfiguration-ecrconfiguration)" : EcrConfiguration,
  "[ImageScanningEnabled](#cfn-imagebuilder-imagepipeline-imagescanningconfiguration-imagescanningenabled)" : Boolean
}
```

### YAML
<a name="aws-properties-imagebuilder-imagepipeline-imagescanningconfiguration-syntax.yaml"></a>

```
  [EcrConfiguration](#cfn-imagebuilder-imagepipeline-imagescanningconfiguration-ecrconfiguration): 
    EcrConfiguration
  [ImageScanningEnabled](#cfn-imagebuilder-imagepipeline-imagescanningconfiguration-imagescanningenabled): Boolean
```

## Properties
<a name="aws-properties-imagebuilder-imagepipeline-imagescanningconfiguration-properties"></a>

`EcrConfiguration`  <a name="cfn-imagebuilder-imagepipeline-imagescanningconfiguration-ecrconfiguration"></a>
Contains Amazon ECR settings for vulnerability scans.  
*Required*: No  
*Type*: [EcrConfiguration](aws-properties-imagebuilder-imagepipeline-ecrconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ImageScanningEnabled`  <a name="cfn-imagebuilder-imagepipeline-imagescanningconfiguration-imagescanningenabled"></a>
A setting that indicates whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::ImagePipeline ImageTestsConfiguration
<a name="aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration"></a>

When you create an image or container recipe with Image Builder, you can add the build or test components that your image pipeline uses to create the final image. You must have at least one build component to create a recipe, but test components are not required. Your pipeline runs tests after it builds the image, to ensure that the target image is functional and can be used reliably for launching Amazon EC2 instances.

## Syntax
<a name="aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration-syntax.json"></a>

```
{
  "[ImageTestsEnabled](#cfn-imagebuilder-imagepipeline-imagetestsconfiguration-imagetestsenabled)" : Boolean,
  "[TimeoutMinutes](#cfn-imagebuilder-imagepipeline-imagetestsconfiguration-timeoutminutes)" : Integer
}
```

### YAML
<a name="aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration-syntax.yaml"></a>

```
  [ImageTestsEnabled](#cfn-imagebuilder-imagepipeline-imagetestsconfiguration-imagetestsenabled): Boolean
  [TimeoutMinutes](#cfn-imagebuilder-imagepipeline-imagetestsconfiguration-timeoutminutes): Integer
```

## Properties
<a name="aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration-properties"></a>

`ImageTestsEnabled`  <a name="cfn-imagebuilder-imagepipeline-imagetestsconfiguration-imagetestsenabled"></a>
Defines if tests should be executed when building this image. For example, `true` or `false`.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TimeoutMinutes`  <a name="cfn-imagebuilder-imagepipeline-imagetestsconfiguration-timeoutminutes"></a>
The maximum time in minutes that tests are permitted to run.  
The timeout property is not currently active. This value is ignored.
*Required*: No  
*Type*: Integer  
*Minimum*: `60`  
*Maximum*: `1440`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::ImagePipeline PipelineLoggingConfiguration
<a name="aws-properties-imagebuilder-imagepipeline-pipelineloggingconfiguration"></a>

The logging configuration that's defined for pipeline execution.

## Syntax
<a name="aws-properties-imagebuilder-imagepipeline-pipelineloggingconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagepipeline-pipelineloggingconfiguration-syntax.json"></a>

```
{
  "[ImageLogGroupName](#cfn-imagebuilder-imagepipeline-pipelineloggingconfiguration-imageloggroupname)" : String,
  "[PipelineLogGroupName](#cfn-imagebuilder-imagepipeline-pipelineloggingconfiguration-pipelineloggroupname)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-imagepipeline-pipelineloggingconfiguration-syntax.yaml"></a>

```
  [ImageLogGroupName](#cfn-imagebuilder-imagepipeline-pipelineloggingconfiguration-imageloggroupname): String
  [PipelineLogGroupName](#cfn-imagebuilder-imagepipeline-pipelineloggingconfiguration-pipelineloggroupname): String
```

## Properties
<a name="aws-properties-imagebuilder-imagepipeline-pipelineloggingconfiguration-properties"></a>

`ImageLogGroupName`  <a name="cfn-imagebuilder-imagepipeline-pipelineloggingconfiguration-imageloggroupname"></a>
The log group name that Image Builder uses for image creation. If not specified, the log group name defaults to `/aws/imagebuilder/image-name`.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9\-_/\.]{1,512}$`  
*Minimum*: `1`  
*Maximum*: `512`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PipelineLogGroupName`  <a name="cfn-imagebuilder-imagepipeline-pipelineloggingconfiguration-pipelineloggroupname"></a>
The log group name that Image Builder uses for the log output during creation of a new pipeline. If not specified, the pipeline log group name defaults to `/aws/imagebuilder/pipeline/pipeline-name`.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9\-_/\.]{1,512}$`  
*Minimum*: `1`  
*Maximum*: `512`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::ImagePipeline Schedule
<a name="aws-properties-imagebuilder-imagepipeline-schedule"></a>

A schedule configures when and how often a pipeline will automatically create a new image.

## Syntax
<a name="aws-properties-imagebuilder-imagepipeline-schedule-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagepipeline-schedule-syntax.json"></a>

```
{
  "[AutoDisablePolicy](#cfn-imagebuilder-imagepipeline-schedule-autodisablepolicy)" : AutoDisablePolicy,
  "[PipelineExecutionStartCondition](#cfn-imagebuilder-imagepipeline-schedule-pipelineexecutionstartcondition)" : String,
  "[ScheduleExpression](#cfn-imagebuilder-imagepipeline-schedule-scheduleexpression)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-imagepipeline-schedule-syntax.yaml"></a>

```
  [AutoDisablePolicy](#cfn-imagebuilder-imagepipeline-schedule-autodisablepolicy): 
    AutoDisablePolicy
  [PipelineExecutionStartCondition](#cfn-imagebuilder-imagepipeline-schedule-pipelineexecutionstartcondition): String
  [ScheduleExpression](#cfn-imagebuilder-imagepipeline-schedule-scheduleexpression): String
```

## Properties
<a name="aws-properties-imagebuilder-imagepipeline-schedule-properties"></a>

`AutoDisablePolicy`  <a name="cfn-imagebuilder-imagepipeline-schedule-autodisablepolicy"></a>
The policy that configures when Image Builder should automatically disable a pipeline that is failing.  
*Required*: No  
*Type*: [AutoDisablePolicy](aws-properties-imagebuilder-imagepipeline-autodisablepolicy.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PipelineExecutionStartCondition`  <a name="cfn-imagebuilder-imagepipeline-schedule-pipelineexecutionstartcondition"></a>
The condition configures when the pipeline should trigger a new image build. When the `pipelineExecutionStartCondition` is set to `EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE`, and you use semantic version filters on the base image or components in your image recipe, Image Builder will build a new image only when there are new versions of the image or components in your recipe that match the semantic version filter. When it is set to `EXPRESSION_MATCH_ONLY`, it will build a new image every time the CRON expression matches the current time. For semantic version syntax, see [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) in the *Image Builder API Reference*.  
*Required*: No  
*Type*: String  
*Allowed values*: `EXPRESSION_MATCH_ONLY | EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ScheduleExpression`  <a name="cfn-imagebuilder-imagepipeline-schedule-scheduleexpression"></a>
The cron expression determines how often EC2 Image Builder evaluates your `pipelineExecutionStartCondition`.  
For information on how to format a cron expression in Image Builder, see [Use cron expressions in EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-cron.html).  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## See also
<a name="aws-properties-imagebuilder-imagepipeline-schedule--seealso"></a>
+ [Create an image pipeline](https://docs.aws.amazon.com/imagebuilder/latest/userguide/managing-image-builder-cli.html#image-builder-cli-create-image-pipeline) in the *Image Builder User Guide*.



# AWS::ImageBuilder::ImagePipeline WorkflowConfiguration
<a name="aws-properties-imagebuilder-imagepipeline-workflowconfiguration"></a>

Contains control settings and configurable inputs for a workflow resource.

## Syntax
<a name="aws-properties-imagebuilder-imagepipeline-workflowconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagepipeline-workflowconfiguration-syntax.json"></a>

```
{
  "[OnFailure](#cfn-imagebuilder-imagepipeline-workflowconfiguration-onfailure)" : String,
  "[ParallelGroup](#cfn-imagebuilder-imagepipeline-workflowconfiguration-parallelgroup)" : String,
  "[Parameters](#cfn-imagebuilder-imagepipeline-workflowconfiguration-parameters)" : [ WorkflowParameter, ... ],
  "[WorkflowArn](#cfn-imagebuilder-imagepipeline-workflowconfiguration-workflowarn)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-imagepipeline-workflowconfiguration-syntax.yaml"></a>

```
  [OnFailure](#cfn-imagebuilder-imagepipeline-workflowconfiguration-onfailure): String
  [ParallelGroup](#cfn-imagebuilder-imagepipeline-workflowconfiguration-parallelgroup): String
  [Parameters](#cfn-imagebuilder-imagepipeline-workflowconfiguration-parameters): 
    - WorkflowParameter
  [WorkflowArn](#cfn-imagebuilder-imagepipeline-workflowconfiguration-workflowarn): String
```

## Properties
<a name="aws-properties-imagebuilder-imagepipeline-workflowconfiguration-properties"></a>

`OnFailure`  <a name="cfn-imagebuilder-imagepipeline-workflowconfiguration-onfailure"></a>
The action to take if the workflow fails.  
*Required*: No  
*Type*: String  
*Allowed values*: `CONTINUE | ABORT`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ParallelGroup`  <a name="cfn-imagebuilder-imagepipeline-workflowconfiguration-parallelgroup"></a>
Test workflows are defined within named runtime groups called parallel groups. The parallel group is the named group that contains this test workflow. Test workflows within a parallel group can run at the same time. Image Builder starts up to five test workflows in the group at the same time, and starts additional workflows as others complete, until all workflows in the group have completed. This field only applies for test workflows.  
*Required*: No  
*Type*: String  
*Pattern*: `^[A-Za-z0-9][A-Za-z0-9-_+#]{0,99}$`  
*Minimum*: `1`  
*Maximum*: `100`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Parameters`  <a name="cfn-imagebuilder-imagepipeline-workflowconfiguration-parameters"></a>
Contains parameter values for each of the parameters that the workflow document defined for the workflow resource.  
*Required*: No  
*Type*: Array of [WorkflowParameter](aws-properties-imagebuilder-imagepipeline-workflowparameter.md)  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`WorkflowArn`  <a name="cfn-imagebuilder-imagepipeline-workflowconfiguration-workflowarn"></a>
The Amazon Resource Name (ARN) of the workflow resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws(?:-[a-z]+)*:imagebuilder:[a-z]{2,}(?:-[a-z]+)+-[0-9]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):workflow/(build|test|distribution)/[a-z0-9-_]+/(?:(?:([0-9]+|x)\.([0-9]+|x)\.([0-9]+|x))|(?:[0-9]+\.[0-9]+\.[0-9]+/[0-9]+))$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::ImagePipeline WorkflowParameter
<a name="aws-properties-imagebuilder-imagepipeline-workflowparameter"></a>

Contains a key/value pair that sets the named workflow parameter.

## Syntax
<a name="aws-properties-imagebuilder-imagepipeline-workflowparameter-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagepipeline-workflowparameter-syntax.json"></a>

```
{
  "[Name](#cfn-imagebuilder-imagepipeline-workflowparameter-name)" : String,
  "[Value](#cfn-imagebuilder-imagepipeline-workflowparameter-value)" : [ String, ... ]
}
```

### YAML
<a name="aws-properties-imagebuilder-imagepipeline-workflowparameter-syntax.yaml"></a>

```
  [Name](#cfn-imagebuilder-imagepipeline-workflowparameter-name): String
  [Value](#cfn-imagebuilder-imagepipeline-workflowparameter-value): 
    - String
```

## Properties
<a name="aws-properties-imagebuilder-imagepipeline-workflowparameter-properties"></a>

`Name`  <a name="cfn-imagebuilder-imagepipeline-workflowparameter-name"></a>
The name of the workflow parameter to set.  
*Required*: No  
*Type*: String  
*Pattern*: `[^\x00]+`  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-imagebuilder-imagepipeline-workflowparameter-value"></a>
Sets the value for the named workflow parameter.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::ImageRecipe
<a name="aws-resource-imagebuilder-imagerecipe"></a>

Creates a new image recipe. Image recipes define how images are configured, tested, and assessed.

## Syntax
<a name="aws-resource-imagebuilder-imagerecipe-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-imagebuilder-imagerecipe-syntax.json"></a>

```
{
  "Type" : "AWS::ImageBuilder::ImageRecipe",
  "Properties" : {
      "[AdditionalInstanceConfiguration](#cfn-imagebuilder-imagerecipe-additionalinstanceconfiguration)" : AdditionalInstanceConfiguration,
      "[AmiTags](#cfn-imagebuilder-imagerecipe-amitags)" : {Key: Value, ...},
      "[BlockDeviceMappings](#cfn-imagebuilder-imagerecipe-blockdevicemappings)" : [ InstanceBlockDeviceMapping, ... ],
      "[Components](#cfn-imagebuilder-imagerecipe-components)" : [ ComponentConfiguration, ... ],
      "[Description](#cfn-imagebuilder-imagerecipe-description)" : String,
      "[Name](#cfn-imagebuilder-imagerecipe-name)" : String,
      "[ParentImage](#cfn-imagebuilder-imagerecipe-parentimage)" : String,
      "[Tags](#cfn-imagebuilder-imagerecipe-tags)" : {Key: Value, ...},
      "[Version](#cfn-imagebuilder-imagerecipe-version)" : String,
      "[WorkingDirectory](#cfn-imagebuilder-imagerecipe-workingdirectory)" : String
    }
}
```

### YAML
<a name="aws-resource-imagebuilder-imagerecipe-syntax.yaml"></a>

```
Type: AWS::ImageBuilder::ImageRecipe
Properties:
  [AdditionalInstanceConfiguration](#cfn-imagebuilder-imagerecipe-additionalinstanceconfiguration): 
    AdditionalInstanceConfiguration
  [AmiTags](#cfn-imagebuilder-imagerecipe-amitags): 
    Key: Value
  [BlockDeviceMappings](#cfn-imagebuilder-imagerecipe-blockdevicemappings): 
    - InstanceBlockDeviceMapping
  [Components](#cfn-imagebuilder-imagerecipe-components): 
    - ComponentConfiguration
  [Description](#cfn-imagebuilder-imagerecipe-description): String
  [Name](#cfn-imagebuilder-imagerecipe-name): String
  [ParentImage](#cfn-imagebuilder-imagerecipe-parentimage): String
  [Tags](#cfn-imagebuilder-imagerecipe-tags): 
    Key: Value
  [Version](#cfn-imagebuilder-imagerecipe-version): String
  [WorkingDirectory](#cfn-imagebuilder-imagerecipe-workingdirectory): String
```

## Properties
<a name="aws-resource-imagebuilder-imagerecipe-properties"></a>

`AdditionalInstanceConfiguration`  <a name="cfn-imagebuilder-imagerecipe-additionalinstanceconfiguration"></a>
Before you create a new AMI, Image Builder launches temporary Amazon EC2 instances to build and test your image configuration. Instance configuration adds a layer of control over those instances. You can define settings and add scripts to run when an instance is launched from your AMI.  
*Required*: No  
*Type*: [AdditionalInstanceConfiguration](aws-properties-imagebuilder-imagerecipe-additionalinstanceconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AmiTags`  <a name="cfn-imagebuilder-imagerecipe-amitags"></a>
Tags that are applied to the AMI that Image Builder creates during the Build phase prior to image distribution.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`BlockDeviceMappings`  <a name="cfn-imagebuilder-imagerecipe-blockdevicemappings"></a>
The block device mappings to apply when creating images from this recipe.  
*Required*: No  
*Type*: Array of [InstanceBlockDeviceMapping](aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Components`  <a name="cfn-imagebuilder-imagerecipe-components"></a>
The components that are included in the image recipe. Recipes require a minimum of one build component, and can have a maximum of 20 build and test components in any combination.  
*Required*: No  
*Type*: Array of [ComponentConfiguration](aws-properties-imagebuilder-imagerecipe-componentconfiguration.md)  
*Minimum*: `1`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Description`  <a name="cfn-imagebuilder-imagerecipe-description"></a>
The description of the image recipe.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-imagebuilder-imagerecipe-name"></a>
The name of the image recipe.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ParentImage`  <a name="cfn-imagebuilder-imagerecipe-parentimage"></a>
The base image for customizations specified in the image recipe. You can specify the parent image using one of the following options:  
+ AMI ID
+ Image Builder image Amazon Resource Name (ARN)
+ AWS Systems Manager (SSM) Parameter Store Parameter, prefixed by `ssm:`, followed by the parameter name or ARN.
+ AWS Marketplace product ID
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-imagebuilder-imagerecipe-tags"></a>
The tags of the image recipe.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Version`  <a name="cfn-imagebuilder-imagerecipe-version"></a>
The semantic version of the image 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.
*Required*: Yes  
*Type*: String  
*Pattern*: `^(?:[0-9]+|x)\.(?:[0-9]+|x)\.(?:[0-9]+|x)$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`WorkingDirectory`  <a name="cfn-imagebuilder-imagerecipe-workingdirectory"></a>
The working directory to be used during build and test workflows.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

## Return values
<a name="aws-resource-imagebuilder-imagerecipe-return-values"></a>

### Ref
<a name="aws-resource-imagebuilder-imagerecipe-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the resource ARN, such as `arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/mybasicrecipe/2019.12.03`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-imagebuilder-imagerecipe-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-imagebuilder-imagerecipe-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
Returns the Amazon Resource Name (ARN) of the image recipe. For example, `arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/mybasicrecipe/2019.12.03`.

`LatestVersion.Arn`  <a name="LatestVersion.Arn-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) of the Image Builder resource.

`LatestVersion.Major`  <a name="LatestVersion.Major-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource.

`LatestVersion.Minor`  <a name="LatestVersion.Minor-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource.

`LatestVersion.Patch`  <a name="LatestVersion.Patch-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource.

`Name`  <a name="Name-fn::getatt"></a>
The name of the image recipe.

## Examples
<a name="aws-resource-imagebuilder-imagerecipe--examples"></a>



### Create an image recipe
<a name="aws-resource-imagebuilder-imagerecipe--examples--Create_an_image_recipe"></a>

The following example shows the schema for all of the parameters of the ImageRecipe resource document in both YAML and JSON format .

#### YAML
<a name="aws-resource-imagebuilder-imagerecipe--examples--Create_an_image_recipe--yaml"></a>

```
Resources:
  ImageRecipeAllParameters:
    Type: 'AWS::ImageBuilder::ImageRecipe'
    Properties:
      Name: 'image-recipe-name'
      Version: '1.0.0'
      ParentImage: !Ref ParentImage
      Description: 'description'
      Components:
        - ComponentArn: !Ref ComponentArn
        - ComponentArn: !Ref AnotherComponentArn
      BlockDeviceMappings:
        - DeviceName: "device-name"
          VirtualName: "virtual-name"
          Ebs:
            DeleteOnTermination: true
            Encrypted: true
            Iops: 100
            KmsKeyId: !Ref KmsKeyId
            SnapshotId: "snapshot-id"
            VolumeType: "gp2"
            VolumeSize: 100
      Tags:
        CustomerImageRecipeTagKey1: 'CustomerImageRecipeTagValue1'
        CustomerImageRecipeTagKey2: 'CustomerImageRecipeTagValue2'
```

#### JSON
<a name="aws-resource-imagebuilder-imagerecipe--examples--Create_an_image_recipe--json"></a>

```
{
    "Resources": {
        "ImageRecipeAllParameters": {
            "Type": "AWS::ImageBuilder::ImageRecipe",
            "Properties": {
                "Name": "image-recipe-name",
                "Version": "1.0.0",
                "ParentImage": {
                    "Ref": "ParentImage"
                },
                "Description": "description",
                "Components": [
                    {
                        "ComponentArn": {
                            "Ref": "ComponentArn"
                        }
                    },
                    {
                        "ComponentArn": {
                            "Ref": "AnotherComponentArn"
                        }
                    }
                ],
                "BlockDeviceMappings": [
                    {
                        "DeviceName": "device-name",
                        "VirtualName": "virtual-name",
                        "Ebs": {
                            "DeleteOnTermination": true,
                            "Encrypted": true,
                            "Iops": 100,
                            "KmsKeyId": {
                                "Ref": "KmsKeyId"
                            },
                            "SnapshotId": "snapshot-id",
                            "VolumeType": "gp2",
                            "VolumeSize": 100
                        }
                    }
                ],
                "Tags": {
                    "CustomerImageRecipeTagKey1": "CustomerImageRecipeTagValue1",
                    "CustomerImageRecipeTagKey2": "CustomerImageRecipeTagValue2"
                }
            }
        }
    }
}
```

## See also
<a name="aws-resource-imagebuilder-imagerecipe--seealso"></a>
+ [Create a basic image recipe](https://docs.aws.amazon.com/imagebuilder/latest/userguide/managing-image-builder-cli.html#image-builder-cli-create-recipe) in the *Image Builder User Guide*.



# AWS::ImageBuilder::ImageRecipe AdditionalInstanceConfiguration
<a name="aws-properties-imagebuilder-imagerecipe-additionalinstanceconfiguration"></a>

In addition to your infrastructure configuration, these settings provide an extra layer of control over your build instances. You can also specify commands to run on launch for all of your build instances.

Image Builder does not automatically install the Systems Manager agent on Windows instances. If your base image includes the Systems Manager agent, then the AMI that you create will also include the agent. For Linux instances, if the base image does not already include the Systems Manager agent, Image Builder installs it. For Linux instances where Image Builder installs the Systems Manager agent, you can choose whether to keep it for the AMI that you create.

## Syntax
<a name="aws-properties-imagebuilder-imagerecipe-additionalinstanceconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagerecipe-additionalinstanceconfiguration-syntax.json"></a>

```
{
  "[SystemsManagerAgent](#cfn-imagebuilder-imagerecipe-additionalinstanceconfiguration-systemsmanageragent)" : SystemsManagerAgent,
  "[UserDataOverride](#cfn-imagebuilder-imagerecipe-additionalinstanceconfiguration-userdataoverride)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-imagerecipe-additionalinstanceconfiguration-syntax.yaml"></a>

```
  [SystemsManagerAgent](#cfn-imagebuilder-imagerecipe-additionalinstanceconfiguration-systemsmanageragent): 
    SystemsManagerAgent
  [UserDataOverride](#cfn-imagebuilder-imagerecipe-additionalinstanceconfiguration-userdataoverride): String
```

## Properties
<a name="aws-properties-imagebuilder-imagerecipe-additionalinstanceconfiguration-properties"></a>

`SystemsManagerAgent`  <a name="cfn-imagebuilder-imagerecipe-additionalinstanceconfiguration-systemsmanageragent"></a>
Contains settings for the Systems Manager agent on your build instance.  
*Required*: No  
*Type*: [SystemsManagerAgent](aws-properties-imagebuilder-imagerecipe-systemsmanageragent.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`UserDataOverride`  <a name="cfn-imagebuilder-imagerecipe-additionalinstanceconfiguration-userdataoverride"></a>
Use this property to provide commands or a command script to run when you launch your build instance.  
The userDataOverride property replaces any commands that Image Builder might have added to ensure that Systems Manager is installed on your Linux build instance. If you override the user data, make sure that you add commands to install Systems Manager, if it is not pre-installed on your base image.  
The user data is always base 64 encoded. For example, the following commands are encoded as `IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$`:  
 *\$1\$1/bin/bash*   
mkdir -p /var/bb/  
touch /var
*Required*: No  
*Type*: String  
*Pattern*: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$`  
*Minimum*: `1`  
*Maximum*: `21847`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::ImageRecipe ComponentConfiguration
<a name="aws-properties-imagebuilder-imagerecipe-componentconfiguration"></a>

Configuration details of the component.

## Syntax
<a name="aws-properties-imagebuilder-imagerecipe-componentconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagerecipe-componentconfiguration-syntax.json"></a>

```
{
  "[ComponentArn](#cfn-imagebuilder-imagerecipe-componentconfiguration-componentarn)" : String,
  "[Parameters](#cfn-imagebuilder-imagerecipe-componentconfiguration-parameters)" : [ ComponentParameter, ... ]
}
```

### YAML
<a name="aws-properties-imagebuilder-imagerecipe-componentconfiguration-syntax.yaml"></a>

```
  [ComponentArn](#cfn-imagebuilder-imagerecipe-componentconfiguration-componentarn): String
  [Parameters](#cfn-imagebuilder-imagerecipe-componentconfiguration-parameters): 
    - ComponentParameter
```

## Properties
<a name="aws-properties-imagebuilder-imagerecipe-componentconfiguration-properties"></a>

`ComponentArn`  <a name="cfn-imagebuilder-imagerecipe-componentconfiguration-componentarn"></a>
The Amazon Resource Name (ARN) of the component.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):component/[a-z0-9-_]+/(?:(?:([0-9]+|x)\.([0-9]+|x)\.([0-9]+|x))|(?:[0-9]+\.[0-9]+\.[0-9]+/[0-9]+))$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Parameters`  <a name="cfn-imagebuilder-imagerecipe-componentconfiguration-parameters"></a>
A group of parameter settings that Image Builder uses to configure the component for a specific recipe.  
*Required*: No  
*Type*: Array of [ComponentParameter](aws-properties-imagebuilder-imagerecipe-componentparameter.md)  
*Minimum*: `1`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::ImageRecipe ComponentParameter
<a name="aws-properties-imagebuilder-imagerecipe-componentparameter"></a>

Contains a key/value pair that sets the named component parameter.

## Syntax
<a name="aws-properties-imagebuilder-imagerecipe-componentparameter-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagerecipe-componentparameter-syntax.json"></a>

```
{
  "[Name](#cfn-imagebuilder-imagerecipe-componentparameter-name)" : String,
  "[Value](#cfn-imagebuilder-imagerecipe-componentparameter-value)" : [ String, ... ]
}
```

### YAML
<a name="aws-properties-imagebuilder-imagerecipe-componentparameter-syntax.yaml"></a>

```
  [Name](#cfn-imagebuilder-imagerecipe-componentparameter-name): String
  [Value](#cfn-imagebuilder-imagerecipe-componentparameter-value): 
    - String
```

## Properties
<a name="aws-properties-imagebuilder-imagerecipe-componentparameter-properties"></a>

`Name`  <a name="cfn-imagebuilder-imagerecipe-componentparameter-name"></a>
The name of the component parameter to set.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[^\x00]+`  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Value`  <a name="cfn-imagebuilder-imagerecipe-componentparameter-value"></a>
Sets the value for the named component parameter.  
*Required*: Yes  
*Type*: Array of String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::ImageRecipe EbsInstanceBlockDeviceSpecification
<a name="aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification"></a>

The image recipe EBS instance block device specification includes the Amazon EBS-specific block device mapping specifications for the image.

## Syntax
<a name="aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-syntax.json"></a>

```
{
  "[DeleteOnTermination](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-deleteontermination)" : Boolean,
  "[Encrypted](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-encrypted)" : Boolean,
  "[Iops](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-iops)" : Integer,
  "[KmsKeyId](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-kmskeyid)" : String,
  "[SnapshotId](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-snapshotid)" : String,
  "[Throughput](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-throughput)" : Integer,
  "[VolumeSize](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-volumesize)" : Integer,
  "[VolumeType](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-volumetype)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-syntax.yaml"></a>

```
  [DeleteOnTermination](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-deleteontermination): Boolean
  [Encrypted](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-encrypted): Boolean
  [Iops](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-iops): Integer
  [KmsKeyId](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-kmskeyid): String
  [SnapshotId](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-snapshotid): String
  [Throughput](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-throughput): Integer
  [VolumeSize](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-volumesize): Integer
  [VolumeType](#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-volumetype): String
```

## Properties
<a name="aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-properties"></a>

`DeleteOnTermination`  <a name="cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-deleteontermination"></a>
Configures delete on termination of the associated device.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Encrypted`  <a name="cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-encrypted"></a>
Use to configure device encryption.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Iops`  <a name="cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-iops"></a>
Use to configure device IOPS.  
*Required*: No  
*Type*: Integer  
*Minimum*: `100`  
*Maximum*: `64000`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`KmsKeyId`  <a name="cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-kmskeyid"></a>
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*.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SnapshotId`  <a name="cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-snapshotid"></a>
The snapshot that defines the device contents.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Throughput`  <a name="cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-throughput"></a>
**For GP3 volumes only** – The throughput in MiB/s that the volume supports.  
*Required*: No  
*Type*: Integer  
*Minimum*: `125`  
*Maximum*: `1000`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`VolumeSize`  <a name="cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-volumesize"></a>
Overrides the volume size of the device.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `16000`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`VolumeType`  <a name="cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-volumetype"></a>
Overrides the volume type of the device.  
*Required*: No  
*Type*: String  
*Allowed values*: `standard | io1 | io2 | gp2 | gp3 | sc1 | st1`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::ImageRecipe InstanceBlockDeviceMapping
<a name="aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping"></a>

Defines block device mappings for the instance used to configure your image.

## Syntax
<a name="aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping-syntax.json"></a>

```
{
  "[DeviceName](#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-devicename)" : String,
  "[Ebs](#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-ebs)" : EbsInstanceBlockDeviceSpecification,
  "[NoDevice](#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-nodevice)" : String,
  "[VirtualName](#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-virtualname)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping-syntax.yaml"></a>

```
  [DeviceName](#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-devicename): String
  [Ebs](#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-ebs): 
    EbsInstanceBlockDeviceSpecification
  [NoDevice](#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-nodevice): String
  [VirtualName](#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-virtualname): String
```

## Properties
<a name="aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping-properties"></a>

`DeviceName`  <a name="cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-devicename"></a>
The device to which these mappings apply.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Ebs`  <a name="cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-ebs"></a>
Use to manage Amazon EBS-specific configuration for this mapping.  
*Required*: No  
*Type*: [EbsInstanceBlockDeviceSpecification](aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`NoDevice`  <a name="cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-nodevice"></a>
Enter an empty string to remove a mapping from the parent image.  
The following is an example of an empty string value in the `NoDevice` field.   
 `NoDevice:""`   
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`VirtualName`  <a name="cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-virtualname"></a>
Manages the instance ephemeral devices.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::ImageBuilder::ImageRecipe LatestVersion
<a name="aws-properties-imagebuilder-imagerecipe-latestversion"></a>

The resource ARNs with different wildcard variations of semantic versioning.

## Syntax
<a name="aws-properties-imagebuilder-imagerecipe-latestversion-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagerecipe-latestversion-syntax.json"></a>

```
{
  "[Arn](#cfn-imagebuilder-imagerecipe-latestversion-arn)" : String,
  "[Major](#cfn-imagebuilder-imagerecipe-latestversion-major)" : String,
  "[Minor](#cfn-imagebuilder-imagerecipe-latestversion-minor)" : String,
  "[Patch](#cfn-imagebuilder-imagerecipe-latestversion-patch)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-imagerecipe-latestversion-syntax.yaml"></a>

```
  [Arn](#cfn-imagebuilder-imagerecipe-latestversion-arn): String
  [Major](#cfn-imagebuilder-imagerecipe-latestversion-major): String
  [Minor](#cfn-imagebuilder-imagerecipe-latestversion-minor): String
  [Patch](#cfn-imagebuilder-imagerecipe-latestversion-patch): String
```

## Properties
<a name="aws-properties-imagebuilder-imagerecipe-latestversion-properties"></a>

`Arn`  <a name="cfn-imagebuilder-imagerecipe-latestversion-arn"></a>
The latest version Amazon Resource Name (ARN) of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Major`  <a name="cfn-imagebuilder-imagerecipe-latestversion-major"></a>
The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Minor`  <a name="cfn-imagebuilder-imagerecipe-latestversion-minor"></a>
The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Patch`  <a name="cfn-imagebuilder-imagerecipe-latestversion-patch"></a>
The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::ImageRecipe SystemsManagerAgent
<a name="aws-properties-imagebuilder-imagerecipe-systemsmanageragent"></a>

Contains settings for the Systems Manager agent on your build instance.

## Syntax
<a name="aws-properties-imagebuilder-imagerecipe-systemsmanageragent-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-imagerecipe-systemsmanageragent-syntax.json"></a>

```
{
  "[UninstallAfterBuild](#cfn-imagebuilder-imagerecipe-systemsmanageragent-uninstallafterbuild)" : Boolean
}
```

### YAML
<a name="aws-properties-imagebuilder-imagerecipe-systemsmanageragent-syntax.yaml"></a>

```
  [UninstallAfterBuild](#cfn-imagebuilder-imagerecipe-systemsmanageragent-uninstallafterbuild): Boolean
```

## Properties
<a name="aws-properties-imagebuilder-imagerecipe-systemsmanageragent-properties"></a>

`UninstallAfterBuild`  <a name="cfn-imagebuilder-imagerecipe-systemsmanageragent-uninstallafterbuild"></a>
Controls whether the Systems Manager agent is removed from your final build image, prior to creating the new AMI. If this is set to true, then the agent is removed from the final image. If it's set to false, then the agent is left in, so that it is included in the new AMI. default value is false.  
The default behavior of uninstallAfterBuild is to remove the SSM Agent if it was installed by EC2 Image Builder  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::InfrastructureConfiguration
<a name="aws-resource-imagebuilder-infrastructureconfiguration"></a>

Creates a new infrastructure configuration. An infrastructure configuration defines the environment in which your image will be built and tested.

## Syntax
<a name="aws-resource-imagebuilder-infrastructureconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-imagebuilder-infrastructureconfiguration-syntax.json"></a>

```
{
  "Type" : "AWS::ImageBuilder::InfrastructureConfiguration",
  "Properties" : {
      "[Description](#cfn-imagebuilder-infrastructureconfiguration-description)" : String,
      "[InstanceMetadataOptions](#cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions)" : InstanceMetadataOptions,
      "[InstanceProfileName](#cfn-imagebuilder-infrastructureconfiguration-instanceprofilename)" : String,
      "[InstanceTypes](#cfn-imagebuilder-infrastructureconfiguration-instancetypes)" : [ String, ... ],
      "[KeyPair](#cfn-imagebuilder-infrastructureconfiguration-keypair)" : String,
      "[Logging](#cfn-imagebuilder-infrastructureconfiguration-logging)" : Logging,
      "[Name](#cfn-imagebuilder-infrastructureconfiguration-name)" : String,
      "[Placement](#cfn-imagebuilder-infrastructureconfiguration-placement)" : Placement,
      "[ResourceTags](#cfn-imagebuilder-infrastructureconfiguration-resourcetags)" : {Key: Value, ...},
      "[SecurityGroupIds](#cfn-imagebuilder-infrastructureconfiguration-securitygroupids)" : [ String, ... ],
      "[SnsTopicArn](#cfn-imagebuilder-infrastructureconfiguration-snstopicarn)" : String,
      "[SubnetId](#cfn-imagebuilder-infrastructureconfiguration-subnetid)" : String,
      "[Tags](#cfn-imagebuilder-infrastructureconfiguration-tags)" : {Key: Value, ...},
      "[TerminateInstanceOnFailure](#cfn-imagebuilder-infrastructureconfiguration-terminateinstanceonfailure)" : Boolean
    }
}
```

### YAML
<a name="aws-resource-imagebuilder-infrastructureconfiguration-syntax.yaml"></a>

```
Type: AWS::ImageBuilder::InfrastructureConfiguration
Properties:
  [Description](#cfn-imagebuilder-infrastructureconfiguration-description): String
  [InstanceMetadataOptions](#cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions): 
    InstanceMetadataOptions
  [InstanceProfileName](#cfn-imagebuilder-infrastructureconfiguration-instanceprofilename): String
  [InstanceTypes](#cfn-imagebuilder-infrastructureconfiguration-instancetypes): 
    - String
  [KeyPair](#cfn-imagebuilder-infrastructureconfiguration-keypair): String
  [Logging](#cfn-imagebuilder-infrastructureconfiguration-logging): 
    Logging
  [Name](#cfn-imagebuilder-infrastructureconfiguration-name): String
  [Placement](#cfn-imagebuilder-infrastructureconfiguration-placement): 
    Placement
  [ResourceTags](#cfn-imagebuilder-infrastructureconfiguration-resourcetags): 
    Key: Value
  [SecurityGroupIds](#cfn-imagebuilder-infrastructureconfiguration-securitygroupids): 
    - String
  [SnsTopicArn](#cfn-imagebuilder-infrastructureconfiguration-snstopicarn): String
  [SubnetId](#cfn-imagebuilder-infrastructureconfiguration-subnetid): String
  [Tags](#cfn-imagebuilder-infrastructureconfiguration-tags): 
    Key: Value
  [TerminateInstanceOnFailure](#cfn-imagebuilder-infrastructureconfiguration-terminateinstanceonfailure): Boolean
```

## Properties
<a name="aws-resource-imagebuilder-infrastructureconfiguration-properties"></a>

`Description`  <a name="cfn-imagebuilder-infrastructureconfiguration-description"></a>
The description of the infrastructure configuration.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InstanceMetadataOptions`  <a name="cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions"></a>
The instance metadata options that you can set for the HTTP requests that pipeline builds use to launch EC2 build and test instances.  
*Required*: No  
*Type*: [InstanceMetadataOptions](aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InstanceProfileName`  <a name="cfn-imagebuilder-infrastructureconfiguration-instanceprofilename"></a>
The instance profile to associate with the instance used to customize your Amazon EC2 AMI.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[\w+=,.@-]+$`  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InstanceTypes`  <a name="cfn-imagebuilder-infrastructureconfiguration-instancetypes"></a>
The instance types of the infrastructure configuration. You can specify one or more instance types to use for this build. The service will pick one of these instance types based on availability.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`KeyPair`  <a name="cfn-imagebuilder-infrastructureconfiguration-keypair"></a>
The key pair of the infrastructure configuration. You can use this to log on to and debug the instance used to create your image.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Logging`  <a name="cfn-imagebuilder-infrastructureconfiguration-logging"></a>
The logging configuration of the infrastructure configuration.  
*Required*: No  
*Type*: [Logging](aws-properties-imagebuilder-infrastructureconfiguration-logging.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-imagebuilder-infrastructureconfiguration-name"></a>
The name of the infrastructure configuration.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Placement`  <a name="cfn-imagebuilder-infrastructureconfiguration-placement"></a>
The instance placement settings that define where the instances that are launched from your image will run.  
*Required*: No  
*Type*: [Placement](aws-properties-imagebuilder-infrastructureconfiguration-placement.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ResourceTags`  <a name="cfn-imagebuilder-infrastructureconfiguration-resourcetags"></a>
The metadata tags to assign to the Amazon EC2 instance that Image Builder launches during the build process. Tags are formatted as key value pairs.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SecurityGroupIds`  <a name="cfn-imagebuilder-infrastructureconfiguration-securitygroupids"></a>
The security group IDs to associate with the instance used to customize your Amazon EC2 AMI.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SnsTopicArn`  <a name="cfn-imagebuilder-infrastructureconfiguration-snstopicarn"></a>
The Amazon Resource Name (ARN) for the SNS topic to which we send image build event notifications.  
EC2 Image Builder is unable to send notifications to SNS topics that are encrypted using keys from other accounts. The key that is used to encrypt the SNS topic must reside in the account that the Image Builder service runs under.
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:sns:[^:]+:[0-9]{12}:[a-zA-Z0-9-_]{1,256}$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SubnetId`  <a name="cfn-imagebuilder-infrastructureconfiguration-subnetid"></a>
The subnet ID in which to place the instance used to customize your Amazon EC2 AMI.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-imagebuilder-infrastructureconfiguration-tags"></a>
The metadata tags to assign to the infrastructure configuration resource that Image Builder creates as output. Tags are formatted as key value pairs.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TerminateInstanceOnFailure`  <a name="cfn-imagebuilder-infrastructureconfiguration-terminateinstanceonfailure"></a>
The terminate instance on failure setting of the infrastructure configuration. Set to false if you want Image Builder to retain the instance used to configure your AMI if the build or test phase of your workflow fails.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-imagebuilder-infrastructureconfiguration-return-values"></a>

### Ref
<a name="aws-resource-imagebuilder-infrastructureconfiguration-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the resource ARN, such as `arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/my-example-infrastructure`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-imagebuilder-infrastructureconfiguration-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-imagebuilder-infrastructureconfiguration-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
Returns the Amazon Resource Name (ARN) of the infrastructure 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+)?)?$`.

`Name`  <a name="Name-fn::getatt"></a>
The name of the infrastructure configuration.

## Examples
<a name="aws-resource-imagebuilder-infrastructureconfiguration--examples"></a>



### Create an infrastructure configuration
<a name="aws-resource-imagebuilder-infrastructureconfiguration--examples--Create_an_infrastructure_configuration"></a>

The following example shows the schema for all of the parameters of the InfrastructureConfiguration resource document in both JSON and YAML format.

#### JSON
<a name="aws-resource-imagebuilder-infrastructureconfiguration--examples--Create_an_infrastructure_configuration--json"></a>

```
{
	"Resources": {
		"InfrastructureConfigurationAll": {
			"Type": "AWS::ImageBuilder::InfrastructureConfiguration",
			"Properties": {
				"Name": "infrastructure-configuration-name",
				"InstanceProfileName": "instance-profile-name",
				"Description": "description",
				"InstanceTypes": [
					"m4.large",
					"m5.large"
				],
				"KeyPair": "key-pair",
				"Logging": {
					"S3Logs": {
						"S3BucketName": "imagebuilder-logging-bucket",
						"S3KeyPrefix": "imagebuilder-bucket-prefix"
					}
				},
				"SnsTopicArn": {
					"Ref": "SnsTopicArn"
				},
				"TerminateInstanceOnFailure": true,
				"SecurityGroupIds": [
					"security-group-id-1",
					"security-group-id-2"
				],
				"SubnetId": "subnet-id",
				"Tags": {
					"CustomerInfraConfigTagKey1": "CustomerInfraConfigTagValue1",
					"CustomerInfraConfigTagKey2": "CustomerInfraConfigTagValue2"
				}
			}
		}
	}
}
```

#### YAML
<a name="aws-resource-imagebuilder-infrastructureconfiguration--examples--Create_an_infrastructure_configuration--yaml"></a>

```
Resources:
  InfrastructureConfigurationAll:
    Type: 'AWS::ImageBuilder::InfrastructureConfiguration'
    Properties:
      Name: 'infrastructure-configuration-name'
      InstanceProfileName: 'instance-profile-name'
      Description: 'description'
      InstanceTypes:
        - 'm4.large'
        - 'm5.large'
      KeyPair: 'key-pair'
      Logging:
        S3Logs:
          S3BucketName: 'imagebuilder-logging-bucket'
          S3KeyPrefix: 'imagebuilder-bucket-prefix'
      SnsTopicArn: !Ref SnsTopicArn
      TerminateInstanceOnFailure: true
      SecurityGroupIds:
        - 'security-group-id-1'
        - 'security-group-id-2'
      SubnetId: 'subnet-id'
      Tags:
        CustomerInfraConfigTagKey1: 'CustomerInfraConfigTagValue1'
        CustomerInfraConfigTagKey2: 'CustomerInfraConfigTagValue2'
```

# AWS::ImageBuilder::InfrastructureConfiguration InstanceMetadataOptions
<a name="aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions"></a>

The instance metadata options that apply to the HTTP requests that pipeline builds use to launch EC2 build and test instances. For more information about instance metadata options, see [Configure the instance metadata options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html) in the * *Amazon EC2 User Guide* * for Linux instances, or [Configure the instance metadata options](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/configuring-instance-metadata-options.html) in the * *Amazon EC2 Windows Guide* * for Windows instances.

## Syntax
<a name="aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions-syntax.json"></a>

```
{
  "[HttpPutResponseHopLimit](#cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions-httpputresponsehoplimit)" : Integer,
  "[HttpTokens](#cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions-httptokens)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions-syntax.yaml"></a>

```
  [HttpPutResponseHopLimit](#cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions-httpputresponsehoplimit): Integer
  [HttpTokens](#cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions-httptokens): String
```

## Properties
<a name="aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions-properties"></a>

`HttpPutResponseHopLimit`  <a name="cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions-httpputresponsehoplimit"></a>
Limit the number of hops that an instance metadata request can traverse to reach its destination. The default is one hop. However, if HTTP tokens are required, container image builds need a minimum of two hops.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `64`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`HttpTokens`  <a name="cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions-httptokens"></a>
Indicates whether a signed token header is required for instance metadata retrieval requests. The values affect the response as follows:  
+ **required** – When you retrieve the IAM role credentials, version 2.0 credentials are returned in all cases.
+ **optional** – You can include a signed token header in your request to retrieve instance metadata, or you can leave it out. If you include it, version 2.0 credentials are returned for the IAM role. Otherwise, version 1.0 credentials are returned.
The default setting is **optional**.  
*Required*: No  
*Type*: String  
*Allowed values*: `required | optional`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::InfrastructureConfiguration Logging
<a name="aws-properties-imagebuilder-infrastructureconfiguration-logging"></a>

Logging configuration defines where Image Builder uploads your logs.

## Syntax
<a name="aws-properties-imagebuilder-infrastructureconfiguration-logging-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-infrastructureconfiguration-logging-syntax.json"></a>

```
{
  "[S3Logs](#cfn-imagebuilder-infrastructureconfiguration-logging-s3logs)" : S3Logs
}
```

### YAML
<a name="aws-properties-imagebuilder-infrastructureconfiguration-logging-syntax.yaml"></a>

```
  [S3Logs](#cfn-imagebuilder-infrastructureconfiguration-logging-s3logs): 
    S3Logs
```

## Properties
<a name="aws-properties-imagebuilder-infrastructureconfiguration-logging-properties"></a>

`S3Logs`  <a name="cfn-imagebuilder-infrastructureconfiguration-logging-s3logs"></a>
The Amazon S3 logging configuration.  
*Required*: No  
*Type*: [S3Logs](aws-properties-imagebuilder-infrastructureconfiguration-s3logs.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::InfrastructureConfiguration Placement
<a name="aws-properties-imagebuilder-infrastructureconfiguration-placement"></a>

By default, EC2 instances run on shared tenancy hardware. This means that multiple AWS accounts might share the same physical hardware. When you use dedicated hardware, the physical server that hosts your instances is dedicated to your AWS account. Instance placement settings contain the details for the physical hardware where instances that Image Builder launches during image creation will run.

## Syntax
<a name="aws-properties-imagebuilder-infrastructureconfiguration-placement-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-infrastructureconfiguration-placement-syntax.json"></a>

```
{
  "[AvailabilityZone](#cfn-imagebuilder-infrastructureconfiguration-placement-availabilityzone)" : String,
  "[HostId](#cfn-imagebuilder-infrastructureconfiguration-placement-hostid)" : String,
  "[HostResourceGroupArn](#cfn-imagebuilder-infrastructureconfiguration-placement-hostresourcegrouparn)" : String,
  "[Tenancy](#cfn-imagebuilder-infrastructureconfiguration-placement-tenancy)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-infrastructureconfiguration-placement-syntax.yaml"></a>

```
  [AvailabilityZone](#cfn-imagebuilder-infrastructureconfiguration-placement-availabilityzone): String
  [HostId](#cfn-imagebuilder-infrastructureconfiguration-placement-hostid): String
  [HostResourceGroupArn](#cfn-imagebuilder-infrastructureconfiguration-placement-hostresourcegrouparn): String
  [Tenancy](#cfn-imagebuilder-infrastructureconfiguration-placement-tenancy): String
```

## Properties
<a name="aws-properties-imagebuilder-infrastructureconfiguration-placement-properties"></a>

`AvailabilityZone`  <a name="cfn-imagebuilder-infrastructureconfiguration-placement-availabilityzone"></a>
The Availability Zone where your build and test instances will launch.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`HostId`  <a name="cfn-imagebuilder-infrastructureconfiguration-placement-hostid"></a>
The ID of the Dedicated Host on which build and test instances run. This only applies if `tenancy` is `host`. If you specify the host ID, you must not specify the resource group ARN. If you specify both, Image Builder returns an error.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`HostResourceGroupArn`  <a name="cfn-imagebuilder-infrastructureconfiguration-placement-hostresourcegrouparn"></a>
The Amazon Resource Name (ARN) of the host resource group in which to launch build and test instances. This only applies if `tenancy` is `host`. If you specify the resource group ARN, you must not specify the host ID. If you specify both, Image Builder returns an error.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tenancy`  <a name="cfn-imagebuilder-infrastructureconfiguration-placement-tenancy"></a>
The tenancy of the instance. An instance with a tenancy of `dedicated` runs on single-tenant hardware. An instance with a tenancy of `host` runs on a Dedicated Host.  
If tenancy is set to `host`, then you can optionally specify one target for placement – either host ID or host resource group ARN. If automatic placement is enabled for your host, and you don't specify any placement target, Amazon EC2 will try to find an available host for your build and test instances.  
*Required*: No  
*Type*: String  
*Allowed values*: `default | dedicated | host`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::InfrastructureConfiguration S3Logs
<a name="aws-properties-imagebuilder-infrastructureconfiguration-s3logs"></a>

Amazon S3 logging configuration.

## Syntax
<a name="aws-properties-imagebuilder-infrastructureconfiguration-s3logs-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-infrastructureconfiguration-s3logs-syntax.json"></a>

```
{
  "[S3BucketName](#cfn-imagebuilder-infrastructureconfiguration-s3logs-s3bucketname)" : String,
  "[S3KeyPrefix](#cfn-imagebuilder-infrastructureconfiguration-s3logs-s3keyprefix)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-infrastructureconfiguration-s3logs-syntax.yaml"></a>

```
  [S3BucketName](#cfn-imagebuilder-infrastructureconfiguration-s3logs-s3bucketname): String
  [S3KeyPrefix](#cfn-imagebuilder-infrastructureconfiguration-s3logs-s3keyprefix): String
```

## Properties
<a name="aws-properties-imagebuilder-infrastructureconfiguration-s3logs-properties"></a>

`S3BucketName`  <a name="cfn-imagebuilder-infrastructureconfiguration-s3logs-s3bucketname"></a>
The S3 bucket in which to store the logs.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`S3KeyPrefix`  <a name="cfn-imagebuilder-infrastructureconfiguration-s3logs-s3keyprefix"></a>
The Amazon S3 path to the bucket where the logs are stored.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::LifecyclePolicy
<a name="aws-resource-imagebuilder-lifecyclepolicy"></a>

Create a lifecycle policy resource.

## Syntax
<a name="aws-resource-imagebuilder-lifecyclepolicy-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-imagebuilder-lifecyclepolicy-syntax.json"></a>

```
{
  "Type" : "AWS::ImageBuilder::LifecyclePolicy",
  "Properties" : {
      "[Description](#cfn-imagebuilder-lifecyclepolicy-description)" : String,
      "[ExecutionRole](#cfn-imagebuilder-lifecyclepolicy-executionrole)" : String,
      "[Name](#cfn-imagebuilder-lifecyclepolicy-name)" : String,
      "[PolicyDetails](#cfn-imagebuilder-lifecyclepolicy-policydetails)" : [ PolicyDetail, ... ],
      "[ResourceSelection](#cfn-imagebuilder-lifecyclepolicy-resourceselection)" : ResourceSelection,
      "[ResourceType](#cfn-imagebuilder-lifecyclepolicy-resourcetype)" : String,
      "[Status](#cfn-imagebuilder-lifecyclepolicy-status)" : String,
      "[Tags](#cfn-imagebuilder-lifecyclepolicy-tags)" : {Key: Value, ...}
    }
}
```

### YAML
<a name="aws-resource-imagebuilder-lifecyclepolicy-syntax.yaml"></a>

```
Type: AWS::ImageBuilder::LifecyclePolicy
Properties:
  [Description](#cfn-imagebuilder-lifecyclepolicy-description): String
  [ExecutionRole](#cfn-imagebuilder-lifecyclepolicy-executionrole): String
  [Name](#cfn-imagebuilder-lifecyclepolicy-name): String
  [PolicyDetails](#cfn-imagebuilder-lifecyclepolicy-policydetails): 
    - PolicyDetail
  [ResourceSelection](#cfn-imagebuilder-lifecyclepolicy-resourceselection): 
    ResourceSelection
  [ResourceType](#cfn-imagebuilder-lifecyclepolicy-resourcetype): String
  [Status](#cfn-imagebuilder-lifecyclepolicy-status): String
  [Tags](#cfn-imagebuilder-lifecyclepolicy-tags): 
    Key: Value
```

## Properties
<a name="aws-resource-imagebuilder-lifecyclepolicy-properties"></a>

`Description`  <a name="cfn-imagebuilder-lifecyclepolicy-description"></a>
Optional description for the lifecycle policy.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ExecutionRole`  <a name="cfn-imagebuilder-lifecyclepolicy-executionrole"></a>
The name or Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^(?:arn:aws(?:-[a-z]+)*:iam::[0-9]{12}:role/)?[a-zA-Z_0-9+=,.@\-_/]+$`  
*Minimum*: `1`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-imagebuilder-lifecyclepolicy-name"></a>
The name of the lifecycle policy to create.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`PolicyDetails`  <a name="cfn-imagebuilder-lifecyclepolicy-policydetails"></a>
Configuration details for the lifecycle policy rules.  
*Required*: Yes  
*Type*: Array of [PolicyDetail](aws-properties-imagebuilder-lifecyclepolicy-policydetail.md)  
*Minimum*: `1`  
*Maximum*: `3`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ResourceSelection`  <a name="cfn-imagebuilder-lifecyclepolicy-resourceselection"></a>
Selection criteria for the resources that the lifecycle policy applies to.   
*Required*: Yes  
*Type*: [ResourceSelection](aws-properties-imagebuilder-lifecyclepolicy-resourceselection.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ResourceType`  <a name="cfn-imagebuilder-lifecyclepolicy-resourcetype"></a>
The type of Image Builder resource that the lifecycle policy applies to.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `AMI_IMAGE | CONTAINER_IMAGE`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Status`  <a name="cfn-imagebuilder-lifecyclepolicy-status"></a>
Indicates whether the lifecycle policy resource is enabled.  
*Required*: No  
*Type*: String  
*Allowed values*: `DISABLED | ENABLED`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-imagebuilder-lifecyclepolicy-tags"></a>
Tags to apply to the lifecycle policy resource.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-imagebuilder-lifecyclepolicy-return-values"></a>

### Ref
<a name="aws-resource-imagebuilder-lifecyclepolicy-return-values-ref"></a>

### Fn::GetAtt
<a name="aws-resource-imagebuilder-lifecyclepolicy-return-values-fn--getatt"></a>

#### 
<a name="aws-resource-imagebuilder-lifecyclepolicy-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
The Amazon Resource Name (ARN) of the lifecycle policy resource.

# AWS::ImageBuilder::LifecyclePolicy Action
<a name="aws-properties-imagebuilder-lifecyclepolicy-action"></a>

Contains selection criteria for the lifecycle policy.

## Syntax
<a name="aws-properties-imagebuilder-lifecyclepolicy-action-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-lifecyclepolicy-action-syntax.json"></a>

```
{
  "[IncludeResources](#cfn-imagebuilder-lifecyclepolicy-action-includeresources)" : IncludeResources,
  "[Type](#cfn-imagebuilder-lifecyclepolicy-action-type)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-lifecyclepolicy-action-syntax.yaml"></a>

```
  [IncludeResources](#cfn-imagebuilder-lifecyclepolicy-action-includeresources): 
    IncludeResources
  [Type](#cfn-imagebuilder-lifecyclepolicy-action-type): String
```

## Properties
<a name="aws-properties-imagebuilder-lifecyclepolicy-action-properties"></a>

`IncludeResources`  <a name="cfn-imagebuilder-lifecyclepolicy-action-includeresources"></a>
Specifies the resources that the lifecycle policy applies to.  
*Required*: No  
*Type*: [IncludeResources](aws-properties-imagebuilder-lifecyclepolicy-includeresources.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Type`  <a name="cfn-imagebuilder-lifecyclepolicy-action-type"></a>
Specifies the lifecycle action to take.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `DELETE | DEPRECATE | DISABLE`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::LifecyclePolicy AmiExclusionRules
<a name="aws-properties-imagebuilder-lifecyclepolicy-amiexclusionrules"></a>

Defines criteria for AMIs that are excluded from lifecycle actions.

## Syntax
<a name="aws-properties-imagebuilder-lifecyclepolicy-amiexclusionrules-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-lifecyclepolicy-amiexclusionrules-syntax.json"></a>

```
{
  "[IsPublic](#cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-ispublic)" : Boolean,
  "[LastLaunched](#cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-lastlaunched)" : LastLaunched,
  "[Regions](#cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-regions)" : [ String, ... ],
  "[SharedAccounts](#cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-sharedaccounts)" : [ String, ... ],
  "[TagMap](#cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-tagmap)" : {Key: Value, ...}
}
```

### YAML
<a name="aws-properties-imagebuilder-lifecyclepolicy-amiexclusionrules-syntax.yaml"></a>

```
  [IsPublic](#cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-ispublic): Boolean
  [LastLaunched](#cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-lastlaunched): 
    LastLaunched
  [Regions](#cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-regions): 
    - String
  [SharedAccounts](#cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-sharedaccounts): 
    - String
  [TagMap](#cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-tagmap): 
    Key: Value
```

## Properties
<a name="aws-properties-imagebuilder-lifecyclepolicy-amiexclusionrules-properties"></a>

`IsPublic`  <a name="cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-ispublic"></a>
Configures whether public AMIs are excluded from the lifecycle action.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LastLaunched`  <a name="cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-lastlaunched"></a>
Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions.  
*Required*: No  
*Type*: [LastLaunched](aws-properties-imagebuilder-lifecyclepolicy-lastlaunched.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Regions`  <a name="cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-regions"></a>
Configures AWS Regions that are excluded from the lifecycle action.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SharedAccounts`  <a name="cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-sharedaccounts"></a>
Specifies AWS accounts whose resources are excluded from the lifecycle action.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `1536`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TagMap`  <a name="cfn-imagebuilder-lifecyclepolicy-amiexclusionrules-tagmap"></a>
Lists tags that should be excluded from lifecycle actions for the AMIs that have them.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::LifecyclePolicy ExclusionRules
<a name="aws-properties-imagebuilder-lifecyclepolicy-exclusionrules"></a>

Specifies resources that lifecycle policy actions should not apply to.

## Syntax
<a name="aws-properties-imagebuilder-lifecyclepolicy-exclusionrules-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-lifecyclepolicy-exclusionrules-syntax.json"></a>

```
{
  "[Amis](#cfn-imagebuilder-lifecyclepolicy-exclusionrules-amis)" : AmiExclusionRules,
  "[TagMap](#cfn-imagebuilder-lifecyclepolicy-exclusionrules-tagmap)" : {Key: Value, ...}
}
```

### YAML
<a name="aws-properties-imagebuilder-lifecyclepolicy-exclusionrules-syntax.yaml"></a>

```
  [Amis](#cfn-imagebuilder-lifecyclepolicy-exclusionrules-amis): 
    AmiExclusionRules
  [TagMap](#cfn-imagebuilder-lifecyclepolicy-exclusionrules-tagmap): 
    Key: Value
```

## Properties
<a name="aws-properties-imagebuilder-lifecyclepolicy-exclusionrules-properties"></a>

`Amis`  <a name="cfn-imagebuilder-lifecyclepolicy-exclusionrules-amis"></a>
Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action.  
*Required*: No  
*Type*: [AmiExclusionRules](aws-properties-imagebuilder-lifecyclepolicy-amiexclusionrules.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TagMap`  <a name="cfn-imagebuilder-lifecyclepolicy-exclusionrules-tagmap"></a>
Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::LifecyclePolicy Filter
<a name="aws-properties-imagebuilder-lifecyclepolicy-filter"></a>

Defines filters that the lifecycle policy uses to determine impacted resource.

## Syntax
<a name="aws-properties-imagebuilder-lifecyclepolicy-filter-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-lifecyclepolicy-filter-syntax.json"></a>

```
{
  "[RetainAtLeast](#cfn-imagebuilder-lifecyclepolicy-filter-retainatleast)" : Integer,
  "[Type](#cfn-imagebuilder-lifecyclepolicy-filter-type)" : String,
  "[Unit](#cfn-imagebuilder-lifecyclepolicy-filter-unit)" : String,
  "[Value](#cfn-imagebuilder-lifecyclepolicy-filter-value)" : Integer
}
```

### YAML
<a name="aws-properties-imagebuilder-lifecyclepolicy-filter-syntax.yaml"></a>

```
  [RetainAtLeast](#cfn-imagebuilder-lifecyclepolicy-filter-retainatleast): Integer
  [Type](#cfn-imagebuilder-lifecyclepolicy-filter-type): String
  [Unit](#cfn-imagebuilder-lifecyclepolicy-filter-unit): String
  [Value](#cfn-imagebuilder-lifecyclepolicy-filter-value): Integer
```

## Properties
<a name="aws-properties-imagebuilder-lifecyclepolicy-filter-properties"></a>

`RetainAtLeast`  <a name="cfn-imagebuilder-lifecyclepolicy-filter-retainatleast"></a>
For age-based filters, this is the number of resources to keep on hand after the lifecycle `DELETE` action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `10`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Type`  <a name="cfn-imagebuilder-lifecyclepolicy-filter-type"></a>
Filter resources based on either `age` or `count`.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `AGE | COUNT`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Unit`  <a name="cfn-imagebuilder-lifecyclepolicy-filter-unit"></a>
Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules.  
*Required*: No  
*Type*: String  
*Allowed values*: `DAYS | WEEKS | MONTHS | YEARS`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-imagebuilder-lifecyclepolicy-filter-value"></a>
The number of units for the time period or for the count. For example, a value of `6` might refer to six months or six AMIs.  
For count-based filters, this value represents the minimum number of resources to keep on hand. If you have fewer resources than this number, the resource is excluded from lifecycle actions.
*Required*: Yes  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `1000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::LifecyclePolicy IncludeResources
<a name="aws-properties-imagebuilder-lifecyclepolicy-includeresources"></a>

Specifies how the lifecycle policy should apply actions to selected resources.

## Syntax
<a name="aws-properties-imagebuilder-lifecyclepolicy-includeresources-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-lifecyclepolicy-includeresources-syntax.json"></a>

```
{
  "[Amis](#cfn-imagebuilder-lifecyclepolicy-includeresources-amis)" : Boolean,
  "[Containers](#cfn-imagebuilder-lifecyclepolicy-includeresources-containers)" : Boolean,
  "[Snapshots](#cfn-imagebuilder-lifecyclepolicy-includeresources-snapshots)" : Boolean
}
```

### YAML
<a name="aws-properties-imagebuilder-lifecyclepolicy-includeresources-syntax.yaml"></a>

```
  [Amis](#cfn-imagebuilder-lifecyclepolicy-includeresources-amis): Boolean
  [Containers](#cfn-imagebuilder-lifecyclepolicy-includeresources-containers): Boolean
  [Snapshots](#cfn-imagebuilder-lifecyclepolicy-includeresources-snapshots): Boolean
```

## Properties
<a name="aws-properties-imagebuilder-lifecyclepolicy-includeresources-properties"></a>

`Amis`  <a name="cfn-imagebuilder-lifecyclepolicy-includeresources-amis"></a>
Specifies whether the lifecycle action should apply to distributed AMIs.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Containers`  <a name="cfn-imagebuilder-lifecyclepolicy-includeresources-containers"></a>
Specifies whether the lifecycle action should apply to distributed containers.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Snapshots`  <a name="cfn-imagebuilder-lifecyclepolicy-includeresources-snapshots"></a>
Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::LifecyclePolicy LastLaunched
<a name="aws-properties-imagebuilder-lifecyclepolicy-lastlaunched"></a>

Defines criteria to exclude AMIs from lifecycle actions based on the last time they were used to launch an instance.

## Syntax
<a name="aws-properties-imagebuilder-lifecyclepolicy-lastlaunched-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-lifecyclepolicy-lastlaunched-syntax.json"></a>

```
{
  "[Unit](#cfn-imagebuilder-lifecyclepolicy-lastlaunched-unit)" : String,
  "[Value](#cfn-imagebuilder-lifecyclepolicy-lastlaunched-value)" : Integer
}
```

### YAML
<a name="aws-properties-imagebuilder-lifecyclepolicy-lastlaunched-syntax.yaml"></a>

```
  [Unit](#cfn-imagebuilder-lifecyclepolicy-lastlaunched-unit): String
  [Value](#cfn-imagebuilder-lifecyclepolicy-lastlaunched-value): Integer
```

## Properties
<a name="aws-properties-imagebuilder-lifecyclepolicy-lastlaunched-properties"></a>

`Unit`  <a name="cfn-imagebuilder-lifecyclepolicy-lastlaunched-unit"></a>
Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `DAYS | WEEKS | MONTHS | YEARS`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-imagebuilder-lifecyclepolicy-lastlaunched-value"></a>
The integer number of units for the time period. For example `6` (months).  
*Required*: Yes  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `365`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::LifecyclePolicy PolicyDetail
<a name="aws-properties-imagebuilder-lifecyclepolicy-policydetail"></a>

The configuration details for a lifecycle policy resource.

## Syntax
<a name="aws-properties-imagebuilder-lifecyclepolicy-policydetail-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-lifecyclepolicy-policydetail-syntax.json"></a>

```
{
  "[Action](#cfn-imagebuilder-lifecyclepolicy-policydetail-action)" : Action,
  "[ExclusionRules](#cfn-imagebuilder-lifecyclepolicy-policydetail-exclusionrules)" : ExclusionRules,
  "[Filter](#cfn-imagebuilder-lifecyclepolicy-policydetail-filter)" : Filter
}
```

### YAML
<a name="aws-properties-imagebuilder-lifecyclepolicy-policydetail-syntax.yaml"></a>

```
  [Action](#cfn-imagebuilder-lifecyclepolicy-policydetail-action): 
    Action
  [ExclusionRules](#cfn-imagebuilder-lifecyclepolicy-policydetail-exclusionrules): 
    ExclusionRules
  [Filter](#cfn-imagebuilder-lifecyclepolicy-policydetail-filter): 
    Filter
```

## Properties
<a name="aws-properties-imagebuilder-lifecyclepolicy-policydetail-properties"></a>

`Action`  <a name="cfn-imagebuilder-lifecyclepolicy-policydetail-action"></a>
Configuration details for the policy action.  
*Required*: Yes  
*Type*: [Action](aws-properties-imagebuilder-lifecyclepolicy-action.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ExclusionRules`  <a name="cfn-imagebuilder-lifecyclepolicy-policydetail-exclusionrules"></a>
Additional rules to specify resources that should be exempt from policy actions.  
*Required*: No  
*Type*: [ExclusionRules](aws-properties-imagebuilder-lifecyclepolicy-exclusionrules.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Filter`  <a name="cfn-imagebuilder-lifecyclepolicy-policydetail-filter"></a>
Specifies the resources that the lifecycle policy applies to.  
*Required*: Yes  
*Type*: [Filter](aws-properties-imagebuilder-lifecyclepolicy-filter.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::LifecyclePolicy RecipeSelection
<a name="aws-properties-imagebuilder-lifecyclepolicy-recipeselection"></a>

Specifies an Image Builder recipe that the lifecycle policy uses for resource selection.

## Syntax
<a name="aws-properties-imagebuilder-lifecyclepolicy-recipeselection-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-lifecyclepolicy-recipeselection-syntax.json"></a>

```
{
  "[Name](#cfn-imagebuilder-lifecyclepolicy-recipeselection-name)" : String,
  "[SemanticVersion](#cfn-imagebuilder-lifecyclepolicy-recipeselection-semanticversion)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-lifecyclepolicy-recipeselection-syntax.yaml"></a>

```
  [Name](#cfn-imagebuilder-lifecyclepolicy-recipeselection-name): String
  [SemanticVersion](#cfn-imagebuilder-lifecyclepolicy-recipeselection-semanticversion): String
```

## Properties
<a name="aws-properties-imagebuilder-lifecyclepolicy-recipeselection-properties"></a>

`Name`  <a name="cfn-imagebuilder-lifecyclepolicy-recipeselection-name"></a>
The name of an Image Builder recipe that the lifecycle policy uses for resource selection.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SemanticVersion`  <a name="cfn-imagebuilder-lifecyclepolicy-recipeselection-semanticversion"></a>
The version of the Image Builder recipe specified by the `name` field.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^(?:[0-9]+|x)\.(?:[0-9]+|x)\.(?:[0-9]+|x)$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::LifecyclePolicy ResourceSelection
<a name="aws-properties-imagebuilder-lifecyclepolicy-resourceselection"></a>

Resource selection criteria for the lifecycle policy.

## Syntax
<a name="aws-properties-imagebuilder-lifecyclepolicy-resourceselection-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-lifecyclepolicy-resourceselection-syntax.json"></a>

```
{
  "[Recipes](#cfn-imagebuilder-lifecyclepolicy-resourceselection-recipes)" : [ RecipeSelection, ... ],
  "[TagMap](#cfn-imagebuilder-lifecyclepolicy-resourceselection-tagmap)" : {Key: Value, ...}
}
```

### YAML
<a name="aws-properties-imagebuilder-lifecyclepolicy-resourceselection-syntax.yaml"></a>

```
  [Recipes](#cfn-imagebuilder-lifecyclepolicy-resourceselection-recipes): 
    - RecipeSelection
  [TagMap](#cfn-imagebuilder-lifecyclepolicy-resourceselection-tagmap): 
    Key: Value
```

## Properties
<a name="aws-properties-imagebuilder-lifecyclepolicy-resourceselection-properties"></a>

`Recipes`  <a name="cfn-imagebuilder-lifecyclepolicy-resourceselection-recipes"></a>
A list of recipes that are used as selection criteria for the output images that the lifecycle policy applies to.  
*Required*: No  
*Type*: Array of [RecipeSelection](aws-properties-imagebuilder-lifecyclepolicy-recipeselection.md)  
*Minimum*: `1`  
*Maximum*: `50`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TagMap`  <a name="cfn-imagebuilder-lifecyclepolicy-resourceselection-tagmap"></a>
A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ImageBuilder::Workflow
<a name="aws-resource-imagebuilder-workflow"></a>

Create a new workflow or a new version of an existing workflow.

## Syntax
<a name="aws-resource-imagebuilder-workflow-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-imagebuilder-workflow-syntax.json"></a>

```
{
  "Type" : "AWS::ImageBuilder::Workflow",
  "Properties" : {
      "[ChangeDescription](#cfn-imagebuilder-workflow-changedescription)" : String,
      "[Data](#cfn-imagebuilder-workflow-data)" : String,
      "[Description](#cfn-imagebuilder-workflow-description)" : String,
      "[KmsKeyId](#cfn-imagebuilder-workflow-kmskeyid)" : String,
      "[Name](#cfn-imagebuilder-workflow-name)" : String,
      "[Tags](#cfn-imagebuilder-workflow-tags)" : {Key: Value, ...},
      "[Type](#cfn-imagebuilder-workflow-type)" : String,
      "[Uri](#cfn-imagebuilder-workflow-uri)" : String,
      "[Version](#cfn-imagebuilder-workflow-version)" : String
    }
}
```

### YAML
<a name="aws-resource-imagebuilder-workflow-syntax.yaml"></a>

```
Type: AWS::ImageBuilder::Workflow
Properties:
  [ChangeDescription](#cfn-imagebuilder-workflow-changedescription): String
  [Data](#cfn-imagebuilder-workflow-data): String
  [Description](#cfn-imagebuilder-workflow-description): String
  [KmsKeyId](#cfn-imagebuilder-workflow-kmskeyid): String
  [Name](#cfn-imagebuilder-workflow-name): String
  [Tags](#cfn-imagebuilder-workflow-tags): 
    Key: Value
  [Type](#cfn-imagebuilder-workflow-type): String
  [Uri](#cfn-imagebuilder-workflow-uri): String
  [Version](#cfn-imagebuilder-workflow-version): String
```

## Properties
<a name="aws-resource-imagebuilder-workflow-properties"></a>

`ChangeDescription`  <a name="cfn-imagebuilder-workflow-changedescription"></a>
Describes what change has been made in this version of the workflow, or what makes this version different from other versions of the workflow.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Data`  <a name="cfn-imagebuilder-workflow-data"></a>
Contains the UTF-8 encoded YAML document content for the workflow. Alternatively, you can specify the `uri` of a YAML document file stored in Amazon S3. However, you cannot specify both properties.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `16000`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Description`  <a name="cfn-imagebuilder-workflow-description"></a>
Describes the workflow.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`KmsKeyId`  <a name="cfn-imagebuilder-workflow-kmskeyid"></a>
The Amazon Resource Name (ARN) that uniquely identifies the KMS key used to encrypt this workflow resource. 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*.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-imagebuilder-workflow-name"></a>
The name of the workflow to create.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-imagebuilder-workflow-tags"></a>
Tags that apply to the workflow resource.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Type`  <a name="cfn-imagebuilder-workflow-type"></a>
The phase in the image build process for which the workflow resource is responsible.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `BUILD | TEST | DISTRIBUTION`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Uri`  <a name="cfn-imagebuilder-workflow-uri"></a>
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.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Version`  <a name="cfn-imagebuilder-workflow-version"></a>
The semantic version of this workflow resource. The semantic version syntax adheres to the following rules.  
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.
*Required*: Yes  
*Type*: String  
*Pattern*: `^[0-9]+\.[0-9]+\.[0-9]+$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

## Return values
<a name="aws-resource-imagebuilder-workflow-return-values"></a>

### Ref
<a name="aws-resource-imagebuilder-workflow-return-values-ref"></a>

### Fn::GetAtt
<a name="aws-resource-imagebuilder-workflow-return-values-fn--getatt"></a>

#### 
<a name="aws-resource-imagebuilder-workflow-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
The Amazon Resource Name (ARN) of the workflow resource.

`LatestVersion.Arn`  <a name="LatestVersion.Arn-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) of the Image Builder resource.

`LatestVersion.Major`  <a name="LatestVersion.Major-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource.

`LatestVersion.Minor`  <a name="LatestVersion.Minor-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource.

`LatestVersion.Patch`  <a name="LatestVersion.Patch-fn::getatt"></a>
The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource.

# AWS::ImageBuilder::Workflow LatestVersion
<a name="aws-properties-imagebuilder-workflow-latestversion"></a>

The resource ARNs with different wildcard variations of semantic versioning.

## Syntax
<a name="aws-properties-imagebuilder-workflow-latestversion-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-imagebuilder-workflow-latestversion-syntax.json"></a>

```
{
  "[Arn](#cfn-imagebuilder-workflow-latestversion-arn)" : String,
  "[Major](#cfn-imagebuilder-workflow-latestversion-major)" : String,
  "[Minor](#cfn-imagebuilder-workflow-latestversion-minor)" : String,
  "[Patch](#cfn-imagebuilder-workflow-latestversion-patch)" : String
}
```

### YAML
<a name="aws-properties-imagebuilder-workflow-latestversion-syntax.yaml"></a>

```
  [Arn](#cfn-imagebuilder-workflow-latestversion-arn): String
  [Major](#cfn-imagebuilder-workflow-latestversion-major): String
  [Minor](#cfn-imagebuilder-workflow-latestversion-minor): String
  [Patch](#cfn-imagebuilder-workflow-latestversion-patch): String
```

## Properties
<a name="aws-properties-imagebuilder-workflow-latestversion-properties"></a>

`Arn`  <a name="cfn-imagebuilder-workflow-latestversion-arn"></a>
The latest version Amazon Resource Name (ARN) of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Major`  <a name="cfn-imagebuilder-workflow-latestversion-major"></a>
The latest version Amazon Resource Name (ARN) with the same `major` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Minor`  <a name="cfn-imagebuilder-workflow-latestversion-minor"></a>
The latest version Amazon Resource Name (ARN) with the same `minor` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Patch`  <a name="cfn-imagebuilder-workflow-latestversion-patch"></a>
The latest version Amazon Resource Name (ARN) with the same `patch` version of the Image Builder resource.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|lifecycle-policy|workflow\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\.(?:x|[0-9]+)\.(?:x|[0-9]+))(?:/[0-9]+)?)?$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)