{
  "description": "Validate, lint or bundle an OpenAPI specification. Overlays, Arazzo workflows, sanitize, optimize, join and the other spec commands are left out.",
  "name": "openapi",
  "subcommands": [
    {
      "name": "spec",
      "subcommands": [
        {
          "name": "validate",
          "description": "Validate a specification",
          "options": [
            {
              "names": [
                "-v"
              ],
              "description": "Verbose"
            }
          ],
          "args": [
            {
              "name": "spec",
              "isOptional": true,
              "template": "filepaths"
            }
          ]
        },
        {
          "name": "lint",
          "description": "Lint a specification",
          "options": [
            {
              "names": [
                "--format",
                "-f"
              ],
              "description": "Output format",
              "args": {
                "name": "format",
                "isOptional": false,
                "suggestions": [
                  {
                    "name": "text",
                    "description": "Text"
                  },
                  {
                    "name": "json",
                    "description": "JSON"
                  }
                ]
              }
            },
            {
              "names": [
                "--config",
                "-c"
              ],
              "description": "Lint configuration",
              "args": {
                "name": "config",
                "isOptional": false,
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--ruleset",
                "-r"
              ],
              "description": "Default is all.",
              "args": {
                "name": "ruleset",
                "description": "Default is all.",
                "isOptional": false
              }
            },
            {
              "names": [
                "--disable",
                "-d"
              ],
              "description": "Disabled rules",
              "args": {
                "name": "disable",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            },
            {
              "names": [
                "--summary"
              ],
              "description": "Per-rule summary"
            },
            {
              "names": [
                "--fix"
              ],
              "description": "Writes the non-interactive fixes back to the specification file.",
              "isDangerous": true
            },
            {
              "names": [
                "--dry-run"
              ],
              "description": "Only meaningful together with --fix."
            }
          ],
          "args": [
            {
              "name": "spec",
              "isOptional": true,
              "template": "filepaths"
            }
          ]
        },
        {
          "name": "bundle",
          "description": "Bundle external references",
          "options": [
            {
              "names": [
                "-w"
              ],
              "description": "Rewrite the input file in place",
              "isDangerous": true
            },
            {
              "names": [
                "--naming"
              ],
              "description": "Naming strategy",
              "args": {
                "name": "naming",
                "isOptional": false,
                "suggestions": [
                  {
                    "name": "filepath",
                    "description": "File path (default)"
                  },
                  {
                    "name": "counter",
                    "description": "Counter"
                  }
                ]
              }
            }
          ],
          "args": [
            {
              "name": "spec",
              "isOptional": true,
              "template": "filepaths"
            },
            {
              "name": "output",
              "description": "Omit to print to stdout.",
              "isOptional": true,
              "template": "filepaths"
            }
          ]
        }
      ]
    }
  ]
}
