id = "cloudformation-cli" name = "AWS CloudFormation CLI" homepage = "https://github.com/aws-cloudformation/cloudformation-cli" description = "The CloudFormation Provider Development Toolkit." executables = ["cfn"] [dotfiles] # The official CloudFormation CLI README documents the user type # configuration file used by contract tests. It contains provider-specific # credentials and is therefore classified as a secret. # https://github.com/aws-cloudformation/cloudformation-cli#command-test paths = [] secret = ["~/.cfn-cli/typeConfiguration.json"] [commands] format = 1 label = "CloudFormation provider toolkit" description = "Submit, test and build images for CloudFormation resource types with cfn. init, generate, package and validate take no options here." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["submit"] label = "Submit a resource type" [[commands.subcommand.source]] id = "help" kind = "manual" url = "https://github.com/aws-cloudformation/cloudformation-cli#readme" revision = "2026-10-27" evidence = """ cfn submit cfn submit --dry-run #prepares schema handler package without submitting for registration cfn submit --set-default # if successfully registered, set submitted version to be the new default version """ [[commands.subcommand.field]] id = "dry_run" label = "Dry run" description = "Prepare the package without registering it." type = "boolean" option = ["--dry-run"] sources = ["help"] [[commands.subcommand.field]] id = "set_default" label = "Set as default version" type = "boolean" option = ["--set-default"] sources = ["help"] [[commands.subcommand.task]] id = "dry" label = "Package only" set = { dry_run = [true] } lock = ["dry_run"] fields = ["dry_run"] required = [] [[commands.subcommand.task]] id = "register" label = "Register and set default" set = { set_default = [true] } fields = ["set_default", "dry_run"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["dry_run", "set_default"] [[commands.subcommand]] path = ["test"] label = "Run contract tests" [[commands.subcommand.source]] id = "help" kind = "manual" url = "https://github.com/aws-cloudformation/cloudformation-cli#readme" revision = "2026-10-27" evidence = """ cfn test --enforce-timeout 60 # Read/List handler timeout cfn test --log-group-name cw_log_group --log-role-arn log_delivery_role_arn cfn test --v2 --region us-west-2 --profile my-profile cfn test --v2 --typeconfig ./myResourceTypeConfig.json --typeconfig ./myResourceTypeConfig.json cfn test --v2 --rqts-image my-registry/my-executor:my-tag """ [[commands.subcommand.field]] id = "v2" label = "Use CTv2 (Docker) executor" type = "boolean" option = ["--v2"] sources = ["help"] [[commands.subcommand.field]] id = "typeconfig" label = "Type configuration file" type = "path" option = ["--typeconfig"] path = { kind = "file", role = "input" } sources = ["help"] [[commands.subcommand.field]] id = "region" label = "AWS region" type = "string" option = ["--region"] sources = ["help"] [[commands.subcommand.field]] id = "profile" label = "AWS profile" type = "string" option = ["--profile"] sources = ["help"] [[commands.subcommand.field]] id = "enforce_timeout" label = "Handler timeout (seconds)" type = "integer" option = ["--enforce-timeout"] sources = ["help"] [[commands.subcommand.field]] id = "log_group" label = "Log group name" type = "string" option = ["--log-group-name"] sources = ["help"] [[commands.subcommand.field]] id = "log_role" label = "Log delivery role ARN" type = "string" option = ["--log-role-arn"] sources = ["help"] [[commands.subcommand.task]] id = "test" label = "Run tests" fields = ["typeconfig", "region", "profile", "enforce_timeout"] required = [] [[commands.subcommand.task]] id = "v2" label = "Run with CTv2" set = { v2 = [true] } lock = ["v2"] fields = ["v2", "typeconfig", "region", "profile"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["v2", "typeconfig", "region", "profile"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["enforce_timeout", "log_group", "log_role"] [[commands.subcommand]] path = ["build-image"] label = "Build a handler image" [[commands.subcommand.source]] id = "help" kind = "manual" url = "https://github.com/aws-cloudformation/cloudformation-cli#readme" revision = "2026-10-27" evidence = """ cfn build-image cfn build-image --image-name my-handler --executable target/myjar.jar """ [[commands.subcommand.field]] id = "image_name" label = "Image name" type = "string" option = ["--image-name"] sources = ["help"] [[commands.subcommand.field]] id = "executable" label = "Executable" type = "path" option = ["--executable"] path = { kind = "file", role = "input" } sources = ["help"] [[commands.subcommand.task]] id = "build" label = "Build image" fields = ["image_name", "executable"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["image_name", "executable"]