{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-cdn/json-schema/microsoft-azure-cdn-origin-group-list-result-schema.json",
  "title": "OriginGroupListResult",
  "description": "The response of a OriginGroup list operation.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_superseded/microsoft-azure-cdn-origingroups-api-openapi.yml#/components/schemas/OriginGroupListResult",
  "type": "object",
  "properties": {
    "value": {
      "type": "array",
      "description": "The OriginGroup items on this page",
      "items": {
        "$ref": "#/$defs/OriginGroup"
      }
    },
    "nextLink": {
      "type": "string",
      "format": "uri",
      "description": "The link to the next page of items"
    }
  },
  "required": [
    "value"
  ],
  "$defs": {
    "HealthProbeParameters": {
      "type": "object",
      "description": "The JSON object that contains the properties to send health probes to origin.",
      "properties": {
        "probePath": {
          "type": "string",
          "description": "The path relative to the origin that is used to determine the health of the origin."
        },
        "probeRequestType": {
          "$ref": "#/$defs/HealthProbeRequestType",
          "description": "The type of health probe request that is made."
        },
        "probeProtocol": {
          "$ref": "#/$defs/ProbeProtocol",
          "description": "Protocol to use for health probe."
        },
        "probeIntervalInSeconds": {
          "type": "integer",
          "format": "int32",
          "description": "The number of seconds between health probes.Default is 240sec.",
          "minimum": 1,
          "maximum": 255
        }
      }
    },
    "HealthProbeRequestType": {
      "type": "string",
      "description": "The type of health probe request that is made.",
      "enum": [
        "NotSet",
        "GET",
        "HEAD"
      ],
      "x-ms-enum": {
        "name": "HealthProbeRequestType",
        "modelAsString": false
      }
    },
    "HttpErrorRangeParameters": {
      "type": "object",
      "description": "The JSON object that represents the range for http status codes",
      "properties": {
        "begin": {
          "type": "integer",
          "format": "int32",
          "description": "The inclusive start of the http status code range.",
          "minimum": 100,
          "maximum": 999
        },
        "end": {
          "type": "integer",
          "format": "int32",
          "description": "The inclusive end of the http status code range.",
          "minimum": 100,
          "maximum": 999
        }
      }
    },
    "OriginGroup": {
      "type": "object",
      "description": "Origin group comprising of origins is used for load balancing to origins when the content cannot be served from CDN.",
      "properties": {
        "properties": {
          "$ref": "#/$defs/OriginGroupProperties",
          "description": "The JSON object that contains the properties of the origin group.",
          "x-ms-client-flatten": true
        }
      },
      "allOf": [
        {
          "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource"
        }
      ]
    },
    "OriginGroupProperties": {
      "type": "object",
      "description": "The JSON object that contains the properties of the origin group.",
      "properties": {
        "resourceState": {
          "$ref": "#/$defs/OriginGroupResourceState",
          "description": "Resource status of the origin group.",
          "readOnly": true
        },
        "provisioningState": {
          "$ref": "#/$defs/OriginGroupProvisioningState",
          "description": "Provisioning status of the origin group.",
          "readOnly": true
        }
      },
      "allOf": [
        {
          "$ref": "#/$defs/OriginGroupUpdatePropertiesParameters"
        }
      ]
    },
    "OriginGroupProvisioningState": {
      "type": "string",
      "description": "Provisioning status of the origin group.",
      "enum": [
        "Succeeded",
        "Failed",
        "Updating",
        "Deleting",
        "Creating"
      ],
      "x-ms-enum": {
        "name": "OriginGroupProvisioningState",
        "modelAsString": true,
        "values": [
          {
            "name": "Succeeded",
            "value": "Succeeded"
          },
          {
            "name": "Failed",
            "value": "Failed"
          },
          {
            "name": "Updating",
            "value": "Updating"
          },
          {
            "name": "Deleting",
            "value": "Deleting"
          },
          {
            "name": "Creating",
            "value": "Creating"
          }
        ]
      }
    },
    "OriginGroupResourceState": {
      "type": "string",
      "description": "Resource status of the origin group.",
      "enum": [
        "Creating",
        "Active",
        "Deleting"
      ],
      "x-ms-enum": {
        "name": "OriginGroupResourceState",
        "modelAsString": true,
        "values": [
          {
            "name": "Creating",
            "value": "Creating"
          },
          {
            "name": "Active",
            "value": "Active"
          },
          {
            "name": "Deleting",
            "value": "Deleting"
          }
        ]
      }
    },
    "OriginGroupUpdatePropertiesParameters": {
      "type": "object",
      "description": "The JSON object that contains the properties of the origin group.",
      "properties": {
        "healthProbeSettings": {
          "$ref": "#/$defs/HealthProbeParameters",
          "description": "Health probe settings to the origin that is used to determine the health of the origin."
        },
        "origins": {
          "type": "array",
          "description": "The source of the content being delivered via CDN within given origin group.",
          "items": {
            "$ref": "#/$defs/ResourceReference"
          }
        },
        "trafficRestorationTimeToHealedOrNewEndpointsInMinutes": {
          "type": "integer",
          "format": "int32",
          "description": "Time in minutes to shift the traffic to the endpoint gradually when an unhealthy endpoint comes healthy or a new endpoint is added. Default is 10 mins. This property is currently not supported.",
          "minimum": 0,
          "maximum": 50
        },
        "responseBasedOriginErrorDetectionSettings": {
          "$ref": "#/$defs/ResponseBasedOriginErrorDetectionParameters",
          "description": "The JSON object that contains the properties to determine origin health using real requests/responses. This property is currently not supported."
        }
      }
    },
    "ProbeProtocol": {
      "type": "string",
      "description": "Protocol to use for health probe.",
      "enum": [
        "NotSet",
        "Http",
        "Https"
      ],
      "x-ms-enum": {
        "name": "ProbeProtocol",
        "modelAsString": false
      }
    },
    "ResourceReference": {
      "type": "object",
      "description": "Reference to another resource.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID."
        }
      }
    },
    "ResponseBasedDetectedErrorTypes": {
      "type": "string",
      "description": "Type of response errors for real user requests for which origin will be deemed unhealthy",
      "enum": [
        "None",
        "TcpErrorsOnly",
        "TcpAndHttpErrors"
      ],
      "x-ms-enum": {
        "name": "ResponseBasedDetectedErrorTypes",
        "modelAsString": false
      }
    },
    "ResponseBasedOriginErrorDetectionParameters": {
      "type": "object",
      "description": "The JSON object that contains the properties to determine origin health using real requests/responses.",
      "properties": {
        "responseBasedDetectedErrorTypes": {
          "$ref": "#/$defs/ResponseBasedDetectedErrorTypes",
          "description": "Type of response errors for real user requests for which origin will be deemed unhealthy"
        },
        "responseBasedFailoverThresholdPercentage": {
          "type": "integer",
          "format": "int32",
          "description": "The percentage of failed requests in the sample where failover should trigger.",
          "minimum": 0,
          "maximum": 100
        },
        "httpErrorRanges": {
          "type": "array",
          "description": "The list of Http status code ranges that are considered as server errors for origin and it is marked as unhealthy.",
          "items": {
            "$ref": "#/$defs/HttpErrorRangeParameters"
          },
          "x-ms-identifiers": []
        }
      }
    }
  }
}