{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-cdn/json-schema/microsoft-azure-cdn-route-update-parameters-schema.json",
  "title": "RouteUpdateParameters",
  "description": "The domain JSON object required for domain creation or update.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_superseded/microsoft-azure-cdn-routes-api-openapi.yml#/components/schemas/RouteUpdateParameters",
  "type": "object",
  "properties": {
    "properties": {
      "$ref": "#/$defs/RouteUpdatePropertiesParameters",
      "description": "The JSON object that contains the properties of the domain to create.",
      "x-ms-client-flatten": true
    }
  },
  "$defs": {
    "AFDEndpointProtocols": {
      "type": "string",
      "description": "Supported protocols for the customer's endpoint.",
      "enum": [
        "Http",
        "Https"
      ],
      "x-ms-enum": {
        "name": "AFDEndpointProtocols",
        "modelAsString": true,
        "values": [
          {
            "name": "Http",
            "value": "Http"
          },
          {
            "name": "Https",
            "value": "Https"
          }
        ]
      }
    },
    "ActivatedResourceReference": {
      "type": "object",
      "description": "Reference to another resource along with its state.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID."
        },
        "isActive": {
          "type": "boolean",
          "description": "Whether the resource is active or inactive",
          "readOnly": true
        }
      }
    },
    "AfdQueryStringCachingBehavior": {
      "type": "string",
      "description": "Defines how Frontdoor caches requests that include query strings. You can ignore any query strings when caching, ignore specific query strings, cache every request with a unique URL, or cache specific query strings.",
      "enum": [
        "IgnoreQueryString",
        "UseQueryString",
        "IgnoreSpecifiedQueryStrings",
        "IncludeSpecifiedQueryStrings"
      ],
      "x-ms-enum": {
        "name": "AfdQueryStringCachingBehavior",
        "modelAsString": true,
        "values": [
          {
            "name": "IgnoreQueryString",
            "value": "IgnoreQueryString"
          },
          {
            "name": "UseQueryString",
            "value": "UseQueryString"
          },
          {
            "name": "IgnoreSpecifiedQueryStrings",
            "value": "IgnoreSpecifiedQueryStrings"
          },
          {
            "name": "IncludeSpecifiedQueryStrings",
            "value": "IncludeSpecifiedQueryStrings"
          }
        ]
      }
    },
    "AfdRouteCacheConfiguration": {
      "type": "object",
      "description": "Caching settings for a caching-type route. To disable caching, do not provide a cacheConfiguration object.",
      "properties": {
        "queryStringCachingBehavior": {
          "$ref": "#/$defs/AfdQueryStringCachingBehavior",
          "description": "Defines how Frontdoor caches requests that include query strings. You can ignore any query strings when caching, ignore specific query strings, cache every request with a unique URL, or cache specific query strings."
        },
        "queryParameters": {
          "type": "string",
          "description": "query parameters to include or exclude (comma separated)."
        },
        "compressionSettings": {
          "$ref": "#/$defs/CompressionSettings",
          "description": "compression settings."
        }
      }
    },
    "CompressionSettings": {
      "type": "object",
      "description": "settings for compression.",
      "properties": {
        "contentTypesToCompress": {
          "type": "array",
          "description": "List of content types on which compression applies. The value should be a valid MIME type.",
          "items": {
            "type": "string"
          }
        },
        "isCompressionEnabled": {
          "type": "boolean",
          "description": "Indicates whether content compression is enabled on AzureFrontDoor. Default value is false. If compression is enabled, content will be served as compressed if user requests for a compressed version. Content won't be compressed on AzureFrontDoor when requested content is smaller than 1 byte or larger than 1 MB."
        }
      }
    },
    "EnabledState": {
      "type": "string",
      "description": "Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled'",
      "enum": [
        "Enabled",
        "Disabled"
      ],
      "x-ms-enum": {
        "name": "EnabledState",
        "modelAsString": true,
        "values": [
          {
            "name": "Enabled",
            "value": "Enabled"
          },
          {
            "name": "Disabled",
            "value": "Disabled"
          }
        ]
      }
    },
    "ResourceReference": {
      "type": "object",
      "description": "Reference to another resource.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID."
        }
      }
    },
    "RouteUpdatePropertiesParameters": {
      "type": "object",
      "description": "The JSON object that contains the properties of the domain to create.",
      "properties": {
        "endpointName": {
          "type": "string",
          "description": "The name of the endpoint which holds the route.",
          "readOnly": true
        },
        "customDomains": {
          "type": "array",
          "description": "Domains referenced by this endpoint.",
          "items": {
            "$ref": "#/$defs/ActivatedResourceReference"
          }
        },
        "originGroup": {
          "$ref": "#/$defs/ResourceReference",
          "description": "A reference to the origin group."
        },
        "originPath": {
          "type": "string",
          "description": "A directory path on the origin that AzureFrontDoor can use to retrieve content from, e.g. contoso.cloudapp.net/originpath."
        },
        "ruleSets": {
          "type": "array",
          "description": "rule sets referenced by this endpoint.",
          "items": {
            "$ref": "#/$defs/ResourceReference"
          }
        },
        "supportedProtocols": {
          "type": "array",
          "description": "List of supported protocols for this route.",
          "default": [
            "Http",
            "Https"
          ],
          "items": {
            "$ref": "#/$defs/AFDEndpointProtocols"
          }
        },
        "patternsToMatch": {
          "type": "array",
          "description": "The route patterns of the rule.",
          "items": {
            "type": "string"
          }
        },
        "cacheConfiguration": {
          "$ref": "#/$defs/AfdRouteCacheConfiguration",
          "description": "The caching configuration for this route. To disable caching, do not provide a cacheConfiguration object."
        },
        "forwardingProtocol": {
          "type": "string",
          "description": "Protocol this rule will use when forwarding traffic to backends.",
          "default": "MatchRequest",
          "enum": [
            "HttpOnly",
            "HttpsOnly",
            "MatchRequest"
          ],
          "x-ms-enum": {
            "name": "ForwardingProtocol",
            "modelAsString": true,
            "values": [
              {
                "name": "HttpOnly",
                "value": "HttpOnly"
              },
              {
                "name": "HttpsOnly",
                "value": "HttpsOnly"
              },
              {
                "name": "MatchRequest",
                "value": "MatchRequest"
              }
            ]
          }
        },
        "linkToDefaultDomain": {
          "type": "string",
          "description": "whether this route will be linked to the default endpoint domain.",
          "default": "Disabled",
          "enum": [
            "Enabled",
            "Disabled"
          ],
          "x-ms-enum": {
            "name": "LinkToDefaultDomain",
            "modelAsString": true,
            "values": [
              {
                "name": "Enabled",
                "value": "Enabled"
              },
              {
                "name": "Disabled",
                "value": "Disabled"
              }
            ]
          }
        },
        "httpsRedirect": {
          "type": "string",
          "description": "Whether to automatically redirect HTTP traffic to HTTPS traffic. Note that this is a easy way to set up this rule and it will be the first rule that gets executed.",
          "default": "Disabled",
          "enum": [
            "Enabled",
            "Disabled"
          ],
          "x-ms-enum": {
            "name": "HttpsRedirect",
            "modelAsString": true,
            "values": [
              {
                "name": "Enabled",
                "value": "Enabled"
              },
              {
                "name": "Disabled",
                "value": "Disabled"
              }
            ]
          }
        },
        "enabledState": {
          "$ref": "#/$defs/EnabledState",
          "description": "Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled'"
        }
      }
    }
  }
}