{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-cdn/json-schema/microsoft-azure-cdn-custom-domain-list-result-schema.json",
  "title": "CustomDomainListResult",
  "description": "The response of a CustomDomain list operation.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-cdn-custom-domains-api-openapi.yml#/components/schemas/CustomDomainListResult",
  "type": "object",
  "properties": {
    "value": {
      "type": "array",
      "description": "The CustomDomain items on this page",
      "items": {
        "$ref": "#/$defs/CustomDomain"
      }
    },
    "nextLink": {
      "type": "string",
      "format": "uri",
      "description": "The link to the next page of items"
    }
  },
  "required": [
    "value"
  ],
  "$defs": {
    "CertificateSource": {
      "type": "string",
      "description": "Defines the source of the SSL certificate.",
      "enum": [
        "AzureKeyVault",
        "Cdn"
      ],
      "x-ms-enum": {
        "name": "CertificateSource",
        "modelAsString": true,
        "values": [
          {
            "name": "AzureKeyVault",
            "value": "AzureKeyVault"
          },
          {
            "name": "Cdn",
            "value": "Cdn"
          }
        ]
      }
    },
    "CustomDomain": {
      "type": "object",
      "description": "Friendly domain name mapping to the endpoint hostname that the customer provides for branding purposes, e.g. www.contoso.com.",
      "properties": {
        "properties": {
          "$ref": "#/$defs/CustomDomainProperties",
          "description": "The JSON object that contains the properties of the custom domain to create.",
          "x-ms-client-flatten": true
        }
      },
      "allOf": [
        {
          "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource"
        }
      ]
    },
    "CustomDomainHttpsParameters": {
      "type": "object",
      "description": "The JSON object that contains the properties to secure a custom domain.",
      "properties": {
        "certificateSource": {
          "$ref": "#/$defs/CertificateSource",
          "description": "Defines the source of the SSL certificate."
        },
        "protocolType": {
          "$ref": "#/$defs/ProtocolType",
          "description": "Defines the TLS extension protocol that is used for secure delivery."
        },
        "minimumTlsVersion": {
          "$ref": "#/$defs/MinimumTlsVersion",
          "description": "TLS protocol version that will be used for Https"
        }
      },
      "required": [
        "certificateSource",
        "protocolType"
      ]
    },
    "CustomDomainProperties": {
      "type": "object",
      "description": "The JSON object that contains the properties of the custom domain to create.",
      "properties": {
        "hostName": {
          "type": "string",
          "description": "The host name of the custom domain. Must be a domain name."
        },
        "resourceState": {
          "$ref": "#/$defs/CustomDomainResourceState",
          "description": "Resource status of the custom domain.",
          "readOnly": true
        },
        "customHttpsProvisioningState": {
          "$ref": "#/$defs/CustomHttpsProvisioningState",
          "description": "Provisioning status of the custom domain.",
          "readOnly": true
        },
        "customHttpsProvisioningSubstate": {
          "$ref": "#/$defs/CustomHttpsProvisioningSubstate",
          "description": "Provisioning substate shows the progress of custom HTTPS enabling/disabling process step by step.",
          "readOnly": true
        },
        "customHttpsParameters": {
          "$ref": "#/$defs/CustomDomainHttpsParameters",
          "description": "Certificate parameters for securing custom HTTPS"
        },
        "validationData": {
          "type": "string",
          "description": "Special validation or data may be required when delivering CDN to some regions due to local compliance reasons. E.g. ICP license number of a custom domain is required to deliver content in China."
        },
        "provisioningState": {
          "$ref": "#/$defs/CustomHttpsProvisioningState",
          "description": "Provisioning status of Custom Https of the custom domain.",
          "readOnly": true
        }
      },
      "required": [
        "hostName"
      ]
    },
    "CustomDomainResourceState": {
      "type": "string",
      "description": "Resource status of the custom domain.",
      "enum": [
        "Creating",
        "Active",
        "Deleting"
      ],
      "x-ms-enum": {
        "name": "CustomDomainResourceState",
        "modelAsString": true,
        "values": [
          {
            "name": "Creating",
            "value": "Creating"
          },
          {
            "name": "Active",
            "value": "Active"
          },
          {
            "name": "Deleting",
            "value": "Deleting"
          }
        ]
      }
    },
    "CustomHttpsProvisioningState": {
      "type": "string",
      "description": "Provisioning status of the custom domain.",
      "enum": [
        "Enabling",
        "Enabled",
        "Disabling",
        "Disabled",
        "Failed"
      ],
      "x-ms-enum": {
        "name": "CustomHttpsProvisioningState",
        "modelAsString": true,
        "values": [
          {
            "name": "Enabling",
            "value": "Enabling"
          },
          {
            "name": "Enabled",
            "value": "Enabled"
          },
          {
            "name": "Disabling",
            "value": "Disabling"
          },
          {
            "name": "Disabled",
            "value": "Disabled"
          },
          {
            "name": "Failed",
            "value": "Failed"
          }
        ]
      }
    },
    "CustomHttpsProvisioningSubstate": {
      "type": "string",
      "description": "Provisioning substate shows the progress of custom HTTPS enabling/disabling process step by step.",
      "enum": [
        "SubmittingDomainControlValidationRequest",
        "PendingDomainControlValidationREquestApproval",
        "DomainControlValidationRequestApproved",
        "DomainControlValidationRequestRejected",
        "DomainControlValidationRequestTimedOut",
        "IssuingCertificate",
        "DeployingCertificate",
        "CertificateDeployed",
        "DeletingCertificate",
        "CertificateDeleted"
      ],
      "x-ms-enum": {
        "name": "CustomHttpsProvisioningSubstate",
        "modelAsString": true,
        "values": [
          {
            "name": "SubmittingDomainControlValidationRequest",
            "value": "SubmittingDomainControlValidationRequest"
          },
          {
            "name": "PendingDomainControlValidationREquestApproval",
            "value": "PendingDomainControlValidationREquestApproval"
          },
          {
            "name": "DomainControlValidationRequestApproved",
            "value": "DomainControlValidationRequestApproved"
          },
          {
            "name": "DomainControlValidationRequestRejected",
            "value": "DomainControlValidationRequestRejected"
          },
          {
            "name": "DomainControlValidationRequestTimedOut",
            "value": "DomainControlValidationRequestTimedOut"
          },
          {
            "name": "IssuingCertificate",
            "value": "IssuingCertificate"
          },
          {
            "name": "DeployingCertificate",
            "value": "DeployingCertificate"
          },
          {
            "name": "CertificateDeployed",
            "value": "CertificateDeployed"
          },
          {
            "name": "DeletingCertificate",
            "value": "DeletingCertificate"
          },
          {
            "name": "CertificateDeleted",
            "value": "CertificateDeleted"
          }
        ]
      }
    },
    "MinimumTlsVersion": {
      "type": "string",
      "description": "TLS protocol version that will be used for Https",
      "enum": [
        "None",
        "TLS10",
        "TLS12"
      ],
      "x-ms-enum": {
        "name": "MinimumTlsVersion",
        "modelAsString": false
      }
    },
    "ProtocolType": {
      "type": "string",
      "description": "Defines the TLS extension protocol that is used for secure delivery.",
      "enum": [
        "ServerNameIndication",
        "IPBased"
      ],
      "x-ms-enum": {
        "name": "ProtocolType",
        "modelAsString": true,
        "values": [
          {
            "name": "ServerNameIndication",
            "value": "ServerNameIndication"
          },
          {
            "name": "IPBased",
            "value": "IPBased"
          }
        ]
      }
    }
  }
}