{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/ApplicationPool",
  "title": "ApplicationPool",
  "type": "object",
  "description": "A complete IIS application pool resource with all configuration settings for worker process isolation and management.",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the application pool.",
      "examples": [
        "DefaultAppPool"
      ]
    },
    "id": {
      "type": "string",
      "description": "The unique identifier of the application pool.",
      "example": "abc123"
    },
    "status": {
      "type": "string",
      "description": "The current status of the application pool.",
      "enum": [
        "started",
        "stopped",
        "starting",
        "stopping"
      ],
      "example": "started"
    },
    "auto_start": {
      "type": "boolean",
      "description": "Whether the application pool starts automatically when IIS starts.",
      "default": true,
      "example": true
    },
    "pipeline_mode": {
      "type": "string",
      "description": "The managed pipeline mode for the application pool.",
      "enum": [
        "integrated",
        "classic"
      ],
      "default": "integrated",
      "example": "integrated"
    },
    "managed_runtime_version": {
      "type": "string",
      "description": "The version of the .NET CLR loaded by the application pool. Empty string for unmanaged code.",
      "examples": [
        "v4.0",
        "v2.0",
        ""
      ]
    },
    "enable_32bit_win64": {
      "type": "boolean",
      "description": "Whether to enable 32-bit applications on 64-bit Windows.",
      "default": false,
      "example": true
    },
    "queue_length": {
      "type": "integer",
      "description": "The maximum number of requests that can be queued for the application pool before requests are rejected.",
      "default": 1000,
      "example": 10
    },
    "cpu": {
      "$ref": "#/components/schemas/CpuSettings"
    },
    "process_model": {
      "$ref": "#/components/schemas/ProcessModel"
    },
    "identity": {
      "$ref": "#/components/schemas/Identity"
    },
    "recycling": {
      "$ref": "#/components/schemas/Recycling"
    },
    "rapid_fail_protection": {
      "$ref": "#/components/schemas/RapidFailProtection"
    },
    "process_orphaning": {
      "$ref": "#/components/schemas/ProcessOrphaning"
    },
    "_links": {
      "$ref": "#/components/schemas/ApplicationPoolLinks"
    }
  }
}