CustomActionType
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.
Minimal Example
Section titled “Minimal Example”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" }});
Advanced Configuration
Section titled “Advanced Configuration”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" } ]});
Custom Action with IAM Permissions
Section titled “Custom Action with IAM Permissions”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" } ]});