diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs
index 97cbab6189e36..2f0bd92c6b47e 100644
--- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs
+++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs
@@ -35,6 +35,12 @@ public static void Compute()
RunSwaggerTest("compute.json", "Compute");
}
+ [Fact]
+ public static void Dns()
+ {
+ RunSwaggerTest("dns.json", "DNS");
+ }
+
[Fact]
public static void Network()
{
diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj
index 3624fde45de91..2799e921ee14b 100644
--- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj
+++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj
@@ -103,6 +103,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest
@@ -124,6 +127,9 @@
PreserveNewest
+
+ PreserveNewest
+
diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/Microsoft.DNS.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/Microsoft.DNS.json
new file mode 100644
index 0000000000000..f500133101cae
--- /dev/null
+++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/Microsoft.DNS.json
@@ -0,0 +1,76 @@
+{
+ "id": "http://schema.management.azure.com/schemas/2016-04-01/Microsoft.Network.json#",
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "title": "Microsoft.Network",
+ "description": "Microsoft Network Resource Types",
+ "resourceDefinitions": {
+ "dnszones": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "Microsoft.Network/dnszones"
+ ]
+ },
+ "apiVersion": {
+ "type": "string",
+ "enum": [
+ "2016-04-01"
+ ]
+ },
+ "etag": {
+ "type": "string",
+ "description": "Gets or sets the ETag of the zone that is being updated, as received from a Get operation."
+ },
+ "properties": {
+ "oneOf": [
+ {
+ "$ref": "#/definitions/ZoneProperties"
+ },
+ {
+ "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression"
+ }
+ ],
+ "description": "Gets or sets the properties of the zone."
+ }
+ },
+ "required": [
+ "type",
+ "apiVersion",
+ "properties"
+ ],
+ "description": "Microsoft.Network/dnszones"
+ }
+ },
+ "definitions": {
+ "ZoneProperties": {
+ "type": "object",
+ "properties": {
+ "maxNumberOfRecordSets": {
+ "oneOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression"
+ }
+ ],
+ "description": "Gets or sets the maximum number of record sets that can be created in this zone."
+ },
+ "numberOfRecordSets": {
+ "oneOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression"
+ }
+ ],
+ "description": "Gets or sets the current number of record sets in this zone."
+ }
+ },
+ "description": "Represents the properties of the zone."
+ }
+ }
+}
diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/dns.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/dns.json
new file mode 100644
index 0000000000000..3abf46d2a47a5
--- /dev/null
+++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/dns.json
@@ -0,0 +1,1282 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "DnsManagementClient",
+ "version": "2016-04-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnszones/{zoneName}/{recordType}/{relativeRecordSetName}": {
+ "patch": {
+ "tags": [
+ "RecordSets"
+ ],
+ "operationId": "RecordSets_Update",
+ "description": "Updates a RecordSet within a DNS zone.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "zoneName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the zone without a terminating dot."
+ },
+ {
+ "name": "relativeRecordSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the RecordSet, relative to the name of the zone.",
+ "x-ms-skip-url-encoding": true
+ },
+ {
+ "name": "recordType",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The type of DNS record.",
+ "enum": [
+ "A",
+ "AAAA",
+ "CNAME",
+ "MX",
+ "NS",
+ "PTR",
+ "SOA",
+ "SRV",
+ "TXT"
+ ],
+ "x-ms-enum": {
+ "name": "RecordType",
+ "modelAsString": false
+ }
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RecordSet"
+ },
+ "description": "Parameters supplied to the Update operation."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "IfMatch",
+ "description": "The etag of Zone."
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "IfNoneMatch",
+ "description": "Defines the If-None-Match condition. Set to '*' to force Create-If-Not-Exist. Other values will be ignored."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Recordse has been updated successfully",
+ "schema": {
+ "$ref": "#/definitions/RecordSet"
+ }
+ },
+ "default": {
+ "description": "Default Response. It will be deserialized as per the Error defintion",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "RecordSets"
+ ],
+ "operationId": "RecordSets_CreateOrUpdate",
+ "description": "Creates or Updates a RecordSet within a DNS zone.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "zoneName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the zone without a terminating dot."
+ },
+ {
+ "name": "relativeRecordSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the RecordSet, relative to the name of the zone.",
+ "x-ms-skip-url-encoding": true
+ },
+ {
+ "name": "recordType",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The type of DNS record.",
+ "enum": [
+ "A",
+ "AAAA",
+ "CNAME",
+ "MX",
+ "NS",
+ "PTR",
+ "SOA",
+ "SRV",
+ "TXT"
+ ],
+ "x-ms-enum": {
+ "name": "RecordType",
+ "modelAsString": false
+ }
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RecordSet"
+ },
+ "description": "Parameters supplied to the CreateOrUpdate operation."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "IfMatch",
+ "description": "The etag of Recordset."
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "IfNoneMatch",
+ "description": "Defines the If-None-Match condition. Set to '*' to force Create-If-Not-Exist. Other values will be ignored."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Record set has been created",
+ "schema": {
+ "$ref": "#/definitions/RecordSet"
+ }
+ },
+ "200": {
+ "description": "Record set has been updated",
+ "schema": {
+ "$ref": "#/definitions/RecordSet"
+ }
+ },
+ "default": {
+ "description": "Default Response. It will be deserialized as per the Error defintion",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "RecordSets"
+ ],
+ "operationId": "RecordSets_Delete",
+ "description": "Removes a RecordSet from a DNS zone.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "zoneName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the zone without a terminating dot."
+ },
+ {
+ "name": "relativeRecordSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the RecordSet, relative to the name of the zone.",
+ "x-ms-skip-url-encoding": true
+ },
+ {
+ "name": "recordType",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The type of DNS record.",
+ "enum": [
+ "A",
+ "AAAA",
+ "CNAME",
+ "MX",
+ "NS",
+ "PTR",
+ "SOA",
+ "SRV",
+ "TXT"
+ ],
+ "x-ms-enum": {
+ "name": "RecordType",
+ "modelAsString": false
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "IfMatch",
+ "description": "Defines the If-Match condition. The delete operation will be performed only if the ETag of the zone on the server matches this value."
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "IfNoneMatch",
+ "description": "Defines the If-None-Match condition. The delete operation will be performed only if the ETag of the zone on the server does not match this value."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": ""
+ },
+ "200": {
+ "description": ""
+ },
+ "default": {
+ "description": "Default Response. It will be deserialized as per the Error defintion",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "RecordSets"
+ ],
+ "operationId": "RecordSets_Get",
+ "description": "Gets a RecordSet.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "zoneName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the zone without a terminating dot."
+ },
+ {
+ "name": "relativeRecordSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the RecordSet, relative to the name of the zone.",
+ "x-ms-skip-url-encoding": true
+ },
+ {
+ "name": "recordType",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The type of DNS record.",
+ "enum": [
+ "A",
+ "AAAA",
+ "CNAME",
+ "MX",
+ "NS",
+ "PTR",
+ "SOA",
+ "SRV",
+ "TXT"
+ ],
+ "x-ms-enum": {
+ "name": "RecordType",
+ "modelAsString": false
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/RecordSet"
+ }
+ },
+ "default": {
+ "description": "Default Response. It will be deserialized as per the Error defintion",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnszones/{zoneName}/{recordType}": {
+ "get": {
+ "tags": [
+ "RecordSets"
+ ],
+ "operationId": "RecordSets_ListByType",
+ "description": "Lists the RecordSets of a specified type in a DNS zone.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group that contains the zone."
+ },
+ {
+ "name": "zoneName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the zone from which to enumerate RecordsSets."
+ },
+ {
+ "name": "recordType",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The type of record sets to enumerate.",
+ "enum": [
+ "A",
+ "AAAA",
+ "CNAME",
+ "MX",
+ "NS",
+ "PTR",
+ "SOA",
+ "SRV",
+ "TXT"
+ ],
+ "x-ms-enum": {
+ "name": "RecordType",
+ "modelAsString": false
+ }
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Query parameters. If null is passed returns the default number of zones."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/RecordSetListResult"
+ }
+ },
+ "default": {
+ "description": "Default Response. It will be deserialized as per the Error defintion",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnszones/{zoneName}/recordsets": {
+ "get": {
+ "tags": [
+ "RecordSets"
+ ],
+ "operationId": "RecordSets_ListAllInResourceGroup",
+ "description": "Lists all RecordSets in a DNS zone.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group that contains the zone."
+ },
+ {
+ "name": "zoneName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the zone from which to enumerate RecordSets."
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Query parameters. If null is passed returns the default number of zones."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/RecordSetListResult"
+ }
+ },
+ "default": {
+ "description": "Default Response. It will be deserialized as per the Error defintion",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnszones/{zoneName}": {
+ "put": {
+ "tags": [
+ "Zones"
+ ],
+ "operationId": "Zones_CreateOrUpdate",
+ "description": "Creates or Updates a DNS zone within a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "zoneName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the zone without a terminating dot."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Zone"
+ },
+ "description": "Parameters supplied to the CreateOrUpdate operation."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "IfMatch",
+ "description": "The etag of Zone."
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "IfNoneMatch",
+ "description": "Defines the If-None-Match condition. Set to '*' to force Create-If-Not-Exist. Other values will be ignored."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/Zone"
+ }
+ },
+ "201": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/Zone"
+ }
+ },
+ "default": {
+ "description": "Default Response. It will be deserialized as per the Error defintion",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Zones"
+ ],
+ "operationId": "Zones_Delete",
+ "description": "Removes a DNS zone from a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "zoneName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the zone without a terminating dot."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "IfMatch",
+ "description": "Defines the If-Match condition. The delete operation will be performed only if the ETag of the zone on the server matches this value."
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "IfNoneMatch",
+ "description": "Defines the If-None-Match condition. The delete operation will be performed only if the ETag of the zone on the server does not match this value."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Zone does not exist"
+ },
+ "202": {
+ "description": ""
+ },
+ "200": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/ZoneDeleteResult"
+ }
+ },
+ "default": {
+ "description": "Default Response. It will be deserialized as per the Error defintion",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "Zones"
+ ],
+ "operationId": "Zones_Get",
+ "description": "Gets a DNS zone.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "zoneName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the zone without a terminating dot."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/Zone"
+ }
+ },
+ "default": {
+ "description": "Default Response. It will be deserialized as per the Error defintion",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnszones": {
+ "get": {
+ "tags": [
+ "Zones"
+ ],
+ "operationId": "Zones_ListInResourceGroup",
+ "description": "Lists the DNS zones within a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Query parameters. If null is passed returns the default number of zones."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/ZoneListResult"
+ }
+ },
+ "default": {
+ "description": "Default Response. It will be deserialized as per the Error defintion",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/dnszones": {
+ "get": {
+ "tags": [
+ "Zones"
+ ],
+ "operationId": "Zones_ListInSubscription",
+ "description": "Lists the DNS zones within a resource group.",
+ "parameters": [
+ {
+ "name": "$top",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Query parameters. If null is passed returns the default number of zones."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/ZoneListResult"
+ }
+ },
+ "default": {
+ "description": "Default Response. It will be deserialized as per the Error defintion",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ARecord": {
+ "properties": {
+ "ipv4Address": {
+ "type": "string",
+ "description": "Gets or sets the IPv4 address of this A record in string notation."
+ }
+ },
+ "description": "An A record."
+ },
+ "AaaaRecord": {
+ "properties": {
+ "ipv6Address": {
+ "type": "string",
+ "description": "Gets or sets the IPv6 address of this AAAA record in string notation."
+ }
+ },
+ "description": "An AAAA record."
+ },
+ "MxRecord": {
+ "properties": {
+ "preference": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Gets or sets the preference metric for this record."
+ },
+ "exchange": {
+ "type": "string",
+ "description": "Gets or sets the domain name of the mail host, without a terminating dot."
+ }
+ },
+ "description": "An MX record."
+ },
+ "NsRecord": {
+ "properties": {
+ "nsdname": {
+ "type": "string",
+ "description": "Gets or sets the name server name for this record, without a terminating dot."
+ }
+ },
+ "description": "An NS record."
+ },
+ "PtrRecord": {
+ "properties": {
+ "ptrdname": {
+ "type": "string",
+ "description": "Gets or sets the PTR target domain name for this record without a terminating dot."
+ }
+ },
+ "description": "A PTR record."
+ },
+ "SrvRecord": {
+ "properties": {
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Gets or sets the priority metric for this record."
+ },
+ "weight": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Gets or sets the weight metric for this this record."
+ },
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Gets or sets the port of the service for this record."
+ },
+ "target": {
+ "type": "string",
+ "description": "Gets or sets the domain name of the target for this record, without a terminating dot."
+ }
+ },
+ "description": "An SRV record."
+ },
+ "TxtRecord": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Gets or sets the text value of this record."
+ }
+ },
+ "description": "A TXT record."
+ },
+ "CnameRecord": {
+ "properties": {
+ "cname": {
+ "type": "string",
+ "description": "Gets or sets the canonical name for this record without a terminating dot."
+ }
+ },
+ "description": "A CNAME record."
+ },
+ "SoaRecord": {
+ "properties": {
+ "host": {
+ "type": "string",
+ "description": "Gets or sets the domain name of the authoritative name server, without a temrinating dot."
+ },
+ "email": {
+ "type": "string",
+ "description": "Gets or sets the email for this record."
+ },
+ "serialNumber": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Gets or sets the serial number for this record."
+ },
+ "refreshTime": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Gets or sets the refresh value for this record."
+ },
+ "retryTime": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Gets or sets the retry time for this record."
+ },
+ "expireTime": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Gets or sets the expire time for this record."
+ },
+ "minimumTTL": {
+ "type": "integer",
+ "format": "int64",
+ "x-ms-client-name": "minimumTtl",
+ "description": "Gets or sets the minimum TTL value for this record."
+ }
+ },
+ "description": "An SOA record."
+ },
+ "RecordSetProperties": {
+ "properties": {
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Gets or sets the metadata attached to the resource."
+ },
+ "TTL": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Gets or sets the TTL of the records in the RecordSet."
+ },
+ "ARecords": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ARecord"
+ },
+ "description": "Gets or sets the list of A records in the RecordSet."
+ },
+ "AAAARecords": {
+ "type": "array",
+ "x-ms-client-name": "AaaaRecords",
+ "items": {
+ "$ref": "#/definitions/AaaaRecord"
+ },
+ "description": "Gets or sets the list of AAAA records in the RecordSet."
+ },
+ "MXRecords": {
+ "type": "array",
+ "x-ms-client-name": "MxRecords",
+ "items": {
+ "$ref": "#/definitions/MxRecord"
+ },
+ "description": "Gets or sets the list of MX records in the RecordSet."
+ },
+ "NSRecords": {
+ "type": "array",
+ "x-ms-client-name": "NsRecords",
+ "items": {
+ "$ref": "#/definitions/NsRecord"
+ },
+ "description": "Gets or sets the list of NS records in the RecordSet."
+ },
+ "PTRRecords": {
+ "type": "array",
+ "x-ms-client-name": "PtrRecords",
+ "items": {
+ "$ref": "#/definitions/PtrRecord"
+ },
+ "description": "Gets or sets the list of PTR records in the RecordSet."
+ },
+ "SRVRecords": {
+ "type": "array",
+ "x-ms-client-name": "SrvRecords",
+ "items": {
+ "$ref": "#/definitions/SrvRecord"
+ },
+ "description": "Gets or sets the list of SRV records in the RecordSet."
+ },
+ "TXTRecords": {
+ "type": "array",
+ "x-ms-client-name": "TxtRecords",
+ "items": {
+ "$ref": "#/definitions/TxtRecord"
+ },
+ "description": "Gets or sets the list of TXT records in the RecordSet."
+ },
+ "CNAMERecord": {
+ "$ref": "#/definitions/CnameRecord",
+ "x-ms-client-name": "CnameRecord",
+ "description": "Gets or sets the CNAME record in the RecordSet."
+ },
+ "SOARecord": {
+ "$ref": "#/definitions/SoaRecord",
+ "x-ms-client-name": "SoaRecord",
+ "description": "Gets or sets the SOA record in the RecordSet."
+ }
+ },
+ "description": "Represents the properties of the records in the RecordSet."
+ },
+ "RecordSet": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Gets or sets the ID of the resource."
+ },
+ "name": {
+ "type": "string",
+ "description": "Gets or sets the name of the resource."
+ },
+ "type": {
+ "type": "string",
+ "description": "Gets or sets the type of the resource."
+ },
+ "etag": {
+ "type": "string",
+ "description": "Gets or sets the ETag of the RecordSet."
+ },
+ "location": {
+ "type": "string",
+ "description": "Gets or sets the location of the resource."
+ },
+ "properties": {
+ "$ref": "#/definitions/RecordSetProperties",
+ "x-ms-client-flatten": true,
+ "description": "Gets or sets the properties of the RecordSet."
+ }
+ },
+ "description": "Describes a DNS RecordSet (a set of DNS records with the same name and type)."
+ },
+ "RecordSetUpdateParameters": {
+ "properties": {
+ "RecordSet": {
+ "$ref": "#/definitions/RecordSet",
+ "description": "Gets or sets information about the RecordSet being updated."
+ }
+ },
+ "description": "Parameters supplied to update a RecordSet."
+ },
+ "RecordSetListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RecordSet"
+ },
+ "description": "Gets or sets information about the RecordSets in the response."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Gets or sets the continuation token for the next page."
+ }
+ },
+ "description": "The response to a RecordSet List operation."
+ },
+ "ZoneProperties": {
+ "properties": {
+ "maxNumberOfRecordSets": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Gets or sets the maximum number of record sets that can be created in this zone."
+ },
+ "numberOfRecordSets": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Gets or sets the current number of record sets in this zone."
+ },
+ "nameServers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Gets the name servers populated for this zone. This is a read-only property and any attempt to set this value will be ignored.",
+ "readOnly": true
+ }
+ },
+ "description": "Represents the properties of the zone."
+ },
+ "Zone": {
+ "properties": {
+ "etag": {
+ "type": "string",
+ "description": "Gets or sets the ETag of the zone that is being updated, as received from a Get operation."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ZoneProperties",
+ "description": "Gets or sets the properties of the zone."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Describes a DNS zone."
+ },
+ "ZoneDeleteResult": {
+ "properties": {
+ "azureAsyncOperation": {
+ "type": "string",
+ "description": "Users can perform a Get on Azure-AsyncOperation to get the status of their delete Zone operations"
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "InProgress",
+ "Succeeded",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "OperationStatus",
+ "modelAsString": false
+ }
+ },
+ "statusCode": {
+ "type": "string",
+ "enum": [
+ "Continue",
+ "SwitchingProtocols",
+ "OK",
+ "Created",
+ "Accepted",
+ "NonAuthoritativeInformation",
+ "NoContent",
+ "ResetContent",
+ "PartialContent",
+ "MultipleChoices",
+ "Ambiguous",
+ "MovedPermanently",
+ "Moved",
+ "Found",
+ "Redirect",
+ "SeeOther",
+ "RedirectMethod",
+ "NotModified",
+ "UseProxy",
+ "Unused",
+ "TemporaryRedirect",
+ "RedirectKeepVerb",
+ "BadRequest",
+ "Unauthorized",
+ "PaymentRequired",
+ "Forbidden",
+ "NotFound",
+ "MethodNotAllowed",
+ "NotAcceptable",
+ "ProxyAuthenticationRequired",
+ "RequestTimeout",
+ "Conflict",
+ "Gone",
+ "LengthRequired",
+ "PreconditionFailed",
+ "RequestEntityTooLarge",
+ "RequestUriTooLong",
+ "UnsupportedMediaType",
+ "RequestedRangeNotSatisfiable",
+ "ExpectationFailed",
+ "UpgradeRequired",
+ "InternalServerError",
+ "NotImplemented",
+ "BadGateway",
+ "ServiceUnavailable",
+ "GatewayTimeout",
+ "HttpVersionNotSupported"
+ ],
+ "x-ms-enum": {
+ "name": "HtpStatusCode",
+ "modelAsString": false
+ }
+ },
+ "requestId": {
+ "type": "string"
+ }
+ },
+ "description": "The response to a Zone Delete operation."
+ },
+ "ZoneListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Zone"
+ },
+ "description": "Gets or sets information about the zones in the response."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Gets or sets the continuation token for the next page."
+ }
+ },
+ "description": "The response to a Zone List or ListAll operation."
+ },
+ "Resource": {
+ "x-ms-azure-resource": true,
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource Id"
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource name"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type"
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "required": [
+ "location"
+ ],
+ "x-ms-external": false
+ },
+ "SubResource": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Resource Id"
+ }
+ },
+ "x-ms-external": true
+ },
+ "CloudError": {
+ "type": "object",
+ "properties": { "error": { "$ref": "#/definitions/CloudErrorBody" } },
+ "x-ms-external": true
+ },
+ "CloudErrorBody": {
+ "type": "object",
+ "properties": {
+ "code": { "type": "string" },
+ "message": { "type": "string" },
+ "target": { "type": "string" },
+ "details": {
+ "type": "array",
+ "items": { "$ref": "#/definitions/CloudErrorBody" }
+ }
+ },
+ "x-ms-external": true
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ }
+ }
+}
\ No newline at end of file