Skip to content
GitHubXDiscord

ModuleVersion

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

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

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

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

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

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

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

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

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