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