Skip to content

TypeActivation ​

The TypeActivation resource allows you to register a CloudFormation type for use in your stacks. This includes custom resource types that are defined by your organization or other AWS resources. For more information, refer to the AWS CloudFormation TypeActivations.

Minimal Example ​

Create a basic TypeActivation with the required properties and one optional property.

ts
import AWS from "alchemy/aws/control";

const typeActivation = await AWS.CloudFormation.TypeActivation("MyTypeActivation", {
  TypeName: "MyCustom::Resource",
  ExecutionRoleArn: "arn:aws:iam::123456789012:role/MyExecutionRole",
  MajorVersion: "1.0"
});

Advanced Configuration ​

Configure a TypeActivation with additional features like logging and auto-update.

ts
import AWS from "alchemy/aws/control";

const advancedTypeActivation = await AWS.CloudFormation.TypeActivation("AdvancedTypeActivation", {
  TypeName: "MyAdvanced::Resource",
  ExecutionRoleArn: "arn:aws:iam::123456789012:role/MyExecutionRole",
  MajorVersion: "1.0",
  AutoUpdate: true,
  LoggingConfig: {
    LogGroupArn: "arn:aws:logs:us-east-1:123456789012:log-group:MyLogGroup",
    LogRoleArn: "arn:aws:iam::123456789012:role/MyLoggingRole"
  }
});

Adoption of Existing Resources ​

Adopt an existing resource if the TypeActivation already exists.

ts
import AWS from "alchemy/aws/control";

const adoptExistingTypeActivation = await AWS.CloudFormation.TypeActivation("AdoptExistingTypeActivation", {
  TypeName: "MyCustom::Resource",
  ExecutionRoleArn: "arn:aws:iam::123456789012:role/MyExecutionRole",
  MajorVersion: "1.0",
  adopt: true
});

Custom Type with Alias ​

Register a TypeActivation with a custom alias for easier reference in your stacks.

ts
import AWS from "alchemy/aws/control";

const aliasTypeActivation = await AWS.CloudFormation.TypeActivation("AliasTypeActivation", {
  TypeName: "MyCustom::Resource",
  ExecutionRoleArn: "arn:aws:iam::123456789012:role/MyExecutionRole",
  MajorVersion: "1.0",
  TypeNameAlias: "MyResourceAlias"
});