Skip to content

ModuleVersion ​

The ModuleVersion resource allows you to create and manage AWS CloudFormation ModuleVersions, which are useful for versioning your CloudFormation modules.

Minimal Example ​

This example demonstrates how to create a basic ModuleVersion with the required properties, including an optional adopt flag.

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

const moduleVersion = await AWS.CloudFormation.ModuleVersion("myModuleVersion", {
  ModuleName: "MyAwesomeModule",
  ModulePackage: "s3://my-bucket/my-module-package.zip",
  adopt: true // Allows adoption of existing resources
});

Advanced Configuration ​

In this example, we create a ModuleVersion with additional properties to manage its lifecycle.

ts
const advancedModuleVersion = await AWS.CloudFormation.ModuleVersion("myAdvancedModuleVersion", {
  ModuleName: "MyAdvancedModule",
  ModulePackage: "s3://my-bucket/my-advanced-module.zip",
  adopt: true // Enables adoption of existing resources
});

ModuleVersion with Metadata ​

This example illustrates how to retrieve additional metadata properties such as Arn, CreationTime, and LastUpdateTime.

ts
const moduleVersionMetadata = await AWS.CloudFormation.ModuleVersion("myModuleVersionWithMetadata", {
  ModuleName: "MyModuleWithMetadata",
  ModulePackage: "s3://my-bucket/my-module-with-metadata.zip"
});

// Accessing metadata properties
console.log(`ARN: ${moduleVersionMetadata.Arn}`);
console.log(`Created At: ${moduleVersionMetadata.CreationTime}`);
console.log(`Last Updated At: ${moduleVersionMetadata.LastUpdateTime}`);

Handling Existing ModuleVersions ​

This example shows how to handle situations where a ModuleVersion already exists by using the adopt property.

ts
const existingModuleVersion = await AWS.CloudFormation.ModuleVersion("myExistingModuleVersion", {
  ModuleName: "ExistingModule",
  ModulePackage: "s3://my-bucket/existing-module-package.zip",
  adopt: true // Adopts the existing resource instead of failing
});