{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure/json-schema/microsoft-azure-agent-pool-schema.json",
  "title": "AgentPool",
  "description": "Agent pool resource.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-agent-pools-api-openapi.yml#/components/schemas/AgentPool",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "readOnly": true,
      "description": "Resource ID."
    },
    "name": {
      "type": "string",
      "readOnly": true,
      "description": "Resource name."
    },
    "type": {
      "type": "string",
      "readOnly": true,
      "description": "Resource type."
    },
    "properties": {
      "$ref": "#/$defs/ManagedClusterAgentPoolProfile"
    }
  },
  "$defs": {
    "ManagedClusterAgentPoolProfile": {
      "type": "object",
      "description": "Profile for the container service agent pool.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Unique name of the agent pool profile in the context of the subscription and resource group.",
          "pattern": "^[a-z][a-z0-9]{0,11}$"
        },
        "count": {
          "type": "integer",
          "description": "Number of agents (VMs) to host docker containers."
        },
        "vmSize": {
          "type": "string",
          "description": "The size of the agent VMs."
        },
        "osDiskSizeGB": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2048,
          "description": "OS disk size in GB for the agent pool VMs."
        },
        "osDiskType": {
          "type": "string",
          "enum": [
            "Managed",
            "Ephemeral"
          ],
          "description": "The OS disk type to be used for machines in the agent pool."
        },
        "osType": {
          "type": "string",
          "enum": [
            "Linux",
            "Windows"
          ],
          "default": "Linux",
          "description": "The operating system type."
        },
        "osSKU": {
          "type": "string",
          "enum": [
            "Ubuntu",
            "AzureLinux",
            "CBLMariner",
            "Windows2019",
            "Windows2022"
          ],
          "description": "Specifies the OS SKU."
        },
        "maxPods": {
          "type": "integer",
          "description": "The maximum number of pods that can run on a node."
        },
        "mode": {
          "type": "string",
          "enum": [
            "System",
            "User"
          ],
          "description": "The mode of an agent pool."
        },
        "type": {
          "type": "string",
          "enum": [
            "VirtualMachineScaleSets",
            "AvailabilitySet"
          ],
          "default": "VirtualMachineScaleSets",
          "description": "The type of agent pool."
        },
        "availabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of availability zones to use for nodes (e.g., [\"1\", \"2\", \"3\"])."
        },
        "enableAutoScaling": {
          "type": "boolean",
          "description": "Whether to enable auto-scaler."
        },
        "minCount": {
          "type": "integer",
          "description": "The minimum number of nodes for auto-scaling."
        },
        "maxCount": {
          "type": "integer",
          "description": "The maximum number of nodes for auto-scaling."
        },
        "nodeLabels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The node labels to be persisted across all nodes in the agent pool."
        },
        "nodeTaints": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The taints added to new nodes during node pool create and scale."
        },
        "upgradeSettings": {
          "type": "object",
          "description": "Settings for upgrading the agentpool.",
          "properties": {
            "maxSurge": {
              "type": "string",
              "description": "The maximum number or percentage of nodes that are surged during upgrade (e.g., \"1\" or \"33%\")."
            }
          }
        }
      },
      "required": [
        "name"
      ]
    }
  }
}