{
  "name": "sam",
  "description": "AWS Serverless Application Model CLI",
  "subcommands": [
    {
      "name": "init",
      "description": "Init an AWS SAM application",
      "options": [
        {
          "names": [
            "--config-env"
          ],
          "description": "The environment name specifying the default parameter values in the configuration file to use",
          "takes_arg": true,
          "arg": {
            "name": "environment"
          }
        },
        {
          "names": [
            "--config-file"
          ],
          "description": "The path and file name of the configuration file containing default parameter values to use",
          "takes_arg": true,
          "arg": {
            "name": "config file"
          }
        },
        {
          "names": [
            "--debug"
          ],
          "description": "Turn on debug logging to print debug message generated by SAM CLI and display timestamps"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Show help for sam"
        },
        {
          "names": [
            "--no-interactive"
          ],
          "description": "Disable interactive prompting for init parameters, and fail if any required values are missing"
        },
        {
          "names": [
            "-a",
            "--architecture"
          ],
          "description": "Architectures your Lambda function will run on",
          "takes_arg": true,
          "arg": {
            "name": "architecture",
            "suggestions": [
              "arm64",
              "x86_64"
            ]
          }
        },
        {
          "names": [
            "-l",
            "--location"
          ],
          "description": "Template location (git, mercurial, http(s), zip, path)",
          "takes_arg": true,
          "arg": {
            "name": "location"
          }
        },
        {
          "names": [
            "-r",
            "--runtime"
          ],
          "description": "Lambda Runtime for your app",
          "takes_arg": true,
          "arg": {
            "name": "runtime",
            "suggestions": [
              "dotnet8",
              "dotnet6",
              "go1.x",
              "java21",
              "java17",
              "java11",
              "java8.al2",
              "nodejs20.x",
              "nodejs18.x",
              "nodejs16.x",
              "provided.al2023",
              "provided.al2",
              "provided",
              "python3.12",
              "python3.11",
              "python3.10",
              "python3.9",
              "python3.8",
              "ruby3.2"
            ]
          }
        },
        {
          "names": [
            "-p",
            "--package-type"
          ],
          "description": "Package type for your app",
          "takes_arg": true,
          "arg": {
            "name": "type",
            "suggestions": [
              "zip",
              "image"
            ]
          }
        },
        {
          "names": [
            "-i",
            "--base-image"
          ],
          "description": "Lambda Image of your app",
          "takes_arg": true,
          "arg": {
            "name": "image name",
            "suggestions": [
              "amazon/dotnet8-base",
              "amazon/dotnet6-base",
              "amazon/go1.x-base",
              "amazon/go-provided.al2-base",
              "amazon/go-provided.al2023-base",
              "amazon/java21-base",
              "amazon/java17-base",
              "amazon/java11-base",
              "amazon/java8.al2-base",
              "amazon/nodejs20.x-base",
              "amazon/nodejs18.x-base",
              "amazon/nodejs16.x-base",
              "amazon/python3.12-base",
              "amazon/python3.11-base",
              "amazon/python3.10-base",
              "amazon/python3.9-base",
              "amazon/python3.8-base",
              "amazon/ruby3.2-base"
            ]
          }
        },
        {
          "names": [
            "-d",
            "--dependency-manager"
          ],
          "description": "Dependency manager for your Lambda runtime",
          "takes_arg": true,
          "arg": {
            "name": "manager",
            "suggestions": [
              "npm",
              "mod",
              "gradle",
              "cli-package",
              "bundler",
              "pip",
              "maven"
            ]
          }
        },
        {
          "names": [
            "-o",
            "--output-dir"
          ],
          "description": "Where to output the initialized app into",
          "takes_arg": true,
          "arg": {
            "name": "path"
          }
        },
        {
          "names": [
            "-n",
            "--name"
          ],
          "description": "Name of your project to be generated as a folder",
          "takes_arg": true,
          "arg": {
            "name": "text"
          }
        },
        {
          "names": [
            "--app-template"
          ],
          "description": "Identifier of the managed application template you want to use",
          "takes_arg": true,
          "arg": {
            "name": "text",
            "description": "Template name"
          }
        },
        {
          "names": [
            "--no-input"
          ],
          "description": "Disable Cookiecutter prompting and accept default values defined template config"
        },
        {
          "names": [
            "--extra-context"
          ],
          "description": "Override any custom parameters in the template's cookiecutter.json configuration",
          "takes_arg": true,
          "arg": {
            "name": "text",
            "description": "E.g. {\"customParam1\": \"customValue1\", \"customParam2\":\"customValue2\"}"
          }
        }
      ]
    },
    {
      "name": "validate",
      "description": "Validate an AWS SAM template",
      "options": [
        {
          "names": [
            "--config-env"
          ],
          "description": "The environment name specifying the default parameter values in the configuration file to use",
          "takes_arg": true,
          "arg": {
            "name": "environment"
          }
        },
        {
          "names": [
            "--config-file"
          ],
          "description": "The path and file name of the configuration file containing default parameter values to use",
          "takes_arg": true,
          "arg": {
            "name": "config file"
          }
        },
        {
          "names": [
            "--debug"
          ],
          "description": "Turn on debug logging to print debug message generated by SAM CLI and display timestamps"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Show help for sam"
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Select a specific profile from your credential file to get AWS credentials",
          "takes_arg": true,
          "arg": {
            "name": "profile name",
            "description": "The name of the AWS profile"
          }
        },
        {
          "names": [
            "--region"
          ],
          "description": "Set the AWS Region of the service",
          "takes_arg": true,
          "arg": {
            "name": "region"
          }
        },
        {
          "names": [
            "-t",
            "--template-file",
            "--template"
          ],
          "description": "AWS SAM template file",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "template": "filepaths"
          }
        }
      ]
    },
    {
      "name": "build",
      "description": "Build your Lambda function code",
      "options": [
        {
          "names": [
            "--config-env"
          ],
          "description": "The environment name specifying the default parameter values in the configuration file to use",
          "takes_arg": true,
          "arg": {
            "name": "environment"
          }
        },
        {
          "names": [
            "--config-file"
          ],
          "description": "The path and file name of the configuration file containing default parameter values to use",
          "takes_arg": true,
          "arg": {
            "name": "config file"
          }
        },
        {
          "names": [
            "--debug"
          ],
          "description": "Turn on debug logging to print debug message generated by SAM CLI and display timestamps"
        },
        {
          "names": [
            "--docker-network"
          ],
          "description": "Specifies the name or id of an existing docker network to lambda docker containers should connect to, along with the default bridge network. If not specified, the Lambda containers will only connect t",
          "takes_arg": true,
          "arg": {
            "name": "network name"
          }
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Show help for sam"
        },
        {
          "names": [
            "--parameter-overrides"
          ],
          "description": "A string that contains AWS CloudFormation parameter overrides encoded as key=value pairs",
          "takes_arg": true,
          "arg": {
            "name": "override string",
            "description": "For example, 'ParameterKey=KeyPairName,ParameterValue=MyKey ParameterKey=InstanceType,ParameterValue=t1.micro' or 'KeyPairName=MyKey InstanceType=t1.micro'"
          }
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Select a specific profile from your credential file to get AWS credentials",
          "takes_arg": true,
          "arg": {
            "name": "profile name",
            "description": "The name of the AWS profile"
          }
        },
        {
          "names": [
            "--region"
          ],
          "description": "Set the AWS Region of the service",
          "takes_arg": true,
          "arg": {
            "name": "region"
          }
        },
        {
          "names": [
            "--skip-pull-image"
          ],
          "description": "Specify whether CLI should skip pulling down the latest Docker image for Lambda runtime"
        },
        {
          "names": [
            "-t",
            "--template-file",
            "--template"
          ],
          "description": "AWS SAM template file",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-u",
            "--use-container"
          ],
          "description": "If your functions depend on packages that have natively compiled dependencies, use this flag to build your function inside an AWS Lambda-like Docker container"
        },
        {
          "names": [
            "-e",
            "--container-env-var"
          ],
          "description": "Input environment variables through command line to pass into build containers, you can either input function specific format (FuncName.VarName=Value) or global format (VarName=Value)",
          "takes_arg": true,
          "arg": {
            "name": "env var"
          }
        },
        {
          "names": [
            "-ef",
            "--container-env-var-file"
          ],
          "description": "Path to environment variable json file (e.g., env_vars.json) to pass into build containers",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-bi",
            "--build-image"
          ],
          "description": "Container image URIs",
          "takes_arg": true,
          "arg": {
            "name": "image uri",
            "description": "Container image URIs for building functions/layers. You can specify for all functions/layers with just the image URI (--build-image public.ecr.aws/sam/build-nodejs14.x:latest). You can specify for eac"
          }
        },
        {
          "names": [
            "-p",
            "--parallel"
          ],
          "description": "Enabled parallel builds"
        },
        {
          "names": [
            "-b",
            "--build-dir"
          ],
          "description": "Path to a folder where the built artifacts will be stored",
          "takes_arg": true,
          "arg": {
            "name": "directory",
            "template": "folders"
          }
        },
        {
          "names": [
            "-cd",
            "--cache-dir"
          ],
          "description": "The folder where the cached artifacts are stored with `--cached` is specified",
          "takes_arg": true,
          "arg": {
            "name": "directory",
            "template": "folders"
          }
        },
        {
          "names": [
            "-s",
            "--base-dir"
          ],
          "description": "Resolve relative paths to function's source code with respect to this folder",
          "takes_arg": true,
          "arg": {
            "name": "directory",
            "template": "folders"
          }
        },
        {
          "names": [
            "-m",
            "--manifest"
          ],
          "description": "Path to a custom dependency manifest to use instead of the default one",
          "takes_arg": true,
          "arg": {
            "name": "directory",
            "template": "folders"
          }
        },
        {
          "names": [
            "-c",
            "--cached"
          ],
          "description": "Enable cached builds. Use this flag to reuse build artifacts that have not changed from previous builds"
        },
        {
          "names": [
            "--beta-features",
            "--no-beta-features"
          ],
          "description": "Should beta features be enabled"
        }
      ]
    },
    {
      "name": "local",
      "description": "Run your Serverless application locally for quick development & testing",
      "subcommands": [
        {
          "name": "generate-event",
          "description": "You can use this command to generate sample payloads from different event sources such as S3, API Gateway, and SNS",
          "options": [
            {
              "names": [
                "--help",
                "-h"
              ],
              "description": "Show help for sam"
            }
          ]
        },
        {
          "name": "invoke",
          "description": "Invokes a local Lambda function once",
          "options": [
            {
              "names": [
                "--config-env"
              ],
              "description": "The environment name specifying the default parameter values in the configuration file to use",
              "takes_arg": true,
              "arg": {
                "name": "environment"
              }
            },
            {
              "names": [
                "--config-file"
              ],
              "description": "The path and file name of the configuration file containing default parameter values to use",
              "takes_arg": true,
              "arg": {
                "name": "config file"
              }
            },
            {
              "names": [
                "--container-env-vars"
              ],
              "description": "JSON file containing environment variables to be set within the container environment",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--container-host-interface"
              ],
              "description": "IP address of the host network interface that container ports should bind to. Use 0.0.0.0 to bind to all interfaces",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--container-host"
              ],
              "description": "Host of locally emulated Lambda container",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--debugger-args"
              ],
              "description": "Additional arguments to be passed to the debugger",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--debugger-path"
              ],
              "description": "Host path to a debugger to mount into the Lambda container",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--debug"
              ],
              "description": "Turn on debug logging to print debug message generated by SAM CLI and display timestamps"
            },
            {
              "names": [
                "-d",
                "--debug-port"
              ],
              "description": "When specified, Lambda function will start in debug mode and expose this port to localhost",
              "takes_arg": true,
              "arg": {
                "name": "port number"
              }
            },
            {
              "names": [
                "--docker-network"
              ],
              "description": "Specifies the name or id of an existing docker network to lambda docker containers should connect to, along with the default bridge network. If not specified, the Lambda containers will only connect t",
              "takes_arg": true,
              "arg": {
                "name": "network name"
              }
            },
            {
              "names": [
                "-v",
                "--docker-volume-basedir"
              ],
              "description": "Location basedir where the SAM file exists",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "-n",
                "--env-vars"
              ],
              "description": "JSON file containing values for Lambda function environment variables",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--force-image-build"
              ],
              "description": "Whether the image should be rebuilt"
            },
            {
              "names": [
                "--help",
                "-h"
              ],
              "description": "Show help for sam"
            },
            {
              "names": [
                "-ii",
                "--invoke-image"
              ],
              "description": "Container image URIs for invoking functions or starting api and function",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--layer-cache-basedir"
              ],
              "description": "Location where Layers your template uses will be downloaded to",
              "takes_arg": true,
              "arg": {
                "name": "directory",
                "template": "folders"
              }
            },
            {
              "names": [
                "-l",
                "--log-file"
              ],
              "description": "Log file to send runtime logs to",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--parameter-overrides"
              ],
              "description": "A string that contains AWS CloudFormation parameter overrides encoded as key=value pairs",
              "takes_arg": true,
              "arg": {
                "name": "override string",
                "description": "For example, 'ParameterKey=KeyPairName,ParameterValue=MyKey ParameterKey=InstanceType,ParameterValue=t1.micro' or 'KeyPairName=MyKey InstanceType=t1.micro'"
              }
            },
            {
              "names": [
                "--profile"
              ],
              "description": "Select a specific profile from your credential file to get AWS credentials",
              "takes_arg": true,
              "arg": {
                "name": "profile name",
                "description": "The name of the AWS profile"
              }
            },
            {
              "names": [
                "--region"
              ],
              "description": "Set the AWS Region of the service",
              "takes_arg": true,
              "arg": {
                "name": "region"
              }
            },
            {
              "names": [
                "--shutdown"
              ],
              "description": "If set, will emulate a shutdown event after the invoke completes, in order to test extension handling of shutdown behavior"
            },
            {
              "names": [
                "--skip-pull-image"
              ],
              "description": "Specify whether CLI should skip pulling down the latest Docker image for Lambda runtime"
            },
            {
              "names": [
                "-t",
                "--template-file",
                "--template"
              ],
              "description": "AWS SAM template file",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "-e",
                "--event"
              ],
              "description": "JSON file containing event data passed to the Lambda function",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            }
          ]
        },
        {
          "name": "start-api",
          "description": "Sets up a local endpoint you can use to test your API",
          "options": [
            {
              "names": [
                "--config-env"
              ],
              "description": "The environment name specifying the default parameter values in the configuration file to use",
              "takes_arg": true,
              "arg": {
                "name": "environment"
              }
            },
            {
              "names": [
                "--config-file"
              ],
              "description": "The path and file name of the configuration file containing default parameter values to use",
              "takes_arg": true,
              "arg": {
                "name": "config file"
              }
            },
            {
              "names": [
                "--container-env-vars"
              ],
              "description": "JSON file containing environment variables to be set within the container environment",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--container-host-interface"
              ],
              "description": "IP address of the host network interface that container ports should bind to. Use 0.0.0.0 to bind to all interfaces",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--container-host"
              ],
              "description": "Host of locally emulated Lambda container",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--debug-function"
              ],
              "description": "Specifies the Lambda Function logicalId to apply debug options to when --warm-containers is specified.  This parameter applies to --debug-port, --debugger-path, and --debug-args",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--debugger-args"
              ],
              "description": "Additional arguments to be passed to the debugger",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--debugger-path"
              ],
              "description": "Host path to a debugger to mount into the Lambda container",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--debug"
              ],
              "description": "Turn on debug logging to print debug message generated by SAM CLI and display timestamps"
            },
            {
              "names": [
                "-d",
                "--debug-port"
              ],
              "description": "When specified, Lambda function will start in debug mode and expose this port to localhost",
              "takes_arg": true,
              "arg": {
                "name": "port number"
              }
            },
            {
              "names": [
                "--docker-network"
              ],
              "description": "Specifies the name or id of an existing docker network to lambda docker containers should connect to, along with the default bridge network. If not specified, the Lambda containers will only connect t",
              "takes_arg": true,
              "arg": {
                "name": "network name"
              }
            },
            {
              "names": [
                "-v",
                "--docker-volume-basedir"
              ],
              "description": "Location basedir where the SAM file exists",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "-n",
                "--env-vars"
              ],
              "description": "JSON file containing values for Lambda function environment variables",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--force-image-build"
              ],
              "description": "Whether the image should be rebuilt"
            },
            {
              "names": [
                "--help",
                "-h"
              ],
              "description": "Show help for sam"
            },
            {
              "names": [
                "--host"
              ],
              "description": "Local hostname or IP address to bind to",
              "takes_arg": true,
              "arg": {
                "name": "text",
                "description": "Default: '127.0.0.1'"
              }
            },
            {
              "names": [
                "-ii",
                "--invoke-image"
              ],
              "description": "Container image URIs for invoking functions or starting api and function",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--layer-cache-basedir"
              ],
              "description": "Location where Layers your template uses will be downloaded to",
              "takes_arg": true,
              "arg": {
                "name": "directory",
                "template": "folders"
              }
            },
            {
              "names": [
                "-l",
                "--log-file"
              ],
              "description": "Log file to send runtime logs to",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--parameter-overrides"
              ],
              "description": "A string that contains AWS CloudFormation parameter overrides encoded as key=value pairs",
              "takes_arg": true,
              "arg": {
                "name": "override string",
                "description": "For example, 'ParameterKey=KeyPairName,ParameterValue=MyKey ParameterKey=InstanceType,ParameterValue=t1.micro' or 'KeyPairName=MyKey InstanceType=t1.micro'"
              }
            },
            {
              "names": [
                "-p",
                "--port"
              ],
              "description": "Local port to listen on",
              "takes_arg": true,
              "arg": {
                "name": "port number",
                "description": "Default: 3000"
              }
            },
            {
              "names": [
                "--shutdown"
              ],
              "description": "If set, will emulate a shutdown event after the invoke completes, in order to test extension handling of shutdown behavior"
            },
            {
              "names": [
                "--skip-pull-image"
              ],
              "description": "Specify whether CLI should skip pulling down the latest Docker image for Lambda runtime"
            },
            {
              "names": [
                "-t",
                "--template-file",
                "--template"
              ],
              "description": "AWS SAM template file",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--warm-containers"
              ],
              "description": "Specific how SAM manages the containers for each function",
              "takes_arg": true,
              "arg": {
                "name": "mode",
                "suggestions": [
                  "eager",
                  "lazy"
                ]
              }
            },
            {
              "names": [
                "-s",
                "--static-dir"
              ],
              "description": "Any static assets files locates in this directory will be presented at /",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            }
          ]
        },
        {
          "name": "start-lambda",
          "description": "Starts a local endpoint you can use to invoke your local Lambda functions",
          "options": [
            {
              "names": [
                "--config-env"
              ],
              "description": "The environment name specifying the default parameter values in the configuration file to use",
              "takes_arg": true,
              "arg": {
                "name": "environment"
              }
            },
            {
              "names": [
                "--config-file"
              ],
              "description": "The path and file name of the configuration file containing default parameter values to use",
              "takes_arg": true,
              "arg": {
                "name": "config file"
              }
            },
            {
              "names": [
                "--container-env-vars"
              ],
              "description": "JSON file containing environment variables to be set within the container environment",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--container-host-interface"
              ],
              "description": "IP address of the host network interface that container ports should bind to. Use 0.0.0.0 to bind to all interfaces",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--container-host"
              ],
              "description": "Host of locally emulated Lambda container",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--debug-function"
              ],
              "description": "Specifies the Lambda Function logicalId to apply debug options to when --warm-containers is specified.  This parameter applies to --debug-port, --debugger-path, and --debug-args",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--debugger-args"
              ],
              "description": "Additional arguments to be passed to the debugger",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--debugger-path"
              ],
              "description": "Host path to a debugger to mount into the Lambda container",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--debug"
              ],
              "description": "Turn on debug logging to print debug message generated by SAM CLI and display timestamps"
            },
            {
              "names": [
                "-d",
                "--debug-port"
              ],
              "description": "When specified, Lambda function will start in debug mode and expose this port to localhost",
              "takes_arg": true,
              "arg": {
                "name": "port number"
              }
            },
            {
              "names": [
                "--docker-network"
              ],
              "description": "Specifies the name or id of an existing docker network to lambda docker containers should connect to, along with the default bridge network. If not specified, the Lambda containers will only connect t",
              "takes_arg": true,
              "arg": {
                "name": "network name"
              }
            },
            {
              "names": [
                "-v",
                "--docker-volume-basedir"
              ],
              "description": "Location basedir where the SAM file exists",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "-n",
                "--env-vars"
              ],
              "description": "JSON file containing values for Lambda function environment variables",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--force-image-build"
              ],
              "description": "Whether the image should be rebuilt"
            },
            {
              "names": [
                "--help",
                "-h"
              ],
              "description": "Show help for sam"
            },
            {
              "names": [
                "--host"
              ],
              "description": "Local hostname or IP address to bind to",
              "takes_arg": true,
              "arg": {
                "name": "text",
                "description": "Default: '127.0.0.1'"
              }
            },
            {
              "names": [
                "-ii",
                "--invoke-image"
              ],
              "description": "Container image URIs for invoking functions or starting api and function",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--layer-cache-basedir"
              ],
              "description": "Location where Layers your template uses will be downloaded to",
              "takes_arg": true,
              "arg": {
                "name": "directory",
                "template": "folders"
              }
            },
            {
              "names": [
                "-l",
                "--log-file"
              ],
              "description": "Log file to send runtime logs to",
              "takes_arg": true,
              "arg": {
                "name": "text"
              }
            },
            {
              "names": [
                "--parameter-overrides"
              ],
              "description": "A string that contains AWS CloudFormation parameter overrides encoded as key=value pairs",
              "takes_arg": true,
              "arg": {
                "name": "override string",
                "description": "For example, 'ParameterKey=KeyPairName,ParameterValue=MyKey ParameterKey=InstanceType,ParameterValue=t1.micro' or 'KeyPairName=MyKey InstanceType=t1.micro'"
              }
            },
            {
              "names": [
                "-p",
                "--port"
              ],
              "description": "Local port to listen on",
              "takes_arg": true,
              "arg": {
                "name": "port number",
                "description": "Default: 3000"
              }
            },
            {
              "names": [
                "--profile"
              ],
              "description": "Select a specific profile from your credential file to get AWS credentials",
              "takes_arg": true,
              "arg": {
                "name": "profile name",
                "description": "The name of the AWS profile"
              }
            },
            {
              "names": [
                "--region"
              ],
              "description": "Set the AWS Region of the service",
              "takes_arg": true,
              "arg": {
                "name": "region"
              }
            },
            {
              "names": [
                "--shutdown"
              ],
              "description": "If set, will emulate a shutdown event after the invoke completes, in order to test extension handling of shutdown behavior"
            },
            {
              "names": [
                "--skip-pull-image"
              ],
              "description": "Specify whether CLI should skip pulling down the latest Docker image for Lambda runtime"
            },
            {
              "names": [
                "-t",
                "--template-file",
                "--template"
              ],
              "description": "AWS SAM template file",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--warm-containers"
              ],
              "description": "Specific how SAM manages the containers for each function",
              "takes_arg": true,
              "arg": {
                "name": "mode",
                "suggestions": [
                  "eager",
                  "lazy"
                ]
              }
            }
          ]
        }
      ],
      "options": [
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Show help for sam"
        }
      ]
    },
    {
      "name": "package",
      "description": "Package an AWS SAM application",
      "options": [
        {
          "names": [
            "--config-env"
          ],
          "description": "The environment name specifying the default parameter values in the configuration file to use",
          "takes_arg": true,
          "arg": {
            "name": "environment"
          }
        },
        {
          "names": [
            "--config-file"
          ],
          "description": "The path and file name of the configuration file containing default parameter values to use",
          "takes_arg": true,
          "arg": {
            "name": "config file"
          }
        },
        {
          "names": [
            "--debug"
          ],
          "description": "Turn on debug logging to print debug message generated by SAM CLI and display timestamps"
        },
        {
          "names": [
            "--force-upload"
          ],
          "description": "Indicates whether to override existing files in the S3 bucket. Specify this flag to upload artifacts even if they match existing artifacts in the S3 bucket"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Show help for sam"
        },
        {
          "names": [
            "--image-repositories",
            ""
          ],
          "description": "Specify mapping of Function Logical ID to ECR Repo uri",
          "takes_arg": true,
          "arg": {
            "name": "mapping",
            "description": "Example: Function_Logical_ID=ECR_Repo_Uri"
          }
        },
        {
          "names": [
            "--image-repository"
          ],
          "description": "ECR repo uri where this command uploads the image artifacts that are referenced in your template",
          "takes_arg": true,
          "arg": {
            "name": "repo URI"
          }
        },
        {
          "names": [
            "--kms-key-id"
          ],
          "description": "The ID of an AWS KMS key that the command uses to encrypt artifacts that are at rest in the S3 bucket",
          "takes_arg": true,
          "arg": {
            "name": "kms key id"
          }
        },
        {
          "names": [
            "--metadata"
          ],
          "description": "A map of metadata to attach to ALL the artifacts that are referenced in your template",
          "takes_arg": true,
          "arg": {
            "name": "map"
          }
        },
        {
          "names": [
            "--no-progressbar"
          ],
          "description": "Does not showcase a progress bar when uploading artifacts to s3"
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Select a specific profile from your credential file to get AWS credentials",
          "takes_arg": true,
          "arg": {
            "name": "profile name",
            "description": "The name of the AWS profile"
          }
        },
        {
          "names": [
            "--region"
          ],
          "description": "Set the AWS Region of the service",
          "takes_arg": true,
          "arg": {
            "name": "region"
          }
        },
        {
          "names": [
            "--resolve-s3"
          ],
          "description": "Automatically resolve s3 bucket for non-guided deployments. Enabling this option will also create a managed default s3 bucket for you"
        },
        {
          "names": [
            "--s3-bucket"
          ],
          "description": "The name of the S3 bucket where this command uploads the artifacts that are referenced in your template",
          "takes_arg": true,
          "arg": {
            "name": "bucket name"
          }
        },
        {
          "names": [
            "--s3-prefix"
          ],
          "description": "A prefix name that the command adds to the artifacts name when it uploads them to the S3 bucket",
          "takes_arg": true,
          "arg": {
            "name": "prefix",
            "description": "The prefix name is a path name (folder name) for the S3 bucket"
          }
        },
        {
          "names": [
            "--signing-profiles"
          ],
          "description": "A string that contains Code Sign configuration parameters",
          "takes_arg": true,
          "arg": {
            "name": "profiles",
            "description": "Example: FunctionOrLayerNameToSign=SigningProfileName:SigningProfileOwner"
          }
        },
        {
          "names": [
            "-t",
            "--template-file",
            "--template"
          ],
          "description": "AWS SAM template file",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--use-json"
          ],
          "description": "Indicates whether to use JSON as the format for the output AWS CloudFormation template. YAML is used by default"
        },
        {
          "names": [
            "--output-template-file"
          ],
          "description": "The path to the file where the command writes the output AWS CloudFormation template. If unspecified, the command writes the template to the standard output",
          "takes_arg": true,
          "arg": {
            "name": "path"
          }
        }
      ]
    },
    {
      "name": "deploy",
      "description": "Deploy an AWS SAM application",
      "options": [
        {
          "names": [
            "--config-env"
          ],
          "description": "The environment name specifying the default parameter values in the configuration file to use",
          "takes_arg": true,
          "arg": {
            "name": "environment"
          }
        },
        {
          "names": [
            "--config-file"
          ],
          "description": "The path and file name of the configuration file containing default parameter values to use",
          "takes_arg": true,
          "arg": {
            "name": "config file"
          }
        },
        {
          "names": [
            "-g",
            "--guided"
          ],
          "description": "Specify this flag to allow SAM CLI to guide you through the deployment using guided prompts"
        },
        {
          "names": [
            "-t",
            "--template-file",
            "--template"
          ],
          "description": "AWS SAM template file",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--stack-name"
          ],
          "description": "The name of the AWS CloudFormation stack you're deploying to. If you specify an existing stack, the command updates the stack. If you specify a new stack, the command creates it",
          "takes_arg": true,
          "arg": {
            "name": "cloudformation stack name"
          }
        },
        {
          "names": [
            "--s3-bucket"
          ],
          "description": "The name of the S3 bucket where this command uploads the artifacts that are referenced in your template",
          "takes_arg": true,
          "arg": {
            "name": "bucket name"
          }
        },
        {
          "names": [
            "--image-repository"
          ],
          "description": "ECR repo uri where this command uploads the image artifacts that are referenced in your template",
          "takes_arg": true,
          "arg": {
            "name": "repo URI"
          }
        },
        {
          "names": [
            "--image-repositories",
            ""
          ],
          "description": "Specify mapping of Function Logical ID to ECR Repo uri",
          "takes_arg": true,
          "arg": {
            "name": "mapping",
            "description": "Example: Function_Logical_ID=ECR_Repo_Uri"
          }
        },
        {
          "names": [
            "--force-upload"
          ],
          "description": "Indicates whether to override existing files in the S3 bucket. Specify this flag to upload artifacts even if they match existing artifacts in the S3 bucket"
        },
        {
          "names": [
            "--s3-prefix"
          ],
          "description": "A prefix name that the command adds to the artifacts name when it uploads them to the S3 bucket",
          "takes_arg": true,
          "arg": {
            "name": "prefix",
            "description": "The prefix name is a path name (folder name) for the S3 bucket"
          }
        },
        {
          "names": [
            "--kms-key-id"
          ],
          "description": "The ID of an AWS KMS key that the command uses to encrypt artifacts that are at rest in the S3 bucket",
          "takes_arg": true,
          "arg": {
            "name": "kms key id"
          }
        },
        {
          "names": [
            "--use-json"
          ],
          "description": "Indicates whether to use JSON as the format for the output AWS CloudFormation template. YAML is used by default"
        },
        {
          "names": [
            "--resolve-s3"
          ],
          "description": "Automatically resolve s3 bucket for non-guided deployments. Enabling this option will also create a managed default s3 bucket for you"
        },
        {
          "names": [
            "--metadata"
          ],
          "description": "A map of metadata to attach to ALL the artifacts that are referenced in your template",
          "takes_arg": true,
          "arg": {
            "name": "map"
          }
        },
        {
          "names": [
            "--parameter-overrides"
          ],
          "description": "A string that contains AWS CloudFormation parameter overrides encoded as key=value pairs",
          "takes_arg": true,
          "arg": {
            "name": "override string",
            "description": "For example, 'ParameterKey=KeyPairName,ParameterValue=MyKey ParameterKey=InstanceType,ParameterValue=t1.micro' or 'KeyPairName=MyKey InstanceType=t1.micro'"
          }
        },
        {
          "names": [
            "--signing-profiles"
          ],
          "description": "A string that contains Code Sign configuration parameters",
          "takes_arg": true,
          "arg": {
            "name": "profiles",
            "description": "Example: FunctionOrLayerNameToSign=SigningProfileName:SigningProfileOwner"
          }
        },
        {
          "names": [
            "--no-progressbar"
          ],
          "description": "Does not showcase a progress bar when uploading artifacts to s3"
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Select a specific profile from your credential file to get AWS credentials",
          "takes_arg": true,
          "arg": {
            "name": "profile name",
            "description": "The name of the AWS profile"
          }
        },
        {
          "names": [
            "--region"
          ],
          "description": "Set the AWS Region of the service",
          "takes_arg": true,
          "arg": {
            "name": "region"
          }
        },
        {
          "names": [
            "--debug"
          ],
          "description": "Turn on debug logging to print debug message generated by SAM CLI and display timestamps"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Show help for sam"
        }
      ]
    },
    {
      "name": "delete",
      "description": "Delete an AWS SAM application and the artifacts created by `sam deploy`",
      "options": [
        {
          "names": [
            "--config-env"
          ],
          "description": "The environment name specifying the default parameter values in the configuration file to use",
          "takes_arg": true,
          "arg": {
            "name": "environment"
          }
        },
        {
          "names": [
            "--config-file"
          ],
          "description": "The path and file name of the configuration file containing default parameter values to use",
          "takes_arg": true,
          "arg": {
            "name": "config file"
          }
        },
        {
          "names": [
            "--debug"
          ],
          "description": "Turn on debug logging to print debug message generated by SAM CLI and display timestamps"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Show help for sam"
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Select a specific profile from your credential file to get AWS credentials",
          "takes_arg": true,
          "arg": {
            "name": "profile name",
            "description": "The name of the AWS profile"
          }
        },
        {
          "names": [
            "--region"
          ],
          "description": "Set the AWS Region of the service",
          "takes_arg": true,
          "arg": {
            "name": "region"
          }
        },
        {
          "names": [
            "--stack-name"
          ],
          "description": "The name of the AWS CloudFormation stack you're deploying to. If you specify an existing stack, the command updates the stack. If you specify a new stack, the command creates it",
          "takes_arg": true,
          "arg": {
            "name": "cloudformation stack name"
          }
        },
        {
          "names": [
            "--no-prompts"
          ],
          "description": "Specify this flag to allow SAM CLI to skip through the guided prompts"
        }
      ]
    },
    {
      "name": "logs",
      "description": "Fetch logs for a function",
      "options": [
        {
          "names": [
            "--config-env"
          ],
          "description": "The environment name specifying the default parameter values in the configuration file to use",
          "takes_arg": true,
          "arg": {
            "name": "environment"
          }
        },
        {
          "names": [
            "--config-file"
          ],
          "description": "The path and file name of the configuration file containing default parameter values to use",
          "takes_arg": true,
          "arg": {
            "name": "config file"
          }
        },
        {
          "names": [
            "--stack-name"
          ],
          "description": "The name of the AWS CloudFormation stack you're deploying to. If you specify an existing stack, the command updates the stack. If you specify a new stack, the command creates it",
          "takes_arg": true,
          "arg": {
            "name": "cloudformation stack name"
          }
        },
        {
          "names": [
            "--debug"
          ],
          "description": "Turn on debug logging to print debug message generated by SAM CLI and display timestamps"
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Select a specific profile from your credential file to get AWS credentials",
          "takes_arg": true,
          "arg": {
            "name": "profile name",
            "description": "The name of the AWS profile"
          }
        },
        {
          "names": [
            "--region"
          ],
          "description": "Set the AWS Region of the service",
          "takes_arg": true,
          "arg": {
            "name": "region"
          }
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Show help for sam"
        }
      ]
    },
    {
      "name": "publish",
      "description": "Publish a packaged AWS SAM template to the AWS Serverless Application Repository",
      "options": [
        {
          "names": [
            "--config-env"
          ],
          "description": "The environment name specifying the default parameter values in the configuration file to use",
          "takes_arg": true,
          "arg": {
            "name": "environment"
          }
        },
        {
          "names": [
            "--config-file"
          ],
          "description": "The path and file name of the configuration file containing default parameter values to use",
          "takes_arg": true,
          "arg": {
            "name": "config file"
          }
        },
        {
          "names": [
            "--debug"
          ],
          "description": "Turn on debug logging to print debug message generated by SAM CLI and display timestamps"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Show help for sam"
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Select a specific profile from your credential file to get AWS credentials",
          "takes_arg": true,
          "arg": {
            "name": "profile name",
            "description": "The name of the AWS profile"
          }
        },
        {
          "names": [
            "--region"
          ],
          "description": "Set the AWS Region of the service",
          "takes_arg": true,
          "arg": {
            "name": "region"
          }
        },
        {
          "names": [
            "-t",
            "--template-file",
            "--template"
          ],
          "description": "AWS SAM template file",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--semantic-version"
          ],
          "description": "The value provided here overrides SemanticVersion in the template metadata",
          "takes_arg": true,
          "arg": {
            "name": "text"
          }
        }
      ]
    },
    {
      "name": "traces",
      "description": "[Beta Feature] Fetch AWS X-Ray traces"
    },
    {
      "name": "sync",
      "description": "[Beta Feature] Sync a project to AWS"
    },
    {
      "name": "pipeline",
      "description": "Manage the continuous delivery of the application",
      "subcommands": [
        {
          "name": "init",
          "description": "Generates a CI/CD pipeline configuration file"
        },
        {
          "name": "bootstrap",
          "description": "Generates the required AWS resources to connect your CI/CD system"
        }
      ],
      "options": [
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Show help for sam"
        }
      ]
    }
  ],
  "options": [
    {
      "names": [
        "--debug"
      ],
      "description": "Turn on debug logging to print debug message generated by SAM CLI and display timestamps"
    },
    {
      "names": [
        "--help",
        "-h"
      ],
      "description": "Show help for sam"
    },
    {
      "names": [
        "--version"
      ],
      "description": "Show the version and exit"
    },
    {
      "names": [
        "--info"
      ]
    }
  ]
}
