{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "info": {
    "title": "Domains API Client",
    "version": "2015-04-01",
    "x-apisguru-categories": [
      "cloud"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.DomainRegistration/stable/2015-04-01/Domains.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "web-Domains",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "securityDefinitions": {
    "azure_auth": {
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "description": "Azure Active Directory OAuth2 Flow",
      "flow": "implicit",
      "scopes": {
        "user_impersonation": "impersonate your user account"
      },
      "type": "oauth2"
    }
  },
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "parameters": {
    "apiVersionParameter": {
      "description": "API Version",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string"
    },
    "resourceGroupNameParameter": {
      "description": "Name of the resource group to which the resource belongs.",
      "in": "path",
      "maxLength": 90,
      "minLength": 1,
      "name": "resourceGroupName",
      "pattern": "^[-\\w\\._\\(\\)]+[^\\.]$",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "subscriptionIdParameter": {
      "description": "Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000).",
      "in": "path",
      "name": "subscriptionId",
      "required": true,
      "type": "string"
    }
  },
  "paths": {
    "/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/checkDomainAvailability": {
      "post": {
        "description": "Check if a domain is available for registration.",
        "operationId": "Domains_CheckAvailability",
        "parameters": [
          {
            "description": "Name of the domain.",
            "in": "body",
            "name": "identifier",
            "required": true,
            "schema": {
              "description": "Identifies an object.",
              "properties": {
                "name": {
                  "description": "Name of the object.",
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DomainAvailablilityCheckResult"
            }
          }
        },
        "summary": "Check if a domain is available for registration.",
        "tags": [
          "Domains"
        ]
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/domains": {
      "get": {
        "description": "Get all domains in a subscription.",
        "operationId": "Domains_List",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DomainCollection"
            }
          }
        },
        "summary": "Get all domains in a subscription.",
        "tags": [
          "Domains"
        ],
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/generateSsoRequest": {
      "post": {
        "description": "Generate a single sign-on request for the domain management portal.",
        "operationId": "Domains_GetControlCenterSsoRequest",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DomainControlCenterSsoRequest"
            }
          }
        },
        "summary": "Generate a single sign-on request for the domain management portal.",
        "tags": [
          "Domains"
        ]
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.DomainRegistration/listDomainRecommendations": {
      "post": {
        "description": "Get domain name recommendations based on keywords.",
        "operationId": "Domains_ListRecommendations",
        "parameters": [
          {
            "description": "Search parameters for domain name recommendations.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DomainRecommendationSearchParameters"
            }
          },
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/NameIdentifierCollection"
            }
          }
        },
        "summary": "Get domain name recommendations based on keywords.",
        "tags": [
          "Domains"
        ],
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains": {
      "get": {
        "description": "Get all domains in a resource group.",
        "operationId": "Domains_ListByResourceGroup",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DomainCollection"
            }
          }
        },
        "summary": "Get all domains in a resource group.",
        "tags": [
          "Domains"
        ],
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}": {
      "delete": {
        "description": "Delete a domain.",
        "operationId": "Domains_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "description": "Name of the domain.",
            "in": "path",
            "name": "domainName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Specify <code>true</code> to delete the domain immediately. The default is <code>false</code> which deletes the domain after 24 hours.",
            "in": "query",
            "name": "forceHardDeleteDomain",
            "type": "boolean"
          },
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted domain."
          },
          "204": {
            "description": "Domain does not exist in Azure database probably because it has already been deleted"
          }
        },
        "summary": "Delete a domain.",
        "tags": [
          "Domains"
        ]
      },
      "get": {
        "description": "Get a domain.",
        "operationId": "Domains_Get",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "description": "Name of the domain.",
            "in": "path",
            "name": "domainName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Domain"
            }
          }
        },
        "summary": "Get a domain.",
        "tags": [
          "Domains"
        ]
      },
      "patch": {
        "description": "Creates or updates a domain.",
        "operationId": "Domains_Update",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "description": "Name of the domain.",
            "in": "path",
            "name": "domainName",
            "pattern": "[a-zA-Z0-9][a-zA-Z0-9\\.-]+",
            "required": true,
            "type": "string"
          },
          {
            "description": "Domain registration information.",
            "in": "body",
            "name": "domain",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DomainPatchResource"
            }
          },
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Domain purchase was successful.",
            "schema": {
              "$ref": "#/definitions/Domain"
            }
          },
          "202": {
            "description": "Domain purchase is in progress.",
            "schema": {
              "$ref": "#/definitions/Domain"
            }
          }
        },
        "summary": "Creates or updates a domain.",
        "tags": [
          "Domains"
        ]
      },
      "put": {
        "description": "Creates or updates a domain.",
        "operationId": "Domains_CreateOrUpdate",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "description": "Name of the domain.",
            "in": "path",
            "name": "domainName",
            "pattern": "[a-zA-Z0-9][a-zA-Z0-9\\.-]+",
            "required": true,
            "type": "string"
          },
          {
            "description": "Domain registration information.",
            "in": "body",
            "name": "domain",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Domain"
            }
          },
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Domain purchase was successful.",
            "schema": {
              "$ref": "#/definitions/Domain"
            }
          },
          "202": {
            "description": "Domain purchase is in progress.",
            "schema": {
              "$ref": "#/definitions/Domain"
            }
          }
        },
        "summary": "Creates or updates a domain.",
        "tags": [
          "Domains"
        ],
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/domainOwnershipIdentifiers": {
      "get": {
        "description": "Lists domain ownership identifiers.",
        "operationId": "Domains_ListOwnershipIdentifiers",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "description": "Name of domain.",
            "in": "path",
            "name": "domainName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DomainOwnershipIdentifierCollection"
            }
          }
        },
        "summary": "Lists domain ownership identifiers.",
        "tags": [
          "Domains"
        ],
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/domainOwnershipIdentifiers/{name}": {
      "delete": {
        "description": "Delete ownership identifier for domain",
        "operationId": "Domains_DeleteOwnershipIdentifier",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "description": "Name of domain.",
            "in": "path",
            "name": "domainName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of identifier.",
            "in": "path",
            "name": "name",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted domain ownership identifier."
          },
          "204": {
            "description": "Domain ownership identifier does not exist."
          }
        },
        "summary": "Delete ownership identifier for domain",
        "tags": [
          "Domains"
        ]
      },
      "get": {
        "description": "Get ownership identifier for domain",
        "operationId": "Domains_GetOwnershipIdentifier",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "description": "Name of domain.",
            "in": "path",
            "name": "domainName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of identifier.",
            "in": "path",
            "name": "name",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DomainOwnershipIdentifier"
            }
          }
        },
        "summary": "Get ownership identifier for domain",
        "tags": [
          "Domains"
        ]
      },
      "patch": {
        "description": "Creates an ownership identifier for a domain or updates identifier details for an existing identifer",
        "operationId": "Domains_UpdateOwnershipIdentifier",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "description": "Name of domain.",
            "in": "path",
            "name": "domainName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of identifier.",
            "in": "path",
            "name": "name",
            "required": true,
            "type": "string"
          },
          {
            "description": "A JSON representation of the domain ownership properties.",
            "in": "body",
            "name": "domainOwnershipIdentifier",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DomainOwnershipIdentifier"
            }
          },
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DomainOwnershipIdentifier"
            }
          }
        },
        "summary": "Creates an ownership identifier for a domain or updates identifier details for an existing identifer",
        "tags": [
          "Domains"
        ]
      },
      "put": {
        "description": "Creates an ownership identifier for a domain or updates identifier details for an existing identifer",
        "operationId": "Domains_CreateOrUpdateOwnershipIdentifier",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "description": "Name of domain.",
            "in": "path",
            "name": "domainName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of identifier.",
            "in": "path",
            "name": "name",
            "required": true,
            "type": "string"
          },
          {
            "description": "A JSON representation of the domain ownership properties.",
            "in": "body",
            "name": "domainOwnershipIdentifier",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DomainOwnershipIdentifier"
            }
          },
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DomainOwnershipIdentifier"
            }
          }
        },
        "summary": "Creates an ownership identifier for a domain or updates identifier details for an existing identifer",
        "tags": [
          "Domains"
        ]
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/renew": {
      "post": {
        "description": "Renew a domain.",
        "operationId": "Domains_Renew",
        "parameters": [
          {
            "$ref": "#/parameters/resourceGroupNameParameter"
          },
          {
            "description": "Name of the domain.",
            "in": "path",
            "name": "domainName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/subscriptionIdParameter"
          },
          {
            "$ref": "#/parameters/apiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Domain renewal was successful."
          },
          "202": {
            "description": "Domain renewal in progress."
          },
          "204": {
            "description": "Domain does not exist."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Renew a domain.",
        "tags": [
          "Domains"
        ],
        "x-ms-examples": {
          "Renew an App Service Domain": {
            "parameters": {
              "api-version": "2015-04-01",
              "domainName": "example.com",
              "resourceGroupName": "RG",
              "subscriptionId": "3dddfa4f-cedf-4dc0-ba29-b6d1a69ab545"
            },
            "responses": {
              "200": {},
              "202": {},
              "204": {}
            }
          }
        }
      }
    }
  },
  "definitions": {
    "Address": {
      "description": "Address information for domain registration.",
      "properties": {
        "address1": {
          "description": "First line of an Address.",
          "type": "string"
        },
        "address2": {
          "description": "The second line of the Address. Optional.",
          "type": "string"
        },
        "city": {
          "description": "The city for the address.",
          "type": "string"
        },
        "country": {
          "description": "The country for the address.",
          "type": "string"
        },
        "postalCode": {
          "description": "The postal code for the address.",
          "type": "string"
        },
        "state": {
          "description": "The state or province for the address.",
          "type": "string"
        }
      },
      "required": [
        "address1",
        "city",
        "country",
        "postalCode",
        "state"
      ],
      "type": "object"
    },
    "Contact": {
      "description": "Contact information for domain registration. If 'Domain Privacy' option is not selected then the contact information is made publicly available through the Whois \ndirectories as per ICANN requirements.",
      "properties": {
        "addressMailing": {
          "$ref": "#/definitions/Address",
          "description": "Mailing address."
        },
        "email": {
          "description": "Email address.",
          "type": "string"
        },
        "fax": {
          "description": "Fax number.",
          "type": "string"
        },
        "jobTitle": {
          "description": "Job title.",
          "type": "string"
        },
        "nameFirst": {
          "description": "First name.",
          "type": "string"
        },
        "nameLast": {
          "description": "Last name.",
          "type": "string"
        },
        "nameMiddle": {
          "description": "Middle name.",
          "type": "string"
        },
        "organization": {
          "description": "Organization contact belongs to.",
          "type": "string"
        },
        "phone": {
          "description": "Phone number.",
          "type": "string"
        }
      },
      "required": [
        "email",
        "nameFirst",
        "nameLast",
        "phone"
      ],
      "type": "object"
    },
    "Domain": {
      "allOf": [
        {
          "description": "Azure resource. This resource is tracked in Azure Resource Manager",
          "properties": {
            "id": {
              "description": "Resource Id.",
              "readOnly": true,
              "type": "string"
            },
            "kind": {
              "description": "Kind of resource.",
              "type": "string"
            },
            "location": {
              "description": "Resource Location.",
              "type": "string"
            },
            "name": {
              "description": "Resource Name.",
              "readOnly": true,
              "type": "string"
            },
            "tags": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Resource tags.",
              "type": "object"
            },
            "type": {
              "description": "Resource type.",
              "readOnly": true,
              "type": "string"
            }
          },
          "required": [
            "location"
          ],
          "x-ms-azure-resource": true
        }
      ],
      "description": "Information about a domain.",
      "properties": {
        "properties": {
          "description": "Domain resource specific properties",
          "properties": {
            "authCode": {
              "type": "string",
              "x-ms-mutability": [
                "create",
                "read"
              ]
            },
            "autoRenew": {
              "default": true,
              "description": "<code>true</code> if the domain should be automatically renewed; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "consent": {
              "$ref": "#/definitions/DomainPurchaseConsent",
              "description": "Legal agreement consent.",
              "x-ms-mutability": [
                "create"
              ]
            },
            "contactAdmin": {
              "$ref": "#/definitions/Contact",
              "description": "Administrative contact.",
              "x-ms-mutability": [
                "create"
              ]
            },
            "contactBilling": {
              "$ref": "#/definitions/Contact",
              "description": "Billing contact.",
              "x-ms-mutability": [
                "create"
              ]
            },
            "contactRegistrant": {
              "$ref": "#/definitions/Contact",
              "description": "Registrant contact.",
              "x-ms-mutability": [
                "create"
              ]
            },
            "contactTech": {
              "$ref": "#/definitions/Contact",
              "description": "Technical contact.",
              "x-ms-mutability": [
                "create"
              ]
            },
            "createdTime": {
              "description": "Domain creation timestamp.",
              "format": "date-time",
              "readOnly": true,
              "type": "string"
            },
            "dnsType": {
              "description": "Current DNS type",
              "enum": [
                "AzureDns",
                "DefaultDomainRegistrarDns"
              ],
              "type": "string",
              "x-ms-enum": {
                "modelAsString": false,
                "name": "DnsType"
              }
            },
            "dnsZoneId": {
              "description": "Azure DNS Zone to use",
              "type": "string"
            },
            "domainNotRenewableReasons": {
              "description": "Reasons why domain is not renewable.",
              "items": {
                "enum": [
                  "RegistrationStatusNotSupportedForRenewal",
                  "ExpirationNotInRenewalTimeRange",
                  "SubscriptionNotActive"
                ],
                "type": "string"
              },
              "readOnly": true,
              "type": "array"
            },
            "expirationTime": {
              "description": "Domain expiration timestamp.",
              "format": "date-time",
              "readOnly": true,
              "type": "string"
            },
            "lastRenewedTime": {
              "description": "Timestamp when the domain was renewed last time.",
              "format": "date-time",
              "readOnly": true,
              "type": "string"
            },
            "managedHostNames": {
              "description": "All hostnames derived from the domain and assigned to Azure resources.",
              "items": {
                "$ref": "#/definitions/HostName"
              },
              "readOnly": true,
              "type": "array"
            },
            "nameServers": {
              "description": "Name servers.",
              "items": {
                "type": "string"
              },
              "readOnly": true,
              "type": "array"
            },
            "privacy": {
              "description": "<code>true</code> if domain privacy is enabled for this domain; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "provisioningState": {
              "description": "Domain provisioning state.",
              "enum": [
                "Succeeded",
                "Failed",
                "Canceled",
                "InProgress",
                "Deleting"
              ],
              "readOnly": true,
              "type": "string",
              "x-ms-enum": {
                "modelAsString": false,
                "name": "ProvisioningState"
              }
            },
            "readyForDnsRecordManagement": {
              "description": "<code>true</code> if Azure can assign this domain to App Service apps; otherwise, <code>false</code>. This value will be <code>true</code> if domain registration status is active and \n it is hosted on name servers Azure has programmatic access to.",
              "readOnly": true,
              "type": "boolean"
            },
            "registrationStatus": {
              "description": "Domain registration status.",
              "enum": [
                "Active",
                "Awaiting",
                "Cancelled",
                "Confiscated",
                "Disabled",
                "Excluded",
                "Expired",
                "Failed",
                "Held",
                "Locked",
                "Parked",
                "Pending",
                "Reserved",
                "Reverted",
                "Suspended",
                "Transferred",
                "Unknown",
                "Unlocked",
                "Unparked",
                "Updated",
                "JsonConverterFailed"
              ],
              "readOnly": true,
              "type": "string",
              "x-ms-enum": {
                "modelAsString": false,
                "name": "DomainStatus"
              }
            },
            "targetDnsType": {
              "description": "Target DNS type (would be used for migration)",
              "enum": [
                "AzureDns",
                "DefaultDomainRegistrarDns"
              ],
              "type": "string",
              "x-ms-enum": {
                "modelAsString": false,
                "name": "DnsType"
              }
            }
          },
          "required": [
            "contactAdmin",
            "contactBilling",
            "contactRegistrant",
            "contactTech",
            "consent"
          ],
          "x-ms-client-flatten": true
        }
      },
      "type": "object"
    },
    "DomainAvailablilityCheckResult": {
      "description": "Domain availability check result.",
      "properties": {
        "available": {
          "description": "<code>true</code> if domain can be purchased using CreateDomain API; otherwise, <code>false</code>.",
          "type": "boolean"
        },
        "domainType": {
          "description": "Valid values are Regular domain: Azure will charge the full price of domain registration, SoftDeleted: Purchasing this domain will simply restore it and this operation will not cost anything.",
          "enum": [
            "Regular",
            "SoftDeleted"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "DomainType"
          }
        },
        "name": {
          "description": "Name of the domain.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DomainCollection": {
      "description": "Collection of domains.",
      "properties": {
        "nextLink": {
          "description": "Link to next page of resources.",
          "readOnly": true,
          "type": "string"
        },
        "value": {
          "description": "Collection of resources.",
          "items": {
            "$ref": "#/definitions/Domain"
          },
          "type": "array"
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    },
    "DomainControlCenterSsoRequest": {
      "description": "Single sign-on request information for domain management.",
      "properties": {
        "postParameterKey": {
          "description": "Post parameter key.",
          "readOnly": true,
          "type": "string"
        },
        "postParameterValue": {
          "description": "Post parameter value. Client should use 'application/x-www-form-urlencoded' encoding for this value.",
          "readOnly": true,
          "type": "string"
        },
        "url": {
          "description": "URL where the single sign-on request is to be made.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "DomainOwnershipIdentifier": {
      "allOf": [
        {
          "description": "Azure proxy only resource. This resource is not tracked by Azure Resource Manager.",
          "properties": {
            "id": {
              "description": "Resource Id.",
              "readOnly": true,
              "type": "string"
            },
            "kind": {
              "description": "Kind of resource.",
              "type": "string"
            },
            "name": {
              "description": "Resource Name.",
              "readOnly": true,
              "type": "string"
            },
            "type": {
              "description": "Resource type.",
              "readOnly": true,
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        }
      ],
      "description": "Domain ownership Identifier.",
      "properties": {
        "properties": {
          "description": "DomainOwnershipIdentifier resource specific properties",
          "properties": {
            "ownershipId": {
              "description": "Ownership Id.",
              "type": "string"
            }
          },
          "x-ms-client-flatten": true
        }
      },
      "type": "object"
    },
    "DomainOwnershipIdentifierCollection": {
      "description": "Collection of domain ownership identifiers.",
      "properties": {
        "nextLink": {
          "description": "Link to next page of resources.",
          "readOnly": true,
          "type": "string"
        },
        "value": {
          "description": "Collection of resources.",
          "items": {
            "$ref": "#/definitions/DomainOwnershipIdentifier"
          },
          "type": "array"
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    },
    "DomainPatchResource": {
      "allOf": [
        {
          "description": "Azure proxy only resource. This resource is not tracked by Azure Resource Manager.",
          "properties": {
            "id": {
              "description": "Resource Id.",
              "readOnly": true,
              "type": "string"
            },
            "kind": {
              "description": "Kind of resource.",
              "type": "string"
            },
            "name": {
              "description": "Resource Name.",
              "readOnly": true,
              "type": "string"
            },
            "type": {
              "description": "Resource type.",
              "readOnly": true,
              "type": "string"
            }
          },
          "x-ms-azure-resource": true
        }
      ],
      "description": "ARM resource for a domain.",
      "properties": {
        "properties": {
          "description": "DomainPatchResource resource specific properties",
          "properties": {
            "authCode": {
              "type": "string",
              "x-ms-mutability": [
                "create",
                "read"
              ]
            },
            "autoRenew": {
              "default": true,
              "description": "<code>true</code> if the domain should be automatically renewed; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "consent": {
              "$ref": "#/definitions/DomainPurchaseConsent",
              "description": "Legal agreement consent.",
              "x-ms-mutability": [
                "create"
              ]
            },
            "contactAdmin": {
              "$ref": "#/definitions/Contact",
              "description": "Administrative contact.",
              "x-ms-mutability": [
                "create"
              ]
            },
            "contactBilling": {
              "$ref": "#/definitions/Contact",
              "description": "Billing contact.",
              "x-ms-mutability": [
                "create"
              ]
            },
            "contactRegistrant": {
              "$ref": "#/definitions/Contact",
              "description": "Registrant contact.",
              "x-ms-mutability": [
                "create"
              ]
            },
            "contactTech": {
              "$ref": "#/definitions/Contact",
              "description": "Technical contact.",
              "x-ms-mutability": [
                "create"
              ]
            },
            "createdTime": {
              "description": "Domain creation timestamp.",
              "format": "date-time",
              "readOnly": true,
              "type": "string"
            },
            "dnsType": {
              "description": "Current DNS type",
              "enum": [
                "AzureDns",
                "DefaultDomainRegistrarDns"
              ],
              "type": "string",
              "x-ms-enum": {
                "modelAsString": false,
                "name": "DnsType"
              }
            },
            "dnsZoneId": {
              "description": "Azure DNS Zone to use",
              "type": "string"
            },
            "domainNotRenewableReasons": {
              "description": "Reasons why domain is not renewable.",
              "items": {
                "enum": [
                  "RegistrationStatusNotSupportedForRenewal",
                  "ExpirationNotInRenewalTimeRange",
                  "SubscriptionNotActive"
                ],
                "type": "string"
              },
              "readOnly": true,
              "type": "array"
            },
            "expirationTime": {
              "description": "Domain expiration timestamp.",
              "format": "date-time",
              "readOnly": true,
              "type": "string"
            },
            "lastRenewedTime": {
              "description": "Timestamp when the domain was renewed last time.",
              "format": "date-time",
              "readOnly": true,
              "type": "string"
            },
            "managedHostNames": {
              "description": "All hostnames derived from the domain and assigned to Azure resources.",
              "items": {
                "$ref": "#/definitions/HostName"
              },
              "readOnly": true,
              "type": "array"
            },
            "nameServers": {
              "description": "Name servers.",
              "items": {
                "type": "string"
              },
              "readOnly": true,
              "type": "array"
            },
            "privacy": {
              "description": "<code>true</code> if domain privacy is enabled for this domain; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "provisioningState": {
              "description": "Domain provisioning state.",
              "enum": [
                "Succeeded",
                "Failed",
                "Canceled",
                "InProgress",
                "Deleting"
              ],
              "readOnly": true,
              "type": "string",
              "x-ms-enum": {
                "modelAsString": false,
                "name": "ProvisioningState"
              }
            },
            "readyForDnsRecordManagement": {
              "description": "<code>true</code> if Azure can assign this domain to App Service apps; otherwise, <code>false</code>. This value will be <code>true</code> if domain registration status is active and \n it is hosted on name servers Azure has programmatic access to.",
              "readOnly": true,
              "type": "boolean"
            },
            "registrationStatus": {
              "description": "Domain registration status.",
              "enum": [
                "Active",
                "Awaiting",
                "Cancelled",
                "Confiscated",
                "Disabled",
                "Excluded",
                "Expired",
                "Failed",
                "Held",
                "Locked",
                "Parked",
                "Pending",
                "Reserved",
                "Reverted",
                "Suspended",
                "Transferred",
                "Unknown",
                "Unlocked",
                "Unparked",
                "Updated",
                "JsonConverterFailed"
              ],
              "readOnly": true,
              "type": "string",
              "x-ms-enum": {
                "modelAsString": false,
                "name": "DomainStatus"
              }
            },
            "targetDnsType": {
              "description": "Target DNS type (would be used for migration)",
              "enum": [
                "AzureDns",
                "DefaultDomainRegistrarDns"
              ],
              "type": "string",
              "x-ms-enum": {
                "modelAsString": false,
                "name": "DnsType"
              }
            }
          },
          "required": [
            "contactAdmin",
            "contactBilling",
            "contactRegistrant",
            "contactTech",
            "consent"
          ],
          "x-ms-client-flatten": true
        }
      },
      "type": "object"
    },
    "DomainPurchaseConsent": {
      "description": "Domain purchase consent object, representing acceptance of applicable legal agreements.",
      "properties": {
        "agreedAt": {
          "description": "Timestamp when the agreements were accepted.",
          "format": "date-time",
          "type": "string"
        },
        "agreedBy": {
          "description": "Client IP address.",
          "type": "string"
        },
        "agreementKeys": {
          "description": "List of applicable legal agreement keys. This list can be retrieved using ListLegalAgreements API under <code>TopLevelDomain</code> resource.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "DomainRecommendationSearchParameters": {
      "description": "Domain recommendation search parameters.",
      "properties": {
        "keywords": {
          "description": "Keywords to be used for generating domain recommendations.",
          "type": "string"
        },
        "maxDomainRecommendations": {
          "description": "Maximum number of recommendations.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "ErrorResponse": {
      "description": "Error Response.",
      "properties": {
        "code": {
          "description": "Error code.",
          "type": "string"
        },
        "message": {
          "description": "Error message indicating why the operation failed.",
          "type": "string"
        }
      }
    },
    "HostName": {
      "description": "Details of a hostname derived from a domain.",
      "properties": {
        "azureResourceName": {
          "description": "Name of the Azure resource the hostname is assigned to. If it is assigned to a Traffic Manager then it will be the Traffic Manager name otherwise it will be the app name.",
          "type": "string"
        },
        "azureResourceType": {
          "description": "Type of the Azure resource the hostname is assigned to.",
          "enum": [
            "Website",
            "TrafficManager"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "AzureResourceType"
          }
        },
        "customHostNameDnsRecordType": {
          "description": "Type of the DNS record.",
          "enum": [
            "CName",
            "A"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "CustomHostNameDnsRecordType"
          }
        },
        "hostNameType": {
          "description": "Type of the hostname.",
          "enum": [
            "Verified",
            "Managed"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "HostNameType"
          }
        },
        "name": {
          "description": "Name of the hostname.",
          "type": "string"
        },
        "siteNames": {
          "description": "List of apps the hostname is assigned to. This list will have more than one app only if the hostname is pointing to a Traffic Manager.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "NameIdentifierCollection": {
      "description": "Collection of domain name identifiers.",
      "properties": {
        "nextLink": {
          "description": "Link to next page of resources.",
          "readOnly": true,
          "type": "string"
        },
        "value": {
          "description": "Collection of resources.",
          "items": {
            "description": "Identifies an object.",
            "properties": {
              "name": {
                "description": "Name of the object.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    }
  }
}