{
  "id": "azure-cli",
  "name": "Azure CLI",
  "homepage": "https://learn.microsoft.com/cli/azure/",
  "description": "A set of commands used to create and manage Azure resources.",
  "icon": "theSVG:azure",
  "executables": [
    "az"
  ],
  "dotfiles": {
    "paths": [
      "~/.azure/config",
      "~/.azure/clouds.config"
    ],
    "exclude": [],
    "secret": [
      "~/.azure/msal_token_cache.json",
      "~/.azure/msal_token_cache.bin",
      "~/.azure/service_principal_entries.json",
      "~/.azure/service_principal_entries.bin"
    ],
    "side_effect": false,
    "machine_lines": [
      {
        "file": "~/.azure/config",
        "match": {
          "prefix": [
            "log_dir"
          ]
        },
        "scope": "backup"
      }
    ],
    "secret_paths": [
      {
        "file": "~/.azure/config",
        "match": {
          "prefix": [
            "key",
            "sas_token",
            "connection_string",
            "access_key",
            "storage_key"
          ]
        }
      }
    ]
  },
  "commands": {
    "format": 1,
    "label": "Azure CLI",
    "description": "Create, list and delete resource groups. The rest of the az command tree (thousands of commands) is not modeled.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": false,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "group",
          "create"
        ],
        "label": "Create a resource group",
        "source": [
          {
            "id": "ref",
            "kind": "manual",
            "url": "https://learn.microsoft.com/en-us/cli/azure/group",
            "revision": "2026-10-27",
            "evidence": "az group create --location\n                --name --resource-group\n                [--managed-by]\n                [--tags]\n--location -l\nLocation. Values from: az account list-locations. You can configure the default location using az configure --defaults location=<location>.\n--name --resource-group -g -n\nName of the new resource group.\n--managed-by\nThe ID of the resource that manages this resource group.\n--tags\nSpace-separated tags: key[=value] [key[=value] ...]. Use \"\" to clear existing tags.\naz group create -l westus -n MyResourceGroup\n--output -o\nOutput format.\nAccepted values:\njson, jsonc, none, table, tsv, yaml, yamlc\n--query\nJMESPath query string. See http://jmespath.org/ for more information and examples.\n--subscription\nName or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.\n"
          }
        ],
        "field": [
          {
            "id": "name",
            "label": "Resource group",
            "type": "string",
            "option": [
              "--name",
              "--resource-group",
              "-g",
              "-n"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "location",
            "label": "Location",
            "description": "Values from az account list-locations.",
            "type": "string",
            "option": [
              "--location",
              "-l"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "tags",
            "label": "Tags",
            "description": "Space-separated key[=value] pairs.",
            "type": "string",
            "option": [
              "--tags"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "managed_by",
            "label": "Managed by",
            "description": "ID of the resource that manages this group.",
            "type": "string",
            "option": [
              "--managed-by"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "output",
            "label": "Output format",
            "type": "enum",
            "option": [
              "--output",
              "-o"
            ],
            "choices": [
              {
                "value": "json",
                "label": "JSON"
              },
              {
                "value": "jsonc",
                "label": "Colored JSON"
              },
              {
                "value": "none",
                "label": "None"
              },
              {
                "value": "table",
                "label": "Table"
              },
              {
                "value": "tsv",
                "label": "TSV"
              },
              {
                "value": "yaml",
                "label": "YAML"
              },
              {
                "value": "yamlc",
                "label": "Colored YAML"
              }
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "subscription",
            "label": "Subscription",
            "description": "Name or ID.",
            "type": "string",
            "option": [
              "--subscription"
            ],
            "sources": [
              "ref"
            ]
          }
        ],
        "task": [
          {
            "id": "create",
            "label": "Create",
            "fields": [
              "name",
              "location",
              "tags",
              "output"
            ],
            "required": [
              "name",
              "location"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "name",
              "location",
              "tags"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "managed_by",
              "output",
              "subscription"
            ]
          }
        ]
      },
      {
        "path": [
          "group",
          "delete"
        ],
        "label": "Delete a resource group",
        "source": [
          {
            "id": "ref",
            "kind": "manual",
            "url": "https://learn.microsoft.com/en-us/cli/azure/group",
            "revision": "2026-10-27",
            "evidence": "az group delete --name --resource-group\n                [--force-deletion-types {Microsoft.Compute/virtualMachineScaleSets, Microsoft.Compute/virtualMachines, Microsoft.Databricks/workspaces}]\n                [--no-wait]\n                [--yes]\n--name --resource-group -g -n\nName of resource group. You can configure the default group using az configure --defaults group=<name>.\n--force-deletion-types -f\nThe resource types you want to force delete.\nMicrosoft.Compute/virtualMachineScaleSets, Microsoft.Compute/virtualMachines, Microsoft.Databricks/workspaces\n--no-wait\nDo not wait for the long-running operation to finish.\n--yes -y\nDo not prompt for confirmation.\naz group delete -n MyResourceGroup\n--output -o\nOutput format.\nAccepted values:\njson, jsonc, none, table, tsv, yaml, yamlc\n--query\nJMESPath query string. See http://jmespath.org/ for more information and examples.\n--subscription\nName or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.\n"
          }
        ],
        "field": [
          {
            "id": "name",
            "label": "Resource group",
            "type": "string",
            "option": [
              "--name",
              "--resource-group",
              "-g",
              "-n"
            ],
            "effect": "delete",
            "sources": [
              "ref"
            ]
          },
          {
            "id": "force_types",
            "label": "Force-delete resource types",
            "type": "enum",
            "option": [
              "--force-deletion-types",
              "-f"
            ],
            "effect": "delete",
            "choices": [
              {
                "value": "Microsoft.Compute/virtualMachineScaleSets",
                "label": "Scale sets"
              },
              {
                "value": "Microsoft.Compute/virtualMachines",
                "label": "Virtual machines"
              },
              {
                "value": "Microsoft.Databricks/workspaces",
                "label": "Databricks workspaces"
              }
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "no_wait",
            "label": "Do not wait",
            "type": "boolean",
            "option": [
              "--no-wait"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "yes",
            "label": "Do not ask for confirmation",
            "type": "boolean",
            "option": [
              "--yes",
              "-y"
            ],
            "effect": "delete",
            "sources": [
              "ref"
            ]
          },
          {
            "id": "subscription",
            "label": "Subscription",
            "description": "Name or ID.",
            "type": "string",
            "option": [
              "--subscription"
            ],
            "sources": [
              "ref"
            ]
          }
        ],
        "task": [
          {
            "id": "delete",
            "label": "Delete",
            "fields": [
              "name",
              "no_wait",
              "yes"
            ],
            "required": [
              "name"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "name",
              "no_wait",
              "yes"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "force_types",
              "subscription"
            ]
          }
        ]
      },
      {
        "path": [
          "group",
          "list"
        ],
        "label": "List resource groups",
        "source": [
          {
            "id": "ref",
            "kind": "manual",
            "url": "https://learn.microsoft.com/en-us/cli/azure/group",
            "revision": "2026-10-27",
            "evidence": "az group list [--tag]\n--tag\nA single tag in 'key[=value]' format. Use \"\" to clear existing tags.\naz group list --query \"[?location=='westus']\"\n--output -o\nOutput format.\nAccepted values:\njson, jsonc, none, table, tsv, yaml, yamlc\n--query\nJMESPath query string. See http://jmespath.org/ for more information and examples.\n--subscription\nName or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.\n"
          }
        ],
        "field": [
          {
            "id": "tag",
            "label": "Tag filter",
            "description": "key[=value]",
            "type": "string",
            "option": [
              "--tag"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "query",
            "label": "JMESPath query",
            "type": "string",
            "option": [
              "--query"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "output",
            "label": "Output format",
            "type": "enum",
            "option": [
              "--output",
              "-o"
            ],
            "choices": [
              {
                "value": "json",
                "label": "JSON"
              },
              {
                "value": "jsonc",
                "label": "Colored JSON"
              },
              {
                "value": "none",
                "label": "None"
              },
              {
                "value": "table",
                "label": "Table"
              },
              {
                "value": "tsv",
                "label": "TSV"
              },
              {
                "value": "yaml",
                "label": "YAML"
              },
              {
                "value": "yamlc",
                "label": "Colored YAML"
              }
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "subscription",
            "label": "Subscription",
            "description": "Name or ID.",
            "type": "string",
            "option": [
              "--subscription"
            ],
            "sources": [
              "ref"
            ]
          }
        ],
        "task": [
          {
            "id": "list",
            "label": "List",
            "fields": [
              "tag",
              "query",
              "output"
            ],
            "required": []
          },
          {
            "id": "table",
            "label": "List as a table",
            "set": {
              "output": [
                "table"
              ]
            },
            "fields": [
              "tag",
              "output"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "tag",
              "query",
              "output"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "subscription"
            ]
          }
        ]
      }
    ]
  }
}
