{
  "name": "eb",
  "description": "AWS Elastic Beanstalk",
  "subcommands": [
    {
      "name": "init",
      "description": "Initialize a new AWS Elastic Beanstalk application",
      "options": [
        {
          "names": [
            "-i",
            "--interactive"
          ],
          "description": "Forces EB CLI to prompt you to provide a value for every eb init command option"
        },
        {
          "names": [
            "-k",
            "--keyname"
          ],
          "description": "The name of the AWS EC2 key pair",
          "takes_arg": true,
          "arg": {
            "name": "keyname"
          }
        },
        {
          "names": [
            "--modules"
          ],
          "description": "List of child directories to initialize"
        },
        {
          "names": [
            "-p",
            "--platform"
          ],
          "description": "The platform version to use",
          "takes_arg": true,
          "arg": {
            "name": "plataform-version"
          }
        },
        {
          "names": [
            "--tags"
          ],
          "description": "List of tags to apply to the application",
          "takes_arg": true,
          "arg": {
            "name": "key=value"
          }
        }
      ],
      "args": [
        {
          "name": "name",
          "description": "The name of the application"
        }
      ]
    },
    {
      "name": "deploy",
      "description": "Deploys the application source bundle from the initialized project directory to the running application",
      "options": [
        {
          "names": [
            "-l",
            "--label"
          ],
          "description": "Specify a label to use for the version that the EB CLI creates",
          "takes_arg": true,
          "arg": {
            "name": "version-label",
            "description": "The label to use for the version"
          }
        },
        {
          "names": [
            "--env-group-suffix"
          ],
          "description": "Group name to append to the environment name",
          "takes_arg": true,
          "arg": {
            "name": "groupname",
            "description": "The group name to append to the environment name"
          }
        },
        {
          "names": [
            "-m",
            "--message"
          ],
          "description": "The description for the application version, enclosed in double quotation marks",
          "takes_arg": true,
          "arg": {
            "name": "version-description",
            "description": "Description for the application version"
          }
        },
        {
          "names": [
            "--modules"
          ],
          "description": "List of components to update. Only for Compose Environments",
          "takes_arg": true,
          "arg": {
            "name": "component",
            "description": "Component to update"
          }
        },
        {
          "names": [
            "-p",
            "--platform"
          ],
          "description": "Preprocess and validate the environment manifest and configuration files in the source bundle"
        },
        {
          "names": [
            "--source"
          ],
          "description": "CodeCommit repository and branch",
          "takes_arg": true,
          "arg": {
            "name": "repository-name/repository-branch",
            "description": "The name of the CodeCommit repository and branch"
          }
        },
        {
          "names": [
            "--staged"
          ],
          "description": "Deploy files staged in the git index instead of the HEAD commit"
        },
        {
          "names": [
            "--timeout"
          ],
          "description": "The number of minutes before the command times out",
          "takes_arg": true,
          "arg": {
            "name": "minutes",
            "description": "Minutes before timeout"
          }
        },
        {
          "names": [
            "--version"
          ],
          "description": "An existing application version to deploy",
          "takes_arg": true,
          "arg": {
            "name": "version-label",
            "description": "Label of the existing version to deploy"
          }
        }
      ],
      "args": [
        {
          "name": "environment-name"
        }
      ]
    },
    {
      "name": "abort",
      "description": "Abort the current running process"
    },
    {
      "name": "clone",
      "description": "Clones an environment to a new environment so that both have identical environment settings",
      "options": [
        {
          "names": [
            "-n",
            "--clone_name"
          ],
          "description": "Desired name for the cloned environment",
          "takes_arg": true,
          "arg": {
            "name": "string",
            "description": "The name for the cloned environment"
          }
        },
        {
          "names": [
            "-c",
            "--cname"
          ],
          "description": "Desired CNAME prefix for the cloned environment",
          "takes_arg": true,
          "arg": {
            "name": "cname",
            "description": "CNAME prefix"
          }
        },
        {
          "names": [
            "--envvars"
          ],
          "description": "Environment properties in a comma-separated list with the format name=value"
        },
        {
          "names": [
            "--exact"
          ],
          "description": "Prevents Elastic Beanstalk from updating the solution stack version for the new clone environment to the most recent version available"
        },
        {
          "names": [
            "--scale"
          ],
          "description": "The number of instances to run in the clone environment when it is launched",
          "takes_arg": true,
          "arg": {
            "name": "number",
            "description": "Number of instances"
          }
        },
        {
          "names": [
            "--tags"
          ],
          "description": "Tags for the resources in your environment in a comma-separated list with the format name=value",
          "takes_arg": true,
          "arg": {
            "name": "name=value",
            "description": "Tags for the resources in your environment"
          }
        },
        {
          "names": [
            "--timeout"
          ],
          "description": "The number of minutes before the command times out"
        }
      ],
      "args": [
        {
          "name": "environment-name",
          "description": "The name of the environment to clone"
        }
      ]
    },
    {
      "name": "open",
      "description": "Opens the public URL of your website in the default browser",
      "args": [
        {
          "name": "environment-name",
          "description": "The name of the environment to open"
        }
      ]
    },
    {
      "name": "list",
      "description": "List environments",
      "options": [
        {
          "names": [
            "-a",
            "--all"
          ],
          "description": "List all environments from all applications"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Provides more detailed information about all environments, including instances"
        }
      ]
    },
    {
      "name": "printenv",
      "description": "Prints all the environment properties in the command window",
      "args": [
        {
          "name": "environment-name",
          "description": "The name of the environment to print"
        }
      ]
    },
    {
      "name": "ssh",
      "description": "Connect to a Linux Amazon EC2 instance in your environment using Secure Shell",
      "options": [
        {
          "names": [
            "-i",
            "--instance"
          ],
          "description": "The ID of the instance to connect to"
        },
        {
          "names": [
            "-n",
            "--number"
          ],
          "description": "The number of the instance to connect to by number"
        },
        {
          "names": [
            "-o",
            "--keep_open"
          ],
          "description": "Leave port 22 open on the security group after the SSH session ends"
        },
        {
          "names": [
            "--command"
          ],
          "description": "Execute a shell command on the specified instance instead of starting an SSH session"
        },
        {
          "names": [
            "--custom"
          ],
          "description": "Specify an SSH command to use instead of 'ssh -i keyfile'. Do not include the remote user and hostname"
        },
        {
          "names": [
            "--setup"
          ],
          "description": "Change the key pair assigned to the environment's instances"
        },
        {
          "names": [
            "--force"
          ],
          "description": "Open port 22 to incoming traffic from 0.0.0.0/0 in the environment's security group, even if the security group is already configured for SSH"
        },
        {
          "names": [
            "--timeout"
          ],
          "description": "Set number of minutes before the command times out",
          "takes_arg": true,
          "arg": {
            "name": "minutes",
            "description": "Number of minutes before timeout"
          }
        }
      ],
      "args": [
        {
          "name": "environment-name",
          "description": "The name of the environment to connect to"
        }
      ]
    },
    {
      "name": "use",
      "description": "Sets the specified environment as the default environment",
      "options": [
        {
          "names": [
            "-r",
            "--region"
          ],
          "description": "Change the region in which you create environments",
          "takes_arg": true,
          "arg": {
            "name": "region",
            "description": "The region to use"
          }
        },
        {
          "names": [
            "--source"
          ],
          "description": "CodeCommit repository and branch",
          "takes_arg": true,
          "arg": {
            "name": "codecommit/repository-name/repository-branch",
            "description": "The name of the CodeCommit repository and branch"
          }
        }
      ],
      "args": [
        {
          "name": "environment-name",
          "description": "The name of the environment to use"
        }
      ]
    }
  ]
}
