

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::CodeBuild::Project Artifacts
<a name="aws-properties-codebuild-project-artifacts"></a>

`Artifacts` is a property of the [ AWS::CodeBuild::Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) resource that specifies output settings for artifacts generated by an AWS CodeBuild build.

## Syntax
<a name="aws-properties-codebuild-project-artifacts-syntax"></a>

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

### JSON
<a name="aws-properties-codebuild-project-artifacts-syntax.json"></a>

```
{
  "[ArtifactIdentifier](#cfn-codebuild-project-artifacts-artifactidentifier)" : String,
  "[EncryptionDisabled](#cfn-codebuild-project-artifacts-encryptiondisabled)" : Boolean,
  "[Location](#cfn-codebuild-project-artifacts-location)" : String,
  "[Name](#cfn-codebuild-project-artifacts-name)" : String,
  "[NamespaceType](#cfn-codebuild-project-artifacts-namespacetype)" : String,
  "[OverrideArtifactName](#cfn-codebuild-project-artifacts-overrideartifactname)" : Boolean,
  "[Packaging](#cfn-codebuild-project-artifacts-packaging)" : String,
  "[Path](#cfn-codebuild-project-artifacts-path)" : String,
  "[Type](#cfn-codebuild-project-artifacts-type)" : String
}
```

### YAML
<a name="aws-properties-codebuild-project-artifacts-syntax.yaml"></a>

```
  [ArtifactIdentifier](#cfn-codebuild-project-artifacts-artifactidentifier): String
  [EncryptionDisabled](#cfn-codebuild-project-artifacts-encryptiondisabled): Boolean
  [Location](#cfn-codebuild-project-artifacts-location): String
  [Name](#cfn-codebuild-project-artifacts-name): String
  [NamespaceType](#cfn-codebuild-project-artifacts-namespacetype): String
  [OverrideArtifactName](#cfn-codebuild-project-artifacts-overrideartifactname): Boolean
  [Packaging](#cfn-codebuild-project-artifacts-packaging): String
  [Path](#cfn-codebuild-project-artifacts-path): String
  [Type](#cfn-codebuild-project-artifacts-type): String
```

## Properties
<a name="aws-properties-codebuild-project-artifacts-properties"></a>

`ArtifactIdentifier`  <a name="cfn-codebuild-project-artifacts-artifactidentifier"></a>
 An identifier for this artifact definition.   
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EncryptionDisabled`  <a name="cfn-codebuild-project-artifacts-encryptiondisabled"></a>
 Set to true if you do not want your output artifacts encrypted. This option is valid only if your artifacts type is Amazon Simple Storage Service (Amazon S3). If this is set with another artifacts type, an `invalidInputException` is thrown.   
*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)

`Location`  <a name="cfn-codebuild-project-artifacts-location"></a>
Information about the build output artifact location:  
+ If `type` is set to `CODEPIPELINE`, AWS CodePipeline ignores this value if specified. This is because CodePipeline manages its build output locations instead of CodeBuild.
+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced.
+ If `type` is set to `S3`, this is the name of the output bucket.
 If you specify `CODEPIPELINE` or `NO_ARTIFACTS` for the `Type` property, don't specify this property. For all of the other types, you must specify this property.   
*Required*: Conditional  
*Type*: String  
*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-codebuild-project-artifacts-name"></a>
Along with `path` and `namespaceType`, the pattern that AWS CodeBuild uses to name and store the output artifact:  
+ If `type` is set to `CODEPIPELINE`, AWS CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of AWS CodeBuild.
+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced.
+ If `type` is set to `S3`, this is the name of the output artifact object. If you set the name to be a forward slash ("/"), the artifact is stored in the root of the output bucket.
For example:  
+  If `path` is set to `MyArtifacts`, `namespaceType` is set to `BUILD_ID`, and `name` is set to `MyArtifact.zip`, then the output artifact is stored in `MyArtifacts/build-ID/MyArtifact.zip`. 
+  If `path` is empty, `namespaceType` is set to `NONE`, and `name` is set to "`/`", the output artifact is stored in the root of the output bucket. 
+  If `path` is set to `MyArtifacts`, `namespaceType` is set to `BUILD_ID`, and `name` is set to "`/`", the output artifact is stored in `MyArtifacts/build-ID`. 
 If you specify `CODEPIPELINE` or `NO_ARTIFACTS` for the `Type` property, don't specify this property. For all of the other types, you must specify this property.   
*Required*: Conditional  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`NamespaceType`  <a name="cfn-codebuild-project-artifacts-namespacetype"></a>
Along with `path` and `name`, the pattern that AWS CodeBuild uses to determine the name and location to store the output artifact:  
+ If `type` is set to `CODEPIPELINE`, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of AWS CodeBuild.
+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced.
+ If `type` is set to `S3`, valid values include:
  + `BUILD_ID`: Include the build ID in the location of the build output artifact.
  + `NONE`: Do not include the build ID. This is the default if `namespaceType` is not specified.
For example, if `path` is set to `MyArtifacts`, `namespaceType` is set to `BUILD_ID`, and `name` is set to `MyArtifact.zip`, the output artifact is stored in `MyArtifacts/<build-ID>/MyArtifact.zip`.  
*Required*: No  
*Type*: String  
*Allowed values*: `NONE | BUILD_ID`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OverrideArtifactName`  <a name="cfn-codebuild-project-artifacts-overrideartifactname"></a>
 If set to true a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell command language. For example, you can append a date and time to your artifact name so that it is always unique.   
*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)

`Packaging`  <a name="cfn-codebuild-project-artifacts-packaging"></a>
The type of build output artifact to create:  
+ If `type` is set to `CODEPIPELINE`, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output artifacts instead of AWS CodeBuild.
+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced.
+ If `type` is set to `S3`, valid values include:
  + `NONE`: AWS CodeBuild creates in the output bucket a folder that contains the build output. This is the default if `packaging` is not specified.
  + `ZIP`: AWS CodeBuild creates in the output bucket a ZIP file that contains the build output.
*Required*: No  
*Type*: String  
*Allowed values*: `NONE | ZIP`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Path`  <a name="cfn-codebuild-project-artifacts-path"></a>
Along with `namespaceType` and `name`, the pattern that AWS CodeBuild uses to name and store the output artifact:  
+ If `type` is set to `CODEPIPELINE`, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of AWS CodeBuild.
+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced.
+ If `type` is set to `S3`, this is the path to the output artifact. If `path` is not specified, `path` is not used.
For example, if `path` is set to `MyArtifacts`, `namespaceType` is set to `NONE`, and `name` is set to `MyArtifact.zip`, the output artifact is stored in the output bucket at `MyArtifacts/MyArtifact.zip`.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Type`  <a name="cfn-codebuild-project-artifacts-type"></a>
The type of build output artifact. Valid values include:  
+ `CODEPIPELINE`: The build project has build output generated through CodePipeline. 
**Note**  
The `CODEPIPELINE` type is not supported for `secondaryArtifacts`.
+ `NO_ARTIFACTS`: The build project does not produce any build output.
+ `S3`: The build project stores build output in Amazon S3.
*Required*: Yes  
*Type*: String  
*Allowed values*: `CODEPIPELINE | S3 | NO_ARTIFACTS`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)