

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

# AWS::SageMaker::Pipeline
<a name="aws-resource-sagemaker-pipeline"></a>

The `AWS::SageMaker::Pipeline` resource creates shell scripts that run when you create and/or start a SageMaker Pipeline. For information about SageMaker Pipelines, see [SageMaker Pipelines](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines.html) in the *Amazon SageMaker Developer Guide*.

## Syntax
<a name="aws-resource-sagemaker-pipeline-syntax"></a>

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

### JSON
<a name="aws-resource-sagemaker-pipeline-syntax.json"></a>

```
{
  "Type" : "AWS::SageMaker::Pipeline",
  "Properties" : {
      "[ParallelismConfiguration](#cfn-sagemaker-pipeline-parallelismconfiguration)" : ParallelismConfiguration,
      "[PipelineDefinition](#cfn-sagemaker-pipeline-pipelinedefinition)" : PipelineDefinition,
      "[PipelineDescription](#cfn-sagemaker-pipeline-pipelinedescription)" : String,
      "[PipelineDisplayName](#cfn-sagemaker-pipeline-pipelinedisplayname)" : String,
      "[PipelineName](#cfn-sagemaker-pipeline-pipelinename)" : String,
      "[RoleArn](#cfn-sagemaker-pipeline-rolearn)" : String,
      "[Tags](#cfn-sagemaker-pipeline-tags)" : [ Tag, ... ]
    }
}
```

### YAML
<a name="aws-resource-sagemaker-pipeline-syntax.yaml"></a>

```
Type: AWS::SageMaker::Pipeline
Properties:
  [ParallelismConfiguration](#cfn-sagemaker-pipeline-parallelismconfiguration): 
    ParallelismConfiguration
  [PipelineDefinition](#cfn-sagemaker-pipeline-pipelinedefinition): 
    PipelineDefinition
  [PipelineDescription](#cfn-sagemaker-pipeline-pipelinedescription): String
  [PipelineDisplayName](#cfn-sagemaker-pipeline-pipelinedisplayname): String
  [PipelineName](#cfn-sagemaker-pipeline-pipelinename): String
  [RoleArn](#cfn-sagemaker-pipeline-rolearn): String
  [Tags](#cfn-sagemaker-pipeline-tags): 
    - Tag
```

## Properties
<a name="aws-resource-sagemaker-pipeline-properties"></a>

`ParallelismConfiguration`  <a name="cfn-sagemaker-pipeline-parallelismconfiguration"></a>
The parallelism configuration applied to the pipeline.  
*Required*: No  
*Type*: [ParallelismConfiguration](aws-properties-sagemaker-pipeline-parallelismconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PipelineDefinition`  <a name="cfn-sagemaker-pipeline-pipelinedefinition"></a>
The definition of the pipeline. This can be either a JSON string or an Amazon S3 location.  
*Required*: Yes  
*Type*: [PipelineDefinition](aws-properties-sagemaker-pipeline-pipelinedefinition.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PipelineDescription`  <a name="cfn-sagemaker-pipeline-pipelinedescription"></a>
The description of the pipeline.  
*Required*: No  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `3072`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PipelineDisplayName`  <a name="cfn-sagemaker-pipeline-pipelinedisplayname"></a>
The display name of the pipeline.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*`  
*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)

`PipelineName`  <a name="cfn-sagemaker-pipeline-pipelinename"></a>
The name of the pipeline.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*`  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RoleArn`  <a name="cfn-sagemaker-pipeline-rolearn"></a>
The Amazon Resource Name (ARN) of the IAM role used to execute the pipeline.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^arn:aws[a-z\-]*:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+$`  
*Minimum*: `20`  
*Maximum*: `2048`  
*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-sagemaker-pipeline-tags"></a>
The tags of the pipeline.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-sagemaker-pipeline-tag.md)  
*Minimum*: `0`  
*Maximum*: `50`  
*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-sagemaker-pipeline-return-values"></a>

### Ref
<a name="aws-resource-sagemaker-pipeline-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the PipelineName of the pipeline. 

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

## Examples
<a name="aws-resource-sagemaker-pipeline--examples"></a>

### SageMaker Pipeline Example
<a name="aws-resource-sagemaker-pipeline--examples--SageMaker_Pipeline_Example"></a>

The following example creates a Pipeline with an associated lifecycle configuration.

#### JSON
<a name="aws-resource-sagemaker-pipeline--examples--SageMaker_Pipeline_Example--json"></a>

```
# Pipeline definition given as a JSON string { "Resources": {
            "MyPipeline": { "Type": "AWS::SageMaker::Pipeline", "Properties": { "PipelineName":
            "<pipeline-name>" "PipelineDisplayName": "<pipeline-display-name>",
            "PipelineDescription": "<pipeline-description>", "PipelineDefinition": {
            "PipelineDefinitionBody":
               "{\"Version\":\"2020-12-01\",\"Parameters\":[{\"Name\":\"InputDataSource\",\"DefaultValue\":\"\"},{\"Name\":\"InstanceCount\",\"Type\":\"Integer\",\"DefaultValue\":1}],\"Steps\":[{\"Name\":\"Training1\",\"Type\":\"Training\",\"Arguments\":{\"InputDataConfig\":[{\"DataSource\":{\"S3DataSource\":{\"S3Uri\":{\"Get\":\"Parameters.InputDataSource\"}}}}],\"OutputDataConfig\":{\"S3OutputPath\":\"s3://amzn-s3-demo-bucket/\"},\"ResourceConfig\":{\"InstanceType\":\"ml.m5.large\",\"InstanceCount\":{\"Get\":\"Parameters.InstanceCount\"},\"VolumeSizeInGB\":1024}}}]}"
            }, "RoleArn": "arn:aws:iam::<account-id>:root" } } } }
```

#### JSON
<a name="aws-resource-sagemaker-pipeline--examples--SageMaker_Pipeline_Example--json"></a>

```
# Pipeline definition given as an S3 string { "Resources": {
            "MyPipeline": { "Type": "AWS::SageMaker::Pipeline", "Properties": { "PipelineName":
            "<pipeline-name>", "PipelineDisplayName": "<pipeline-display-name>",
            "PipelineDescription": "<pipeline-description>", "PipelineDefinition": {
            "PipelineDefinitionS3Location": { "Bucket": "<S3-bucket-location>", "Key":
            "<S3-bucket-key>" } }, "RoleArn": "arn:aws:iam::<account-id>:root" } } }
            }
```

#### YAML
<a name="aws-resource-sagemaker-pipeline--examples--SageMaker_Pipeline_Example--yaml"></a>

```
# Pipeline definition given as a JSON string Resources:
            MyPipeline: Type: AWS::SageMaker::Pipeline Properties: PipelineName:
            "<pipeline-name>" PipelineDisplayName: "<pipeline-display-name>"
            PipelineDescription: "<pipeline-description>" PipelineDefinition:
            PipelineDefinitionBody:
               "{\"Version\":\"2020-12-01\",\"Parameters\":[{\"Name\":\"InputDataSource\",\"DefaultValue\":\"\"},{\"Name\":\"InstanceCount\",\"Type\":\"Integer\",\"DefaultValue\":1}],\"Steps\":[{\"Name\":\"Training1\",\"Type\":\"Training\",\"Arguments\":{\"InputDataConfig\":[{\"DataSource\":{\"S3DataSource\":{\"S3Uri\":{\"Get\":\"Parameters.InputDataSource\"}}}}],\"OutputDataConfig\":{\"S3OutputPath\":\"s3://amzn-s3-demo-bucket/\"},\"ResourceConfig\":{\"InstanceType\":\"ml.m5.large\",\"InstanceCount\":{\"Get\":\"Parameters.InstanceCount\"},\"VolumeSizeInGB\":1024}}}]}"
            RoleArn: "arn:aws:iam::<account-id>:root"
```

#### YAML
<a name="aws-resource-sagemaker-pipeline--examples--SageMaker_Pipeline_Example--yaml"></a>

```
# Pipeline definition given as an S3 location Resources:
            MyPipeline: Type: AWS::SageMaker::Pipeline Properties: PipelineName:
            "<pipeline-name>" PipelineDisplayName:"<pipeline-display-name>"
            PipelineDescription: "<pipeline-description>" PipelineDefinition:
            PipelineDefinitionS3Location: Bucket: "<S3-bucket-location>" Key:
            "<S3-bucket-key>" RoleArn: "arn:aws:iam::<account-id>:root"
```

# AWS::SageMaker::Pipeline ParallelismConfiguration
<a name="aws-properties-sagemaker-pipeline-parallelismconfiguration"></a>

Configuration that controls the parallelism of the pipeline. By default, the parallelism configuration specified applies to all executions of the pipeline unless overridden.

## Syntax
<a name="aws-properties-sagemaker-pipeline-parallelismconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-sagemaker-pipeline-parallelismconfiguration-syntax.json"></a>

```
{
  "[MaxParallelExecutionSteps](#cfn-sagemaker-pipeline-parallelismconfiguration-maxparallelexecutionsteps)" : Integer
}
```

### YAML
<a name="aws-properties-sagemaker-pipeline-parallelismconfiguration-syntax.yaml"></a>

```
  [MaxParallelExecutionSteps](#cfn-sagemaker-pipeline-parallelismconfiguration-maxparallelexecutionsteps): Integer
```

## Properties
<a name="aws-properties-sagemaker-pipeline-parallelismconfiguration-properties"></a>

`MaxParallelExecutionSteps`  <a name="cfn-sagemaker-pipeline-parallelismconfiguration-maxparallelexecutionsteps"></a>
The max number of steps that can be executed in parallel.   
*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::SageMaker::Pipeline PipelineDefinition
<a name="aws-properties-sagemaker-pipeline-pipelinedefinition"></a>

The definition of the pipeline. This can be either a JSON string or an Amazon S3 location.

## Syntax
<a name="aws-properties-sagemaker-pipeline-pipelinedefinition-syntax"></a>

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

### JSON
<a name="aws-properties-sagemaker-pipeline-pipelinedefinition-syntax.json"></a>

```
{
  "[PipelineDefinitionBody](#cfn-sagemaker-pipeline-pipelinedefinition-pipelinedefinitionbody)" : String,
  "[PipelineDefinitionS3Location](#cfn-sagemaker-pipeline-pipelinedefinition-pipelinedefinitions3location)" : S3Location
}
```

### YAML
<a name="aws-properties-sagemaker-pipeline-pipelinedefinition-syntax.yaml"></a>

```
  [PipelineDefinitionBody](#cfn-sagemaker-pipeline-pipelinedefinition-pipelinedefinitionbody): String
  [PipelineDefinitionS3Location](#cfn-sagemaker-pipeline-pipelinedefinition-pipelinedefinitions3location): 
    S3Location
```

## Properties
<a name="aws-properties-sagemaker-pipeline-pipelinedefinition-properties"></a>

`PipelineDefinitionBody`  <a name="cfn-sagemaker-pipeline-pipelinedefinition-pipelinedefinitionbody"></a>
The [JSON pipeline definition](https://aws-sagemaker-mlops.github.io/sagemaker-model-building-pipeline-definition-JSON-schema/) of the 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)

`PipelineDefinitionS3Location`  <a name="cfn-sagemaker-pipeline-pipelinedefinition-pipelinedefinitions3location"></a>
The location of the pipeline definition stored in Amazon S3. If specified, SageMaker retrieves the pipeline definition from this location.  
*Required*: No  
*Type*: [S3Location](aws-properties-sagemaker-pipeline-s3location.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::SageMaker::Pipeline S3Location
<a name="aws-properties-sagemaker-pipeline-s3location"></a>

The location of the pipeline definition stored in Amazon S3. If specified, SageMaker will retrieve the pipeline definition from this location.

## Syntax
<a name="aws-properties-sagemaker-pipeline-s3location-syntax"></a>

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

### JSON
<a name="aws-properties-sagemaker-pipeline-s3location-syntax.json"></a>

```
{
  "[Bucket](#cfn-sagemaker-pipeline-s3location-bucket)" : String,
  "[ETag](#cfn-sagemaker-pipeline-s3location-etag)" : String,
  "[Key](#cfn-sagemaker-pipeline-s3location-key)" : String,
  "[Version](#cfn-sagemaker-pipeline-s3location-version)" : String
}
```

### YAML
<a name="aws-properties-sagemaker-pipeline-s3location-syntax.yaml"></a>

```
  [Bucket](#cfn-sagemaker-pipeline-s3location-bucket): String
  [ETag](#cfn-sagemaker-pipeline-s3location-etag): String
  [Key](#cfn-sagemaker-pipeline-s3location-key): String
  [Version](#cfn-sagemaker-pipeline-s3location-version): String
```

## Properties
<a name="aws-properties-sagemaker-pipeline-s3location-properties"></a>

`Bucket`  <a name="cfn-sagemaker-pipeline-s3location-bucket"></a>
The name of the S3 bucket.  
*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)

`ETag`  <a name="cfn-sagemaker-pipeline-s3location-etag"></a>
A file checksum of the pipeline definition file.  
*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)

`Key`  <a name="cfn-sagemaker-pipeline-s3location-key"></a>
The object key (or key name) which uniquely identifies the object in an S3 bucket.  
*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)

`Version`  <a name="cfn-sagemaker-pipeline-s3location-version"></a>
The version ID of the pipeline definition file. If not specified, Amazon SageMaker will retrieve the latest version.  
*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)

# AWS::SageMaker::Pipeline Tag
<a name="aws-properties-sagemaker-pipeline-tag"></a>

A tag object that consists of a key and an optional value, used to manage metadata for SageMaker AWS resources.

You can add tags to notebook instances, training jobs, hyperparameter tuning jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, and endpoints. For more information on adding tags to SageMaker resources, see [AddTags](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html).

For more information on adding metadata to your AWS resources with tagging, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). For advice on best practices for managing AWS resources with tagging, see [Tagging Best Practices: Implement an Effective AWS Resource Tagging Strategy](https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf).

## Syntax
<a name="aws-properties-sagemaker-pipeline-tag-syntax"></a>

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

### JSON
<a name="aws-properties-sagemaker-pipeline-tag-syntax.json"></a>

```
{
  "[Key](#cfn-sagemaker-pipeline-tag-key)" : String,
  "[Value](#cfn-sagemaker-pipeline-tag-value)" : String
}
```

### YAML
<a name="aws-properties-sagemaker-pipeline-tag-syntax.yaml"></a>

```
  [Key](#cfn-sagemaker-pipeline-tag-key): String
  [Value](#cfn-sagemaker-pipeline-tag-value): String
```

## Properties
<a name="aws-properties-sagemaker-pipeline-tag-properties"></a>

`Key`  <a name="cfn-sagemaker-pipeline-tag-key"></a>
The tag key. Tag keys must be unique per resource.  
*Required*: Yes  
*Type*: String  
*Pattern*: `([\p{L}\p{Z}\p{N}_.:/=+\-@]*)`  
*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-sagemaker-pipeline-tag-value"></a>
The tag value.  
*Required*: Yes  
*Type*: String  
*Pattern*: `([\p{L}\p{Z}\p{N}_.:/=+\-@]*)`  
*Minimum*: `0`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)