{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-sql-database/json-schema/microsoft-azure-sql-database-elastic-pool-schema.json",
  "title": "ElasticPool",
  "description": "An elastic pool.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-sql-database-elasticpools-api-openapi.yml#/components/schemas/ElasticPool",
  "type": "object",
  "properties": {
    "properties": {
      "$ref": "#/$defs/ElasticPoolProperties"
    },
    "sku": {
      "type": "object",
      "description": "An ARM Resource SKU.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the SKU, typically, a letter + Number code, e.g. P3."
        },
        "tier": {
          "type": "string",
          "description": "The tier or edition of the particular SKU, e.g. Basic, Premium."
        },
        "size": {
          "type": "string",
          "description": "Size of the particular SKU"
        },
        "family": {
          "type": "string",
          "description": "If the service has different generations of hardware, for the same SKU, then that can be captured here."
        },
        "capacity": {
          "type": "integer",
          "format": "int32",
          "description": "Capacity of the particular SKU."
        }
      },
      "required": [
        "name"
      ]
    },
    "kind": {
      "type": "string",
      "description": "Kind of elastic pool. This is metadata used for the Azure portal experience.",
      "readOnly": true
    }
  },
  "allOf": [
    {
      "type": "object",
      "title": "Tracked Resource",
      "description": "The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'",
      "properties": {
        "tags": {
          "type": "object",
          "description": "Resource tags.",
          "additionalProperties": {
            "type": "string"
          },
          "x-ms-mutability": [
            "read",
            "create",
            "update"
          ]
        },
        "location": {
          "type": "string",
          "description": "The geo-location where the resource lives",
          "x-ms-mutability": [
            "read",
            "create"
          ]
        }
      },
      "required": [
        "location"
      ],
      "allOf": [
        {
          "type": "object",
          "title": "Resource",
          "description": "Common fields that are returned in the response for all Azure Resource Manager resources",
          "properties": {
            "id": {
              "type": "string",
              "format": "arm-id",
              "description": "Fully qualified resource ID for the resource. E.g. \"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}\"",
              "readOnly": true
            },
            "name": {
              "type": "string",
              "description": "The name of the resource",
              "readOnly": true
            },
            "type": {
              "type": "string",
              "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"",
              "readOnly": true
            },
            "systemData": {
              "type": "object",
              "description": "Metadata pertaining to creation and last modification of the resource.",
              "properties": {
                "createdBy": {
                  "type": "string",
                  "description": "The identity that created the resource."
                },
                "createdByType": {
                  "type": "string",
                  "description": "The type of identity that created the resource.",
                  "enum": [
                    "User",
                    "Application",
                    "ManagedIdentity",
                    "Key"
                  ],
                  "x-ms-enum": {
                    "name": "createdByType",
                    "modelAsString": true
                  }
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The timestamp of resource creation (UTC)."
                },
                "lastModifiedBy": {
                  "type": "string",
                  "description": "The identity that last modified the resource."
                },
                "lastModifiedByType": {
                  "type": "string",
                  "description": "The type of identity that last modified the resource.",
                  "enum": [
                    "User",
                    "Application",
                    "ManagedIdentity",
                    "Key"
                  ],
                  "x-ms-enum": {
                    "name": "createdByType",
                    "modelAsString": true
                  }
                },
                "lastModifiedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The timestamp of resource last modification (UTC)"
                }
              },
              "readOnly": true
            }
          },
          "x-ms-azure-resource": true
        }
      ]
    }
  ],
  "$defs": {
    "ElasticPoolPerDatabaseSettings": {
      "type": "object",
      "description": "Per database settings of an elastic pool.",
      "properties": {
        "minCapacity": {
          "type": "number",
          "format": "double",
          "description": "The minimum capacity all databases are guaranteed."
        },
        "maxCapacity": {
          "type": "number",
          "format": "double",
          "description": "The maximum capacity any one database can consume."
        },
        "autoPauseDelay": {
          "type": "integer",
          "format": "int32",
          "description": "Auto Pause Delay for per database within pool"
        }
      }
    },
    "ElasticPoolProperties": {
      "type": "object",
      "description": "Properties of an elastic pool",
      "properties": {
        "state": {
          "type": "string",
          "description": "The state of the elastic pool.",
          "enum": [
            "Creating",
            "Ready",
            "Disabled"
          ],
          "x-ms-enum": {
            "name": "ElasticPoolState",
            "modelAsString": true,
            "values": [
              {
                "name": "Creating",
                "value": "Creating",
                "description": "Creating"
              },
              {
                "name": "Ready",
                "value": "Ready",
                "description": "Ready"
              },
              {
                "name": "Disabled",
                "value": "Disabled",
                "description": "Disabled"
              }
            ]
          }
        },
        "creationDate": {
          "type": "string",
          "format": "date-time",
          "description": "The creation date of the elastic pool (ISO8601 format).",
          "readOnly": true
        },
        "maxSizeBytes": {
          "type": "integer",
          "format": "int64",
          "description": "The storage limit for the database elastic pool in bytes."
        },
        "minCapacity": {
          "type": "number",
          "format": "double",
          "description": "Minimal capacity that serverless pool will not shrink below, if not paused"
        },
        "perDatabaseSettings": {
          "$ref": "#/$defs/ElasticPoolPerDatabaseSettings"
        },
        "zoneRedundant": {
          "type": "boolean",
          "description": "Whether or not this elastic pool is zone redundant, which means the replicas of this elastic pool will be spread across multiple availability zones."
        },
        "licenseType": {
          "type": "string",
          "description": "The license type to apply for this elastic pool.",
          "enum": [
            "LicenseIncluded",
            "BasePrice"
          ],
          "x-ms-enum": {
            "name": "ElasticPoolLicenseType",
            "modelAsString": true,
            "values": [
              {
                "name": "LicenseIncluded",
                "value": "LicenseIncluded",
                "description": "LicenseIncluded"
              },
              {
                "name": "BasePrice",
                "value": "BasePrice",
                "description": "BasePrice"
              }
            ]
          }
        },
        "maintenanceConfigurationId": {
          "type": "string",
          "description": "Maintenance configuration id assigned to the elastic pool. This configuration defines the period when the maintenance updates will will occur."
        },
        "highAvailabilityReplicaCount": {
          "type": "integer",
          "format": "int32",
          "description": "The number of secondary replicas associated with the Business Critical, Premium, or Hyperscale edition elastic pool that are used to provide high availability. Applicable only to Hyperscale elastic pools."
        },
        "autoPauseDelay": {
          "type": "integer",
          "format": "int32",
          "description": "Time in minutes after which elastic pool is automatically paused. A value of -1 means that automatic pause is disabled"
        },
        "preferredEnclaveType": {
          "type": "string",
          "description": "Type of enclave requested on the database i.e. Default or VBS enclaves.",
          "enum": [
            "Default",
            "VBS"
          ],
          "x-ms-enum": {
            "name": "AlwaysEncryptedEnclaveType",
            "modelAsString": true,
            "values": [
              {
                "name": "Default",
                "value": "Default",
                "description": "Default"
              },
              {
                "name": "VBS",
                "value": "VBS",
                "description": "VBS"
              }
            ]
          }
        },
        "availabilityZone": {
          "type": "string",
          "description": "Specifies the availability zone the database is pinned to.",
          "enum": [
            "NoPreference",
            "1",
            "2",
            "3"
          ],
          "x-ms-enum": {
            "name": "AvailabilityZoneType",
            "modelAsString": true,
            "values": [
              {
                "name": "NoPreference",
                "value": "NoPreference",
                "description": "NoPreference"
              },
              {
                "name": "1",
                "value": "1",
                "description": "1"
              },
              {
                "name": "2",
                "value": "2",
                "description": "2"
              },
              {
                "name": "3",
                "value": "3",
                "description": "3"
              }
            ]
          }
        }
      }
    }
  }
}