{
  "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",
  "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",
      "isPersistent": true
    }
  ],
  "subcommands": [
    {
      "name": "init",
      "description": "Initialize a new project using Spring Initializr",
      "options": [
        {
          "names": [
            "-a",
            "---artifact-id"
          ],
          "description": "Project coordinates",
          "args": [
            {
              "name": "Name"
            }
          ]
        },
        {
          "names": [
            "-b",
            "--boot-version"
          ],
          "description": "Spring Boot version",
          "args": [
            {
              "name": "Version"
            }
          ]
        },
        {
          "names": [
            "--build"
          ],
          "description": "Build system to use",
          "args": [
            {
              "name": "System",
              "suggestions": [
                "maven",
                "gradle"
              ]
            }
          ]
        },
        {
          "names": [
            "-d",
            "--dependencies"
          ],
          "description": "Comma-separated list of dependency identifiers to include in the generated project",
          "args": [
            {
              "name": "Dependencies",
              "isVariadic": true
            }
          ]
        },
        {
          "names": [
            "--description"
          ],
          "description": "Project description",
          "args": [
            {
              "name": "description"
            }
          ]
        },
        {
          "names": [
            "-f",
            "--force"
          ],
          "description": "Force overwrite of existing files",
          "isDangerous": true
        },
        {
          "names": [
            "--format"
          ],
          "description": "Format of the generated content",
          "args": [
            {
              "name": "Format",
              "suggestions": [
                "build",
                "project"
              ]
            }
          ]
        },
        {
          "names": [
            "-g",
            "--group-id"
          ],
          "description": "Project coordinates",
          "args": [
            {
              "name": "Group ID"
            }
          ]
        },
        {
          "names": [
            "-j",
            "--java-version"
          ],
          "description": "Language level",
          "args": [
            {
              "name": "Version"
            }
          ]
        },
        {
          "names": [
            "--list"
          ],
          "description": "List the capabilities of the service"
        },
        {
          "names": [
            "-n",
            "--name"
          ],
          "description": "Project name",
          "args": [
            {
              "name": "Name"
            }
          ]
        },
        {
          "names": [
            "-p",
            "--packaging"
          ],
          "description": "Project packaging",
          "args": [
            {
              "name": "Packaging",
              "suggestions": [
                "jar",
                "war"
              ]
            }
          ]
        },
        {
          "names": [
            "--package-name"
          ],
          "description": "Package name",
          "args": [
            {
              "name": "Name"
            }
          ]
        },
        {
          "names": [
            "-t",
            "--type"
          ],
          "description": "Project type",
          "args": [
            {
              "name": "Type",
              "suggestions": [
                "gradle-build",
                "gradle-project",
                "gradle-project-kotlin",
                "maven-build",
                "maven-project"
              ]
            }
          ]
        },
        {
          "names": [
            "--target"
          ],
          "description": "URL of the service to use",
          "args": [
            {
              "name": "URL"
            }
          ]
        },
        {
          "names": [
            "-v",
            "--version"
          ],
          "description": "Project version",
          "args": [
            {
              "name": "Version"
            }
          ]
        },
        {
          "names": [
            "-x",
            "--extract"
          ],
          "description": "Extract the project archive. Inferred if a location is specified without an extension"
        }
      ],
      "args": [
        {
          "name": "location",
          "description": "Target directory or archive name.",
          "isOptional": true
        }
      ]
    },
    {
      "name": "encodepassword",
      "description": "Encode a password for use with Spring Security",
      "options": [
        {
          "names": [
            "-a",
            "--algorithm"
          ],
          "description": "The algorithm to use",
          "args": [
            {
              "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",
          "template": "help"
        }
      ]
    }
  ]
}
