

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::CodePipeline::Pipeline
<a name="aws-resource-codepipeline-pipeline"></a>

The `AWS::CodePipeline::Pipeline` resource creates a CodePipeline pipeline that describes how software changes go through a release process. For more information, see [What Is CodePipeline?](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) in the *CodePipeline User Guide*.

For an example in YAML and JSON that contains the parameters in this reference, see [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#aws-resource-codepipeline-pipeline--examples).

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

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

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

```
{
  "Type" : "AWS::CodePipeline::Pipeline",
  "Properties" : {
      "[ArtifactStore](#cfn-codepipeline-pipeline-artifactstore)" : ArtifactStore,
      "[ArtifactStores](#cfn-codepipeline-pipeline-artifactstores)" : [ ArtifactStoreMap, ... ],
      "[DisableInboundStageTransitions](#cfn-codepipeline-pipeline-disableinboundstagetransitions)" : [ StageTransition, ... ],
      "[ExecutionMode](#cfn-codepipeline-pipeline-executionmode)" : String,
      "[Name](#cfn-codepipeline-pipeline-name)" : String,
      "[PipelineType](#cfn-codepipeline-pipeline-pipelinetype)" : String,
      "[RestartExecutionOnUpdate](#cfn-codepipeline-pipeline-restartexecutiononupdate)" : Boolean,
      "[RoleArn](#cfn-codepipeline-pipeline-rolearn)" : String,
      "[Stages](#cfn-codepipeline-pipeline-stages)" : [ StageDeclaration, ... ],
      "[Tags](#cfn-codepipeline-pipeline-tags)" : [ Tag, ... ],
      "[Triggers](#cfn-codepipeline-pipeline-triggers)" : [ PipelineTriggerDeclaration, ... ],
      "[Variables](#cfn-codepipeline-pipeline-variables)" : [ VariableDeclaration, ... ]
    }
}
```

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

```
Type: AWS::CodePipeline::Pipeline
Properties:
  [ArtifactStore](#cfn-codepipeline-pipeline-artifactstore): 
    ArtifactStore
  [ArtifactStores](#cfn-codepipeline-pipeline-artifactstores): 
    - ArtifactStoreMap
  [DisableInboundStageTransitions](#cfn-codepipeline-pipeline-disableinboundstagetransitions): 
    - StageTransition
  [ExecutionMode](#cfn-codepipeline-pipeline-executionmode): String
  [Name](#cfn-codepipeline-pipeline-name): String
  [PipelineType](#cfn-codepipeline-pipeline-pipelinetype): String
  [RestartExecutionOnUpdate](#cfn-codepipeline-pipeline-restartexecutiononupdate): Boolean
  [RoleArn](#cfn-codepipeline-pipeline-rolearn): String
  [Stages](#cfn-codepipeline-pipeline-stages): 
    - StageDeclaration
  [Tags](#cfn-codepipeline-pipeline-tags): 
    - Tag
  [Triggers](#cfn-codepipeline-pipeline-triggers): 
    - PipelineTriggerDeclaration
  [Variables](#cfn-codepipeline-pipeline-variables): 
    - VariableDeclaration
```

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

`ArtifactStore`  <a name="cfn-codepipeline-pipeline-artifactstore"></a>
The S3 bucket where artifacts for the pipeline are stored.  
You must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use `artifactStores`.
*Required*: Conditional  
*Type*: [ArtifactStore](aws-properties-codepipeline-pipeline-artifactstore.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ArtifactStores`  <a name="cfn-codepipeline-pipeline-artifactstores"></a>
A mapping of `artifactStore` objects and their corresponding AWS Regions. There must be an artifact store for the pipeline Region and for each cross-region action in the pipeline.  
You must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use `artifactStores`.
*Required*: Conditional  
*Type*: Array of [ArtifactStoreMap](aws-properties-codepipeline-pipeline-artifactstoremap.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DisableInboundStageTransitions`  <a name="cfn-codepipeline-pipeline-disableinboundstagetransitions"></a>
Represents the input of a `DisableStageTransition` action.  
*Required*: No  
*Type*: Array of [StageTransition](aws-properties-codepipeline-pipeline-stagetransition.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ExecutionMode`  <a name="cfn-codepipeline-pipeline-executionmode"></a>
The method that the pipeline will use to handle multiple executions. The default mode is SUPERSEDED.  
*Required*: No  
*Type*: String  
*Allowed values*: `QUEUED | SUPERSEDED | PARALLEL`  
*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-codepipeline-pipeline-name"></a>
The name of the pipeline.  
*Required*: No  
*Type*: String  
*Pattern*: `[A-Za-z0-9.@\-_]+`  
*Minimum*: `1`  
*Maximum*: `100`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`PipelineType`  <a name="cfn-codepipeline-pipeline-pipelinetype"></a>
CodePipeline provides the following pipeline types, which differ in characteristics and price, so that you can tailor your pipeline features and cost to the needs of your applications.  
+ V1 type pipelines have a JSON structure that contains standard pipeline, stage, and action-level parameters.
+ V2 type pipelines have the same structure as a V1 type, along with additional parameters for release safety and trigger configuration.
Including V2 parameters, such as triggers on Git tags, in the pipeline JSON when creating or updating a pipeline will result in the pipeline having the V2 type of pipeline and the associated costs.
For information about pricing for CodePipeline, see [Pricing](https://aws.amazon.com/codepipeline/pricing/).  
 For information about which type of pipeline to choose, see [What type of pipeline is right for me?](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html).  
*Required*: No  
*Type*: String  
*Allowed values*: `V1 | V2`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RestartExecutionOnUpdate`  <a name="cfn-codepipeline-pipeline-restartexecutiononupdate"></a>
Indicates whether to rerun the CodePipeline pipeline after you update 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)

`RoleArn`  <a name="cfn-codepipeline-pipeline-rolearn"></a>
The Amazon Resource Name (ARN) for CodePipeline to use to either perform actions with no `actionRoleArn`, or to use to assume roles for actions with an `actionRoleArn`.  
*Required*: Yes  
*Type*: String  
*Pattern*: `arn:aws(-[\w]+)*:iam::[0-9]{12}:role/.*`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Stages`  <a name="cfn-codepipeline-pipeline-stages"></a>
Represents information about a stage and its definition.  
*Required*: Yes  
*Type*: Array of [StageDeclaration](aws-properties-codepipeline-pipeline-stagedeclaration.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-codepipeline-pipeline-tags"></a>
Specifies the tags applied to the pipeline.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-codepipeline-pipeline-tag.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Triggers`  <a name="cfn-codepipeline-pipeline-triggers"></a>
The trigger configuration specifying a type of event, such as Git tags, that starts the pipeline.  
When a trigger configuration is specified, default change detection for repository and branch commits is disabled.
*Required*: No  
*Type*: Array of [PipelineTriggerDeclaration](aws-properties-codepipeline-pipeline-pipelinetriggerdeclaration.md)  
*Maximum*: `50`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Variables`  <a name="cfn-codepipeline-pipeline-variables"></a>
A list that defines the pipeline variables for a pipeline resource. Variable names can have alphanumeric and underscore characters, and the values must match `[A-Za-z0-9@\-_]+`.  
*Required*: No  
*Type*: Array of [VariableDeclaration](aws-properties-codepipeline-pipeline-variabledeclaration.md)  
*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-codepipeline-pipeline-return-values"></a>

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

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the pipeline name, such as mysta-MyPipeline-A1BCDEFGHIJ2.

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-codepipeline-pipeline-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-codepipeline-pipeline-return-values-fn--getatt-fn--getatt"></a>

`Version`  <a name="Version-fn::getatt"></a>
The version of the pipeline.  
A new pipeline is always assigned a version number of 1. This number increments when a pipeline is updated.

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



**Topics**
+ [Pipeline with two stages and trigger configuration](#aws-resource-codepipeline-pipeline--examples--Pipeline_with_two_stages_and_trigger_configuration)
+ [Pipeline with source stage and a stage configured for automatic rollback on failure](#aws-resource-codepipeline-pipeline--examples--Pipeline_with_source_stage_and_a_stage_configured_for_automatic_rollback_on_failure)

### Pipeline with two stages and trigger configuration
<a name="aws-resource-codepipeline-pipeline--examples--Pipeline_with_two_stages_and_trigger_configuration"></a>

The following example creates a pipeline with a source stage and a beta stage. For the source stage, CodePipeline uses a connection to a GitHub repository. The beta stage builds those changes by using CodeBuild. The pipeline is configured to start using trigger filtering. The pipeline will start when push events meet the Git tags, branches, and file path filter criteria specified. Also, the pipeline will start when pull requests meet the filter criteria for the branch names, file paths, and pull request events specified. For example, when a pull request for branches and file paths containing `release-*` is closed, the pipeline will start.

#### JSON
<a name="aws-resource-codepipeline-pipeline--examples--Pipeline_with_two_stages_and_trigger_configuration--json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "CodePipeline sample",
    "Parameters": {
        "CodePipelineServiceRole": {
            "Type": "String"
        },
        "ArtifactStoreS3Location": {
            "Type": "String"
        },
        "SourceActionName": {
            "Type": "String"
        }
    },
    "Resources": {
        "CodePipelineForIntegTest": {
            "Type": "AWS::CodePipeline::Pipeline",
            "Properties": {
                "RoleArn": {
                    "Ref": "CodePipelineServiceRole"
                },
                "Stages": [
                    {
                        "Name": "Source",
                        "Actions": [
                            {
                                "Name": {
                                    "Ref": "SourceActionName"
                                },
                                "InputArtifacts": [],
                                "ActionTypeId": {
                                    "Category": "Source",
                                    "Owner": "AWS",
                                    "Version": "1",
                                    "Provider": "CodeStarSourceConnection"
                                },
                                "OutputArtifacts": [
                                    {
                                        "Name": "SourceOutput"
                                    }
                                ],
                                "Configuration": {
                                    "BranchName": "main",
                                    "ConnectionArn": "arn:aws:codestar-connections:us-east-1:123456789123:connection/id",
                                    "FullRepositoryId": "repo-owner/sample-project"
                                },
                                "RunOrder": 1
                            }
                        ]
                    },
                    {
                        "Name": "Beta",
                        "Actions": [
                            {
                                "Name": "BetaAction",
                                "InputArtifacts": [
                                    {
                                        "Name": "SourceOutput"
                                    }
                                ],
                                "ActionTypeId": {
                                    "Category": "Build",
                                    "Owner": "AWS",
                                    "Provider": "CodeBuild",
                                    "Version": "1"
                                },
                                "Configuration": {
                                    "ProjectName": "Sample"
                                },
                                "RunOrder": 1
                            }
                        ]
                    }
                ],
                "Triggers": [
                    {
                        "ProviderType": "CodeStarSourceConnection",
                        "GitConfiguration": {
                            "Push": [
                                {
                                    "Tags": {
                                        "Excludes": [
                                            "beta-*"
                                        ],
                                        "Includes": [
                                            "release-*"
                                        ]
                                    }
                                },
                                {
                                    "Branches": {
                                        "Excludes": [
                                            "beta-*"
                                        ],
                                        "Includes": [
                                            "release-*"
                                        ]
                                    },
                                    "FilePaths": {
                                        "Includes": [
                                            "projectA/**",
                                            "common/**/*.js"
                                        ],
                                        "Excludes": [
                                            "**/README.md",
                                            "**/LICENSE",
                                            "**/CONTRIBUTING.md"
                                        ]
                                    }
                                }
                            ],
                            "PullRequest": [
                                {
                                    "Branches": {
                                        "Excludes": [
                                            "stable-v1-*"
                                        ],
                                        "Includes": [
                                            "stable-*",
                                            "release-*"
                                        ]
                                    },
                                    "FilePaths": {
                                        "Includes": [
                                            "projectA/**",
                                            "common/**/*.js"
                                        ],
                                        "Excludes": [
                                            "**/README.md",
                                            "**/LICENSE",
                                            "**/CONTRIBUTING.md"
                                        ]
                                    },
                                    "Events": [
                                        "CLOSED"
                                    ]
                                }
                            ],
                            "SourceActionName": {
                                "Ref": "SourceActionName"
                            }
                        }
                    }
                ],
                "PipelineType": "V2",
                "ExecutionMode": "PARALLEL",
                "ArtifactStore": {
                    "Type": "S3",
                    "Location": {
                        "Ref": "ArtifactStoreS3Location"
                    }
                }
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-codepipeline-pipeline--examples--Pipeline_with_two_stages_and_trigger_configuration--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Description: CodePipeline sample
Parameters:
  CodePipelineServiceRole:
    Type: String
  ArtifactStoreS3Location:
    Type: String
  SourceActionName:
    Type: String
Resources:
  CodePipelineForIntegTest:
    Type: 'AWS::CodePipeline::Pipeline'
    Properties:
      RoleArn: !Ref CodePipelineServiceRole
      Stages:
        - Name: Source
          Actions:
            - Name: !Ref SourceActionName
              InputArtifacts: []
              ActionTypeId:
                Category: Source
                Owner: AWS
                Version: '1'
                Provider: CodeStarSourceConnection
              OutputArtifacts:
                - Name: SourceOutput
              Configuration:
                BranchName: main
                ConnectionArn: >-
                  arn:aws:codestar-connections:us-east-1:123456789123:connection/id
                FullRepositoryId: repo-owner/sample-project
              RunOrder: 1
        - Name: Beta
          Actions:
            - Name: BetaAction
              InputArtifacts:
                - Name: SourceOutput
              ActionTypeId:
                Category: Build
                Owner: AWS
                Provider: CodeBuild
                Version: '1'
              Configuration:
                ProjectName: Sample
              RunOrder: 1
      Triggers:
        - ProviderType: CodeStarSourceConnection
          GitConfiguration:
            Push:
              - Tags:
                  Excludes:
                    - beta-*
                  Includes:
                    - release-*
              - Branches:
                  Excludes:
                    - beta-*
                  Includes:
                    - release-*
                FilePaths:
                  Includes:
                    - projectA/**
                    - common/**/*.js
                  Excludes:
                    - '**/README.md'
                    - '**/LICENSE'
                    - '**/CONTRIBUTING.md'
            PullRequest:
              - Branches:
                  Excludes:
                    - stable-v1-*
                  Includes:
                    - stable-*
                    - release-*
                FilePaths:
                  Includes:
                    - projectA/**
                    - common/**/*.js
                  Excludes:
                    - '**/README.md'
                    - '**/LICENSE'
                    - '**/CONTRIBUTING.md'
                Events:
                  - CLOSED
            SourceActionName: !Ref SourceActionName
      PipelineType: V2
      ExecutionMode: PARALLEL
      ArtifactStore:
        Type: S3
        Location: !Ref ArtifactStoreS3Location
```

### Pipeline with source stage and a stage configured for automatic rollback on failure
<a name="aws-resource-codepipeline-pipeline--examples--Pipeline_with_source_stage_and_a_stage_configured_for_automatic_rollback_on_failure"></a>

The following example creates a pipeline with a source stage and a release stage.

#### JSON
<a name="aws-resource-codepipeline-pipeline--examples--Pipeline_with_source_stage_and_a_stage_configured_for_automatic_rollback_on_failure--json"></a>

```
{
    "AppPipeline": {
        "Type": "AWS::CodePipeline::Pipeline",
        "Properties": {
            "RoleArn": {
                "Ref": "CodePipelineServiceRole"
            },
            "Stages": [
                {
                    "Name": "Source",
                    "Actions": [
                        {
                            "Name": "SourceAction",
                            "ActionTypeId": {
                                "Category": "Source",
                                "Owner": "AWS",
                                "Version": 1,
                                "Provider": "S3"
                            },
                            "OutputArtifacts": [
                                {
                                    "Name": "SourceOutput"
                                }
                            ],
                            "Configuration": {
                                "S3Bucket": {
                                    "Ref": "SourceS3Bucket"
                                },
                                "S3ObjectKey": {
                                    "Ref": "SourceS3ObjectKey"
                                }
                            },
                            "RunOrder": 1
                        }
                    ]
                },
                {
                    "Name": "Release",
                    "Actions": [
                        {
                            "Name": "ReleaseAction",
                            "InputArtifacts": [
                                {
                                    "Name": "SourceOutput"
                                }
                            ],
                            "ActionTypeId": {
                                "Category": "Deploy",
                                "Owner": "AWS",
                                "Version": 1,
                                "Provider": "CodeDeploy"
                            },
                            "Configuration": {
                                "ApplicationName": {
                                    "Ref": "ApplicationName"
                                },
                                "DeploymentGroupName": {
                                    "Ref": "DeploymentGroupName"
                                }
                            },
                            "RunOrder": 1
                        }
                    ],
                    "OnFailure": {
                        "Result": "ROLLBACK"
                    }
                }
            ],
            "ArtifactStore": {
                "Type": "S3",
                "Location": {
                    "Ref": "ArtifactStoreS3Location"
                },
                "EncryptionKey": {
                    "Id": "arn:aws:kms:useast-1:ACCOUNT-ID:key/KEY-ID",
                    "Type": "KMS"
                }
            },
            "DisableInboundStageTransitions": [
                {
                    "StageName": "Release",
                    "Reason": "Disabling the transition until integration tests are completed"
                }
            ],
            "Tags": [
                {
                    "Key": "Project",
                    "Value": "ProjectA"
                },
                {
                    "Key": "IsContainerBased",
                    "Value": "true"
                }
            ]
        }
    }
}
```

#### YAML
<a name="aws-resource-codepipeline-pipeline--examples--Pipeline_with_source_stage_and_a_stage_configured_for_automatic_rollback_on_failure--yaml"></a>

```
AppPipeline: 
  Type: AWS::CodePipeline::Pipeline 
  Properties: 
    RoleArn:
      Ref: CodePipelineServiceRole 
    Stages: 
      - 
        Name: Source 
        Actions: 
          - 
            Name: SourceAction
            ActionTypeId: 
              Category: Source 
              Owner: AWS 
              Version: 1 
              Provider: S3 
            OutputArtifacts: 
              - 
                Name: SourceOutput 
            Configuration: 
              S3Bucket: 
                Ref: SourceS3Bucket 
              S3ObjectKey: 
                Ref: SourceS3ObjectKey 
            RunOrder: 1  
      - 
        Name: Release 
        Actions: 
          - 
            Name: ReleaseAction
            InputArtifacts: 
              - 
                Name: SourceOutput 
            ActionTypeId: 
              Category: Deploy 
              Owner: AWS 
              Version: 1
              Provider: CodeDeploy 
            Configuration: 
              ApplicationName: 
                Ref: ApplicationName
              DeploymentGroupName: 
                Ref: DeploymentGroupName 
            RunOrder: 1 
        OnFailure:
            Result: ROLLBACK
    ArtifactStore: 
      Type: S3 
      Location:
        Ref: ArtifactStoreS3Location 
      EncryptionKey:
        Id: arn:aws:kms:useast-1:ACCOUNT-ID:key/KEY-ID
        Type: KMS
    DisableInboundStageTransitions: 
      - 
        StageName: Release 
        Reason: "Disabling the transition until integration tests are completed"
    Tags:
      - Key: Project
        Value: ProjectA
      - Key: IsContainerBased
        Value: 'true'
```

# AWS::CodePipeline::Pipeline ActionDeclaration
<a name="aws-properties-codepipeline-pipeline-actiondeclaration"></a>

Represents information about an action declaration.

## Syntax
<a name="aws-properties-codepipeline-pipeline-actiondeclaration-syntax"></a>

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

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

```
{
  "[ActionTypeId](#cfn-codepipeline-pipeline-actiondeclaration-actiontypeid)" : ActionTypeId,
  "[Commands](#cfn-codepipeline-pipeline-actiondeclaration-commands)" : [ String, ... ],
  "[Configuration](#cfn-codepipeline-pipeline-actiondeclaration-configuration)" : Json,
  "[EnvironmentVariables](#cfn-codepipeline-pipeline-actiondeclaration-environmentvariables)" : [ EnvironmentVariable, ... ],
  "[InputArtifacts](#cfn-codepipeline-pipeline-actiondeclaration-inputartifacts)" : [ InputArtifact, ... ],
  "[Name](#cfn-codepipeline-pipeline-actiondeclaration-name)" : String,
  "[Namespace](#cfn-codepipeline-pipeline-actiondeclaration-namespace)" : String,
  "[OutputArtifacts](#cfn-codepipeline-pipeline-actiondeclaration-outputartifacts)" : [ OutputArtifact, ... ],
  "[OutputVariables](#cfn-codepipeline-pipeline-actiondeclaration-outputvariables)" : [ String, ... ],
  "[Region](#cfn-codepipeline-pipeline-actiondeclaration-region)" : String,
  "[RoleArn](#cfn-codepipeline-pipeline-actiondeclaration-rolearn)" : String,
  "[RunOrder](#cfn-codepipeline-pipeline-actiondeclaration-runorder)" : Integer,
  "[TimeoutInMinutes](#cfn-codepipeline-pipeline-actiondeclaration-timeoutinminutes)" : Integer
}
```

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

```
  [ActionTypeId](#cfn-codepipeline-pipeline-actiondeclaration-actiontypeid): 
    ActionTypeId
  [Commands](#cfn-codepipeline-pipeline-actiondeclaration-commands): 
    - String
  [Configuration](#cfn-codepipeline-pipeline-actiondeclaration-configuration): Json
  [EnvironmentVariables](#cfn-codepipeline-pipeline-actiondeclaration-environmentvariables): 
    - EnvironmentVariable
  [InputArtifacts](#cfn-codepipeline-pipeline-actiondeclaration-inputartifacts): 
    - InputArtifact
  [Name](#cfn-codepipeline-pipeline-actiondeclaration-name): String
  [Namespace](#cfn-codepipeline-pipeline-actiondeclaration-namespace): String
  [OutputArtifacts](#cfn-codepipeline-pipeline-actiondeclaration-outputartifacts): 
    - OutputArtifact
  [OutputVariables](#cfn-codepipeline-pipeline-actiondeclaration-outputvariables): 
    - String
  [Region](#cfn-codepipeline-pipeline-actiondeclaration-region): String
  [RoleArn](#cfn-codepipeline-pipeline-actiondeclaration-rolearn): String
  [RunOrder](#cfn-codepipeline-pipeline-actiondeclaration-runorder): Integer
  [TimeoutInMinutes](#cfn-codepipeline-pipeline-actiondeclaration-timeoutinminutes): Integer
```

## Properties
<a name="aws-properties-codepipeline-pipeline-actiondeclaration-properties"></a>

`ActionTypeId`  <a name="cfn-codepipeline-pipeline-actiondeclaration-actiontypeid"></a>
Specifies the action type and the provider of the action.  
*Required*: Yes  
*Type*: [ActionTypeId](aws-properties-codepipeline-pipeline-actiontypeid.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Commands`  <a name="cfn-codepipeline-pipeline-actiondeclaration-commands"></a>
The shell commands to run with your compute action in CodePipeline. All commands are supported except multi-line formats. While CodeBuild logs and permissions are used, you do not need to create any resources in CodeBuild.  
Using compute time for this action will incur separate charges in AWS CodeBuild.
*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)

`Configuration`  <a name="cfn-codepipeline-pipeline-actiondeclaration-configuration"></a>
The action's configuration. These are key-value pairs that specify input values for an action. For more information, see [Action Structure Requirements in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements). For the list of configuration properties for the AWS CloudFormation action type in CodePipeline, see [Configuration Properties Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html) in the *AWS CloudFormation User Guide*. For template snippets with examples, see [Using Parameter Override Functions with CodePipeline Pipelines](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html) in the *AWS CloudFormation User Guide*.  
The values can be represented in either JSON or YAML format. For example, the JSON configuration item format is as follows:   
 *JSON:*   
 `"Configuration" : { Key : Value },`   
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EnvironmentVariables`  <a name="cfn-codepipeline-pipeline-actiondeclaration-environmentvariables"></a>
The environment variables for the action.  
*Required*: No  
*Type*: Array of [EnvironmentVariable](aws-properties-codepipeline-pipeline-environmentvariable.md)  
*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)

`InputArtifacts`  <a name="cfn-codepipeline-pipeline-actiondeclaration-inputartifacts"></a>
The name or ID of the artifact consumed by the action, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of input artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide*.  
For a CodeBuild action with multiple input artifacts, one of your input sources must be designated the PrimarySource. For more information, see the [CodeBuild action reference page](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html) in the *AWS CodePipeline User Guide*.
*Required*: No  
*Type*: Array of [InputArtifact](aws-properties-codepipeline-pipeline-inputartifact.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-codepipeline-pipeline-actiondeclaration-name"></a>
The action declaration's name.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[A-Za-z0-9.@\-_]+`  
*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)

`Namespace`  <a name="cfn-codepipeline-pipeline-actiondeclaration-namespace"></a>
The variable namespace associated with the action. All variables produced as output by this action fall under this namespace.  
*Required*: No  
*Type*: String  
*Pattern*: `[A-Za-z0-9@\-_]+`  
*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)

`OutputArtifacts`  <a name="cfn-codepipeline-pipeline-actiondeclaration-outputartifacts"></a>
The name or ID of the result of the action declaration, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of output artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide*.  
*Required*: No  
*Type*: Array of [OutputArtifact](aws-properties-codepipeline-pipeline-outputartifact.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OutputVariables`  <a name="cfn-codepipeline-pipeline-actiondeclaration-outputvariables"></a>
The list of variables that are to be exported from the compute action. This is specifically CodeBuild environment variables as used for that action.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `15`  
*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-codepipeline-pipeline-actiondeclaration-region"></a>
The action declaration's AWS Region, such as us-east-1.  
*Required*: No  
*Type*: String  
*Minimum*: `4`  
*Maximum*: `30`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RoleArn`  <a name="cfn-codepipeline-pipeline-actiondeclaration-rolearn"></a>
The ARN of the IAM service role that performs the declared action. This is assumed through the roleArn for the pipeline.  
*Required*: No  
*Type*: String  
*Pattern*: `arn:aws(-[\w]+)*:iam::[0-9]{12}:role/.*`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RunOrder`  <a name="cfn-codepipeline-pipeline-actiondeclaration-runorder"></a>
The order in which actions are run.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `999`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TimeoutInMinutes`  <a name="cfn-codepipeline-pipeline-actiondeclaration-timeoutinminutes"></a>
A timeout duration in minutes that can be applied against the ActionType’s default timeout value specified in [Quotas for AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/limits.html). This attribute is available only to the manual approval ActionType.  
*Required*: No  
*Type*: Integer  
*Minimum*: `5`  
*Maximum*: `86400`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline ActionTypeId
<a name="aws-properties-codepipeline-pipeline-actiontypeid"></a>

Represents information about an action type.

## Syntax
<a name="aws-properties-codepipeline-pipeline-actiontypeid-syntax"></a>

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

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

```
{
  "[Category](#cfn-codepipeline-pipeline-actiontypeid-category)" : String,
  "[Owner](#cfn-codepipeline-pipeline-actiontypeid-owner)" : String,
  "[Provider](#cfn-codepipeline-pipeline-actiontypeid-provider)" : String,
  "[Version](#cfn-codepipeline-pipeline-actiontypeid-version)" : String
}
```

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

```
  [Category](#cfn-codepipeline-pipeline-actiontypeid-category): String
  [Owner](#cfn-codepipeline-pipeline-actiontypeid-owner): String
  [Provider](#cfn-codepipeline-pipeline-actiontypeid-provider): String
  [Version](#cfn-codepipeline-pipeline-actiontypeid-version): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-actiontypeid-properties"></a>

`Category`  <a name="cfn-codepipeline-pipeline-actiontypeid-category"></a>
A category defines what kind of action can be taken in the stage, and constrains the provider type for the action. Valid categories are limited to one of the values below.  
+  `Source` 
+  `Build` 
+  `Test` 
+  `Deploy` 
+  `Invoke` 
+  `Approval` 
+  `Compute` 
*Required*: Yes  
*Type*: String  
*Allowed values*: `Source | Build | Test | Deploy | Invoke | Approval | Compute`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Owner`  <a name="cfn-codepipeline-pipeline-actiontypeid-owner"></a>
The creator of the action being called. There are three valid values for the `Owner` field in the action category section within your pipeline structure: `AWS`, `ThirdParty`, and `Custom`. For more information, see [Valid Action Types and Providers in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers).  
*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)

`Provider`  <a name="cfn-codepipeline-pipeline-actiontypeid-provider"></a>
The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of CodeDeploy, which would be specified as `CodeDeploy`. For more information, see [Valid Action Types and Providers in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers).  
*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-codepipeline-pipeline-actiontypeid-version"></a>
A string that describes the action version.  
*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::CodePipeline::Pipeline ArtifactStore
<a name="aws-properties-codepipeline-pipeline-artifactstore"></a>

The S3 bucket where artifacts for the pipeline are stored.

**Note**  
You must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use `artifactStores`.

## Syntax
<a name="aws-properties-codepipeline-pipeline-artifactstore-syntax"></a>

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

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

```
{
  "[EncryptionKey](#cfn-codepipeline-pipeline-artifactstore-encryptionkey)" : EncryptionKey,
  "[Location](#cfn-codepipeline-pipeline-artifactstore-location)" : String,
  "[Type](#cfn-codepipeline-pipeline-artifactstore-type)" : String
}
```

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

```
  [EncryptionKey](#cfn-codepipeline-pipeline-artifactstore-encryptionkey): 
    EncryptionKey
  [Location](#cfn-codepipeline-pipeline-artifactstore-location): String
  [Type](#cfn-codepipeline-pipeline-artifactstore-type): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-artifactstore-properties"></a>

`EncryptionKey`  <a name="cfn-codepipeline-pipeline-artifactstore-encryptionkey"></a>
The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service (AWS KMS) key. If this is undefined, the default key for Amazon S3 is used. To see an example artifact store encryption key field, see the example structure here: [AWS::CodePipeline::Pipeline](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html).  
*Required*: No  
*Type*: [EncryptionKey](aws-properties-codepipeline-pipeline-encryptionkey.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Location`  <a name="cfn-codepipeline-pipeline-artifactstore-location"></a>
The S3 bucket used for storing the artifacts for a pipeline. You can specify the name of an S3 bucket but not a folder in the bucket. A folder to contain the pipeline artifacts is created for you based on the name of the pipeline. You can use any S3 bucket in the same AWS Region as the pipeline to store your pipeline artifacts.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[a-zA-Z0-9\-\.]+`  
*Minimum*: `3`  
*Maximum*: `63`  
*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-codepipeline-pipeline-artifactstore-type"></a>
The type of the artifact store, such as S3.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `S3`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline ArtifactStoreMap
<a name="aws-properties-codepipeline-pipeline-artifactstoremap"></a>

A mapping of `artifactStore` objects and their corresponding AWS Regions. There must be an artifact store for the pipeline Region and for each cross-region action in the pipeline.

**Note**  
You must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use `artifactStores`.

## Syntax
<a name="aws-properties-codepipeline-pipeline-artifactstoremap-syntax"></a>

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

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

```
{
  "[ArtifactStore](#cfn-codepipeline-pipeline-artifactstoremap-artifactstore)" : ArtifactStore,
  "[Region](#cfn-codepipeline-pipeline-artifactstoremap-region)" : String
}
```

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

```
  [ArtifactStore](#cfn-codepipeline-pipeline-artifactstoremap-artifactstore): 
    ArtifactStore
  [Region](#cfn-codepipeline-pipeline-artifactstoremap-region): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-artifactstoremap-properties"></a>

`ArtifactStore`  <a name="cfn-codepipeline-pipeline-artifactstoremap-artifactstore"></a>
Represents information about the S3 bucket where artifacts are stored for the pipeline.  
You must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use `artifactStores`.
*Required*: Conditional  
*Type*: [ArtifactStore](aws-properties-codepipeline-pipeline-artifactstore.md)  
*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-codepipeline-pipeline-artifactstoremap-region"></a>
The action declaration's AWS Region, such as us-east-1.  
*Required*: Yes  
*Type*: String  
*Minimum*: `4`  
*Maximum*: `30`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline BeforeEntryConditions
<a name="aws-properties-codepipeline-pipeline-beforeentryconditions"></a>

The conditions for making checks for entry to a stage. For more information about conditions, see [Stage conditions](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html) and [How do stage conditions work?](https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts-how-it-works-conditions.html). 

## Syntax
<a name="aws-properties-codepipeline-pipeline-beforeentryconditions-syntax"></a>

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

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

```
{
  "[Conditions](#cfn-codepipeline-pipeline-beforeentryconditions-conditions)" : [ Condition, ... ]
}
```

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

```
  [Conditions](#cfn-codepipeline-pipeline-beforeentryconditions-conditions): 
    - Condition
```

## Properties
<a name="aws-properties-codepipeline-pipeline-beforeentryconditions-properties"></a>

`Conditions`  <a name="cfn-codepipeline-pipeline-beforeentryconditions-conditions"></a>
The conditions that are configured as entry conditions.  
*Required*: No  
*Type*: Array of [Condition](aws-properties-codepipeline-pipeline-condition.md)  
*Minimum*: `1`  
*Maximum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline BlockerDeclaration
<a name="aws-properties-codepipeline-pipeline-blockerdeclaration"></a>

Reserved for future use.

## Syntax
<a name="aws-properties-codepipeline-pipeline-blockerdeclaration-syntax"></a>

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

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

```
{
  "[Name](#cfn-codepipeline-pipeline-blockerdeclaration-name)" : String,
  "[Type](#cfn-codepipeline-pipeline-blockerdeclaration-type)" : String
}
```

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

```
  [Name](#cfn-codepipeline-pipeline-blockerdeclaration-name): String
  [Type](#cfn-codepipeline-pipeline-blockerdeclaration-type): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-blockerdeclaration-properties"></a>

`Name`  <a name="cfn-codepipeline-pipeline-blockerdeclaration-name"></a>
Reserved for future use.  
*Required*: Yes  
*Type*: String  
*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)

`Type`  <a name="cfn-codepipeline-pipeline-blockerdeclaration-type"></a>
Reserved for future use.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `Schedule`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline Condition
<a name="aws-properties-codepipeline-pipeline-condition"></a>

The condition for the stage. A condition is made up of the rules and the result for the condition. For more information about conditions, see [Stage conditions](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html) and [How do stage conditions work?](https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts-how-it-works-conditions.html).. For more information about rules, see the [AWS CodePipeline rule reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/rule-reference.html).

## Syntax
<a name="aws-properties-codepipeline-pipeline-condition-syntax"></a>

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

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

```
{
  "[Result](#cfn-codepipeline-pipeline-condition-result)" : String,
  "[Rules](#cfn-codepipeline-pipeline-condition-rules)" : [ RuleDeclaration, ... ]
}
```

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

```
  [Result](#cfn-codepipeline-pipeline-condition-result): String
  [Rules](#cfn-codepipeline-pipeline-condition-rules): 
    - RuleDeclaration
```

## Properties
<a name="aws-properties-codepipeline-pipeline-condition-properties"></a>

`Result`  <a name="cfn-codepipeline-pipeline-condition-result"></a>
The action to be done when the condition is met. For example, rolling back an execution for a failure condition.  
*Required*: No  
*Type*: String  
*Allowed values*: `ROLLBACK | FAIL | RETRY | SKIP`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Rules`  <a name="cfn-codepipeline-pipeline-condition-rules"></a>
The rules that make up the condition.  
*Required*: No  
*Type*: Array of [RuleDeclaration](aws-properties-codepipeline-pipeline-ruledeclaration.md)  
*Minimum*: `1`  
*Maximum*: `5`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline EncryptionKey
<a name="aws-properties-codepipeline-pipeline-encryptionkey"></a>

Represents information about the key used to encrypt data in the artifact store, such as an AWS Key Management Service (AWS KMS) key.

`EncryptionKey` is a property of the [ArtifactStore](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html) property type.

## Syntax
<a name="aws-properties-codepipeline-pipeline-encryptionkey-syntax"></a>

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

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

```
{
  "[Id](#cfn-codepipeline-pipeline-encryptionkey-id)" : String,
  "[Type](#cfn-codepipeline-pipeline-encryptionkey-type)" : String
}
```

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

```
  [Id](#cfn-codepipeline-pipeline-encryptionkey-id): String
  [Type](#cfn-codepipeline-pipeline-encryptionkey-type): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-encryptionkey-properties"></a>

`Id`  <a name="cfn-codepipeline-pipeline-encryptionkey-id"></a>
The ID used to identify the key. For an AWS KMS key, you can use the key ID, the key ARN, or the alias ARN.  
Aliases are recognized only in the account that created the AWS KMS key. For cross-account actions, you can only use the key ID or key ARN to identify the key. Cross-account actions involve using the role from the other account (AccountB), so specifying the key ID will use the key from the other account (AccountB).
*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)

`Type`  <a name="cfn-codepipeline-pipeline-encryptionkey-type"></a>
The type of encryption key, such as an AWS KMS key. When creating or updating a pipeline, the value must be set to 'KMS'.  
*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::CodePipeline::Pipeline EnvironmentVariable
<a name="aws-properties-codepipeline-pipeline-environmentvariable"></a>

The environment variables for the action.

## Syntax
<a name="aws-properties-codepipeline-pipeline-environmentvariable-syntax"></a>

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

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

```
{
  "[Name](#cfn-codepipeline-pipeline-environmentvariable-name)" : String,
  "[Type](#cfn-codepipeline-pipeline-environmentvariable-type)" : String,
  "[Value](#cfn-codepipeline-pipeline-environmentvariable-value)" : String
}
```

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

```
  [Name](#cfn-codepipeline-pipeline-environmentvariable-name): String
  [Type](#cfn-codepipeline-pipeline-environmentvariable-type): String
  [Value](#cfn-codepipeline-pipeline-environmentvariable-value): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-environmentvariable-properties"></a>

`Name`  <a name="cfn-codepipeline-pipeline-environmentvariable-name"></a>
The environment variable name in the key-value pair.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[A-Za-z0-9_]+`  
*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)

`Type`  <a name="cfn-codepipeline-pipeline-environmentvariable-type"></a>
Specifies the type of use for the environment variable value. The value can be either `PLAINTEXT` or `SECRETS_MANAGER`. If the value is `SECRETS_MANAGER`, provide the Secrets reference in the EnvironmentVariable value.  
*Required*: No  
*Type*: String  
*Allowed values*: `PLAINTEXT | SECRETS_MANAGER`  
*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-codepipeline-pipeline-environmentvariable-value"></a>
The environment variable value in the key-value pair.  
*Required*: Yes  
*Type*: String  
*Pattern*: `.*`  
*Minimum*: `1`  
*Maximum*: `2000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline FailureConditions
<a name="aws-properties-codepipeline-pipeline-failureconditions"></a>

The configuration that specifies the result, such as rollback, to occur upon stage failure. For more information about conditions, see [Stage conditions](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html) and [How do stage conditions work?](https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts-how-it-works-conditions.html). 

## Syntax
<a name="aws-properties-codepipeline-pipeline-failureconditions-syntax"></a>

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

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

```
{
  "[Conditions](#cfn-codepipeline-pipeline-failureconditions-conditions)" : [ Condition, ... ],
  "[Result](#cfn-codepipeline-pipeline-failureconditions-result)" : String,
  "[RetryConfiguration](#cfn-codepipeline-pipeline-failureconditions-retryconfiguration)" : RetryConfiguration
}
```

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

```
  [Conditions](#cfn-codepipeline-pipeline-failureconditions-conditions): 
    - Condition
  [Result](#cfn-codepipeline-pipeline-failureconditions-result): String
  [RetryConfiguration](#cfn-codepipeline-pipeline-failureconditions-retryconfiguration): 
    RetryConfiguration
```

## Properties
<a name="aws-properties-codepipeline-pipeline-failureconditions-properties"></a>

`Conditions`  <a name="cfn-codepipeline-pipeline-failureconditions-conditions"></a>
The conditions that are configured as failure conditions. For more information about conditions, see [Stage conditions](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html) and [How do stage conditions work?](https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts-how-it-works-conditions.html).  
*Required*: No  
*Type*: Array of [Condition](aws-properties-codepipeline-pipeline-condition.md)  
*Minimum*: `1`  
*Maximum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Result`  <a name="cfn-codepipeline-pipeline-failureconditions-result"></a>
The specified result for when the failure conditions are met, such as rolling back the stage.  
*Required*: No  
*Type*: String  
*Allowed values*: `ROLLBACK | RETRY`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RetryConfiguration`  <a name="cfn-codepipeline-pipeline-failureconditions-retryconfiguration"></a>
The retry configuration specifies automatic retry for a failed stage, along with the configured retry mode.  
*Required*: No  
*Type*: [RetryConfiguration](aws-properties-codepipeline-pipeline-retryconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline GitBranchFilterCriteria
<a name="aws-properties-codepipeline-pipeline-gitbranchfiltercriteria"></a>

The Git repository branches specified as filter criteria to start the pipeline.

## Syntax
<a name="aws-properties-codepipeline-pipeline-gitbranchfiltercriteria-syntax"></a>

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

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

```
{
  "[Excludes](#cfn-codepipeline-pipeline-gitbranchfiltercriteria-excludes)" : [ String, ... ],
  "[Includes](#cfn-codepipeline-pipeline-gitbranchfiltercriteria-includes)" : [ String, ... ]
}
```

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

```
  [Excludes](#cfn-codepipeline-pipeline-gitbranchfiltercriteria-excludes): 
    - String
  [Includes](#cfn-codepipeline-pipeline-gitbranchfiltercriteria-includes): 
    - String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-gitbranchfiltercriteria-properties"></a>

`Excludes`  <a name="cfn-codepipeline-pipeline-gitbranchfiltercriteria-excludes"></a>
The list of patterns of Git branches that, when a commit is pushed, are to be excluded from starting the pipeline.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `8`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Includes`  <a name="cfn-codepipeline-pipeline-gitbranchfiltercriteria-includes"></a>
The list of patterns of Git branches that, when a commit is pushed, are to be included as criteria that starts the pipeline.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `8`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline GitConfiguration
<a name="aws-properties-codepipeline-pipeline-gitconfiguration"></a>

A type of trigger configuration for Git-based source actions.

**Note**  
You can specify the Git configuration trigger type for all third-party Git-based source actions that are supported by the `CodeStarSourceConnection` action type.

## Syntax
<a name="aws-properties-codepipeline-pipeline-gitconfiguration-syntax"></a>

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

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

```
{
  "[PullRequest](#cfn-codepipeline-pipeline-gitconfiguration-pullrequest)" : [ GitPullRequestFilter, ... ],
  "[Push](#cfn-codepipeline-pipeline-gitconfiguration-push)" : [ GitPushFilter, ... ],
  "[SourceActionName](#cfn-codepipeline-pipeline-gitconfiguration-sourceactionname)" : String
}
```

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

```
  [PullRequest](#cfn-codepipeline-pipeline-gitconfiguration-pullrequest): 
    - GitPullRequestFilter
  [Push](#cfn-codepipeline-pipeline-gitconfiguration-push): 
    - GitPushFilter
  [SourceActionName](#cfn-codepipeline-pipeline-gitconfiguration-sourceactionname): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-gitconfiguration-properties"></a>

`PullRequest`  <a name="cfn-codepipeline-pipeline-gitconfiguration-pullrequest"></a>
The field where the repository event that will start the pipeline is specified as pull requests.  
*Required*: No  
*Type*: Array of [GitPullRequestFilter](aws-properties-codepipeline-pipeline-gitpullrequestfilter.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)

`Push`  <a name="cfn-codepipeline-pipeline-gitconfiguration-push"></a>
The field where the repository event that will start the pipeline, such as pushing Git tags, is specified with details.  
*Required*: No  
*Type*: Array of [GitPushFilter](aws-properties-codepipeline-pipeline-gitpushfilter.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)

`SourceActionName`  <a name="cfn-codepipeline-pipeline-gitconfiguration-sourceactionname"></a>
The name of the pipeline source action where the trigger configuration, such as Git tags, is specified. The trigger configuration will start the pipeline upon the specified change only.  
You can only specify one trigger configuration per source action.
*Required*: Yes  
*Type*: String  
*Pattern*: `[A-Za-z0-9.@\-_]+`  
*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)

# AWS::CodePipeline::Pipeline GitFilePathFilterCriteria
<a name="aws-properties-codepipeline-pipeline-gitfilepathfiltercriteria"></a>

The Git repository file paths specified as filter criteria to start the pipeline.

## Syntax
<a name="aws-properties-codepipeline-pipeline-gitfilepathfiltercriteria-syntax"></a>

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

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

```
{
  "[Excludes](#cfn-codepipeline-pipeline-gitfilepathfiltercriteria-excludes)" : [ String, ... ],
  "[Includes](#cfn-codepipeline-pipeline-gitfilepathfiltercriteria-includes)" : [ String, ... ]
}
```

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

```
  [Excludes](#cfn-codepipeline-pipeline-gitfilepathfiltercriteria-excludes): 
    - String
  [Includes](#cfn-codepipeline-pipeline-gitfilepathfiltercriteria-includes): 
    - String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-gitfilepathfiltercriteria-properties"></a>

`Excludes`  <a name="cfn-codepipeline-pipeline-gitfilepathfiltercriteria-excludes"></a>
The list of patterns of Git repository file paths that, when a commit is pushed, are to be excluded from starting the pipeline.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `8`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Includes`  <a name="cfn-codepipeline-pipeline-gitfilepathfiltercriteria-includes"></a>
The list of patterns of Git repository file paths that, when a commit is pushed, are to be included as criteria that starts the pipeline.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `8`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline GitPullRequestFilter
<a name="aws-properties-codepipeline-pipeline-gitpullrequestfilter"></a>

The event criteria for the pull request trigger configuration, such as the lists of branches or file paths to include and exclude.

The following are valid values for the events for this filter:
+ CLOSED
+ OPEN
+ UPDATED

## Syntax
<a name="aws-properties-codepipeline-pipeline-gitpullrequestfilter-syntax"></a>

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

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

```
{
  "[Branches](#cfn-codepipeline-pipeline-gitpullrequestfilter-branches)" : GitBranchFilterCriteria,
  "[Events](#cfn-codepipeline-pipeline-gitpullrequestfilter-events)" : [ String, ... ],
  "[FilePaths](#cfn-codepipeline-pipeline-gitpullrequestfilter-filepaths)" : GitFilePathFilterCriteria
}
```

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

```
  [Branches](#cfn-codepipeline-pipeline-gitpullrequestfilter-branches): 
    GitBranchFilterCriteria
  [Events](#cfn-codepipeline-pipeline-gitpullrequestfilter-events): 
    - String
  [FilePaths](#cfn-codepipeline-pipeline-gitpullrequestfilter-filepaths): 
    GitFilePathFilterCriteria
```

## Properties
<a name="aws-properties-codepipeline-pipeline-gitpullrequestfilter-properties"></a>

`Branches`  <a name="cfn-codepipeline-pipeline-gitpullrequestfilter-branches"></a>
The field that specifies to filter on branches for the pull request trigger configuration.  
*Required*: No  
*Type*: [GitBranchFilterCriteria](aws-properties-codepipeline-pipeline-gitbranchfiltercriteria.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Events`  <a name="cfn-codepipeline-pipeline-gitpullrequestfilter-events"></a>
The field that specifies which pull request events to filter on (OPEN, UPDATED, CLOSED) for the trigger configuration.  
*Required*: No  
*Type*: Array of String  
*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)

`FilePaths`  <a name="cfn-codepipeline-pipeline-gitpullrequestfilter-filepaths"></a>
The field that specifies to filter on file paths for the pull request trigger configuration.  
*Required*: No  
*Type*: [GitFilePathFilterCriteria](aws-properties-codepipeline-pipeline-gitfilepathfiltercriteria.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline GitPushFilter
<a name="aws-properties-codepipeline-pipeline-gitpushfilter"></a>

The event criteria that specify when a specified repository event will start the pipeline for the specified trigger configuration, such as the lists of Git tags to include and exclude.

## Syntax
<a name="aws-properties-codepipeline-pipeline-gitpushfilter-syntax"></a>

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

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

```
{
  "[Branches](#cfn-codepipeline-pipeline-gitpushfilter-branches)" : GitBranchFilterCriteria,
  "[FilePaths](#cfn-codepipeline-pipeline-gitpushfilter-filepaths)" : GitFilePathFilterCriteria,
  "[Tags](#cfn-codepipeline-pipeline-gitpushfilter-tags)" : GitTagFilterCriteria
}
```

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

```
  [Branches](#cfn-codepipeline-pipeline-gitpushfilter-branches): 
    GitBranchFilterCriteria
  [FilePaths](#cfn-codepipeline-pipeline-gitpushfilter-filepaths): 
    GitFilePathFilterCriteria
  [Tags](#cfn-codepipeline-pipeline-gitpushfilter-tags): 
    GitTagFilterCriteria
```

## Properties
<a name="aws-properties-codepipeline-pipeline-gitpushfilter-properties"></a>

`Branches`  <a name="cfn-codepipeline-pipeline-gitpushfilter-branches"></a>
The field that specifies to filter on branches for the push trigger configuration.  
*Required*: No  
*Type*: [GitBranchFilterCriteria](aws-properties-codepipeline-pipeline-gitbranchfiltercriteria.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`FilePaths`  <a name="cfn-codepipeline-pipeline-gitpushfilter-filepaths"></a>
The field that specifies to filter on file paths for the push trigger configuration.  
*Required*: No  
*Type*: [GitFilePathFilterCriteria](aws-properties-codepipeline-pipeline-gitfilepathfiltercriteria.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-codepipeline-pipeline-gitpushfilter-tags"></a>
The field that contains the details for the Git tags trigger configuration.  
*Required*: No  
*Type*: [GitTagFilterCriteria](aws-properties-codepipeline-pipeline-gittagfiltercriteria.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline GitTagFilterCriteria
<a name="aws-properties-codepipeline-pipeline-gittagfiltercriteria"></a>

The Git tags specified as filter criteria for whether a Git tag repository event will start the pipeline.

## Syntax
<a name="aws-properties-codepipeline-pipeline-gittagfiltercriteria-syntax"></a>

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

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

```
{
  "[Excludes](#cfn-codepipeline-pipeline-gittagfiltercriteria-excludes)" : [ String, ... ],
  "[Includes](#cfn-codepipeline-pipeline-gittagfiltercriteria-includes)" : [ String, ... ]
}
```

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

```
  [Excludes](#cfn-codepipeline-pipeline-gittagfiltercriteria-excludes): 
    - String
  [Includes](#cfn-codepipeline-pipeline-gittagfiltercriteria-includes): 
    - String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-gittagfiltercriteria-properties"></a>

`Excludes`  <a name="cfn-codepipeline-pipeline-gittagfiltercriteria-excludes"></a>
The list of patterns of Git tags that, when pushed, are to be excluded from starting the pipeline.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `8`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Includes`  <a name="cfn-codepipeline-pipeline-gittagfiltercriteria-includes"></a>
The list of patterns of Git tags that, when pushed, are to be included as criteria that starts the pipeline.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `8`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline InputArtifact
<a name="aws-properties-codepipeline-pipeline-inputartifact"></a>

Represents information about an artifact to be worked on, such as a test or build artifact.

## Syntax
<a name="aws-properties-codepipeline-pipeline-inputartifact-syntax"></a>

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

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

```
{
  "[Name](#cfn-codepipeline-pipeline-inputartifact-name)" : String
}
```

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

```
  [Name](#cfn-codepipeline-pipeline-inputartifact-name): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-inputartifact-properties"></a>

`Name`  <a name="cfn-codepipeline-pipeline-inputartifact-name"></a>
The name of the artifact to be worked on (for example, "My App").  
Artifacts are the files that are worked on by actions in the pipeline. See the action configuration for each action for details about artifact parameters. For example, the S3 source action input artifact is a file name (or file path), and the files are generally provided as a ZIP file. Example artifact name: SampleApp\$1Windows.zip  
The input artifact of an action must exactly match the output artifact declared in a preceding action, but the input artifact does not have to be the next action in strict sequence from the action that provided the output artifact. Actions in parallel can declare different output artifacts, which are in turn consumed by different following actions.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[a-zA-Z0-9_\-]+`  
*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)

# AWS::CodePipeline::Pipeline OutputArtifact
<a name="aws-properties-codepipeline-pipeline-outputartifact"></a>

Represents information about the output of an action.

## Syntax
<a name="aws-properties-codepipeline-pipeline-outputartifact-syntax"></a>

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

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

```
{
  "[Files](#cfn-codepipeline-pipeline-outputartifact-files)" : [ String, ... ],
  "[Name](#cfn-codepipeline-pipeline-outputartifact-name)" : String
}
```

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

```
  [Files](#cfn-codepipeline-pipeline-outputartifact-files): 
    - String
  [Name](#cfn-codepipeline-pipeline-outputartifact-name): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-outputartifact-properties"></a>

`Files`  <a name="cfn-codepipeline-pipeline-outputartifact-files"></a>
The files that you want to associate with the output artifact that will be exported from the compute action.  
*Required*: No  
*Type*: Array of String  
*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)

`Name`  <a name="cfn-codepipeline-pipeline-outputartifact-name"></a>
The name of the output of an artifact, such as "My App".  
The output artifact name must exactly match the input artifact declared for a downstream action. However, the downstream action's input artifact does not have to be the next action in strict sequence from the action that provided the output artifact. Actions in parallel can declare different output artifacts, which are in turn consumed by different following actions.  
Output artifact names must be unique within a pipeline.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[a-zA-Z0-9_\-]+`  
*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)

# AWS::CodePipeline::Pipeline PipelineTriggerDeclaration
<a name="aws-properties-codepipeline-pipeline-pipelinetriggerdeclaration"></a>

Represents information about the specified trigger configuration, such as the filter criteria and the source stage for the action that contains the trigger.

**Note**  
This is only supported for the `CodeStarSourceConnection` action type.

**Note**  
When a trigger configuration is specified, default change detection for repository and branch commits is disabled.

## Syntax
<a name="aws-properties-codepipeline-pipeline-pipelinetriggerdeclaration-syntax"></a>

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

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

```
{
  "[GitConfiguration](#cfn-codepipeline-pipeline-pipelinetriggerdeclaration-gitconfiguration)" : GitConfiguration,
  "[ProviderType](#cfn-codepipeline-pipeline-pipelinetriggerdeclaration-providertype)" : String
}
```

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

```
  [GitConfiguration](#cfn-codepipeline-pipeline-pipelinetriggerdeclaration-gitconfiguration): 
    GitConfiguration
  [ProviderType](#cfn-codepipeline-pipeline-pipelinetriggerdeclaration-providertype): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-pipelinetriggerdeclaration-properties"></a>

`GitConfiguration`  <a name="cfn-codepipeline-pipeline-pipelinetriggerdeclaration-gitconfiguration"></a>
Provides the filter criteria and the source stage for the repository event that starts the pipeline, such as Git tags.  
*Required*: No  
*Type*: [GitConfiguration](aws-properties-codepipeline-pipeline-gitconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ProviderType`  <a name="cfn-codepipeline-pipeline-pipelinetriggerdeclaration-providertype"></a>
The source provider for the event, such as connections configured for a repository with Git tags, for the specified trigger configuration.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `CodeStarSourceConnection`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline RetryConfiguration
<a name="aws-properties-codepipeline-pipeline-retryconfiguration"></a>

The retry configuration specifies automatic retry for a failed stage, along with the configured retry mode.

## Syntax
<a name="aws-properties-codepipeline-pipeline-retryconfiguration-syntax"></a>

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

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

```
{
  "[RetryMode](#cfn-codepipeline-pipeline-retryconfiguration-retrymode)" : String
}
```

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

```
  [RetryMode](#cfn-codepipeline-pipeline-retryconfiguration-retrymode): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-retryconfiguration-properties"></a>

`RetryMode`  <a name="cfn-codepipeline-pipeline-retryconfiguration-retrymode"></a>
The method that you want to configure for automatic stage retry on stage failure. You can specify to retry only failed action in the stage or all actions in the stage.  
*Required*: No  
*Type*: String  
*Allowed values*: `ALL_ACTIONS | FAILED_ACTIONS`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline RuleDeclaration
<a name="aws-properties-codepipeline-pipeline-ruledeclaration"></a>

Represents information about the rule to be created for an associated condition. An example would be creating a new rule for an entry condition, such as a rule that checks for a test result before allowing the run to enter the deployment stage. For more information about conditions, see [Stage conditions](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html) and [How do stage conditions work?](https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts-how-it-works-conditions.html). For more information about rules, see the [AWS CodePipeline rule reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/rule-reference.html).

## Syntax
<a name="aws-properties-codepipeline-pipeline-ruledeclaration-syntax"></a>

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

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

```
{
  "[Commands](#cfn-codepipeline-pipeline-ruledeclaration-commands)" : [ String, ... ],
  "[Configuration](#cfn-codepipeline-pipeline-ruledeclaration-configuration)" : Json,
  "[InputArtifacts](#cfn-codepipeline-pipeline-ruledeclaration-inputartifacts)" : [ InputArtifact, ... ],
  "[Name](#cfn-codepipeline-pipeline-ruledeclaration-name)" : String,
  "[Region](#cfn-codepipeline-pipeline-ruledeclaration-region)" : String,
  "[RoleArn](#cfn-codepipeline-pipeline-ruledeclaration-rolearn)" : String,
  "[RuleTypeId](#cfn-codepipeline-pipeline-ruledeclaration-ruletypeid)" : RuleTypeId
}
```

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

```
  [Commands](#cfn-codepipeline-pipeline-ruledeclaration-commands): 
    - String
  [Configuration](#cfn-codepipeline-pipeline-ruledeclaration-configuration): Json
  [InputArtifacts](#cfn-codepipeline-pipeline-ruledeclaration-inputartifacts): 
    - InputArtifact
  [Name](#cfn-codepipeline-pipeline-ruledeclaration-name): String
  [Region](#cfn-codepipeline-pipeline-ruledeclaration-region): String
  [RoleArn](#cfn-codepipeline-pipeline-ruledeclaration-rolearn): String
  [RuleTypeId](#cfn-codepipeline-pipeline-ruledeclaration-ruletypeid): 
    RuleTypeId
```

## Properties
<a name="aws-properties-codepipeline-pipeline-ruledeclaration-properties"></a>

`Commands`  <a name="cfn-codepipeline-pipeline-ruledeclaration-commands"></a>
The shell commands to run with your commands rule in CodePipeline. All commands are supported except multi-line formats. While CodeBuild logs and permissions are used, you do not need to create any resources in CodeBuild.  
Using compute time for this action will incur separate charges in AWS CodeBuild.
*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)

`Configuration`  <a name="cfn-codepipeline-pipeline-ruledeclaration-configuration"></a>
The action configuration fields for the rule.  
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InputArtifacts`  <a name="cfn-codepipeline-pipeline-ruledeclaration-inputartifacts"></a>
The input artifacts fields for the rule, such as specifying an input file for the rule.  
*Required*: No  
*Type*: Array of [InputArtifact](aws-properties-codepipeline-pipeline-inputartifact.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-codepipeline-pipeline-ruledeclaration-name"></a>
The name of the rule that is created for the condition, such as `VariableCheck`.  
*Required*: No  
*Type*: String  
*Pattern*: `[A-Za-z0-9.@\-_]+`  
*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)

`Region`  <a name="cfn-codepipeline-pipeline-ruledeclaration-region"></a>
The Region for the condition associated with the rule.  
*Required*: No  
*Type*: String  
*Minimum*: `4`  
*Maximum*: `30`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RoleArn`  <a name="cfn-codepipeline-pipeline-ruledeclaration-rolearn"></a>
The pipeline role ARN associated with the rule.  
*Required*: No  
*Type*: String  
*Pattern*: `arn:aws(-[\w]+)*:iam::[0-9]{12}:role/.*`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RuleTypeId`  <a name="cfn-codepipeline-pipeline-ruledeclaration-ruletypeid"></a>
The ID for the rule type, which is made up of the combined values for category, owner, provider, and version.  
*Required*: No  
*Type*: [RuleTypeId](aws-properties-codepipeline-pipeline-ruletypeid.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline RuleTypeId
<a name="aws-properties-codepipeline-pipeline-ruletypeid"></a>

The ID for the rule type, which is made up of the combined values for category, owner, provider, and version. For more information about conditions, see [Stage conditions](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html). For more information about rules, see the [AWS CodePipeline rule reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/rule-reference.html).

## Syntax
<a name="aws-properties-codepipeline-pipeline-ruletypeid-syntax"></a>

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

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

```
{
  "[Category](#cfn-codepipeline-pipeline-ruletypeid-category)" : String,
  "[Owner](#cfn-codepipeline-pipeline-ruletypeid-owner)" : String,
  "[Provider](#cfn-codepipeline-pipeline-ruletypeid-provider)" : String,
  "[Version](#cfn-codepipeline-pipeline-ruletypeid-version)" : String
}
```

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

```
  [Category](#cfn-codepipeline-pipeline-ruletypeid-category): String
  [Owner](#cfn-codepipeline-pipeline-ruletypeid-owner): String
  [Provider](#cfn-codepipeline-pipeline-ruletypeid-provider): String
  [Version](#cfn-codepipeline-pipeline-ruletypeid-version): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-ruletypeid-properties"></a>

`Category`  <a name="cfn-codepipeline-pipeline-ruletypeid-category"></a>
A category defines what kind of rule can be run in the stage, and constrains the provider type for the rule. The valid category is `Rule`.   
*Required*: No  
*Type*: String  
*Allowed values*: `Rule`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Owner`  <a name="cfn-codepipeline-pipeline-ruletypeid-owner"></a>
The creator of the rule being called. The valid value for the `Owner` field in the rule category is `AWS`.   
*Required*: No  
*Type*: String  
*Allowed values*: `AWS`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Provider`  <a name="cfn-codepipeline-pipeline-ruletypeid-provider"></a>
The rule provider, such as the `DeploymentWindow` rule. For a list of rule provider names, see the rules listed in the [AWS CodePipeline rule reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/rule-reference.html).  
*Required*: No  
*Type*: String  
*Pattern*: `[0-9A-Za-z_-]+`  
*Minimum*: `1`  
*Maximum*: `35`  
*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-codepipeline-pipeline-ruletypeid-version"></a>
A string that describes the rule version.  
*Required*: No  
*Type*: String  
*Pattern*: `[0-9A-Za-z_-]+`  
*Minimum*: `1`  
*Maximum*: `9`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline StageDeclaration
<a name="aws-properties-codepipeline-pipeline-stagedeclaration"></a>

Represents information about a stage and its definition.

## Syntax
<a name="aws-properties-codepipeline-pipeline-stagedeclaration-syntax"></a>

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

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

```
{
  "[Actions](#cfn-codepipeline-pipeline-stagedeclaration-actions)" : [ ActionDeclaration, ... ],
  "[BeforeEntry](#cfn-codepipeline-pipeline-stagedeclaration-beforeentry)" : BeforeEntryConditions,
  "[Blockers](#cfn-codepipeline-pipeline-stagedeclaration-blockers)" : [ BlockerDeclaration, ... ],
  "[Name](#cfn-codepipeline-pipeline-stagedeclaration-name)" : String,
  "[OnFailure](#cfn-codepipeline-pipeline-stagedeclaration-onfailure)" : FailureConditions,
  "[OnSuccess](#cfn-codepipeline-pipeline-stagedeclaration-onsuccess)" : SuccessConditions
}
```

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

```
  [Actions](#cfn-codepipeline-pipeline-stagedeclaration-actions): 
    - ActionDeclaration
  [BeforeEntry](#cfn-codepipeline-pipeline-stagedeclaration-beforeentry): 
    BeforeEntryConditions
  [Blockers](#cfn-codepipeline-pipeline-stagedeclaration-blockers): 
    - BlockerDeclaration
  [Name](#cfn-codepipeline-pipeline-stagedeclaration-name): String
  [OnFailure](#cfn-codepipeline-pipeline-stagedeclaration-onfailure): 
    FailureConditions
  [OnSuccess](#cfn-codepipeline-pipeline-stagedeclaration-onsuccess): 
    SuccessConditions
```

## Properties
<a name="aws-properties-codepipeline-pipeline-stagedeclaration-properties"></a>

`Actions`  <a name="cfn-codepipeline-pipeline-stagedeclaration-actions"></a>
The actions included in a stage.  
*Required*: Yes  
*Type*: Array of [ActionDeclaration](aws-properties-codepipeline-pipeline-actiondeclaration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`BeforeEntry`  <a name="cfn-codepipeline-pipeline-stagedeclaration-beforeentry"></a>
The method to use when a stage allows entry. For example, configuring this field for conditions will allow entry to the stage when the conditions are met.  
*Required*: No  
*Type*: [BeforeEntryConditions](aws-properties-codepipeline-pipeline-beforeentryconditions.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Blockers`  <a name="cfn-codepipeline-pipeline-stagedeclaration-blockers"></a>
Reserved for future use.  
*Required*: No  
*Type*: Array of [BlockerDeclaration](aws-properties-codepipeline-pipeline-blockerdeclaration.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-codepipeline-pipeline-stagedeclaration-name"></a>
The name of the stage.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[A-Za-z0-9.@\-_]+`  
*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)

`OnFailure`  <a name="cfn-codepipeline-pipeline-stagedeclaration-onfailure"></a>
The method to use when a stage has not completed successfully. For example, configuring this field for rollback will roll back a failed stage automatically to the last successful pipeline execution in the stage.  
*Required*: No  
*Type*: [FailureConditions](aws-properties-codepipeline-pipeline-failureconditions.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OnSuccess`  <a name="cfn-codepipeline-pipeline-stagedeclaration-onsuccess"></a>
The method to use when a stage has succeeded. For example, configuring this field for conditions will allow the stage to succeed when the conditions are met.  
*Required*: No  
*Type*: [SuccessConditions](aws-properties-codepipeline-pipeline-successconditions.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::CodePipeline::Pipeline StageTransition
<a name="aws-properties-codepipeline-pipeline-stagetransition"></a>

The name of the pipeline in which you want to disable the flow of artifacts from one stage to another.

## Syntax
<a name="aws-properties-codepipeline-pipeline-stagetransition-syntax"></a>

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

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

```
{
  "[Reason](#cfn-codepipeline-pipeline-stagetransition-reason)" : String,
  "[StageName](#cfn-codepipeline-pipeline-stagetransition-stagename)" : String
}
```

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

```
  [Reason](#cfn-codepipeline-pipeline-stagetransition-reason): String
  [StageName](#cfn-codepipeline-pipeline-stagetransition-stagename): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-stagetransition-properties"></a>

`Reason`  <a name="cfn-codepipeline-pipeline-stagetransition-reason"></a>
The reason given to the user that a stage is disabled, such as waiting for manual approval or manual tests. This message is displayed in the pipeline console UI.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[a-zA-Z0-9!@ \(\)\.\*\?\-]+`  
*Minimum*: `1`  
*Maximum*: `300`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`StageName`  <a name="cfn-codepipeline-pipeline-stagetransition-stagename"></a>
The name of the stage where you want to disable the inbound or outbound transition of artifacts.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[A-Za-z0-9.@\-_]+`  
*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)

# AWS::CodePipeline::Pipeline SuccessConditions
<a name="aws-properties-codepipeline-pipeline-successconditions"></a>

The conditions for making checks that, if met, succeed a stage. For more information about conditions, see [Stage conditions](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html) and [How do stage conditions work?](https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts-how-it-works-conditions.html).

## Syntax
<a name="aws-properties-codepipeline-pipeline-successconditions-syntax"></a>

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

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

```
{
  "[Conditions](#cfn-codepipeline-pipeline-successconditions-conditions)" : [ Condition, ... ]
}
```

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

```
  [Conditions](#cfn-codepipeline-pipeline-successconditions-conditions): 
    - Condition
```

## Properties
<a name="aws-properties-codepipeline-pipeline-successconditions-properties"></a>

`Conditions`  <a name="cfn-codepipeline-pipeline-successconditions-conditions"></a>
The conditions that are success conditions.  
*Required*: No  
*Type*: Array of [Condition](aws-properties-codepipeline-pipeline-condition.md)  
*Minimum*: `1`  
*Maximum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

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

A tag is a key-value pair that is used to manage the resource.

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

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

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

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

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

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

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

`Key`  <a name="cfn-codepipeline-pipeline-tag-key"></a>
The tag's key.  
*Required*: Yes  
*Type*: String  
*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-codepipeline-pipeline-tag-value"></a>
The tag's value.  
*Required*: Yes  
*Type*: String  
*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)

# AWS::CodePipeline::Pipeline VariableDeclaration
<a name="aws-properties-codepipeline-pipeline-variabledeclaration"></a>

A variable declared at the pipeline level.

## Syntax
<a name="aws-properties-codepipeline-pipeline-variabledeclaration-syntax"></a>

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

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

```
{
  "[DefaultValue](#cfn-codepipeline-pipeline-variabledeclaration-defaultvalue)" : String,
  "[Description](#cfn-codepipeline-pipeline-variabledeclaration-description)" : String,
  "[Name](#cfn-codepipeline-pipeline-variabledeclaration-name)" : String
}
```

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

```
  [DefaultValue](#cfn-codepipeline-pipeline-variabledeclaration-defaultvalue): String
  [Description](#cfn-codepipeline-pipeline-variabledeclaration-description): String
  [Name](#cfn-codepipeline-pipeline-variabledeclaration-name): String
```

## Properties
<a name="aws-properties-codepipeline-pipeline-variabledeclaration-properties"></a>

`DefaultValue`  <a name="cfn-codepipeline-pipeline-variabledeclaration-defaultvalue"></a>
The value of a pipeline-level variable.  
*Required*: No  
*Type*: String  
*Pattern*: `.*`  
*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)

`Description`  <a name="cfn-codepipeline-pipeline-variabledeclaration-description"></a>
The description of a pipeline-level variable. It's used to add additional context about the variable, and not being used at time when pipeline executes.  
*Required*: No  
*Type*: String  
*Pattern*: `.*`  
*Minimum*: `0`  
*Maximum*: `200`  
*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-codepipeline-pipeline-variabledeclaration-name"></a>
The name of a pipeline-level variable.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[A-Za-z0-9@\-_]+`  
*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)