Skip to content

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 ​

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

ts
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 ​

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

ts
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 ​

Define a CustomActionType that requires specific IAM permissions for execution.

ts
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" }
  ]
});