AWS::CodePipeline::CustomActionType
The AWS::CodePipeline::CustomActionType
resource creates a custom action
for activities that aren't included in the CodePipeline default actions, such as running an
internally developed build process or a test suite. You can use these custom actions in the
stage of a pipeline. For more information, see Create and Add a Custom
Action in AWS CodePipeline in the
AWS CodePipeline User
Guide.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::CodePipeline::CustomActionType", "Properties" : { "Category" :
String
, "ConfigurationProperties" :[ ConfigurationProperties, ... ]
, "InputArtifactDetails" :ArtifactDetails
, "OutputArtifactDetails" :ArtifactDetails
, "Provider" :String
, "Settings" :Settings
, "Tags" :[ Tag, ... ]
, "Version" :String
} }
YAML
Type: AWS::CodePipeline::CustomActionType Properties: Category:
String
ConfigurationProperties:- ConfigurationProperties
InputArtifactDetails:ArtifactDetails
OutputArtifactDetails:ArtifactDetails
Provider:String
Settings:Settings
Tags:- Tag
Version:String
Properties
Category
-
The category of the custom action, such as a build action or a test action.
Required: Yes
Type: String
Allowed values:
Source | Build | Deploy | Test | Invoke | Approval | Compute
Update requires: Replacement
ConfigurationProperties
-
The configuration properties for the custom action.
Note
You can refer to a name in the configuration properties of the custom action within the URL templates by following the format of {Config:name}, as long as the configuration property is both required and not secret. For more information, see Create a Custom Action for a Pipeline.
Required: No
Type: Array of ConfigurationProperties
Maximum:
10
Update requires: Replacement
InputArtifactDetails
-
The details of the input artifact for the action, such as its commit ID.
Required: Yes
Type: ArtifactDetails
Update requires: Replacement
OutputArtifactDetails
-
The details of the output artifact of the action, such as its commit ID.
Required: Yes
Type: ArtifactDetails
Update requires: Replacement
Provider
-
The provider of the service used in the custom action, such as CodeDeploy.
Required: Yes
Type: String
Pattern:
[0-9A-Za-z_-]+
Minimum:
1
Maximum:
35
Update requires: Replacement
Settings
-
URLs that provide users information about this custom action.
Required: No
Type: Settings
Update requires: Replacement
-
The tags for the custom action.
Required: No
Type: Array of Tag
Update requires: No interruption
Version
-
The version identifier of the custom action.
Required: Yes
Type: String
Pattern:
[0-9A-Za-z_-]+
Minimum:
1
Maximum:
9
Update requires: Replacement
Return values
Ref
When you pass the logical ID of this resource to the intrinsic Ref
function, Ref
returns the custom action name, such as
custo-MyCus-A1BCDEFGHIJ2.
For more information about using the Ref
function, see Ref
.
Fn::GetAtt
Examples
Custom Action Type Resource Configuration
The following example is a custom build action that requires users to specify one property: a project name.
JSON
"MyCustomActionType": { "Type": "AWS::CodePipeline::CustomActionType", "Properties": { "Category": "Build", "Provider": "My-Build-Provider-Name", "Version": { "Ref": "Version" }, "ConfigurationProperties": [ { "Description": "Description", "Key": "true", "Name": "MyProjectName", "Queryable": "false", "Required": "true", "Secret": "false", "Type": "String" } ], "InputArtifactDetails": { "MaximumCount": "1", "MinimumCount": "1" }, "OutputArtifactDetails": { "MaximumCount": { "Ref": "MaximumCountForOutputArtifactDetails" }, "MinimumCount": "0" }, "Settings": { "EntityUrlTemplate": "https://my-build-instance/job/{Config:ProjectName}/", "ExecutionUrlTemplate": "https://my-build-instance/job/{Config:ProjectName}/lastSuccessfulBuild/{ExternalExecutionId}/" }, "Tags": [ { "Key": "Project", "Value": "ProjectA" }, { "Key": "Team", "Value": "Admins" } ] } }
YAML
MyCustomActionType: Type: AWS::CodePipeline::CustomActionType Properties: Category: Build Provider: My-Build-Provider-Name Version: Ref: Version ConfigurationProperties: - Description: Description Key: 'true' Name: MyProjectName Queryable: 'false' Required: 'true' Secret: 'false' Type: String InputArtifactDetails: MaximumCount: '1' MinimumCount: '1' OutputArtifactDetails: MaximumCount: Ref: MaximumCountForOutputArtifactDetails MinimumCount: '0' Settings: EntityUrlTemplate: https://my-build-instance/job/{Config:ProjectName}/ ExecutionUrlTemplate: https://my-build-instance/job/{Config:ProjectName}/lastSuccessfulBuild/{ExternalExecutionId}/ Tags: - Key: Project Value: ProjectA - Key: Team Value: Admins