{
  "name": "spring",
  "description": "The Spring Boot CLI is a command line tool that you can use to bootstrap a new project from start.spring.io or encode a password",
  "subcommands": [
    {
      "name": "init",
      "description": "Initialize a new project using Spring Initializr",
      "options": [
        {
          "names": [
            "-a",
            "---artifact-id"
          ],
          "description": "Project coordinates",
          "takes_arg": true,
          "arg": {
            "name": "Name"
          }
        },
        {
          "names": [
            "-b",
            "--boot-version"
          ],
          "description": "Spring Boot version",
          "takes_arg": true,
          "arg": {
            "name": "Version"
          }
        },
        {
          "names": [
            "--build"
          ],
          "description": "Build system to use",
          "takes_arg": true,
          "arg": {
            "name": "System",
            "suggestions": [
              "maven",
              "gradle"
            ]
          }
        },
        {
          "names": [
            "-d",
            "--dependencies"
          ],
          "description": "Comma-separated list of dependency identifiers to include in the generated project",
          "takes_arg": true,
          "arg": {
            "name": "Dependencies",
            "is_variadic": true
          }
        },
        {
          "names": [
            "--description"
          ],
          "description": "Project description",
          "takes_arg": true,
          "arg": {
            "name": "description"
          }
        },
        {
          "names": [
            "-f",
            "--force"
          ],
          "description": "Force overwrite of existing files"
        },
        {
          "names": [
            "--format"
          ],
          "description": "Format of the generated content",
          "takes_arg": true,
          "arg": {
            "name": "Format",
            "suggestions": [
              "build",
              "project"
            ]
          }
        },
        {
          "names": [
            "-g",
            "--group-id"
          ],
          "description": "Project coordinates",
          "takes_arg": true,
          "arg": {
            "name": "Group ID"
          }
        },
        {
          "names": [
            "-j",
            "--java-version"
          ],
          "description": "Language level",
          "takes_arg": true,
          "arg": {
            "name": "Version"
          }
        },
        {
          "names": [
            "--list"
          ],
          "description": "List the capabilities of the service"
        },
        {
          "names": [
            "-n",
            "--name"
          ],
          "description": "Project name",
          "takes_arg": true,
          "arg": {
            "name": "Name"
          }
        },
        {
          "names": [
            "-p",
            "--packaging"
          ],
          "description": "Project packaging",
          "takes_arg": true,
          "arg": {
            "name": "Packaging",
            "suggestions": [
              "jar",
              "war"
            ]
          }
        },
        {
          "names": [
            "--package-name"
          ],
          "description": "Package name",
          "takes_arg": true,
          "arg": {
            "name": "Name"
          }
        },
        {
          "names": [
            "-t",
            "--type"
          ],
          "description": "Project type",
          "takes_arg": true,
          "arg": {
            "name": "Type",
            "suggestions": [
              "gradle-build",
              "gradle-project",
              "gradle-project-kotlin",
              "maven-build",
              "maven-project"
            ]
          }
        },
        {
          "names": [
            "--target"
          ],
          "description": "URL of the service to use",
          "takes_arg": true,
          "arg": {
            "name": "URL"
          }
        },
        {
          "names": [
            "-v",
            "--version"
          ],
          "description": "Project version",
          "takes_arg": true,
          "arg": {
            "name": "Version"
          }
        },
        {
          "names": [
            "-x",
            "--extract"
          ],
          "description": "Extract the project archive. Inferred if a location is specified without an extension"
        }
      ]
    },
    {
      "name": "encodepassword",
      "description": "Encode a password for use with Spring Security",
      "options": [
        {
          "names": [
            "-a",
            "--algorithm"
          ],
          "description": "The algorithm to use",
          "takes_arg": true,
          "arg": {
            "name": "Algorithm",
            "suggestions": [
              "default",
              "bcrypt",
              "pbkdf2"
            ]
          }
        }
      ],
      "args": [
        {
          "name": "Password"
        }
      ]
    },
    {
      "name": "shell",
      "description": "Start a nested shell"
    },
    {
      "name": "help",
      "description": "Show help for other commands",
      "args": [
        {
          "name": "Command"
        }
      ]
    }
  ],
  "options": [
    {
      "names": [
        "--help"
      ],
      "description": "Show help for spring"
    },
    {
      "names": [
        "--version"
      ],
      "description": "Get spring CLI version"
    },
    {
      "names": [
        "--debug"
      ],
      "description": "Print additional status information for the command you are running"
    }
  ]
}
