{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-cdn/json-schema/microsoft-azure-cdn-origin-group-update-parameters-schema.json",
  "title": "OriginGroupUpdateParameters",
  "description": "Origin group properties needed for origin group creation or update.",
  "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/OriginGroupUpdateParameters",
  "type": "object",
  "properties": {
    "properties": {
      "$ref": "#/$defs/OriginGroupUpdatePropertiesParameters",
      "description": "The JSON object that contains the properties of the origin group.",
      "x-ms-client-flatten": true
    }
  },
  "$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
        }
      }
    },
    "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": []
        }
      }
    }
  }
}