{
  "id": "cloudformation-cli",
  "name": "AWS CloudFormation CLI",
  "homepage": "https://github.com/aws-cloudformation/cloudformation-cli",
  "description": "The CloudFormation Provider Development Toolkit.",
  "executables": [
    "cfn"
  ],
  "dotfiles": {
    "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
    },
    "subcommand": [
      {
        "path": [
          "submit"
        ],
        "label": "Submit a resource type",
        "source": [
          {
            "id": "help",
            "kind": "manual",
            "url": "https://github.com/aws-cloudformation/cloudformation-cli#readme",
            "revision": "2026-10-27",
            "evidence": "cfn submit\ncfn submit --dry-run #prepares schema handler package without submitting for registration\ncfn submit --set-default # if successfully registered, set submitted version to be the new default version\n"
          }
        ],
        "field": [
          {
            "id": "dry_run",
            "label": "Dry run",
            "description": "Prepare the package without registering it.",
            "type": "boolean",
            "option": [
              "--dry-run"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "set_default",
            "label": "Set as default version",
            "type": "boolean",
            "option": [
              "--set-default"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "dry",
            "label": "Package only",
            "set": {
              "dry_run": [
                true
              ]
            },
            "lock": [
              "dry_run"
            ],
            "fields": [
              "dry_run"
            ],
            "required": []
          },
          {
            "id": "register",
            "label": "Register and set default",
            "set": {
              "set_default": [
                true
              ]
            },
            "fields": [
              "set_default",
              "dry_run"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "dry_run",
              "set_default"
            ]
          }
        ]
      },
      {
        "path": [
          "test"
        ],
        "label": "Run contract tests",
        "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\ncfn test --log-group-name cw_log_group --log-role-arn log_delivery_role_arn\ncfn test --v2 --region us-west-2 --profile my-profile\ncfn test --v2 --typeconfig ./myResourceTypeConfig.json\n--typeconfig ./myResourceTypeConfig.json\ncfn test --v2 --rqts-image my-registry/my-executor:my-tag\n"
          }
        ],
        "field": [
          {
            "id": "v2",
            "label": "Use CTv2 (Docker) executor",
            "type": "boolean",
            "option": [
              "--v2"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "typeconfig",
            "label": "Type configuration file",
            "type": "path",
            "option": [
              "--typeconfig"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "region",
            "label": "AWS region",
            "type": "string",
            "option": [
              "--region"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "profile",
            "label": "AWS profile",
            "type": "string",
            "option": [
              "--profile"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "enforce_timeout",
            "label": "Handler timeout (seconds)",
            "type": "integer",
            "option": [
              "--enforce-timeout"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "log_group",
            "label": "Log group name",
            "type": "string",
            "option": [
              "--log-group-name"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "log_role",
            "label": "Log delivery role ARN",
            "type": "string",
            "option": [
              "--log-role-arn"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "test",
            "label": "Run tests",
            "fields": [
              "typeconfig",
              "region",
              "profile",
              "enforce_timeout"
            ],
            "required": []
          },
          {
            "id": "v2",
            "label": "Run with CTv2",
            "set": {
              "v2": [
                true
              ]
            },
            "lock": [
              "v2"
            ],
            "fields": [
              "v2",
              "typeconfig",
              "region",
              "profile"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "v2",
              "typeconfig",
              "region",
              "profile"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "enforce_timeout",
              "log_group",
              "log_role"
            ]
          }
        ]
      },
      {
        "path": [
          "build-image"
        ],
        "label": "Build a handler image",
        "source": [
          {
            "id": "help",
            "kind": "manual",
            "url": "https://github.com/aws-cloudformation/cloudformation-cli#readme",
            "revision": "2026-10-27",
            "evidence": "cfn build-image\ncfn build-image --image-name my-handler --executable target/myjar.jar\n"
          }
        ],
        "field": [
          {
            "id": "image_name",
            "label": "Image name",
            "type": "string",
            "option": [
              "--image-name"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "executable",
            "label": "Executable",
            "type": "path",
            "option": [
              "--executable"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "build",
            "label": "Build image",
            "fields": [
              "image_name",
              "executable"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "image_name",
              "executable"
            ]
          }
        ]
      }
    ]
  }
}
