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