Skip to content
GitHubXDiscordRSS

CustomActionType

Learn how to create, update, and manage AWS CodePipeline CustomActionTypes using Alchemy Cloud Control.

The CustomActionType resource lets you define custom actions for your AWS CodePipeline, enabling integration with third-party services or custom processing logic. For more detailed information, refer to the AWS CodePipeline CustomActionTypes documentation.

Create a basic CustomActionType with required properties and a common optional configuration.

import AWS from "alchemy/aws/control";
const simpleCustomActionType = await AWS.CodePipeline.CustomActionType("simpleCustomAction", {
category: "Build",
inputArtifactDetails: {
minimumCount: 1,
maximumCount: 5,
type: {
name: "MyInputArtifact",
type: "S3"
}
},
outputArtifactDetails: {
minimumCount: 1,
maximumCount: 5,
type: {
name: "MyOutputArtifact",
type: "S3"
}
},
provider: "MyCustomProvider",
version: "1.0",
settings: {
entityUrlTemplate: "https://example.com/{JobId}",
executionUrlTemplate: "https://example.com/{JobId}/execute"
}
});

Configure a CustomActionType with detailed configuration properties including multiple configuration options and tags.

const advancedCustomActionType = await AWS.CodePipeline.CustomActionType("advancedCustomAction", {
category: "Test",
inputArtifactDetails: {
minimumCount: 1,
maximumCount: 3,
type: {
name: "TestInputArtifact",
type: "S3"
}
},
outputArtifactDetails: {
minimumCount: 1,
maximumCount: 2,
type: {
name: "TestOutputArtifact",
type: "S3"
}
},
provider: "AdvancedProvider",
version: "1.0",
configurationProperties: [
{
key: "TestParameter1",
required: true,
secret: false,
type: "String"
},
{
key: "TestParameter2",
required: false,
secret: true,
type: "String"
}
],
tags: [
{ key: "Project", value: "MyProject" },
{ key: "Environment", value: "Production" }
]
});

Define a CustomActionType that requires specific IAM permissions for execution.

const customActionWithPermissions = await AWS.CodePipeline.CustomActionType("permissionedCustomAction", {
category: "Deploy",
inputArtifactDetails: {
minimumCount: 1,
maximumCount: 1,
type: {
name: "DeployInputArtifact",
type: "S3"
}
},
outputArtifactDetails: {
minimumCount: 1,
maximumCount: 1,
type: {
name: "DeployOutputArtifact",
type: "S3"
}
},
provider: "PermissionedProvider",
version: "1.0",
configurationProperties: [
{
key: "Environment",
required: true,
secret: false,
type: "String"
}
],
settings: {
entityUrlTemplate: "https://example.com/{JobId}",
executionUrlTemplate: "https://example.com/{JobId}/execute"
},
tags: [
{ key: "Service", value: "DeploymentService" }
]
});