From eb5629433695134480bdf323c8903c9d23ac64ae Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Tue, 24 May 2016 14:19:46 -0700 Subject: [PATCH 01/14] Getting baseline for dns schema generation --- .../AcceptanceTests.cs | 6 + ...Generator.AzureResourceSchema.Tests.csproj | 6 + .../Expected/DNS/Microsoft.DNS.json | 76 + .../Swagger/dns.json | 1282 +++++++++++++++++ 4 files changed, 1370 insertions(+) create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/Microsoft.DNS.json create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/dns.json 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 From f32e8243b5b2529170b4716ae244ce145426782f Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Tue, 24 May 2016 15:02:17 -0700 Subject: [PATCH 02/14] Rename Microsoft.DNS.json expected schema to Microsoft.Network.json --- .../AutoRest.Generator.AzureResourceSchema.Tests.csproj | 2 +- .../Expected/DNS/{Microsoft.DNS.json => Microsoft.Network.json} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/{Microsoft.DNS.json => Microsoft.Network.json} (100%) 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 2799e921ee14b..dd7147fb2af00 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj @@ -103,7 +103,7 @@ PreserveNewest - + PreserveNewest diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/Microsoft.DNS.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/Microsoft.Network.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/Microsoft.DNS.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/Microsoft.Network.json From 3f84226c0708bf6013a88f02d0216dfb55f9a951 Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Tue, 24 May 2016 16:07:44 -0700 Subject: [PATCH 03/14] Enumerating over create method parameter enum values --- .../ResourceSchemaParserTests.cs | 114 +++++++++++++++++- .../ResourceSchemaParser.cs | 60 ++++++++- 2 files changed, 164 insertions(+), 10 deletions(-) diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/ResourceSchemaParserTests.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/ResourceSchemaParserTests.cs index 4c90684e6a852..cb5c18ebb77de 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/ResourceSchemaParserTests.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/ResourceSchemaParserTests.cs @@ -171,15 +171,121 @@ public void IsCreateResourceMethodWhenUrlDoesntEndWithResourceNamePlaceholder() } [Fact] - public void GetResourceTypeWithOneLevelOfResources() + public void GetResourceTypesWithOneLevelOfResources() { - Assert.Equal("Microsoft.Cdn/profiles", ResourceSchemaParser.GetResourceType("Microsoft.Cdn", "profiles/{profileName}")); + Assert.Equal(new string[] { "Microsoft.Cdn/profiles" }, ResourceSchemaParser.GetResourceTypes("Microsoft.Cdn", "profiles/{profileName}", new List())); } [Fact] - public void GetResourceTypeWithMultipleLevelsOfResources() + public void GetResourceTypesWithMultipleLevelsOfResources() { - Assert.Equal("Microsoft.Cdn/profiles/endpoints/customDomains", ResourceSchemaParser.GetResourceType("Microsoft.Cdn", "profiles/{profileName}/endpoints/{endpointName}/customDomains/{customDomainName}")); + Assert.Equal(new string[] { "Microsoft.Cdn/profiles/endpoints/customDomains" }, ResourceSchemaParser.GetResourceTypes("Microsoft.Cdn", "profiles/{profileName}/endpoints/{endpointName}/customDomains/{customDomainName}", new List())); + } + + [Fact] + public void GetResourceTypesParameterReferenceWithNoMatchingParameterDefinition() + { + const string provider = "Microsoft.Network"; + const string pathAfterProvider = "dnszones/{zoneName}/{recordType}/{relativeRecordSetName}"; + List methodParameters = new List(); + Assert.Throws(() => { ResourceSchemaParser.GetResourceTypes(provider, pathAfterProvider, methodParameters); }); + } + + [Fact] + public void GetResourceTypesWithParameterReferenceWithParameterDefinitionWithNoType() + { + const string provider = "Microsoft.Network"; + const string pathAfterProvider = "dnszones/{zoneName}/{recordType}/{relativeRecordSetName}"; + List methodParameters = new List() + { + new Parameter() + { + Name = "recordType" + } + }; + Assert.Throws(() => { ResourceSchemaParser.GetResourceTypes(provider, pathAfterProvider, methodParameters); }); + } + + [Fact] + public void GetResourceTypesWithParameterReferenceWithParameterDefinitionWithPrimaryType() + { + const string provider = "Microsoft.Network"; + const string pathAfterProvider = "dnszones/{zoneName}/{recordType}/{relativeRecordSetName}"; + List methodParameters = new List() + { + new Parameter() + { + Name = "recordType", + Type = new PrimaryType(KnownPrimaryType.String) + } + }; + Assert.Throws(() => { ResourceSchemaParser.GetResourceTypes(provider, pathAfterProvider, methodParameters); }); + } + + [Fact] + public void GetResourceTypesWithParameterReferenceWithParameterDefinitionWithEnumTypeWithNoValues() + { + const string provider = "Microsoft.Network"; + const string pathAfterProvider = "dnszones/{zoneName}/{recordType}/{relativeRecordSetName}"; + List methodParameters = new List() + { + new Parameter() + { + Name = "recordType", + Type = new EnumType() + } + }; + Assert.Throws(() => { ResourceSchemaParser.GetResourceTypes(provider, pathAfterProvider, methodParameters); }); + } + + [Fact] + public void GetResourceTypesWithParameterReferenceWithParameterDefinitionWithEnumTypeWithOneValue() + { + const string provider = "Microsoft.Network"; + const string pathAfterProvider = "dnszones/{zoneName}/{recordType}/{relativeRecordSetName}"; + EnumType enumType = new EnumType(); + enumType.Values.Add(new EnumValue() + { + Name = "A" + }); + List methodParameters = new List() + { + new Parameter() + { + Name = "recordType", + Type = enumType + } + }; + Assert.Equal(new string[] { "Microsoft.Network/dnszones/A" }, ResourceSchemaParser.GetResourceTypes(provider, pathAfterProvider, methodParameters)); + } + + [Fact] + public void GetResourceTypesWithParameterReferenceWithParameterDefinitionWithEnumTypeWithMultipleValues() + { + const string provider = "Microsoft.Network"; + const string pathAfterProvider = "dnszones/{zoneName}/{recordType}/{relativeRecordSetName}"; + EnumType enumType = new EnumType(); + enumType.Values.Add(new EnumValue() { Name = "A" }); + enumType.Values.Add(new EnumValue() { Name = "AAAA" }); + enumType.Values.Add(new EnumValue() { Name = "CNAME" }); + enumType.Values.Add(new EnumValue() { Name = "MX" }); + List methodParameters = new List() + { + new Parameter() + { + Name = "recordType", + Type = enumType + } + }; + Assert.Equal( + new string[] + { + "Microsoft.Network/dnszones/A", + "Microsoft.Network/dnszones/AAAA", + "Microsoft.Network/dnszones/CNAME", + "Microsoft.Network/dnszones/MX" + }, + ResourceSchemaParser.GetResourceTypes(provider, pathAfterProvider, methodParameters)); } private static Method CreateMethod(HttpMethod httpMethod = HttpMethod.Put, Parameter body = null, IType responseBody = null, string url = null) diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/ResourceSchemaParser.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/ResourceSchemaParser.cs index 1e98e8f9507b2..8e0ee9a13461f 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/ResourceSchemaParser.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/ResourceSchemaParser.cs @@ -74,7 +74,7 @@ public static IDictionary Parse(ServiceClient serviceClie } string methodUrlPathAfterProvider = afterPrefix.Substring(forwardSlashIndexAfterProvider + 1); - string resourceType = GetResourceType(resourceProvider, methodUrlPathAfterProvider); + string resourceType = GetResourceTypes(resourceProvider, methodUrlPathAfterProvider, createResourceMethod.Parameters)[0]; resourceDefinition.AddProperty("type", new JsonSchema() { @@ -397,8 +397,9 @@ public static bool IsCreateResourceMethod(Method method) /// /// /// + /// /// - public static string GetResourceType(string resourceProvider, string methodPathAfterProvider) + public static string[] GetResourceTypes(string resourceProvider, string methodPathAfterProvider, List createResourceMethodParameters) { if (string.IsNullOrWhiteSpace(resourceProvider)) { @@ -409,16 +410,63 @@ public static string GetResourceType(string resourceProvider, string methodPathA throw new ArgumentException("methodPathAfterProvider cannot be null or whitespace", "methodPathAfterProvider"); } - List resourceTypeParts = new List(); - resourceTypeParts.Add(resourceProvider); + List resourceTypes = new List(); + resourceTypes.Add(resourceProvider); string[] pathSegments = methodPathAfterProvider.Split(new char[] { '/' }); for (int i = 0; i < pathSegments.Length; i += 2) { - resourceTypeParts.Add(pathSegments[i]); + string pathSegment = pathSegments[i]; + if (pathSegment.StartsWith("{") && pathSegment.EndsWith("}")) + { + string parameterName = pathSegment.Substring(1, pathSegment.Length - 2); + Parameter parameter = createResourceMethodParameters.FirstOrDefault(methodParameter => methodParameter.Name == parameterName); + if (parameter == null) + { + string errorMessage = string.Format("Found undefined parameter reference {0} in create resource method \"{1}/{2}/{3}\".", pathSegment, resourceMethodPrefix, resourceProvider, methodPathAfterProvider); + throw new ArgumentException(errorMessage, "createResourceMethodParameters"); + } + + if (parameter.Type == null) + { + string errorMessage = string.Format("Parameter reference {0} has no defined type.", pathSegment); + throw new ArgumentException(errorMessage, "createResourceMethodParameters"); + } + + EnumType parameterType = parameter.Type as EnumType; + if (parameterType == null) + { + string errorMessage = string.Format("Parameter reference {0} is defined as a type other than an EnumType: {1}", pathSegment, parameter.Type.GetType().Name); + throw new ArgumentException(errorMessage, "createResourceMethodParameters"); + } + + if (parameterType.Values == null || parameterType.Values.Count == 0) + { + string errorMessage = string.Format("Parameter reference {0} is defined as an EnumType, but it doesn't have any specified values.", pathSegment); + throw new ArgumentException(errorMessage, "createResourceMethodParameters"); + } + + List newResourceTypes = new List(); + foreach (string resourceType in resourceTypes) + { + foreach (EnumValue parameterValue in parameterType.Values) + { + newResourceTypes.Add(string.Join("/", resourceType, parameterValue.Name)); + } + } + + resourceTypes = newResourceTypes; + } + else + { + for (int j = 0; j < resourceTypes.Count; ++j) + { + resourceTypes[j] = string.Join("/", resourceTypes[j], pathSegment); + } + } } - return string.Join("/", resourceTypeParts); + return resourceTypes.ToArray(); } } } From 083672e008997a12565deffde9562d0f412ea29e Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Wed, 25 May 2016 10:35:28 -0700 Subject: [PATCH 04/14] Update AzureResourceSchema generator to create DNS schema --- .../Expected/Batch/Microsoft.Batch.json | 148 ++ .../Expected/CDN/Microsoft.Cdn.json | 8 +- .../Expected/DNS/Microsoft.Network.json | 1294 ++++++++++++++++- .../Expected/Storage/Microsoft.Storage.json | 4 +- .../ResourceSchemaParser.cs | 102 +- 5 files changed, 1486 insertions(+), 70 deletions(-) diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Batch/Microsoft.Batch.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Batch/Microsoft.Batch.json index 0353b66107559..c591108e25561 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Batch/Microsoft.Batch.json +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Batch/Microsoft.Batch.json @@ -49,12 +49,91 @@ "description": "The properties of the account." } }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/batchAccounts_applications_childResource" + } + ] + } + }, "required": [ "type", "apiVersion", "properties" ], "description": "Microsoft.Batch/batchAccounts" + }, + "batchAccounts_applications": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Batch/batchAccounts/applications" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-12-01" + ] + }, + "allowUpdates": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "A value indicating whether packages within the application may be overwritten using the same version string." + }, + "displayName": { + "type": "string", + "description": "The display name for the application." + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/batchAccounts_applications_versions_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion" + ], + "description": "Microsoft.Batch/batchAccounts/applications" + }, + "batchAccounts_applications_versions": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Batch/batchAccounts/applications/versions" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-12-01" + ] + } + }, + "required": [ + "type", + "apiVersion" + ], + "description": "Microsoft.Batch/batchAccounts/applications/versions" } }, "definitions": { @@ -87,6 +166,75 @@ "storageAccountId" ], "description": "The properties related to auto storage account." + }, + "batchAccounts_applications_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "applications" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-12-01" + ] + }, + "allowUpdates": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "A value indicating whether packages within the application may be overwritten using the same version string." + }, + "displayName": { + "type": "string", + "description": "The display name for the application." + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/batchAccounts_applications_versions_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion" + ], + "description": "Microsoft.Batch/batchAccounts/applications" + }, + "batchAccounts_applications_versions_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "versions" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-12-01" + ] + } + }, + "required": [ + "type", + "apiVersion" + ], + "description": "Microsoft.Batch/batchAccounts/applications/versions" } } } diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CDN/Microsoft.Cdn.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CDN/Microsoft.Cdn.json index 9f56f516c85c2..4cd51d56fba62 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CDN/Microsoft.Cdn.json +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CDN/Microsoft.Cdn.json @@ -127,8 +127,8 @@ "required": [ "type", "apiVersion", - "properties", - "location" + "location", + "properties" ], "description": "Microsoft.Cdn/profiles/endpoints" }, @@ -458,8 +458,8 @@ "required": [ "type", "apiVersion", - "properties", - "location" + "location", + "properties" ], "description": "Microsoft.Cdn/profiles/endpoints" }, diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/Microsoft.Network.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/Microsoft.Network.json index f500133101cae..7789f4283e209 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/Microsoft.Network.json +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/Microsoft.Network.json @@ -35,15 +35,1303 @@ "description": "Gets or sets the properties of the zone." } }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/dnszones_TXT_childResource" + }, + { + "$ref": "#/definitions/dnszones_SRV_childResource" + }, + { + "$ref": "#/definitions/dnszones_SOA_childResource" + }, + { + "$ref": "#/definitions/dnszones_PTR_childResource" + }, + { + "$ref": "#/definitions/dnszones_NS_childResource" + }, + { + "$ref": "#/definitions/dnszones_MX_childResource" + }, + { + "$ref": "#/definitions/dnszones_CNAME_childResource" + }, + { + "$ref": "#/definitions/dnszones_AAAA_childResource" + }, + { + "$ref": "#/definitions/dnszones_A_childResource" + } + ] + } + }, "required": [ "type", "apiVersion", "properties" ], "description": "Microsoft.Network/dnszones" - } - }, - "definitions": { + }, + "dnszones_A": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/A" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/A" + }, + "dnszones_AAAA": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/AAAA" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/AAAA" + }, + "dnszones_CNAME": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/CNAME" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/CNAME" + }, + "dnszones_MX": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/MX" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/MX" + }, + "dnszones_NS": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/NS" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/NS" + }, + "dnszones_PTR": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/PTR" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/PTR" + }, + "dnszones_SOA": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/SOA" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/SOA" + }, + "dnszones_SRV": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/SRV" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/SRV" + }, + "dnszones_TXT": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/TXT" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/TXT" + } + }, + "definitions": { + "AaaaRecord": { + "type": "object", + "properties": { + "ipv6Address": { + "type": "string", + "description": "Gets or sets the IPv6 address of this AAAA record in string notation." + } + }, + "description": "An AAAA record." + }, + "ARecord": { + "type": "object", + "properties": { + "ipv4Address": { + "type": "string", + "description": "Gets or sets the IPv4 address of this A record in string notation." + } + }, + "description": "An A record." + }, + "CnameRecord": { + "type": "object", + "properties": { + "cname": { + "type": "string", + "description": "Gets or sets the canonical name for this record without a terminating dot." + } + }, + "description": "A CNAME record." + }, + "dnszones_A_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "A" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/A" + }, + "dnszones_AAAA_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "AAAA" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/AAAA" + }, + "dnszones_CNAME_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "CNAME" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/CNAME" + }, + "dnszones_MX_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "MX" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/MX" + }, + "dnszones_NS_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "NS" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/NS" + }, + "dnszones_PTR_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "PTR" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/PTR" + }, + "dnszones_SOA_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "SOA" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/SOA" + }, + "dnszones_SRV_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "SRV" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/SRV" + }, + "dnszones_TXT_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "TXT" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-04-01" + ] + }, + "id": { + "type": "string", + "description": "Gets or sets the ID of the resource." + }, + "name": { + "type": "string", + "description": "Gets or sets the name 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": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/TXT" + }, + "MxRecord": { + "type": "object", + "properties": { + "preference": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "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": { + "type": "object", + "properties": { + "nsdname": { + "type": "string", + "description": "Gets or sets the name server name for this record, without a terminating dot." + } + }, + "description": "An NS record." + }, + "PtrRecord": { + "type": "object", + "properties": { + "ptrdname": { + "type": "string", + "description": "Gets or sets the PTR target domain name for this record without a terminating dot." + } + }, + "description": "A PTR record." + }, + "RecordSetProperties": { + "type": "object", + "properties": { + "metadata": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the metadata attached to the resource." + }, + "TTL": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the TTL of the records in the RecordSet." + }, + "ARecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ARecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of A records in the RecordSet." + }, + "AAAARecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/AaaaRecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of AAAA records in the RecordSet." + }, + "MXRecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/MxRecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of MX records in the RecordSet." + }, + "NSRecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/NsRecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of NS records in the RecordSet." + }, + "PTRRecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/PtrRecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of PTR records in the RecordSet." + }, + "SRVRecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SrvRecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of SRV records in the RecordSet." + }, + "TXTRecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/TxtRecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of TXT records in the RecordSet." + }, + "CNAMERecord": { + "oneOf": [ + { + "$ref": "#/definitions/CnameRecord" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the CNAME record in the RecordSet." + }, + "SOARecord": { + "oneOf": [ + { + "$ref": "#/definitions/SoaRecord" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the SOA record in the RecordSet." + } + }, + "description": "Represents the properties of the records in the RecordSet." + }, + "SoaRecord": { + "type": "object", + "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": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the serial number for this record." + }, + "refreshTime": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the refresh value for this record." + }, + "retryTime": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the retry time for this record." + }, + "expireTime": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the expire time for this record." + }, + "minimumTTL": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the minimum TTL value for this record." + } + }, + "description": "An SOA record." + }, + "SrvRecord": { + "type": "object", + "properties": { + "priority": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the priority metric for this record." + }, + "weight": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the weight metric for this this record." + }, + "port": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "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": { + "type": "object", + "properties": { + "value": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the text value of this record." + } + }, + "description": "A TXT record." + }, "ZoneProperties": { "type": "object", "properties": { diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/Microsoft.Storage.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/Microsoft.Storage.json index 79847f9feb66e..031edc743f3a5 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/Microsoft.Storage.json +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/Microsoft.Storage.json @@ -77,10 +77,10 @@ "required": [ "type", "apiVersion", - "properties", "sku", "kind", - "location" + "location", + "properties" ], "description": "Microsoft.Storage/storageAccounts" } diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/ResourceSchemaParser.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/ResourceSchemaParser.cs index 8e0ee9a13461f..b6a68bb6093af 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/ResourceSchemaParser.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/ResourceSchemaParser.cs @@ -23,15 +23,15 @@ public static class ResourceSchemaParser /// /// /// - public static IDictionary Parse(ServiceClient serviceClient) + public static IDictionary Parse(ServiceClient serviceClient) { if (serviceClient == null) { throw new ArgumentNullException("serviceClient"); } - IDictionary result = new Dictionary(); - + IDictionary result = new Dictionary(); + List createResourceMethods = new List(); foreach (Method method in serviceClient.Methods) { @@ -42,12 +42,9 @@ public static IDictionary Parse(ServiceClient serviceClie } string apiVersion = serviceClient.ApiVersion; - + foreach (Method createResourceMethod in createResourceMethods) { - JsonSchema resourceDefinition = new JsonSchema(); - resourceDefinition.JsonType = "object"; - string afterPrefix = createResourceMethod.Url.Substring(resourceMethodPrefix.Length); int forwardSlashIndexAfterProvider = afterPrefix.IndexOf('/'); string resourceProvider = afterPrefix.Substring(0, forwardSlashIndexAfterProvider); @@ -74,57 +71,46 @@ public static IDictionary Parse(ServiceClient serviceClie } string methodUrlPathAfterProvider = afterPrefix.Substring(forwardSlashIndexAfterProvider + 1); - string resourceType = GetResourceTypes(resourceProvider, methodUrlPathAfterProvider, createResourceMethod.Parameters)[0]; + string[] resourceTypes = GetResourceTypes(resourceProvider, methodUrlPathAfterProvider, createResourceMethod.Parameters); + foreach (string resourceType in resourceTypes) + { + JsonSchema resourceDefinition = new JsonSchema(); + resourceDefinition.JsonType = "object"; - resourceDefinition.AddProperty("type", new JsonSchema() + resourceDefinition.AddProperty("type", new JsonSchema() { JsonType = "string" }.AddEnum(resourceType), true); + + if (!string.IsNullOrWhiteSpace(apiVersion)) { - JsonType = "string" + resourceDefinition.AddProperty("apiVersion", new JsonSchema() { JsonType = "string" }.AddEnum(apiVersion), true); } - .AddEnum(resourceType)); - - if (!string.IsNullOrWhiteSpace(apiVersion)) - { - resourceDefinition.AddProperty("apiVersion", new JsonSchema() - { - JsonType = "string" - } - .AddEnum(apiVersion)); - } - CompositeType body = createResourceMethod.Body.Type as CompositeType; - Debug.Assert(body != null, "The create resource method's body must be a CompositeType and cannot be null."); - if (body != null) - { - foreach (Property property in body.Properties) + if (createResourceMethod.Body != null) { - JsonSchema propertyDefinition = ParseProperty(property, resourceSchema.Definitions); - if (propertyDefinition != null) + CompositeType body = createResourceMethod.Body.Type as CompositeType; + Debug.Assert(body != null, "The create resource method's body must be a CompositeType and cannot be null."); + if (body != null) { - resourceDefinition.AddProperty(property.Name, propertyDefinition, property.IsRequired); + foreach (Property property in body.Properties) + { + if (!resourceDefinition.Properties.Keys.Contains(property.Name)) + { + JsonSchema propertyDefinition = ParseProperty(property, resourceSchema.Definitions); + if (propertyDefinition != null) + { + resourceDefinition.AddProperty(property.Name, propertyDefinition, property.IsRequired || property.Name == "properties"); + } + } + } } } - } - resourceDefinition.Description = resourceType; + resourceDefinition.Description = resourceType; - foreach (string standardPropertyName in new string[] { "properties", "apiVersion", "type" }) - { - if (resourceDefinition.Properties.ContainsKey(standardPropertyName)) - { - if (resourceDefinition.Required == null) - { - resourceDefinition.AddRequired(standardPropertyName); - } - else - { - resourceDefinition.Required.Insert(0, standardPropertyName); - } - } - } + string resourcePropertyName = resourceType.Substring(resourceProvider.Length + 1).Replace('/', '_'); - string resourcePropertyName = resourceType.Substring(resourceProvider.Length + 1).Replace('/', '_'); - Debug.Assert(!resourceSchema.ResourceDefinitions.ContainsKey(resourcePropertyName)); - resourceSchema.AddResourceDefinition(resourcePropertyName, resourceDefinition); + Debug.Assert(!resourceSchema.ResourceDefinitions.ContainsKey(resourcePropertyName)); + resourceSchema.AddResourceDefinition(resourcePropertyName, resourceDefinition); + } } // This loop adds child resource schemas to their parent resource schemas. We can't do @@ -264,7 +250,7 @@ private static JsonSchema ParseProperty(Property property, IDictionary bodyComposedExtensions = body.ComposedExtensions; - const string azureResource = "x-ms-azure-resource"; - result = bodyComposedExtensions.ContainsKey(azureResource) ? (bool)bodyComposedExtensions[azureResource] : false; - } + result = method.ReturnType.Body is CompositeType; } return result; @@ -399,7 +379,7 @@ public static bool IsCreateResourceMethod(Method method) /// /// /// - public static string[] GetResourceTypes(string resourceProvider, string methodPathAfterProvider, List createResourceMethodParameters) + public static string[] GetResourceTypes(string resourceProvider, string methodPathAfterProvider, IReadOnlyCollection createResourceMethodParameters) { if (string.IsNullOrWhiteSpace(resourceProvider)) { @@ -417,32 +397,32 @@ public static string[] GetResourceTypes(string resourceProvider, string methodPa for (int i = 0; i < pathSegments.Length; i += 2) { string pathSegment = pathSegments[i]; - if (pathSegment.StartsWith("{") && pathSegment.EndsWith("}")) + if (pathSegment.StartsWith("{", StringComparison.Ordinal) && pathSegment.EndsWith("}", StringComparison.Ordinal)) { string parameterName = pathSegment.Substring(1, pathSegment.Length - 2); Parameter parameter = createResourceMethodParameters.FirstOrDefault(methodParameter => methodParameter.Name == parameterName); if (parameter == null) { - string errorMessage = string.Format("Found undefined parameter reference {0} in create resource method \"{1}/{2}/{3}\".", pathSegment, resourceMethodPrefix, resourceProvider, methodPathAfterProvider); + string errorMessage = string.Format(CultureInfo.CurrentCulture, "Found undefined parameter reference {0} in create resource method \"{1}/{2}/{3}\".", pathSegment, resourceMethodPrefix, resourceProvider, methodPathAfterProvider); throw new ArgumentException(errorMessage, "createResourceMethodParameters"); } if (parameter.Type == null) { - string errorMessage = string.Format("Parameter reference {0} has no defined type.", pathSegment); + string errorMessage = string.Format(CultureInfo.CurrentCulture, "Parameter reference {0} has no defined type.", pathSegment); throw new ArgumentException(errorMessage, "createResourceMethodParameters"); } EnumType parameterType = parameter.Type as EnumType; if (parameterType == null) { - string errorMessage = string.Format("Parameter reference {0} is defined as a type other than an EnumType: {1}", pathSegment, parameter.Type.GetType().Name); + string errorMessage = string.Format(CultureInfo.CurrentCulture, "Parameter reference {0} is defined as a type other than an EnumType: {1}", pathSegment, parameter.Type.GetType().Name); throw new ArgumentException(errorMessage, "createResourceMethodParameters"); } if (parameterType.Values == null || parameterType.Values.Count == 0) { - string errorMessage = string.Format("Parameter reference {0} is defined as an EnumType, but it doesn't have any specified values.", pathSegment); + string errorMessage = string.Format(CultureInfo.CurrentCulture, "Parameter reference {0} is defined as an EnumType, but it doesn't have any specified values.", pathSegment); throw new ArgumentException(errorMessage, "createResourceMethodParameters"); } From 19a6cc5e11182196e1a5a9c1f9c47f37e4c635e2 Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Wed, 25 May 2016 11:30:50 -0700 Subject: [PATCH 05/14] Add ability to seperate acceptance tests for AzureResourceSchema generator by resource provider and api version --- .../AcceptanceTests.cs | 28 +- ...Generator.AzureResourceSchema.Tests.csproj | 38 +- .../{ => 2015-12-01}/Microsoft.Batch.json | 0 .../CDN/{ => 2016-04-02}/Microsoft.Cdn.json | 0 .../{ => 2016-03-30}/Microsoft.Compute.json | 0 .../2015-05-04-preview/Microsoft.Network.json | 1134 +++++++++++++++++ .../{ => 2016-04-01}/Microsoft.Network.json | 0 .../{ => 2016-03-30}/Microsoft.Network.json | 0 .../{ => 2016-01-01}/Microsoft.Storage.json | 0 .../Microsoft.CertificateRegistration.json | 0 .../Microsoft.DomainRegistration.json | 0 .../Web/{ => 2015-08-01}/Microsoft.Web.json | 0 .../2015-12-01}/BatchManagement.json | 0 .../Swagger/{ => CDN/2016-04-02}/cdn.json | 0 .../{ => Compute/2016-03-30}/compute.json | 0 .../Swagger/DNS/2015-05-04-preview/dns.json | 980 ++++++++++++++ .../Swagger/{ => DNS/2016-04-01}/dns.json | 0 .../{ => Network/2016-03-30}/network.json | 0 .../{ => Storage/2016-01-01}/storage.json | 0 .../Swagger/{ => Web/2015-08-01}/web.json | 0 20 files changed, 2153 insertions(+), 27 deletions(-) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Batch/{ => 2015-12-01}/Microsoft.Batch.json (100%) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CDN/{ => 2016-04-02}/Microsoft.Cdn.json (100%) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/{ => 2016-03-30}/Microsoft.Compute.json (100%) create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/2015-05-04-preview/Microsoft.Network.json rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/{ => 2016-04-01}/Microsoft.Network.json (100%) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Network/{ => 2016-03-30}/Microsoft.Network.json (100%) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/{ => 2016-01-01}/Microsoft.Storage.json (100%) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/{ => 2015-08-01}/Microsoft.CertificateRegistration.json (100%) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/{ => 2015-08-01}/Microsoft.DomainRegistration.json (100%) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/{ => 2015-08-01}/Microsoft.Web.json (100%) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/{ => Batch/2015-12-01}/BatchManagement.json (100%) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/{ => CDN/2016-04-02}/cdn.json (100%) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/{ => Compute/2016-03-30}/compute.json (100%) create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DNS/2015-05-04-preview/dns.json rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/{ => DNS/2016-04-01}/dns.json (100%) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/{ => Network/2016-03-30}/network.json (100%) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/{ => Storage/2016-01-01}/storage.json (100%) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/{ => Web/2015-08-01}/web.json (100%) diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs index 2f0bd92c6b47e..15400bc596087 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs @@ -14,50 +14,56 @@ public static class AcceptanceTests [Fact] public static void Storage() { - RunSwaggerTest("storage.json", "Storage"); + RunSwaggerTest("Storage", "2016-01-01", "storage.json"); } [Fact] public static void Batch() { - RunSwaggerTest("BatchManagement.json", "Batch"); + RunSwaggerTest("Batch", "2015-12-01", "BatchManagement.json"); } [Fact] public static void Cdn() { - RunSwaggerTest("cdn.json", "CDN"); + RunSwaggerTest("CDN", "2016-04-02", "cdn.json"); } [Fact] public static void Compute() { - RunSwaggerTest("compute.json", "Compute"); + RunSwaggerTest("Compute", "2016-03-30", "compute.json"); } [Fact] - public static void Dns() + public static void Dns_2015_05_04_preview() { - RunSwaggerTest("dns.json", "DNS"); + RunSwaggerTest("DNS", "2015-05-04-preview", "dns.json"); + } + + [Fact] + public static void Dns_2016_04_01() + { + RunSwaggerTest("DNS", "2016-04-01", "dns.json"); } [Fact] public static void Network() { - RunSwaggerTest("network.json", "Network"); + RunSwaggerTest("Network", "2016-03-30", "network.json"); } [Fact] public static void Web() { - RunSwaggerTest("web.json", "Web"); + RunSwaggerTest("Web", "2015-08-01", "web.json"); } - private static void RunSwaggerTest(string swaggerFileName, string expectedFolderName) + private static void RunSwaggerTest(string resourceType, string apiVersion, string swaggerFileName) { SwaggerSpecHelper.RunTests( - Path.Combine("Swagger", swaggerFileName), - Path.Combine("Expected", expectedFolderName)); + Path.Combine("Swagger", resourceType, apiVersion, swaggerFileName), + Path.Combine("Expected", resourceType, apiVersion)); } } } 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 f765120e4e32f..2aef930f9994f 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj @@ -78,55 +78,61 @@ - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + + PreserveNewest + + PreserveNewest PreserveNewest - + + PreserveNewest + + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Batch/Microsoft.Batch.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Batch/2015-12-01/Microsoft.Batch.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Batch/Microsoft.Batch.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Batch/2015-12-01/Microsoft.Batch.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CDN/Microsoft.Cdn.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CDN/2016-04-02/Microsoft.Cdn.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CDN/Microsoft.Cdn.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CDN/2016-04-02/Microsoft.Cdn.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/Microsoft.Compute.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2016-03-30/Microsoft.Compute.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/Microsoft.Compute.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2016-03-30/Microsoft.Compute.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/2015-05-04-preview/Microsoft.Network.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/2015-05-04-preview/Microsoft.Network.json new file mode 100644 index 0000000000000..87fab4f947e73 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/2015-05-04-preview/Microsoft.Network.json @@ -0,0 +1,1134 @@ +{ + "id": "http://schema.management.azure.com/schemas/2015-05-04-preview/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": [ + "2015-05-04-preview" + ] + }, + "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." + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/dnszones_TXT_childResource" + }, + { + "$ref": "#/definitions/dnszones_SRV_childResource" + }, + { + "$ref": "#/definitions/dnszones_SOA_childResource" + }, + { + "$ref": "#/definitions/dnszones_PTR_childResource" + }, + { + "$ref": "#/definitions/dnszones_NS_childResource" + }, + { + "$ref": "#/definitions/dnszones_MX_childResource" + }, + { + "$ref": "#/definitions/dnszones_CNAME_childResource" + }, + { + "$ref": "#/definitions/dnszones_AAAA_childResource" + }, + { + "$ref": "#/definitions/dnszones_A_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones" + }, + "dnszones_A": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/A" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/A" + }, + "dnszones_AAAA": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/AAAA" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/AAAA" + }, + "dnszones_CNAME": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/CNAME" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/CNAME" + }, + "dnszones_MX": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/MX" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/MX" + }, + "dnszones_NS": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/NS" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/NS" + }, + "dnszones_PTR": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/PTR" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/PTR" + }, + "dnszones_SOA": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/SOA" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/SOA" + }, + "dnszones_SRV": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/SRV" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/SRV" + }, + "dnszones_TXT": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/dnszones/TXT" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/TXT" + } + }, + "definitions": { + "AaaaRecord": { + "type": "object", + "properties": { + "ipv6Address": { + "type": "string", + "description": "Gets or sets the IPv6 address of this AAAA record in string notation." + } + }, + "description": "An AAAA record." + }, + "ARecord": { + "type": "object", + "properties": { + "ipv4Address": { + "type": "string", + "description": "Gets or sets the IPv4 address of this A record in string notation." + } + }, + "description": "An A record." + }, + "CnameRecord": { + "type": "object", + "properties": { + "cname": { + "type": "string", + "description": "Gets or sets the canonical name for this record without a terminating dot." + } + }, + "description": "A CNAME record." + }, + "dnszones_A_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "A" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/A" + }, + "dnszones_AAAA_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "AAAA" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/AAAA" + }, + "dnszones_CNAME_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "CNAME" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/CNAME" + }, + "dnszones_MX_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "MX" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/MX" + }, + "dnszones_NS_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "NS" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/NS" + }, + "dnszones_PTR_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "PTR" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/PTR" + }, + "dnszones_SOA_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "SOA" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/SOA" + }, + "dnszones_SRV_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "SRV" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/SRV" + }, + "dnszones_TXT_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "TXT" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-04-preview" + ] + }, + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RecordSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the RecordSet." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/dnszones/TXT" + }, + "MxRecord": { + "type": "object", + "properties": { + "preference": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "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": { + "type": "object", + "properties": { + "nsdname": { + "type": "string", + "description": "Gets or sets the name server name for this record, without a terminating dot." + } + }, + "description": "An NS record." + }, + "PtrRecord": { + "type": "object", + "properties": { + "ptrdname": { + "type": "string", + "description": "Gets or sets the PTR target domain name for this record without a terminating dot." + } + }, + "description": "A PTR record." + }, + "RecordSetProperties": { + "type": "object", + "properties": { + "TTL": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the TTL of the records in the RecordSet." + }, + "ARecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ARecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of A records in the RecordSet." + }, + "AAAARecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/AaaaRecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of AAAA records in the RecordSet." + }, + "MXRecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/MxRecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of MX records in the RecordSet." + }, + "NSRecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/NsRecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of NS records in the RecordSet." + }, + "PTRRecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/PtrRecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of PTR records in the RecordSet." + }, + "SRVRecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SrvRecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of SRV records in the RecordSet." + }, + "TXTRecords": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/TxtRecord" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of TXT records in the RecordSet." + }, + "CNAMERecord": { + "oneOf": [ + { + "$ref": "#/definitions/CnameRecord" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the CNAME record in the RecordSet." + }, + "SOARecord": { + "oneOf": [ + { + "$ref": "#/definitions/SoaRecord" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the SOA record in the RecordSet." + } + }, + "description": "Represents the properties of the records in the RecordSet." + }, + "SoaRecord": { + "type": "object", + "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": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the serial number for this record." + }, + "refreshTime": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the refresh value for this record." + }, + "retryTime": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the retry time for this record." + }, + "expireTime": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the expire time for this record." + }, + "minimumTTL": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the minimum TTL value for this record." + } + }, + "description": "An SOA record." + }, + "SrvRecord": { + "type": "object", + "properties": { + "priority": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the priority metric for this record." + }, + "weight": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the weight metric for this this record." + }, + "port": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "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": { + "type": "object", + "properties": { + "value": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the text value of this record." + } + }, + "description": "A TXT record." + }, + "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/Expected/DNS/Microsoft.Network.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/2016-04-01/Microsoft.Network.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/Microsoft.Network.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DNS/2016-04-01/Microsoft.Network.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Network/Microsoft.Network.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Network/2016-03-30/Microsoft.Network.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Network/Microsoft.Network.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Network/2016-03-30/Microsoft.Network.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/Microsoft.Storage.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/2016-01-01/Microsoft.Storage.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/Microsoft.Storage.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/2016-01-01/Microsoft.Storage.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/Microsoft.CertificateRegistration.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.CertificateRegistration.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/Microsoft.CertificateRegistration.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.CertificateRegistration.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/Microsoft.DomainRegistration.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.DomainRegistration.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/Microsoft.DomainRegistration.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.DomainRegistration.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/Microsoft.Web.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.Web.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/Microsoft.Web.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.Web.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/BatchManagement.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Batch/2015-12-01/BatchManagement.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/BatchManagement.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Batch/2015-12-01/BatchManagement.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/cdn.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/CDN/2016-04-02/cdn.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/cdn.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/CDN/2016-04-02/cdn.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/compute.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Compute/2016-03-30/compute.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/compute.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Compute/2016-03-30/compute.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DNS/2015-05-04-preview/dns.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DNS/2015-05-04-preview/dns.json new file mode 100644 index 0000000000000..5dd62af6df8ca --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DNS/2015-05-04-preview/dns.json @@ -0,0 +1,980 @@ +{ + "swagger": "2.0", + "info": { + "title": "DnsManagementClient", + "description": "Client for managing DNS zones and record.", + "version": "2015-05-04-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnszones/{zoneName}/{recordType}/{relativeRecordSetName}": { + "put": { + "tags": [ + "RecordSets" + ], + "operationId": "RecordSets_CreateOrUpdate", + "description": "Creates 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": "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" + } + }, + { + "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": "If-Match", + "in": "header", + "type": "string", + "description": "The etag of RecordSet." + }, + { + "name": "If-None-Match", + "in": "header", + "type": "string", + "description": "Defines the If-None-Match condition. Set to '*' to force Create-If-Not-Exist. Other values will be ignored." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RecordSet" + }, + "description": "Parameters supplied to the CreateOrUpdate operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RecordSet" + } + }, + "202": { + "description": "" + } + } + }, + "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": "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" + } + }, + { + "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": "If-Match", + "in": "header", + "type": "string", + "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." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + } + } + }, + "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": "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" + } + }, + { + "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 + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RecordSet" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnszones/{zoneName}/{recordType}": { + "get": { + "tags": [ + "RecordSets" + ], + "operationId": "RecordSets_List", + "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" + } + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "string", + "description": "Query parameters. If null is passed returns the default number of zones." + }, + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "The filter to apply on the operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RecordSetListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-odata": "#/definitions/RecordSet" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnszones/{zoneName}/recordsets": { + "get": { + "tags": [ + "RecordSets" + ], + "operationId": "RecordSets_ListAll", + "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." + }, + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "The filter to apply on the operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RecordSetListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-odata": "#/definitions/RecordSet" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnszones/{zoneName}": { + "put": { + "tags": [ + "Zones" + ], + "operationId": "Zones_CreateOrUpdate", + "description": "Creates 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": "If-Match", + "in": "header", + "type": "string", + "description": "The etag of Zone." + }, + { + "name": "If-None-Match", + "in": "header", + "type": "string", + "description": "Defines the If-None-Match condition. Set to '*' to force Create-If-Not-Exist. Other values will be ignored." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Zone" + }, + "description": "Parameters supplied to the CreateOrUpdate operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/Zone" + } + }, + "202": { + "description": "" + } + } + }, + "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", + "type": "string", + "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." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + } + } + }, + "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" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnszones": { + "get": { + "tags": [ + "Zones" + ], + "operationId": "Zones_ListZonesInResourceGroup", + "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." + }, + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "The filter to apply on the operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ZoneListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-odata": "#/definitions/Zone" + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/dnszones": { + "get": { + "tags": [ + "Zones" + ], + "operationId": "Zones_ListZonesInSubscription", + "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." + }, + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "The filter to apply on the operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ZoneListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-odata": "#/definitions/Zone" + } + } + }, + "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", + "description": "Gets or sets the minimum TTL value for this record." + } + }, + "description": "An SOA record." + }, + "RecordSetProperties": { + "properties": { + "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", + "items": { + "$ref": "#/definitions/AaaaRecord" + }, + "description": "Gets or sets the list of AAAA records in the RecordSet." + }, + "MXRecords": { + "type": "array", + "items": { + "$ref": "#/definitions/MxRecord" + }, + "description": "Gets or sets the list of MX records in the RecordSet." + }, + "NSRecords": { + "type": "array", + "items": { + "$ref": "#/definitions/NsRecord" + }, + "description": "Gets or sets the list of NS records in the RecordSet." + }, + "PTRRecords": { + "type": "array", + "items": { + "$ref": "#/definitions/PtrRecord" + }, + "description": "Gets or sets the list of PTR records in the RecordSet." + }, + "SRVRecords": { + "type": "array", + "items": { + "$ref": "#/definitions/SrvRecord" + }, + "description": "Gets or sets the list of SRV records in the RecordSet." + }, + "TXTRecords": { + "type": "array", + "items": { + "$ref": "#/definitions/TxtRecord" + }, + "description": "Gets or sets the list of TXT records in the RecordSet." + }, + "CNAMERecord": { + "$ref": "#/definitions/CnameRecord", + "description": "Gets or sets the CNAME record in the RecordSet." + }, + "SOARecord": { + "$ref": "#/definitions/SoaRecord", + "description": "Gets or sets the SOA record in the RecordSet." + } + }, + "description": "Represents the properties of the records in the RecordSet." + }, + "RecordSet": { + "properties": { + "etag": { + "type": "string", + "description": "Gets or sets the ETag of the RecordSet." + }, + "properties": { + "$ref": "#/definitions/RecordSetProperties", + "description": "Gets or sets the properties of the RecordSet." + } + }, + "allOf": [ + { + "$ref": "Resource" + } + ], + "description": "Describes a DNS RecordSet (a set of DNS records with the same name and type)." + }, + "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." + } + }, + "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": { + "$ref": "#/definitions/ZoneProperties", + "description": "Gets or sets the properties of the zone." + } + }, + "allOf": [ + { + "$ref": "Resource" + } + ], + "description": "Describes a DNS zone." + }, + "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": { + "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": true + }, + "SubResource": { + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + } + }, + "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." + } + } +} + diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/dns.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DNS/2016-04-01/dns.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/dns.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DNS/2016-04-01/dns.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/network.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Network/2016-03-30/network.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/network.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Network/2016-03-30/network.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/storage.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Storage/2016-01-01/storage.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/storage.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Storage/2016-01-01/storage.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/web.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Web/2015-08-01/web.json similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/web.json rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Web/2015-08-01/web.json From ef4d3ed9f7d81ebd29771981b752e74e22cbba6c Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Wed, 25 May 2016 12:32:37 -0700 Subject: [PATCH 06/14] Add additional CDN swagger and schema --- .../AcceptanceTests.cs | 8 +- ...Generator.AzureResourceSchema.Tests.csproj | 8 +- .../CDN/2015-06-01/Microsoft.Cdn.json | 572 ++++ .../Swagger/CDN/2015-06-01/cdn.json | 2471 +++++++++++++++++ 4 files changed, 3057 insertions(+), 2 deletions(-) create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CDN/2015-06-01/Microsoft.Cdn.json create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/CDN/2015-06-01/cdn.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs index 15400bc596087..b914c4694ea34 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs @@ -24,7 +24,13 @@ public static void Batch() } [Fact] - public static void Cdn() + public static void Cdn_2015_06_01() + { + RunSwaggerTest("CDN", "2015-06-01", "cdn.json"); + } + + [Fact] + public static void Cdn_2016_04_02() { RunSwaggerTest("CDN", "2016-04-02", "cdn.json"); } 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 2aef930f9994f..c9afa085b306a 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj @@ -108,6 +108,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -117,7 +120,7 @@ PreserveNewest - + PreserveNewest @@ -135,6 +138,9 @@ PreserveNewest + + PreserveNewest + diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CDN/2015-06-01/Microsoft.Cdn.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CDN/2015-06-01/Microsoft.Cdn.json new file mode 100644 index 0000000000000..3360b84c0ad49 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CDN/2015-06-01/Microsoft.Cdn.json @@ -0,0 +1,572 @@ +{ + "id": "http://schema.management.azure.com/schemas/2015-06-01/Microsoft.Cdn.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Cdn", + "description": "Microsoft Cdn Resource Types", + "resourceDefinitions": { + "profiles": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Cdn/profiles" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-01" + ] + }, + "location": { + "type": "string", + "description": "Profile location" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Profile tags" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProfilePropertiesCreateParameters" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/profiles_endpoints_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "location", + "properties" + ], + "description": "Microsoft.Cdn/profiles" + }, + "profiles_endpoints": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Cdn/profiles/endpoints" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-01" + ] + }, + "location": { + "type": "string", + "description": "Endpoint location" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Endpoint tags" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/EndpointPropertiesCreateParameters" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/profiles_endpoints_customDomains_childResource" + }, + { + "$ref": "#/definitions/profiles_endpoints_origins_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "location", + "properties" + ], + "description": "Microsoft.Cdn/profiles/endpoints" + }, + "profiles_endpoints_customDomains": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Cdn/profiles/endpoints/customDomains" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-01" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/CustomDomainPropertiesParameters" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Cdn/profiles/endpoints/customDomains" + }, + "profiles_endpoints_origins": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Cdn/profiles/endpoints/origins" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-01" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/OriginPropertiesParameters" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Cdn/profiles/endpoints/origins" + } + }, + "definitions": { + "CustomDomainPropertiesParameters": { + "type": "object", + "properties": { + "hostName": { + "type": "string", + "description": "The host name of the custom domain. Must be a domain name." + } + }, + "required": [ + "hostName" + ] + }, + "DeepCreatedOrigin": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Origin name" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/DeepCreatedOriginProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "required": [ + "name" + ], + "description": "Deep created origins within a CDN endpoint." + }, + "DeepCreatedOriginProperties": { + "type": "object", + "properties": { + "hostName": { + "type": "string", + "description": "The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are supported." + }, + "httpPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The value of the HTTP port. Must be between 1 and 65535" + }, + "httpsPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The value of the HTTPS port. Must be between 1 and 65535" + } + }, + "required": [ + "hostName" + ], + "description": "Properties of deep created origin on a CDN endpoint." + }, + "EndpointPropertiesCreateParameters": { + "type": "object", + "properties": { + "originHostHeader": { + "type": "string", + "description": "The host header CDN provider will send along with content requests to origins. The default value is the host name of the origin." + }, + "originPath": { + "type": "string", + "description": "The path used for origin requests." + }, + "contentTypesToCompress": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "List of content types on which compression will be applied. The value for the elements should be a valid MIME type." + }, + "isCompressionEnabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Indicates whether content compression is enabled. Default value is false. If compression is enabled, the content transferred from the CDN endpoint to the end user will be compressed. The requested content must be larger than 1 byte and smaller than 1 MB." + }, + "isHttpAllowed": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Indicates whether HTTP traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed." + }, + "isHttpsAllowed": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Indicates whether https traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed." + }, + "queryStringCachingBehavior": { + "oneOf": [ + { + "type": "string", + "enum": [ + "IgnoreQueryString", + "BypassCaching", + "UseQueryString", + "NotSet" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Defines the query string caching behavior. Possible values include: 'IgnoreQueryString', 'BypassCaching', 'UseQueryString', 'NotSet'" + }, + "origins": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/DeepCreatedOrigin" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The set of origins for the CDN endpoint. When multiple origins exist, the first origin will be used as primary and rest will be used as failover options." + } + }, + "required": [ + "origins" + ] + }, + "OriginPropertiesParameters": { + "type": "object", + "properties": { + "hostName": { + "type": "string", + "description": "The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are supported." + }, + "httpPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The value of the HTTP port. Must be between 1 and 65535." + }, + "httpsPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The value of the HTTPS port. Must be between 1 and 65535." + } + }, + "required": [ + "hostName" + ] + }, + "ProfilePropertiesCreateParameters": { + "type": "object", + "properties": { + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Profile SKU" + } + }, + "required": [ + "sku" + ] + }, + "profiles_endpoints_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "endpoints" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-01" + ] + }, + "location": { + "type": "string", + "description": "Endpoint location" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Endpoint tags" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/EndpointPropertiesCreateParameters" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/profiles_endpoints_customDomains_childResource" + }, + { + "$ref": "#/definitions/profiles_endpoints_origins_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "location", + "properties" + ], + "description": "Microsoft.Cdn/profiles/endpoints" + }, + "profiles_endpoints_customDomains_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "customDomains" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-01" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/CustomDomainPropertiesParameters" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Cdn/profiles/endpoints/customDomains" + }, + "profiles_endpoints_origins_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "origins" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-01" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/OriginPropertiesParameters" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Cdn/profiles/endpoints/origins" + }, + "Sku": { + "type": "object", + "properties": { + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Standard", + "Premium" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Name of the pricing tier. Possible values include: 'Standard', 'Premium'" + } + }, + "description": "The SKU (pricing tier) of the CDN profile." + } + } +} diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/CDN/2015-06-01/cdn.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/CDN/2015-06-01/cdn.json new file mode 100644 index 0000000000000..8a00c578c25b6 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/CDN/2015-06-01/cdn.json @@ -0,0 +1,2471 @@ +{ + "swagger": "2.0", + "info": { + "version": "2015-06-01", + "title": "CdnManagementClient", + "description": "Use these APIs to manage Azure CDN resources through the Azure Resource Manager. You must make sure that requests made to these resources are secure. For more information, see Authenticating Azure Resource Manager requests." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/providers/Microsoft.Cdn/profiles": { + "get": { + "tags": [ + "Profiles" + ], + "summary": "Lists the CDN profiles within an Azure subscitption.", + "operationId": "Profiles_ListBySubscriptionId", + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ProfileListResult" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles": { + "get": { + "tags": [ + "Profiles" + ], + "summary": "Lists the CDN profiles within a resource group.", + "operationId": "Profiles_ListByResourceGroup", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ProfileListResult" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}": { + "get": { + "tags": [ + "Profiles" + ], + "summary": "Gets a CDN profile with the specified parameters.", + "operationId": "Profiles_Get", + "parameters": [ + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Profile" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "tags": [ + "Profiles" + ], + "summary": "Creates a new CDN profile with the specified parameters.", + "operationId": "Profiles_Create", + "parameters": [ + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "profileProperties", + "in": "body", + "description": "Profile properties needed for creation.", + "required": true, + "schema": { + "$ref": "#/definitions/ProfileCreateParameters" + } + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Profile" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Profile" + } + }, + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "schema": { + "$ref": "#/definitions/Profile" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ + "Profiles" + ], + "summary": "Updates an existing CDN profile with the specified parameters.", + "operationId": "Profiles_Update", + "parameters": [ + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "profileProperties", + "in": "body", + "description": "Profile properties needed for update.", + "required": true, + "schema": { + "$ref": "#/definitions/ProfileUpdateParameters" + } + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Profile" + } + }, + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "schema": { + "$ref": "#/definitions/Profile" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ + "Profiles" + ], + "summary": "Deletes an existing CDN profile with the specified parameters. Deleting a profile will result in the deletion of all subresources including endpoints, origins and custom domains.", + "operationId": "Profiles_DeleteIfExists", + "parameters": [ + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Accepted and the operation will complete asynchronously." + }, + "204": { + "description": "No Content." + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/generateSsoUri": { + "post": { + "tags": [ + "Profiles" + ], + "summary": "Generates a dynamic SSO URI used to sign in to the CDN Supplemental Portal used for advanced management tasks, such as Country Filtering, Advanced HTTP Reports, and Real-time Stats and Alerts. The SSO URI changes approximately every 10 minutes.", + "operationId": "Profiles_GenerateSsoUri", + "parameters": [ + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SsoUri" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints": { + "get": { + "tags": [ + "Endpoints" + ], + "summary": "Lists existing CDN endpoints within a profile.", + "operationId": "Endpoints_ListByProfile", + "parameters": [ + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EndpointListResult" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}": { + "get": { + "tags": [ + "Endpoints" + ], + "summary": "Gets an existing CDN endpoint with the specified parameters.", + "operationId": "Endpoints_Get", + "parameters": [ + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Endpoint" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "tags": [ + "Endpoints" + ], + "summary": "Creates a new CDN endpoint with the specified parameters.", + "operationId": "Endpoints_Create", + "parameters": [ + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "endpointProperties", + "in": "body", + "description": "Endpoint properties", + "required": true, + "schema": { + "$ref": "#/definitions/EndpointCreateParameters" + } + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Endpoint" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Endpoint" + } + }, + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "schema": { + "$ref": "#/definitions/Endpoint" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ + "Endpoints" + ], + "summary": "Updates an existing CDN endpoint with the specified parameters. Only tags and OriginHostHeader can be updated after creating an endpoint. To update origins, use the Update Origin operation. To update custom domains, use the Update Custom Domain operation.", + "operationId": "Endpoints_Update", + "parameters": [ + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "endpointProperties", + "in": "body", + "description": "Endpoint properties", + "required": true, + "schema": { + "$ref": "#/definitions/EndpointUpdateParameters" + } + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Endpoint" + } + }, + "202": { + "description": "Accepted and the operation will complete asynchronously", + "schema": { + "$ref": "#/definitions/Endpoint" + } + }, + "default": { + "description": "CDN error response describing why the operation failed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ + "Endpoints" + ], + "summary": "Deletes an existing CDN endpoint with the specified parameters.", + "operationId": "Endpoints_DeleteIfExists", + "parameters": [ + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/start": { + "post": { + "tags": [ + "Endpoints" + ], + "summary": "Starts an existing stopped CDN endpoint.", + "operationId": "Endpoints_Start", + "parameters": [ + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "schema": { + "$ref": "#/definitions/Endpoint" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/stop": { + "post": { + "tags": [ + "Endpoints" + ], + "summary": "Stops an existing running CDN endpoint.", + "operationId": "Endpoints_Stop", + "parameters": [ + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "schema": { + "$ref": "#/definitions/Endpoint" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/purge": { + "post": { + "tags": [ + "Endpoints" + ], + "summary": "Forcibly purges CDN endpoint content.", + "operationId": "Endpoints_PurgeContent", + "parameters": [ + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "contentFilePaths", + "in": "body", + "description": "The path to the content to be purged. Path can describe a file or directory.", + "required": true, + "schema": { + "$ref": "#/definitions/PurgeParameters" + } + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Accepted and the operation will complete asynchronously." + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/load": { + "post": { + "tags": [ + "Endpoints" + ], + "summary": "Forcibly pre-loads CDN endpoint content.", + "operationId": "Endpoints_LoadContent", + "parameters": [ + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "contentFilePaths", + "in": "body", + "description": "The path to the content to be loaded. Path should describe a file.", + "required": true, + "schema": { + "$ref": "#/definitions/LoadParameters" + } + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Accepted and the operation will complete asynchronously." + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/validateCustomDomain": { + "post": { + "tags": [ + "Endpoints" + ], + "summary": "Validates a custom domain mapping to ensure it maps to the correct CNAME in DNS.", + "operationId": "Endpoints_ValidateCustomDomain", + "parameters": [ + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "customDomainProperties", + "in": "body", + "description": "Custom domain to validate.", + "required": true, + "schema": { + "$ref": "#/definitions/ValidateCustomDomainInput" + } + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ValidateCustomDomainOutput" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/origins": { + "get": { + "tags": [ + "Origins" + ], + "summary": "Lists the existing CDN origins within an endpoint.", + "operationId": "Origins_ListByEndpoint", + "parameters": [ + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OriginListResult" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/origins/{originName}": { + "get": { + "tags": [ + "Origins" + ], + "summary": "Gets an existing CDN origin within an endpoint.", + "operationId": "Origins_Get", + "parameters": [ + { + "name": "originName", + "in": "path", + "description": "Name of the origin, an arbitrary value but it needs to be unique under endpoint", + "required": true, + "type": "string" + }, + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Origin" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "tags": [ + "Origins" + ], + "summary": "Creates a new CDN origin within an endpoint.", + "operationId": "Origins_Create", + "parameters": [ + { + "name": "originName", + "in": "path", + "description": "Name of the origin, an arbitrary value but it needs to be unique under endpoint", + "required": true, + "type": "string" + }, + { + "name": "originProperties", + "in": "body", + "description": "Origin properties", + "required": true, + "schema": { + "$ref": "#/definitions/OriginParameters" + } + }, + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Origin" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Origin" + } + }, + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "schema": { + "$ref": "#/definitions/Origin" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ + "Origins" + ], + "summary": "Updates an existing CDN origin within an endpoint.", + "operationId": "Origins_Update", + "parameters": [ + { + "name": "originName", + "in": "path", + "description": "Name of the origin. Must be unique within endpoint.", + "required": true, + "type": "string" + }, + { + "name": "originProperties", + "in": "body", + "description": "Origin properties", + "required": true, + "schema": { + "$ref": "#/definitions/OriginParameters" + } + }, + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Origin" + } + }, + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "schema": { + "$ref": "#/definitions/Origin" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ + "Origins" + ], + "summary": "Deletes an existing CDN origin within an endpoint.", + "operationId": "Origins_DeleteIfExists", + "parameters": [ + { + "name": "originName", + "in": "path", + "description": "Name of the origin. Must be unique within endpoint.", + "required": true, + "type": "string" + }, + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "schema": { + "$ref": "#/definitions/Origin" + } + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/customDomains": { + "get": { + "tags": [ + "CustomDomains" + ], + "summary": "Lists the existing CDN custom domains within an endpoint.", + "operationId": "CustomDomains_ListByEndpoint", + "parameters": [ + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CustomDomainListResult" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/customDomains/{customDomainName}": { + "get": { + "tags": [ + "CustomDomains" + ], + "summary": "Gets an existing CDN custom domain within an endpoint.", + "operationId": "CustomDomains_Get", + "parameters": [ + { + "name": "customDomainName", + "in": "path", + "description": "Name of the custom domain within an endpoint.", + "required": true, + "type": "string" + }, + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CustomDomain" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "tags": [ + "CustomDomains" + ], + "summary": "Creates a new CDN custom domain within an endpoint.", + "operationId": "CustomDomains_Create", + "parameters": [ + { + "name": "customDomainName", + "in": "path", + "description": "Name of the custom domain within an endpoint.", + "required": true, + "type": "string" + }, + { + "name": "customDomainProperties", + "in": "body", + "description": "Custom domain properties required for creation.", + "required": true, + "schema": { + "$ref": "#/definitions/CustomDomainParameters" + } + }, + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CustomDomain" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/CustomDomain" + } + }, + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "schema": { + "$ref": "#/definitions/CustomDomain" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ + "CustomDomains" + ], + "summary": "Updates an existing CDN custom domain within an endpoint.", + "operationId": "CustomDomains_Update", + "parameters": [ + { + "name": "customDomainName", + "in": "path", + "description": "Name of the custom domain within an endpoint.", + "required": true, + "type": "string" + }, + { + "name": "customDomainProperties", + "in": "body", + "description": "Custom domain properties to update.", + "required": true, + "schema": { + "$ref": "#/definitions/CustomDomainParameters" + } + }, + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "CustomDomains" + ], + "summary": "Deletes an existing CDN custom domain within an endpoint.", + "operationId": "CustomDomains_DeleteIfExists", + "parameters": [ + { + "name": "customDomainName", + "in": "path", + "description": "Name of the custom domain within an endpoint.", + "required": true, + "type": "string" + }, + { + "name": "endpointName", + "in": "path", + "description": "Name of the endpoint within the CDN profile.", + "required": true, + "type": "string" + }, + { + "name": "profileName", + "in": "path", + "description": "Name of the CDN profile within the resource group.", + "required": true, + "type": "string" + }, + { + "name": "resourceGroupName", + "in": "path", + "description": "Name of the resource group within the Azure subscription.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "schema": { + "$ref": "#/definitions/CustomDomain" + } + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/providers/Microsoft.Cdn/checkNameAvailability": { + "post": { + "tags": [ + "CheckNameAvailability" + ], + "summary": "Check the availability of a resource name without creating the resource. This is needed for resources where name is globally unique, such as a CDN endpoint.", + "operationId": "NameAvailability_CheckNameAvailability", + "parameters": [ + { + "name": "checkNameAvailabilityInput", + "in": "body", + "description": "Input to check.", + "required": true, + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityInput" + } + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityOutput" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Cdn/operations": { + "get": { + "tags": [ + "Operations" + ], + "summary": "Lists all of the available CDN REST API operations.", + "operationId": "Operations_List", + "parameters": [ + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "CDN error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + } + }, + "definitions": { + "Profile": { + "description": "CDN profile represents the top level resource and the entry point into the CDN API. This allows users to set up a logical grouping of endpoints in addition to creating shared configuration settings and selecting pricing tiers and providers.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/TrackedResource" + } + ], + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ProfileProperties" + } + } + }, + "ProfileProperties": { + "properties": { + "sku": { + "description": "The SKU (pricing tier) of the CDN profile.", + "$ref": "#/definitions/Sku" + }, + "resourceState": { + "description": "Resource status of the profile.", + "readOnly": true, + "enum": [ + "Creating", + "Active", + "Deleting", + "Disabled" + ], + "type": "string", + "x-ms-enum": { + "name": "ProfileResourceState", + "modelAsString": false + } + }, + "provisioningState": { + "description": "Provisioning status of the profile.", + "$ref": "#/definitions/ProvisioningState" + } + } + }, + "ProfileListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Profile" + }, + "description": "List of CDN profiles within a resource group." + } + } + }, + "ProfileCreateParameters": { + "type": "object", + "description": "Profile properties required for profile creation.", + "required": [ + "location" + ], + "properties": { + "location": { + "description": "Profile location", + "type": "string" + }, + "tags": { + "description": "Profile tags", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ProfilePropertiesCreateParameters" + } + }, + "x-ms-azure-resource": true + }, + "ProfilePropertiesCreateParameters": { + "required": [ + "sku" + ], + "properties": { + "sku": { + "description": "Profile SKU", + "$ref": "#/definitions/Sku" + } + } + }, + "ProfileUpdateParameters": { + "type": "object", + "description": "Profile properties required for profile update.", + "required": [ + "tags" + ], + "properties": { + "tags": { + "description": "Profile tags", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "x-ms-azure-resource": true + }, + "SsoUri": { + "description": "SSO URI required to login to third party web portal.", + "type": "object", + "properties": { + "ssoUriValue": { + "description": "The URI used to login to third party web portal.", + "type": "string" + } + } + }, + "Endpoint": { + "description": "CDN endpoint is the entity within a CDN profile containing configuration information regarding caching behaviors and origins. The CDN endpoint is exposed using the URL format .azureedge.net by default, but custom domains can also be created.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/TrackedResource" + } + ], + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/EndpointProperties" + } + } + }, + "EndpointProperties": { + "properties": { + "hostName": { + "description": "The host name of the endpoint {endpointName}.{DNSZone}", + "type": "string", + "readOnly": true + }, + "originHostHeader": { + "description": "The host header the CDN provider will send along with content requests to origins. The default value is the host name of the origin.", + "type": "string" + }, + "originPath": { + "description": "The path used for origin requests.", + "type": "string" + }, + "contentTypesToCompress": { + "description": "List of content types on which compression will be applied. The value for the elements should be a valid MIME type.", + "type": "array", + "items": { + "type": "string" + } + }, + "isCompressionEnabled": { + "description": "Indicates whether the compression is enabled. Default value is false. If compression is enabled, the content transferred from cdn endpoint to end user will be compressed. The requested content must be larger than 1 byte and smaller than 1 MB.", + "type": "boolean" + }, + "isHttpAllowed": { + "description": "Indicates whether HTTP traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.", + "type": "boolean" + }, + "isHttpsAllowed": { + "description": "Indicates whether https traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.", + "type": "boolean" + }, + "queryStringCachingBehavior": { + "description": "Defines the query string caching behavior.", + "$ref": "#/definitions/QueryStringCachingBehavior" + }, + "origins": { + "description": "The set of origins for the CDN endpoint. When multiple origins exist, the first origin will be used as primary and rest will be used as failover options.", + "type": "array", + "items": { + "$ref": "#/definitions/DeepCreatedOrigin" + } + }, + "resourceState": { + "description": "Resource status of the endpoint.", + "readOnly": true, + "enum": [ + "Creating", + "Deleting", + "Running", + "Starting", + "Stopped", + "Stopping" + ], + "type": "string", + "x-ms-enum": { + "name": "EndpointResourceState", + "modelAsString": false + } + }, + "provisioningState": { + "description": "Provisioning status of the endpoint.", + "$ref": "#/definitions/ProvisioningState" + } + } + }, + "EndpointListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Endpoint" + }, + "description": "List of CDN endpoints within a profile" + } + } + }, + "EndpointCreateParameters": { + "type": "object", + "description": "Endpoint properties required for new endpoint creation.", + "required": [ + "location" + ], + "properties": { + "location": { + "description": "Endpoint location", + "type": "string" + }, + "tags": { + "description": "Endpoint tags", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/EndpointPropertiesCreateParameters" + } + }, + "x-ms-azure-resource": true + }, + "EndpointUpdateParameters": { + "type": "object", + "description": "Endpoint properties required for new endpoint creation.", + "properties": { + "tags": { + "description": "Endpoint tags", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/EndpointPropertiesUpdateParameters" + } + }, + "x-ms-azure-resource": true + }, + "EndpointPropertiesCreateParameters": { + "required": [ + "origins" + ], + "properties": { + "originHostHeader": { + "description": "The host header CDN provider will send along with content requests to origins. The default value is the host name of the origin.", + "type": "string" + }, + "originPath": { + "description": "The path used for origin requests.", + "type": "string" + }, + "contentTypesToCompress": { + "description": "List of content types on which compression will be applied. The value for the elements should be a valid MIME type.", + "type": "array", + "items": { + "type": "string" + } + }, + "isCompressionEnabled": { + "description": "Indicates whether content compression is enabled. Default value is false. If compression is enabled, the content transferred from the CDN endpoint to the end user will be compressed. The requested content must be larger than 1 byte and smaller than 1 MB.", + "type": "boolean" + }, + "isHttpAllowed": { + "description": "Indicates whether HTTP traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.", + "type": "boolean" + }, + "isHttpsAllowed": { + "description": "Indicates whether https traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.", + "type": "boolean" + }, + "queryStringCachingBehavior": { + "description": "Defines the query string caching behavior.", + "$ref": "#/definitions/QueryStringCachingBehavior" + }, + "origins": { + "description": "The set of origins for the CDN endpoint. When multiple origins exist, the first origin will be used as primary and rest will be used as failover options.", + "type": "array", + "items": { + "$ref": "#/definitions/DeepCreatedOrigin" + } + } + } + }, + "EndpointPropertiesUpdateParameters": { + "properties": { + "originHostHeader": { + "description": "The host header the CDN provider will send along with content requests to origins. The default value is the host name of the origin.", + "type": "string" + }, + "originPath": { + "description": "The path used for origin requests.", + "type": "string" + }, + "contentTypesToCompress": { + "description": "List of content types on which compression will be applied. The value for the elements should be a valid MIME type.", + "type": "array", + "items": { + "type": "string" + } + }, + "isCompressionEnabled": { + "description": "Indicates whether content compression is enabled. Default value is false. If compression is enabled, the content transferred from the CDN endpoint to the end user will be compressed. The requested content must be larger than 1 byte and smaller than 1 MB.", + "type": "boolean" + }, + "isHttpAllowed": { + "description": "Indicates whether HTTP traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.", + "type": "boolean" + }, + "isHttpsAllowed": { + "description": "Indicates whether HTTPS traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.", + "type": "boolean" + }, + "queryStringCachingBehavior": { + "description": "Defines the query string caching behavior", + "$ref": "#/definitions/QueryStringCachingBehavior" + } + } + }, + "DeepCreatedOrigin": { + "description": "Deep created origins within a CDN endpoint.", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "Origin name", + "type": "string" + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/DeepCreatedOriginProperties" + } + }, + "x-ms-azure-resource": true + }, + "DeepCreatedOriginProperties": { + "description": "Properties of deep created origin on a CDN endpoint.", + "type": "object", + "required": [ + "hostName" + ], + "properties": { + "hostName": { + "description": "The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are supported.", + "type": "string" + }, + "httpPort": { + "description": "The value of the HTTP port. Must be between 1 and 65535", + "type": "integer" + }, + "httpsPort": { + "description": "The value of the HTTPS port. Must be between 1 and 65535", + "type": "integer" + } + }, + "x-ms-azure-resource": true + }, + "PurgeParameters": { + "type": "object", + "description": "Parameters required for endpoint purge.", + "required": [ + "contentPaths" + ], + "properties": { + "contentPaths": { + "description": "The path to the content to be purged. Can describe a file path or a wild card directory.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "LoadParameters": { + "type": "object", + "description": "Parameters required for endpoint load.", + "required": [ + "contentPaths" + ], + "properties": { + "contentPaths": { + "description": "The path to the content to be loaded. Should describe a file path.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Origin": { + "description": "CDN origin is the source of the content being delivered via CDN. When the edge nodes represented by an endpoint do not have the requested content cached, they attempt to fetch it from one or more of the configured origins.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/OriginProperties" + } + } + }, + "OriginProperties": { + "required": [ + "hostName" + ], + "properties": { + "hostName": { + "description": "The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are supported.", + "type": "string" + }, + "httpPort": { + "description": "The value of the HTTP port. Must be between 1 and 65535.", + "type": "integer" + }, + "httpsPort": { + "description": "The value of the https port. Must be between 1 and 65535.", + "type": "integer" + }, + "resourceState": { + "description": "Resource status of the origin.", + "readOnly": true, + "enum": [ + "Creating", + "Active", + "Deleting" + ], + "type": "string", + "x-ms-enum": { + "name": "OriginResourceState", + "modelAsString": false + } + }, + "provisioningState": { + "description": "Provisioning status of the origin.", + "$ref": "#/definitions/ProvisioningState" + } + } + }, + "OriginParameters": { + "type": "object", + "description": "Origin properties needed for origin creation or update.", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/OriginPropertiesParameters" + } + }, + "x-ms-azure-resource": true + }, + "OriginPropertiesParameters": { + "required": [ + "hostName" + ], + "properties": { + "hostName": { + "description": "The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are supported.", + "type": "string" + }, + "httpPort": { + "description": "The value of the HTTP port. Must be between 1 and 65535.", + "type": "integer" + }, + "httpsPort": { + "description": "The value of the HTTPS port. Must be between 1 and 65535.", + "type": "integer" + } + } + }, + "OriginListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Origin" + }, + "description": "List of CDN origins within an endpoint" + } + } + }, + "CustomDomain": { + "description": "CDN CustomDomain represents a mapping between a user specified domain name and a CDN endpoint. This is to use custom domain names to represent the URLs for branding purposes.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/CustomDomainProperties" + } + } + }, + "CustomDomainProperties": { + "required": [ + "hostName" + ], + "properties": { + "hostName": { + "description": "The host name of the custom domain. Must be a domain name.", + "type": "string" + }, + "resourceState": { + "description": "Resource status of the custom domain.", + "readOnly": true, + "enum": [ + "Creating", + "Active", + "Deleting" + ], + "type": "string", + "x-ms-enum": { + "name": "CustomDomainResourceState", + "modelAsString": false + } + }, + "provisioningState": { + "description": "Provisioning status of the custom domain.", + "$ref": "#/definitions/ProvisioningState" + } + } + }, + "CustomDomainParameters": { + "description": "CustomDomain properties required for custom domain creation or update.", + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/CustomDomainPropertiesParameters" + } + }, + "x-ms-azure-resource": true + }, + "CustomDomainPropertiesParameters": { + "required": [ + "hostName" + ], + "properties": { + "hostName": { + "description": "The host name of the custom domain. Must be a domain name.", + "type": "string" + } + } + }, + "CustomDomainListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/CustomDomain" + }, + "description": "List of CDN CustomDomains within an endpoint." + } + } + }, + "ValidateCustomDomainInput": { + "description": "Input of the custom domain to be validated.", + "type": "object", + "required": [ + "hostName" + ], + "properties": { + "hostName": { + "description": "The host name of the custom domain. Must be a domain name.", + "type": "string" + } + } + }, + "ValidateCustomDomainOutput": { + "description": "Output of custom domain validation.", + "type": "object", + "properties": { + "customDomainValidated": { + "description": "Indicates whether the custom domain is validated or not.", + "type": "boolean" + }, + "reason": { + "description": "The reason why the custom domain is not valid.", + "type": "string" + }, + "message": { + "description": "The message describing why the custom domain is not valid.", + "type": "string" + } + } + }, + "CheckNameAvailabilityInput": { + "description": "Input of CheckNameAvailability API.", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "The resource name to validate.", + "type": "string" + }, + "type": { + "description": "The type of the resource whose name is to be validated.", + "$ref": "#/definitions/ResourceType" + } + } + }, + "CheckNameAvailabilityOutput": { + "description": "Output of check name availability API.", + "type": "object", + "properties": { + "NameAvailable": { + "description": "Indicates whether the name is available.", + "type": "boolean" + }, + "Reason": { + "description": "The reason why the name is not available.", + "type": "string" + }, + "Message": { + "description": "The detailed error message describing why the name is not available.", + "type": "string" + } + } + }, + "ResourceType": { + "description": "Type of CDN resource used in CheckNameAvailability.", + "readOnly": true, + "enum": [ + "Microsoft.Cdn/Profiles/Endpoints" + ], + "type": "string", + "x-ms-enum": { + "name": "ResourceType", + "modelAsString": false + } + }, + "Operation": { + "description": "CDN REST API operation", + "type": "object", + "properties": { + "name": { + "description": "Operation name: {provider}/{resource}/{operation}", + "type": "string" + }, + "display": { + "properties": { + "provider": { + "description": "Service provider: Microsoft.Cdn", + "type": "string" + }, + "resource": { + "description": "Resource on which the operation is performed: Profile, endpoint, etc.", + "type": "string" + }, + "operation": { + "description": "Operation type: Read, write, delete, etc.", + "type": "string" + } + } + } + } + }, + "OperationListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Operation" + }, + "description": "List of CDN operations supported by the CDN resource provider." + } + } + }, + "TrackedResource": { + "description": "ARM tracked resource", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "required": [ + "location", + "tags" + ], + "properties": { + "location": { + "description": "Resource location", + "type": "string" + }, + "tags": { + "description": "Resource tags", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "Resource": { + "properties": { + "id": { + "description": "Resource ID", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Resource name", + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Resource type", + "readOnly": true, + "type": "string" + } + }, + "x-ms-azure-resource": true + }, + "ProvisioningState": { + "description": "Provisioning status of the resource.", + "readOnly": true, + "enum": [ + "Creating", + "Succeeded", + "Failed" + ], + "type": "string", + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": false + } + }, + "QueryStringCachingBehavior": { + "description": "Defines the query string caching behavior.", + "enum": [ + "IgnoreQueryString", + "BypassCaching", + "UseQueryString", + "NotSet" + ], + "type": "string", + "x-ms-enum": { + "name": "QueryStringCachingBehavior", + "modelAsString": false + } + }, + "Sku": { + "description": "The SKU (pricing tier) of the CDN profile.", + "type": "object", + "properties": { + "name": { + "description": "Name of the pricing tier", + "enum": [ + "Standard", + "Premium" + ], + "type": "string", + "x-ms-enum": { + "name": "SkuName", + "modelAsString": false + } + } + } + }, + "ErrorResponse": { + "type": "object", + "properties": { + "code": { + "description": "Error code", + "type": "string" + }, + "message": { + "description": "Error message indicating why the operation failed.", + "type": "string" + } + } + } + }, + "parameters": { + "subscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "Azure Subscription ID.", + "required": true, + "type": "string" + }, + "apiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Version of the API to be used with the client request. Current version is 2015-06-01" + } + } +} \ No newline at end of file From 2f458702b57a57376e2cfaf119bcdba4a8d02202 Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Wed, 25 May 2016 12:59:34 -0700 Subject: [PATCH 07/14] Add extra Storage api version acceptance tests --- .../AcceptanceTests.cs | 24 +- ...Generator.AzureResourceSchema.Tests.csproj | 16 +- .../2015-05-01-preview/Microsoft.Storage.json | 66 ++ .../Storage/2015-06-15/Microsoft.Storage.json | 88 ++ .../Storage/2015-05-01-preview/storage.json | 821 +++++++++++++++++ .../Swagger/Storage/2015-06-15/storage.json | 848 ++++++++++++++++++ 6 files changed, 1855 insertions(+), 8 deletions(-) create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/2015-05-01-preview/Microsoft.Storage.json create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/2015-06-15/Microsoft.Storage.json create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Storage/2015-05-01-preview/storage.json create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Storage/2015-06-15/storage.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs index b914c4694ea34..6cf9324d14dba 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs @@ -11,12 +11,6 @@ namespace AutoRest.Generator.AzureResourceSchema.Tests [Collection("AutoRest Azure Resource Schema Tests")] public static class AcceptanceTests { - [Fact] - public static void Storage() - { - RunSwaggerTest("Storage", "2016-01-01", "storage.json"); - } - [Fact] public static void Batch() { @@ -59,6 +53,24 @@ public static void Network() RunSwaggerTest("Network", "2016-03-30", "network.json"); } + [Fact] + public static void Storage_2015_05_01_preview() + { + RunSwaggerTest("Storage", "2015-05-01-preview", "storage.json"); + } + + [Fact] + public static void Storage_2015_06_15() + { + RunSwaggerTest("Storage", "2015-06-15", "storage.json"); + } + + [Fact] + public static void Storage_2016_01_01() + { + RunSwaggerTest("Storage", "2016-01-01", "storage.json"); + } + [Fact] public static void Web() { 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 c9afa085b306a..2663c329025d2 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj @@ -78,7 +78,7 @@ - + PreserveNewest @@ -111,10 +111,16 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + PreserveNewest - + PreserveNewest @@ -141,6 +147,12 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/2015-05-01-preview/Microsoft.Storage.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/2015-05-01-preview/Microsoft.Storage.json new file mode 100644 index 0000000000000..1ef130aa4b98e --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/2015-05-01-preview/Microsoft.Storage.json @@ -0,0 +1,66 @@ +{ + "id": "http://schema.management.azure.com/schemas/2015-05-01-preview/Microsoft.Storage.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Storage", + "description": "Microsoft Storage Resource Types", + "resourceDefinitions": { + "storageAccounts": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Storage/storageAccounts" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/StorageAccountPropertiesCreateParameters" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Storage/storageAccounts" + } + }, + "definitions": { + "StorageAccountPropertiesCreateParameters": { + "type": "object", + "properties": { + "accountType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Standard_LRS", + "Standard_ZRS", + "Standard_GRS", + "Standard_RAGRS", + "Premium_LRS" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the account type. Possible values include: 'Standard_LRS', 'Standard_ZRS', 'Standard_GRS', 'Standard_RAGRS', 'Premium_LRS'" + } + } + } + } +} diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/2015-06-15/Microsoft.Storage.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/2015-06-15/Microsoft.Storage.json new file mode 100644 index 0000000000000..c8793ab68b942 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Storage/2015-06-15/Microsoft.Storage.json @@ -0,0 +1,88 @@ +{ + "id": "http://schema.management.azure.com/schemas/2015-06-15/Microsoft.Storage.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Storage", + "description": "Microsoft Storage Resource Types", + "resourceDefinitions": { + "storageAccounts": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Storage/storageAccounts" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/StorageAccountPropertiesCreateParameters" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "location", + "properties" + ], + "description": "Microsoft.Storage/storageAccounts" + } + }, + "definitions": { + "StorageAccountPropertiesCreateParameters": { + "type": "object", + "properties": { + "accountType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Standard_LRS", + "Standard_ZRS", + "Standard_GRS", + "Standard_RAGRS", + "Premium_LRS" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the account type. Possible values include: 'Standard_LRS', 'Standard_ZRS', 'Standard_GRS', 'Standard_RAGRS', 'Premium_LRS'" + } + }, + "required": [ + "accountType" + ] + } + } +} diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Storage/2015-05-01-preview/storage.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Storage/2015-05-01-preview/storage.json new file mode 100644 index 0000000000000..65c97a8a78761 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Storage/2015-05-01-preview/storage.json @@ -0,0 +1,821 @@ +{ + "swagger": "2.0", + "info": { + "title": "StorageManagementClient", + "description": "The Storage Management Client.", + "version": "2015-05-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/checkNameAvailability": { + "post": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_CheckNameAvailability", + "description": "Checks that account name is valid and is not in use.", + "parameters": [ + { + "name": "accountName", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/StorageAccountCheckNameAvailabilityParameters" + }, + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. " + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityResult" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}": { + "put": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_Create", + "description": "Asynchronously creates a new storage account with the specified parameters. Existing accounts cannot be updated with this API and should instead use the Update Storage Account API. If an account is already created and subsequent PUT request is issued with exact same set of properties, then HTTP 200 would be returned. ", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. " + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/StorageAccountCreateParameters" + }, + "description": "The parameters to provide for the created account." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccount" + } + }, + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_Delete", + "description": "Deletes a storage account in Microsoft Azure.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. " + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + }, + "204": { + "description": "" + } + } + }, + "get": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_GetProperties", + "description": "Returns the properties for the specified storage account including but not limited to name, account type, location, and account status. The ListKeys operation should be used to retrieve storage keys.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. " + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccount" + } + } + } + }, + "patch": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_Update", + "description": "Updates the account type or tags for a storage account. It can also be used to add a custom domain (note that custom domains cannot be added via the Create operation). Only one custom domain is supported per storage account. This API can only be used to update one of tags, accountType, or customDomain per call. To update multiple of these properties, call the API multiple times with one change per call. This call does not change the storage keys for the account. If you want to change storage account keys, use the RegenerateKey operation. The location and name of the storage account cannot be changed after creation.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. " + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/StorageAccountUpdateParameters" + }, + "description": "The parameters to update on the account. Note that only one property can be changed at a time using this API. " + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccount" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/listKeys": { + "post": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_ListKeys", + "description": "Lists the access keys for the specified storage account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the storage account." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccountKeys" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/storageAccounts": { + "get": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_List", + "description": "Lists all the storage accounts available under the subscription. Note that storage keys are not returned; use the ListKeys operation for this.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccountListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts": { + "get": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_ListByResourceGroup", + "description": "Lists all the storage accounts available under the given resource group. Note that storage keys are not returned; use the ListKeys operation for this.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccountListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/regenerateKey": { + "post": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_RegenerateKey", + "description": "Regenerates the access keys for the specified storage account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. " + }, + { + "name": "regenerateKey", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/StorageAccountRegenerateKeyParameters" + }, + "description": "Specifies name of the key which should be regenerated." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccountKeys" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/usages": { + "get": { + "tags": [ + "Usage" + ], + "operationId": "Usage_List", + "description": "Gets the current usage count and the limit for the resources under the subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/UsageListResult" + } + } + } + } + } + }, + "definitions": { + "StorageAccountCheckNameAvailabilityParameters": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "CheckNameAvailabilityResult": { + "properties": { + "nameAvailable": { + "type": "boolean", + "description": "Gets a boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or invalid and cannot be used." + }, + "reason": { + "type": "string", + "description": "Gets the reason that a storage account name could not be used. The Reason element is only returned if NameAvailable is false.", + "enum": [ + "AccountNameInvalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "Reason", + "modelAsString": false + } + }, + "message": { + "type": "string", + "description": "Gets an error message explaining the Reason value in more detail." + } + }, + "description": "The CheckNameAvailability operation response." + }, + "StorageAccountPropertiesCreateParameters": { + "properties": { + "accountType": { + "type": "string", + "description": "Gets or sets the account type.", + "enum": [ + "Standard_LRS", + "Standard_ZRS", + "Standard_GRS", + "Standard_RAGRS", + "Premium_LRS" + ], + "x-ms-enum": { + "name": "AccountType", + "modelAsString": false + } + } + } + }, + "StorageAccountCreateParameters": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/StorageAccountPropertiesCreateParameters" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "The parameters to provide for the account." + }, + "Endpoints": { + "properties": { + "blob": { + "type": "string", + "description": "Gets the blob endpoint." + }, + "queue": { + "type": "string", + "description": "Gets the queue endpoint." + }, + "table": { + "type": "string", + "description": "Gets the table endpoint." + } + }, + "description": "The URIs that are used to perform a retrieval of a public blob, queue or table object." + }, + "CustomDomain": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the custom domain name. Name is the CNAME source." + }, + "useSubDomain": { + "type": "boolean", + "description": "Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates" + } + }, + "description": "The custom domain assigned to this storage account. This can be set via Update." + }, + "StorageAccountProperties": { + "properties": { + "provisioningState": { + "type": "string", + "description": "Gets the status of the storage account at the time the operation was called.", + "enum": [ + "Creating", + "ResolvingDNS", + "Succeeded" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": false + } + }, + "accountType": { + "type": "string", + "description": "Gets the type of the storage account.", + "enum": [ + "Standard_LRS", + "Standard_ZRS", + "Standard_GRS", + "Standard_RAGRS", + "Premium_LRS" + ], + "x-ms-enum": { + "name": "AccountType", + "modelAsString": false + } + }, + "primaryEndpoints": { + "$ref": "#/definitions/Endpoints", + "description": "Gets the URLs that are used to perform a retrieval of a public blob, queue or table object.Note that StandardZRS and PremiumLRS accounts only return the blob endpoint." + }, + "primaryLocation": { + "type": "string", + "description": "Gets the location of the primary for the storage account." + }, + "statusOfPrimary": { + "type": "string", + "description": "Gets the status indicating whether the primary location of the storage account is available or unavailable.", + "enum": [ + "Available", + "Unavailable" + ], + "x-ms-enum": { + "name": "AccountStatus", + "modelAsString": false + } + }, + "lastGeoFailoverTime": { + "type": "string", + "format": "date-time", + "description": "Gets the timestamp of the most recent instance of a failover to the secondary location. Only the most recent timestamp is retained. This element is not returned if there has never been a failover instance. Only available if the accountType is StandardGRS or StandardRAGRS." + }, + "secondaryLocation": { + "type": "string", + "description": "Gets the location of the geo replicated secondary for the storage account. Only available if the accountType is StandardGRS or StandardRAGRS." + }, + "statusOfSecondary": { + "type": "string", + "description": "Gets the status indicating whether the secondary location of the storage account is available or unavailable. Only available if the accountType is StandardGRS or StandardRAGRS.", + "enum": [ + "Available", + "Unavailable" + ], + "x-ms-enum": { + "name": "AccountStatus", + "modelAsString": false + } + }, + "creationTime": { + "type": "string", + "format": "date-time", + "description": "Gets the creation date and time of the storage account in UTC." + }, + "customDomain": { + "$ref": "#/definitions/CustomDomain", + "description": "Gets the user assigned custom domain assigned to this storage account." + }, + "secondaryEndpoints": { + "$ref": "#/definitions/Endpoints", + "description": "Gets the URLs that are used to perform a retrieval of a public blob, queue or table object from the secondary location of the storage account. Only available if the accountType is StandardRAGRS." + } + } + }, + "StorageAccount": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/StorageAccountProperties" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "The storage account." + }, + "StorageAccountKeys": { + "properties": { + "key1": { + "type": "string", + "description": "Gets the value of key 1." + }, + "key2": { + "type": "string", + "description": "Gets the value of key 2." + } + }, + "description": "The access keys for the storage account." + }, + "StorageAccountListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAccount" + }, + "description": "Gets the list of storage accounts and their properties." + }, + "nextLink": { + "type": "string", + "description": "Gets the link to the next set of results. Currently this will always be empty as the API does not support pagination." + } + }, + "description": "The list storage accounts operation response." + }, + "StorageAccountPropertiesUpdateParameters": { + "properties": { + "accountType": { + "type": "string", + "description": "Gets or sets the account type. Note that StandardZRS and PremiumLRS accounts cannot be changed to other account types, and other account types cannot be changed to StandardZRS or PremiumLRS.", + "enum": [ + "Standard_LRS", + "Standard_ZRS", + "Standard_GRS", + "Standard_RAGRS", + "Premium_LRS" + ], + "x-ms-enum": { + "name": "AccountType", + "modelAsString": false + } + }, + "customDomain": { + "$ref": "#/definitions/CustomDomain", + "description": "User domain assigned to the storage account. Name is the CNAME source. Only one custom domain is supported per storage account at this time. To clear the existing custom domain, use an empty string for the custom domain name property." + } + } + }, + "StorageAccountUpdateParameters": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/StorageAccountPropertiesUpdateParameters" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "The parameters to update on the account." + }, + "StorageAccountRegenerateKeyParameters": { + "properties": { + "keyName": { + "type": "string", + "enum": [ + "key1", + "key2" + ], + "x-ms-enum": { + "name": "KeyName", + "modelAsString": false + } + } + } + }, + "UsageName": { + "properties": { + "value": { + "type": "string", + "description": "Gets a string describing the resource name." + }, + "localizedValue": { + "type": "string", + "description": "Gets a localized string describing the resource name." + } + }, + "description": "The Usage Names." + }, + "Usage": { + "properties": { + "unit": { + "type": "string", + "description": "Gets the unit of measurement.", + "enum": [ + "Count", + "Bytes", + "Seconds", + "Percent", + "CountsPerSecond", + "BytesPerSecond" + ], + "x-ms-enum": { + "name": "UsageUnit", + "modelAsString": false + } + }, + "currentValue": { + "type": "integer", + "format": "int32", + "description": "Gets the current count of the allocated resources in the subscription." + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "Gets the maximum count of the resources that can be allocated in the subscription." + }, + "name": { + "$ref": "#/definitions/UsageName", + "description": "Gets the name of the type of usage." + } + }, + "description": "Describes Storage Resource Usage." + }, + "UsageListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Usage" + }, + "description": "Gets or sets the list Storage Resource Usages." + } + }, + "description": "The List Usages operation response." + }, + "Resource": { + "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-azure-resource": true + }, + "SubResource": { + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + } + }, + "x-ms-azure-resource": 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 diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Storage/2015-06-15/storage.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Storage/2015-06-15/storage.json new file mode 100644 index 0000000000000..fc7c3c052e7f4 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Storage/2015-06-15/storage.json @@ -0,0 +1,848 @@ +{ + "swagger": "2.0", + "info": { + "title": "StorageManagementClient", + "description": "The Storage Management Client.", + "version": "2015-06-15" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/checkNameAvailability": { + "post": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_CheckNameAvailability", + "description": "Checks that account name is valid and is not in use.", + "parameters": [ + { + "name": "accountName", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/StorageAccountCheckNameAvailabilityParameters" + }, + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityResult" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}": { + "put": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_Create", + "description": "Asynchronously creates a new storage account with the specified parameters. Existing accounts cannot be updated with this API and should instead use the Update Storage Account API. If an account is already created and subsequent PUT request is issued with exact same set of properties, then HTTP 200 would be returned. ", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. ", + "maxLength": 24, + "minLength": 3 + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/StorageAccountCreateParameters" + }, + "description": "The parameters to provide for the created account." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccount" + } + }, + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_Delete", + "description": "Deletes a storage account in Microsoft Azure.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. ", + "maxLength": 24, + "minLength": 3 + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + }, + "204": { + "description": "" + } + } + }, + "get": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_GetProperties", + "description": "Returns the properties for the specified storage account including but not limited to name, account type, location, and account status. The ListKeys operation should be used to retrieve storage keys.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. ", + "maxLength": 24, + "minLength": 3 + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccount" + } + } + } + }, + "patch": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_Update", + "description": "Updates the account type or tags for a storage account. It can also be used to add a custom domain (note that custom domains cannot be added via the Create operation). Only one custom domain is supported per storage account. In order to replace a custom domain, the old value must be cleared before a new value may be set. To clear a custom domain, simply update the custom domain with empty string. Then call update again with the new cutsom domain name. The update API can only be used to update one of tags, accountType, or customDomain per call. To update multiple of these properties, call the API multiple times with one change per call. This call does not change the storage keys for the account. If you want to change storage account keys, use the RegenerateKey operation. The location and name of the storage account cannot be changed after creation.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. ", + "maxLength": 24, + "minLength": 3 + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/StorageAccountUpdateParameters" + }, + "description": "The parameters to update on the account. Note that only one property can be changed at a time using this API. " + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccount" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/listKeys": { + "post": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_ListKeys", + "description": "Lists the access keys for the specified storage account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the storage account.", + "maxLength": 24, + "minLength": 3 + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccountKeys" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/storageAccounts": { + "get": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_List", + "description": "Lists all the storage accounts available under the subscription. Note that storage keys are not returned; use the ListKeys operation for this.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccountListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts": { + "get": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_ListByResourceGroup", + "description": "Lists all the storage accounts available under the given resource group. Note that storage keys are not returned; use the ListKeys operation for this.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccountListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/regenerateKey": { + "post": { + "tags": [ + "StorageAccounts" + ], + "operationId": "StorageAccounts_RegenerateKey", + "description": "Regenerates the access keys for the specified storage account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. ", + "maxLength": 24, + "minLength": 3 + }, + { + "name": "regenerateKey", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/StorageAccountRegenerateKeyParameters" + }, + "description": "Specifies name of the key which should be regenerated. key1 or key2 for the default keys" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccountKeys" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/usages": { + "get": { + "tags": [ + "Usage" + ], + "operationId": "Usage_List", + "description": "Gets the current usage count and the limit for the resources under the subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/UsageListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + } + }, + "definitions": { + "StorageAccountCheckNameAvailabilityParameters": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "default": "Microsoft.Storage/storageAccounts" + } + }, + "required": [ + "name" + ] + }, + "CheckNameAvailabilityResult": { + "properties": { + "nameAvailable": { + "type": "boolean", + "description": "Gets a boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or invalid and cannot be used." + }, + "reason": { + "type": "string", + "description": "Gets the reason that a storage account name could not be used. The Reason element is only returned if NameAvailable is false.", + "enum": [ + "AccountNameInvalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "Reason", + "modelAsString": false + } + }, + "message": { + "type": "string", + "description": "Gets an error message explaining the Reason value in more detail." + } + }, + "description": "The CheckNameAvailability operation response." + }, + "StorageAccountPropertiesCreateParameters": { + "properties": { + "accountType": { + "type": "string", + "description": "Gets or sets the account type.", + "enum": [ + "Standard_LRS", + "Standard_ZRS", + "Standard_GRS", + "Standard_RAGRS", + "Premium_LRS" + ], + "x-ms-enum": { + "name": "AccountType", + "modelAsString": false + } + } + }, + "required": [ + "accountType" + ] + }, + "StorageAccountCreateParameters": { + "properties": { + "location": { + "type": "string", + "description": "Resource location" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Resource tags" + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/StorageAccountPropertiesCreateParameters" + } + }, + "required": [ + "location" + ], + "x-ms-azure-resource": true, + "description": "The parameters to provide for the account." + }, + "Endpoints": { + "properties": { + "blob": { + "type": "string", + "description": "Gets the blob endpoint." + }, + "queue": { + "type": "string", + "description": "Gets the queue endpoint." + }, + "table": { + "type": "string", + "description": "Gets the table endpoint." + }, + "file": { + "type": "string", + "description": "Gets the file endpoint." + } + }, + "description": "The URIs that are used to perform a retrieval of a public blob, queue or table object." + }, + "CustomDomain": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the custom domain name. Name is the CNAME source." + }, + "useSubDomain": { + "type": "boolean", + "description": "Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates" + } + }, + "required": [ + "name" + ], + "description": "The custom domain assigned to this storage account. This can be set via Update." + }, + "StorageAccountProperties": { + "properties": { + "provisioningState": { + "type": "string", + "description": "Gets the status of the storage account at the time the operation was called.", + "enum": [ + "Creating", + "ResolvingDNS", + "Succeeded" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": false + } + }, + "accountType": { + "type": "string", + "description": "Gets the type of the storage account.", + "enum": [ + "Standard_LRS", + "Standard_ZRS", + "Standard_GRS", + "Standard_RAGRS", + "Premium_LRS" + ], + "x-ms-enum": { + "name": "AccountType", + "modelAsString": false + } + }, + "primaryEndpoints": { + "$ref": "#/definitions/Endpoints", + "description": "Gets the URLs that are used to perform a retrieval of a public blob, queue or table object.Note that StandardZRS and PremiumLRS accounts only return the blob endpoint." + }, + "primaryLocation": { + "type": "string", + "description": "Gets the location of the primary for the storage account." + }, + "statusOfPrimary": { + "type": "string", + "description": "Gets the status indicating whether the primary location of the storage account is available or unavailable.", + "enum": [ + "Available", + "Unavailable" + ], + "x-ms-enum": { + "name": "AccountStatus", + "modelAsString": false + } + }, + "lastGeoFailoverTime": { + "type": "string", + "format": "date-time", + "description": "Gets the timestamp of the most recent instance of a failover to the secondary location. Only the most recent timestamp is retained. This element is not returned if there has never been a failover instance. Only available if the accountType is StandardGRS or StandardRAGRS." + }, + "secondaryLocation": { + "type": "string", + "description": "Gets the location of the geo replicated secondary for the storage account. Only available if the accountType is StandardGRS or StandardRAGRS." + }, + "statusOfSecondary": { + "type": "string", + "description": "Gets the status indicating whether the secondary location of the storage account is available or unavailable. Only available if the accountType is StandardGRS or StandardRAGRS.", + "enum": [ + "Available", + "Unavailable" + ], + "x-ms-enum": { + "name": "AccountStatus", + "modelAsString": false + } + }, + "creationTime": { + "type": "string", + "format": "date-time", + "description": "Gets the creation date and time of the storage account in UTC." + }, + "customDomain": { + "$ref": "#/definitions/CustomDomain", + "description": "Gets the user assigned custom domain assigned to this storage account." + }, + "secondaryEndpoints": { + "$ref": "#/definitions/Endpoints", + "description": "Gets the URLs that are used to perform a retrieval of a public blob, queue or table object from the secondary location of the storage account. Only available if the accountType is StandardRAGRS." + } + } + }, + "StorageAccount": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/StorageAccountProperties" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "The storage account." + }, + "StorageAccountKeys": { + "properties": { + "key1": { + "type": "string", + "description": "Gets the value of key 1." + }, + "key2": { + "type": "string", + "description": "Gets the value of key 2." + } + }, + "description": "The access keys for the storage account." + }, + "StorageAccountListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAccount" + }, + "description": "Gets the list of storage accounts and their properties." + } + }, + "description": "The list storage accounts operation response." + }, + "StorageAccountPropertiesUpdateParameters": { + "properties": { + "accountType": { + "type": "string", + "description": "Gets or sets the account type. Note that StandardZRS and PremiumLRS accounts cannot be changed to other account types, and other account types cannot be changed to StandardZRS or PremiumLRS.", + "enum": [ + "Standard_LRS", + "Standard_ZRS", + "Standard_GRS", + "Standard_RAGRS", + "Premium_LRS" + ], + "x-ms-enum": { + "name": "AccountType", + "modelAsString": false + } + }, + "customDomain": { + "$ref": "#/definitions/CustomDomain", + "description": "User domain assigned to the storage account. Name is the CNAME source. Only one custom domain is supported per storage account at this time. To clear the existing custom domain, use an empty string for the custom domain name property." + } + } + }, + "StorageAccountUpdateParameters": { + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Resource tags" + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/StorageAccountPropertiesUpdateParameters" + } + }, + "x-ms-azure-resource": true, + "description": "The parameters to update on the account." + }, + "StorageAccountRegenerateKeyParameters": { + "properties": { + "keyName": { + "type": "string" + } + }, + "required": [ + "keyName" + ] + }, + "UsageName": { + "properties": { + "value": { + "type": "string", + "description": "Gets a string describing the resource name." + }, + "localizedValue": { + "type": "string", + "description": "Gets a localized string describing the resource name." + } + }, + "description": "The Usage Names." + }, + "Usage": { + "properties": { + "unit": { + "type": "string", + "description": "Gets the unit of measurement.", + "enum": [ + "Count", + "Bytes", + "Seconds", + "Percent", + "CountsPerSecond", + "BytesPerSecond" + ], + "x-ms-enum": { + "name": "UsageUnit", + "modelAsString": false + } + }, + "currentValue": { + "type": "integer", + "format": "int32", + "description": "Gets the current count of the allocated resources in the subscription." + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "Gets the maximum count of the resources that can be allocated in the subscription." + }, + "name": { + "$ref": "#/definitions/UsageName", + "description": "Gets the name of the type of usage." + } + }, + "required": [ + "unit", + "currentValue", + "limit", + "name" + ], + "description": "Describes Storage Resource Usage." + }, + "UsageListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Usage" + }, + "description": "Gets or sets the list Storage Resource Usages." + } + }, + "description": "The List Usages operation response." + }, + "Resource": { + "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" + } + }, + "x-ms-azure-resource": 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 From 42689765a42ae0f329baf6ffca5e4309671c3c7e Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Wed, 25 May 2016 13:13:15 -0700 Subject: [PATCH 08/14] Add acceptance test for additional compute api version --- .../AcceptanceTests.cs | 8 +- ...Generator.AzureResourceSchema.Tests.csproj | 6 + .../Compute/2015-06-15/Microsoft.Compute.json | 1960 +++++++ .../Swagger/Compute/2015-06-15/compute.json | 4543 +++++++++++++++++ 4 files changed, 6516 insertions(+), 1 deletion(-) create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2015-06-15/Microsoft.Compute.json create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Compute/2015-06-15/compute.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs index 6cf9324d14dba..d28e30b15e1a4 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs @@ -30,7 +30,13 @@ public static void Cdn_2016_04_02() } [Fact] - public static void Compute() + public static void Compute_2015_06_15() + { + RunSwaggerTest("Compute", "2015-06-15", "compute.json"); + } + + [Fact] + public static void Compute_2016_03_30() { RunSwaggerTest("Compute", "2016-03-30", "compute.json"); } 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 2663c329025d2..cd2c6ec3ba504 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj @@ -117,6 +117,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -153,6 +156,9 @@ PreserveNewest + + PreserveNewest + diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2015-06-15/Microsoft.Compute.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2015-06-15/Microsoft.Compute.json new file mode 100644 index 0000000000000..70dd5dd2f3480 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2015-06-15/Microsoft.Compute.json @@ -0,0 +1,1960 @@ +{ + "id": "http://schema.management.azure.com/schemas/2015-06-15/Microsoft.Compute.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Compute", + "description": "Microsoft Compute Resource Types", + "resourceDefinitions": { + "availabilitySets": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Compute/availabilitySets" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/AvailabilitySetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Compute/availabilitySets" + }, + "virtualMachines": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Compute/virtualMachines" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "plan": { + "oneOf": [ + { + "$ref": "#/definitions/Plan" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the purchase plan when deploying virtual machine from VM Marketplace images." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/virtualMachines_extensions_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Compute/virtualMachines" + }, + "virtualMachines_extensions": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Compute/virtualMachines/extensions" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineExtensionProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Compute/virtualMachines/extensions" + }, + "virtualMachineScaleSets": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Compute/virtualMachineScaleSets" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the virtual machine scale set sku." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineScaleSetProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Compute/virtualMachineScaleSets" + } + }, + "definitions": { + "AdditionalUnattendContent": { + "type": "object", + "properties": { + "passName": { + "oneOf": [ + { + "type": "string", + "enum": [ + "oobeSystem" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the pass name. Currently, the only allowable value is oobeSystem. Possible values include: 'oobeSystem'" + }, + "componentName": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Microsoft-Windows-Shell-Setup" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup. Possible values include: 'Microsoft-Windows-Shell-Setup'" + }, + "settingName": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AutoLogon", + "FirstLogonCommands" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets setting name (e.g. FirstLogonCommands, AutoLogon ). Possible values include: 'AutoLogon', 'FirstLogonCommands'" + }, + "content": { + "type": "string", + "description": "Gets or sets XML formatted content that is added to the unattend.xml file in the specified pass and component.The XML must be less than 4 KB and must include the root element for the setting or feature that is being inserted." + } + }, + "description": "Gets or sets additional XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup. Contents are defined by setting name, component name, and the pass in which the content is a applied." + }, + "ApiEntityReference": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Gets or sets ARM resource id in the form of /subscriptions/{SubcriptionId}/resourceGroups/{ResourceGroupName}/..." + } + }, + "description": "The API entity reference." + }, + "AvailabilitySetProperties": { + "type": "object", + "properties": { + "platformUpdateDomainCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Update Domain count." + }, + "platformFaultDomainCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Fault Domain count." + }, + "virtualMachines": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a list containing reference to all Virtual Machines created under this Availability Set." + }, + "statuses": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceViewStatus" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the resource status information." + } + }, + "description": "The instance view of a resource." + }, + "BootDiagnostics": { + "type": "object", + "properties": { + "enabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets whether boot diagnostics should be enabled on the Virtual Machine." + }, + "storageUri": { + "type": "string", + "description": "Gets or sets the boot diagnostics storage Uri. It should be a valid Uri" + } + }, + "description": "Describes Boot Diagnostics." + }, + "DataDisk": { + "type": "object", + "properties": { + "lun": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the logical unit number." + }, + "name": { + "type": "string", + "description": "Gets or sets the disk name." + }, + "vhd": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualHardDisk" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Virtual Hard Disk." + }, + "image": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualHardDisk" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Source User Image VirtualHardDisk. This VirtualHardDisk will be copied before using it to attach to the Virtual Machine.If SourceImage is provided, the destination VirtualHardDisk should not exist." + }, + "caching": { + "oneOf": [ + { + "type": "string", + "enum": [ + "None", + "ReadOnly", + "ReadWrite" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the caching type. Possible values include: 'None', 'ReadOnly', 'ReadWrite'" + }, + "createOption": { + "oneOf": [ + { + "type": "string", + "enum": [ + "fromImage", + "empty", + "attach" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the create option. Possible values include: 'fromImage', 'empty', 'attach'" + }, + "diskSizeGB": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the initial disk size in GB for blank data disks, and the new desired size for existing OS and Data disks." + } + }, + "required": [ + "lun", + "name", + "vhd", + "createOption" + ], + "description": "Describes a data disk." + }, + "DiagnosticsProfile": { + "type": "object", + "properties": { + "bootDiagnostics": { + "oneOf": [ + { + "$ref": "#/definitions/BootDiagnostics" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the boot diagnostics." + } + }, + "description": "Describes a diagnostics profile." + }, + "DiskEncryptionSettings": { + "type": "object", + "properties": { + "diskEncryptionKey": { + "oneOf": [ + { + "$ref": "#/definitions/KeyVaultSecretReference" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the disk encryption key which is a KeyVault Secret." + }, + "keyEncryptionKey": { + "oneOf": [ + { + "$ref": "#/definitions/KeyVaultKeyReference" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the key encryption key which is KeyVault Key." + }, + "enabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets whether disk encryption should be enabled on the Virtual Machine." + } + }, + "required": [ + "diskEncryptionKey" + ], + "description": "Describes a Encryption Settings for a Disk" + }, + "HardwareProfile": { + "type": "object", + "properties": { + "vmSize": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Basic_A0", + "Basic_A1", + "Basic_A2", + "Basic_A3", + "Basic_A4", + "Standard_A0", + "Standard_A1", + "Standard_A2", + "Standard_A3", + "Standard_A4", + "Standard_A5", + "Standard_A6", + "Standard_A7", + "Standard_A8", + "Standard_A9", + "Standard_A10", + "Standard_A11", + "Standard_D1", + "Standard_D2", + "Standard_D3", + "Standard_D4", + "Standard_D11", + "Standard_D12", + "Standard_D13", + "Standard_D14", + "Standard_D1_v2", + "Standard_D2_v2", + "Standard_D3_v2", + "Standard_D4_v2", + "Standard_D5_v2", + "Standard_D11_v2", + "Standard_D12_v2", + "Standard_D13_v2", + "Standard_D14_v2", + "Standard_DS1", + "Standard_DS2", + "Standard_DS3", + "Standard_DS4", + "Standard_DS11", + "Standard_DS12", + "Standard_DS13", + "Standard_DS14", + "Standard_G1", + "Standard_G2", + "Standard_G3", + "Standard_G4", + "Standard_G5", + "Standard_GS1", + "Standard_GS2", + "Standard_GS3", + "Standard_GS4", + "Standard_GS5" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The virtual machine size name. Possible values include: 'Basic_A0', 'Basic_A1', 'Basic_A2', 'Basic_A3', 'Basic_A4', 'Standard_A0', 'Standard_A1', 'Standard_A2', 'Standard_A3', 'Standard_A4', 'Standard_A5', 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A9', 'Standard_A10', 'Standard_A11', 'Standard_D1', 'Standard_D2', 'Standard_D3', 'Standard_D4', 'Standard_D11', 'Standard_D12', 'Standard_D13', 'Standard_D14', 'Standard_D1_v2', 'Standard_D2_v2', 'Standard_D3_v2', 'Standard_D4_v2', 'Standard_D5_v2', 'Standard_D11_v2', 'Standard_D12_v2', 'Standard_D13_v2', 'Standard_D14_v2', 'Standard_DS1', 'Standard_DS2', 'Standard_DS3', 'Standard_DS4', 'Standard_DS11', 'Standard_DS12', 'Standard_DS13', 'Standard_DS14', 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', 'Standard_GS5'" + } + }, + "description": "Describes a hardware profile." + }, + "ImageReference": { + "type": "object", + "properties": { + "publisher": { + "type": "string", + "description": "Gets or sets the image publisher." + }, + "offer": { + "type": "string", + "description": "Gets or sets the image offer." + }, + "sku": { + "type": "string", + "description": "Gets or sets the image sku." + }, + "version": { + "type": "string", + "description": "Gets or sets the image version. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor and Build being decimal numbers. Specify 'latest' to use the latest version of image." + } + }, + "description": "The image reference." + }, + "InstanceViewStatus": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Gets the status Code." + }, + "level": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Info", + "Warning", + "Error" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the level Code. Possible values include: 'Info', 'Warning', 'Error'" + }, + "displayStatus": { + "type": "string", + "description": "Gets or sets the short localizable label for the status." + }, + "message": { + "type": "string", + "description": "Gets or sets the detailed Message, including for alerts and error messages." + }, + "time": { + "type": "string", + "description": "Gets or sets the time of the status." + } + }, + "description": "Instance view status." + }, + "KeyVaultKeyReference": { + "type": "object", + "properties": { + "keyUrl": { + "type": "string", + "description": "Gets or sets the URL referencing a key in a Key Vault." + }, + "sourceVault": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Relative URL of the Key Vault containing the key" + } + }, + "required": [ + "keyUrl", + "sourceVault" + ], + "description": "Describes a reference to Key Vault Key" + }, + "KeyVaultSecretReference": { + "type": "object", + "properties": { + "secretUrl": { + "type": "string", + "description": "Gets or sets the URL referencing a secret in a Key Vault." + }, + "sourceVault": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Relative URL of the Key Vault containing the secret." + } + }, + "required": [ + "secretUrl", + "sourceVault" + ], + "description": "Describes a reference to Key Vault Secret" + }, + "LinuxConfiguration": { + "type": "object", + "properties": { + "disablePasswordAuthentication": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets whether Authentication using user name and password is allowed or not" + }, + "ssh": { + "oneOf": [ + { + "$ref": "#/definitions/SshConfiguration" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the SSH configuration for linux VMs" + } + }, + "description": "Describes Windows Configuration of the OS Profile." + }, + "NetworkInterfaceReference": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkInterfaceReferenceProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "description": "Describes a network interface reference." + }, + "NetworkInterfaceReferenceProperties": { + "type": "object", + "properties": { + "primary": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets whether this is a primary NIC on a virtual machine" + } + }, + "description": "Describes a network interface reference properties." + }, + "NetworkProfile": { + "type": "object", + "properties": { + "networkInterfaces": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterfaceReference" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the network interfaces." + } + }, + "description": "Describes a network profile." + }, + "OSDisk": { + "type": "object", + "properties": { + "osType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Windows", + "Linux" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Operating System type. Possible values include: 'Windows', 'Linux'" + }, + "encryptionSettings": { + "oneOf": [ + { + "$ref": "#/definitions/DiskEncryptionSettings" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the disk encryption settings." + }, + "name": { + "type": "string", + "description": "Gets or sets the disk name." + }, + "vhd": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualHardDisk" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Virtual Hard Disk." + }, + "image": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualHardDisk" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Source User Image VirtualHardDisk. This VirtualHardDisk will be copied before using it to attach to the Virtual Machine.If SourceImage is provided, the destination VirtualHardDisk should not exist." + }, + "caching": { + "oneOf": [ + { + "type": "string", + "enum": [ + "None", + "ReadOnly", + "ReadWrite" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the caching type. Possible values include: 'None', 'ReadOnly', 'ReadWrite'" + }, + "createOption": { + "oneOf": [ + { + "type": "string", + "enum": [ + "fromImage", + "empty", + "attach" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the create option. Possible values include: 'fromImage', 'empty', 'attach'" + }, + "diskSizeGB": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the initial disk size in GB for blank data disks, and the new desired size for existing OS and Data disks." + } + }, + "required": [ + "name", + "vhd", + "createOption" + ], + "description": "Describes an Operating System disk." + }, + "OSProfile": { + "type": "object", + "properties": { + "computerName": { + "type": "string", + "description": "Gets or sets the computer name." + }, + "adminUsername": { + "type": "string", + "description": "Gets or sets the admin user name." + }, + "adminPassword": { + "type": "string", + "description": "Gets or sets the admin user password." + }, + "customData": { + "type": "string", + "description": "Gets or sets a base-64 encoded string of custom data." + }, + "windowsConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/WindowsConfiguration" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Windows Configuration of the OS profile." + }, + "linuxConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/LinuxConfiguration" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Linux Configuration of the OS profile." + }, + "secrets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/VaultSecretGroup" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the List of certificates for addition to the VM." + } + }, + "description": "Describes an OS profile." + }, + "Plan": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the plan ID." + }, + "publisher": { + "type": "string", + "description": "Gets or sets the publisher ID." + }, + "product": { + "type": "string", + "description": "Gets or sets the offer ID." + }, + "promotionCode": { + "type": "string", + "description": "Gets or sets the promotion code." + } + }, + "description": "Plan for the resource." + }, + "Sku": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the sku name." + }, + "tier": { + "type": "string", + "description": "Gets or sets the sku tier." + }, + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the sku capacity." + } + }, + "description": "Describes a virtual machine scale set sku." + }, + "SshConfiguration": { + "type": "object", + "properties": { + "publicKeys": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SshPublicKey" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of SSH public keys used to authenticate with linux based VMs" + } + }, + "description": "SSH configuration for Linux based VMs running on Azure" + }, + "SshPublicKey": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "Gets or sets the full path on the created VM where SSH public key is stored. If the file already exists, the specified key is appended to the file." + }, + "keyData": { + "type": "string", + "description": "Gets or sets Certificate public key used to authenticate with VM through SSH.The certificate must be in Pem format with or without headers." + } + }, + "description": "Contains information about SSH certificate public key and the path on the Linux VM where the public key is placed." + }, + "StorageProfile": { + "type": "object", + "properties": { + "imageReference": { + "oneOf": [ + { + "$ref": "#/definitions/ImageReference" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the image reference." + }, + "osDisk": { + "oneOf": [ + { + "$ref": "#/definitions/OSDisk" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the OS disk." + }, + "dataDisks": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/DataDisk" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the data disks." + } + }, + "description": "Describes a storage profile." + }, + "SubResource": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + } + } + }, + "UpgradePolicy": { + "type": "object", + "properties": { + "mode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Automatic", + "Manual" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the upgrade mode. Possible values include: 'Automatic', 'Manual'" + } + }, + "description": "Describes an upgrade policy - automatic or manual." + }, + "VaultCertificate": { + "type": "object", + "properties": { + "certificateUrl": { + "type": "string", + "description": "Gets or sets the URL referencing a secret in a Key Vault which contains a properly formatted certificate." + }, + "certificateStore": { + "type": "string", + "description": "Gets or sets the Certificate store in LocalMachine to add the certificate to on Windows, leave empty on Linux." + } + }, + "description": "Describes a single certificate reference in a Key Vault, and where the certificate should reside on the VM." + }, + "VaultSecretGroup": { + "type": "object", + "properties": { + "sourceVault": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Relative URL of the Key Vault containing all of the certificates in VaultCertificates." + }, + "vaultCertificates": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/VaultCertificate" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of key vault references in SourceVault which contain certificates" + } + }, + "description": "Describes a set of certificates which are all in the same Key Vault." + }, + "VirtualHardDisk": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "Gets or sets the virtual hard disk's uri. It should be a valid Uri to a virtual hard disk." + } + }, + "description": "Describes the uri of a disk." + }, + "VirtualMachineExtensionInstanceView": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the virtual machine extension name." + }, + "type": { + "type": "string", + "description": "Gets or sets the full type of the extension handler which includes both publisher and type." + }, + "typeHandlerVersion": { + "type": "string", + "description": "Gets or sets the type version of the extension handler." + }, + "substatuses": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceViewStatus" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the resource status information." + }, + "statuses": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceViewStatus" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the resource status information." + } + }, + "description": "The instance view of a virtual machine extension." + }, + "VirtualMachineExtensionProperties": { + "type": "object", + "properties": { + "forceUpdateTag": { + "oneOf": [ + { + "type": "string", + "enum": [ + "RerunExtension" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets how the extension handler should be forced to update even if the extension configuration has not changed. Possible values include: 'RerunExtension'" + }, + "publisher": { + "type": "string", + "description": "Gets or sets the name of the extension handler publisher." + }, + "type": { + "type": "string", + "description": "Gets or sets the type of the extension handler." + }, + "typeHandlerVersion": { + "type": "string", + "description": "Gets or sets the type version of the extension handler." + }, + "autoUpgradeMinorVersion": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets whether the extension handler should be automatically upgraded across minor versions." + }, + "settings": { + "oneOf": [ + { + "type": "object" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Json formatted public settings for the extension." + }, + "protectedSettings": { + "oneOf": [ + { + "type": "object" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Json formatted protected settings for the extension." + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets the provisioning state, which only appears in the response." + }, + "instanceView": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineExtensionInstanceView" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the virtual machine extension instance view." + } + }, + "description": "Describes the properties of a Virtual Machine Extension." + }, + "VirtualMachineProperties": { + "type": "object", + "properties": { + "hardwareProfile": { + "oneOf": [ + { + "$ref": "#/definitions/HardwareProfile" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the hardware profile." + }, + "storageProfile": { + "oneOf": [ + { + "$ref": "#/definitions/StorageProfile" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the storage profile." + }, + "osProfile": { + "oneOf": [ + { + "$ref": "#/definitions/OSProfile" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the OS profile." + }, + "networkProfile": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkProfile" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the network profile." + }, + "diagnosticsProfile": { + "oneOf": [ + { + "$ref": "#/definitions/DiagnosticsProfile" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the diagnostics profile." + }, + "availabilitySet": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference Id of the availability set to which this virtual machine belongs." + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets the provisioning state, which only appears in the response." + }, + "licenseType": { + "type": "string", + "description": "Gets or sets the license type, which is for bring your own license scenario." + } + }, + "description": "Describes the properties of a Virtual Machine." + }, + "virtualMachines_extensions_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "extensions" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineExtensionProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Compute/virtualMachines/extensions" + }, + "VirtualMachineScaleSetExtension": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "name": { + "type": "string", + "description": "Gets or sets the name of the extension." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineScaleSetExtensionProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "description": "Describes a Virtual Machine Scale Set Extension." + }, + "VirtualMachineScaleSetExtensionProfile": { + "type": "object", + "properties": { + "extensions": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetExtension" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets the virtual machine scale set child extension resources." + } + }, + "description": "Describes a virtual machine scale set extension profile." + }, + "VirtualMachineScaleSetExtensionProperties": { + "type": "object", + "properties": { + "publisher": { + "type": "string", + "description": "Gets or sets the name of the extension handler publisher." + }, + "type": { + "type": "string", + "description": "Gets or sets the type of the extension handler." + }, + "typeHandlerVersion": { + "type": "string", + "description": "Gets or sets the type version of the extension handler." + }, + "autoUpgradeMinorVersion": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets whether the extension handler should be automatically upgraded across minor versions." + }, + "settings": { + "oneOf": [ + { + "type": "object" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Json formatted public settings for the extension." + }, + "protectedSettings": { + "oneOf": [ + { + "type": "object" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Json formatted protected settings for the extension." + } + }, + "description": "Describes the properties of a Virtual Machine Scale Set Extension." + }, + "VirtualMachineScaleSetIPConfiguration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "name": { + "type": "string", + "description": "Gets or sets the IP configuration name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineScaleSetIPConfigurationProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "required": [ + "name" + ], + "description": "Describes a virtual machine scale set network profile's IP configuration." + }, + "VirtualMachineScaleSetIPConfigurationProperties": { + "type": "object", + "properties": { + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/ApiEntityReference" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the subnet." + }, + "loadBalancerBackendAddressPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the load balancer backend address pools." + }, + "loadBalancerInboundNatPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the load balancer inbound nat pools." + } + }, + "required": [ + "subnet" + ], + "description": "Describes a virtual machine scale set network profile's IP configuration properties." + }, + "VirtualMachineScaleSetNetworkConfiguration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "name": { + "type": "string", + "description": "Gets or sets the network configuration name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineScaleSetNetworkConfigurationProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + } + }, + "required": [ + "name" + ], + "description": "Describes a virtual machine scale set network profile's network configurations." + }, + "VirtualMachineScaleSetNetworkConfigurationProperties": { + "type": "object", + "properties": { + "primary": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets whether this is a primary NIC on a virtual machine." + }, + "ipConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetIPConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the virtual machine scale set IP Configuration." + } + }, + "required": [ + "ipConfigurations" + ], + "description": "Describes a virtual machine scale set network profile's IP configuration." + }, + "VirtualMachineScaleSetNetworkProfile": { + "type": "object", + "properties": { + "networkInterfaceConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetNetworkConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of network configurations." + } + }, + "description": "Describes a virtual machine scale set network profile." + }, + "VirtualMachineScaleSetOSDisk": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the disk name." + }, + "caching": { + "oneOf": [ + { + "type": "string", + "enum": [ + "None", + "ReadOnly", + "ReadWrite" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the caching type. Possible values include: 'None', 'ReadOnly', 'ReadWrite'" + }, + "createOption": { + "oneOf": [ + { + "type": "string", + "enum": [ + "fromImage", + "empty", + "attach" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the create option. Possible values include: 'fromImage', 'empty', 'attach'" + }, + "osType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Windows", + "Linux" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Operating System type. Possible values include: 'Windows', 'Linux'" + }, + "image": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualHardDisk" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Source User Image VirtualHardDisk. This VirtualHardDisk will be copied before using it to attach to the Virtual Machine.If SourceImage is provided, the destination VirtualHardDisk should not exist." + }, + "vhdContainers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of virtual hard disk container uris." + } + }, + "required": [ + "name", + "createOption" + ], + "description": "Describes a virtual machine scale set operating system disk." + }, + "VirtualMachineScaleSetOSProfile": { + "type": "object", + "properties": { + "computerNamePrefix": { + "type": "string", + "description": "Gets or sets the computer name prefix." + }, + "adminUsername": { + "type": "string", + "description": "Gets or sets the admin user name." + }, + "adminPassword": { + "type": "string", + "description": "Gets or sets the admin user password." + }, + "customData": { + "type": "string", + "description": "Gets or sets a base-64 encoded string of custom data." + }, + "windowsConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/WindowsConfiguration" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Windows Configuration of the OS profile." + }, + "linuxConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/LinuxConfiguration" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Linux Configuration of the OS profile." + }, + "secrets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/VaultSecretGroup" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the List of certificates for addition to the VM." + } + }, + "description": "Describes a virtual machine scale set OS profile." + }, + "VirtualMachineScaleSetProperties": { + "type": "object", + "properties": { + "upgradePolicy": { + "oneOf": [ + { + "$ref": "#/definitions/UpgradePolicy" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the upgrade policy." + }, + "virtualMachineProfile": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineScaleSetVMProfile" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the virtual machine profile." + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets the provisioning state, which only appears in the response." + }, + "overProvision": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Specifies whether the Virtual Machine Scale Set should be overprovisioned." + } + }, + "description": "Describes the properties of a Virtual Machine Scale Set." + }, + "VirtualMachineScaleSetStorageProfile": { + "type": "object", + "properties": { + "imageReference": { + "oneOf": [ + { + "$ref": "#/definitions/ImageReference" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the image reference." + }, + "osDisk": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineScaleSetOSDisk" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the OS disk." + } + }, + "description": "Describes a virtual machine scale set storage profile." + }, + "VirtualMachineScaleSetVMProfile": { + "type": "object", + "properties": { + "osProfile": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineScaleSetOSProfile" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the virtual machine scale set OS profile." + }, + "storageProfile": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineScaleSetStorageProfile" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the virtual machine scale set storage profile." + }, + "networkProfile": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineScaleSetNetworkProfile" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the virtual machine scale set network profile." + }, + "extensionProfile": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineScaleSetExtensionProfile" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets the virtual machine scale set extension profile." + } + }, + "description": "Describes a virtual machine scale set virtual machine profile." + }, + "WindowsConfiguration": { + "type": "object", + "properties": { + "provisionVMAgent": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets whether VM Agent should be provisioned on the Virtual Machine." + }, + "enableAutomaticUpdates": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets whether Windows updates are automatically installed on the VM" + }, + "timeZone": { + "type": "string", + "description": "Gets or sets the Time Zone of the VM" + }, + "additionalUnattendContent": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/AdditionalUnattendContent" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the additional base-64 encoded XML formatted information that can be included in the Unattend.xml file." + }, + "winRM": { + "oneOf": [ + { + "$ref": "#/definitions/WinRMConfiguration" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Windows Remote Management configuration of the VM" + } + }, + "description": "Describes Windows Configuration of the OS Profile." + }, + "WinRMConfiguration": { + "type": "object", + "properties": { + "listeners": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/WinRMListener" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of Windows Remote Management listeners" + } + }, + "description": "Describes Windows Remote Management configuration of the VM" + }, + "WinRMListener": { + "type": "object", + "properties": { + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Http", + "Https" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Protocol used by WinRM listener. Currently only Http and Https are supported. Possible values include: 'Http', 'Https'" + }, + "certificateUrl": { + "type": "string", + "description": "Gets or sets the Certificate URL in KMS for Https listeners. Should be null for Http listeners." + } + }, + "description": "Describes Protocol and thumbprint of Windows Remote Management listener" + } + } +} diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Compute/2015-06-15/compute.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Compute/2015-06-15/compute.json new file mode 100644 index 0000000000000..9ccfc0d1f3a87 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Compute/2015-06-15/compute.json @@ -0,0 +1,4543 @@ +{ + "swagger": "2.0", + "info": { + "title": "ComputeManagementClient", + "description": "The Compute Management Client.", + "version": "2015-06-15" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{name}": { + "put": { + "tags": [ + "AvailabilitySets" + ], + "operationId": "AvailabilitySets_CreateOrUpdate", + "description": "The operation to create or update the availability set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Parameters supplied to the Create Availability Set operation." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AvailabilitySet" + }, + "description": "Parameters supplied to the Create Availability Set operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/AvailabilitySet" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}": { + "delete": { + "tags": [ + "AvailabilitySets" + ], + "operationId": "AvailabilitySets_Delete", + "description": "The operation to delete the availability set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "availabilitySetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the availability set." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + }, + "204": { + "description": "" + } + } + }, + "get": { + "tags": [ + "AvailabilitySets" + ], + "operationId": "AvailabilitySets_Get", + "description": "The operation to get the availability set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "availabilitySetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the availability set." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/AvailabilitySet" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets": { + "get": { + "tags": [ + "AvailabilitySets" + ], + "operationId": "AvailabilitySets_List", + "description": "The operation to list the availability sets.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/AvailabilitySetListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}/vmSizes": { + "get": { + "tags": [ + "AvailabilitySets" + ], + "operationId": "AvailabilitySets_ListAvailableSizes", + "description": "Lists all available virtual machine sizes that can be used to create a new virtual machine in an existing availability set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "availabilitySetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the availability set." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineSizeListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types/{type}/versions/{version}": { + "get": { + "tags": [ + "VirtualMachineExtensionImages" + ], + "operationId": "VirtualMachineExtensionImages_Get", + "description": "Gets a virtual machine extension image.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "type", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineExtensionImage" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types": { + "get": { + "tags": [ + "VirtualMachineExtensionImages" + ], + "operationId": "VirtualMachineExtensionImages_ListTypes", + "description": "Gets a list of virtual machine extension image types.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineExtensionImage" + } + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types/{type}/versions": { + "get": { + "tags": [ + "VirtualMachineExtensionImages" + ], + "operationId": "VirtualMachineExtensionImages_ListVersions", + "description": "Gets a list of virtual machine extension image versions.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "type", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "The filter to apply on the operation." + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderby", + "in": "query", + "required": false, + "type": "string" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineExtensionImage" + } + } + } + }, + "x-ms-odata": "#/definitions/VirtualMachineExtensionImage" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}": { + "put": { + "tags": [ + "VirtualMachineExtensions" + ], + "operationId": "VirtualMachineExtensions_CreateOrUpdate", + "description": "The operation to create or update the extension.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine where the extension should be create or updated." + }, + { + "name": "vmExtensionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine extension." + }, + { + "name": "extensionParameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualMachineExtension" + }, + "description": "Parameters supplied to the Create Virtual Machine Extension operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineExtension" + } + }, + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineExtension" + } + } + }, + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ + "VirtualMachineExtensions" + ], + "operationId": "VirtualMachineExtensions_Delete", + "description": "The operation to delete the extension.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine where the extension should be deleted." + }, + { + "name": "vmExtensionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine extension." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + }, + "204": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "VirtualMachineExtensions" + ], + "operationId": "VirtualMachineExtensions_Get", + "description": "The operation to get the extension.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine containing the extension." + }, + { + "name": "vmExtensionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine extension." + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "The expand expression to apply on the operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineExtension" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions/{version}": { + "get": { + "tags": [ + "VirtualMachineImages" + ], + "operationId": "VirtualMachineImages_Get", + "description": "Gets a virtual machine image.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "offer", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "skus", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineImage" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions": { + "get": { + "tags": [ + "VirtualMachineImages" + ], + "operationId": "VirtualMachineImages_List", + "description": "Gets a list of virtual machine images.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "offer", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "skus", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "The filter to apply on the operation." + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderby", + "in": "query", + "required": false, + "type": "string" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineImageResource" + } + } + } + }, + "x-ms-odata": "#/definitions/VirtualMachineImageResource" + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers": { + "get": { + "tags": [ + "VirtualMachineImages" + ], + "operationId": "VirtualMachineImages_ListOffers", + "description": "Gets a list of virtual machine image offers.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineImageResource" + } + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers": { + "get": { + "tags": [ + "VirtualMachineImages" + ], + "operationId": "VirtualMachineImages_ListPublishers", + "description": "Gets a list of virtual machine image publishers.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineImageResource" + } + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus": { + "get": { + "tags": [ + "VirtualMachineImages" + ], + "operationId": "VirtualMachineImages_ListSkus", + "description": "Gets a list of virtual machine image skus.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "offer", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineImageResource" + } + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/usages": { + "get": { + "tags": [ + "Usage" + ], + "operationId": "Usage_List", + "description": "Lists compute usages for a subscription.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location upon which resource usage is queried.", + "pattern": "^[-\\w\\._]+$" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ListUsagesResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/vmSizes": { + "get": { + "tags": [ + "VirtualMachineSizes" + ], + "operationId": "VirtualMachineSizes_List", + "description": "Lists all available virtual machine sizes for a subscription in a location.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location upon which virtual-machine-sizes is queried.", + "pattern": "^[-\\w\\._]+$" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineSizeListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/capture": { + "post": { + "tags": [ + "VirtualMachines" + ], + "operationId": "VirtualMachines_Capture", + "description": "Captures the VM by copying virtual hard disks of the VM and outputs a template that can be used to create similar VMs.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualMachineCaptureParameters" + }, + "description": "Parameters supplied to the Capture Virtual Machine operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineCaptureResult" + } + }, + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}": { + "put": { + "tags": [ + "VirtualMachines" + ], + "operationId": "VirtualMachines_CreateOrUpdate", + "description": "The operation to create or update a virtual machine.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualMachine" + }, + "description": "Parameters supplied to the Create Virtual Machine operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachine" + } + }, + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachine" + } + } + }, + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ + "VirtualMachines" + ], + "operationId": "VirtualMachines_Delete", + "description": "The operation to delete a virtual machine.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + }, + "204": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "VirtualMachines" + ], + "operationId": "VirtualMachines_Get", + "description": "The operation to get a virtual machine.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine." + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "The expand expression to apply on the operation.", + "enum": [ + "instanceView" + ], + "x-ms-enum": { + "name": "InstanceViewTypes", + "modelAsString": false + } + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachine" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/deallocate": { + "post": { + "tags": [ + "VirtualMachines" + ], + "operationId": "VirtualMachines_Deallocate", + "description": "Shuts down the Virtual Machine and releases the compute resources. You are not billed for the compute resources that this Virtual Machine uses.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/generalize": { + "post": { + "tags": [ + "VirtualMachines" + ], + "operationId": "VirtualMachines_Generalize", + "description": "Sets the state of the VM as Generalized.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines": { + "get": { + "tags": [ + "VirtualMachines" + ], + "operationId": "VirtualMachines_List", + "description": "The operation to list virtual machines under a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachines": { + "get": { + "tags": [ + "VirtualMachines" + ], + "operationId": "VirtualMachines_ListAll", + "description": "Gets the list of Virtual Machines in the subscription. Use nextLink property in the response to get the next page of Virtual Machines. Do this till nextLink is not null to fetch all the Virtual Machines.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/vmSizes": { + "get": { + "tags": [ + "VirtualMachines" + ], + "operationId": "VirtualMachines_ListAvailableSizes", + "description": "Lists all available virtual machine sizes it can be resized to for a virtual machine.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineSizeListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/powerOff": { + "post": { + "tags": [ + "VirtualMachines" + ], + "operationId": "VirtualMachines_PowerOff", + "description": "The operation to power off (stop) a virtual machine.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/restart": { + "post": { + "tags": [ + "VirtualMachines" + ], + "operationId": "VirtualMachines_Restart", + "description": "The operation to restart a virtual machine.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/start": { + "post": { + "tags": [ + "VirtualMachines" + ], + "operationId": "VirtualMachines_Start", + "description": "The operation to start a virtual machine.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/redeploy": { + "post": { + "tags": [ + "VirtualMachines" + ], + "operationId": "VirtualMachines_Redeploy", + "description": "The operation to redeploy a virtual machine.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{name}": { + "put": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_CreateOrUpdate", + "description": "The operation to create or update a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Parameters supplied to the Create Virtual Machine Scale Set operation." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSet" + }, + "description": "Parameters supplied to the Create Virtual Machine Scale Set operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSet" + } + }, + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSet" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/deallocate": { + "post": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_Deallocate", + "description": "The operation to deallocate virtual machines in a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "vmInstanceIDs", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceIDs" + }, + "description": "The list of virtual machine scale set instance IDs." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}": { + "delete": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_Delete", + "description": "The operation to delete a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + }, + "202": { + "description": "" + }, + "204": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_Get", + "description": "The operation to get a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSet" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/delete": { + "post": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_DeleteInstances", + "description": "The operation to delete virtual machines in a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "vmInstanceIDs", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceRequiredIDs" + }, + "description": "The list of virtual machine scale set instance IDs." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView": { + "get": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_GetInstanceView", + "description": "The operation to get a virtual machine scale set instance view.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSetInstanceView" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets": { + "get": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_List", + "description": "The operation to list virtual machine scale sets under a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSetListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachineScaleSets": { + "get": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_ListAll", + "description": "Gets the list of Virtual Machine Scale Sets in the subscription. Use nextLink property in the response to get the next page of Virtual Machine Scale Sets. Do this till nextLink is not null to fetch all the Virtual Machine Scale Sets.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSetListWithLinkResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/skus": { + "get": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_ListSkus", + "description": "The operation to list available skus for a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSetListSkusResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/poweroff": { + "post": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_PowerOff", + "description": "The operation to power off (stop) virtual machines in a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "vmInstanceIDs", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceIDs" + }, + "description": "The list of virtual machine scale set instance IDs." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/restart": { + "post": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_Restart", + "description": "The operation to restart virtual machines in a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "vmInstanceIDs", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceIDs" + }, + "description": "The list of virtual machine scale set instance IDs." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/start": { + "post": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_Start", + "description": "The operation to start virtual machines in a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "vmInstanceIDs", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceIDs" + }, + "description": "The list of virtual machine scale set instance IDs." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/manualupgrade": { + "post": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_UpdateInstances", + "description": "The operation to manually upgrade virtual machines in a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "vmInstanceIDs", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceRequiredIDs" + }, + "description": "The list of virtual machine scale set instance IDs." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/reimage": { + "post": { + "tags": [ + "VirtualMachineScaleSets" + ], + "operationId": "VirtualMachineScaleSets_Reimage", + "description": "The operation to re-image virtual machines in a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/reimage": { + "post": { + "tags": [ + "VirtualMachineScaleSetVMs" + ], + "operationId": "VirtualMachineScaleSetVMs_Reimage", + "description": "The operation to re-image a virtual machine scale set instance.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "instanceId", + "in": "path", + "required": true, + "type": "string", + "description": "The instance id of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/deallocate": { + "post": { + "tags": [ + "VirtualMachineScaleSetVMs" + ], + "operationId": "VirtualMachineScaleSetVMs_Deallocate", + "description": "The operation to deallocate a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "instanceId", + "in": "path", + "required": true, + "type": "string", + "description": "The instance id of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}": { + "delete": { + "tags": [ + "VirtualMachineScaleSetVMs" + ], + "operationId": "VirtualMachineScaleSetVMs_Delete", + "description": "The operation to delete a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "instanceId", + "in": "path", + "required": true, + "type": "string", + "description": "The instance id of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + }, + "202": { + "description": "" + }, + "204": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "VirtualMachineScaleSetVMs" + ], + "operationId": "VirtualMachineScaleSetVMs_Get", + "description": "The operation to get a virtual machine scale set virtual machine.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "instanceId", + "in": "path", + "required": true, + "type": "string", + "description": "The instance id of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSetVM" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/instanceView": { + "get": { + "tags": [ + "VirtualMachineScaleSetVMs" + ], + "operationId": "VirtualMachineScaleSetVMs_GetInstanceView", + "description": "The operation to get a virtual machine scale set virtual machine.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "instanceId", + "in": "path", + "required": true, + "type": "string", + "description": "The instance id of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceView" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines": { + "get": { + "tags": [ + "VirtualMachineScaleSetVMs" + ], + "operationId": "VirtualMachineScaleSetVMs_List", + "description": "The operation to list virtual machine scale sets VMs.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualMachineScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "The filter to apply on the operation." + }, + { + "name": "$select", + "in": "query", + "required": false, + "type": "string", + "description": "The list parameters." + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "The expand expression to apply on the operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualMachineScaleSetVMListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-odata": "#/definitions/VirtualMachineScaleSetVM" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/poweroff": { + "post": { + "tags": [ + "VirtualMachineScaleSetVMs" + ], + "operationId": "VirtualMachineScaleSetVMs_PowerOff", + "description": "The operation to power off (stop) a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "instanceId", + "in": "path", + "required": true, + "type": "string", + "description": "The instance id of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/restart": { + "post": { + "tags": [ + "VirtualMachineScaleSetVMs" + ], + "operationId": "VirtualMachineScaleSetVMs_Restart", + "description": "The operation to restart a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "instanceId", + "in": "path", + "required": true, + "type": "string", + "description": "The instance id of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/start": { + "post": { + "tags": [ + "VirtualMachineScaleSetVMs" + ], + "operationId": "VirtualMachineScaleSetVMs_Start", + "description": "The operation to start a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "vmScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "instanceId", + "in": "path", + "required": true, + "type": "string", + "description": "The instance id of the virtual machine." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "InstanceViewStatus": { + "properties": { + "code": { + "type": "string", + "description": "Gets the status Code." + }, + "level": { + "type": "string", + "description": "Gets or sets the level Code.", + "enum": [ + "Info", + "Warning", + "Error" + ], + "x-ms-enum": { + "name": "StatusLevelTypes", + "modelAsString": false + } + }, + "displayStatus": { + "type": "string", + "description": "Gets or sets the short localizable label for the status." + }, + "message": { + "type": "string", + "description": "Gets or sets the detailed Message, including for alerts and error messages." + }, + "time": { + "type": "string", + "format": "date-time", + "description": "Gets or sets the time of the status." + } + }, + "description": "Instance view status." + }, + "AvailabilitySetProperties": { + "properties": { + "platformUpdateDomainCount": { + "type": "integer", + "format": "int32", + "description": "Gets or sets Update Domain count." + }, + "platformFaultDomainCount": { + "type": "integer", + "format": "int32", + "description": "Gets or sets Fault Domain count." + }, + "virtualMachines": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets or sets a list containing reference to all Virtual Machines created under this Availability Set." + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceViewStatus" + }, + "description": "Gets or sets the resource status information." + } + }, + "description": "The instance view of a resource." + }, + "AvailabilitySet": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/AvailabilitySetProperties" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "Create or update Availability Set parameters." + }, + "AvailabilitySetListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/AvailabilitySet" + }, + "description": "Gets or sets the list of availability sets" + } + }, + "description": "The List Availability Set operation response." + }, + "VirtualMachineSize": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the VM size name." + }, + "numberOfCores": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the Number of cores supported by a VM size." + }, + "osDiskSizeInMB": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the OS disk size allowed by a VM size." + }, + "resourceDiskSizeInMB": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the Resource disk size allowed by a VM size." + }, + "memoryInMB": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the Memory size supported by a VM size." + }, + "maxDataDiskCount": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the Maximum number of data disks allowed by a VM size." + } + }, + "description": "Describes the properties of a VM size." + }, + "VirtualMachineSizeListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineSize" + }, + "description": "Gets or sets the list of virtual machine sizes." + } + }, + "description": "The List Virtual Machine operation response." + }, + "VirtualMachineExtensionImageProperties": { + "properties": { + "operatingSystem": { + "type": "string", + "description": "Gets or sets the operating system this extension supports." + }, + "computeRole": { + "type": "string", + "description": "Gets or sets the type of role (IaaS or PaaS) this extension supports." + }, + "handlerSchema": { + "type": "string", + "description": "Gets or sets the schema defined by publisher, where extension consumers should provide settings in a matching schema." + }, + "vmScaleSetEnabled": { + "type": "boolean", + "description": "Gets or sets whether the extension can be used on xRP VMScaleSets.By default existing extensions are usable on scalesets, but there might be cases where a publisher wants to explicitly indicate the extension is only enabled for CRP VMs but not VMSS." + }, + "supportsMultipleExtensions": { + "type": "boolean", + "description": "Gets or sets whether the handler can support multiple extensions." + } + }, + "required": [ + "operatingSystem", + "computeRole", + "handlerSchema" + ], + "description": "Describes the properties of a Virtual Machine Extension Image." + }, + "VirtualMachineExtensionImage": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualMachineExtensionImageProperties" + } + }, + "required": [ + "name", + "location" + ], + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "Describes a Virtual Machine Extension Image." + }, + "VirtualMachineImageResource": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the name of the resource." + }, + "location": { + "type": "string", + "description": "Gets or sets the location of the resource." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets the tags attached to the resource." + } + }, + "required": [ + "name", + "location" + ], + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Virtual machine image resource information." + }, + "VirtualMachineExtensionInstanceView": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the virtual machine extension name." + }, + "type": { + "type": "string", + "description": "Gets or sets the full type of the extension handler which includes both publisher and type." + }, + "typeHandlerVersion": { + "type": "string", + "description": "Gets or sets the type version of the extension handler." + }, + "substatuses": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceViewStatus" + }, + "description": "Gets or sets the resource status information." + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceViewStatus" + }, + "description": "Gets or sets the resource status information." + } + }, + "description": "The instance view of a virtual machine extension." + }, + "VirtualMachineExtensionProperties": { + "properties": { + "forceUpdateTag": { + "type": "string", + "description": "Gets or sets how the extension handler should be forced to update even if the extension configuration has not changed.", + "enum": [ + "RerunExtension" + ], + "x-ms-enum": { + "name": "ForceUpdateTagTypes", + "modelAsString": false + } + }, + "publisher": { + "type": "string", + "description": "Gets or sets the name of the extension handler publisher." + }, + "type": { + "type": "string", + "description": "Gets or sets the type of the extension handler." + }, + "typeHandlerVersion": { + "type": "string", + "description": "Gets or sets the type version of the extension handler." + }, + "autoUpgradeMinorVersion": { + "type": "boolean", + "description": "Gets or sets whether the extension handler should be automatically upgraded across minor versions." + }, + "settings": { + "type": "object", + "description": "Gets or sets Json formatted public settings for the extension." + }, + "protectedSettings": { + "type": "object", + "description": "Gets or sets Json formatted protected settings for the extension." + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets the provisioning state, which only appears in the response." + }, + "instanceView": { + "$ref": "#/definitions/VirtualMachineExtensionInstanceView", + "description": "Gets or sets the virtual machine extension instance view." + } + }, + "description": "Describes the properties of a Virtual Machine Extension." + }, + "VirtualMachineExtension": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualMachineExtensionProperties" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "Describes a Virtual Machine Extension." + }, + "PurchasePlan": { + "properties": { + "publisher": { + "type": "string", + "description": "Gets or sets the publisher ID." + }, + "name": { + "type": "string", + "description": "Gets or sets the plan ID." + }, + "product": { + "type": "string", + "description": "Gets or sets the product ID." + } + }, + "required": [ + "publisher", + "name", + "product" + ], + "description": "Used for establishing the purchase context of any 3rd Party artifact through MarketPlace." + }, + "OSDiskImage": { + "properties": { + "operatingSystem": { + "type": "string", + "description": "Gets or sets the operating system of the osDiskImage.", + "enum": [ + "Windows", + "Linux" + ], + "x-ms-enum": { + "name": "OperatingSystemTypes", + "modelAsString": false + } + } + }, + "required": [ + "operatingSystem" + ], + "description": "Contains the os disk image information." + }, + "DataDiskImage": { + "properties": { + "lun": { + "readOnly": true, + "type": "integer", + "format": "int32", + "description": "Gets the LUN number for a data disk.This value is used to identify data disk image inside the VMImage therefore it must be unique for each data disk.The allowed character for the value is digit." + } + }, + "description": "Contains the data disk images information." + }, + "VirtualMachineImageProperties": { + "properties": { + "plan": { + "$ref": "#/definitions/PurchasePlan" + }, + "osDiskImage": { + "$ref": "#/definitions/OSDiskImage" + }, + "dataDiskImages": { + "type": "array", + "items": { + "$ref": "#/definitions/DataDiskImage" + } + } + }, + "description": "Describes the properties of a Virtual Machine Image." + }, + "VirtualMachineImage": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualMachineImageProperties" + } + }, + "required": [ + "name", + "location" + ], + "allOf": [ + { + "$ref": "#/definitions/VirtualMachineImageResource" + } + ], + "description": "Describes a Virtual Machine Image." + }, + "UsageName": { + "properties": { + "value": { + "type": "string", + "description": "Gets or sets a string describing the resource name." + }, + "localizedValue": { + "type": "string", + "description": "Gets or sets a localized string describing the resource name." + } + }, + "description": "The Usage Names." + }, + "Usage": { + "properties": { + "unit": { + "type": "string", + "description": "Gets or sets an enum describing the unit of measurement.", + "enum": [ + "Count" + ], + "x-ms-enum": { + "name": "UsageUnit", + "modelAsString": false + } + }, + "currentValue": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the current value of the usage." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Gets or sets the limit of usage." + }, + "name": { + "$ref": "#/definitions/UsageName", + "description": "Gets or sets the name of the type of usage." + } + }, + "required": [ + "unit", + "currentValue", + "limit", + "name" + ], + "description": "Describes Compute Resource Usage." + }, + "ListUsagesResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Usage" + }, + "description": "Gets or sets the list Compute Resource Usages." + } + }, + "description": "The List Usages operation response." + }, + "VirtualMachineCaptureParameters": { + "properties": { + "vhdPrefix": { + "type": "string", + "description": "Gets or sets the captured VirtualHardDisk's name prefix." + }, + "destinationContainerName": { + "type": "string", + "description": "Gets or sets the destination container name." + }, + "overwriteVhds": { + "type": "boolean", + "description": "Gets or sets whether it overwrites destination VirtualHardDisk if true, in case of conflict." + } + }, + "required": [ + "vhdPrefix", + "destinationContainerName", + "overwriteVhds" + ], + "description": "Capture Virtual Machine parameters." + }, + "VirtualMachineCaptureResultProperties": { + "properties": { + "output": { + "type": "object", + "description": "Operation output data (raw JSON)" + } + }, + "description": "Compute-specific operation properties, including output" + }, + "VirtualMachineCaptureResult": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualMachineCaptureResultProperties" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Resource Id." + }, + "Plan": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the plan ID." + }, + "publisher": { + "type": "string", + "description": "Gets or sets the publisher ID." + }, + "product": { + "type": "string", + "description": "Gets or sets the offer ID." + }, + "promotionCode": { + "type": "string", + "description": "Gets or sets the promotion code." + } + }, + "description": "Plan for the resource." + }, + "HardwareProfile": { + "properties": { + "vmSize": { + "type": "string", + "description": "The virtual machine size name.", + "enum": [ + "Basic_A0", + "Basic_A1", + "Basic_A2", + "Basic_A3", + "Basic_A4", + "Standard_A0", + "Standard_A1", + "Standard_A2", + "Standard_A3", + "Standard_A4", + "Standard_A5", + "Standard_A6", + "Standard_A7", + "Standard_A8", + "Standard_A9", + "Standard_A10", + "Standard_A11", + "Standard_D1", + "Standard_D2", + "Standard_D3", + "Standard_D4", + "Standard_D11", + "Standard_D12", + "Standard_D13", + "Standard_D14", + "Standard_D1_v2", + "Standard_D2_v2", + "Standard_D3_v2", + "Standard_D4_v2", + "Standard_D5_v2", + "Standard_D11_v2", + "Standard_D12_v2", + "Standard_D13_v2", + "Standard_D14_v2", + "Standard_DS1", + "Standard_DS2", + "Standard_DS3", + "Standard_DS4", + "Standard_DS11", + "Standard_DS12", + "Standard_DS13", + "Standard_DS14", + "Standard_G1", + "Standard_G2", + "Standard_G3", + "Standard_G4", + "Standard_G5", + "Standard_GS1", + "Standard_GS2", + "Standard_GS3", + "Standard_GS4", + "Standard_GS5" + ], + "x-ms-enum": { + "name": "VirtualMachineSizeTypes", + "modelAsString": true + } + } + }, + "description": "Describes a hardware profile." + }, + "ImageReference": { + "properties": { + "publisher": { + "type": "string", + "description": "Gets or sets the image publisher." + }, + "offer": { + "type": "string", + "description": "Gets or sets the image offer." + }, + "sku": { + "type": "string", + "description": "Gets or sets the image sku." + }, + "version": { + "type": "string", + "description": "Gets or sets the image version. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor and Build being decimal numbers. Specify 'latest' to use the latest version of image." + } + }, + "description": "The image reference." + }, + "KeyVaultSecretReference": { + "properties": { + "secretUrl": { + "type": "string", + "description": "Gets or sets the URL referencing a secret in a Key Vault." + }, + "sourceVault": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the Relative URL of the Key Vault containing the secret." + } + }, + "required": [ + "secretUrl", + "sourceVault" + ], + "description": "Describes a reference to Key Vault Secret" + }, + "KeyVaultKeyReference": { + "properties": { + "keyUrl": { + "type": "string", + "description": "Gets or sets the URL referencing a key in a Key Vault." + }, + "sourceVault": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the Relative URL of the Key Vault containing the key" + } + }, + "required": [ + "keyUrl", + "sourceVault" + ], + "description": "Describes a reference to Key Vault Key" + }, + "DiskEncryptionSettings": { + "properties": { + "diskEncryptionKey": { + "$ref": "#/definitions/KeyVaultSecretReference", + "description": "Gets or sets the disk encryption key which is a KeyVault Secret." + }, + "keyEncryptionKey": { + "$ref": "#/definitions/KeyVaultKeyReference", + "description": "Gets or sets the key encryption key which is KeyVault Key." + }, + "enabled": { + "type": "boolean", + "description": "Gets or sets whether disk encryption should be enabled on the Virtual Machine." + } + }, + "required": [ + "diskEncryptionKey" + ], + "description": "Describes a Encryption Settings for a Disk" + }, + "VirtualHardDisk": { + "properties": { + "uri": { + "type": "string", + "description": "Gets or sets the virtual hard disk's uri. It should be a valid Uri to a virtual hard disk." + } + }, + "description": "Describes the uri of a disk." + }, + "OSDisk": { + "properties": { + "osType": { + "type": "string", + "description": "Gets or sets the Operating System type.", + "enum": [ + "Windows", + "Linux" + ], + "x-ms-enum": { + "name": "OperatingSystemTypes", + "modelAsString": false + } + }, + "encryptionSettings": { + "$ref": "#/definitions/DiskEncryptionSettings", + "description": "Gets or sets the disk encryption settings." + }, + "name": { + "type": "string", + "description": "Gets or sets the disk name." + }, + "vhd": { + "$ref": "#/definitions/VirtualHardDisk", + "description": "Gets or sets the Virtual Hard Disk." + }, + "image": { + "$ref": "#/definitions/VirtualHardDisk", + "description": "Gets or sets the Source User Image VirtualHardDisk. This VirtualHardDisk will be copied before using it to attach to the Virtual Machine.If SourceImage is provided, the destination VirtualHardDisk should not exist." + }, + "caching": { + "type": "string", + "description": "Gets or sets the caching type.", + "enum": [ + "None", + "ReadOnly", + "ReadWrite" + ], + "x-ms-enum": { + "name": "CachingTypes", + "modelAsString": false + } + }, + "createOption": { + "type": "string", + "description": "Gets or sets the create option.", + "enum": [ + "fromImage", + "empty", + "attach" + ], + "x-ms-enum": { + "name": "DiskCreateOptionTypes", + "modelAsString": false + } + }, + "diskSizeGB": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the initial disk size in GB for blank data disks, and the new desired size for existing OS and Data disks." + } + }, + "required": [ + "name", + "vhd", + "createOption" + ], + "description": "Describes an Operating System disk." + }, + "DataDisk": { + "properties": { + "lun": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the logical unit number." + }, + "name": { + "type": "string", + "description": "Gets or sets the disk name." + }, + "vhd": { + "$ref": "#/definitions/VirtualHardDisk", + "description": "Gets or sets the Virtual Hard Disk." + }, + "image": { + "$ref": "#/definitions/VirtualHardDisk", + "description": "Gets or sets the Source User Image VirtualHardDisk. This VirtualHardDisk will be copied before using it to attach to the Virtual Machine.If SourceImage is provided, the destination VirtualHardDisk should not exist." + }, + "caching": { + "type": "string", + "description": "Gets or sets the caching type.", + "enum": [ + "None", + "ReadOnly", + "ReadWrite" + ], + "x-ms-enum": { + "name": "CachingTypes", + "modelAsString": false + } + }, + "createOption": { + "type": "string", + "description": "Gets or sets the create option.", + "enum": [ + "fromImage", + "empty", + "attach" + ], + "x-ms-enum": { + "name": "DiskCreateOptionTypes", + "modelAsString": false + } + }, + "diskSizeGB": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the initial disk size in GB for blank data disks, and the new desired size for existing OS and Data disks." + } + }, + "required": [ + "lun", + "name", + "vhd", + "createOption" + ], + "description": "Describes a data disk." + }, + "StorageProfile": { + "properties": { + "imageReference": { + "$ref": "#/definitions/ImageReference", + "description": "Gets or sets the image reference." + }, + "osDisk": { + "$ref": "#/definitions/OSDisk", + "description": "Gets or sets the OS disk." + }, + "dataDisks": { + "type": "array", + "items": { + "$ref": "#/definitions/DataDisk" + }, + "description": "Gets or sets the data disks." + } + }, + "description": "Describes a storage profile." + }, + "AdditionalUnattendContent": { + "properties": { + "passName": { + "type": "string", + "description": "Gets or sets the pass name. Currently, the only allowable value is oobeSystem.", + "enum": [ + "oobeSystem" + ], + "x-ms-enum": { + "name": "PassNames", + "modelAsString": false + } + }, + "componentName": { + "type": "string", + "description": "Gets or sets the component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.", + "enum": [ + "Microsoft-Windows-Shell-Setup" + ], + "x-ms-enum": { + "name": "ComponentNames", + "modelAsString": false + } + }, + "settingName": { + "type": "string", + "description": "Gets or sets setting name (e.g. FirstLogonCommands, AutoLogon )", + "enum": [ + "AutoLogon", + "FirstLogonCommands" + ], + "x-ms-enum": { + "name": "SettingNames", + "modelAsString": false + } + }, + "content": { + "type": "string", + "description": "Gets or sets XML formatted content that is added to the unattend.xml file in the specified pass and component.The XML must be less than 4 KB and must include the root element for the setting or feature that is being inserted." + } + }, + "description": "Gets or sets additional XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup. Contents are defined by setting name, component name, and the pass in which the content is a applied." + }, + "WinRMListener": { + "properties": { + "protocol": { + "type": "string", + "description": "Gets or sets the Protocol used by WinRM listener. Currently only Http and Https are supported.", + "enum": [ + "Http", + "Https" + ], + "x-ms-enum": { + "name": "ProtocolTypes", + "modelAsString": false + } + }, + "certificateUrl": { + "type": "string", + "description": "Gets or sets the Certificate URL in KMS for Https listeners. Should be null for Http listeners." + } + }, + "description": "Describes Protocol and thumbprint of Windows Remote Management listener" + }, + "WinRMConfiguration": { + "properties": { + "listeners": { + "type": "array", + "items": { + "$ref": "#/definitions/WinRMListener" + }, + "description": "Gets or sets the list of Windows Remote Management listeners" + } + }, + "description": "Describes Windows Remote Management configuration of the VM" + }, + "WindowsConfiguration": { + "properties": { + "provisionVMAgent": { + "type": "boolean", + "description": "Gets or sets whether VM Agent should be provisioned on the Virtual Machine." + }, + "enableAutomaticUpdates": { + "type": "boolean", + "description": "Gets or sets whether Windows updates are automatically installed on the VM" + }, + "timeZone": { + "type": "string", + "description": "Gets or sets the Time Zone of the VM" + }, + "additionalUnattendContent": { + "type": "array", + "items": { + "$ref": "#/definitions/AdditionalUnattendContent" + }, + "description": "Gets or sets the additional base-64 encoded XML formatted information that can be included in the Unattend.xml file." + }, + "winRM": { + "$ref": "#/definitions/WinRMConfiguration", + "description": "Gets or sets the Windows Remote Management configuration of the VM" + } + }, + "description": "Describes Windows Configuration of the OS Profile." + }, + "SshPublicKey": { + "properties": { + "path": { + "type": "string", + "description": "Gets or sets the full path on the created VM where SSH public key is stored. If the file already exists, the specified key is appended to the file." + }, + "keyData": { + "type": "string", + "description": "Gets or sets Certificate public key used to authenticate with VM through SSH.The certificate must be in Pem format with or without headers." + } + }, + "description": "Contains information about SSH certificate public key and the path on the Linux VM where the public key is placed." + }, + "SshConfiguration": { + "properties": { + "publicKeys": { + "type": "array", + "items": { + "$ref": "#/definitions/SshPublicKey" + }, + "description": "Gets or sets the list of SSH public keys used to authenticate with linux based VMs" + } + }, + "description": "SSH configuration for Linux based VMs running on Azure" + }, + "LinuxConfiguration": { + "properties": { + "disablePasswordAuthentication": { + "type": "boolean", + "description": "Gets or sets whether Authentication using user name and password is allowed or not" + }, + "ssh": { + "$ref": "#/definitions/SshConfiguration", + "description": "Gets or sets the SSH configuration for linux VMs" + } + }, + "description": "Describes Windows Configuration of the OS Profile." + }, + "VaultCertificate": { + "properties": { + "certificateUrl": { + "type": "string", + "description": "Gets or sets the URL referencing a secret in a Key Vault which contains a properly formatted certificate." + }, + "certificateStore": { + "type": "string", + "description": "Gets or sets the Certificate store in LocalMachine to add the certificate to on Windows, leave empty on Linux." + } + }, + "description": "Describes a single certificate reference in a Key Vault, and where the certificate should reside on the VM." + }, + "VaultSecretGroup": { + "properties": { + "sourceVault": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the Relative URL of the Key Vault containing all of the certificates in VaultCertificates." + }, + "vaultCertificates": { + "type": "array", + "items": { + "$ref": "#/definitions/VaultCertificate" + }, + "description": "Gets or sets the list of key vault references in SourceVault which contain certificates" + } + }, + "description": "Describes a set of certificates which are all in the same Key Vault." + }, + "OSProfile": { + "properties": { + "computerName": { + "type": "string", + "description": "Gets or sets the computer name." + }, + "adminUsername": { + "type": "string", + "description": "Gets or sets the admin user name." + }, + "adminPassword": { + "type": "string", + "description": "Gets or sets the admin user password." + }, + "customData": { + "type": "string", + "description": "Gets or sets a base-64 encoded string of custom data." + }, + "windowsConfiguration": { + "$ref": "#/definitions/WindowsConfiguration", + "description": "Gets or sets the Windows Configuration of the OS profile." + }, + "linuxConfiguration": { + "$ref": "#/definitions/LinuxConfiguration", + "description": "Gets or sets the Linux Configuration of the OS profile." + }, + "secrets": { + "type": "array", + "items": { + "$ref": "#/definitions/VaultSecretGroup" + }, + "description": "Gets or sets the List of certificates for addition to the VM." + } + }, + "description": "Describes an OS profile." + }, + "NetworkInterfaceReferenceProperties": { + "properties": { + "primary": { + "type": "boolean", + "description": "Gets or sets whether this is a primary NIC on a virtual machine" + } + }, + "description": "Describes a network interface reference properties." + }, + "NetworkInterfaceReference": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/NetworkInterfaceReferenceProperties" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Describes a network interface reference." + }, + "NetworkProfile": { + "properties": { + "networkInterfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterfaceReference" + }, + "description": "Gets or sets the network interfaces." + } + }, + "description": "Describes a network profile." + }, + "BootDiagnostics": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Gets or sets whether boot diagnostics should be enabled on the Virtual Machine." + }, + "storageUri": { + "type": "string", + "description": "Gets or sets the boot diagnostics storage Uri. It should be a valid Uri" + } + }, + "description": "Describes Boot Diagnostics." + }, + "DiagnosticsProfile": { + "properties": { + "bootDiagnostics": { + "$ref": "#/definitions/BootDiagnostics", + "description": "Gets or sets the boot diagnostics." + } + }, + "description": "Describes a diagnostics profile." + }, + "VirtualMachineExtensionHandlerInstanceView": { + "properties": { + "type": { + "type": "string", + "description": "Gets or sets full type of the extension handler which includes both publisher and type." + }, + "typeHandlerVersion": { + "type": "string", + "description": "Gets or sets the type version of the extension handler." + }, + "status": { + "$ref": "#/definitions/InstanceViewStatus", + "description": "Gets or sets the extension handler status." + } + }, + "description": "The instance view of a virtual machine extension handler." + }, + "VirtualMachineAgentInstanceView": { + "properties": { + "vmAgentVersion": { + "type": "string", + "description": "Gets or sets the VM Agent full version." + }, + "extensionHandlers": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineExtensionHandlerInstanceView" + }, + "description": "Gets or sets the virtual machine extension handler instance view." + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceViewStatus" + }, + "description": "Gets or sets the resource status information." + } + }, + "description": "The instance view of the VM Agent running on the virtual machine." + }, + "DiskInstanceView": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the disk name." + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceViewStatus" + }, + "description": "Gets or sets the resource status information." + } + }, + "description": "The instance view of the disk." + }, + "BootDiagnosticsInstanceView": { + "properties": { + "consoleScreenshotBlobUri": { + "type": "string", + "description": "Gets or sets the console screenshot blob Uri." + }, + "serialConsoleLogBlobUri": { + "type": "string", + "description": "Gets or sets the Linux serial console log blob Uri." + } + }, + "description": "The instance view of a virtual machine boot diagnostics." + }, + "VirtualMachineInstanceView": { + "properties": { + "platformUpdateDomain": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the Update Domain count." + }, + "platformFaultDomain": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the Fault Domain count." + }, + "rdpThumbPrint": { + "type": "string", + "description": "Gets or sets the Remote desktop certificate thumbprint." + }, + "vmAgent": { + "$ref": "#/definitions/VirtualMachineAgentInstanceView", + "description": "Gets or sets the VM Agent running on the virtual machine." + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/DiskInstanceView" + }, + "description": "Gets or sets the disks information." + }, + "extensions": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineExtensionInstanceView" + }, + "description": "Gets or sets the extensions information." + }, + "bootDiagnostics": { + "$ref": "#/definitions/BootDiagnosticsInstanceView", + "description": "Gets or sets the boot diagnostics." + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceViewStatus" + }, + "description": "Gets or sets the resource status information." + } + }, + "description": "The instance view of a virtual machine." + }, + "VirtualMachineProperties": { + "properties": { + "hardwareProfile": { + "$ref": "#/definitions/HardwareProfile", + "description": "Gets or sets the hardware profile." + }, + "storageProfile": { + "$ref": "#/definitions/StorageProfile", + "description": "Gets or sets the storage profile." + }, + "osProfile": { + "$ref": "#/definitions/OSProfile", + "description": "Gets or sets the OS profile." + }, + "networkProfile": { + "$ref": "#/definitions/NetworkProfile", + "description": "Gets or sets the network profile." + }, + "diagnosticsProfile": { + "$ref": "#/definitions/DiagnosticsProfile", + "description": "Gets or sets the diagnostics profile." + }, + "availabilitySet": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference Id of the availability set to which this virtual machine belongs." + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets the provisioning state, which only appears in the response." + }, + "instanceView": { + "$ref": "#/definitions/VirtualMachineInstanceView", + "readOnly": true, + "description": "Gets the virtual machine instance view." + }, + "licenseType": { + "type": "string", + "description": "Gets or sets the license type, which is for bring your own license scenario." + } + }, + "description": "Describes the properties of a Virtual Machine." + }, + "VirtualMachine": { + "properties": { + "plan": { + "$ref": "#/definitions/Plan", + "description": "Gets or sets the purchase plan when deploying virtual machine from VM Marketplace images." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualMachineProperties" + }, + "resources": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineExtension" + }, + "description": "Gets the virtual machine child extension resources." + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "Describes a Virtual Machine." + }, + "VirtualMachineListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachine" + }, + "description": "Gets or sets the list of virtual machines." + }, + "nextLink": { + "type": "string", + "description": "Gets or sets the uri to fetch the next page of VMs. Call ListNext() with this to fetch the next page of Virtual Machines." + } + }, + "description": "The List Virtual Machine operation response." + }, + "Sku": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the sku name." + }, + "tier": { + "type": "string", + "description": "Gets or sets the sku tier." + }, + "capacity": { + "type": "integer", + "format": "int64", + "description": "Gets or sets the sku capacity." + } + }, + "description": "Describes a virtual machine scale set sku." + }, + "UpgradePolicy": { + "properties": { + "mode": { + "type": "string", + "description": "Gets or sets the upgrade mode.", + "enum": [ + "Automatic", + "Manual" + ], + "x-ms-enum": { + "name": "UpgradeMode", + "modelAsString": false + } + } + }, + "description": "Describes an upgrade policy - automatic or manual." + }, + "VirtualMachineScaleSetOSProfile": { + "properties": { + "computerNamePrefix": { + "type": "string", + "description": "Gets or sets the computer name prefix." + }, + "adminUsername": { + "type": "string", + "description": "Gets or sets the admin user name." + }, + "adminPassword": { + "type": "string", + "description": "Gets or sets the admin user password." + }, + "customData": { + "type": "string", + "description": "Gets or sets a base-64 encoded string of custom data." + }, + "windowsConfiguration": { + "$ref": "#/definitions/WindowsConfiguration", + "description": "Gets or sets the Windows Configuration of the OS profile." + }, + "linuxConfiguration": { + "$ref": "#/definitions/LinuxConfiguration", + "description": "Gets or sets the Linux Configuration of the OS profile." + }, + "secrets": { + "type": "array", + "items": { + "$ref": "#/definitions/VaultSecretGroup" + }, + "description": "Gets or sets the List of certificates for addition to the VM." + } + }, + "description": "Describes a virtual machine scale set OS profile." + }, + "VirtualMachineScaleSetOSDisk": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the disk name." + }, + "caching": { + "type": "string", + "description": "Gets or sets the caching type.", + "enum": [ + "None", + "ReadOnly", + "ReadWrite" + ], + "x-ms-enum": { + "name": "CachingTypes", + "modelAsString": false + } + }, + "createOption": { + "type": "string", + "description": "Gets or sets the create option.", + "enum": [ + "fromImage", + "empty", + "attach" + ], + "x-ms-enum": { + "name": "DiskCreateOptionTypes", + "modelAsString": false + } + }, + "osType": { + "type": "string", + "description": "Gets or sets the Operating System type.", + "enum": [ + "Windows", + "Linux" + ], + "x-ms-enum": { + "name": "OperatingSystemTypes", + "modelAsString": false + } + }, + "image": { + "$ref": "#/definitions/VirtualHardDisk", + "description": "Gets or sets the Source User Image VirtualHardDisk. This VirtualHardDisk will be copied before using it to attach to the Virtual Machine.If SourceImage is provided, the destination VirtualHardDisk should not exist." + }, + "vhdContainers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the list of virtual hard disk container uris." + } + }, + "required": [ + "name", + "createOption" + ], + "description": "Describes a virtual machine scale set operating system disk." + }, + "VirtualMachineScaleSetStorageProfile": { + "properties": { + "imageReference": { + "$ref": "#/definitions/ImageReference", + "description": "Gets or sets the image reference." + }, + "osDisk": { + "$ref": "#/definitions/VirtualMachineScaleSetOSDisk", + "description": "Gets or sets the OS disk." + } + }, + "description": "Describes a virtual machine scale set storage profile." + }, + "ApiEntityReference": { + "properties": { + "id": { + "type": "string", + "description": "Gets or sets ARM resource id in the form of /subscriptions/{SubcriptionId}/resourceGroups/{ResourceGroupName}/..." + } + }, + "description": "The API entity reference." + }, + "VirtualMachineScaleSetIPConfigurationProperties": { + "properties": { + "subnet": { + "$ref": "#/definitions/ApiEntityReference", + "description": "Gets or sets the subnet." + }, + "loadBalancerBackendAddressPools": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets or sets the load balancer backend address pools." + }, + "loadBalancerInboundNatPools": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets or sets the load balancer inbound nat pools." + } + }, + "required": [ + "subnet" + ], + "description": "Describes a virtual machine scale set network profile's IP configuration properties." + }, + "VirtualMachineScaleSetIPConfiguration": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the IP configuration name." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualMachineScaleSetIPConfigurationProperties" + } + }, + "required": [ + "name" + ], + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Describes a virtual machine scale set network profile's IP configuration." + }, + "VirtualMachineScaleSetNetworkConfigurationProperties": { + "properties": { + "primary": { + "type": "boolean", + "description": "Gets or sets whether this is a primary NIC on a virtual machine." + }, + "ipConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetIPConfiguration" + }, + "description": "Gets or sets the virtual machine scale set IP Configuration." + } + }, + "required": [ + "ipConfigurations" + ], + "description": "Describes a virtual machine scale set network profile's IP configuration." + }, + "VirtualMachineScaleSetNetworkConfiguration": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the network configuration name." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualMachineScaleSetNetworkConfigurationProperties" + } + }, + "required": [ + "name" + ], + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Describes a virtual machine scale set network profile's network configurations." + }, + "VirtualMachineScaleSetNetworkProfile": { + "properties": { + "networkInterfaceConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetNetworkConfiguration" + }, + "description": "Gets or sets the list of network configurations." + } + }, + "description": "Describes a virtual machine scale set network profile." + }, + "VirtualMachineScaleSetExtensionProperties": { + "properties": { + "publisher": { + "type": "string", + "description": "Gets or sets the name of the extension handler publisher." + }, + "type": { + "type": "string", + "description": "Gets or sets the type of the extension handler." + }, + "typeHandlerVersion": { + "type": "string", + "description": "Gets or sets the type version of the extension handler." + }, + "autoUpgradeMinorVersion": { + "type": "boolean", + "description": "Gets or sets whether the extension handler should be automatically upgraded across minor versions." + }, + "settings": { + "type": "object", + "description": "Gets or sets Json formatted public settings for the extension." + }, + "protectedSettings": { + "type": "object", + "description": "Gets or sets Json formatted protected settings for the extension." + }, + "provisioningState": { + "readOnly": true, + "type": "string", + "description": "Gets the provisioning state, which only appears in the response." + } + }, + "description": "Describes the properties of a Virtual Machine Scale Set Extension." + }, + "VirtualMachineScaleSetExtension": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the name of the extension." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualMachineScaleSetExtensionProperties" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Describes a Virtual Machine Scale Set Extension." + }, + "VirtualMachineScaleSetExtensionProfile": { + "properties": { + "extensions": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetExtension" + }, + "description": "Gets the virtual machine scale set child extension resources." + } + }, + "description": "Describes a virtual machine scale set extension profile." + }, + "VirtualMachineScaleSetVMProfile": { + "properties": { + "osProfile": { + "$ref": "#/definitions/VirtualMachineScaleSetOSProfile", + "description": "Gets or sets the virtual machine scale set OS profile." + }, + "storageProfile": { + "$ref": "#/definitions/VirtualMachineScaleSetStorageProfile", + "description": "Gets or sets the virtual machine scale set storage profile." + }, + "networkProfile": { + "$ref": "#/definitions/VirtualMachineScaleSetNetworkProfile", + "description": "Gets or sets the virtual machine scale set network profile." + }, + "extensionProfile": { + "$ref": "#/definitions/VirtualMachineScaleSetExtensionProfile", + "description": "Gets the virtual machine scale set extension profile." + } + }, + "description": "Describes a virtual machine scale set virtual machine profile." + }, + "VirtualMachineScaleSetProperties": { + "properties": { + "upgradePolicy": { + "$ref": "#/definitions/UpgradePolicy", + "description": "Gets or sets the upgrade policy." + }, + "virtualMachineProfile": { + "$ref": "#/definitions/VirtualMachineScaleSetVMProfile", + "description": "Gets or sets the virtual machine profile." + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets the provisioning state, which only appears in the response." + }, + "overProvision": { + "type": "boolean", + "description": "Specifies whether the Virtual Machine Scale Set should be overprovisioned." + } + }, + "description": "Describes the properties of a Virtual Machine Scale Set." + }, + "VirtualMachineScaleSet": { + "properties": { + "sku": { + "$ref": "#/definitions/Sku", + "description": "Gets or sets the virtual machine scale set sku." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualMachineScaleSetProperties" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "Describes a Virtual Machine Scale Set." + }, + "VirtualMachineScaleSetVMInstanceIDs": { + "properties": { + "instanceIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the virtual machine scale set instance ids." + } + }, + "description": "Specifies the list of virtual machine scale set instance IDs." + }, + "VirtualMachineScaleSetVMInstanceRequiredIDs": { + "properties": { + "instanceIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the virtual machine scale set instance ids." + } + }, + "required": [ + "instanceIds" + ], + "description": "Specifies the list of virtual machine scale set instance IDs." + }, + "VirtualMachineStatusCodeCount": { + "properties": { + "code": { + "readOnly": true, + "type": "string", + "description": "Gets the instance view status code." + }, + "count": { + "readOnly": true, + "type": "integer", + "format": "int32", + "description": "Gets the number of instances having a particular status code." + } + }, + "description": "The status code and count of the virtual machine scale set instance view status summary." + }, + "VirtualMachineScaleSetInstanceViewStatusesSummary": { + "properties": { + "statusesSummary": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineStatusCodeCount" + }, + "description": "Gets the extensions information." + } + }, + "description": "Instance view statuses summary for virtual machines of a virtual machine scale set." + }, + "VirtualMachineScaleSetVMExtensionsSummary": { + "properties": { + "name": { + "readOnly": true, + "type": "string", + "description": "Gets the extension name." + }, + "statusesSummary": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineStatusCodeCount" + }, + "description": "Gets the extensions information." + } + }, + "description": "Extensions summary for virtual machines of a virtual machine scale set." + }, + "VirtualMachineScaleSetInstanceView": { + "properties": { + "virtualMachine": { + "$ref": "#/definitions/VirtualMachineScaleSetInstanceViewStatusesSummary", + "readOnly": true, + "description": "Gets the instance view status summary for the virtual machine scale set." + }, + "extensions": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetVMExtensionsSummary" + }, + "description": "Gets the extensions information." + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceViewStatus" + }, + "description": "Gets or sets the resource status information." + } + }, + "description": "The instance view of a virtual machine scale set." + }, + "VirtualMachineScaleSetListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSet" + }, + "description": "Gets or sets the list of virtual machine scale sets." + } + }, + "description": "The List Virtual Machine operation response." + }, + "VirtualMachineScaleSetListWithLinkResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSet" + }, + "description": "Gets or sets the list of virtual machine scale sets." + }, + "nextLink": { + "type": "string", + "description": "Gets or sets the uri to fetch the next page of Virtual Machine Scale Sets. Call ListNext() with this to fetch the next page of Virtual Machine Scale Sets." + } + }, + "description": "The List Virtual Machine operation response." + }, + "VirtualMachineScaleSetSkuCapacity": { + "properties": { + "minimum": { + "readOnly": true, + "type": "integer", + "format": "int64", + "description": "Gets the minimum capacity." + }, + "maximum": { + "readOnly": true, + "type": "integer", + "format": "int64", + "description": "Gets the maximum capacity that can be set." + }, + "defaultCapacity": { + "readOnly": true, + "type": "integer", + "format": "int64", + "description": "Gets the default capacity." + }, + "scaleType": { + "readOnly": true, + "type": "string", + "description": "Gets the scale type applicable to the sku.", + "enum": [ + "Automatic", + "None" + ], + "x-ms-enum": { + "name": "VirtualMachineScaleSetSkuScaleType", + "modelAsString": false + } + } + }, + "description": "Describes scaling information of a sku." + }, + "VirtualMachineScaleSetSku": { + "properties": { + "resourceType": { + "readOnly": true, + "type": "string", + "description": "Gets the type of resource the sku applies to." + }, + "sku": { + "$ref": "#/definitions/Sku", + "readOnly": true, + "description": "Gets the Sku." + }, + "capacity": { + "$ref": "#/definitions/VirtualMachineScaleSetSkuCapacity", + "readOnly": true, + "description": "Gets available scaling information." + } + }, + "description": "Describes an available virtual machine scale set sku." + }, + "VirtualMachineScaleSetListSkusResult": { + "properties": { + "value": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetSku" + }, + "description": "Gets the list of skus available for the virtual machine scale set." + } + }, + "description": "The Virtual Machine Scale Set List Skus operation response." + }, + "VirtualMachineScaleSetVMProperties": { + "properties": { + "latestModelApplied": { + "readOnly": true, + "type": "boolean", + "description": "Specifies whether the latest model has been applied to the virtual machine." + }, + "instanceView": { + "$ref": "#/definitions/VirtualMachineInstanceView", + "readOnly": true, + "description": "Gets the virtual machine instance view." + }, + "hardwareProfile": { + "$ref": "#/definitions/HardwareProfile", + "description": "Gets or sets the hardware profile." + }, + "storageProfile": { + "$ref": "#/definitions/StorageProfile", + "description": "Gets or sets the storage profile." + }, + "osProfile": { + "$ref": "#/definitions/OSProfile", + "description": "Gets or sets the OS profile." + }, + "networkProfile": { + "$ref": "#/definitions/NetworkProfile", + "description": "Gets or sets the network profile." + }, + "diagnosticsProfile": { + "$ref": "#/definitions/DiagnosticsProfile", + "description": "Gets or sets the diagnostics profile." + }, + "availabilitySet": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference Id of the availability set to which this virtual machine belongs." + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets the provisioning state, which only appears in the response." + }, + "licenseType": { + "type": "string", + "description": "Gets or sets the license type, which is for bring your own license scenario." + } + }, + "description": "Describes the properties of a virtual machine scale set virtual machine." + }, + "VirtualMachineScaleSetVM": { + "properties": { + "instanceId": { + "readOnly": true, + "type": "string", + "description": "Gets the virtual machine instance id." + }, + "sku": { + "$ref": "#/definitions/Sku", + "readOnly": true, + "description": "Gets the virtual machine sku." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualMachineScaleSetVMProperties" + }, + "plan": { + "$ref": "#/definitions/Plan", + "description": "Gets or sets the purchase plan when deploying virtual machine from VM Marketplace images." + }, + "resources": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineExtension" + }, + "description": "Gets the virtual machine child extension resources." + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "Describes a virtual machine scale set virtual machine." + }, + "VirtualMachineScaleSetVMInstanceView": { + "properties": { + "platformUpdateDomain": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the Update Domain count." + }, + "platformFaultDomain": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the Fault Domain count." + }, + "rdpThumbPrint": { + "type": "string", + "description": "Gets or sets the Remote desktop certificate thumbprint." + }, + "vmAgent": { + "$ref": "#/definitions/VirtualMachineAgentInstanceView", + "description": "Gets or sets the VM Agent running on the virtual machine." + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/DiskInstanceView" + }, + "description": "Gets or sets the disks information." + }, + "extensions": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineExtensionInstanceView" + }, + "description": "Gets or sets the extensions information." + }, + "bootDiagnostics": { + "$ref": "#/definitions/BootDiagnosticsInstanceView", + "description": "Gets or sets the boot diagnostics." + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceViewStatus" + }, + "description": "Gets or sets the resource status information." + } + }, + "description": "The instance view of a virtual machine scale set VM." + }, + "VirtualMachineScaleSetVMListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetVM" + }, + "description": "Gets or sets the list of virtual machine scale sets VMs." + } + }, + "description": "The List Virtual Machine Scale Set VMs operation response." + }, + "ApiErrorBase": { + "properties": { + "code": { + "type": "string", + "description": "Gets or sets the error code." + }, + "target": { + "type": "string", + "description": "Gets or sets the target of the particular error." + }, + "message": { + "type": "string", + "description": "Gets or sets the error message." + } + }, + "description": "Api error base." + }, + "InnerError": { + "properties": { + "exceptiontype": { + "type": "string", + "description": "Gets or sets the exception type." + }, + "errordetail": { + "type": "string", + "description": "Gets or sets the internal error message or exception dump." + } + }, + "description": "Inner error details." + }, + "ApiError": { + "properties": { + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ApiErrorBase" + }, + "description": "Gets or sets the Api error details" + }, + "innererror": { + "$ref": "#/definitions/InnerError", + "description": "Gets or sets the Api inner error" + }, + "code": { + "type": "string", + "description": "Gets or sets the error code." + }, + "target": { + "type": "string", + "description": "Gets or sets the target of the particular error." + }, + "message": { + "type": "string", + "description": "Gets or sets the error message." + } + }, + "description": "Api error." + }, + "ComputeLongRunningOperationProperties": { + "properties": { + "output": { + "type": "object", + "description": "Operation output data (raw JSON)" + } + }, + "description": "Compute-specific operation properties, including output" + }, + "Resource": { + "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-azure-resource": true + }, + "SubResource": { + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + } + }, + "x-ms-azure-resource": 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 From 1d34f9e2e39eca80d4f34405b083e0975682ef1a Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Wed, 25 May 2016 13:42:38 -0700 Subject: [PATCH 09/14] Add tests for additional Network api versions --- .../AcceptanceTests.cs | 14 +- ...Generator.AzureResourceSchema.Tests.csproj | 14 +- .../2015-05-01-preview/Microsoft.Network.json | 3659 +++++++++ .../Network/2015-06-15/Microsoft.Network.json | 4599 +++++++++++ .../Network/2015-05-01-preview/network.json | 6668 +++++++++++++++ .../Swagger/Network/2015-06-15/network.json | 7187 +++++++++++++++++ 6 files changed, 22139 insertions(+), 2 deletions(-) create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Network/2015-05-01-preview/Microsoft.Network.json create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Network/2015-06-15/Microsoft.Network.json create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Network/2015-05-01-preview/network.json create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Network/2015-06-15/network.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs index d28e30b15e1a4..569fa73008089 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs @@ -54,7 +54,19 @@ public static void Dns_2016_04_01() } [Fact] - public static void Network() + public static void Network_2015_05_01_preview() + { + RunSwaggerTest("Network", "2015-05-01-preview", "network.json"); + } + + [Fact] + public static void Network_2015_06_15() + { + RunSwaggerTest("Network", "2015-06-15", "network.json"); + } + + [Fact] + public static void Network_2016_03_30() { RunSwaggerTest("Network", "2016-03-30", "network.json"); } 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 cd2c6ec3ba504..81edaf80e3be1 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj @@ -120,6 +120,12 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -135,7 +141,7 @@ PreserveNewest - + PreserveNewest @@ -159,6 +165,12 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Network/2015-05-01-preview/Microsoft.Network.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Network/2015-05-01-preview/Microsoft.Network.json new file mode 100644 index 0000000000000..9182932200744 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Network/2015-05-01-preview/Microsoft.Network.json @@ -0,0 +1,3659 @@ +{ + "id": "http://schema.management.azure.com/schemas/2015-05-01-preview/Microsoft.Network.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Network", + "description": "Microsoft Network Resource Types", + "resourceDefinitions": { + "applicationGateways": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/applicationGateways" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/applicationGateways" + }, + "connections": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/connections" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkGatewayConnectionPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/connections" + }, + "expressRouteCircuits_authorizations": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/expressRouteCircuits/authorizations" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/AuthorizationPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/expressRouteCircuits/authorizations" + }, + "expressRouteCircuits_peerings": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/expressRouteCircuits/peerings" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ExpressRouteCircuitPeeringPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/expressRouteCircuits/peerings" + }, + "loadBalancers": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/loadBalancers" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LoadBalancerPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/loadBalancers" + }, + "localNetworkGateways": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/localNetworkGateways" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LocalNetworkGatewayPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/localNetworkGateways" + }, + "networkInterfaces": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/networkInterfaces" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkInterfacePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/networkInterfaces" + }, + "networkSecurityGroups": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/networkSecurityGroups" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkSecurityGroupPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/networkSecurityGroups_securityRules_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/networkSecurityGroups" + }, + "networkSecurityGroups_securityRules": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/networkSecurityGroups/securityRules" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SecurityRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/networkSecurityGroups/securityRules" + }, + "routeTables": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/routeTables" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RouteTablePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/routeTables_routes_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/routeTables" + }, + "routeTables_routes": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/routeTables/routes" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RoutePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/routeTables/routes" + }, + "virtualnetworkgateways": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/virtualnetworkgateways" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkGatewayPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/virtualnetworkgateways" + }, + "virtualnetworks": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/virtualnetworks" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/virtualnetworks_subnets_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/virtualnetworks" + }, + "virtualnetworks_subnets": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/virtualnetworks/subnets" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SubnetPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/virtualnetworks/subnets" + } + }, + "definitions": { + "AddressSpace": { + "type": "object", + "properties": { + "addressPrefixes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets List of address blocks reserved for this virtual network in CIDR notation" + } + }, + "description": "AddressSpace contains an array of IP address ranges that can be used by subnets" + }, + "ApplicationGatewayBackendAddress": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "description": "Gets or sets the dns name" + }, + "ipAddress": { + "type": "string", + "description": "Gets or sets the ip address" + } + }, + "description": "Backend Address of application gateway" + }, + "ApplicationGatewayBackendAddressPool": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Backend Address Pool of application gateway" + }, + "ApplicationGatewayBackendAddressPoolPropertiesFormat": { + "type": "object", + "properties": { + "backendIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets backendIPConfiguration of application gateway " + }, + "backendAddresses": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayBackendAddress" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the backend addresses" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the backend address pool resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Backend Address Pool of application gateway" + }, + "ApplicationGatewayBackendHttpSettings": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayBackendHttpSettingsPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Backend address pool settings of application gateway" + }, + "ApplicationGatewayBackendHttpSettingsPropertiesFormat": { + "type": "object", + "properties": { + "port": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the port" + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Http", + "Https" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the protocol. Possible values include: 'Http', 'Https'" + }, + "cookieBasedAffinity": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the cookie affinity. Possible values include: 'Enabled', 'Disabled'" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the backend http settings resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Backend address pool settings of application gateway" + }, + "ApplicationGatewayFrontendIPConfiguration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayFrontendIPConfigurationPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Frontend IP configuration of application gateway" + }, + "ApplicationGatewayFrontendIPConfigurationPropertiesFormat": { + "type": "object", + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the Network Interface IP Configuration" + }, + "privateIPAllocationMethod": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Static", + "Dynamic" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic). Possible values include: 'Static', 'Dynamic'" + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Frontend IP configuration of application gateway" + }, + "ApplicationGatewayFrontendPort": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayFrontendPortPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Frontend Port of application gateway" + }, + "ApplicationGatewayFrontendPortPropertiesFormat": { + "type": "object", + "properties": { + "port": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the frontend port" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the frontend port resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Frontend Port of application gateway" + }, + "ApplicationGatewayHttpListener": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayHttpListenerPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Http listener of application gateway" + }, + "ApplicationGatewayHttpListenerPropertiesFormat": { + "type": "object", + "properties": { + "frontendIPConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets frontend IP configuration resource of application gateway " + }, + "frontendPort": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets frontend port resource of application gateway " + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Http", + "Https" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the protocol. Possible values include: 'Http', 'Https'" + }, + "sslCertificate": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets ssl certificate resource of application gateway " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the http listener resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Http listener of application gateway" + }, + "ApplicationGatewayIPConfiguration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayIPConfigurationPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "IP configuration of application gateway" + }, + "ApplicationGatewayIPConfigurationPropertiesFormat": { + "type": "object", + "properties": { + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the subnet resource.A subnet from where appliation gateway gets its private address " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the application gateway subnet resource Updating/Deleting/Failed" + } + }, + "description": "Properties of IP configuration of application gateway" + }, + "ApplicationGatewayPropertiesFormat": { + "type": "object", + "properties": { + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewaySku" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets sku of application gateway resource" + }, + "gatewayIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayIPConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets subnets of application gateway resource" + }, + "sslCertificates": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewaySslCertificate" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets ssl certificates of application gateway resource" + }, + "frontendIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayFrontendIPConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets frontend IP addresses of application gateway resource" + }, + "frontendPorts": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayFrontendPort" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets frontend ports of application gateway resource" + }, + "backendAddressPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayBackendAddressPool" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets backend address pool of application gateway resource" + }, + "backendHttpSettingsCollection": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayBackendHttpSettings" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets backend http settings of application gateway resource" + }, + "httpListeners": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayHttpListener" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets HTTP listeners of application gateway resource" + }, + "requestRoutingRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayRequestRoutingRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets request routing rules of application gateway resource" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the ApplicationGateway resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the ApplicationGateway resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Application Gateway" + }, + "ApplicationGatewayRequestRoutingRule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayRequestRoutingRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Request routing rule of application gateway" + }, + "ApplicationGatewayRequestRoutingRulePropertiesFormat": { + "type": "object", + "properties": { + "ruleType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Basic" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the rule type. Possible values include: 'Basic'" + }, + "backendAddressPool": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets backend address pool resource of application gateway " + }, + "backendHttpSettings": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets frontend port resource of application gateway " + }, + "httpListener": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets http listener resource of application gateway " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the request routing rule resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Request routing rule of application gateway" + }, + "ApplicationGatewaySku": { + "type": "object", + "properties": { + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Standard_Small", + "Standard_Medium", + "Standard_Large" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets name of application gateway SKU. Possible values include: 'Standard_Small', 'Standard_Medium', 'Standard_Large'" + }, + "tier": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Standard" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets tier of application gateway. Possible values include: 'Standard'" + }, + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets capacity (instance count) of application gateway" + } + }, + "description": "SKU of application gateway" + }, + "ApplicationGatewaySslCertificate": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewaySslCertificatePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "SSL certificates of application gateway" + }, + "ApplicationGatewaySslCertificatePropertiesFormat": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Gets or sets the certificate data " + }, + "password": { + "type": "string", + "description": "Gets or sets the certificate password " + }, + "publicCertData": { + "type": "string", + "description": "Gets or sets the certificate public data " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the ssl certificate resource Updating/Deleting/Failed" + } + }, + "description": "Properties of SSL certificates of application gateway" + }, + "AuthorizationPropertiesFormat": { + "type": "object", + "properties": { + "authorizationKey": { + "type": "string", + "description": "Gets or sets the authorization key" + }, + "authorizationUseStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Available", + "InUse" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets AuthorizationUseStatus. Possible values include: 'Available', 'InUse'" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "BackendAddressPool": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/BackendAddressPoolPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Pool of backend IP addresseses" + }, + "BackendAddressPoolPropertiesFormat": { + "type": "object", + "properties": { + "backendIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets collection of references to IPs defined in NICs" + }, + "loadBalancingRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets Load Balancing rules that use this Backend Address Pool" + }, + "outboundNatRule": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets outbound rules that use this Backend Address Pool" + }, + "provisioningState": { + "type": "string", + "description": "Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of BackendAddressPool" + }, + "DhcpOptions": { + "type": "object", + "properties": { + "dnsServers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of DNS servers IP addresses" + } + }, + "description": "DHCPOptions contains an array of DNS servers available to VMs deployed in the virtual networkStandard DHCP option for a subnet overrides VNET DHCP options." + }, + "ExpressRouteCircuitPeeringConfig": { + "type": "object", + "properties": { + "advertisedPublicPrefixes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of AdvertisedPublicPrefixes" + }, + "advertisedPublicPrefixesState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotConfigured", + "Configuring", + "Configured", + "ValidationNeeded" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets AdvertisedPublicPrefixState of the Peering resource . Possible values include: 'NotConfigured', 'Configuring', 'Configured', 'ValidationNeeded'" + }, + "customerASN": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or Sets CustomerAsn of the peering." + }, + "routingRegistryName": { + "type": "string", + "description": "Gets or Sets RoutingRegistryName of the config." + } + }, + "description": "Specfies the peering config" + }, + "ExpressRouteCircuitPeeringPropertiesFormat": { + "type": "object", + "properties": { + "peeringType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzurePublicPeering", + "AzurePrivatePeering", + "MicrosoftPeering" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets PeeringType. Possible values include: 'AzurePublicPeering', 'AzurePrivatePeering', 'MicrosoftPeering'" + }, + "state": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets state of Peering. Possible values include: 'Disabled', 'Enabled'" + }, + "azureASN": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the azure ASN" + }, + "peerASN": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the peer ASN" + }, + "primaryPeerAddressPrefix": { + "type": "string", + "description": "Gets or sets the primary address prefix" + }, + "secondaryPeerAddressPrefix": { + "type": "string", + "description": "Gets or sets the secondary address prefix" + }, + "primaryAzurePort": { + "type": "string", + "description": "Gets or sets the primary port" + }, + "secondaryAzurePort": { + "type": "string", + "description": "Gets or sets the secondary port" + }, + "sharedKey": { + "type": "string", + "description": "Gets or sets the shared key" + }, + "vlanId": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the vlan id" + }, + "microsoftPeeringConfig": { + "oneOf": [ + { + "$ref": "#/definitions/ExpressRouteCircuitPeeringConfig" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the mircosoft peering config" + }, + "stats": { + "oneOf": [ + { + "$ref": "#/definitions/ExpressRouteCircuitStats" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or peering stats" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "ExpressRouteCircuitStats": { + "type": "object", + "properties": { + "bytesIn": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets BytesIn of the peering." + }, + "bytesOut": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets BytesOut of the peering." + } + }, + "description": "Contains Stats associated with the peering" + }, + "FrontendIpConfiguration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/FrontendIpConfigurationPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Frontend IP address of the load balancer" + }, + "FrontendIpConfigurationPropertiesFormat": { + "type": "object", + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the IP address of the Load Balancer.This is only specified if a specific private IP address shall be allocated from the subnet specified in subnetRef" + }, + "privateIPAllocationMethod": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Static", + "Dynamic" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic). Possible values include: 'Static', 'Dynamic'" + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the subnet resource.A subnet from wher the load balancer gets its private frontend address " + }, + "publicIPAddress": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the PublicIP resource" + }, + "inboundNatRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Read only.Inbound rules URIs that use this frontend IP" + }, + "inboundNatPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Read only.Inbound pools URIs that use this frontend IP" + }, + "outboundNatRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Read only.Outbound rules URIs that use this frontend IP" + }, + "loadBalancingRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets Load Balancing rules URIs that use this frontend IP" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Frontend IP Configuration of the load balancer" + }, + "InboundNatPool": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/InboundNatPoolPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Inbound NAT pool of the loadbalancer" + }, + "InboundNatPoolPropertiesFormat": { + "type": "object", + "properties": { + "frontendIPConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a reference to frontend IP Addresses" + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Udp", + "Tcp" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the transport potocol for the external endpoint. Possible values are Udp or Tcp. Possible values include: 'Udp', 'Tcp'" + }, + "frontendPortRangeStart": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the starting port range for the NAT pool. You can spcify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "frontendPortRangeEnd": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the ending port range for the NAT pool. You can spcify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "backendPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a port used for internal connections on the endpoint. The localPort attribute maps the eternal port of the endpoint to an internal port on a role. This is useful in scenarios where a role must communicate to an internal compotnent on a port that is different from the one that is exposed externally. If not specified, the value of localPort is the same as the port attribute. Set the value of localPort to '*' to automatically assign an unallocated port that is discoverable using the runtime API" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "frontendPortRangeStart", + "frontendPortRangeEnd", + "backendPort" + ], + "description": "Properties of Inbound NAT pool" + }, + "InboundNatRule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/InboundNatRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Inbound NAT rule of the loadbalancer" + }, + "InboundNatRulePropertiesFormat": { + "type": "object", + "properties": { + "frontendIPConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a reference to frontend IP Addresses" + }, + "backendIPConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a reference to a private ip address defined on a NetworkInterface of a VM. Traffic sent to frontendPort of each of the frontendIPConfigurations is forwarded to the backed IP" + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Udp", + "Tcp" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the transport potocol for the external endpoint. Possible values are Udp or Tcp. Possible values include: 'Udp', 'Tcp'" + }, + "frontendPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the port for the external endpoint. You can spcify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "backendPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a port used for internal connections on the endpoint. The localPort attribute maps the eternal port of the endpoint to an internal port on a role. This is useful in scenarios where a role must communicate to an internal compotnent on a port that is different from the one that is exposed externally. If not specified, the value of localPort is the same as the port attribute. Set the value of localPort to '*' to automatically assign an unallocated port that is discoverable using the runtime API" + }, + "idleTimeoutInMinutes": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the timeout for the Tcp idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This emlement is only used when the protocol is set to Tcp" + }, + "enableFloatingIP": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn availability Group. This setting is required when using the SQL Always ON availability Groups in SQL server. This setting can't be changed after you create the endpoint" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "frontendPort", + "enableFloatingIP" + ], + "description": "Properties of Inbound NAT rule" + }, + "LoadBalancerPropertiesFormat": { + "type": "object", + "properties": { + "frontendIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/FrontendIpConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets frontend IP addresses of the load balancer" + }, + "backendAddressPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/BackendAddressPool" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Pools of backend IP addresseses" + }, + "loadBalancingRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/LoadBalancingRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets loadbalancing rules" + }, + "probes": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Probe" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of Load balancer probes" + }, + "inboundNatRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/InboundNatRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of inbound rules" + }, + "inboundNatPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/InboundNatPool" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets inbound NAT pools" + }, + "outboundNatRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/OutboundNatRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets outbound NAT rules" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the Load balancer resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Load Balancer" + }, + "LoadBalancingRule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LoadBalancingRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Rules of the load balancer" + }, + "LoadBalancingRulePropertiesFormat": { + "type": "object", + "properties": { + "frontendIPConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a reference to frontend IP Addresses" + }, + "backendAddressPool": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a reference to a pool of DIPs. Inbound traffic is randomly load balanced across IPs in the backend IPs" + }, + "probe": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the load balancer probe used by the Load Balancing rule." + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Udp", + "Tcp" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the transport protocol for the external endpoint. Possible values are Udp or Tcp. Possible values include: 'Udp', 'Tcp'" + }, + "loadDistribution": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Default", + "SourceIP", + "SourceIPProtocol" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the load distribution policy for this rule. Possible values include: 'Default', 'SourceIP', 'SourceIPProtocol'" + }, + "frontendPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the port for the external endpoint. You can specify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "backendPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a port used for internal connections on the endpoint. The localPort attribute maps the eternal port of the endpoint to an internal port on a role. This is useful in scenarios where a role must communicate to an internal compotnent on a port that is different from the one that is exposed externally. If not specified, the value of localPort is the same as the port attribute. Set the value of localPort to '*' to automatically assign an unallocated port that is discoverable using the runtime API" + }, + "idleTimeoutInMinutes": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the timeout for the Tcp idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This emlement is only used when the protocol is set to Tcp" + }, + "enableFloatingIP": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn availability Group. This setting is required when using the SQL Always ON availability Groups in SQL server. This setting can't be changed after you create the endpoint" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "backendAddressPool", + "protocol", + "frontendPort", + "enableFloatingIP" + ], + "description": "Properties of the load balancer" + }, + "LocalNetworkGateway": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "Resource location" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LocalNetworkGatewayPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "location" + ], + "description": "A common class for general resource information" + }, + "LocalNetworkGatewayPropertiesFormat": { + "type": "object", + "properties": { + "localNetworkAddressSpace": { + "oneOf": [ + { + "$ref": "#/definitions/AddressSpace" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Local network site Address space" + }, + "gatewayIpAddress": { + "type": "string", + "description": "IP address of local network gateway." + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the LocalNetworkGateway resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the LocalNetworkGateway resource Updating/Deleting/Failed" + } + }, + "description": "LocalNetworkGateway properties" + }, + "NetworkInterfaceDnsSettings": { + "type": "object", + "properties": { + "dnsServers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of DNS servers IP addresses" + }, + "appliedDnsServers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of Applied DNS servers IP addresses" + }, + "internalDnsNameLabel": { + "type": "string", + "description": "Gets or sets the Internal DNS name" + }, + "internalFqdn": { + "type": "string", + "description": "Gets or sets full IDNS name in the form, DnsName.VnetId.ZoneId.TopleveSuffix. This is set when the NIC is associated to a VM" + } + }, + "description": "Dns Settings of a network interface" + }, + "NetworkInterfaceIpConfiguration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkInterfaceIpConfigurationPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "IPConfiguration in a NetworkInterface" + }, + "NetworkInterfaceIpConfigurationPropertiesFormat": { + "type": "object", + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the Network Interface IP Configuration" + }, + "privateIPAllocationMethod": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Static", + "Dynamic" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic). Possible values include: 'Static', 'Dynamic'" + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the PublicIP resource" + }, + "loadBalancerBackendAddressPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of LoadBalancerBackendAddressPool resource" + }, + "loadBalancerInboundNatRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of references of LoadBalancerInboundNatRules" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of IPConfiguration" + }, + "NetworkInterfacePropertiesFormat": { + "type": "object", + "properties": { + "virtualMachine": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of a VirtualMachine" + }, + "networkSecurityGroup": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the NetworkSecurityGroup resource" + }, + "ipConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterfaceIpConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of IPConfigurations of the NetworkInterface" + }, + "dnsSettings": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkInterfaceDnsSettings" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets DNS Settings in NetworkInterface" + }, + "macAddress": { + "type": "string", + "description": "Gets the MAC Address of the network interface" + }, + "primary": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets whether this is a primary NIC on a virtual machine" + }, + "enableIPForwarding": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets whether IPForwarding is enabled on the NIC" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the network interface resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "NetworkInterface properties. " + }, + "NetworkSecurityGroupPropertiesFormat": { + "type": "object", + "properties": { + "securityRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SecurityRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Security rules of network security group" + }, + "defaultSecurityRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SecurityRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Default security rules of network security group" + }, + "networkInterfaces": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets collection of references to Network Interfaces" + }, + "subnets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets collection of references to subnets" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the network security group resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Network Security Group resource" + }, + "networkSecurityGroups_securityRules_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "securityRules" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SecurityRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/networkSecurityGroups/securityRules" + }, + "OutboundNatRule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/OutboundNatRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Outbound NAT pool of the loadbalancer" + }, + "OutboundNatRulePropertiesFormat": { + "type": "object", + "properties": { + "allocatedOutboundPorts": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the number of outbound ports to be used for SNAT" + }, + "frontendIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Frontend IP addresses of the load balancer" + }, + "backendAddressPool": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "allocatedOutboundPorts", + "backendAddressPool" + ], + "description": "Outbound NAT pool of the loadbalancer" + }, + "Probe": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProbePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Load balancer Probe" + }, + "ProbePropertiesFormat": { + "type": "object", + "properties": { + "loadBalancingRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets Load balancer rules that use this probe" + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Http", + "Tcp" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the protocol of the end point. Possible values are http pr Tcp. If Tcp is specified, a received ACK is required for the probe to be successful. If http is specified,a 200 OK response from the specifies URI is required for the probe to be successful. Possible values include: 'Http', 'Tcp'" + }, + "port": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Port for communicating the probe. Possible values range from 1 to 65535, inclusive." + }, + "intervalInSeconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5" + }, + "numberOfProbes": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endponints to be taken out of rotation faster or slower than the typical times used in Azure. " + }, + "requestPath": { + "type": "string", + "description": "Gets or sets the URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "port" + ] + }, + "Route": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RoutePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Route resource" + }, + "RoutePropertiesFormat": { + "type": "object", + "properties": { + "addressPrefix": { + "type": "string", + "description": "Gets or sets the destination CIDR to which the route applies." + }, + "nextHopType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "VirtualNetworkGateway", + "VnetLocal", + "Internet", + "VirtualAppliance", + "None" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the type of Azure hop the packet should be sent to. Possible values include: 'VirtualNetworkGateway', 'VnetLocal', 'Internet', 'VirtualAppliance', 'None'" + }, + "nextHopIpAddress": { + "type": "string", + "description": "Gets or sets the IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance." + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the resource Updating/Deleting/Failed" + } + }, + "required": [ + "nextHopType" + ], + "description": "Route resource" + }, + "RouteTablePropertiesFormat": { + "type": "object", + "properties": { + "routes": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Route" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Routes in a Route Table" + }, + "subnets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets collection of references to subnets" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the resource Updating/Deleting/Failed" + } + }, + "description": "Route Table resource" + }, + "routeTables_routes_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "routes" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RoutePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/routeTables/routes" + }, + "SecurityRule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SecurityRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Network security rule" + }, + "SecurityRulePropertiesFormat": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Gets or sets a description for this rule. Restricted to 140 chars." + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Tcp", + "Udp", + "*" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Network protocol this rule applies to. Can be Tcp, Udp or All(*). Possible values include: 'Tcp', 'Udp', '*'" + }, + "sourcePortRange": { + "type": "string", + "description": "Gets or sets Source Port or Range. Integer or range between 0 and 65535. Asterix '*' can also be used to match all ports." + }, + "destinationPortRange": { + "type": "string", + "description": "Gets or sets Destination Port or Range. Integer or range between 0 and 65535. Asterix '*' can also be used to match all ports." + }, + "sourceAddressPrefix": { + "type": "string", + "description": "Gets or sets source address prefix. CIDR or source IP range. Asterix '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. " + }, + "destinationAddressPrefix": { + "type": "string", + "description": "Gets or sets destination address prefix. CIDR or source IP range. Asterix '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. " + }, + "access": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Deny" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets network traffic is allowed or denied. Possible values are 'Allow' and 'Deny'. Possible values include: 'Allow', 'Deny'" + }, + "priority": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule." + }, + "direction": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Inbound", + "Outbound" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the direction of the rule.InBound or Outbound. The direction specifies if rule will be evaluated on incoming or outcoming traffic. Possible values include: 'Inbound', 'Outbound'" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "sourceAddressPrefix", + "destinationAddressPrefix", + "access", + "direction" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SubnetPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Subnet in a VirtualNework resource" + }, + "SubnetPropertiesFormat": { + "type": "object", + "properties": { + "addressPrefix": { + "type": "string", + "description": "Gets or sets Address prefix for the subnet." + }, + "networkSecurityGroup": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the NetworkSecurityGroup resource" + }, + "routeTable": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the RouteTable resource" + }, + "ipConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets array of references to the network interface IP configurations using subnet" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "addressPrefix" + ] + }, + "SubResource": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + } + } + }, + "VirtualNetworkGateway": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "Resource location" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkGatewayPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "location" + ], + "description": "A common class for general resource information" + }, + "VirtualNetworkGatewayConnectionPropertiesFormat": { + "type": "object", + "properties": { + "virtualNetworkGateway1": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "virtualNetworkGateway2": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "localNetworkGateway2": { + "oneOf": [ + { + "$ref": "#/definitions/LocalNetworkGateway" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "connectionType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "IPsec", + "Vnet2Vnet", + "ExpressRoute", + "VPNClient" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gateway connection type -Ipsec/Dedicated/VpnClient/Vnet2Vnet. Possible values include: 'IPsec', 'Vnet2Vnet', 'ExpressRoute', 'VPNClient'" + }, + "routingWeight": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The Routing weight." + }, + "sharedKey": { + "type": "string", + "description": "The Ipsec share key." + }, + "connectionStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Unknown", + "Connecting", + "Connected", + "NotConnected" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Virtual network Gateway connection status. Possible values include: 'Unknown', 'Connecting', 'Connected', 'NotConnected'" + }, + "egressBytesTransferred": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The Egress Bytes Transferred in this connection" + }, + "ingressBytesTransferred": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The Ingress Bytes Transferred in this connection" + }, + "peer": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The reference to peerings resource." + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the VirtualNetworkGatewayConnection resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the VirtualNetworkGatewayConnection resource Updating/Deleting/Failed" + } + }, + "description": "VirtualNeworkGatewayConnection properties" + }, + "VirtualNetworkGatewayIpConfiguration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkGatewayIpConfigurationPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "IpConfiguration for Virtual network gateway" + }, + "VirtualNetworkGatewayIpConfigurationPropertiesFormat": { + "type": "object", + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the Network Interface IP Configuration" + }, + "privateIPAllocationMethod": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Static", + "Dynamic" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic). Possible values include: 'Static', 'Dynamic'" + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of VirtualNetworkGatewayIPConfiguration" + }, + "VirtualNetworkGatewayPropertiesFormat": { + "type": "object", + "properties": { + "ipConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualNetworkGatewayIpConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "IpConfigurations for Virtual network gateway." + }, + "gatewayType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Vpn", + "ExpressRoute" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The type of this virtual network gateway. Possible values include: 'Vpn', 'ExpressRoute'" + }, + "vpnType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "PolicyBased", + "RouteBased" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The type of this virtual network gateway. Possible values include: 'PolicyBased', 'RouteBased'" + }, + "enableBgp": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "EnableBgp Flag" + }, + "gatewayDefaultSite": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the LocalNetworkGateway resource which represents Local network site having default routes. Assign Null value in case of removing existing default site setting." + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the VirtualNetworkGateway resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the VirtualNetworkGateway resource Updating/Deleting/Failed" + } + }, + "description": "VirtualNeworkGateay properties" + }, + "VirtualNetworkPropertiesFormat": { + "type": "object", + "properties": { + "addressSpace": { + "oneOf": [ + { + "$ref": "#/definitions/AddressSpace" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets AddressSpace that contains an array of IP address ranges that can be used by subnets" + }, + "dhcpOptions": { + "oneOf": [ + { + "$ref": "#/definitions/DhcpOptions" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets DHCPOptions that contains an array of DNS servers available to VMs deployed in the virtual network" + }, + "subnets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets List of subnets in a VirtualNetwork" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the VirtualNetwork resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "virtualnetworks_subnets_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "subnets" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-01-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SubnetPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/virtualnetworks/subnets" + } + } +} diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Network/2015-06-15/Microsoft.Network.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Network/2015-06-15/Microsoft.Network.json new file mode 100644 index 0000000000000..2c345c58453e2 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Network/2015-06-15/Microsoft.Network.json @@ -0,0 +1,4599 @@ +{ + "id": "http://schema.management.azure.com/schemas/2015-06-15/Microsoft.Network.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Network", + "description": "Microsoft Network Resource Types", + "resourceDefinitions": { + "applicationGateways": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/applicationGateways" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/applicationGateways" + }, + "connections": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/connections" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkGatewayConnectionPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/connections" + }, + "expressRouteCircuits_authorizations": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/expressRouteCircuits/authorizations" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/AuthorizationPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/expressRouteCircuits/authorizations" + }, + "expressRouteCircuits_peerings": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/expressRouteCircuits/peerings" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ExpressRouteCircuitPeeringPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/expressRouteCircuits/peerings" + }, + "loadBalancers": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/loadBalancers" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LoadBalancerPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/loadBalancers" + }, + "localNetworkGateways": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/localNetworkGateways" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LocalNetworkGatewayPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/localNetworkGateways" + }, + "networkInterfaces": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/networkInterfaces" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkInterfacePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/networkInterfaces" + }, + "networkSecurityGroups": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/networkSecurityGroups" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkSecurityGroupPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/networkSecurityGroups_securityRules_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/networkSecurityGroups" + }, + "networkSecurityGroups_securityRules": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/networkSecurityGroups/securityRules" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SecurityRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/networkSecurityGroups/securityRules" + }, + "publicIPAddresses": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/publicIPAddresses" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PublicIPAddressPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/publicIPAddresses" + }, + "routeTables": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/routeTables" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RouteTablePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/routeTables_routes_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/routeTables" + }, + "routeTables_routes": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/routeTables/routes" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RoutePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/routeTables/routes" + }, + "virtualnetworkgateways": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/virtualnetworkgateways" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkGatewayPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/virtualnetworkgateways" + }, + "virtualnetworks": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/virtualnetworks" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/virtualnetworks_subnets_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/virtualnetworks" + }, + "virtualnetworks_subnets": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.Network/virtualnetworks/subnets" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SubnetPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/virtualnetworks/subnets" + } + }, + "definitions": { + "AddressSpace": { + "type": "object", + "properties": { + "addressPrefixes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets List of address blocks reserved for this virtual network in CIDR notation" + } + }, + "description": "AddressSpace contains an array of IP address ranges that can be used by subnets" + }, + "ApplicationGatewayBackendAddress": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "description": "Gets or sets the dns name" + }, + "ipAddress": { + "type": "string", + "description": "Gets or sets the ip address" + } + }, + "description": "Backend Address of application gateway" + }, + "ApplicationGatewayBackendAddressPool": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Backend Address Pool of application gateway" + }, + "ApplicationGatewayBackendAddressPoolPropertiesFormat": { + "type": "object", + "properties": { + "backendIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets backendIPConfiguration of application gateway " + }, + "backendAddresses": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayBackendAddress" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the backend addresses" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the backend address pool resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Backend Address Pool of application gateway" + }, + "ApplicationGatewayBackendHttpSettings": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayBackendHttpSettingsPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Backend address pool settings of application gateway" + }, + "ApplicationGatewayBackendHttpSettingsPropertiesFormat": { + "type": "object", + "properties": { + "port": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the port" + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Http", + "Https" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the protocol. Possible values include: 'Http', 'Https'" + }, + "cookieBasedAffinity": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the cookie affinity. Possible values include: 'Enabled', 'Disabled'" + }, + "requestTimeout": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets request timeout" + }, + "probe": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets probe resource of application gateway " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the backend http settings resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Backend address pool settings of application gateway" + }, + "ApplicationGatewayFrontendIPConfiguration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayFrontendIPConfigurationPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Frontend IP configuration of application gateway" + }, + "ApplicationGatewayFrontendIPConfigurationPropertiesFormat": { + "type": "object", + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the Network Interface IP Configuration" + }, + "privateIPAllocationMethod": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Static", + "Dynamic" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic). Possible values include: 'Static', 'Dynamic'" + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Frontend IP configuration of application gateway" + }, + "ApplicationGatewayFrontendPort": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayFrontendPortPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Frontend Port of application gateway" + }, + "ApplicationGatewayFrontendPortPropertiesFormat": { + "type": "object", + "properties": { + "port": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the frontend port" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the frontend port resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Frontend Port of application gateway" + }, + "ApplicationGatewayHttpListener": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayHttpListenerPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Http listener of application gateway" + }, + "ApplicationGatewayHttpListenerPropertiesFormat": { + "type": "object", + "properties": { + "frontendIPConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets frontend IP configuration resource of application gateway " + }, + "frontendPort": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets frontend port resource of application gateway " + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Http", + "Https" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the protocol. Possible values include: 'Http', 'Https'" + }, + "hostName": { + "type": "string", + "description": "Gets or sets the host name of http listener " + }, + "sslCertificate": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets ssl certificate resource of application gateway " + }, + "requireServerNameIndication": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the requireServerNameIndication of http listener " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the http listener resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Http listener of application gateway" + }, + "ApplicationGatewayIPConfiguration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayIPConfigurationPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "IP configuration of application gateway" + }, + "ApplicationGatewayIPConfigurationPropertiesFormat": { + "type": "object", + "properties": { + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the subnet resource.A subnet from where appliation gateway gets its private address " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the application gateway subnet resource Updating/Deleting/Failed" + } + }, + "description": "Properties of IP configuration of application gateway" + }, + "ApplicationGatewayPathRule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayPathRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Path rule of URL path map of application gateway" + }, + "ApplicationGatewayPathRulePropertiesFormat": { + "type": "object", + "properties": { + "paths": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the path rules of URL path map" + }, + "backendAddressPool": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets backend address pool resource of URL path map " + }, + "backendHttpSettings": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets backend http settings resource of URL path map " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets path rule of URL path map resource Updating/Deleting/Failed" + } + }, + "description": "Properties of probe of application gateway" + }, + "ApplicationGatewayProbe": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayProbePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Probe of application gateway" + }, + "ApplicationGatewayProbePropertiesFormat": { + "type": "object", + "properties": { + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Http", + "Https" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the protocol. Possible values include: 'Http', 'Https'" + }, + "host": { + "type": "string", + "description": "Gets or sets the host to send probe to " + }, + "path": { + "type": "string", + "description": "Gets or sets the relative path of probe " + }, + "interval": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets probing interval in seconds " + }, + "timeout": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets probing timeout in seconds " + }, + "unhealthyThreshold": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets probing unhealthy threshold " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the backend http settings resource Updating/Deleting/Failed" + } + }, + "description": "Properties of probe of application gateway" + }, + "ApplicationGatewayPropertiesFormat": { + "type": "object", + "properties": { + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewaySku" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets sku of application gateway resource" + }, + "gatewayIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayIPConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets subnets of application gateway resource" + }, + "sslCertificates": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewaySslCertificate" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets ssl certificates of application gateway resource" + }, + "frontendIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayFrontendIPConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets frontend IP addresses of application gateway resource" + }, + "frontendPorts": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayFrontendPort" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets frontend ports of application gateway resource" + }, + "probes": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayProbe" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets probes of application gateway resource" + }, + "backendAddressPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayBackendAddressPool" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets backend address pool of application gateway resource" + }, + "backendHttpSettingsCollection": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayBackendHttpSettings" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets backend http settings of application gateway resource" + }, + "httpListeners": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayHttpListener" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets HTTP listeners of application gateway resource" + }, + "urlPathMaps": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayUrlPathMap" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets URL path map of application gateway resource" + }, + "requestRoutingRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayRequestRoutingRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets request routing rules of application gateway resource" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the ApplicationGateway resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the ApplicationGateway resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Application Gateway" + }, + "ApplicationGatewayRequestRoutingRule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayRequestRoutingRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Request routing rule of application gateway" + }, + "ApplicationGatewayRequestRoutingRulePropertiesFormat": { + "type": "object", + "properties": { + "ruleType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Basic", + "PathBasedRouting" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the rule type. Possible values include: 'Basic', 'PathBasedRouting'" + }, + "backendAddressPool": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets backend address pool resource of application gateway " + }, + "backendHttpSettings": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets frontend port resource of application gateway " + }, + "httpListener": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets http listener resource of application gateway " + }, + "urlPathMap": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets url path map resource of application gateway " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the request routing rule resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Request routing rule of application gateway" + }, + "ApplicationGatewaySku": { + "type": "object", + "properties": { + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Standard_Small", + "Standard_Medium", + "Standard_Large" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets name of application gateway SKU. Possible values include: 'Standard_Small', 'Standard_Medium', 'Standard_Large'" + }, + "tier": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Standard" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets tier of application gateway. Possible values include: 'Standard'" + }, + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets capacity (instance count) of application gateway" + } + }, + "description": "SKU of application gateway" + }, + "ApplicationGatewaySslCertificate": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewaySslCertificatePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "SSL certificates of application gateway" + }, + "ApplicationGatewaySslCertificatePropertiesFormat": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Gets or sets the certificate data " + }, + "password": { + "type": "string", + "description": "Gets or sets the certificate password " + }, + "publicCertData": { + "type": "string", + "description": "Gets or sets the certificate public data " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the ssl certificate resource Updating/Deleting/Failed" + } + }, + "description": "Properties of SSL certificates of application gateway" + }, + "ApplicationGatewayUrlPathMap": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ApplicationGatewayUrlPathMapPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "UrlPathMap of application gateway" + }, + "ApplicationGatewayUrlPathMapPropertiesFormat": { + "type": "object", + "properties": { + "defaultBackendAddressPool": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets default backend address pool resource of URL path map " + }, + "defaultBackendHttpSettings": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets default backend http settings resource of URL path map " + }, + "pathRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayPathRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets path rule of URL path map resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the backend http settings resource Updating/Deleting/Failed" + } + }, + "description": "Properties of probe of application gateway" + }, + "AuthorizationPropertiesFormat": { + "type": "object", + "properties": { + "authorizationKey": { + "type": "string", + "description": "Gets or sets the authorization key" + }, + "authorizationUseStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Available", + "InUse" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets AuthorizationUseStatus. Possible values include: 'Available', 'InUse'" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "BackendAddressPool": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/BackendAddressPoolPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Pool of backend IP addresseses" + }, + "BackendAddressPoolPropertiesFormat": { + "type": "object", + "properties": { + "backendIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterfaceIPConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets collection of references to IPs defined in NICs" + }, + "loadBalancingRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets Load Balancing rules that use this Backend Address Pool" + }, + "outboundNatRule": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets outbound rules that use this Backend Address Pool" + }, + "provisioningState": { + "type": "string", + "description": "Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of BackendAddressPool" + }, + "BgpSettings": { + "type": "object", + "properties": { + "asn": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets this BGP speaker's ASN" + }, + "bgpPeeringAddress": { + "type": "string", + "description": "Gets or sets the BGP peering address and BGP identifier of this BGP speaker" + }, + "peerWeight": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the weight added to routes learned from this BGP speaker" + } + } + }, + "DhcpOptions": { + "type": "object", + "properties": { + "dnsServers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of DNS servers IP addresses" + } + }, + "description": "DHCPOptions contains an array of DNS servers available to VMs deployed in the virtual networkStandard DHCP option for a subnet overrides VNET DHCP options." + }, + "ExpressRouteCircuitPeeringConfig": { + "type": "object", + "properties": { + "advertisedPublicPrefixes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of AdvertisedPublicPrefixes" + }, + "advertisedPublicPrefixesState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotConfigured", + "Configuring", + "Configured", + "ValidationNeeded" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets AdvertisedPublicPrefixState of the Peering resource . Possible values include: 'NotConfigured', 'Configuring', 'Configured', 'ValidationNeeded'" + }, + "customerASN": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or Sets CustomerAsn of the peering." + }, + "routingRegistryName": { + "type": "string", + "description": "Gets or Sets RoutingRegistryName of the config." + } + }, + "description": "Specfies the peering config" + }, + "ExpressRouteCircuitPeeringPropertiesFormat": { + "type": "object", + "properties": { + "peeringType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzurePublicPeering", + "AzurePrivatePeering", + "MicrosoftPeering" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets PeeringType. Possible values include: 'AzurePublicPeering', 'AzurePrivatePeering', 'MicrosoftPeering'" + }, + "state": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets state of Peering. Possible values include: 'Disabled', 'Enabled'" + }, + "azureASN": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the azure ASN" + }, + "peerASN": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the peer ASN" + }, + "primaryPeerAddressPrefix": { + "type": "string", + "description": "Gets or sets the primary address prefix" + }, + "secondaryPeerAddressPrefix": { + "type": "string", + "description": "Gets or sets the secondary address prefix" + }, + "primaryAzurePort": { + "type": "string", + "description": "Gets or sets the primary port" + }, + "secondaryAzurePort": { + "type": "string", + "description": "Gets or sets the secondary port" + }, + "sharedKey": { + "type": "string", + "description": "Gets or sets the shared key" + }, + "vlanId": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the vlan id" + }, + "microsoftPeeringConfig": { + "oneOf": [ + { + "$ref": "#/definitions/ExpressRouteCircuitPeeringConfig" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the mircosoft peering config" + }, + "stats": { + "oneOf": [ + { + "$ref": "#/definitions/ExpressRouteCircuitStats" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or peering stats" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "ExpressRouteCircuitStats": { + "type": "object", + "properties": { + "bytesIn": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets BytesIn of the peering." + }, + "bytesOut": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets BytesOut of the peering." + } + }, + "description": "Contains Stats associated with the peering" + }, + "FrontendIPConfiguration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/FrontendIPConfigurationPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Frontend IP address of the load balancer" + }, + "FrontendIPConfigurationPropertiesFormat": { + "type": "object", + "properties": { + "inboundNatRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Read only.Inbound rules URIs that use this frontend IP" + }, + "inboundNatPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Read only.Inbound pools URIs that use this frontend IP" + }, + "outboundNatRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Read only.Outbound rules URIs that use this frontend IP" + }, + "loadBalancingRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets Load Balancing rules URIs that use this frontend IP" + }, + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the IP Configuration" + }, + "privateIPAllocationMethod": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Static", + "Dynamic" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic). Possible values include: 'Static', 'Dynamic'" + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/Subnet" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "oneOf": [ + { + "$ref": "#/definitions/PublicIPAddress" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Frontend IP Configuration of the load balancer" + }, + "InboundNatPool": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/InboundNatPoolPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Inbound NAT pool of the loadbalancer" + }, + "InboundNatPoolPropertiesFormat": { + "type": "object", + "properties": { + "frontendIPConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a reference to frontend IP Addresses" + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Udp", + "Tcp" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the transport potocol for the external endpoint. Possible values are Udp or Tcp. Possible values include: 'Udp', 'Tcp'" + }, + "frontendPortRangeStart": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the starting port range for the NAT pool. You can spcify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "frontendPortRangeEnd": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the ending port range for the NAT pool. You can spcify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "backendPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a port used for internal connections on the endpoint. The localPort attribute maps the eternal port of the endpoint to an internal port on a role. This is useful in scenarios where a role must communicate to an internal compotnent on a port that is different from the one that is exposed externally. If not specified, the value of localPort is the same as the port attribute. Set the value of localPort to '*' to automatically assign an unallocated port that is discoverable using the runtime API" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "frontendPortRangeStart", + "frontendPortRangeEnd", + "backendPort" + ], + "description": "Properties of Inbound NAT pool" + }, + "InboundNatRule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/InboundNatRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Inbound NAT rule of the loadbalancer" + }, + "InboundNatRulePropertiesFormat": { + "type": "object", + "properties": { + "frontendIPConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a reference to frontend IP Addresses" + }, + "backendIPConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkInterfaceIPConfiguration" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a reference to a private ip address defined on a NetworkInterface of a VM. Traffic sent to frontendPort of each of the frontendIPConfigurations is forwarded to the backed IP" + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Udp", + "Tcp" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the transport potocol for the external endpoint. Possible values are Udp or Tcp. Possible values include: 'Udp', 'Tcp'" + }, + "frontendPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the port for the external endpoint. You can spcify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "backendPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a port used for internal connections on the endpoint. The localPort attribute maps the eternal port of the endpoint to an internal port on a role. This is useful in scenarios where a role must communicate to an internal compotnent on a port that is different from the one that is exposed externally. If not specified, the value of localPort is the same as the port attribute. Set the value of localPort to '*' to automatically assign an unallocated port that is discoverable using the runtime API" + }, + "idleTimeoutInMinutes": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the timeout for the Tcp idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This emlement is only used when the protocol is set to Tcp" + }, + "enableFloatingIP": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn availability Group. This setting is required when using the SQL Always ON availability Groups in SQL server. This setting can't be changed after you create the endpoint" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Inbound NAT rule" + }, + "IPConfiguration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/IPConfigurationPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "IPConfiguration" + }, + "IPConfigurationPropertiesFormat": { + "type": "object", + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the IP Configuration" + }, + "privateIPAllocationMethod": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Static", + "Dynamic" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic). Possible values include: 'Static', 'Dynamic'" + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/Subnet" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "oneOf": [ + { + "$ref": "#/definitions/PublicIPAddress" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of IPConfiguration" + }, + "LoadBalancerPropertiesFormat": { + "type": "object", + "properties": { + "frontendIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/FrontendIPConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets frontend IP addresses of the load balancer" + }, + "backendAddressPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/BackendAddressPool" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Pools of backend IP addresseses" + }, + "loadBalancingRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/LoadBalancingRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets loadbalancing rules" + }, + "probes": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Probe" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of Load balancer probes" + }, + "inboundNatRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/InboundNatRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of inbound rules" + }, + "inboundNatPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/InboundNatPool" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets inbound NAT pools" + }, + "outboundNatRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/OutboundNatRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets outbound NAT rules" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the Load balancer resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Load Balancer" + }, + "LoadBalancingRule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LoadBalancingRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Rules of the load balancer" + }, + "LoadBalancingRulePropertiesFormat": { + "type": "object", + "properties": { + "frontendIPConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a reference to frontend IP Addresses" + }, + "backendAddressPool": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a reference to a pool of DIPs. Inbound traffic is randomly load balanced across IPs in the backend IPs" + }, + "probe": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the load balancer probe used by the Load Balancing rule." + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Udp", + "Tcp" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the transport protocol for the external endpoint. Possible values are Udp or Tcp. Possible values include: 'Udp', 'Tcp'" + }, + "loadDistribution": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Default", + "SourceIP", + "SourceIPProtocol" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the load distribution policy for this rule. Possible values include: 'Default', 'SourceIP', 'SourceIPProtocol'" + }, + "frontendPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the port for the external endpoint. You can specify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "backendPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a port used for internal connections on the endpoint. The localPort attribute maps the eternal port of the endpoint to an internal port on a role. This is useful in scenarios where a role must communicate to an internal compotnent on a port that is different from the one that is exposed externally. If not specified, the value of localPort is the same as the port attribute. Set the value of localPort to '*' to automatically assign an unallocated port that is discoverable using the runtime API" + }, + "idleTimeoutInMinutes": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the timeout for the Tcp idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This emlement is only used when the protocol is set to Tcp" + }, + "enableFloatingIP": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn availability Group. This setting is required when using the SQL Always ON availability Groups in SQL server. This setting can't be changed after you create the endpoint" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "frontendPort" + ], + "description": "Properties of the load balancer" + }, + "LocalNetworkGateway": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LocalNetworkGatewayPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "description": "A common class for general resource information" + }, + "LocalNetworkGatewayPropertiesFormat": { + "type": "object", + "properties": { + "localNetworkAddressSpace": { + "oneOf": [ + { + "$ref": "#/definitions/AddressSpace" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Local network site Address space" + }, + "gatewayIpAddress": { + "type": "string", + "description": "IP address of local network gateway." + }, + "bgpSettings": { + "oneOf": [ + { + "$ref": "#/definitions/BgpSettings" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Local network gateway's BGP speaker settings" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the LocalNetworkGateway resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the LocalNetworkGateway resource Updating/Deleting/Failed" + } + }, + "description": "LocalNetworkGateway properties" + }, + "NetworkInterface": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkInterfacePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "description": "A NetworkInterface in a resource group" + }, + "NetworkInterfaceDnsSettings": { + "type": "object", + "properties": { + "dnsServers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of DNS servers IP addresses" + }, + "appliedDnsServers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of Applied DNS servers IP addresses" + }, + "internalDnsNameLabel": { + "type": "string", + "description": "Gets or sets the Internal DNS name" + }, + "internalFqdn": { + "type": "string", + "description": "Gets or sets full IDNS name in the form, DnsName.VnetId.ZoneId.TopleveSuffix. This is set when the NIC is associated to a VM" + } + }, + "description": "Dns Settings of a network interface" + }, + "NetworkInterfaceIPConfiguration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkInterfaceIPConfigurationPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "IPConfiguration in a NetworkInterface" + }, + "NetworkInterfaceIPConfigurationPropertiesFormat": { + "type": "object", + "properties": { + "loadBalancerBackendAddressPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/BackendAddressPool" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of LoadBalancerBackendAddressPool resource" + }, + "loadBalancerInboundNatRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/InboundNatRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of references of LoadBalancerInboundNatRules" + }, + "privateIPAddress": { + "type": "string" + }, + "privateIPAllocationMethod": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Static", + "Dynamic" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic). Possible values include: 'Static', 'Dynamic'" + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/Subnet" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "publicIPAddress": { + "oneOf": [ + { + "$ref": "#/definitions/PublicIPAddress" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "provisioningState": { + "type": "string" + } + }, + "description": "Properties of IPConfiguration" + }, + "NetworkInterfacePropertiesFormat": { + "type": "object", + "properties": { + "virtualMachine": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of a VirtualMachine" + }, + "networkSecurityGroup": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkSecurityGroup" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the NetworkSecurityGroup resource" + }, + "ipConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterfaceIPConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets list of IPConfigurations of the NetworkInterface" + }, + "dnsSettings": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkInterfaceDnsSettings" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets DNS Settings in NetworkInterface" + }, + "macAddress": { + "type": "string", + "description": "Gets the MAC Address of the network interface" + }, + "primary": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets whether this is a primary NIC on a virtual machine" + }, + "enableIPForwarding": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets whether IPForwarding is enabled on the NIC" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the network interface resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "NetworkInterface properties. " + }, + "NetworkSecurityGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkSecurityGroupPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "description": "NetworkSecurityGroup resource" + }, + "NetworkSecurityGroupPropertiesFormat": { + "type": "object", + "properties": { + "securityRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SecurityRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Security rules of network security group" + }, + "defaultSecurityRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SecurityRule" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Default security rules of network security group" + }, + "networkInterfaces": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterface" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets collection of references to Network Interfaces" + }, + "subnets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets collection of references to subnets" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the network security group resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Network Security Group resource" + }, + "networkSecurityGroups_securityRules_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "securityRules" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SecurityRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/networkSecurityGroups/securityRules" + }, + "OutboundNatRule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/OutboundNatRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Outbound NAT pool of the loadbalancer" + }, + "OutboundNatRulePropertiesFormat": { + "type": "object", + "properties": { + "allocatedOutboundPorts": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the number of outbound ports to be used for SNAT" + }, + "frontendIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Frontend IP addresses of the load balancer" + }, + "backendAddressPool": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "backendAddressPool" + ], + "description": "Outbound NAT pool of the loadbalancer" + }, + "Probe": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ProbePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Load balancer Probe" + }, + "ProbePropertiesFormat": { + "type": "object", + "properties": { + "loadBalancingRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets Load balancer rules that use this probe" + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Http", + "Tcp" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the protocol of the end point. Possible values are http pr Tcp. If Tcp is specified, a received ACK is required for the probe to be successful. If http is specified,a 200 OK response from the specifies URI is required for the probe to be successful. Possible values include: 'Http', 'Tcp'" + }, + "port": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Port for communicating the probe. Possible values range from 1 to 65535, inclusive." + }, + "intervalInSeconds": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5" + }, + "numberOfProbes": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endponints to be taken out of rotation faster or slower than the typical times used in Azure. " + }, + "requestPath": { + "type": "string", + "description": "Gets or sets the URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "port" + ] + }, + "PublicIPAddress": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PublicIPAddressPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "description": "PublicIPAddress resource" + }, + "PublicIPAddressDnsSettings": { + "type": "object", + "properties": { + "domainNameLabel": { + "type": "string", + "description": "Gets or sets the Domain name label.The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system." + }, + "fqdn": { + "type": "string", + "description": "Gets the FQDN, Fully qualified domain name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone." + }, + "reverseFqdn": { + "type": "string", + "description": "Gets or Sests the Reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. " + } + }, + "description": "Contains FQDN of the DNS record associated with the public IP address" + }, + "PublicIPAddressPropertiesFormat": { + "type": "object", + "properties": { + "publicIPAllocationMethod": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Static", + "Dynamic" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets PublicIP allocation method (Static/Dynamic). Possible values include: 'Static', 'Dynamic'" + }, + "ipConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/IPConfiguration" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "dnsSettings": { + "oneOf": [ + { + "$ref": "#/definitions/PublicIPAddressDnsSettings" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets FQDN of the DNS record associated with the public IP address" + }, + "ipAddress": { + "type": "string" + }, + "idleTimeoutInMinutes": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Idletimeout of the public IP address" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "PublicIpAddress properties" + }, + "Route": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RoutePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Route resource" + }, + "RoutePropertiesFormat": { + "type": "object", + "properties": { + "addressPrefix": { + "type": "string", + "description": "Gets or sets the destination CIDR to which the route applies." + }, + "nextHopType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "VirtualNetworkGateway", + "VnetLocal", + "Internet", + "VirtualAppliance", + "None" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the type of Azure hop the packet should be sent to. Possible values include: 'VirtualNetworkGateway', 'VnetLocal', 'Internet', 'VirtualAppliance', 'None'" + }, + "nextHopIpAddress": { + "type": "string", + "description": "Gets or sets the IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance." + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the resource Updating/Deleting/Failed" + } + }, + "required": [ + "nextHopType" + ], + "description": "Route resource" + }, + "RouteTable": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RouteTablePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "description": "RouteTable resource" + }, + "RouteTablePropertiesFormat": { + "type": "object", + "properties": { + "routes": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Route" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Routes in a Route Table" + }, + "subnets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets collection of references to subnets" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the resource Updating/Deleting/Failed" + } + }, + "description": "Route Table resource" + }, + "routeTables_routes_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "routes" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RoutePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/routeTables/routes" + }, + "SecurityRule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SecurityRulePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Network security rule" + }, + "SecurityRulePropertiesFormat": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Gets or sets a description for this rule. Restricted to 140 chars." + }, + "protocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Tcp", + "Udp", + "*" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets Network protocol this rule applies to. Can be Tcp, Udp or All(*). Possible values include: 'Tcp', 'Udp', '*'" + }, + "sourcePortRange": { + "type": "string", + "description": "Gets or sets Source Port or Range. Integer or range between 0 and 65535. Asterix '*' can also be used to match all ports." + }, + "destinationPortRange": { + "type": "string", + "description": "Gets or sets Destination Port or Range. Integer or range between 0 and 65535. Asterix '*' can also be used to match all ports." + }, + "sourceAddressPrefix": { + "type": "string", + "description": "Gets or sets source address prefix. CIDR or source IP range. Asterix '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. " + }, + "destinationAddressPrefix": { + "type": "string", + "description": "Gets or sets destination address prefix. CIDR or source IP range. Asterix '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. " + }, + "access": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Allow", + "Deny" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets network traffic is allowed or denied. Possible values are 'Allow' and 'Deny'. Possible values include: 'Allow', 'Deny'" + }, + "priority": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule." + }, + "direction": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Inbound", + "Outbound" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the direction of the rule.InBound or Outbound. The direction specifies if rule will be evaluated on incoming or outcoming traffic. Possible values include: 'Inbound', 'Outbound'" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "sourceAddressPrefix", + "destinationAddressPrefix", + "access", + "direction" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SubnetPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "Subnet in a VirtualNework resource" + }, + "SubnetPropertiesFormat": { + "type": "object", + "properties": { + "addressPrefix": { + "type": "string", + "description": "Gets or sets Address prefix for the subnet." + }, + "networkSecurityGroup": { + "oneOf": [ + { + "$ref": "#/definitions/NetworkSecurityGroup" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the NetworkSecurityGroup resource" + }, + "routeTable": { + "oneOf": [ + { + "$ref": "#/definitions/RouteTable" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the RouteTable resource" + }, + "ipConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/IPConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets array of references to the network interface IP configurations using subnet" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "SubResource": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + } + } + }, + "VirtualNetworkGateway": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "location": { + "type": "string", + "description": "Resource location" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Resource tags" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkGatewayPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "description": "A common class for general resource information" + }, + "VirtualNetworkGatewayConnectionPropertiesFormat": { + "type": "object", + "properties": { + "authorizationKey": { + "type": "string", + "description": "The authorizationKey." + }, + "virtualNetworkGateway1": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "virtualNetworkGateway2": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "localNetworkGateway2": { + "oneOf": [ + { + "$ref": "#/definitions/LocalNetworkGateway" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "connectionType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "IPsec", + "Vnet2Vnet", + "ExpressRoute", + "VPNClient" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gateway connection type -Ipsec/Dedicated/VpnClient/Vnet2Vnet. Possible values include: 'IPsec', 'Vnet2Vnet', 'ExpressRoute', 'VPNClient'" + }, + "routingWeight": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The Routing weight." + }, + "sharedKey": { + "type": "string", + "description": "The Ipsec share key." + }, + "connectionStatus": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Unknown", + "Connecting", + "Connected", + "NotConnected" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Virtual network Gateway connection status. Possible values include: 'Unknown', 'Connecting', 'Connected', 'NotConnected'" + }, + "egressBytesTransferred": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The Egress Bytes Transferred in this connection" + }, + "ingressBytesTransferred": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The Ingress Bytes Transferred in this connection" + }, + "peer": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The reference to peerings resource." + }, + "enableBgp": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "EnableBgp Flag" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the VirtualNetworkGatewayConnection resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the VirtualNetworkGatewayConnection resource Updating/Deleting/Failed" + } + }, + "description": "VirtualNeworkGatewayConnection properties" + }, + "VirtualNetworkGatewayIPConfiguration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkGatewayIPConfigurationPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "IpConfiguration for Virtual network gateway" + }, + "VirtualNetworkGatewayIPConfigurationPropertiesFormat": { + "type": "object", + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the IP Configuration" + }, + "privateIPAllocationMethod": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Static", + "Dynamic" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic). Possible values include: 'Static', 'Dynamic'" + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of VirtualNetworkGatewayIPConfiguration" + }, + "VirtualNetworkGatewayPropertiesFormat": { + "type": "object", + "properties": { + "ipConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualNetworkGatewayIPConfiguration" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "IpConfigurations for Virtual network gateway." + }, + "gatewayType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Vpn", + "ExpressRoute" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The type of this virtual network gateway. Possible values include: 'Vpn', 'ExpressRoute'" + }, + "vpnType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "PolicyBased", + "RouteBased" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The type of this virtual network gateway. Possible values include: 'PolicyBased', 'RouteBased'" + }, + "enableBgp": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "EnableBgp Flag" + }, + "gatewayDefaultSite": { + "oneOf": [ + { + "$ref": "#/definitions/SubResource" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the LocalNetworkGateway resource which represents Local network site having default routes. Assign Null value in case of removing existing default site setting." + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkGatewaySku" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the VirtualNetworkGatewaySku resource which represents the sku selected for Virtual network gateway." + }, + "vpnClientConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/VpnClientConfiguration" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the VpnClientConfiguration resource which represents the P2S VpnClient configurations." + }, + "bgpSettings": { + "oneOf": [ + { + "$ref": "#/definitions/BgpSettings" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Virtual network gateway's BGP speaker settings" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the VirtualNetworkGateway resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the VirtualNetworkGateway resource Updating/Deleting/Failed" + } + }, + "description": "VirtualNeworkGateay properties" + }, + "VirtualNetworkGatewaySku": { + "type": "object", + "properties": { + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Basic", + "HighPerformance", + "Standard" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gateway sku name -Basic/HighPerformance/Standard. Possible values include: 'Basic', 'HighPerformance', 'Standard'" + }, + "tier": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Basic", + "HighPerformance", + "Standard" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gateway sku tier -Basic/HighPerformance/Standard. Possible values include: 'Basic', 'HighPerformance', 'Standard'" + }, + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The capacity" + } + }, + "description": "VirtualNetworkGatewaySku details" + }, + "VirtualNetworkPropertiesFormat": { + "type": "object", + "properties": { + "addressSpace": { + "oneOf": [ + { + "$ref": "#/definitions/AddressSpace" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets AddressSpace that contains an array of IP address ranges that can be used by subnets" + }, + "dhcpOptions": { + "oneOf": [ + { + "$ref": "#/definitions/DhcpOptions" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets DHCPOptions that contains an array of DNS servers available to VMs deployed in the virtual network" + }, + "subnets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets List of subnets in a VirtualNetwork" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the VirtualNetwork resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "virtualnetworks_subnets_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "subnets" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-06-15" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SubnetPropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Network/virtualnetworks/subnets" + }, + "VpnClientConfiguration": { + "type": "object", + "properties": { + "vpnClientAddressPool": { + "oneOf": [ + { + "$ref": "#/definitions/AddressSpace" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the reference of the Address space resource which represents Address space for P2S VpnClient." + }, + "vpnClientRootCertificates": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/VpnClientRootCertificate" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "VpnClientRootCertificate for Virtual network gateway." + }, + "vpnClientRevokedCertificates": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/VpnClientRevokedCertificate" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "VpnClientRevokedCertificate for Virtual network gateway." + } + }, + "description": "VpnClientConfiguration for P2S client" + }, + "VpnClientRevokedCertificate": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VpnClientRevokedCertificatePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "VPN client revoked certificate of virtual network gateway" + }, + "VpnClientRevokedCertificatePropertiesFormat": { + "type": "object", + "properties": { + "thumbprint": { + "type": "string", + "description": "Gets or sets the revoked Vpn client certificate thumbprint" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the VPN client revoked certificate resource Updating/Deleting/Failed" + } + }, + "description": "Properties of the revoked VPN client certificate of virtual network gateway" + }, + "VpnClientRootCertificate": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VpnClientRootCertificatePropertiesFormat" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "description": "VPN client root certificate of virtual network gateway" + }, + "VpnClientRootCertificatePropertiesFormat": { + "type": "object", + "properties": { + "publicCertData": { + "type": "string", + "description": "Gets or sets the certificate public data" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the VPN client root certificate resource Updating/Deleting/Failed" + } + }, + "description": "Properties of SSL certificates of application gateway" + } + } +} diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Network/2015-05-01-preview/network.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Network/2015-05-01-preview/network.json new file mode 100644 index 0000000000000..6652fd2ed4342 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Network/2015-05-01-preview/network.json @@ -0,0 +1,6668 @@ +{ + "swagger": "2.0", + "info": { + "title": "NetworkResourceProviderClient", + "description": "The Windows Azure Network management API provides a RESTful set of web services that interact with Windows Azure Networks service to manage your network resrources. The API has entities that capture the relationship between an end user and the Windows Azure Networks service.", + "version": "2015-05-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}": { + "delete": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_Delete", + "description": "The delete applicationgateway operation deletes the specified applicationgateway.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "applicationGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the applicationgateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_Get", + "description": "The Get applicationgateway operation retreives information about the specified applicationgateway.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "applicationGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the applicationgateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ApplicationGateway" + } + } + } + }, + "put": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_CreateOrUpdate", + "description": "The Put ApplicationGateway operation creates/updates a ApplicationGateway", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "applicationGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the ApplicationGateway." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplicationGateway" + }, + "description": "Parameters supplied to the create/delete ApplicationGateway operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/ApplicationGateway" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ApplicationGateway" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways": { + "get": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_List", + "description": "The List ApplicationGateway opertion retrieves all the applicationgateways in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ApplicationGatewayListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/applicationGateways": { + "get": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_ListAll", + "description": "The List applicationgateway opertion retrieves all the applicationgateways in a subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ApplicationGatewayListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/start": { + "post": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_Start", + "description": "The Start ApplicationGateway operation starts application gatewayin the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "applicationGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the application gateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/stop": { + "post": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_Stop", + "description": "The STOP ApplicationGateway operation stops application gatewayin the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "applicationGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the application gateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/": { + "delete": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_Delete", + "description": "The delete ExpressRouteCircuit operation deletes the specified ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route Circuit." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_Get", + "description": "The Get ExpressRouteCircuit operation retreives information about the specified ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the circuit." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuit" + } + } + } + }, + "put": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_CreateOrUpdate", + "description": "The Put ExpressRouteCircuit operation creates/updates a ExpressRouteCircuit", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the circuit." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressRouteCircuit" + }, + "description": "Parameters supplied to the create/delete ExpressRouteCircuit operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuit" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuit" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}arpTable": { + "get": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_ListArpTable", + "description": "The ListArpTable from ExpressRouteCircuit opertion retrieves the currently advertised arp table associated with the ExpressRouteCircuits in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the circuit." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitsArpTableListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}routesTable": { + "get": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_ListRoutesTable", + "description": "The ListRoutesTable from ExpressRouteCircuit opertion retrieves the currently advertised routes table associated with the ExpressRouteCircuits in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the circuit." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitsRoutesTableListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}stats": { + "get": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_ListStats", + "description": "The Liststats ExpressRouteCircuit opertion retrieves all the stats from a ExpressRouteCircuits in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the loadBalancer." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitsStatsListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits": { + "get": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_List", + "description": "The List ExpressRouteCircuit opertion retrieves all the ExpressRouteCircuits in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/expressRouteCircuits": { + "get": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_ListAll", + "description": "The List ExpressRouteCircuit opertion retrieves all the ExpressRouteCircuits in a subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/expressRouteServiceProviders": { + "get": { + "tags": [ + "ExpressRouteServiceProviders" + ], + "operationId": "ExpressRouteServiceProviders_List", + "description": "The List ExpressRouteServiceProvider opertion retrieves all the available ExpressRouteServiceProviders.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteServiceProviderListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings/{peeringName}": { + "delete": { + "tags": [ + "ExpressRouteCircuitPeerings" + ], + "operationId": "ExpressRouteCircuitPeerings_Delete", + "description": "The delete peering operation deletes the specified peering from the ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route circuit." + }, + { + "name": "peeringName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the peering." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "ExpressRouteCircuitPeerings" + ], + "operationId": "ExpressRouteCircuitPeerings_Get", + "description": "The GET peering operation retrieves the specified authorization from the ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route circuit." + }, + { + "name": "peeringName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the peering." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitPeering" + } + } + } + }, + "put": { + "tags": [ + "ExpressRouteCircuitPeerings" + ], + "operationId": "ExpressRouteCircuitPeerings_CreateOrUpdate", + "description": "The Put Pering operation creates/updates an peering in the specified ExpressRouteCircuits", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route circuit." + }, + { + "name": "peeringName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the peering." + }, + { + "name": "peeringParameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitPeering" + }, + "description": "Parameters supplied to the create/update ExpressRouteCircuit Peering operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitPeering" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitPeering" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings": { + "get": { + "tags": [ + "ExpressRouteCircuitPeerings" + ], + "operationId": "ExpressRouteCircuitPeerings_List", + "description": "The List peering operation retrieves all the peerings in an ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the curcuit." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitPeeringListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}": { + "delete": { + "tags": [ + "LoadBalancers" + ], + "operationId": "LoadBalancers_Delete", + "description": "The delete loadbalancer operation deletes the specified loadbalancer.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "loadBalancerName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the loadBalancer." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "LoadBalancers" + ], + "operationId": "LoadBalancers_Get", + "description": "The Get ntework interface operation retreives information about the specified network interface.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "loadBalancerName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the loadBalancer." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LoadBalancer" + } + } + } + }, + "put": { + "tags": [ + "LoadBalancers" + ], + "operationId": "LoadBalancers_CreateOrUpdate", + "description": "The Put LoadBalancer operation creates/updates a LoadBalancer", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "loadBalancerName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the loadBalancer." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/LoadBalancer" + }, + "description": "Parameters supplied to the create/delete LoadBalancer operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/LoadBalancer" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LoadBalancer" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/loadBalancers": { + "get": { + "tags": [ + "LoadBalancers" + ], + "operationId": "LoadBalancers_ListAll", + "description": "The List loadBalancer opertion retrieves all the loadbalancers in a subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LoadBalancerListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers": { + "get": { + "tags": [ + "LoadBalancers" + ], + "operationId": "LoadBalancers_List", + "description": "The List loadBalancer opertion retrieves all the loadbalancers in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LoadBalancerListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/localNetworkGateways/{localNetworkGatewayName}": { + "put": { + "tags": [ + "LocalNetworkGateways" + ], + "operationId": "LocalNetworkGateways_CreateOrUpdate", + "description": "The Put LocalNetworkGateway operation creates/updates a local network gateway in the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "localNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the local network gateway." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/LocalNetworkGateway" + }, + "description": "Parameters supplied to the Begin Create or update Local Network Gateway operation through Network resource provider." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/LocalNetworkGateway" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LocalNetworkGateway" + } + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "LocalNetworkGateways" + ], + "operationId": "LocalNetworkGateways_Get", + "description": "The Get LocalNetworkGateway operation retrieves information about the specified local network gateway through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "localNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the local network gateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LocalNetworkGateway" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/localNetworkGateways/{localNetworkGatewayName}/": { + "delete": { + "tags": [ + "LocalNetworkGateways" + ], + "operationId": "LocalNetworkGateways_Delete", + "description": "The Delete LocalNetworkGateway operation deletes the specifed local network Gateway through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "localNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the local network gateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/localNetworkGateways": { + "get": { + "tags": [ + "LocalNetworkGateways" + ], + "operationId": "LocalNetworkGateways_List", + "description": "The List LocalNetworkGateways opertion retrieves all the local network gateways stored.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LocalNetworkGatewayListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}": { + "delete": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_Delete", + "description": "The delete netwokInterface operation deletes the specified netwokInterface.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkInterfaceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network interface." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_Get", + "description": "The Get ntework interface operation retreives information about the specified network interface.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkInterfaceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network interface." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterface" + } + } + } + }, + "put": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_CreateOrUpdate", + "description": "The Put NetworkInterface operation creates/updates a networkInterface", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkInterfaceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network interface." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/NetworkInterface" + }, + "description": "Parameters supplied to the create/update NetworkInterface operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterface" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterface" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces": { + "get": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_ListVirtualMachineScaleSetVMNetworkInterfaces", + "description": "The list network interface operation retrieves information about all network interfaces in a virtual machine from a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualMachineScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "virtualmachineIndex", + "in": "path", + "required": true, + "type": "string", + "description": "The virtual machine index." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterfaceListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/networkInterfaces": { + "get": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_ListVirtualMachineScaleSetNetworkInterfaces", + "description": "The list network interface operation retrieves information about all network interfaces in a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualMachineScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterfaceListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces/{networkInterfaceName}": { + "get": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_GetVirtualMachineScaleSetNetworkInterface", + "description": "The Get ntework interface operation retreives information about the specified network interface in a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualMachineScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "virtualmachineIndex", + "in": "path", + "required": true, + "type": "string", + "description": "The virtual machine index." + }, + { + "name": "networkInterfaceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network interface." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterface" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkInterfaces": { + "get": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_ListAll", + "description": "The List networkInterfaces opertion retrieves all the networkInterfaces in a subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterfaceListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces": { + "get": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_List", + "description": "The List networkInterfaces opertion retrieves all the networkInterfaces in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterfaceListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables/{routeTableName}": { + "delete": { + "tags": [ + "RouteTables" + ], + "operationId": "RouteTables_Delete", + "description": "The Delete RouteTable operation deletes the specifed Route Table", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "RouteTables" + ], + "operationId": "RouteTables_Get", + "description": "The Get RouteTables operation retrieves information about the specified route table.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RouteTable" + } + } + } + }, + "put": { + "tags": [ + "RouteTables" + ], + "operationId": "RouteTables_CreateOrUpdate", + "description": "The Put RouteTable operation creates/updates a route tablein the specified resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RouteTable" + }, + "description": "Parameters supplied to the create/update Route Table operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/RouteTable" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RouteTable" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables": { + "get": { + "tags": [ + "RouteTables" + ], + "operationId": "RouteTables_List", + "description": "The list RouteTables returns all route tables in a resource group", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RouteTableListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/routeTables": { + "get": { + "tags": [ + "RouteTables" + ], + "operationId": "RouteTables_ListAll", + "description": "The list RouteTables returns all route tables in a subscription", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RouteTableListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}": { + "delete": { + "tags": [ + "NetworkSecurityGroups" + ], + "operationId": "NetworkSecurityGroups_Delete", + "description": "The Delete NetworkSecurityGroup operation deletes the specifed network security group", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "NetworkSecurityGroups" + ], + "operationId": "NetworkSecurityGroups_Get", + "description": "The Get NetworkSecurityGroups operation retrieves information about the specified network security group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkSecurityGroup" + } + } + } + }, + "put": { + "tags": [ + "NetworkSecurityGroups" + ], + "operationId": "NetworkSecurityGroups_CreateOrUpdate", + "description": "The Put NetworkSecurityGroup operation creates/updates a network security groupin the specified resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/NetworkSecurityGroup" + }, + "description": "Parameters supplied to the create/update Network Security Group operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkSecurityGroup" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkSecurityGroup" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkSecurityGroups": { + "get": { + "tags": [ + "NetworkSecurityGroups" + ], + "operationId": "NetworkSecurityGroups_ListAll", + "description": "The list NetworkSecurityGroups returns all network security groups in a subscription", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkSecurityGroupListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups": { + "get": { + "tags": [ + "NetworkSecurityGroups" + ], + "operationId": "NetworkSecurityGroups_List", + "description": "The list NetworkSecurityGroups returns all network security groups in a resource group", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkSecurityGroupListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPAddresses/{publicIpAddressName}/": { + "delete": { + "tags": [ + "PublicIpAddresses" + ], + "operationId": "PublicIpAddresses_Delete", + "description": "The delete publicIpAddress operation deletes the specified publicIpAddress.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "publicIpAddressName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the subnet." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "PublicIpAddresses" + ], + "operationId": "PublicIpAddresses_Get", + "description": "The Get publicIpAddress operation retreives information about the specified pubicIpAddress", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "publicIpAddressName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the subnet." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PublicIpAddress" + } + } + } + }, + "put": { + "tags": [ + "PublicIpAddresses" + ], + "operationId": "PublicIpAddresses_CreateOrUpdate", + "description": "The Put PublicIPAddress operation creates/updates a stable/dynamic PublicIP address", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "publicIpAddressName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the publicIpAddress." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PublicIpAddress" + }, + "description": "Parameters supplied to the create/update PublicIPAddress operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/PublicIpAddress" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PublicIpAddress" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/publicIPAddresses": { + "get": { + "tags": [ + "PublicIpAddresses" + ], + "operationId": "PublicIpAddresses_ListAll", + "description": "The List publicIpAddress opertion retrieves all the publicIpAddresses in a subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PublicIpAddressListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPAddresses": { + "get": { + "tags": [ + "PublicIpAddresses" + ], + "operationId": "PublicIpAddresses_List", + "description": "The List publicIpAddress opertion retrieves all the publicIpAddresses in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PublicIpAddressListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables/{routeTableName}/routes/{routeName}": { + "delete": { + "tags": [ + "Routes" + ], + "operationId": "Routes_Delete", + "description": "The delete route operation deletes the specified route from a route table.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "name": "routeName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "Routes" + ], + "operationId": "Routes_Get", + "description": "The Get route operation retreives information about the specified route from the route table.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "name": "routeName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/Route" + } + } + } + }, + "put": { + "tags": [ + "Routes" + ], + "operationId": "Routes_CreateOrUpdate", + "description": "The Put route operation creates/updates a route in the specified route table", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "name": "routeName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route." + }, + { + "name": "routeParameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Route" + }, + "description": "Parameters supplied to the create/update routeoperation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/Route" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/Route" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables/{routeTableName}/routes": { + "get": { + "tags": [ + "Routes" + ], + "operationId": "Routes_List", + "description": "The List network security rule opertion retrieves all the routes in a route table.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RouteListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/securityRules/{securityRuleName}": { + "delete": { + "tags": [ + "SecurityRules" + ], + "operationId": "SecurityRules_Delete", + "description": "The delete network security rule operation deletes the specified network security rule.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "name": "securityRuleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the security rule." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "SecurityRules" + ], + "operationId": "SecurityRules_Get", + "description": "The Get NetworkSecurityRule operation retreives information about the specified network security rule.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "name": "securityRuleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the security rule." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/SecurityRule" + } + } + } + }, + "put": { + "tags": [ + "SecurityRules" + ], + "operationId": "SecurityRules_CreateOrUpdate", + "description": "The Put network security rule operation creates/updates a security rule in the specified network security group", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "name": "securityRuleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the security rule." + }, + { + "name": "securityRuleParameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SecurityRule" + }, + "description": "Parameters supplied to the create/update network security rule operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/SecurityRule" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/SecurityRule" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/securityRules": { + "get": { + "tags": [ + "SecurityRules" + ], + "operationId": "SecurityRules_List", + "description": "The List network security rule opertion retrieves all the security rules in a network security group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/SecurityRuleListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/authorizations/{authorizationName}": { + "delete": { + "tags": [ + "ExpressRouteCircuitAuthorizations" + ], + "operationId": "ExpressRouteCircuitAuthorizations_Delete", + "description": "The delete authorization operation deletes the specified authorization from the specified ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route circuit." + }, + { + "name": "authorizationName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the authorization." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "ExpressRouteCircuitAuthorizations" + ], + "operationId": "ExpressRouteCircuitAuthorizations_Get", + "description": "The GET authorization operation retrieves the specified authorization from the specified ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route circuit." + }, + { + "name": "authorizationName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the authorization." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitAuthorization" + } + } + } + }, + "put": { + "tags": [ + "ExpressRouteCircuitAuthorizations" + ], + "operationId": "ExpressRouteCircuitAuthorizations_CreateOrUpdate", + "description": "The Put Authorization operation creates/updates an authorization in thespecified ExpressRouteCircuits", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route circuit." + }, + { + "name": "authorizationName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the authorization." + }, + { + "name": "authorizationParameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitAuthorization" + }, + "description": "Parameters supplied to the create/update ExpressRouteCircuitAuthorization operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitAuthorization" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitAuthorization" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/authorizations": { + "get": { + "tags": [ + "ExpressRouteCircuitAuthorizations" + ], + "operationId": "ExpressRouteCircuitAuthorizations_List", + "description": "The List authorization operation retrieves all the authorizations in an ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the curcuit." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/AuthorizationListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualnetworks/{virtualNetworkName}/subnets/{subnetName}": { + "delete": { + "tags": [ + "Subnets" + ], + "operationId": "Subnets_Delete", + "description": "The delete subnet operation deletes the specified subnet.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "name": "subnetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the subnet." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "Subnets" + ], + "operationId": "Subnets_Get", + "description": "The Get subnet operation retreives information about the specified subnet.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "name": "subnetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the subnet." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/Subnet" + } + } + } + }, + "put": { + "tags": [ + "Subnets" + ], + "operationId": "Subnets_CreateOrUpdate", + "description": "The Put Subnet operation creates/updates a subnet in thespecified virtual network", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "name": "subnetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the subnet." + }, + { + "name": "subnetParameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Subnet" + }, + "description": "Parameters supplied to the create/update Subnet operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/Subnet" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/Subnet" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualnetworks/{virtualNetworkName}/subnets": { + "get": { + "tags": [ + "Subnets" + ], + "operationId": "Subnets_List", + "description": "The List subnets opertion retrieves all the subnets in a virtual network.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/SubnetListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{location}/usages": { + "get": { + "tags": [ + "Usages" + ], + "operationId": "Usages_List", + "description": "Lists compute usages for a subscription.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location upon which resource usage is queried.", + "pattern": "^[-\\w\\._]+$" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/UsagesListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}": { + "put": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_CreateOrUpdate", + "description": "The Put VirtualNetworkGatewayConnection operation creates/updates a virtual network gateway connection in the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway conenction." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualNetworkGatewayConnection" + }, + "description": "Parameters supplied to the Begin Create or update Virtual Network Gateway connection operation through Network resource provider." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGatewayConnection" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGatewayConnection" + } + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_Get", + "description": "The Get VirtualNetworkGatewayConnection operation retrieves information about the specified virtual network gateway connection through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway connection." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGatewayConnection" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/": { + "delete": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_Delete", + "description": "The Delete VirtualNetworkGatewayConnection operation deletes the specifed virtual network Gateway connection through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway connection." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/sharedkey": { + "get": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_GetSharedKey", + "description": "The Get VirtualNetworkGatewayConnectionSharedKey operation retrieves information about the specified virtual network gateway connection shared key through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The virtual network gateway connection shared key name." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ConnectionSharedKey" + } + } + } + }, + "put": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_SetSharedKey", + "description": "The Put VirtualNetworkGatewayConnectionSharedKey operation sets the virtual network gateway connection shared key for passed virtual network gateway connection in the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The virtual network gateway connection name." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ConnectionSharedKey" + }, + "description": "Parameters supplied to the Begin Set Virtual Network Gateway conection Shared key operation throughNetwork resource provider." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/ConnectionSharedKey" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ConnectionSharedKey" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections": { + "get": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_List", + "description": "The List VirtualNetworkGatewayConnections operation retrieves all the virtual network gateways connections created.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGatewayConnectionListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/sharedkey/reset": { + "post": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_ResetSharedKey", + "description": "The VirtualNetworkGatewayConnectionResetSharedKey operation resets the virtual network gateway connection shared key for passed virtual network gateway connection in the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The virtual network gateway connection reset shared key Name." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ConnectionResetSharedKey" + }, + "description": "Parameters supplied to the Begin Reset Virtual Network Gateway connection shared key operation through Network resource provider." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ConnectionResetSharedKey" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualnetworkgateways/{virtualNetworkGatewayName}": { + "put": { + "tags": [ + "VirtualNetworkGateways" + ], + "operationId": "VirtualNetworkGateways_CreateOrUpdate", + "description": "The Put VirtualNetworkGateway operation creates/updates a virtual network gateway in the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + "description": "Parameters supplied to the Begin Create or update Virtual Network Gateway operation through Network resource provider." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGateway" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGateway" + } + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "VirtualNetworkGateways" + ], + "operationId": "VirtualNetworkGateways_Get", + "description": "The Get VirtualNetworkGateway operation retrieves information about the specified virtual network gateway through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGateway" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/": { + "delete": { + "tags": [ + "VirtualNetworkGateways" + ], + "operationId": "VirtualNetworkGateways_Delete", + "description": "The Delete VirtualNetworkGateway operation deletes the specifed virtual network Gateway through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways": { + "get": { + "tags": [ + "VirtualNetworkGateways" + ], + "operationId": "VirtualNetworkGateways_List", + "description": "The List VirtualNetworkGateways opertion retrieves all the virtual network gateways stored.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGatewayListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualnetworkgateways/{virtualNetworkGatewayName}/reset": { + "post": { + "tags": [ + "VirtualNetworkGateways" + ], + "operationId": "VirtualNetworkGateways_Reset", + "description": "The Reset VirtualNetworkGateway operation resets the primary of the virtual network gatewayin the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + "description": "Parameters supplied to the Begin Reset Virtual Network Gateway operation through Network resource provider." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGateway" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualnetworks/{virtualNetworkName}": { + "delete": { + "tags": [ + "VirtualNetworks" + ], + "operationId": "VirtualNetworks_Delete", + "description": "The Delete VirtualNetwork operation deletes the specifed virtual network", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "VirtualNetworks" + ], + "operationId": "VirtualNetworks_Get", + "description": "The Get VirtualNetwork operation retrieves information about the specified virtual network.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetwork" + } + } + } + }, + "put": { + "tags": [ + "VirtualNetworks" + ], + "operationId": "VirtualNetworks_CreateOrUpdate", + "description": "The Put VirtualNetwork operation creates/updates a virtual network in the specified resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualNetwork" + }, + "description": "Parameters supplied to the create/update Virtual Network operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetwork" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetwork" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/virtualnetworks": { + "get": { + "tags": [ + "VirtualNetworks" + ], + "operationId": "VirtualNetworks_ListAll", + "description": "The list VirtualNetwork returns all Virtual Networks in a subscription", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualnetworks": { + "get": { + "tags": [ + "VirtualNetworks" + ], + "operationId": "VirtualNetworks_List", + "description": "The list VirtualNetwork returns all Virtual Networks in a resource group", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{location}/CheckDnsNameAvailability": { + "get": { + "operationId": "CheckDnsNameAvailability", + "description": "Checks whether a domain name in the cloudapp.net zone is available for use.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location of the domain name" + }, + { + "name": "domainNameLabel", + "in": "query", + "required": false, + "type": "string", + "description": "The domain name to be verified. It must conform to the following regular expression: ^[a-z][a-z0-9-]{1,61}[a-z0-9]$." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DnsNameAvailabilityResult" + } + } + } + } + } + }, + "definitions": { + "ApplicationGatewaySku": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets name of application gateway SKU", + "enum": [ + "Standard_Small", + "Standard_Medium", + "Standard_Large" + ], + "x-ms-enum": { + "name": "ApplicationGatewaySkuName", + "modelAsString": true + } + }, + "tier": { + "type": "string", + "description": "Gets or sets tier of application gateway", + "enum": [ + "Standard" + ], + "x-ms-enum": { + "name": "ApplicationGatewayTier", + "modelAsString": true + } + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "Gets or sets capacity (instance count) of application gateway" + } + }, + "description": "SKU of application gateway" + }, + "ApplicationGatewayIPConfigurationPropertiesFormat": { + "properties": { + "subnet": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the subnet resource.A subnet from where appliation gateway gets its private address " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the application gateway subnet resource Updating/Deleting/Failed" + } + }, + "description": "Properties of IP configuration of application gateway" + }, + "ApplicationGatewayIPConfiguration": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayIPConfigurationPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "IP configuration of application gateway" + }, + "ApplicationGatewaySslCertificatePropertiesFormat": { + "properties": { + "data": { + "type": "string", + "description": "Gets or sets the certificate data " + }, + "password": { + "type": "string", + "description": "Gets or sets the certificate password " + }, + "publicCertData": { + "type": "string", + "description": "Gets or sets the certificate public data " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the ssl certificate resource Updating/Deleting/Failed" + } + }, + "description": "Properties of SSL certificates of application gateway" + }, + "ApplicationGatewaySslCertificate": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewaySslCertificatePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "SSL certificates of application gateway" + }, + "ApplicationGatewayFrontendIPConfigurationPropertiesFormat": { + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the Network Interface IP Configuration" + }, + "privateIPAllocationMethod": { + "type": "string", + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic)", + "enum": [ + "Static", + "Dynamic" + ], + "x-ms-enum": { + "name": "IpAllocationMethod", + "modelAsString": true + } + }, + "subnet": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Frontend IP configuration of application gateway" + }, + "ApplicationGatewayFrontendIPConfiguration": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayFrontendIPConfigurationPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Frontend IP configuration of application gateway" + }, + "ApplicationGatewayFrontendPortPropertiesFormat": { + "properties": { + "port": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the frontend port" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the frontend port resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Frontend Port of application gateway" + }, + "ApplicationGatewayFrontendPort": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayFrontendPortPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Frontend Port of application gateway" + }, + "ApplicationGatewayBackendAddress": { + "properties": { + "fqdn": { + "type": "string", + "description": "Gets or sets the dns name" + }, + "ipAddress": { + "type": "string", + "description": "Gets or sets the ip address" + } + }, + "description": "Backend Address of application gateway" + }, + "ApplicationGatewayBackendAddressPoolPropertiesFormat": { + "properties": { + "backendIPConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets or sets backendIPConfiguration of application gateway " + }, + "backendAddresses": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayBackendAddress" + }, + "description": "Gets or sets the backend addresses" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the backend address pool resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Backend Address Pool of application gateway" + }, + "ApplicationGatewayBackendAddressPool": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Backend Address Pool of application gateway" + }, + "ApplicationGatewayBackendHttpSettingsPropertiesFormat": { + "properties": { + "port": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the port" + }, + "protocol": { + "type": "string", + "description": "Gets or sets the protocol", + "enum": [ + "Http", + "Https" + ], + "x-ms-enum": { + "name": "ApplicationGatewayProtocol", + "modelAsString": true + } + }, + "cookieBasedAffinity": { + "type": "string", + "description": "Gets or sets the cookie affinity", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "ApplicationGatewayCookieBasedAffinity", + "modelAsString": true + } + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the backend http settings resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Backend address pool settings of application gateway" + }, + "ApplicationGatewayBackendHttpSettings": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayBackendHttpSettingsPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Backend address pool settings of application gateway" + }, + "ApplicationGatewayHttpListenerPropertiesFormat": { + "properties": { + "frontendIPConfiguration": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets frontend IP configuration resource of application gateway " + }, + "frontendPort": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets frontend port resource of application gateway " + }, + "protocol": { + "type": "string", + "description": "Gets or sets the protocol", + "enum": [ + "Http", + "Https" + ], + "x-ms-enum": { + "name": "ApplicationGatewayProtocol", + "modelAsString": true + } + }, + "sslCertificate": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets ssl certificate resource of application gateway " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the http listener resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Http listener of application gateway" + }, + "ApplicationGatewayHttpListener": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayHttpListenerPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Http listener of application gateway" + }, + "ApplicationGatewayRequestRoutingRulePropertiesFormat": { + "properties": { + "ruleType": { + "type": "string", + "description": "Gets or sets the rule type", + "enum": [ + "Basic" + ], + "x-ms-enum": { + "name": "ApplicationGatewayRequestRoutingRuleType", + "modelAsString": true + } + }, + "backendAddressPool": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets backend address pool resource of application gateway " + }, + "backendHttpSettings": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets frontend port resource of application gateway " + }, + "httpListener": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets http listener resource of application gateway " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the request routing rule resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Request routing rule of application gateway" + }, + "ApplicationGatewayRequestRoutingRule": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayRequestRoutingRulePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Request routing rule of application gateway" + }, + "ApplicationGatewayPropertiesFormat": { + "properties": { + "sku": { + "$ref": "#/definitions/ApplicationGatewaySku", + "description": "Gets or sets sku of application gateway resource" + }, + "operationalState": { + "readOnly": true, + "type": "string", + "description": "Gets operational state of application gateway resource", + "enum": [ + "Stopped", + "Starting", + "Running", + "Stopping" + ], + "x-ms-enum": { + "name": "ApplicationGatewayOperationalState", + "modelAsString": true + } + }, + "gatewayIPConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayIPConfiguration" + }, + "description": "Gets or sets subnets of application gateway resource" + }, + "sslCertificates": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewaySslCertificate" + }, + "description": "Gets or sets ssl certificates of application gateway resource" + }, + "frontendIPConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayFrontendIPConfiguration" + }, + "description": "Gets or sets frontend IP addresses of application gateway resource" + }, + "frontendPorts": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayFrontendPort" + }, + "description": "Gets or sets frontend ports of application gateway resource" + }, + "backendAddressPools": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayBackendAddressPool" + }, + "description": "Gets or sets backend address pool of application gateway resource" + }, + "backendHttpSettingsCollection": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayBackendHttpSettings" + }, + "description": "Gets or sets backend http settings of application gateway resource" + }, + "httpListeners": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayHttpListener" + }, + "description": "Gets or sets HTTP listeners of application gateway resource" + }, + "requestRoutingRules": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayRequestRoutingRule" + }, + "description": "Gets or sets request routing rules of application gateway resource" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the ApplicationGateway resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the ApplicationGateway resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Application Gateway" + }, + "ApplicationGateway": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "ApplicationGateways resource" + }, + "ApplicationGatewayListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGateway" + }, + "description": "Gets a list of ApplicationGateways in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListLoadBalancers Api service call" + }, + "ExpressRouteCircuitSku": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets name of the sku." + }, + "tier": { + "type": "string", + "description": "Gets or sets tier of the sku.", + "enum": [ + "Standard", + "Premium" + ], + "x-ms-enum": { + "name": "ExpressRouteCircuitSkuTier", + "modelAsString": true + } + }, + "family": { + "type": "string", + "description": "Gets or sets family of the sku.", + "enum": [ + "UnlimitedData", + "MeteredData" + ], + "x-ms-enum": { + "name": "ExpressRouteCircuitSkuFamily", + "modelAsString": true + } + } + }, + "description": "Contains sku in an ExpressRouteCircuit" + }, + "AuthorizationPropertiesFormat": { + "properties": { + "authorizationKey": { + "type": "string", + "description": "Gets or sets the authorization key" + }, + "authorizationUseStatus": { + "type": "string", + "description": "Gets or sets AuthorizationUseStatus", + "enum": [ + "Available", + "InUse" + ], + "x-ms-enum": { + "name": "AuthorizationUseStatus", + "modelAsString": true + } + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "ExpressRouteCircuitAuthorization": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/AuthorizationPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Authorization in a ExpressRouteCircuit resource" + }, + "ExpressRouteCircuitPeeringConfig": { + "properties": { + "advertisedPublicPrefixes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the reference of AdvertisedPublicPrefixes" + }, + "advertisedPublicPrefixesState": { + "type": "string", + "description": "Gets or sets AdvertisedPublicPrefixState of the Peering resource ", + "enum": [ + "NotConfigured", + "Configuring", + "Configured", + "ValidationNeeded" + ], + "x-ms-enum": { + "name": "ExpressRouteCircuitPeeringAdvertisedPublicPrefixState", + "modelAsString": true + } + }, + "customerASN": { + "type": "integer", + "format": "int32", + "description": "Gets or Sets CustomerAsn of the peering." + }, + "routingRegistryName": { + "type": "string", + "description": "Gets or Sets RoutingRegistryName of the config." + } + }, + "description": "Specfies the peering config" + }, + "ExpressRouteCircuitStats": { + "properties": { + "bytesIn": { + "type": "integer", + "format": "int32", + "description": "Gets BytesIn of the peering." + }, + "bytesOut": { + "type": "integer", + "format": "int32", + "description": "Gets BytesOut of the peering." + } + }, + "description": "Contains Stats associated with the peering" + }, + "ExpressRouteCircuitPeeringPropertiesFormat": { + "properties": { + "peeringType": { + "type": "string", + "description": "Gets or sets PeeringType", + "enum": [ + "AzurePublicPeering", + "AzurePrivatePeering", + "MicrosoftPeering" + ], + "x-ms-enum": { + "name": "ExpressRouteCircuitPeeringType", + "modelAsString": true + } + }, + "state": { + "type": "string", + "description": "Gets or sets state of Peering", + "enum": [ + "Disabled", + "Enabled" + ], + "x-ms-enum": { + "name": "ExpressRouteCircuitPeeringState", + "modelAsString": true + } + }, + "azureASN": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the azure ASN" + }, + "peerASN": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the peer ASN" + }, + "primaryPeerAddressPrefix": { + "type": "string", + "description": "Gets or sets the primary address prefix" + }, + "secondaryPeerAddressPrefix": { + "type": "string", + "description": "Gets or sets the secondary address prefix" + }, + "primaryAzurePort": { + "type": "string", + "description": "Gets or sets the primary port" + }, + "secondaryAzurePort": { + "type": "string", + "description": "Gets or sets the secondary port" + }, + "sharedKey": { + "type": "string", + "description": "Gets or sets the shared key" + }, + "vlanId": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the vlan id" + }, + "microsoftPeeringConfig": { + "$ref": "#/definitions/ExpressRouteCircuitPeeringConfig", + "description": "Gets or sets the mircosoft peering config" + }, + "stats": { + "$ref": "#/definitions/ExpressRouteCircuitStats", + "description": "Gets or peering stats" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "ExpressRouteCircuitPeering": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ExpressRouteCircuitPeeringPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Peering in a ExpressRouteCircuit resource" + }, + "ExpressRouteCircuitServiceProviderProperties": { + "properties": { + "serviceProviderName": { + "type": "string", + "description": "Gets or sets serviceProviderName." + }, + "peeringLocation": { + "type": "string", + "description": "Gets or sets peering location." + }, + "bandwidthInMbps": { + "type": "integer", + "format": "int32", + "description": "Gets or sets BandwidthInMbps." + } + }, + "description": "Contains ServiceProviderProperties in an ExpressRouteCircuit" + }, + "ExpressRouteCircuitPropertiesFormat": { + "properties": { + "circuitProvisioningState": { + "type": "string", + "description": "Gets or sets CircuitProvisioningState state of the resource " + }, + "serviceProviderProvisioningState": { + "type": "string", + "description": "Gets or sets ServiceProviderProvisioningState state of the resource ", + "enum": [ + "NotProvisioned", + "Provisioning", + "Provisioned", + "Deprovisioning" + ], + "x-ms-enum": { + "name": "ServiceProviderProvisioningState", + "modelAsString": true + } + }, + "authorizations": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitAuthorization" + }, + "description": "Gets or sets list of authorizations" + }, + "peerings": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitPeering" + }, + "description": "Gets or sets list of peerings" + }, + "serviceKey": { + "type": "string", + "description": "Gets or sets ServiceKey" + }, + "serviceProviderNotes": { + "type": "string", + "description": "Gets or sets ServiceProviderNotes" + }, + "serviceProviderProperties": { + "$ref": "#/definitions/ExpressRouteCircuitServiceProviderProperties", + "description": "Gets or sets ServiceProviderProperties" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of ExpressRouteCircuit" + }, + "ExpressRouteCircuit": { + "properties": { + "sku": { + "$ref": "#/definitions/ExpressRouteCircuitSku", + "description": "Gets or sets sku" + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ExpressRouteCircuitPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "ExpressRouteCircuit resource" + }, + "ExpressRouteCircuitArpTable": { + "properties": { + "ipAddress": { + "type": "string", + "description": "Gets ipAddress." + }, + "macAddress": { + "type": "string", + "description": "Gets macAddress." + } + }, + "description": "The arp table associated with the ExpressRouteCircuit" + }, + "ExpressRouteCircuitsArpTableListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitArpTable" + }, + "description": "Gets List of ArpTable" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListArpTable associated with the Express Route Circuits Api" + }, + "ExpressRouteCircuitRoutesTable": { + "properties": { + "addressPrefix": { + "type": "string", + "description": "Gets AddressPrefix." + }, + "nextHopType": { + "type": "string", + "description": "Gets NextHopType.", + "enum": [ + "VirtualNetworkGateway", + "VnetLocal", + "Internet", + "VirtualAppliance", + "None" + ], + "x-ms-enum": { + "name": "RouteNextHopType", + "modelAsString": true + } + }, + "nextHopIP": { + "type": "string", + "description": "Gets NextHopIP." + }, + "asPath": { + "type": "string", + "description": "Gets AsPath." + } + }, + "required": [ + "nextHopType" + ], + "description": "The routes table associated with the ExpressRouteCircuit" + }, + "ExpressRouteCircuitsRoutesTableListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitRoutesTable" + }, + "description": "Gets List of RoutesTable" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListRoutesTable associated with the Express Route Circuits Api" + }, + "ExpressRouteCircuitsStatsListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitStats" + }, + "description": "Gets List of Stats" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListStats from Express Route Circuits Api service call" + }, + "ExpressRouteCircuitListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuit" + }, + "description": "Gets a list of ExpressRouteCircuits in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListExpressRouteCircuit Api service call" + }, + "ExpressRouteServiceProviderBandwidthsOffered": { + "properties": { + "offerName": { + "type": "string", + "description": "Gets the OfferName" + }, + "valueInMbps": { + "type": "integer", + "format": "int32", + "description": "Gets the ValueInMbps." + } + }, + "description": "Contains Bandwidths offered in ExpressRouteServiceProviders" + }, + "ExpressRouteServiceProviderPropertiesFormat": { + "properties": { + "peeringLocations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or list of peering locations" + }, + "bandwidthsOffered": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteServiceProviderBandwidthsOffered" + }, + "description": "Gets or bandwidths offered" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the resource " + } + }, + "description": "Properties of ExpressRouteServiceProvider" + }, + "ExpressRouteServiceProvider": { + "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." + }, + "properties": { + "$ref": "#/definitions/ExpressRouteServiceProviderPropertiesFormat" + } + }, + "description": "ExpressRouteResourceProvider object" + }, + "ExpressRouteServiceProviderListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteServiceProvider" + }, + "description": "Gets List of ExpressRouteResourceProvider" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListExpressRouteServiceProvider Api service call" + }, + "ExpressRouteCircuitPeeringListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitPeering" + }, + "description": "Gets the peerings in an express route circuit" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListPeering Api service callRetrieves all Peerings that belongs to an ExpressRouteCircuit" + }, + "FrontendIpConfigurationPropertiesFormat": { + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the IP address of the Load Balancer.This is only specified if a specific private IP address shall be allocated from the subnet specified in subnetRef" + }, + "privateIPAllocationMethod": { + "type": "string", + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic)", + "enum": [ + "Static", + "Dynamic" + ], + "x-ms-enum": { + "name": "IpAllocationMethod", + "modelAsString": true + } + }, + "subnet": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the subnet resource.A subnet from wher the load balancer gets its private frontend address " + }, + "publicIPAddress": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the PublicIP resource" + }, + "inboundNatRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Read only.Inbound rules URIs that use this frontend IP" + }, + "inboundNatPools": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Read only.Inbound pools URIs that use this frontend IP" + }, + "outboundNatRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Read only.Outbound rules URIs that use this frontend IP" + }, + "loadBalancingRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets Load Balancing rules URIs that use this frontend IP" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Frontend IP Configuration of the load balancer" + }, + "FrontendIpConfiguration": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/FrontendIpConfigurationPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Frontend IP address of the load balancer" + }, + "BackendAddressPoolPropertiesFormat": { + "properties": { + "backendIPConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets collection of references to IPs defined in NICs" + }, + "loadBalancingRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets Load Balancing rules that use this Backend Address Pool" + }, + "outboundNatRule": { + "$ref": "#/definitions/SubResource", + "description": "Gets outbound rules that use this Backend Address Pool" + }, + "provisioningState": { + "type": "string", + "description": "Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of BackendAddressPool" + }, + "BackendAddressPool": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/BackendAddressPoolPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Pool of backend IP addresseses" + }, + "LoadBalancingRulePropertiesFormat": { + "properties": { + "frontendIPConfiguration": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets a reference to frontend IP Addresses" + }, + "backendAddressPool": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets a reference to a pool of DIPs. Inbound traffic is randomly load balanced across IPs in the backend IPs" + }, + "probe": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the load balancer probe used by the Load Balancing rule." + }, + "protocol": { + "type": "string", + "description": "Gets or sets the transport protocol for the external endpoint. Possible values are Udp or Tcp", + "enum": [ + "Udp", + "Tcp" + ], + "x-ms-enum": { + "name": "TransportProtocol", + "modelAsString": true + } + }, + "loadDistribution": { + "type": "string", + "description": "Gets or sets the load distribution policy for this rule", + "enum": [ + "Default", + "SourceIP", + "SourceIPProtocol" + ], + "x-ms-enum": { + "name": "LoadDistribution", + "modelAsString": true + } + }, + "frontendPort": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the port for the external endpoint. You can specify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "backendPort": { + "type": "integer", + "format": "int32", + "description": "Gets or sets a port used for internal connections on the endpoint. The localPort attribute maps the eternal port of the endpoint to an internal port on a role. This is useful in scenarios where a role must communicate to an internal compotnent on a port that is different from the one that is exposed externally. If not specified, the value of localPort is the same as the port attribute. Set the value of localPort to '*' to automatically assign an unallocated port that is discoverable using the runtime API" + }, + "idleTimeoutInMinutes": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the timeout for the Tcp idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This emlement is only used when the protocol is set to Tcp" + }, + "enableFloatingIP": { + "type": "boolean", + "description": "Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn availability Group. This setting is required when using the SQL Always ON availability Groups in SQL server. This setting can't be changed after you create the endpoint" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "backendAddressPool", + "protocol", + "frontendPort", + "enableFloatingIP" + ], + "description": "Properties of the load balancer" + }, + "LoadBalancingRule": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/LoadBalancingRulePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Rules of the load balancer" + }, + "ProbePropertiesFormat": { + "properties": { + "loadBalancingRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets Load balancer rules that use this probe" + }, + "protocol": { + "type": "string", + "description": "Gets or sets the protocol of the end point. Possible values are http pr Tcp. If Tcp is specified, a received ACK is required for the probe to be successful. If http is specified,a 200 OK response from the specifies URI is required for the probe to be successful", + "enum": [ + "Http", + "Tcp" + ], + "x-ms-enum": { + "name": "ProbeProtocol", + "modelAsString": true + } + }, + "port": { + "type": "integer", + "format": "int32", + "description": "Gets or sets Port for communicating the probe. Possible values range from 1 to 65535, inclusive." + }, + "intervalInSeconds": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5" + }, + "numberOfProbes": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endponints to be taken out of rotation faster or slower than the typical times used in Azure. " + }, + "requestPath": { + "type": "string", + "description": "Gets or sets the URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "port" + ] + }, + "Probe": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ProbePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Load balancer Probe" + }, + "InboundNatRulePropertiesFormat": { + "properties": { + "frontendIPConfiguration": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets a reference to frontend IP Addresses" + }, + "backendIPConfiguration": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets a reference to a private ip address defined on a NetworkInterface of a VM. Traffic sent to frontendPort of each of the frontendIPConfigurations is forwarded to the backed IP" + }, + "protocol": { + "type": "string", + "description": "Gets or sets the transport potocol for the external endpoint. Possible values are Udp or Tcp", + "enum": [ + "Udp", + "Tcp" + ], + "x-ms-enum": { + "name": "TransportProtocol", + "modelAsString": true + } + }, + "frontendPort": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the port for the external endpoint. You can spcify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "backendPort": { + "type": "integer", + "format": "int32", + "description": "Gets or sets a port used for internal connections on the endpoint. The localPort attribute maps the eternal port of the endpoint to an internal port on a role. This is useful in scenarios where a role must communicate to an internal compotnent on a port that is different from the one that is exposed externally. If not specified, the value of localPort is the same as the port attribute. Set the value of localPort to '*' to automatically assign an unallocated port that is discoverable using the runtime API" + }, + "idleTimeoutInMinutes": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the timeout for the Tcp idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This emlement is only used when the protocol is set to Tcp" + }, + "enableFloatingIP": { + "type": "boolean", + "description": "Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn availability Group. This setting is required when using the SQL Always ON availability Groups in SQL server. This setting can't be changed after you create the endpoint" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "frontendPort", + "enableFloatingIP" + ], + "description": "Properties of Inbound NAT rule" + }, + "InboundNatRule": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/InboundNatRulePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Inbound NAT rule of the loadbalancer" + }, + "InboundNatPoolPropertiesFormat": { + "properties": { + "frontendIPConfiguration": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets a reference to frontend IP Addresses" + }, + "protocol": { + "type": "string", + "description": "Gets or sets the transport potocol for the external endpoint. Possible values are Udp or Tcp", + "enum": [ + "Udp", + "Tcp" + ], + "x-ms-enum": { + "name": "TransportProtocol", + "modelAsString": true + } + }, + "frontendPortRangeStart": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the starting port range for the NAT pool. You can spcify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "frontendPortRangeEnd": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the ending port range for the NAT pool. You can spcify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "backendPort": { + "type": "integer", + "format": "int32", + "description": "Gets or sets a port used for internal connections on the endpoint. The localPort attribute maps the eternal port of the endpoint to an internal port on a role. This is useful in scenarios where a role must communicate to an internal compotnent on a port that is different from the one that is exposed externally. If not specified, the value of localPort is the same as the port attribute. Set the value of localPort to '*' to automatically assign an unallocated port that is discoverable using the runtime API" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "frontendPortRangeStart", + "frontendPortRangeEnd", + "backendPort" + ], + "description": "Properties of Inbound NAT pool" + }, + "InboundNatPool": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/InboundNatPoolPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Inbound NAT pool of the loadbalancer" + }, + "OutboundNatRulePropertiesFormat": { + "properties": { + "allocatedOutboundPorts": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the number of outbound ports to be used for SNAT" + }, + "frontendIPConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets or sets Frontend IP addresses of the load balancer" + }, + "backendAddressPool": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets a reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "allocatedOutboundPorts", + "backendAddressPool" + ], + "description": "Outbound NAT pool of the loadbalancer" + }, + "OutboundNatRule": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/OutboundNatRulePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Outbound NAT pool of the loadbalancer" + }, + "LoadBalancerPropertiesFormat": { + "properties": { + "frontendIPConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/FrontendIpConfiguration" + }, + "description": "Gets or sets frontend IP addresses of the load balancer" + }, + "backendAddressPools": { + "type": "array", + "items": { + "$ref": "#/definitions/BackendAddressPool" + }, + "description": "Gets or sets Pools of backend IP addresseses" + }, + "loadBalancingRules": { + "type": "array", + "items": { + "$ref": "#/definitions/LoadBalancingRule" + }, + "description": "Gets or sets loadbalancing rules" + }, + "probes": { + "type": "array", + "items": { + "$ref": "#/definitions/Probe" + }, + "description": "Gets or sets list of Load balancer probes" + }, + "inboundNatRules": { + "type": "array", + "items": { + "$ref": "#/definitions/InboundNatRule" + }, + "description": "Gets or sets list of inbound rules" + }, + "inboundNatPools": { + "type": "array", + "items": { + "$ref": "#/definitions/InboundNatPool" + }, + "description": "Gets or sets inbound NAT pools" + }, + "outboundNatRules": { + "type": "array", + "items": { + "$ref": "#/definitions/OutboundNatRule" + }, + "description": "Gets or sets outbound NAT rules" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the Load balancer resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Load Balancer" + }, + "LoadBalancer": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/LoadBalancerPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "LoadBalancer resource" + }, + "LoadBalancerListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "description": "Gets a list of LoadBalancers in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListLoadBalancers Api service call" + }, + "AddressSpace": { + "properties": { + "addressPrefixes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets List of address blocks reserved for this virtual network in CIDR notation" + } + }, + "description": "AddressSpace contains an array of IP address ranges that can be used by subnets" + }, + "LocalNetworkGatewayPropertiesFormat": { + "properties": { + "localNetworkAddressSpace": { + "$ref": "#/definitions/AddressSpace", + "description": "Local network site Address space" + }, + "gatewayIpAddress": { + "type": "string", + "description": "IP address of local network gateway." + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the LocalNetworkGateway resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the LocalNetworkGateway resource Updating/Deleting/Failed" + } + }, + "description": "LocalNetworkGateway properties" + }, + "LocalNetworkGateway": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/LocalNetworkGatewayPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "A common class for general resource information" + }, + "LocalNetworkGatewayListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/LocalNetworkGateway" + }, + "description": "Gets List of LocalNetworkGateways that exists in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListLocalNetworkGateways Api service call" + }, + "NetworkInterfaceIpConfigurationPropertiesFormat": { + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the Network Interface IP Configuration" + }, + "privateIPAllocationMethod": { + "type": "string", + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic)", + "enum": [ + "Static", + "Dynamic" + ], + "x-ms-enum": { + "name": "IpAllocationMethod", + "modelAsString": true + } + }, + "subnet": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the PublicIP resource" + }, + "loadBalancerBackendAddressPools": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets or sets the reference of LoadBalancerBackendAddressPool resource" + }, + "loadBalancerInboundNatRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets or sets list of references of LoadBalancerInboundNatRules" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of IPConfiguration" + }, + "NetworkInterfaceIpConfiguration": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/NetworkInterfaceIpConfigurationPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "IPConfiguration in a NetworkInterface" + }, + "NetworkInterfaceDnsSettings": { + "properties": { + "dnsServers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets list of DNS servers IP addresses" + }, + "appliedDnsServers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets list of Applied DNS servers IP addresses" + }, + "internalDnsNameLabel": { + "type": "string", + "description": "Gets or sets the Internal DNS name" + }, + "internalFqdn": { + "type": "string", + "description": "Gets or sets full IDNS name in the form, DnsName.VnetId.ZoneId.TopleveSuffix. This is set when the NIC is associated to a VM" + } + }, + "description": "Dns Settings of a network interface" + }, + "NetworkInterfacePropertiesFormat": { + "properties": { + "virtualMachine": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of a VirtualMachine" + }, + "networkSecurityGroup": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the NetworkSecurityGroup resource" + }, + "ipConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterfaceIpConfiguration" + }, + "description": "Gets or sets list of IPConfigurations of the NetworkInterface" + }, + "dnsSettings": { + "$ref": "#/definitions/NetworkInterfaceDnsSettings", + "description": "Gets or sets DNS Settings in NetworkInterface" + }, + "macAddress": { + "type": "string", + "description": "Gets the MAC Address of the network interface" + }, + "primary": { + "type": "boolean", + "description": "Gets whether this is a primary NIC on a virtual machine" + }, + "enableIPForwarding": { + "type": "boolean", + "description": "Gets or sets whether IPForwarding is enabled on the NIC" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the network interface resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "NetworkInterface properties. " + }, + "NetworkInterface": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/NetworkInterfacePropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "A NetworkInterface in a resource group" + }, + "NetworkInterfaceListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "description": "Gets or sets list of NetworkInterfaces in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListNetworkInterface Api service call" + }, + "RoutePropertiesFormat": { + "properties": { + "addressPrefix": { + "type": "string", + "description": "Gets or sets the destination CIDR to which the route applies." + }, + "nextHopType": { + "type": "string", + "description": "Gets or sets the type of Azure hop the packet should be sent to.", + "enum": [ + "VirtualNetworkGateway", + "VnetLocal", + "Internet", + "VirtualAppliance", + "None" + ], + "x-ms-enum": { + "name": "RouteNextHopType", + "modelAsString": true + } + }, + "nextHopIpAddress": { + "type": "string", + "description": "Gets or sets the IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance." + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the resource Updating/Deleting/Failed" + } + }, + "required": [ + "nextHopType" + ], + "description": "Route resource" + }, + "Route": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/RoutePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Route resource" + }, + "RouteTablePropertiesFormat": { + "properties": { + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/Route" + }, + "description": "Gets or sets Routes in a Route Table" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets collection of references to subnets" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the resource Updating/Deleting/Failed" + } + }, + "description": "Route Table resource" + }, + "RouteTable": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/RouteTablePropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "RouteTable resource" + }, + "RouteTableListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/RouteTable" + }, + "description": "Gets List of RouteTables in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListRouteTable Api servive call" + }, + "SecurityRulePropertiesFormat": { + "properties": { + "description": { + "type": "string", + "description": "Gets or sets a description for this rule. Restricted to 140 chars." + }, + "protocol": { + "type": "string", + "description": "Gets or sets Network protocol this rule applies to. Can be Tcp, Udp or All(*).", + "enum": [ + "Tcp", + "Udp", + "*" + ], + "x-ms-enum": { + "name": "SecurityRuleProtocol", + "modelAsString": true + } + }, + "sourcePortRange": { + "type": "string", + "description": "Gets or sets Source Port or Range. Integer or range between 0 and 65535. Asterix '*' can also be used to match all ports." + }, + "destinationPortRange": { + "type": "string", + "description": "Gets or sets Destination Port or Range. Integer or range between 0 and 65535. Asterix '*' can also be used to match all ports." + }, + "sourceAddressPrefix": { + "type": "string", + "description": "Gets or sets source address prefix. CIDR or source IP range. Asterix '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. " + }, + "destinationAddressPrefix": { + "type": "string", + "description": "Gets or sets destination address prefix. CIDR or source IP range. Asterix '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. " + }, + "access": { + "type": "string", + "description": "Gets or sets network traffic is allowed or denied. Possible values are 'Allow' and 'Deny'", + "enum": [ + "Allow", + "Deny" + ], + "x-ms-enum": { + "name": "SecurityRuleAccess", + "modelAsString": true + } + }, + "priority": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule." + }, + "direction": { + "type": "string", + "description": "Gets or sets the direction of the rule.InBound or Outbound. The direction specifies if rule will be evaluated on incoming or outcoming traffic.", + "enum": [ + "Inbound", + "Outbound" + ], + "x-ms-enum": { + "name": "SecurityRuleDirection", + "modelAsString": true + } + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "sourceAddressPrefix", + "destinationAddressPrefix", + "access", + "direction" + ] + }, + "SecurityRule": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/SecurityRulePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Network security rule" + }, + "NetworkSecurityGroupPropertiesFormat": { + "properties": { + "securityRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SecurityRule" + }, + "description": "Gets or sets Security rules of network security group" + }, + "defaultSecurityRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SecurityRule" + }, + "description": "Gets or sets Default security rules of network security group" + }, + "networkInterfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets collection of references to Network Interfaces" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets collection of references to subnets" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the network security group resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Network Security Group resource" + }, + "NetworkSecurityGroup": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/NetworkSecurityGroupPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "NetworkSecurityGroup resource" + }, + "NetworkSecurityGroupListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkSecurityGroup" + }, + "description": "Gets List of NetworkSecurityGroups in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListNetworkSecurityGroups Api servive call" + }, + "PublicIpAddressDnsSettings": { + "properties": { + "domainNameLabel": { + "type": "string", + "description": "Gets or sets the Domain name label.The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system." + }, + "fqdn": { + "type": "string", + "description": "Gets the FQDN, Fully qualified domain name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone." + }, + "reverseFqdn": { + "type": "string", + "description": "Gets or Sests the Reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. " + } + }, + "description": "Contains FQDN of the DNS record associated with the public IP address" + }, + "PublicIpAddressPropertiesFormat": { + "properties": { + "publicIPAllocationMethod": { + "type": "string", + "description": "Gets or sets PublicIP allocation method (Static/Dynamic)", + "enum": [ + "Static", + "Dynamic" + ], + "x-ms-enum": { + "name": "IpAllocationMethod", + "modelAsString": true + } + }, + "ipConfiguration": { + "$ref": "#/definitions/SubResource", + "description": "Gets a reference to the network interface IP configurations using this public IP address" + }, + "dnsSettings": { + "$ref": "#/definitions/PublicIpAddressDnsSettings", + "description": "Gets or sets FQDN of the DNS record associated with the public IP address" + }, + "ipAddress": { + "type": "string", + "description": "Gets the assigned public IP address" + }, + "idleTimeoutInMinutes": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the Idletimeout of the public IP address" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "publicIPAllocationMethod" + ], + "description": "PublicIpAddress properties" + }, + "PublicIpAddress": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/PublicIpAddressPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "PublicIPAddress resource" + }, + "PublicIpAddressListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/PublicIpAddress" + }, + "description": "Gets List of publicIP addresses that exists in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListPublicIpAddresses Api service call" + }, + "RouteListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Route" + }, + "description": "Gets List of Routes in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListRoute Api servive call" + }, + "SecurityRuleListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/SecurityRule" + }, + "description": "Gets security rules in a network security group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListSecurityRule Api service callRetrieves all security rules that belongs to a network security group" + }, + "AuthorizationListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitAuthorization" + }, + "description": "Gets the authorizations in an ExpressRoute Circuit" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListAuthorizations Api service callRetrieves all authorizations that belongs to an ExpressRouteCircuit" + }, + "SubnetPropertiesFormat": { + "properties": { + "addressPrefix": { + "type": "string", + "description": "Gets or sets Address prefix for the subnet." + }, + "networkSecurityGroup": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the NetworkSecurityGroup resource" + }, + "routeTable": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the RouteTable resource" + }, + "ipConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets array of references to the network interface IP configurations using subnet" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "addressPrefix" + ] + }, + "Subnet": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/SubnetPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Subnet in a VirtualNework resource" + }, + "SubnetListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + }, + "description": "Gets the subnets in a virtual network" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListSubnets Api service callRetrieves all subnet that belongs to a virtual network" + }, + "UsageName": { + "properties": { + "value": { + "type": "string", + "description": "Gets or sets a string describing the resource name." + }, + "localizedValue": { + "type": "string", + "description": "Gets or sets a localized string describing the resource name." + } + }, + "description": "The Usage Names." + }, + "Usage": { + "properties": { + "unit": { + "type": "string", + "description": "Gets or sets an enum describing the unit of measurement.", + "enum": [ + "Count" + ], + "x-ms-enum": { + "name": "UsageUnit", + "modelAsString": true + } + }, + "currentValue": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the current value of the usage." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Gets or sets the limit of usage." + }, + "name": { + "$ref": "#/definitions/UsageName", + "description": "Gets or sets the name of the type of usage." + } + }, + "required": [ + "unit", + "currentValue", + "limit", + "name" + ], + "description": "Describes Network Resource Usage." + }, + "UsagesListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Usage" + }, + "description": "Gets or sets the list Network Resource Usages." + } + }, + "description": "The List Usages operation response." + }, + "VirtualNetworkGatewayIpConfigurationPropertiesFormat": { + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the Network Interface IP Configuration" + }, + "privateIPAllocationMethod": { + "type": "string", + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic)", + "enum": [ + "Static", + "Dynamic" + ], + "x-ms-enum": { + "name": "IpAllocationMethod", + "modelAsString": true + } + }, + "subnet": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of VirtualNetworkGatewayIPConfiguration" + }, + "VirtualNetworkGatewayIpConfiguration": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualNetworkGatewayIpConfigurationPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "IpConfiguration for Virtual network gateway" + }, + "VirtualNetworkGatewayPropertiesFormat": { + "properties": { + "ipConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualNetworkGatewayIpConfiguration" + }, + "description": "IpConfigurations for Virtual network gateway." + }, + "gatewayType": { + "type": "string", + "description": "The type of this virtual network gateway.", + "enum": [ + "Vpn", + "ExpressRoute" + ], + "x-ms-enum": { + "name": "VirtualNetworkGatewayType", + "modelAsString": true + } + }, + "vpnType": { + "type": "string", + "description": "The type of this virtual network gateway.", + "enum": [ + "PolicyBased", + "RouteBased" + ], + "x-ms-enum": { + "name": "VpnType", + "modelAsString": true + } + }, + "enableBgp": { + "type": "boolean", + "description": "EnableBgp Flag" + }, + "gatewayDefaultSite": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the LocalNetworkGateway resource which represents Local network site having default routes. Assign Null value in case of removing existing default site setting." + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the VirtualNetworkGateway resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the VirtualNetworkGateway resource Updating/Deleting/Failed" + } + }, + "description": "VirtualNeworkGateay properties" + }, + "VirtualNetworkGateway": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualNetworkGatewayPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "A common class for general resource information" + }, + "VirtualNetworkGatewayConnectionPropertiesFormat": { + "properties": { + "virtualNetworkGateway1": { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + "virtualNetworkGateway2": { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + "localNetworkGateway2": { + "$ref": "#/definitions/LocalNetworkGateway" + }, + "connectionType": { + "type": "string", + "description": "Gateway connection type -Ipsec/Dedicated/VpnClient/Vnet2Vnet", + "enum": [ + "IPsec", + "Vnet2Vnet", + "ExpressRoute", + "VPNClient" + ], + "x-ms-enum": { + "name": "VirtualNetworkGatewayConnectionType", + "modelAsString": true + } + }, + "routingWeight": { + "type": "integer", + "format": "int32", + "description": "The Routing weight." + }, + "sharedKey": { + "type": "string", + "description": "The Ipsec share key." + }, + "connectionStatus": { + "type": "string", + "description": "Virtual network Gateway connection status", + "enum": [ + "Unknown", + "Connecting", + "Connected", + "NotConnected" + ], + "x-ms-enum": { + "name": "VirtualNetworkGatewayConnectionStatus", + "modelAsString": true + } + }, + "egressBytesTransferred": { + "type": "integer", + "format": "int64", + "description": "The Egress Bytes Transferred in this connection" + }, + "ingressBytesTransferred": { + "type": "integer", + "format": "int64", + "description": "The Ingress Bytes Transferred in this connection" + }, + "peer": { + "$ref": "#/definitions/SubResource", + "description": "The reference to peerings resource." + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the VirtualNetworkGatewayConnection resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the VirtualNetworkGatewayConnection resource Updating/Deleting/Failed" + } + }, + "description": "VirtualNeworkGatewayConnection properties" + }, + "VirtualNetworkGatewayConnection": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualNetworkGatewayConnectionPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "A common class for general resource information" + }, + "ConnectionSharedKey": { + "properties": { + "value": { + "type": "string", + "description": "The virtual network connection shared key value" + } + }, + "description": "Response for GetConnectionSharedKey Api servive call" + }, + "VirtualNetworkGatewayConnectionListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualNetworkGatewayConnection" + }, + "description": "Gets List of VirtualNetworkGatewayConnections that exists in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListVirtualNetworkGatewayConnections Api service call" + }, + "ConnectionResetSharedKey": { + "properties": { + "keyLength": { + "type": "integer", + "format": "int64", + "description": "The virtual network connection reset shared key length" + } + } + }, + "VirtualNetworkGatewayListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + "description": "Gets List of VirtualNetworkGateways that exists in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListVirtualNetworkGateways Api service call" + }, + "DhcpOptions": { + "properties": { + "dnsServers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets list of DNS servers IP addresses" + } + }, + "description": "DHCPOptions contains an array of DNS servers available to VMs deployed in the virtual networkStandard DHCP option for a subnet overrides VNET DHCP options." + }, + "VirtualNetworkPropertiesFormat": { + "properties": { + "addressSpace": { + "$ref": "#/definitions/AddressSpace", + "description": "Gets or sets AddressSpace that contains an array of IP address ranges that can be used by subnets" + }, + "dhcpOptions": { + "$ref": "#/definitions/DhcpOptions", + "description": "Gets or sets DHCPOptions that contains an array of DNS servers available to VMs deployed in the virtual network" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + }, + "description": "Gets or sets List of subnets in a VirtualNetwork" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the VirtualNetwork resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "VirtualNetwork": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualNetworkPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "Virtual Network resource" + }, + "VirtualNetworkListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualNetwork" + }, + "description": "Gets list of VirtualNetworks in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListVirtualNetworks Api servive call" + }, + "DnsNameAvailabilityResult": { + "properties": { + "available": { + "type": "boolean", + "description": "Domain availability (True/False)" + } + }, + "description": "Response for CheckDnsNameAvailability Api servive call" + }, + "ErrorDetails": { + "properties": { + "code": { + "type": "string" + }, + "target": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "Error": { + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "target": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorDetails" + } + }, + "innerError": { + "type": "string" + } + } + }, + "AzureAsyncOperationResult": { + "properties": { + "status": { + "type": "string", + "description": "Status of the AzureAsuncOperation", + "enum": [ + "InProgress", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "NetworkOperationStatus", + "modelAsString": true + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "description": "The response body contains the status of the specified asynchronous operation, indicating whether it has succeeded, is inprogress, or has failed. Note that this status is distinct from the HTTP status code returned for the Get Operation Status operation itself. If the asynchronous operation succeeded, the response body includes the HTTP status code for the successful request. If the asynchronous operation failed, the response body includes the HTTP status code for the failed request and error information regarding the failure." + }, + "Resource": { + "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-azure-resource": true + }, + "SubResource": { + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + } + }, + "x-ms-azure-resource": 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 diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Network/2015-06-15/network.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Network/2015-06-15/network.json new file mode 100644 index 0000000000000..2146e81b02a91 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Network/2015-06-15/network.json @@ -0,0 +1,7187 @@ +{ + "swagger": "2.0", + "info": { + "title": "NetworkManagementClient", + "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resrources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.", + "version": "2015-06-15" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}": { + "delete": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_Delete", + "description": "The delete applicationgateway operation deletes the specified applicationgateway.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "applicationGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the applicationgateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + }, + "204": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_Get", + "description": "The Get applicationgateway operation retreives information about the specified applicationgateway.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "applicationGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the applicationgateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ApplicationGateway" + } + } + } + }, + "put": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_CreateOrUpdate", + "description": "The Put ApplicationGateway operation creates/updates a ApplicationGateway", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "applicationGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the ApplicationGateway." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ApplicationGateway" + }, + "description": "Parameters supplied to the create/delete ApplicationGateway operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/ApplicationGateway" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ApplicationGateway" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways": { + "get": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_List", + "description": "The List ApplicationGateway opertion retrieves all the applicationgateways in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ApplicationGatewayListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/applicationGateways": { + "get": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_ListAll", + "description": "The List applicationgateway opertion retrieves all the applicationgateways in a subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ApplicationGatewayListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/start": { + "post": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_Start", + "description": "The Start ApplicationGateway operation starts application gatewayin the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "applicationGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the application gateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + }, + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationGateways/{applicationGatewayName}/stop": { + "post": { + "tags": [ + "ApplicationGateways" + ], + "operationId": "ApplicationGateways_Stop", + "description": "The STOP ApplicationGateway operation stops application gatewayin the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "applicationGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the application gateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + }, + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/authorizations/{authorizationName}": { + "delete": { + "tags": [ + "ExpressRouteCircuitAuthorizations" + ], + "operationId": "ExpressRouteCircuitAuthorizations_Delete", + "description": "The delete authorization operation deletes the specified authorization from the specified ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route circuit." + }, + { + "name": "authorizationName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the authorization." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + }, + "200": { + "description": "" + }, + "204": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "ExpressRouteCircuitAuthorizations" + ], + "operationId": "ExpressRouteCircuitAuthorizations_Get", + "description": "The GET authorization operation retrieves the specified authorization from the specified ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route circuit." + }, + { + "name": "authorizationName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the authorization." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitAuthorization" + } + } + } + }, + "put": { + "tags": [ + "ExpressRouteCircuitAuthorizations" + ], + "operationId": "ExpressRouteCircuitAuthorizations_CreateOrUpdate", + "description": "The Put Authorization operation creates/updates an authorization in thespecified ExpressRouteCircuits", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route circuit." + }, + { + "name": "authorizationName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the authorization." + }, + { + "name": "authorizationParameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitAuthorization" + }, + "description": "Parameters supplied to the create/update ExpressRouteCircuitAuthorization operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitAuthorization" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitAuthorization" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/authorizations": { + "get": { + "tags": [ + "ExpressRouteCircuitAuthorizations" + ], + "operationId": "ExpressRouteCircuitAuthorizations_List", + "description": "The List authorization operation retrieves all the authorizations in an ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the curcuit." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/AuthorizationListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings/{peeringName}": { + "delete": { + "tags": [ + "ExpressRouteCircuitPeerings" + ], + "operationId": "ExpressRouteCircuitPeerings_Delete", + "description": "The delete peering operation deletes the specified peering from the ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route circuit." + }, + { + "name": "peeringName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the peering." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + }, + "202": { + "description": "" + }, + "204": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "ExpressRouteCircuitPeerings" + ], + "operationId": "ExpressRouteCircuitPeerings_Get", + "description": "The GET peering operation retrieves the specified authorization from the ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route circuit." + }, + { + "name": "peeringName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the peering." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitPeering" + } + } + } + }, + "put": { + "tags": [ + "ExpressRouteCircuitPeerings" + ], + "operationId": "ExpressRouteCircuitPeerings_CreateOrUpdate", + "description": "The Put Pering operation creates/updates an peering in the specified ExpressRouteCircuits", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route circuit." + }, + { + "name": "peeringName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the peering." + }, + { + "name": "peeringParameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitPeering" + }, + "description": "Parameters supplied to the create/update ExpressRouteCircuit Peering operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitPeering" + } + }, + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitPeering" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/peerings": { + "get": { + "tags": [ + "ExpressRouteCircuitPeerings" + ], + "operationId": "ExpressRouteCircuitPeerings_List", + "description": "The List peering operation retrieves all the peerings in an ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the curcuit." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitPeeringListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/": { + "delete": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_Delete", + "description": "The delete ExpressRouteCircuit operation deletes the specified ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the express route Circuit." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_Get", + "description": "The Get ExpressRouteCircuit operation retreives information about the specified ExpressRouteCircuit.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the circuit." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuit" + } + } + } + }, + "put": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_CreateOrUpdate", + "description": "The Put ExpressRouteCircuit operation creates/updates a ExpressRouteCircuit", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the circuit." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressRouteCircuit" + }, + "description": "Parameters supplied to the create/delete ExpressRouteCircuit operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuit" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuit" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/arpTable": { + "get": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_ListArpTable", + "description": "The ListArpTable from ExpressRouteCircuit opertion retrieves the currently advertised arp table associated with the ExpressRouteCircuits in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the circuit." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitsArpTableListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/routesTable": { + "get": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_ListRoutesTable", + "description": "The ListRoutesTable from ExpressRouteCircuit opertion retrieves the currently advertised routes table associated with the ExpressRouteCircuits in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the circuit." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitsRoutesTableListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}/stats": { + "get": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_ListStats", + "description": "The Liststats ExpressRouteCircuit opertion retrieves all the stats from a ExpressRouteCircuits in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "circuitName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the loadBalancer." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitsStatsListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits": { + "get": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_List", + "description": "The List ExpressRouteCircuit opertion retrieves all the ExpressRouteCircuits in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/expressRouteCircuits": { + "get": { + "tags": [ + "ExpressRouteCircuits" + ], + "operationId": "ExpressRouteCircuits_ListAll", + "description": "The List ExpressRouteCircuit opertion retrieves all the ExpressRouteCircuits in a subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteCircuitListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/expressRouteServiceProviders": { + "get": { + "tags": [ + "ExpressRouteServiceProviders" + ], + "operationId": "ExpressRouteServiceProviders_List", + "description": "The List ExpressRouteServiceProvider opertion retrieves all the available ExpressRouteServiceProviders.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ExpressRouteServiceProviderListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}": { + "delete": { + "tags": [ + "LoadBalancers" + ], + "operationId": "LoadBalancers_Delete", + "description": "The delete loadbalancer operation deletes the specified loadbalancer.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "loadBalancerName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the loadBalancer." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "LoadBalancers" + ], + "operationId": "LoadBalancers_Get", + "description": "The Get ntework interface operation retreives information about the specified network interface.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "loadBalancerName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the loadBalancer." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "expand references resources." + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LoadBalancer" + } + } + } + }, + "put": { + "tags": [ + "LoadBalancers" + ], + "operationId": "LoadBalancers_CreateOrUpdate", + "description": "The Put LoadBalancer operation creates/updates a LoadBalancer", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "loadBalancerName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the loadBalancer." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/LoadBalancer" + }, + "description": "Parameters supplied to the create/delete LoadBalancer operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/LoadBalancer" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LoadBalancer" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/loadBalancers": { + "get": { + "tags": [ + "LoadBalancers" + ], + "operationId": "LoadBalancers_ListAll", + "description": "The List loadBalancer opertion retrieves all the loadbalancers in a subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LoadBalancerListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers": { + "get": { + "tags": [ + "LoadBalancers" + ], + "operationId": "LoadBalancers_List", + "description": "The List loadBalancer opertion retrieves all the loadbalancers in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LoadBalancerListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/localNetworkGateways/{localNetworkGatewayName}": { + "put": { + "tags": [ + "LocalNetworkGateways" + ], + "operationId": "LocalNetworkGateways_CreateOrUpdate", + "description": "The Put LocalNetworkGateway operation creates/updates a local network gateway in the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "localNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the local network gateway." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/LocalNetworkGateway" + }, + "description": "Parameters supplied to the Begin Create or update Local Network Gateway operation through Network resource provider." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/LocalNetworkGateway" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LocalNetworkGateway" + } + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "LocalNetworkGateways" + ], + "operationId": "LocalNetworkGateways_Get", + "description": "The Get LocalNetworkGateway operation retrieves information about the specified local network gateway through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "localNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the local network gateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LocalNetworkGateway" + } + } + } + }, + "delete": { + "tags": [ + "LocalNetworkGateways" + ], + "operationId": "LocalNetworkGateways_Delete", + "description": "The Delete LocalNetworkGateway operation deletes the specifed local network Gateway through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "localNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the local network gateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "200": { + "description": "" + }, + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/localNetworkGateways": { + "get": { + "tags": [ + "LocalNetworkGateways" + ], + "operationId": "LocalNetworkGateways_List", + "description": "The List LocalNetworkGateways opertion retrieves all the local network gateways stored.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/LocalNetworkGatewayListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}": { + "delete": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_Delete", + "description": "The delete netwokInterface operation deletes the specified netwokInterface.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkInterfaceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network interface." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_Get", + "description": "The Get ntework interface operation retreives information about the specified network interface.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkInterfaceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network interface." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "expand references resources." + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterface" + } + } + } + }, + "put": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_CreateOrUpdate", + "description": "The Put NetworkInterface operation creates/updates a networkInterface", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkInterfaceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network interface." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/NetworkInterface" + }, + "description": "Parameters supplied to the create/update NetworkInterface operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterface" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterface" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces": { + "get": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_ListVirtualMachineScaleSetVMNetworkInterfaces", + "description": "The list network interface operation retrieves information about all network interfaces in a virtual machine from a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualMachineScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "virtualmachineIndex", + "in": "path", + "required": true, + "type": "string", + "description": "The virtual machine index." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterfaceListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/networkInterfaces": { + "get": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_ListVirtualMachineScaleSetNetworkInterfaces", + "description": "The list network interface operation retrieves information about all network interfaces in a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualMachineScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterfaceListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines/{virtualmachineIndex}/networkInterfaces/{networkInterfaceName}": { + "get": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_GetVirtualMachineScaleSetNetworkInterface", + "description": "The Get ntework interface operation retreives information about the specified network interface in a virtual machine scale set.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualMachineScaleSetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual machine scale set." + }, + { + "name": "virtualmachineIndex", + "in": "path", + "required": true, + "type": "string", + "description": "The virtual machine index." + }, + { + "name": "networkInterfaceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network interface." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "expand references resources." + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterface" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkInterfaces": { + "get": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_ListAll", + "description": "The List networkInterfaces opertion retrieves all the networkInterfaces in a subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterfaceListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces": { + "get": { + "tags": [ + "NetworkInterfaces" + ], + "operationId": "NetworkInterfaces_List", + "description": "The List networkInterfaces opertion retrieves all the networkInterfaces in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkInterfaceListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}": { + "delete": { + "tags": [ + "NetworkSecurityGroups" + ], + "operationId": "NetworkSecurityGroups_Delete", + "description": "The Delete NetworkSecurityGroup operation deletes the specifed network security group", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + }, + "200": { + "description": "" + }, + "204": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "NetworkSecurityGroups" + ], + "operationId": "NetworkSecurityGroups_Get", + "description": "The Get NetworkSecurityGroups operation retrieves information about the specified network security group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "expand references resources." + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkSecurityGroup" + } + } + } + }, + "put": { + "tags": [ + "NetworkSecurityGroups" + ], + "operationId": "NetworkSecurityGroups_CreateOrUpdate", + "description": "The Put NetworkSecurityGroup operation creates/updates a network security groupin the specified resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/NetworkSecurityGroup" + }, + "description": "Parameters supplied to the create/update Network Security Group operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkSecurityGroup" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkSecurityGroup" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkSecurityGroups": { + "get": { + "tags": [ + "NetworkSecurityGroups" + ], + "operationId": "NetworkSecurityGroups_ListAll", + "description": "The list NetworkSecurityGroups returns all network security groups in a subscription", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkSecurityGroupListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups": { + "get": { + "tags": [ + "NetworkSecurityGroups" + ], + "operationId": "NetworkSecurityGroups_List", + "description": "The list NetworkSecurityGroups returns all network security groups in a resource group", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/NetworkSecurityGroupListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPAddresses/{publicIpAddressName}": { + "delete": { + "tags": [ + "PublicIPAddresses" + ], + "operationId": "PublicIPAddresses_Delete", + "description": "The delete publicIpAddress operation deletes the specified publicIpAddress.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "publicIpAddressName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the subnet." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "PublicIPAddresses" + ], + "operationId": "PublicIPAddresses_Get", + "description": "The Get publicIpAddress operation retreives information about the specified pubicIpAddress", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "publicIpAddressName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the subnet." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "expand references resources." + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PublicIPAddress" + } + } + } + }, + "put": { + "tags": [ + "PublicIPAddresses" + ], + "operationId": "PublicIPAddresses_CreateOrUpdate", + "description": "The Put PublicIPAddress operation creates/updates a stable/dynamic PublicIP address", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "publicIpAddressName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the publicIpAddress." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PublicIPAddress" + }, + "description": "Parameters supplied to the create/update PublicIPAddress operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/PublicIPAddress" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PublicIPAddress" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/publicIPAddresses": { + "get": { + "tags": [ + "PublicIPAddresses" + ], + "operationId": "PublicIPAddresses_ListAll", + "description": "The List publicIpAddress opertion retrieves all the publicIpAddresses in a subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PublicIPAddressListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPAddresses": { + "get": { + "tags": [ + "PublicIPAddresses" + ], + "operationId": "PublicIPAddresses_List", + "description": "The List publicIpAddress opertion retrieves all the publicIpAddresses in a resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/PublicIPAddressListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables/{routeTableName}": { + "delete": { + "tags": [ + "RouteTables" + ], + "operationId": "RouteTables_Delete", + "description": "The Delete RouteTable operation deletes the specifed Route Table", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "200": { + "description": "" + }, + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "RouteTables" + ], + "operationId": "RouteTables_Get", + "description": "The Get RouteTables operation retrieves information about the specified route table.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "expand references resources." + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RouteTable" + } + } + } + }, + "put": { + "tags": [ + "RouteTables" + ], + "operationId": "RouteTables_CreateOrUpdate", + "description": "The Put RouteTable operation creates/updates a route tablein the specified resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RouteTable" + }, + "description": "Parameters supplied to the create/update Route Table operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RouteTable" + } + }, + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/RouteTable" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables": { + "get": { + "tags": [ + "RouteTables" + ], + "operationId": "RouteTables_List", + "description": "The list RouteTables returns all route tables in a resource group", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RouteTableListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/routeTables": { + "get": { + "tags": [ + "RouteTables" + ], + "operationId": "RouteTables_ListAll", + "description": "The list RouteTables returns all route tables in a subscription", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RouteTableListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables/{routeTableName}/routes/{routeName}": { + "delete": { + "tags": [ + "Routes" + ], + "operationId": "Routes_Delete", + "description": "The delete route operation deletes the specified route from a route table.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "name": "routeName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + }, + "200": { + "description": "" + }, + "204": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "Routes" + ], + "operationId": "Routes_Get", + "description": "The Get route operation retreives information about the specified route from the route table.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "name": "routeName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/Route" + } + } + } + }, + "put": { + "tags": [ + "Routes" + ], + "operationId": "Routes_CreateOrUpdate", + "description": "The Put route operation creates/updates a route in the specified route table", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "name": "routeName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route." + }, + { + "name": "routeParameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Route" + }, + "description": "Parameters supplied to the create/update routeoperation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/Route" + } + }, + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/Route" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/routeTables/{routeTableName}/routes": { + "get": { + "tags": [ + "Routes" + ], + "operationId": "Routes_List", + "description": "The List network security rule opertion retrieves all the routes in a route table.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "routeTableName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the route table." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/RouteListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/securityRules/{securityRuleName}": { + "delete": { + "tags": [ + "SecurityRules" + ], + "operationId": "SecurityRules_Delete", + "description": "The delete network security rule operation deletes the specified network security rule.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "name": "securityRuleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the security rule." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "SecurityRules" + ], + "operationId": "SecurityRules_Get", + "description": "The Get NetworkSecurityRule operation retreives information about the specified network security rule.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "name": "securityRuleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the security rule." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/SecurityRule" + } + } + } + }, + "put": { + "tags": [ + "SecurityRules" + ], + "operationId": "SecurityRules_CreateOrUpdate", + "description": "The Put network security rule operation creates/updates a security rule in the specified network security group", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "name": "securityRuleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the security rule." + }, + { + "name": "securityRuleParameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SecurityRule" + }, + "description": "Parameters supplied to the create/update network security rule operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/SecurityRule" + } + }, + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/SecurityRule" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/securityRules": { + "get": { + "tags": [ + "SecurityRules" + ], + "operationId": "SecurityRules_List", + "description": "The List network security rule opertion retrieves all the security rules in a network security group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkSecurityGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network security group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/SecurityRuleListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualnetworks/{virtualNetworkName}/subnets/{subnetName}": { + "delete": { + "tags": [ + "Subnets" + ], + "operationId": "Subnets_Delete", + "description": "The delete subnet operation deletes the specified subnet.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "name": "subnetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the subnet." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + }, + "204": { + "description": "" + }, + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "Subnets" + ], + "operationId": "Subnets_Get", + "description": "The Get subnet operation retreives information about the specified subnet.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "name": "subnetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the subnet." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "expand references resources." + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/Subnet" + } + } + } + }, + "put": { + "tags": [ + "Subnets" + ], + "operationId": "Subnets_CreateOrUpdate", + "description": "The Put Subnet operation creates/updates a subnet in thespecified virtual network", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "name": "subnetName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the subnet." + }, + { + "name": "subnetParameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Subnet" + }, + "description": "Parameters supplied to the create/update Subnet operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/Subnet" + } + }, + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/Subnet" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualnetworks/{virtualNetworkName}/subnets": { + "get": { + "tags": [ + "Subnets" + ], + "operationId": "Subnets_List", + "description": "The List subnets opertion retrieves all the subnets in a virtual network.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/SubnetListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{location}/usages": { + "get": { + "tags": [ + "Usages" + ], + "operationId": "Usages_List", + "description": "Lists compute usages for a subscription.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location upon which resource usage is queried.", + "pattern": "^[-\\w\\._]+$" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/UsagesListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}": { + "put": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_CreateOrUpdate", + "description": "The Put VirtualNetworkGatewayConnection operation creates/updates a virtual network gateway connection in the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway conenction." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualNetworkGatewayConnection" + }, + "description": "Parameters supplied to the Begin Create or update Virtual Network Gateway connection operation through Network resource provider." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGatewayConnection" + } + }, + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGatewayConnection" + } + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_Get", + "description": "The Get VirtualNetworkGatewayConnection operation retrieves information about the specified virtual network gateway connection through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway connection." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGatewayConnection" + } + } + } + }, + "delete": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_Delete", + "description": "The Delete VirtualNetworkGatewayConnection operation deletes the specifed virtual network Gateway connection through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway connection." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + }, + "202": { + "description": "" + }, + "204": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{connectionSharedKeyName}/sharedkey": { + "get": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_GetSharedKey", + "description": "The Get VirtualNetworkGatewayConnectionSharedKey operation retrieves information about the specified virtual network gateway connection shared key through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "connectionSharedKeyName", + "in": "path", + "required": true, + "type": "string", + "description": "The virtual network gateway connection shared key name." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ConnectionSharedKeyResult" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections": { + "get": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_List", + "description": "The List VirtualNetworkGatewayConnections operation retrieves all the virtual network gateways connections created.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGatewayConnectionListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/sharedkey/reset": { + "post": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_ResetSharedKey", + "description": "The VirtualNetworkGatewayConnectionResetSharedKey operation resets the virtual network gateway connection shared key for passed virtual network gateway connection in the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The virtual network gateway connection reset shared key Name." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ConnectionResetSharedKey" + }, + "description": "Parameters supplied to the Begin Reset Virtual Network Gateway connection shared key operation through Network resource provider." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ConnectionResetSharedKey" + } + }, + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/connections/{virtualNetworkGatewayConnectionName}/sharedkey": { + "put": { + "tags": [ + "VirtualNetworkGatewayConnections" + ], + "operationId": "VirtualNetworkGatewayConnections_SetSharedKey", + "description": "The Put VirtualNetworkGatewayConnectionSharedKey operation sets the virtual network gateway connection shared key for passed virtual network gateway connection in the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The virtual network gateway connection name." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ConnectionSharedKey" + }, + "description": "Parameters supplied to the Begin Set Virtual Network Gateway conection Shared key operation throughNetwork resource provider." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/ConnectionSharedKey" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ConnectionSharedKey" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualnetworkgateways/{virtualNetworkGatewayName}": { + "put": { + "tags": [ + "VirtualNetworkGateways" + ], + "operationId": "VirtualNetworkGateways_CreateOrUpdate", + "description": "The Put VirtualNetworkGateway operation creates/updates a virtual network gateway in the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + "description": "Parameters supplied to the Begin Create or update Virtual Network Gateway operation through Network resource provider." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGateway" + } + }, + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGateway" + } + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "VirtualNetworkGateways" + ], + "operationId": "VirtualNetworkGateways_Get", + "description": "The Get VirtualNetworkGateway operation retrieves information about the specified virtual network gateway through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGateway" + } + } + } + }, + "delete": { + "tags": [ + "VirtualNetworkGateways" + ], + "operationId": "VirtualNetworkGateways_Delete", + "description": "The Delete VirtualNetworkGateway operation deletes the specifed virtual network Gateway through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "" + }, + "202": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways": { + "get": { + "tags": [ + "VirtualNetworkGateways" + ], + "operationId": "VirtualNetworkGateways_List", + "description": "The List VirtualNetworkGateways opertion retrieves all the virtual network gateways stored.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGatewayListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualnetworkgateways/{virtualNetworkGatewayName}/reset": { + "post": { + "tags": [ + "VirtualNetworkGateways" + ], + "operationId": "VirtualNetworkGateways_Reset", + "description": "The Reset VirtualNetworkGateway operation resets the primary of the virtual network gateway in the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + "description": "Parameters supplied to the Begin Reset Virtual Network Gateway operation through Network resource provider." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkGateway" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualnetworkgateways/{virtualNetworkGatewayName}/generatevpnclientpackage": { + "post": { + "tags": [ + "VirtualNetworkGateways" + ], + "operationId": "VirtualNetworkGateways_Generatevpnclientpackage", + "description": "The Generatevpnclientpackage operation generates Vpn client package for P2S client of the virtual network gateway in the specified resource group through Network resource provider.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network gateway." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VpnClientParameters" + }, + "description": "Parameters supplied to the Begin Generating Virtual Network Gateway Vpn client package operation through Network resource provider." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "Vpn client package url", + "schema": { + "type": "string" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualnetworks/{virtualNetworkName}": { + "delete": { + "tags": [ + "VirtualNetworks" + ], + "operationId": "VirtualNetworks_Delete", + "description": "The Delete VirtualNetwork operation deletes the specifed virtual network", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "" + }, + "204": { + "description": "" + }, + "200": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "VirtualNetworks" + ], + "operationId": "VirtualNetworks_Get", + "description": "The Get VirtualNetwork operation retrieves information about the specified virtual network.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "expand references resources." + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetwork" + } + } + } + }, + "put": { + "tags": [ + "VirtualNetworks" + ], + "operationId": "VirtualNetworks_CreateOrUpdate", + "description": "The Put VirtualNetwork operation creates/updates a virtual network in the specified resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "virtualNetworkName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual network." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualNetwork" + }, + "description": "Parameters supplied to the create/update Virtual Network operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetwork" + } + }, + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetwork" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/virtualnetworks": { + "get": { + "tags": [ + "VirtualNetworks" + ], + "operationId": "VirtualNetworks_ListAll", + "description": "The list VirtualNetwork returns all Virtual Networks in a subscription", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualnetworks": { + "get": { + "tags": [ + "VirtualNetworks" + ], + "operationId": "VirtualNetworks_List", + "description": "The list VirtualNetwork returns all Virtual Networks in a resource group", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/VirtualNetworkListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{location}/CheckDnsNameAvailability": { + "get": { + "operationId": "CheckDnsNameAvailability", + "description": "Checks whether a domain name in the cloudapp.net zone is available for use.", + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location of the domain name" + }, + { + "name": "domainNameLabel", + "in": "query", + "required": false, + "type": "string", + "description": "The domain name to be verified. It must conform to the following regular expression: ^[a-z][a-z0-9-]{1,61}[a-z0-9]$." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DnsNameAvailabilityResult" + } + } + } + } + } + }, + "definitions": { + "ApplicationGatewaySku": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets name of application gateway SKU", + "enum": [ + "Standard_Small", + "Standard_Medium", + "Standard_Large" + ], + "x-ms-enum": { + "name": "ApplicationGatewaySkuName", + "modelAsString": true + } + }, + "tier": { + "type": "string", + "description": "Gets or sets tier of application gateway", + "enum": [ + "Standard" + ], + "x-ms-enum": { + "name": "ApplicationGatewayTier", + "modelAsString": true + } + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "Gets or sets capacity (instance count) of application gateway" + } + }, + "description": "SKU of application gateway" + }, + "ApplicationGatewayIPConfigurationPropertiesFormat": { + "properties": { + "subnet": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the subnet resource.A subnet from where appliation gateway gets its private address " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the application gateway subnet resource Updating/Deleting/Failed" + } + }, + "description": "Properties of IP configuration of application gateway" + }, + "ApplicationGatewayIPConfiguration": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayIPConfigurationPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "IP configuration of application gateway" + }, + "ApplicationGatewaySslCertificatePropertiesFormat": { + "properties": { + "data": { + "type": "string", + "description": "Gets or sets the certificate data " + }, + "password": { + "type": "string", + "description": "Gets or sets the certificate password " + }, + "publicCertData": { + "type": "string", + "description": "Gets or sets the certificate public data " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the ssl certificate resource Updating/Deleting/Failed" + } + }, + "description": "Properties of SSL certificates of application gateway" + }, + "ApplicationGatewaySslCertificate": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewaySslCertificatePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "SSL certificates of application gateway" + }, + "ApplicationGatewayFrontendIPConfigurationPropertiesFormat": { + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the Network Interface IP Configuration" + }, + "privateIPAllocationMethod": { + "type": "string", + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic)", + "enum": [ + "Static", + "Dynamic" + ], + "x-ms-enum": { + "name": "IPAllocationMethod", + "modelAsString": true + } + }, + "subnet": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Frontend IP configuration of application gateway" + }, + "ApplicationGatewayFrontendIPConfiguration": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayFrontendIPConfigurationPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Frontend IP configuration of application gateway" + }, + "ApplicationGatewayFrontendPortPropertiesFormat": { + "properties": { + "port": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the frontend port" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the frontend port resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Frontend Port of application gateway" + }, + "ApplicationGatewayFrontendPort": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayFrontendPortPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Frontend Port of application gateway" + }, + "ApplicationGatewayBackendAddress": { + "properties": { + "fqdn": { + "type": "string", + "description": "Gets or sets the dns name" + }, + "ipAddress": { + "type": "string", + "description": "Gets or sets the ip address" + } + }, + "description": "Backend Address of application gateway" + }, + "ApplicationGatewayBackendAddressPoolPropertiesFormat": { + "properties": { + "backendIPConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets or sets backendIPConfiguration of application gateway " + }, + "backendAddresses": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayBackendAddress" + }, + "description": "Gets or sets the backend addresses" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the backend address pool resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Backend Address Pool of application gateway" + }, + "ApplicationGatewayBackendAddressPool": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayBackendAddressPoolPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Backend Address Pool of application gateway" + }, + "ApplicationGatewayBackendHttpSettingsPropertiesFormat": { + "properties": { + "port": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the port" + }, + "protocol": { + "type": "string", + "description": "Gets or sets the protocol", + "enum": [ + "Http", + "Https" + ], + "x-ms-enum": { + "name": "ApplicationGatewayProtocol", + "modelAsString": true + } + }, + "cookieBasedAffinity": { + "type": "string", + "description": "Gets or sets the cookie affinity", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "ApplicationGatewayCookieBasedAffinity", + "modelAsString": true + } + }, + "requestTimeout": { + "type": "integer", + "format": "int32", + "description": "Gets or sets request timeout" + }, + "probe": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets probe resource of application gateway " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the backend http settings resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Backend address pool settings of application gateway" + }, + "ApplicationGatewayBackendHttpSettings": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayBackendHttpSettingsPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Backend address pool settings of application gateway" + }, + "ApplicationGatewayHttpListenerPropertiesFormat": { + "properties": { + "frontendIPConfiguration": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets frontend IP configuration resource of application gateway " + }, + "frontendPort": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets frontend port resource of application gateway " + }, + "protocol": { + "type": "string", + "description": "Gets or sets the protocol", + "enum": [ + "Http", + "Https" + ], + "x-ms-enum": { + "name": "ApplicationGatewayProtocol", + "modelAsString": true + } + }, + "hostName": { + "type": "string", + "description": "Gets or sets the host name of http listener " + }, + "sslCertificate": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets ssl certificate resource of application gateway " + }, + "requireServerNameIndication": { + "type": "boolean", + "description": "Gets or sets the requireServerNameIndication of http listener " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the http listener resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Http listener of application gateway" + }, + "ApplicationGatewayHttpListener": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayHttpListenerPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Http listener of application gateway" + }, + "ApplicationGatewayPathRulePropertiesFormat": { + "properties": { + "paths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the path rules of URL path map" + }, + "backendAddressPool": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets backend address pool resource of URL path map " + }, + "backendHttpSettings": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets backend http settings resource of URL path map " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets path rule of URL path map resource Updating/Deleting/Failed" + } + }, + "description": "Properties of probe of application gateway" + }, + "ApplicationGatewayPathRule": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayPathRulePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Path rule of URL path map of application gateway" + }, + "ApplicationGatewayProbePropertiesFormat": { + "properties": { + "protocol": { + "type": "string", + "description": "Gets or sets the protocol", + "enum": [ + "Http", + "Https" + ], + "x-ms-enum": { + "name": "ApplicationGatewayProtocol", + "modelAsString": true + } + }, + "host": { + "type": "string", + "description": "Gets or sets the host to send probe to " + }, + "path": { + "type": "string", + "description": "Gets or sets the relative path of probe " + }, + "interval": { + "type": "integer", + "format": "int32", + "description": "Gets or sets probing interval in seconds " + }, + "timeout": { + "type": "integer", + "format": "int32", + "description": "Gets or sets probing timeout in seconds " + }, + "unhealthyThreshold": { + "type": "integer", + "format": "int32", + "description": "Gets or sets probing unhealthy threshold " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the backend http settings resource Updating/Deleting/Failed" + } + }, + "description": "Properties of probe of application gateway" + }, + "ApplicationGatewayProbe": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayProbePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Probe of application gateway" + }, + "ApplicationGatewayRequestRoutingRulePropertiesFormat": { + "properties": { + "ruleType": { + "type": "string", + "description": "Gets or sets the rule type", + "enum": [ + "Basic", + "PathBasedRouting" + ], + "x-ms-enum": { + "name": "ApplicationGatewayRequestRoutingRuleType", + "modelAsString": true + } + }, + "backendAddressPool": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets backend address pool resource of application gateway " + }, + "backendHttpSettings": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets frontend port resource of application gateway " + }, + "httpListener": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets http listener resource of application gateway " + }, + "urlPathMap": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets url path map resource of application gateway " + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the request routing rule resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Request routing rule of application gateway" + }, + "ApplicationGatewayRequestRoutingRule": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayRequestRoutingRulePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Request routing rule of application gateway" + }, + "ApplicationGatewayPropertiesFormat": { + "properties": { + "sku": { + "$ref": "#/definitions/ApplicationGatewaySku", + "description": "Gets or sets sku of application gateway resource" + }, + "operationalState": { + "readOnly": true, + "type": "string", + "description": "Gets operational state of application gateway resource", + "enum": [ + "Stopped", + "Starting", + "Running", + "Stopping" + ], + "x-ms-enum": { + "name": "ApplicationGatewayOperationalState", + "modelAsString": true + } + }, + "gatewayIPConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayIPConfiguration" + }, + "description": "Gets or sets subnets of application gateway resource" + }, + "sslCertificates": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewaySslCertificate" + }, + "description": "Gets or sets ssl certificates of application gateway resource" + }, + "frontendIPConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayFrontendIPConfiguration" + }, + "description": "Gets or sets frontend IP addresses of application gateway resource" + }, + "frontendPorts": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayFrontendPort" + }, + "description": "Gets or sets frontend ports of application gateway resource" + }, + "probes": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayProbe" + }, + "description": "Gets or sets probes of application gateway resource" + }, + "backendAddressPools": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayBackendAddressPool" + }, + "description": "Gets or sets backend address pool of application gateway resource" + }, + "backendHttpSettingsCollection": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayBackendHttpSettings" + }, + "description": "Gets or sets backend http settings of application gateway resource" + }, + "httpListeners": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayHttpListener" + }, + "description": "Gets or sets HTTP listeners of application gateway resource" + }, + "urlPathMaps": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayUrlPathMap" + }, + "description": "Gets or sets URL path map of application gateway resource" + }, + "requestRoutingRules": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayRequestRoutingRule" + }, + "description": "Gets or sets request routing rules of application gateway resource" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the ApplicationGateway resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the ApplicationGateway resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Application Gateway" + }, + "ApplicationGateway": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "ApplicationGateways resource" + }, + "ApplicationGatewayListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGateway" + }, + "description": "Gets a list of ApplicationGateways in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListLoadBalancers Api service call" + }, + "ApplicationGatewayUrlPathMapPropertiesFormat": { + "properties": { + "defaultBackendAddressPool": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets default backend address pool resource of URL path map " + }, + "defaultBackendHttpSettings": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets default backend http settings resource of URL path map " + }, + "pathRules": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationGatewayPathRule" + }, + "description": "Gets or sets path rule of URL path map resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the backend http settings resource Updating/Deleting/Failed" + } + }, + "description": "Properties of probe of application gateway" + }, + "ApplicationGatewayUrlPathMap": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationGatewayUrlPathMapPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "UrlPathMap of application gateway" + }, + "AuthorizationPropertiesFormat": { + "properties": { + "authorizationKey": { + "type": "string", + "description": "Gets or sets the authorization key" + }, + "authorizationUseStatus": { + "type": "string", + "description": "Gets or sets AuthorizationUseStatus", + "enum": [ + "Available", + "InUse" + ], + "x-ms-enum": { + "name": "AuthorizationUseStatus", + "modelAsString": true + } + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "ExpressRouteCircuitAuthorization": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/AuthorizationPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Authorization in a ExpressRouteCircuit resource" + }, + "AuthorizationListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitAuthorization" + }, + "description": "Gets the authorizations in an ExpressRoute Circuit" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListAuthorizations Api service callRetrieves all authorizations that belongs to an ExpressRouteCircuit" + }, + "ExpressRouteCircuitPeeringConfig": { + "properties": { + "advertisedPublicPrefixes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the reference of AdvertisedPublicPrefixes" + }, + "advertisedPublicPrefixesState": { + "type": "string", + "description": "Gets or sets AdvertisedPublicPrefixState of the Peering resource ", + "enum": [ + "NotConfigured", + "Configuring", + "Configured", + "ValidationNeeded" + ], + "x-ms-enum": { + "name": "ExpressRouteCircuitPeeringAdvertisedPublicPrefixState", + "modelAsString": true + } + }, + "customerASN": { + "type": "integer", + "format": "int32", + "description": "Gets or Sets CustomerAsn of the peering." + }, + "routingRegistryName": { + "type": "string", + "description": "Gets or Sets RoutingRegistryName of the config." + } + }, + "description": "Specfies the peering config" + }, + "ExpressRouteCircuitStats": { + "properties": { + "bytesIn": { + "type": "integer", + "format": "int32", + "description": "Gets BytesIn of the peering." + }, + "bytesOut": { + "type": "integer", + "format": "int32", + "description": "Gets BytesOut of the peering." + } + }, + "description": "Contains Stats associated with the peering" + }, + "ExpressRouteCircuitPeeringPropertiesFormat": { + "properties": { + "peeringType": { + "type": "string", + "description": "Gets or sets PeeringType", + "enum": [ + "AzurePublicPeering", + "AzurePrivatePeering", + "MicrosoftPeering" + ], + "x-ms-enum": { + "name": "ExpressRouteCircuitPeeringType", + "modelAsString": true + } + }, + "state": { + "type": "string", + "description": "Gets or sets state of Peering", + "enum": [ + "Disabled", + "Enabled" + ], + "x-ms-enum": { + "name": "ExpressRouteCircuitPeeringState", + "modelAsString": true + } + }, + "azureASN": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the azure ASN" + }, + "peerASN": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the peer ASN" + }, + "primaryPeerAddressPrefix": { + "type": "string", + "description": "Gets or sets the primary address prefix" + }, + "secondaryPeerAddressPrefix": { + "type": "string", + "description": "Gets or sets the secondary address prefix" + }, + "primaryAzurePort": { + "type": "string", + "description": "Gets or sets the primary port" + }, + "secondaryAzurePort": { + "type": "string", + "description": "Gets or sets the secondary port" + }, + "sharedKey": { + "type": "string", + "description": "Gets or sets the shared key" + }, + "vlanId": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the vlan id" + }, + "microsoftPeeringConfig": { + "$ref": "#/definitions/ExpressRouteCircuitPeeringConfig", + "description": "Gets or sets the mircosoft peering config" + }, + "stats": { + "$ref": "#/definitions/ExpressRouteCircuitStats", + "description": "Gets or peering stats" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "ExpressRouteCircuitPeering": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ExpressRouteCircuitPeeringPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Peering in a ExpressRouteCircuit resource" + }, + "ExpressRouteCircuitPeeringListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitPeering" + }, + "description": "Gets the peerings in an express route circuit" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListPeering Api service callRetrieves all Peerings that belongs to an ExpressRouteCircuit" + }, + "ExpressRouteCircuitSku": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets name of the sku." + }, + "tier": { + "type": "string", + "description": "Gets or sets tier of the sku.", + "enum": [ + "Standard", + "Premium" + ], + "x-ms-enum": { + "name": "ExpressRouteCircuitSkuTier", + "modelAsString": true + } + }, + "family": { + "type": "string", + "description": "Gets or sets family of the sku.", + "enum": [ + "UnlimitedData", + "MeteredData" + ], + "x-ms-enum": { + "name": "ExpressRouteCircuitSkuFamily", + "modelAsString": true + } + } + }, + "description": "Contains sku in an ExpressRouteCircuit" + }, + "ExpressRouteCircuitServiceProviderProperties": { + "properties": { + "serviceProviderName": { + "type": "string", + "description": "Gets or sets serviceProviderName." + }, + "peeringLocation": { + "type": "string", + "description": "Gets or sets peering location." + }, + "bandwidthInMbps": { + "type": "integer", + "format": "int32", + "description": "Gets or sets BandwidthInMbps." + } + }, + "description": "Contains ServiceProviderProperties in an ExpressRouteCircuit" + }, + "ExpressRouteCircuitPropertiesFormat": { + "properties": { + "circuitProvisioningState": { + "type": "string", + "description": "Gets or sets CircuitProvisioningState state of the resource " + }, + "serviceProviderProvisioningState": { + "type": "string", + "description": "Gets or sets ServiceProviderProvisioningState state of the resource ", + "enum": [ + "NotProvisioned", + "Provisioning", + "Provisioned", + "Deprovisioning" + ], + "x-ms-enum": { + "name": "ServiceProviderProvisioningState", + "modelAsString": true + } + }, + "authorizations": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitAuthorization" + }, + "description": "Gets or sets list of authorizations" + }, + "peerings": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitPeering" + }, + "description": "Gets or sets list of peerings" + }, + "serviceKey": { + "type": "string", + "description": "Gets or sets ServiceKey" + }, + "serviceProviderNotes": { + "type": "string", + "description": "Gets or sets ServiceProviderNotes" + }, + "serviceProviderProperties": { + "$ref": "#/definitions/ExpressRouteCircuitServiceProviderProperties", + "description": "Gets or sets ServiceProviderProperties" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of ExpressRouteCircuit" + }, + "ExpressRouteCircuit": { + "properties": { + "sku": { + "$ref": "#/definitions/ExpressRouteCircuitSku", + "description": "Gets or sets sku" + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ExpressRouteCircuitPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "ExpressRouteCircuit resource" + }, + "ExpressRouteCircuitArpTable": { + "properties": { + "ipAddress": { + "type": "string", + "description": "Gets ipAddress." + }, + "macAddress": { + "type": "string", + "description": "Gets macAddress." + } + }, + "description": "The arp table associated with the ExpressRouteCircuit" + }, + "ExpressRouteCircuitsArpTableListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitArpTable" + }, + "description": "Gets List of ArpTable" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListArpTable associated with the Express Route Circuits Api" + }, + "ExpressRouteCircuitRoutesTable": { + "properties": { + "addressPrefix": { + "type": "string", + "description": "Gets AddressPrefix." + }, + "nextHopType": { + "type": "string", + "description": "Gets NextHopType.", + "enum": [ + "VirtualNetworkGateway", + "VnetLocal", + "Internet", + "VirtualAppliance", + "None" + ], + "x-ms-enum": { + "name": "RouteNextHopType", + "modelAsString": true + } + }, + "nextHopIP": { + "type": "string", + "description": "Gets NextHopIP." + }, + "asPath": { + "type": "string", + "description": "Gets AsPath." + } + }, + "required": [ + "nextHopType" + ], + "description": "The routes table associated with the ExpressRouteCircuit" + }, + "ExpressRouteCircuitsRoutesTableListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitRoutesTable" + }, + "description": "Gets List of RoutesTable" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListRoutesTable associated with the Express Route Circuits Api" + }, + "ExpressRouteCircuitsStatsListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuitStats" + }, + "description": "Gets List of Stats" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListStats from Express Route Circuits Api service call" + }, + "ExpressRouteCircuitListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteCircuit" + }, + "description": "Gets a list of ExpressRouteCircuits in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListExpressRouteCircuit Api service call" + }, + "ExpressRouteServiceProviderBandwidthsOffered": { + "properties": { + "offerName": { + "type": "string", + "description": "Gets the OfferName" + }, + "valueInMbps": { + "type": "integer", + "format": "int32", + "description": "Gets the ValueInMbps." + } + }, + "description": "Contains Bandwidths offered in ExpressRouteServiceProviders" + }, + "ExpressRouteServiceProviderPropertiesFormat": { + "properties": { + "peeringLocations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or list of peering locations" + }, + "bandwidthsOffered": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteServiceProviderBandwidthsOffered" + }, + "description": "Gets or bandwidths offered" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the resource " + } + }, + "description": "Properties of ExpressRouteServiceProvider" + }, + "ExpressRouteServiceProvider": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ExpressRouteServiceProviderPropertiesFormat" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "ExpressRouteResourceProvider object" + }, + "ExpressRouteServiceProviderListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressRouteServiceProvider" + }, + "description": "Gets List of ExpressRouteResourceProvider" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListExpressRouteServiceProvider Api service call" + }, + "FrontendIPConfigurationPropertiesFormat": { + "properties": { + "inboundNatRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Read only.Inbound rules URIs that use this frontend IP" + }, + "inboundNatPools": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Read only.Inbound pools URIs that use this frontend IP" + }, + "outboundNatRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Read only.Outbound rules URIs that use this frontend IP" + }, + "loadBalancingRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets Load Balancing rules URIs that use this frontend IP" + }, + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the IP Configuration" + }, + "privateIPAllocationMethod": { + "type": "string", + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic)", + "enum": [ + "Static", + "Dynamic" + ], + "x-ms-enum": { + "name": "IPAllocationMethod", + "modelAsString": true + } + }, + "subnet": { + "$ref": "#/definitions/Subnet", + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "$ref": "#/definitions/PublicIPAddress", + "description": "Gets or sets the reference of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Frontend IP Configuration of the load balancer" + }, + "FrontendIPConfiguration": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/FrontendIPConfigurationPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Frontend IP address of the load balancer" + }, + "BackendAddressPoolPropertiesFormat": { + "properties": { + "backendIPConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterfaceIPConfiguration" + }, + "description": "Gets collection of references to IPs defined in NICs" + }, + "loadBalancingRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets Load Balancing rules that use this Backend Address Pool" + }, + "outboundNatRule": { + "$ref": "#/definitions/SubResource", + "description": "Gets outbound rules that use this Backend Address Pool" + }, + "provisioningState": { + "type": "string", + "description": "Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of BackendAddressPool" + }, + "BackendAddressPool": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/BackendAddressPoolPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Pool of backend IP addresseses" + }, + "LoadBalancingRulePropertiesFormat": { + "properties": { + "frontendIPConfiguration": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets a reference to frontend IP Addresses" + }, + "backendAddressPool": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets a reference to a pool of DIPs. Inbound traffic is randomly load balanced across IPs in the backend IPs" + }, + "probe": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the load balancer probe used by the Load Balancing rule." + }, + "protocol": { + "type": "string", + "description": "Gets or sets the transport protocol for the external endpoint. Possible values are Udp or Tcp", + "enum": [ + "Udp", + "Tcp" + ], + "x-ms-enum": { + "name": "TransportProtocol", + "modelAsString": true + } + }, + "loadDistribution": { + "type": "string", + "description": "Gets or sets the load distribution policy for this rule", + "enum": [ + "Default", + "SourceIP", + "SourceIPProtocol" + ], + "x-ms-enum": { + "name": "LoadDistribution", + "modelAsString": true + } + }, + "frontendPort": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the port for the external endpoint. You can specify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "backendPort": { + "type": "integer", + "format": "int32", + "description": "Gets or sets a port used for internal connections on the endpoint. The localPort attribute maps the eternal port of the endpoint to an internal port on a role. This is useful in scenarios where a role must communicate to an internal compotnent on a port that is different from the one that is exposed externally. If not specified, the value of localPort is the same as the port attribute. Set the value of localPort to '*' to automatically assign an unallocated port that is discoverable using the runtime API" + }, + "idleTimeoutInMinutes": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the timeout for the Tcp idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This emlement is only used when the protocol is set to Tcp" + }, + "enableFloatingIP": { + "type": "boolean", + "description": "Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn availability Group. This setting is required when using the SQL Always ON availability Groups in SQL server. This setting can't be changed after you create the endpoint" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "frontendPort" + ], + "description": "Properties of the load balancer" + }, + "LoadBalancingRule": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/LoadBalancingRulePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Rules of the load balancer" + }, + "ProbePropertiesFormat": { + "properties": { + "loadBalancingRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets Load balancer rules that use this probe" + }, + "protocol": { + "type": "string", + "description": "Gets or sets the protocol of the end point. Possible values are http pr Tcp. If Tcp is specified, a received ACK is required for the probe to be successful. If http is specified,a 200 OK response from the specifies URI is required for the probe to be successful", + "enum": [ + "Http", + "Tcp" + ], + "x-ms-enum": { + "name": "ProbeProtocol", + "modelAsString": true + } + }, + "port": { + "type": "integer", + "format": "int32", + "description": "Gets or sets Port for communicating the probe. Possible values range from 1 to 65535, inclusive." + }, + "intervalInSeconds": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5" + }, + "numberOfProbes": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endponints to be taken out of rotation faster or slower than the typical times used in Azure. " + }, + "requestPath": { + "type": "string", + "description": "Gets or sets the URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "port" + ] + }, + "Probe": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ProbePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Load balancer Probe" + }, + "InboundNatRulePropertiesFormat": { + "properties": { + "frontendIPConfiguration": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets a reference to frontend IP Addresses" + }, + "backendIPConfiguration": { + "$ref": "#/definitions/NetworkInterfaceIPConfiguration", + "description": "Gets or sets a reference to a private ip address defined on a NetworkInterface of a VM. Traffic sent to frontendPort of each of the frontendIPConfigurations is forwarded to the backed IP" + }, + "protocol": { + "type": "string", + "description": "Gets or sets the transport potocol for the external endpoint. Possible values are Udp or Tcp", + "enum": [ + "Udp", + "Tcp" + ], + "x-ms-enum": { + "name": "TransportProtocol", + "modelAsString": true + } + }, + "frontendPort": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the port for the external endpoint. You can spcify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "backendPort": { + "type": "integer", + "format": "int32", + "description": "Gets or sets a port used for internal connections on the endpoint. The localPort attribute maps the eternal port of the endpoint to an internal port on a role. This is useful in scenarios where a role must communicate to an internal compotnent on a port that is different from the one that is exposed externally. If not specified, the value of localPort is the same as the port attribute. Set the value of localPort to '*' to automatically assign an unallocated port that is discoverable using the runtime API" + }, + "idleTimeoutInMinutes": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the timeout for the Tcp idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This emlement is only used when the protocol is set to Tcp" + }, + "enableFloatingIP": { + "type": "boolean", + "description": "Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn availability Group. This setting is required when using the SQL Always ON availability Groups in SQL server. This setting can't be changed after you create the endpoint" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Inbound NAT rule" + }, + "InboundNatRule": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/InboundNatRulePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Inbound NAT rule of the loadbalancer" + }, + "InboundNatPoolPropertiesFormat": { + "properties": { + "frontendIPConfiguration": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets a reference to frontend IP Addresses" + }, + "protocol": { + "type": "string", + "description": "Gets or sets the transport potocol for the external endpoint. Possible values are Udp or Tcp", + "enum": [ + "Udp", + "Tcp" + ], + "x-ms-enum": { + "name": "TransportProtocol", + "modelAsString": true + } + }, + "frontendPortRangeStart": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the starting port range for the NAT pool. You can spcify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "frontendPortRangeEnd": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the ending port range for the NAT pool. You can spcify any port number you choose, but the port numbers specified for each role in the service must be unique. Possible values range between 1 and 65535, inclusive" + }, + "backendPort": { + "type": "integer", + "format": "int32", + "description": "Gets or sets a port used for internal connections on the endpoint. The localPort attribute maps the eternal port of the endpoint to an internal port on a role. This is useful in scenarios where a role must communicate to an internal compotnent on a port that is different from the one that is exposed externally. If not specified, the value of localPort is the same as the port attribute. Set the value of localPort to '*' to automatically assign an unallocated port that is discoverable using the runtime API" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "frontendPortRangeStart", + "frontendPortRangeEnd", + "backendPort" + ], + "description": "Properties of Inbound NAT pool" + }, + "InboundNatPool": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/InboundNatPoolPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Inbound NAT pool of the loadbalancer" + }, + "OutboundNatRulePropertiesFormat": { + "properties": { + "allocatedOutboundPorts": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the number of outbound ports to be used for SNAT" + }, + "frontendIPConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Gets or sets Frontend IP addresses of the load balancer" + }, + "backendAddressPool": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets a reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "backendAddressPool" + ], + "description": "Outbound NAT pool of the loadbalancer" + }, + "OutboundNatRule": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/OutboundNatRulePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Outbound NAT pool of the loadbalancer" + }, + "LoadBalancerPropertiesFormat": { + "properties": { + "frontendIPConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/FrontendIPConfiguration" + }, + "description": "Gets or sets frontend IP addresses of the load balancer" + }, + "backendAddressPools": { + "type": "array", + "items": { + "$ref": "#/definitions/BackendAddressPool" + }, + "description": "Gets or sets Pools of backend IP addresseses" + }, + "loadBalancingRules": { + "type": "array", + "items": { + "$ref": "#/definitions/LoadBalancingRule" + }, + "description": "Gets or sets loadbalancing rules" + }, + "probes": { + "type": "array", + "items": { + "$ref": "#/definitions/Probe" + }, + "description": "Gets or sets list of Load balancer probes" + }, + "inboundNatRules": { + "type": "array", + "items": { + "$ref": "#/definitions/InboundNatRule" + }, + "description": "Gets or sets list of inbound rules" + }, + "inboundNatPools": { + "type": "array", + "items": { + "$ref": "#/definitions/InboundNatPool" + }, + "description": "Gets or sets inbound NAT pools" + }, + "outboundNatRules": { + "type": "array", + "items": { + "$ref": "#/definitions/OutboundNatRule" + }, + "description": "Gets or sets outbound NAT rules" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the Load balancer resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of Load Balancer" + }, + "LoadBalancer": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/LoadBalancerPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "LoadBalancer resource" + }, + "LoadBalancerListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "description": "Gets a list of LoadBalancers in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListLoadBalancers Api service call" + }, + "AddressSpace": { + "properties": { + "addressPrefixes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets List of address blocks reserved for this virtual network in CIDR notation" + } + }, + "description": "AddressSpace contains an array of IP address ranges that can be used by subnets" + }, + "BgpSettings": { + "properties": { + "asn": { + "type": "integer", + "format": "int64", + "description": "Gets or sets this BGP speaker's ASN" + }, + "bgpPeeringAddress": { + "type": "string", + "description": "Gets or sets the BGP peering address and BGP identifier of this BGP speaker" + }, + "peerWeight": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the weight added to routes learned from this BGP speaker" + } + } + }, + "LocalNetworkGatewayPropertiesFormat": { + "properties": { + "localNetworkAddressSpace": { + "$ref": "#/definitions/AddressSpace", + "description": "Local network site Address space" + }, + "gatewayIpAddress": { + "type": "string", + "description": "IP address of local network gateway." + }, + "bgpSettings": { + "$ref": "#/definitions/BgpSettings", + "description": "Local network gateway's BGP speaker settings" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the LocalNetworkGateway resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the LocalNetworkGateway resource Updating/Deleting/Failed" + } + }, + "description": "LocalNetworkGateway properties" + }, + "LocalNetworkGateway": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/LocalNetworkGatewayPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "A common class for general resource information" + }, + "LocalNetworkGatewayListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/LocalNetworkGateway" + }, + "description": "Gets List of LocalNetworkGateways that exists in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListLocalNetworkGateways Api service call" + }, + "NetworkInterfaceIPConfigurationPropertiesFormat": { + "properties": { + "loadBalancerBackendAddressPools": { + "type": "array", + "items": { + "$ref": "#/definitions/BackendAddressPool" + }, + "description": "Gets or sets the reference of LoadBalancerBackendAddressPool resource" + }, + "loadBalancerInboundNatRules": { + "type": "array", + "items": { + "$ref": "#/definitions/InboundNatRule" + }, + "description": "Gets or sets list of references of LoadBalancerInboundNatRules" + }, + "privateIPAddress": { + "type": "string" + }, + "privateIPAllocationMethod": { + "type": "string", + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic)", + "enum": [ + "Static", + "Dynamic" + ], + "x-ms-enum": { + "name": "IPAllocationMethod", + "modelAsString": true + } + }, + "subnet": { + "$ref": "#/definitions/Subnet" + }, + "publicIPAddress": { + "$ref": "#/definitions/PublicIPAddress" + }, + "provisioningState": { + "type": "string" + } + }, + "description": "Properties of IPConfiguration" + }, + "NetworkInterfaceIPConfiguration": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/NetworkInterfaceIPConfigurationPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "IPConfiguration in a NetworkInterface" + }, + "NetworkInterfaceDnsSettings": { + "properties": { + "dnsServers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets list of DNS servers IP addresses" + }, + "appliedDnsServers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets list of Applied DNS servers IP addresses" + }, + "internalDnsNameLabel": { + "type": "string", + "description": "Gets or sets the Internal DNS name" + }, + "internalFqdn": { + "type": "string", + "description": "Gets or sets full IDNS name in the form, DnsName.VnetId.ZoneId.TopleveSuffix. This is set when the NIC is associated to a VM" + } + }, + "description": "Dns Settings of a network interface" + }, + "NetworkInterfacePropertiesFormat": { + "properties": { + "virtualMachine": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of a VirtualMachine" + }, + "networkSecurityGroup": { + "$ref": "#/definitions/NetworkSecurityGroup", + "description": "Gets or sets the reference of the NetworkSecurityGroup resource" + }, + "ipConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterfaceIPConfiguration" + }, + "description": "Gets or sets list of IPConfigurations of the NetworkInterface" + }, + "dnsSettings": { + "$ref": "#/definitions/NetworkInterfaceDnsSettings", + "description": "Gets or sets DNS Settings in NetworkInterface" + }, + "macAddress": { + "type": "string", + "description": "Gets the MAC Address of the network interface" + }, + "primary": { + "type": "boolean", + "description": "Gets whether this is a primary NIC on a virtual machine" + }, + "enableIPForwarding": { + "type": "boolean", + "description": "Gets or sets whether IPForwarding is enabled on the NIC" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the network interface resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "NetworkInterface properties. " + }, + "NetworkInterface": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/NetworkInterfacePropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "A NetworkInterface in a resource group" + }, + "NetworkInterfaceListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "description": "Gets or sets list of NetworkInterfaces in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListNetworkInterface Api service call" + }, + "SecurityRulePropertiesFormat": { + "properties": { + "description": { + "type": "string", + "description": "Gets or sets a description for this rule. Restricted to 140 chars." + }, + "protocol": { + "type": "string", + "description": "Gets or sets Network protocol this rule applies to. Can be Tcp, Udp or All(*).", + "enum": [ + "Tcp", + "Udp", + "*" + ], + "x-ms-enum": { + "name": "SecurityRuleProtocol", + "modelAsString": true + } + }, + "sourcePortRange": { + "type": "string", + "description": "Gets or sets Source Port or Range. Integer or range between 0 and 65535. Asterix '*' can also be used to match all ports." + }, + "destinationPortRange": { + "type": "string", + "description": "Gets or sets Destination Port or Range. Integer or range between 0 and 65535. Asterix '*' can also be used to match all ports." + }, + "sourceAddressPrefix": { + "type": "string", + "description": "Gets or sets source address prefix. CIDR or source IP range. Asterix '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. " + }, + "destinationAddressPrefix": { + "type": "string", + "description": "Gets or sets destination address prefix. CIDR or source IP range. Asterix '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. " + }, + "access": { + "type": "string", + "description": "Gets or sets network traffic is allowed or denied. Possible values are 'Allow' and 'Deny'", + "enum": [ + "Allow", + "Deny" + ], + "x-ms-enum": { + "name": "SecurityRuleAccess", + "modelAsString": true + } + }, + "priority": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule." + }, + "direction": { + "type": "string", + "description": "Gets or sets the direction of the rule.InBound or Outbound. The direction specifies if rule will be evaluated on incoming or outcoming traffic.", + "enum": [ + "Inbound", + "Outbound" + ], + "x-ms-enum": { + "name": "SecurityRuleDirection", + "modelAsString": true + } + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "required": [ + "protocol", + "sourceAddressPrefix", + "destinationAddressPrefix", + "access", + "direction" + ] + }, + "SecurityRule": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/SecurityRulePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Network security rule" + }, + "NetworkSecurityGroupPropertiesFormat": { + "properties": { + "securityRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SecurityRule" + }, + "description": "Gets or sets Security rules of network security group" + }, + "defaultSecurityRules": { + "type": "array", + "items": { + "$ref": "#/definitions/SecurityRule" + }, + "description": "Gets or sets Default security rules of network security group" + }, + "networkInterfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "description": "Gets collection of references to Network Interfaces" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + }, + "description": "Gets collection of references to subnets" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the network security group resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Network Security Group resource" + }, + "NetworkSecurityGroup": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/NetworkSecurityGroupPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "NetworkSecurityGroup resource" + }, + "NetworkSecurityGroupListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkSecurityGroup" + }, + "description": "Gets List of NetworkSecurityGroups in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListNetworkSecurityGroups Api servive call" + }, + "PublicIPAddressDnsSettings": { + "properties": { + "domainNameLabel": { + "type": "string", + "description": "Gets or sets the Domain name label.The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system." + }, + "fqdn": { + "type": "string", + "description": "Gets the FQDN, Fully qualified domain name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone." + }, + "reverseFqdn": { + "type": "string", + "description": "Gets or Sests the Reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. " + } + }, + "description": "Contains FQDN of the DNS record associated with the public IP address" + }, + "PublicIPAddressPropertiesFormat": { + "properties": { + "publicIPAllocationMethod": { + "type": "string", + "description": "Gets or sets PublicIP allocation method (Static/Dynamic)", + "enum": [ + "Static", + "Dynamic" + ], + "x-ms-enum": { + "name": "IPAllocationMethod", + "modelAsString": true + } + }, + "ipConfiguration": { + "$ref": "#/definitions/IPConfiguration" + }, + "dnsSettings": { + "$ref": "#/definitions/PublicIPAddressDnsSettings", + "description": "Gets or sets FQDN of the DNS record associated with the public IP address" + }, + "ipAddress": { + "type": "string" + }, + "idleTimeoutInMinutes": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the Idletimeout of the public IP address" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "PublicIpAddress properties" + }, + "PublicIPAddress": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/PublicIPAddressPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "PublicIPAddress resource" + }, + "PublicIPAddressListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/PublicIPAddress" + }, + "description": "Gets List of publicIP addresses that exists in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListPublicIpAddresses Api service call" + }, + "RoutePropertiesFormat": { + "properties": { + "addressPrefix": { + "type": "string", + "description": "Gets or sets the destination CIDR to which the route applies." + }, + "nextHopType": { + "type": "string", + "description": "Gets or sets the type of Azure hop the packet should be sent to.", + "enum": [ + "VirtualNetworkGateway", + "VnetLocal", + "Internet", + "VirtualAppliance", + "None" + ], + "x-ms-enum": { + "name": "RouteNextHopType", + "modelAsString": true + } + }, + "nextHopIpAddress": { + "type": "string", + "description": "Gets or sets the IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance." + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the resource Updating/Deleting/Failed" + } + }, + "required": [ + "nextHopType" + ], + "description": "Route resource" + }, + "Route": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/RoutePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Route resource" + }, + "RouteTablePropertiesFormat": { + "properties": { + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/Route" + }, + "description": "Gets or sets Routes in a Route Table" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + }, + "description": "Gets collection of references to subnets" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the resource Updating/Deleting/Failed" + } + }, + "description": "Route Table resource" + }, + "RouteTable": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/RouteTablePropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "RouteTable resource" + }, + "RouteTableListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/RouteTable" + }, + "description": "Gets List of RouteTables in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListRouteTable Api servive call" + }, + "RouteListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Route" + }, + "description": "Gets List of Routes in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListRoute Api servive call" + }, + "SecurityRuleListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/SecurityRule" + }, + "description": "Gets security rules in a network security group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListSecurityRule Api service callRetrieves all security rules that belongs to a network security group" + }, + "IPConfigurationPropertiesFormat": { + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the IP Configuration" + }, + "privateIPAllocationMethod": { + "type": "string", + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic)", + "enum": [ + "Static", + "Dynamic" + ], + "x-ms-enum": { + "name": "IPAllocationMethod", + "modelAsString": true + } + }, + "subnet": { + "$ref": "#/definitions/Subnet", + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "$ref": "#/definitions/PublicIPAddress", + "description": "Gets or sets the reference of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of IPConfiguration" + }, + "IPConfiguration": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/IPConfigurationPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "IPConfiguration" + }, + "SubnetPropertiesFormat": { + "properties": { + "addressPrefix": { + "type": "string", + "description": "Gets or sets Address prefix for the subnet." + }, + "networkSecurityGroup": { + "$ref": "#/definitions/NetworkSecurityGroup", + "description": "Gets or sets the reference of the NetworkSecurityGroup resource" + }, + "routeTable": { + "$ref": "#/definitions/RouteTable", + "description": "Gets or sets the reference of the RouteTable resource" + }, + "ipConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/IPConfiguration" + }, + "description": "Gets array of references to the network interface IP configurations using subnet" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "Subnet": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/SubnetPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "Subnet in a VirtualNework resource" + }, + "SubnetListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + }, + "description": "Gets the subnets in a virtual network" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListSubnets Api service callRetrieves all subnet that belongs to a virtual network" + }, + "UsageName": { + "properties": { + "value": { + "type": "string", + "description": "Gets or sets a string describing the resource name." + }, + "localizedValue": { + "type": "string", + "description": "Gets or sets a localized string describing the resource name." + } + }, + "description": "The Usage Names." + }, + "Usage": { + "properties": { + "unit": { + "type": "string", + "description": "Gets or sets an enum describing the unit of measurement.", + "enum": [ + "Count" + ], + "x-ms-enum": { + "name": "UsageUnit", + "modelAsString": true + } + }, + "currentValue": { + "type": "integer", + "format": "int64", + "description": "Gets or sets the current value of the usage." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Gets or sets the limit of usage." + }, + "name": { + "$ref": "#/definitions/UsageName", + "description": "Gets or sets the name of the type of usage." + } + }, + "required": [ + "unit", + "currentValue", + "limit", + "name" + ], + "description": "Describes Network Resource Usage." + }, + "UsagesListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Usage" + }, + "description": "Gets or sets the list Network Resource Usages." + } + }, + "description": "The List Usages operation response." + }, + "VirtualNetworkGatewayIPConfigurationPropertiesFormat": { + "properties": { + "privateIPAddress": { + "type": "string", + "description": "Gets or sets the privateIPAddress of the IP Configuration" + }, + "privateIPAllocationMethod": { + "type": "string", + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic)", + "enum": [ + "Static", + "Dynamic" + ], + "x-ms-enum": { + "name": "IPAllocationMethod", + "modelAsString": true + } + }, + "subnet": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the subnet resource" + }, + "publicIPAddress": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the PublicIP resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + }, + "description": "Properties of VirtualNetworkGatewayIPConfiguration" + }, + "VirtualNetworkGatewayIPConfiguration": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualNetworkGatewayIPConfigurationPropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "IpConfiguration for Virtual network gateway" + }, + "VirtualNetworkGatewayPropertiesFormat": { + "properties": { + "ipConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualNetworkGatewayIPConfiguration" + }, + "description": "IpConfigurations for Virtual network gateway." + }, + "gatewayType": { + "type": "string", + "description": "The type of this virtual network gateway.", + "enum": [ + "Vpn", + "ExpressRoute" + ], + "x-ms-enum": { + "name": "VirtualNetworkGatewayType", + "modelAsString": true + } + }, + "vpnType": { + "type": "string", + "description": "The type of this virtual network gateway.", + "enum": [ + "PolicyBased", + "RouteBased" + ], + "x-ms-enum": { + "name": "VpnType", + "modelAsString": true + } + }, + "enableBgp": { + "type": "boolean", + "description": "EnableBgp Flag" + }, + "gatewayDefaultSite": { + "$ref": "#/definitions/SubResource", + "description": "Gets or sets the reference of the LocalNetworkGateway resource which represents Local network site having default routes. Assign Null value in case of removing existing default site setting." + }, + "sku": { + "$ref": "#/definitions/VirtualNetworkGatewaySku", + "description": "Gets or sets the reference of the VirtualNetworkGatewaySku resource which represents the sku selected for Virtual network gateway." + }, + "vpnClientConfiguration": { + "$ref": "#/definitions/VpnClientConfiguration", + "description": "Gets or sets the reference of the VpnClientConfiguration resource which represents the P2S VpnClient configurations." + }, + "bgpSettings": { + "$ref": "#/definitions/BgpSettings", + "description": "Virtual network gateway's BGP speaker settings" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the VirtualNetworkGateway resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the VirtualNetworkGateway resource Updating/Deleting/Failed" + } + }, + "description": "VirtualNeworkGateay properties" + }, + "VirtualNetworkGateway": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualNetworkGatewayPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "A common class for general resource information" + }, + "VpnClientConfiguration": { + "properties": { + "vpnClientAddressPool": { + "$ref": "#/definitions/AddressSpace", + "description": "Gets or sets the reference of the Address space resource which represents Address space for P2S VpnClient." + }, + "vpnClientRootCertificates": { + "type": "array", + "items": { + "$ref": "#/definitions/VpnClientRootCertificate" + }, + "description": "VpnClientRootCertificate for Virtual network gateway." + }, + "vpnClientRevokedCertificates": { + "type": "array", + "items": { + "$ref": "#/definitions/VpnClientRevokedCertificate" + }, + "description": "VpnClientRevokedCertificate for Virtual network gateway." + } + }, + "description": "VpnClientConfiguration for P2S client" + }, + "VirtualNetworkGatewaySku": { + "properties": { + "name": { + "type": "string", + "description": "Gateway sku name -Basic/HighPerformance/Standard", + "enum": [ + "Basic", + "HighPerformance", + "Standard" + ], + "x-ms-enum": { + "name": "VirtualNetworkGatewaySkuName", + "modelAsString": true + } + }, + "tier": { + "type": "string", + "description": "Gateway sku tier -Basic/HighPerformance/Standard", + "enum": [ + "Basic", + "HighPerformance", + "Standard" + ], + "x-ms-enum": { + "name": "VirtualNetworkGatewaySkuTier", + "modelAsString": true + } + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "The capacity" + } + }, + "description": "VirtualNetworkGatewaySku details" + }, + "VpnClientParameters": { + "properties": { + "ProcessorArchitecture": { + "type": "string", + "description": "VPN client Processor Architecture -Amd64/X86", + "enum": [ + "Amd64", + "X86" + ], + "x-ms-enum": { + "name": "ProcessorArchitecture", + "modelAsString": true + } + } + }, + "description": "VpnClientParameters" + }, + "VirtualNetworkGatewayConnectionPropertiesFormat": { + "properties": { + "authorizationKey": { + "type": "string", + "description": "The authorizationKey." + }, + "virtualNetworkGateway1": { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + "virtualNetworkGateway2": { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + "localNetworkGateway2": { + "$ref": "#/definitions/LocalNetworkGateway" + }, + "connectionType": { + "type": "string", + "description": "Gateway connection type -Ipsec/Dedicated/VpnClient/Vnet2Vnet", + "enum": [ + "IPsec", + "Vnet2Vnet", + "ExpressRoute", + "VPNClient" + ], + "x-ms-enum": { + "name": "VirtualNetworkGatewayConnectionType", + "modelAsString": true + } + }, + "routingWeight": { + "type": "integer", + "format": "int32", + "description": "The Routing weight." + }, + "sharedKey": { + "type": "string", + "description": "The Ipsec share key." + }, + "connectionStatus": { + "type": "string", + "description": "Virtual network Gateway connection status", + "enum": [ + "Unknown", + "Connecting", + "Connected", + "NotConnected" + ], + "x-ms-enum": { + "name": "VirtualNetworkGatewayConnectionStatus", + "modelAsString": true + } + }, + "egressBytesTransferred": { + "type": "integer", + "format": "int64", + "description": "The Egress Bytes Transferred in this connection" + }, + "ingressBytesTransferred": { + "type": "integer", + "format": "int64", + "description": "The Ingress Bytes Transferred in this connection" + }, + "peer": { + "$ref": "#/definitions/SubResource", + "description": "The reference to peerings resource." + }, + "enableBgp": { + "type": "boolean", + "description": "EnableBgp Flag" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the VirtualNetworkGatewayConnection resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the VirtualNetworkGatewayConnection resource Updating/Deleting/Failed" + } + }, + "description": "VirtualNeworkGatewayConnection properties" + }, + "VirtualNetworkGatewayConnection": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualNetworkGatewayConnectionPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "A common class for general resource information" + }, + "VpnClientRevokedCertificatePropertiesFormat": { + "properties": { + "thumbprint": { + "type": "string", + "description": "Gets or sets the revoked Vpn client certificate thumbprint" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the VPN client revoked certificate resource Updating/Deleting/Failed" + } + }, + "description": "Properties of the revoked VPN client certificate of virtual network gateway" + }, + "VpnClientRevokedCertificate": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VpnClientRevokedCertificatePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "VPN client revoked certificate of virtual network gateway" + }, + "VpnClientRootCertificatePropertiesFormat": { + "properties": { + "publicCertData": { + "type": "string", + "description": "Gets or sets the certificate public data" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the VPN client root certificate resource Updating/Deleting/Failed" + } + }, + "description": "Properties of SSL certificates of application gateway" + }, + "VpnClientRootCertificate": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VpnClientRootCertificatePropertiesFormat" + }, + "name": { + "type": "string", + "description": "Gets name of the resource that is unique within a resource group. This name can be used to access the resource" + }, + "etag": { + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/SubResource" + } + ], + "description": "VPN client root certificate of virtual network gateway" + }, + "ConnectionSharedKeyResult": { + "properties": { + "value": { + "type": "string", + "description": "The virtual network connection shared key value" + } + }, + "description": "Response for CheckConnectionSharedKey Api servive call" + }, + "VirtualNetworkGatewayConnectionListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualNetworkGatewayConnection" + }, + "description": "Gets List of VirtualNetworkGatewayConnections that exists in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListVirtualNetworkGatewayConnections Api service call" + }, + "ConnectionResetSharedKey": { + "properties": { + "keyLength": { + "type": "integer", + "format": "int64", + "description": "The virtual network connection reset shared key length" + } + } + }, + "ConnectionSharedKey": { + "properties": { + "value": { + "type": "string", + "description": "The virtual network connection shared key value" + } + }, + "description": "Response for GetConnectionSharedKey Api servive call" + }, + "VirtualNetworkGatewayListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualNetworkGateway" + }, + "description": "Gets List of VirtualNetworkGateways that exists in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListVirtualNetworkGateways Api service call" + }, + "DhcpOptions": { + "properties": { + "dnsServers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets list of DNS servers IP addresses" + } + }, + "description": "DHCPOptions contains an array of DNS servers available to VMs deployed in the virtual networkStandard DHCP option for a subnet overrides VNET DHCP options." + }, + "VirtualNetworkPropertiesFormat": { + "properties": { + "addressSpace": { + "$ref": "#/definitions/AddressSpace", + "description": "Gets or sets AddressSpace that contains an array of IP address ranges that can be used by subnets" + }, + "dhcpOptions": { + "$ref": "#/definitions/DhcpOptions", + "description": "Gets or sets DHCPOptions that contains an array of DNS servers available to VMs deployed in the virtual network" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + }, + "description": "Gets or sets List of subnets in a VirtualNetwork" + }, + "resourceGuid": { + "type": "string", + "description": "Gets or sets resource guid property of the VirtualNetwork resource" + }, + "provisioningState": { + "type": "string", + "description": "Gets or sets Provisioning state of the PublicIP resource Updating/Deleting/Failed" + } + } + }, + "VirtualNetwork": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualNetworkPropertiesFormat" + }, + "etag": { + "type": "string", + "description": "Gets a unique read-only string that changes whenever the resource is updated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "Virtual Network resource" + }, + "VirtualNetworkListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualNetwork" + }, + "description": "Gets list of VirtualNetworks in a resource group" + }, + "nextLink": { + "type": "string", + "description": "Gets the URL to get the next set of results." + } + }, + "description": "Response for ListVirtualNetworks Api servive call" + }, + "DnsNameAvailabilityResult": { + "properties": { + "available": { + "type": "boolean", + "description": "Domain availability (True/False)" + } + }, + "description": "Response for CheckDnsNameAvailability Api servive call" + }, + "ErrorDetails": { + "properties": { + "code": { + "type": "string" + }, + "target": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "Error": { + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "target": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorDetails" + } + }, + "innerError": { + "type": "string" + } + } + }, + "AzureAsyncOperationResult": { + "properties": { + "status": { + "type": "string", + "description": "Status of the AzureAsuncOperation", + "enum": [ + "InProgress", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "NetworkOperationStatus", + "modelAsString": true + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "description": "The response body contains the status of the specified asynchronous operation, indicating whether it has succeeded, is inprogress, or has failed. Note that this status is distinct from the HTTP status code returned for the Get Operation Status operation itself. If the asynchronous operation succeeded, the response body includes the HTTP status code for the successful request. If the asynchronous operation failed, the response body includes the HTTP status code for the failed request and error information regarding the failure." + }, + "Resource": { + "properties": { + "id": { + "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" + } + }, + "x-ms-azure-resource": true + }, + "SubResource": { + "properties": { + "id": { + "type": "string", + "description": "Resource Id" + } + }, + "x-ms-azure-resource": 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." + } + } +} From 18c6a8410fad2be69132e3f58eedaadc50f445b9 Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Wed, 25 May 2016 15:08:18 -0700 Subject: [PATCH 10/14] Add CognitiveServices test --- .../AcceptanceTests.cs | 6 + ...Generator.AzureResourceSchema.Tests.csproj | 6 + .../Microsoft.CognitiveServices.json | 124 +++ .../2016-02-01-preview/cognitiveservices.json | 758 ++++++++++++++++++ 4 files changed, 894 insertions(+) create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CognitiveServices/2016-02-01-preview/Microsoft.CognitiveServices.json create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/CognitiveServices/2016-02-01-preview/cognitiveservices.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs index 569fa73008089..dd876018af1fb 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs @@ -29,6 +29,12 @@ public static void Cdn_2016_04_02() RunSwaggerTest("CDN", "2016-04-02", "cdn.json"); } + [Fact] + public static void CognitiveServices_2016_02_01_preview() + { + RunSwaggerTest("CognitiveServices", "2016-02-01-preview", "cognitiveservices.json"); + } + [Fact] public static void Compute_2015_06_15() { 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 81edaf80e3be1..49b27a2b2e9d0 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj @@ -126,6 +126,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -171,6 +174,9 @@ PreserveNewest + + PreserveNewest + diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CognitiveServices/2016-02-01-preview/Microsoft.CognitiveServices.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CognitiveServices/2016-02-01-preview/Microsoft.CognitiveServices.json new file mode 100644 index 0000000000000..3e62c08aaf8c1 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/CognitiveServices/2016-02-01-preview/Microsoft.CognitiveServices.json @@ -0,0 +1,124 @@ +{ + "id": "http://schema.management.azure.com/schemas/2016-02-01-preview/Microsoft.CognitiveServices.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.CognitiveServices", + "description": "Microsoft CognitiveServices Resource Types", + "resourceDefinitions": { + "accounts": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.CognitiveServices/accounts" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2016-02-01-preview" + ] + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "kind": { + "oneOf": [ + { + "type": "string", + "enum": [ + "ComputerVision", + "Emotion", + "Face", + "LUIS", + "Recommendations", + "Speech", + "TextAnalytics", + "WebLM" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Required. Indicates the type of cognitive service account. Possible values include: 'ComputerVision', 'Emotion', 'Face', 'LUIS', 'Recommendations', 'Speech', 'TextAnalytics', 'WebLM'" + }, + "location": { + "type": "string", + "description": "Required. Gets or sets the location of the resource. This will be one of the supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.). The geo region of a resource cannot be changed once it is created, but if an identical geo region is specified on update the request will succeed." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 characters and value no greater than 256 characters." + }, + "properties": { + "oneOf": [ + { + "type": "object" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Must exist in the request. Must not be null." + } + }, + "required": [ + "type", + "apiVersion", + "sku", + "kind", + "location", + "properties" + ], + "description": "Microsoft.CognitiveServices/accounts" + } + }, + "definitions": { + "Sku": { + "type": "object", + "properties": { + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "F0", + "S0", + "S1", + "S2", + "S3", + "S4" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the sku name. Required for account creation, optional for update. Possible values include: 'F0', 'S0', 'S1', 'S2', 'S3', 'S4'" + } + }, + "required": [ + "name" + ], + "description": "The SKU of the cognitive services account." + } + } +} diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/CognitiveServices/2016-02-01-preview/cognitiveservices.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/CognitiveServices/2016-02-01-preview/cognitiveservices.json new file mode 100644 index 0000000000000..c91ab40c4db35 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/CognitiveServices/2016-02-01-preview/cognitiveservices.json @@ -0,0 +1,758 @@ +{ + "swagger": "2.0", + "info": { + "title": "CognitiveServicesManagementClient", + "description": "Cognitive Services Management Client", + "version": "2016-02-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}": { + "put": { + "tags": [ + "CognitiveServicesAccounts" + ], + "description": "Create Cognitive Services Account. Accounts is a resource group wide resource type. It holds the keys for developer to access intelligent APIs. It's also the resource type for billing.", + "operationId": "CognitiveServicesAccounts_Create", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the cognitive services account within the specified resource group. Cognitive Services account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "maxLength": 24, + "minLength": 3, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]*$" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CognitiveServicesAccountCreateParameters" + }, + "description": "The parameters to provide for the created account." + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "If resource is created successfully or already existed, the service should return 200 (OK).", + "schema": { + "$ref": "#/definitions/CognitiveServicesAccount" + } + }, + "201": { + "description": "If resource is created successfully, the service should return 201 (OK).", + "schema": { + "$ref": "#/definitions/CognitiveServicesAccount" + } + }, + "default": { + "description": "Error response describing why the operation failed", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "patch": { + "tags": [ + "CognitiveServicesAccounts" + ], + "description": "Updates a Cognitive Services account", + "operationId": "CognitiveServicesAccounts_Update", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the cognitive services account within the specified resource group. Cognitive Services account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "maxLength": 24, + "minLength": 3, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]*$" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CognitiveServicesAccountUpdateParameters" + }, + "description": "The parameters to provide for the created account." + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. ", + "schema": { + "$ref": "#/definitions/CognitiveServicesAccount" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "delete": { + "tags": [ + "CognitiveServicesAccounts" + ], + "description": "Deletes a Cognitive Services account from the resource group. ", + "operationId": "CognitiveServicesAccounts_Delete", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the cognitive services account within the specified resource group. Cognitive Services account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "maxLength": 24, + "minLength": 3, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]*$" + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "A 200 (OK) should be returned if the object exists and was deleted successfully;" + }, + "204": { + "description": "a 204 (NoContent) should be used if the resource does not exist and the request is well formed." + }, + "default": { + "description": "Error response describing why the operation failed", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "get": { + "tags": [ + "CognitiveServicesAccounts" + ], + "description": "Returns a Cognitive Services account specified by the parameters.", + "operationId": "CognitiveServicesAccounts_GetProperties", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the cognitive services account within the specified resource group. Cognitive Services account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "maxLength": 24, + "minLength": 3, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]*$" + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully.\nFor a detailed explanation of each field in the response body, please refer to the request body description in the PUT resource section. The only GET specific properties are “name,” “type” and “id.”\nField\tDescription\nKind\trequired. String.\n\tThe API set for this API account. It can be \n\t· a single API, for example: Face API, Vision API, Speech API. \n\ta bundle of APIs: Face + Speech, Vision + Emotion, etc.\nsku.name\tRequired.\n\tThe pricing tier/plan of this API. Could be: \n\tF0 - Free\n\tB0 - Basic\n\tS0 - Standard\n\tP0 - Premium\n", + "schema": { + "$ref": "#/definitions/CognitiveServicesAccount" + }, + "examples": { + "application/json": "{\n “id”: “/subscriptions/{id}/resourceGroups/{group}/providers/{rpns}/{type}/{name}”,\n “name”: “{name}”,\n “type”: “Microsoft.CognitiveSerices/accounts”,\n \"location\": \"North US\",\n \"tags\": {\n \"key1\": \"value 1\",\n \"key2\": \"value 2\"\n },\n \"kind\" : \"resource kind\",\n \"sku\": {\n\t \"name\": \"sku code\"\n\t} \n “etag”: “00000000-0000-0000-0000-000000000000”,\n \"properties\": { }\n}" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource does not exist, 404 (NotFound) should be returned.", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts": { + "get": { + "tags": [ + "CognitiveServicesAccounts" + ], + "description": "Returns all the resources of a particular type belonging to a resource group", + "operationId": "CognitiveServicesAccounts_ListByResourceGroup", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.\nThe nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses here. If a resource provider does not support paging, it should return the same body (JSON object with “value” property) but omit nextLink entirely (or set to null, *not* empty string) for future compatibility.\nThe nextLink should be implemented using following query parameters:\n· skipToken: opaque token that allows the resource provider to skip resources already enumerated. This value is defined and returned by the RP after first request via nextLink.\n· top: the optional client query parameter which defines the maximum number of records to be returned by the server.\nImplementation details:\n· NextLink may include all the query parameters (specifically OData $filter) used by the client in the first query. \n· Server may return less records than requested with nextLink. Returning zero records with NextLink is an acceptable response. \nClients must fetch records until the nextLink is not returned back / null. Clients should never rely on number of returned records to determinate if pagination is completed.", + "schema": { + "$ref": "#/definitions/CognitiveServicesAccountListResult" + }, + "examples": { + "application/json": "{\n “value”: [\n {\n “id”: “{url to resource 1}”,\n “name”: “Name1”,\n “type”: “Microsoft.CognitiveServices/accounts”,\n \"location\": \"North US\" \n \"kind\" : \"resource kind\",\n \"sku\": {\n\t \"name\": \"sku code\"\n\t }, \n \"etag\": \"00000000-0000-0000-0000-000000000000\",\n \"properties\": { }\n },\n {\n “id”: “{url to resource 2}”,\n “name”: “Name2”,\n “type”: “Microsoft.CognitiveServices/accounts”,\n \"location\": \"North US\",\n \"kind\" : \"resource kind\",\n \"sku\": {\n\t \"name\": \"sku code\"\n\t }, \n \"etag\": \"00000000-0000-0000-0000-000000000000\",\n \"properties\": { }\n }\n ],\n “nextLink”: “{originalRequestUrl}?$skipToken={opaqueString}”\n}" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource group does not exist, 404 (NotFound) will be returned.", + "schema": { + "$ref": "#/definitions/Error" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/accounts": { + "get": { + "tags": [ + "CognitiveServicesAccounts" + ], + "description": "Returns all the resources of a particular type belonging to a subscription.", + "operationId": "CognitiveServicesAccounts_List", + "parameters": [ + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.\nThe nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses. If a resource provider does not support paging, it should return the same body but leave nextLink empty for future compatibility.\nFor a detailed explanation of each field in the response body, please refer to the request body description in the PUT resource section. ", + "schema": { + "$ref": "#/definitions/CognitiveServicesAccountListResult" + }, + "examples": { + "application/json": "{\n “value”: [\n {\n “id”: “{url to resource 1}”,\n “name”: “Name1”,\n “type”: “Microsoft.CognitiveServices/accounts”,\n \"location\": \"North US\" \n \"kind\" : \"resource kind\",\n \"sku\": {\n \"name\": \"sku code\"\n }, \n \"etag\": \"00000000-0000-0000-0000-000000000000\",\n \"properties\": { }\n },\n {\n “id”: “{url to resource 2}”,\n “name”: “Name2”,\n “type”: “Microsoft.CognitiveServices/accounts”,\n \"location\": \"North US\",\n \"kind\" : \"resource kind\",\n \"sku\": {\n \"name\": \"sku code\"\n }, \n \"etag\": \"00000000-0000-0000-0000-000000000000\",\n \"properties\": { }\n }\n ],\n “nextLink”: “{originalRequestUrl}?$skipToken={opaqueString}”\n}\n" + } + }, + "default": { + "description": "Error response describing why the operation failed", + "schema": { + "$ref": "#/definitions/Error" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/listKeys": { + "post": { + "tags": [ + "CognitiveServicesAccounts" + ], + "operationId": "CognitiveServicesAccounts_ListKeys", + "description": "Lists the account keys for the specified Cognitive Services account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the cognitive services account within the specified resource group. Congitive Services account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. ", + "maxLength": 24, + "minLength": 3, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]*$" + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Returns with a response body containing the subscription keys for the resource: key1\nThe first API key for authentication when client calls the API endpoint.\n\nkey2\nThe second API key for authentication when client calls the API endpoint.", + "schema": { + "$ref": "#/definitions/CognitiveServicesAccountKeys" + }, + "examples": { + "application/json": { + "key1": "xxxx", + "key2": "xxxxx" + } + } + }, + "default": { + "description": "Error response describing why the operation failed", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/regenerateKey": { + "post": { + "tags": [ + "CognitiveServicesAccounts" + ], + "operationId": "CognitiveServicesAccounts_RegenerateKey", + "description": "Regenerates the specified account key for the specified Cognitive Services account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the cognitive services account within the specified resource group. Cognitive Services account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. ", + "maxLength": 24, + "minLength": 3, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]*$" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RegenerateKeyParameters" + }, + "description": "regenerate key parameters." + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/CognitiveServicesAccountKeys" + } + }, + "default": { + "description": "Error response describing why the operation failed", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/skus": { + "get": { + "tags": [ + "CognitiveServicesAccounts" + ], + "description": "List available SKUs for the requested Cognitive Services account", + "operationId": "CognitiveServicesAccounts_ListSkus", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the user's subscription." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the cognitive services account within the specified resource group. Cognitive Services account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. ", + "maxLength": 24, + "minLength": 3, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]*$" + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully.\nFor a detailed explanation of each field in the response body, please refer to the request body description in the PUT resource section. The only GET specific properties are “name,” “type” and “id.”\nField\tDescription\nsku\tRequired, object\n\tThe exact set of keys that define this sku. This matches the fields on the respective resource.\nsku.name\tRequired, string\n\tThe name of the SKU. This is typically a letter + number code, such as A0 or P3\nsku.tier\tRequired, string\n\tThe tier of this particular SKU. Typically one of:\n\t· Free\n\t· Basic\n\t· Standard\n\t· Premium\n", + "schema": { + "$ref": "#/definitions/CognitiveServicesAccountEnumerateSkusResult" + }, + "examples": { + "application/json": "{\n \"value\": [\n {\n \"resourceType\": \"Microsoft.CognitiveServices/accounts\"\n \"sku\": {\n \"name\": \"sku name\",\n \"tier\": \"sku tier\"\n }\n },\n {\n \"resourceType\": \"Microsoft.CognitiveServices/accounts\"\n \"sku\": {\n \"name\": \"sku name\",\n \"tier\": \"sku tier\"\n }\n }\n ]\n}" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource does not exist, 404 (NotFound) will be returned.", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + } + }, + "definitions": { + "CognitiveServicesAccountCreateParameters": { + "properties": { + "sku": { + "$ref": "#/definitions/Sku" + }, + "kind": { + "type": "string", + "description": "Required. Indicates the type of cognitive service account.", + "enum": [ + "ComputerVision", + "Emotion", + "Face", + "LUIS", + "Recommendations", + "Speech", + "TextAnalytics", + "WebLM" + ], + "x-ms-enum": { + "name": "Kind", + "modelAsString": false + } + }, + "location": { + "type": "string", + "description": "Required. Gets or sets the location of the resource. This will be one of the supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.). The geo region of a resource cannot be changed once it is created, but if an identical geo region is specified on update the request will succeed." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 characters and value no greater than 256 characters." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/CognitiveServicesAccountPropertiesCreateParameters", + "description": "Must exist in the request. Must not be null." + } + }, + "required": [ + "sku", + "kind", + "location", + "properties" + ], + "description": "The parameters to provide for the account." + }, + "CognitiveServicesAccountUpdateParameters": { + "properties": { + "sku": { + "$ref": "#/definitions/Sku" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 characters and value no greater than 256 characters." + } + }, + "description": "The parameters to provide for the account." + }, + "Sku": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the sku name. Required for account creation, optional for update.", + "enum": [ + "F0", + "S0", + "S1", + "S2", + "S3", + "S4" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": false + } + }, + "tier": { + "readOnly": true, + "type": "string", + "description": "Gets the sku tier. This is based on the SKU name.", + "enum": [ + "Free", + "Standard", + "Premium" + ], + "x-ms-enum": { + "name": "SkuTier", + "modelAsString": false + } + } + }, + "required": [ + "name" + ], + "description": "The SKU of the cognitive services account." + }, + "CognitiveServicesAccountPropertiesCreateParameters": { + "description": "required empty proprties object. Must be an empty object, and must exist in the request." + }, + "CognitiveServicesAccount": { + "description": "Cognitive Services Account is an Azure resource representing the provisioned account, its type, location and SKU.", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "Entity Tag" + }, + "id": { + "type": "string", + "description": "The id of the created account" + }, + "kind": { + "type": "string", + "description": "Type of cognitive service account." + }, + "location": { + "type": "string", + "description": "The location of the resource" + }, + "name": { + "type": "string", + "description": "The name of the created account" + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/CognitiveServicesAccountProperties" + }, + "sku": { + "$ref": "#/definitions/Sku" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 characters and value no greater than 256 characters." + }, + "type": { + "type": "string", + "description": "Resource type" + } + }, + "x-ms-azure-resource": true + }, + "CognitiveServicesAccountListResult": { + "properties": { + "value": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/CognitiveServicesAccount" + }, + "description": "Gets the list of Cognitive Services accounts and their properties." + } + }, + "description": "The list of cognitive services accounts operation response." + }, + "CognitiveServicesAccountProperties": { + "properties": { + "provisioningState": { + "readOnly": true, + "type": "string", + "description": "Gets the status of the cognitive services account at the time the operation was called.", + "enum": [ + "Creating", + "ResolvingDNS", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": false + } + }, + "endpoint": { + "type": "string", + "description": "Endpoint of the created account" + } + } + }, + "CognitiveServicesAccountKeys": { + "properties": { + "key1": { + "type": "string", + "description": "Gets the value of key 1." + }, + "key2": { + "type": "string", + "description": "Gets the value of key 2." + } + }, + "description": "The access keys for the cognitive services account." + }, + "RegenerateKeyParameters": { + "properties": { + "keyName": { + "type": "string", + "description": "key name to generate (Key1|Key2)", + "enum": [ + "Key1", + "Key2" + ], + "x-ms-enum": { + "name": "KeyName", + "modelAsString": false + } + } + }, + "description": "Regenerate key parameters." + }, + "CognitiveServicesAccountEnumerateSkusResult": { + "properties": { + "value": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/CognitiveServicesResourceAndSku" + }, + "description": "Gets the list of Cognitive Services accounts and their properties." + } + }, + "description": "The list of cognitive services accounts operation response." + }, + "CognitiveServicesResourceAndSku": { + "properties": { + "resourceType": { + "type": "string", + "description": "Resource Namespace and Type" + }, + "sku": { + "$ref": "#/definitions/Sku" + } + } + }, + "Error": { + "properties": { + "error": { + "$ref": "#/definitions/ErrorBody" + } + } + }, + "ErrorBody": { + "properties": { + "code": { + "type": "string", + "description": "error code" + }, + "message": { + "type": "string", + "description": "error message" + } + }, + "required": [ + "code", + "message" + ] + } + }, + "parameters": { + "subscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "Azure Subscription ID.", + "required": true, + "type": "string" + }, + "apiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Version of the API to be used with the client request. Current version is 2016-02-01-preview" + } + } +} \ No newline at end of file From 81937b88f4e08bcea41130f413a69977f3beb727 Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Thu, 26 May 2016 11:07:29 -0700 Subject: [PATCH 11/14] Add DataLakeAnalytics acceptance test --- .../AcceptanceTests.cs | 6 + ...Generator.AzureResourceSchema.Tests.csproj | 6 + .../Microsoft.DataLakeAnalytics.json | 202 +++ .../2015-10-01-preview/account.json | 1584 +++++++++++++++++ 4 files changed, 1798 insertions(+) create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DataLakeAnalytics/2015-10-01-preview/Microsoft.DataLakeAnalytics.json create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DataLakeAnalytics/2015-10-01-preview/account.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs index dd876018af1fb..a58df45e88edf 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs @@ -47,6 +47,12 @@ public static void Compute_2016_03_30() RunSwaggerTest("Compute", "2016-03-30", "compute.json"); } + [Fact] + public static void DataLakeAnalytics_2015_10_01_preview() + { + RunSwaggerTest("DataLakeAnalytics", "2015-10-01-preview", "account.json"); + } + [Fact] public static void Dns_2015_05_04_preview() { 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 49b27a2b2e9d0..bdf445243fc03 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj @@ -129,6 +129,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -177,6 +180,9 @@ PreserveNewest + + PreserveNewest + diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DataLakeAnalytics/2015-10-01-preview/Microsoft.DataLakeAnalytics.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DataLakeAnalytics/2015-10-01-preview/Microsoft.DataLakeAnalytics.json new file mode 100644 index 0000000000000..f96e011b59dcb --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DataLakeAnalytics/2015-10-01-preview/Microsoft.DataLakeAnalytics.json @@ -0,0 +1,202 @@ +{ + "id": "http://schema.management.azure.com/schemas/2015-10-01-preview/Microsoft.DataLakeAnalytics.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.DataLakeAnalytics", + "description": "Microsoft DataLakeAnalytics Resource Types", + "resourceDefinitions": { + "accounts": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.DataLakeAnalytics/accounts" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-10-01-preview" + ] + }, + "location": { + "type": "string", + "description": "Gets or sets the account regional location." + }, + "name": { + "type": "string", + "description": "Gets or sets the account name." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the value of custom properties." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/DataLakeAnalyticsAccountProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties defined by Data Lake Analytics all properties are specific to each resource provider." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DataLakeAnalytics/accounts" + } + }, + "definitions": { + "DataLakeAnalyticsAccountProperties": { + "type": "object", + "properties": { + "defaultDataLakeStoreAccount": { + "type": "string", + "description": "Gets or sets the default data lake storage account associated with this Data Lake Analytics account." + }, + "maxDegreeOfParallelism": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the maximum supported degree of parallelism for this acocunt." + }, + "maxJobCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the maximum supported jobs running under the account at the same time." + }, + "dataLakeStoreAccounts": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/DataLakeStoreAccountInfo" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of Data Lake storage accounts associated with this account." + }, + "storageAccounts": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAccountInfo" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the list of Azure Blob storage accounts associated with this account." + } + }, + "description": "The account specific properties that are associated with an underlying Data Lake Analytics account." + }, + "DataLakeStoreAccountInfo": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the account name of the Data Lake Store account." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/DataLakeStoreAccountInfoProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties associated with this Data Lake Store account." + } + }, + "required": [ + "name" + ], + "description": "Data Lake Store account information." + }, + "DataLakeStoreAccountInfoProperties": { + "type": "object", + "properties": { + "suffix": { + "type": "string", + "description": "Gets or sets the optional suffix for the Data Lake Store account." + } + }, + "description": "Data Lake Store account properties information." + }, + "StorageAccountInfo": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the account name associated with the Azure storage account." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/StorageAccountProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties associated with this storage account." + } + }, + "required": [ + "name", + "properties" + ], + "description": "Azure Storage account information." + }, + "StorageAccountProperties": { + "type": "object", + "properties": { + "accessKey": { + "type": "string", + "description": "Gets or sets the access key associated with this Azure Storage account that will be used to connect to it." + }, + "suffix": { + "type": "string", + "description": "Gets or sets the optional suffix for the Data Lake account." + } + }, + "required": [ + "accessKey" + ], + "description": "Azure Storage account properties information." + } + } +} diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DataLakeAnalytics/2015-10-01-preview/account.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DataLakeAnalytics/2015-10-01-preview/account.json new file mode 100644 index 0000000000000..303dcc6c5977e --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DataLakeAnalytics/2015-10-01-preview/account.json @@ -0,0 +1,1584 @@ +{ + "swagger": "2.0", + "info": { + "title": "DataLakeAnalyticsAccountManagementClient", + "description": "Creates an Azure Data Lake Analytics account management client.", + "version": "2015-10-01-preview", + "x-ms-code-generation-settings": { + "internalConstructors": true + } + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json", + "text/json", + "application/octet-stream" + ], + "produces": [ + "application/json", + "text/json", + "application/octet-stream" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}/StorageAccounts/{storageAccountName}": { + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_GetStorageAccount", + "description": "Gets the specified Azure Storage account linked to the given Data Lake Analytics account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account from which to retrieve Azure storage account details." + }, + { + "name": "storageAccountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure Storage account for which to retrieve the details." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/StorageAccountInfo" + } + } + } + }, + "delete": { + "tags": [ + "Account" + ], + "operationId": "Account_DeleteStorageAccount", + "description": "Updates the specified Data Lake Analytics account to remove an Azure Storage account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account from which to remove the Azure Storage account." + }, + { + "name": "storageAccountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure Storage account to remove" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + } + } + }, + "patch": { + "tags": [ + "Account" + ], + "operationId": "Account_UpdateStorageAccount", + "description": "Updates the Data Lake Analytics account to replace Azure Storage blob account details, such as the access key and/or suffix.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account to modify storage accounts in" + }, + { + "name": "storageAccountName", + "in": "path", + "required": true, + "type": "string", + "description": "The Azure Storage account to modify" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AddStorageAccountParameters" + }, + "description": "The parameters containing the access key and suffix to update the storage account with." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + } + } + }, + "put": { + "tags": [ + "Account" + ], + "operationId": "Account_AddStorageAccount", + "description": "Updates the specified Data Lake Analytics account to add an Azure Storage account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account to which to add the Azure Storage account." + }, + { + "name": "storageAccountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure Storage account to add" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AddStorageAccountParameters" + }, + "description": "The parameters containing the access key and optional suffix for the Azure Storage Account." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}/StorageAccounts/{storageAccountName}/Containers/{containerName}": { + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_GetStorageContainer", + "description": "Gets the specified Azure Storage container associated with the given Data Lake Analytics and Azure Storage accounts.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account for which to retrieve blob container." + }, + { + "name": "storageAccountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure storage account from which to retrieve the blob container." + }, + { + "name": "containerName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure storage container to retrieve" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/BlobContainer" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}/StorageAccounts/{storageAccountName}/Containers": { + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_ListStorageContainers", + "description": "Lists the Azure Storage containers, if any, associated with the specified Data Lake Analytics and Azure Storage account combination. The response includes a link to the next page of results, if any.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account for which to list Azure Storage blob containers." + }, + { + "name": "storageAccountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure storage account from which to list blob containers." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ListBlobContainersResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}/StorageAccounts/{storageAccountName}/Containers/{containerName}/listSasTokens": { + "post": { + "tags": [ + "Account" + ], + "operationId": "Account_ListSasTokens", + "description": "Gets the SAS token associated with the specified Data Lake Analytics and Azure Storage account and container combination.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account from which an Azure Storage account's SAS token is being requested." + }, + { + "name": "storageAccountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure storage account for which the SAS token is being requested." + }, + { + "name": "containerName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure storage container for which the SAS token is being requested." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/ListSasTokensResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}/DataLakeStoreAccounts/{dataLakeStoreAccountName}": { + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_GetDataLakeStoreAccount", + "description": "Gets the specified Data Lake Store account details in the specified Data Lake Analytics account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account from which to retrieve the Data Lake Store account details." + }, + { + "name": "dataLakeStoreAccountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Store account to retrieve" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeStoreAccountInfo" + } + } + } + }, + "delete": { + "tags": [ + "Account" + ], + "operationId": "Account_DeleteDataLakeStoreAccount", + "description": "Updates the Data Lake Analytics account specified to remove the specified Data Lake Store account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account from which to remove the Data Lake Store account." + }, + { + "name": "dataLakeStoreAccountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Store account to remove" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + } + } + }, + "put": { + "tags": [ + "Account" + ], + "operationId": "Account_AddDataLakeStoreAccount", + "description": "Updates the specified Data Lake Analytics account to include the additional Data Lake Store account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account to which to add the Data Lake Store account." + }, + { + "name": "dataLakeStoreAccountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Store account to add." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AddDataLakeStoreParameters" + }, + "description": "The details of the Data Lake Store account." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}/StorageAccounts/": { + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_ListStorageAccounts", + "description": "Gets the first page of Azure Storage accounts, if any, linked to the specified Data Lake Analytics account. The response includes a link to the next page, if any.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account for which to list Azure Storage accounts." + }, + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "The OData filter. Optional." + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The number of items to return. Optional." + }, + { + "name": "$skip", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The number of items to skip over before returning elements. Optional." + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "OData expansion. Expand related resources in line with the retrieved resources, e.g. Categories/$expand=Products would expand Product data in line with each Category entry. Optional." + }, + { + "name": "$select", + "in": "query", + "required": false, + "type": "string", + "description": "OData Select statement. Limits the properties on each entry to just those requested, e.g. Categories?$select=CategoryName,Description. Optional." + }, + { + "name": "$orderby", + "in": "query", + "required": false, + "type": "string", + "description": "OrderBy clause. One or more comma-separated expressions with an optional \"asc\" (the default) or \"desc\" depending on the order you'd like the values sorted, e.g. Categories?$orderby=CategoryName desc. Optional." + }, + { + "name": "$count", + "in": "query", + "required": false, + "type": "boolean", + "description": "The Boolean value of true or false to request a count of the matching resources included with the resources in the response, e.g. Categories?$count=true. Optional." + }, + { + "name": "$search", + "in": "query", + "required": false, + "type": "string", + "description": "A free form search. A free-text search expression to match for whether a particular entry should be included in the feed, e.g. Categories?$search=blue OR green. Optional." + }, + { + "name": "$format", + "in": "query", + "required": false, + "type": "string", + "description": "The desired return format. Return the response in particular formatxii without access to request headers for standard content-type negotiation (e.g Orders?$format=json). Optional." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeAnalyticsAccountListStorageAccountsResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-odata": "#/definitions/StorageAccountInfo" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}/DataLakeStoreAccounts/": { + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_ListDataLakeStoreAccounts", + "description": "Gets the first page of Data Lake Store accounts linked to the specified Data Lake Analytics account. The response includes a link to the next page, if any.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account for which to list Data Lake Store accounts." + }, + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "OData filter. Optional." + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The number of items to return. Optional." + }, + { + "name": "$skip", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The number of items to skip over before returning elements. Optional." + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "OData expansion. Expand related resources in line with the retrieved resources, e.g. Categories/$expand=Products would expand Product data in line with each Category entry. Optional." + }, + { + "name": "$select", + "in": "query", + "required": false, + "type": "string", + "description": "OData Select statement. Limits the properties on each entry to just those requested, e.g. Categories?$select=CategoryName,Description. Optional." + }, + { + "name": "$orderby", + "in": "query", + "required": false, + "type": "string", + "description": "OrderBy clause. One or more comma-separated expressions with an optional \"asc\" (the default) or \"desc\" depending on the order you'd like the values sorted, e.g. Categories?$orderby=CategoryName desc. Optional." + }, + { + "name": "$count", + "in": "query", + "required": false, + "type": "boolean", + "description": "The Boolean value of true or false to request a count of the matching resources included with the resources in the response, e.g. Categories?$count=true. Optional." + }, + { + "name": "$search", + "in": "query", + "required": false, + "type": "string", + "description": "A free form search. A free-text search expression to match for whether a particular entry should be included in the feed, e.g. Categories?$search=blue OR green. Optional." + }, + { + "name": "$format", + "in": "query", + "required": false, + "type": "string", + "description": "The desired return format. Return the response in particular formatxii without access to request headers for standard content-type negotiation (e.g Orders?$format=json). Optional." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeAnalyticsAccountListDataLakeStoreResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-odata": "#/definitions/DataLakeStoreAccountInfo" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts": { + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_ListByResourceGroup", + "description": "Gets the first page of Data Lake Analytics accounts, if any, within a specific resource group. This includes a link to the next page, if any.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "OData filter. Optional." + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The number of items to return. Optional." + }, + { + "name": "$skip", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The number of items to skip over before returning elements. Optional." + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "OData expansion. Expand related resources in line with the retrieved resources, e.g. Categories/$expand=Products would expand Product data in line with each Category entry. Optional." + }, + { + "name": "$select", + "in": "query", + "required": false, + "type": "string", + "description": "OData Select statement. Limits the properties on each entry to just those requested, e.g. Categories?$select=CategoryName,Description. Optional." + }, + { + "name": "$orderby", + "in": "query", + "required": false, + "type": "string", + "description": "OrderBy clause. One or more comma-separated expressions with an optional \"asc\" (the default) or \"desc\" depending on the order you'd like the values sorted, e.g. Categories?$orderby=CategoryName desc. Optional." + }, + { + "name": "$count", + "in": "query", + "required": false, + "type": "boolean", + "description": "The Boolean value of true or false to request a count of the matching resources included with the resources in the response, e.g. Categories?$count=true. Optional." + }, + { + "name": "$search", + "in": "query", + "required": false, + "type": "string", + "description": "A free form search. A free-text search expression to match for whether a particular entry should be included in the feed, e.g. Categories?$search=blue OR green. Optional." + }, + { + "name": "$format", + "in": "query", + "required": false, + "type": "string", + "description": "The return format. Return the response in particular formatxii without access to request headers for standard content-type negotiation (e.g Orders?$format=json). Optional." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeAnalyticsAccountListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-odata": "#/definitions/DataLakeAnalyticsAccount" + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DataLakeAnalytics/accounts": { + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_List", + "description": "Gets the first page of Data Lake Analytics accounts, if any, within the current subscription. This includes a link to the next page, if any.", + "parameters": [ + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "OData filter. Optional." + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The number of items to return. Optional." + }, + { + "name": "$skip", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The number of items to skip over before returning elements. Optional." + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "OData expansion. Expand related resources in line with the retrieved resources, e.g. Categories/$expand=Products would expand Product data in line with each Category entry. Optional." + }, + { + "name": "$select", + "in": "query", + "required": false, + "type": "string", + "description": "OData Select statement. Limits the properties on each entry to just those requested, e.g. Categories?$select=CategoryName,Description. Optional." + }, + { + "name": "$orderby", + "in": "query", + "required": false, + "type": "string", + "description": "OrderBy clause. One or more comma-separated expressions with an optional \"asc\" (the default) or \"desc\" depending on the order you'd like the values sorted, e.g. Categories?$orderby=CategoryName desc. Optional." + }, + { + "name": "$count", + "in": "query", + "required": false, + "type": "boolean", + "description": "The Boolean value of true or false to request a count of the matching resources included with the resources in the response, e.g. Categories?$count=true. Optional." + }, + { + "name": "$search", + "in": "query", + "required": false, + "type": "string", + "description": "A free form search. A free-text search expression to match for whether a particular entry should be included in the feed, e.g. Categories?$search=blue OR green. Optional." + }, + { + "name": "$format", + "in": "query", + "required": false, + "type": "string", + "description": "The desired return format. Return the response in particular formatxii without access to request headers for standard content-type negotiation (e.g Orders?$format=json). Optional." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeAnalyticsAccountListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-odata": "#/definitions/DataLakeAnalyticsAccount" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{accountName}": { + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_Get", + "description": "Gets details of the specified Data Lake Analytics account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account to retrieve." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeAnalyticsAccount" + } + } + } + }, + "delete": { + "tags": [ + "Account" + ], + "operationId": "Account_Delete", + "description": "Begins the delete delete process for the Data Lake Analytics account object specified by the account name.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account to delete" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + }, + "202": { + "description": "" + }, + "404": { + "description": "" + }, + "204": { + "description": "" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeAnalytics/accounts/{name}": { + "put": { + "tags": [ + "Account" + ], + "operationId": "Account_Create", + "description": "Creates the specified Data Lake Analytics account. This supplies the user with computation services for Data Lake Analytics workloads", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account.the account will be associated with." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account to create." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DataLakeAnalyticsAccount" + }, + "description": "Parameters supplied to the create Data Lake Analytics account operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeAnalyticsAccount" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeAnalyticsAccount" + } + } + }, + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ + "Account" + ], + "operationId": "Account_Update", + "description": "Updates the Data Lake Analytics account object specified by the accountName with the contents of the account object.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Analytics account." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Analytics account to update." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DataLakeAnalyticsAccount" + }, + "description": "Parameters supplied to the update Data Lake Analytics account operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeAnalyticsAccount" + } + }, + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeAnalyticsAccount" + } + } + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "StorageAccountProperties": { + "required": [ + "accessKey" + ], + "properties": { + "accessKey": { + "type": "string", + "description": "Gets or sets the access key associated with this Azure Storage account that will be used to connect to it." + }, + "suffix": { + "type": "string", + "description": "Gets or sets the optional suffix for the Data Lake account." + } + }, + "description": "Azure Storage account properties information." + }, + "StorageAccountInfo": { + "required": [ + "name", + "properties" + ], + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the account name associated with the Azure storage account." + }, + "properties": { + "$ref": "#/definitions/StorageAccountProperties", + "description": "Gets or sets the properties associated with this storage account." + } + }, + "description": "Azure Storage account information." + }, + "BlobContainerProperties": { + "properties": { + "lastModifiedTime": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "Gets or sets the last modified time of the blob container." + } + }, + "description": "Azure Storage blob container properties information." + }, + "BlobContainer": { + "properties": { + "name": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the name of the blob container." + }, + "id": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the unique identifier of the blob container." + }, + "type": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the type of the blob container." + }, + "properties": { + "readOnly": true, + "$ref": "#/definitions/BlobContainerProperties", + "description": "Gets or sets the properties of the blob container." + } + }, + "description": "Azure Storage blob container information." + }, + "ListBlobContainersResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/BlobContainer" + }, + "readOnly": true, + "description": "Gets or set the results of the list operation" + }, + "nextLink": { + "readOnly": true, + "type": "string", + "description": "Gets or sets the link (url) to the next page of results." + } + }, + "description": "The list of blob containers associated with the storage account attached to the Data Lake Analytics account." + }, + "SasTokenInfo": { + "properties": { + "accessToken": { + "readOnly": true, + "type": "string", + "description": "Gets or sets the access token for the associated Azure Storage Container." + } + }, + "description": "SAS token information." + }, + "ListSasTokensResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/SasTokenInfo" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the link (url) to the next page of results." + } + }, + "description": "The SAS response that contains the storage account, container and associated SAS token for connection use." + }, + "DataLakeStoreAccountInfoProperties": { + "properties": { + "suffix": { + "type": "string", + "description": "Gets or sets the optional suffix for the Data Lake Store account." + } + }, + "description": "Data Lake Store account properties information." + }, + "DataLakeStoreAccountInfo": { + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the account name of the Data Lake Store account." + }, + "properties": { + "$ref": "#/definitions/DataLakeStoreAccountInfoProperties", + "description": "Gets or sets the properties associated with this Data Lake Store account." + } + }, + "description": "Data Lake Store account information." + }, + "DataLakeAnalyticsAccountListStorageAccountsResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAccountInfo" + }, + "readOnly": true, + "description": "Gets or set the results of the list operation" + }, + "count": { + "type": "integer", + "format": "int32", + "readOnly": true, + "description": "Gets or sets total number of results." + }, + "nextLink": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the link (url) to the next page of results." + } + }, + "description": "Azure Storage Account list information." + }, + "DataLakeAnalyticsAccountListDataLakeStoreResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/DataLakeStoreAccountInfo" + }, + "readOnly": true, + "description": "Gets or set the results of the list operation" + }, + "count": { + "type": "integer", + "format": "int32", + "readOnly": true, + "description": "Gets or sets total number of results." + }, + "nextLink": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the link (url) to the next page of results." + } + }, + "description": "Data Lake Account list information." + }, + "DataLakeAnalyticsAccountProperties": { + "properties": { + "provisioningState": { + "readOnly": true, + "type": "string", + "description": "Gets the provisioning status of the Data Lake Analytics account.", + "enum": [ + "Failed", + "Creating", + "Running", + "Succeeded", + "Patching", + "Suspending", + "Resuming", + "Deleting", + "Deleted" + ], + "x-ms-enum": { + "name": "DataLakeAnalyticsAccountStatus", + "modelAsString": false + } + }, + "state": { + "readOnly": true, + "type": "string", + "description": "Gets the state of the Data Lake Analytics account.", + "enum": [ + "active", + "suspended" + ], + "x-ms-enum": { + "name": "DataLakeAnalyticsAccountState", + "modelAsString": false + } + }, + "defaultDataLakeStoreAccount": { + "type": "string", + "description": "Gets or sets the default data lake storage account associated with this Data Lake Analytics account." + }, + "maxDegreeOfParallelism": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the maximum supported degree of parallelism for this acocunt." + }, + "maxJobCount": { + "type": "integer", + "format": "int32", + "description": "Gets or sets the maximum supported jobs running under the account at the same time." + }, + "dataLakeStoreAccounts": { + "type": "array", + "items": { + "$ref": "#/definitions/DataLakeStoreAccountInfo" + }, + "description": "Gets or sets the list of Data Lake storage accounts associated with this account." + }, + "storageAccounts": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAccountInfo" + }, + "description": "Gets or sets the list of Azure Blob storage accounts associated with this account." + }, + "creationTime": { + "type": "string", + "readOnly": true, + "format": "date-time", + "description": "Gets or sets the account creation time." + }, + "lastModifiedTime": { + "type": "string", + "readOnly": true, + "format": "date-time", + "description": "Gets or sets the account last modified time." + }, + "endpoint": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the full CName endpoint for this account." + } + }, + "description": "The account specific properties that are associated with an underlying Data Lake Analytics account." + }, + "AddDataLakeStoreParameters": { + "required": [ + "properties" + ], + "properties": { + "properties": { + "$ref": "#/definitions/DataLakeStoreAccountInfoProperties", + "description": "Gets or sets the properties for the Data Lake Store account being added." + } + }, + "description": "Additional Data Lake Store parameters." + }, + "AddStorageAccountParameters": { + "required": [ + "properties" + ], + "properties": { + "properties": { + "$ref": "#/definitions/StorageAccountProperties", + "description": "Gets or sets the properties for the Azure Storage account being added." + } + }, + "description": "Additional Azure Storage account parameters." + }, + "DataLakeAnalyticsAccount": { + "properties": { + "location": { + "type": "string", + "description": "Gets or sets the account regional location." + }, + "name": { + "type": "string", + "description": "Gets or sets the account name." + }, + "type": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the namespace and type of the account." + }, + "id": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the account subscription ID." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets the value of custom properties." + }, + "properties": { + "$ref": "#/definitions/DataLakeAnalyticsAccountProperties", + "description": "Gets or sets the properties defined by Data Lake Analytics all properties are specific to each resource provider." + } + }, + "description": "A Data Lake Analytics account object, containing all information associated with the named Data Lake Analytics account." + }, + "DataLakeAnalyticsAccountListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/DataLakeAnalyticsAccount" + }, + "readOnly": true, + "description": "Gets or set the results of the list operation" + }, + "nextLink": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the link (url) to the next page of results." + } + }, + "description": "DataLakeAnalytics Account list information." + }, + "ErrorDetails": { + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the HTTP status code or error code associated with this error" + }, + "message": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the error message localized based on Accept-Language" + }, + "target": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the target of the particular error (for example, the name of the property in error)." + } + }, + "description": "Generic resource error details information." + }, + "InnerError": { + "properties": { + "trace": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the stack trace for the error" + }, + "context": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the context for the error message" + } + }, + "description": "Generic resource inner error information." + }, + "Error": { + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the HTTP status code or error code associated with this error" + }, + "message": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the error message to display." + }, + "target": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the target of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorDetails" + }, + "readOnly": true, + "description": "Gets or sets the list of error details" + }, + "innerError": { + "$ref": "#/definitions/InnerError", + "readOnly": true, + "description": "Gets or sets the inner exceptions or errors, if any" + } + }, + "description": "Generic resource error information." + }, + "AzureAsyncOperationResult": { + "properties": { + "status": { + "type": "string", + "readOnly": true, + "description": "Gets or sets the status of the AzureAsuncOperation", + "enum": [ + "InProgress", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "OperationStatus", + "modelAsString": false + } + }, + "error": { + "readOnly": true, + "$ref": "#/definitions/Error" + } + }, + "description": "The response body contains the status of the specified asynchronous operation, indicating whether it has succeeded, is inprogress, or has failed. Note that this status is distinct from the HTTP status code returned for the Get Operation Status operation itself. If the asynchronous operation succeeded, the response body includes the HTTP status code for the successful request. If the asynchronous operation failed, the response body includes the HTTP status code for the failed request and error information regarding the failure." + } + }, + "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 From 9b84c45ac13acad7b89f20cd710e3aac8c72e264 Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Tue, 31 May 2016 08:55:19 -0700 Subject: [PATCH 12/14] Add DataLakeStore acceptance test --- .../AcceptanceTests.cs | 6 + ...Generator.AzureResourceSchema.Tests.csproj | 6 + .../Microsoft.DataLakeStore.json | 196 ++++ .../2015-10-01-preview/account.json | 906 ++++++++++++++++++ 4 files changed, 1114 insertions(+) create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DataLakeStore/2015-10-01-preview/Microsoft.DataLakeStore.json create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DataLakeStore/2015-10-01-preview/account.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs index a58df45e88edf..47ffcf8bb8871 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs @@ -53,6 +53,12 @@ public static void DataLakeAnalytics_2015_10_01_preview() RunSwaggerTest("DataLakeAnalytics", "2015-10-01-preview", "account.json"); } + [Fact] + public static void DataLakeStore_2015_10_01_preview() + { + RunSwaggerTest("DataLakeStore", "2015-10-01-preview", "account.json"); + } + [Fact] public static void Dns_2015_05_04_preview() { 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 bdf445243fc03..a227ad1f1a3ff 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj @@ -132,6 +132,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -183,6 +186,9 @@ PreserveNewest + + PreserveNewest + diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DataLakeStore/2015-10-01-preview/Microsoft.DataLakeStore.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DataLakeStore/2015-10-01-preview/Microsoft.DataLakeStore.json new file mode 100644 index 0000000000000..f0d15da28af09 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DataLakeStore/2015-10-01-preview/Microsoft.DataLakeStore.json @@ -0,0 +1,196 @@ +{ + "id": "http://schema.management.azure.com/schemas/2015-10-01-preview/Microsoft.DataLakeStore.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.DataLakeStore", + "description": "Microsoft DataLakeStore Resource Types", + "resourceDefinitions": { + "accounts": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.DataLakeStore/accounts" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-10-01-preview" + ] + }, + "location": { + "type": "string", + "description": "Gets or sets the account regional location." + }, + "name": { + "type": "string", + "description": "Gets or sets the account name." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the value of custom properties." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/DataLakeStoreAccountProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the Data Lake Store account properties." + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/accounts_firewallRules_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DataLakeStore/accounts" + }, + "accounts_firewallRules": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.DataLakeStore/accounts/firewallRules" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-10-01-preview" + ] + }, + "name": { + "type": "string", + "description": "Gets or sets the firewall rule's name." + }, + "id": { + "type": "string", + "description": "Gets or sets the firewall rule's subscription ID." + }, + "location": { + "type": "string", + "description": "Gets or sets the firewall rule's regional location." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/FirewallRuleProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the firewall rule." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DataLakeStore/accounts/firewallRules" + } + }, + "definitions": { + "accounts_firewallRules_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "firewallRules" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-10-01-preview" + ] + }, + "name": { + "type": "string", + "description": "Gets or sets the firewall rule's name." + }, + "id": { + "type": "string", + "description": "Gets or sets the firewall rule's subscription ID." + }, + "location": { + "type": "string", + "description": "Gets or sets the firewall rule's regional location." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/FirewallRuleProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Gets or sets the properties of the firewall rule." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DataLakeStore/accounts/firewallRules" + }, + "DataLakeStoreAccountProperties": { + "type": "object", + "properties": { + "endpoint": { + "type": "string", + "description": "Gets or sets the gateway host." + }, + "defaultGroup": { + "type": "string", + "description": "Gets or sets the default owner group for all new folders and files created in the Data Lake Store account." + } + }, + "description": "Data Lake Store account properties information" + }, + "FirewallRuleProperties": { + "type": "object", + "properties": { + "startIpAddress": { + "type": "string", + "description": "Gets or sets the start IP address for the firewall rule." + }, + "endIpAddress": { + "type": "string", + "description": "Gets or sets the end IP address for the firewall rule." + } + }, + "description": "Data Lake Store firewall rule properties information" + } + } +} diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DataLakeStore/2015-10-01-preview/account.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DataLakeStore/2015-10-01-preview/account.json new file mode 100644 index 0000000000000..b349dbc4265a4 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DataLakeStore/2015-10-01-preview/account.json @@ -0,0 +1,906 @@ +{ + "swagger": "2.0", + "info": { + "title": "DataLakeStoreAccountManagementClient", + "description": "Creates an Azure Data Lake Store account management client.", + "version": "2015-10-01-preview", + "x-ms-code-generation-settings": { + "internalConstructors": true + } + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json", + "text/json", + "application/octet-stream" + ], + "produces": [ + "application/json", + "text/json", + "application/octet-stream" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeStore/accounts/{accountName}/firewallRules/{firewallRuleName}": { + "delete": { + "tags": [ + "Account" + ], + "operationId": "Account_DeleteFirewallRule", + "description": "Deletes the specified firewall rule from the specified Data Lake Store account", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Store account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Store account from which to delete the firewall rule." + }, + { + "name": "firewallRuleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the firewall rule to delete." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + }, + "204": { + "description": "" + } + } + }, + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_GetFirewallRule", + "description": "Gets the specified Data Lake Store firewall rule.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Store account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Store account from which to get the firewall rule." + }, + { + "name": "firewallRuleName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the firewall rule to retrieve." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/FirewallRule" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeStore/accounts/{accountName}/firewallRules": { + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_ListFirewallRules", + "description": "Lists the Data Lake Store firewall rules within the specified Data Lake Store account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Store account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Store account from which to get the firewall rules." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeStoreFirewallRuleListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeStore/accounts/{accountName}/firewallRules/{name}": { + "put": { + "tags": [ + "Account" + ], + "operationId": "Account_CreateOrUpdateFirewallRule", + "description": "Creates or updates the specified firewall rule.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Store account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Store account to which to add the firewall rule." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the firewall rule to create or update." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/FirewallRule" + }, + "description": "Parameters supplied to create the create firewall rule." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/FirewallRule" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeStore/accounts/{name}": { + "put": { + "tags": [ + "Account" + ], + "operationId": "Account_Create", + "description": "Creates the specified Data Lake Store account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Store account." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Store account to create." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DataLakeStoreAccount" + }, + "description": "Parameters supplied to create the Data Lake Store account." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeStoreAccount" + } + }, + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeStoreAccount" + } + } + }, + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ + "Account" + ], + "operationId": "Account_Update", + "description": "Updates the specified Data Lake Store account information.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Store account." + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Store account to update." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DataLakeStoreAccount" + }, + "description": "Parameters supplied to update the Data Lake Store account." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeStoreAccount" + } + }, + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeStoreAccount" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeStore/accounts/{accountName}": { + "delete": { + "tags": [ + "Account" + ], + "operationId": "Account_Delete", + "description": "Deletes the specified Data Lake Store account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Store account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Store account to delete." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "" + }, + "404": { + "description": "" + }, + "204": { + "description": "" + }, + "202": { + "description": "" + } + }, + "x-ms-long-running-operation": true + }, + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_Get", + "description": "Gets the specified Data Lake Store account.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Store account." + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Data Lake Store account to retrieve." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeStoreAccount" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeStore/accounts": { + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_ListByResourceGroup", + "description": "Lists the Data Lake Store accounts within a specific resource group. The response includes a link to the next page of results, if any.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure resource group that contains the Data Lake Store account(s)." + }, + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "OData filter. Optional." + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The number of items to return. Optional." + }, + { + "name": "$skip", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The number of items to skip over before returning elements. Optional." + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "OData expansion. Expand related resources in line with the retrieved resources, e.g. Categories/$expand=Products would expand Product data in line with each Category entry. Optional." + }, + { + "name": "$select", + "in": "query", + "required": false, + "type": "string", + "description": "OData Select statement. Limits the properties on each entry to just those requested, e.g. Categories?$select=CategoryName,Description. Optional." + }, + { + "name": "$orderby", + "in": "query", + "required": false, + "type": "string", + "description": "OrderBy clause. One or more comma-separated expressions with an optional \"asc\" (the default) or \"desc\" depending on the order you'd like the values sorted, e.g. Categories?$orderby=CategoryName desc. Optional." + }, + { + "name": "$count", + "in": "query", + "required": false, + "type": "boolean", + "description": "A Boolean value of true or false to request a count of the matching resources included with the resources in the response, e.g. Categories?$count=true. Optional." + }, + { + "name": "$search", + "in": "query", + "required": false, + "type": "string", + "description": "A free form search. A free-text search expression to match for whether a particular entry should be included in the feed, e.g. Categories?$search=blue OR green. Optional." + }, + { + "name": "$format", + "in": "query", + "required": false, + "type": "string", + "description": "The desired return format. Return the response in particular formatxii without access to request headers for standard content-type negotiation (e.g Orders?$format=json). Optional." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeStoreAccountListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-odata": "#/definitions/DataLakeStoreAccount" + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DataLakeStore/accounts": { + "get": { + "tags": [ + "Account" + ], + "operationId": "Account_List", + "description": "Lists the Data Lake Store accounts within the subscription. The response includes a link to the next page of results, if any.", + "parameters": [ + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "OData filter. Optional." + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The number of items to return. Optional." + }, + { + "name": "$skip", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The number of items to skip over before returning elements. Optional." + }, + { + "name": "$expand", + "in": "query", + "required": false, + "type": "string", + "description": "OData expansion. Expand related resources in line with the retrieved resources, e.g. Categories/$expand=Products would expand Product data in line with each Category entry. Optional." + }, + { + "name": "$select", + "in": "query", + "required": false, + "type": "string", + "description": "OData Select statement. Limits the properties on each entry to just those requested, e.g. Categories?$select=CategoryName,Description. Optional." + }, + { + "name": "$orderby", + "in": "query", + "required": false, + "type": "string", + "description": "OrderBy clause. One or more comma-separated expressions with an optional \"asc\" (the default) or \"desc\" depending on the order you'd like the values sorted, e.g. Categories?$orderby=CategoryName desc. Optional." + }, + { + "name": "$count", + "in": "query", + "required": false, + "type": "boolean", + "description": "The Boolean value of true or false to request a count of the matching resources included with the resources in the response, e.g. Categories?$count=true. Optional." + }, + { + "name": "$search", + "in": "query", + "required": false, + "type": "string", + "description": "A free form search. A free-text search expression to match for whether a particular entry should be included in the feed, e.g. Categories?$search=blue OR green. Optional." + }, + { + "name": "$format", + "in": "query", + "required": false, + "type": "string", + "description": "The desired return format. Return the response in particular formatxii without access to request headers for standard content-type negotiation (e.g Orders?$format=json). Optional." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/DataLakeStoreAccountListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-odata": "#/definitions/DataLakeStoreAccount" + } + } + }, + "definitions": { + "FirewallRuleProperties": { + "properties": { + "startIpAddress": { + "type": "string", + "description": "Gets or sets the start IP address for the firewall rule." + }, + "endIpAddress": { + "type": "string", + "description": "Gets or sets the end IP address for the firewall rule." + } + }, + "description": "Data Lake Store firewall rule properties information" + }, + "FirewallRule": { + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the firewall rule's name." + }, + "type": { + "type": "string", + "readOnly": true, + "description": "Gets the namespace and type of the firewall Rule." + }, + "id": { + "type": "string", + "description": "Gets or sets the firewall rule's subscription ID." + }, + "location": { + "type": "string", + "description": "Gets or sets the firewall rule's regional location." + }, + "properties": { + "$ref": "#/definitions/FirewallRuleProperties", + "description": "Gets or sets the properties of the firewall rule." + } + }, + "description": "Data Lake Store firewall rule information" + }, + "DataLakeStoreFirewallRuleListResult": { + "properties": { + "value": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/FirewallRule" + }, + "description": "Gets the results of the list operation" + }, + "nextLink": { + "type": "string", + "readOnly": true, + "description": "Gets the link (url) to the next page of results." + }, + "count": { + "type": "integer", + "readOnly": true, + "format": "int64", + "description": "Gets the total count of results that are available, but might not be returned in the current page." + } + }, + "description": "Data Lake Store firewall rule list information." + }, + "DataLakeStoreAccountProperties": { + "properties": { + "provisioningState": { + "readOnly": true, + "type": "string", + "description": "Gets the status of the Data Lake Store account while being provisioned.", + "enum": [ + "Failed", + "Creating", + "Running", + "Succeeded", + "Patching", + "Suspending", + "Resuming", + "Deleting", + "Deleted" + ], + "x-ms-enum": { + "name": "DataLakeStoreAccountStatus", + "modelAsString": false + } + }, + "state": { + "readOnly": true, + "type": "string", + "description": "Gets the status of the Data Lake Store account after provisioning has completed.", + "enum": [ + "active", + "suspended" + ], + "x-ms-enum": { + "name": "DataLakeStoreAccountState", + "modelAsString": false + } + }, + "creationTime": { + "type": "string", + "readOnly": true, + "format": "date-time", + "description": "Gets the account creation time." + }, + "lastModifiedTime": { + "type": "string", + "readOnly": true, + "format": "date-time", + "description": "Gets the account last modified time." + }, + "endpoint": { + "type": "string", + "description": "Gets or sets the gateway host." + }, + "defaultGroup": { + "type": "string", + "description": "Gets or sets the default owner group for all new folders and files created in the Data Lake Store account." + } + }, + "description": "Data Lake Store account properties information" + }, + "DataLakeStoreAccount": { + "properties": { + "location": { + "type": "string", + "description": "Gets or sets the account regional location." + }, + "name": { + "type": "string", + "description": "Gets or sets the account name." + }, + "type": { + "type": "string", + "readOnly": true, + "description": "Gets the namespace and type of the account." + }, + "id": { + "type": "string", + "readOnly": true, + "description": "Gets the account subscription ID." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets the value of custom properties." + }, + "properties": { + "$ref": "#/definitions/DataLakeStoreAccountProperties", + "description": "Gets or sets the Data Lake Store account properties." + } + }, + "description": "Data Lake Store account information" + }, + "DataLakeStoreAccountListResult": { + "properties": { + "value": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/DataLakeStoreAccount" + }, + "description": "Gets the results of the list operation" + }, + "nextLink": { + "type": "string", + "readOnly": true, + "description": "Gets the link (url) to the next page of results." + }, + "count": { + "type": "integer", + "readOnly": true, + "format": "int64", + "description": "Gets the total count of results that are available, but might not be returned in the current page." + } + }, + "description": "Data Lake Store account list information response." + }, + "ErrorDetails": { + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "Gets the HTTP status code or error code associated with this error" + }, + "message": { + "type": "string", + "readOnly": true, + "description": "Gets the error message localized based on Accept-Language" + }, + "target": { + "type": "string", + "readOnly": true, + "description": "Gets the target of the particular error (for example, the name of the property in error)." + } + }, + "description": "Data Lake Store error details information" + }, + "InnerError": { + "properties": { + "trace": { + "type": "string", + "readOnly": true, + "description": "Gets the stack trace for the error" + }, + "context": { + "type": "string", + "readOnly": true, + "description": "Gets the context for the error message" + } + }, + "description": "Data Lake Store inner error information" + }, + "Error": { + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "Gets the HTTP status code or error code associated with this error" + }, + "message": { + "type": "string", + "readOnly": true, + "description": "Gets the error message to display." + }, + "target": { + "type": "string", + "readOnly": true, + "description": "Gets the target of the error." + }, + "details": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/ErrorDetails" + }, + "description": "Gets the list of error details" + }, + "innerError": { + "$ref": "#/definitions/InnerError", + "readOnly": true, + "description": "Gets the inner exceptions or errors, if any" + } + }, + "description": "Data Lake Store error information" + }, + "AzureAsyncOperationResult": { + "properties": { + "status": { + "type": "string", + "readOnly": true, + "description": "Gets the status of the AzureAsuncOperation", + "enum": [ + "InProgress", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "OperationStatus", + "modelAsString": false + } + }, + "error": { + "readOnly": true, + "$ref": "#/definitions/Error" + } + }, + "description": "The response body contains the status of the specified asynchronous operation, indicating whether it has succeeded, is in progress, or has failed. Note that this status is distinct from the HTTP status code returned for the Get Operation Status operation itself. If the asynchronous operation succeeded, the response body includes the HTTP status code for the successful request. If the asynchronous operation failed, the response body includes the HTTP status code for the failed request and error information regarding the failure." + } + }, + "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 From 242834c5c119a3f8f19fcd5cb9ddf276aba6e93d Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Tue, 31 May 2016 09:02:30 -0700 Subject: [PATCH 13/14] Moving web.yaml into Web/2015-08-01/ folder --- .../AzureResourceSchema.Tests/AcceptanceTests.cs | 2 +- .../AutoRest.Generator.AzureResourceSchema.Tests.csproj | 2 +- .../Swagger/{ => Web/2015-08-01}/web.yaml | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/{ => Web/2015-08-01}/web.yaml (100%) diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs index 01096a1933697..84059d75c8401 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs @@ -117,7 +117,7 @@ public static void Web() public static void WebYaml() { // same test as Web(), but converted to YAML - RunSwaggerTest("web.yaml", "Web"); + RunSwaggerTest("Web", "2015-08-01", "web.yaml"); } private static void RunSwaggerTest(string resourceType, string apiVersion, string swaggerFileName) 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 90d44c80297fa..1de04625cf01a 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj @@ -189,7 +189,7 @@ PreserveNewest - + PreserveNewest diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/web.yaml b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Web/2015-08-01/web.yaml similarity index 100% rename from AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/web.yaml rename to AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/Web/2015-08-01/web.yaml From 1a9e4e521c9e236891ea47e6ed886cd89cae7b78 Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Tue, 31 May 2016 10:10:09 -0700 Subject: [PATCH 14/14] Add DevTestLabs acceptance test. Add 'format' property to JsonSchema --- .../AcceptanceTests.cs | 6 + ...Generator.AzureResourceSchema.Tests.csproj | 6 + .../Compute/2015-06-15/Microsoft.Compute.json | 1 + .../Compute/2016-03-30/Microsoft.Compute.json | 1 + .../Microsoft.DevTestLabs.json | 1806 +++++++ .../Microsoft.CertificateRegistration.json | 4 + .../Microsoft.DomainRegistration.json | 4 + .../Web/2015-08-01/Microsoft.Web.json | 11 +- .../DevTestLabs/2015-05-21-preview/DTL.json | 4390 +++++++++++++++++ .../AzureResourceSchema/JsonSchema.cs | 5 + .../ResourceSchemaParser.cs | 1 + .../ResourceSchemaWriter.cs | 1 + 12 files changed, 6234 insertions(+), 2 deletions(-) create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DevTestLabs/2015-05-21-preview/Microsoft.DevTestLabs.json create mode 100644 AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DevTestLabs/2015-05-21-preview/DTL.json diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs index 84059d75c8401..4c7aa6c28a5d6 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AcceptanceTests.cs @@ -59,6 +59,12 @@ public static void DataLakeStore_2015_10_01_preview() RunSwaggerTest("DataLakeStore", "2015-10-01-preview", "account.json"); } + [Fact] + public static void DevTestLabs_2015_05_21_preview() + { + RunSwaggerTest("DevTestLabs", "2015-05-21-preview", "DTL.json"); + } + [Fact] public static void Dns_2015_05_04_preview() { 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 1de04625cf01a..55e2b20f4a1ce 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/AutoRest.Generator.AzureResourceSchema.Tests.csproj @@ -135,6 +135,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -192,6 +195,9 @@ PreserveNewest + + PreserveNewest + diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2015-06-15/Microsoft.Compute.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2015-06-15/Microsoft.Compute.json index 70dd5dd2f3480..cc93e2caf0232 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2015-06-15/Microsoft.Compute.json +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2015-06-15/Microsoft.Compute.json @@ -587,6 +587,7 @@ }, "time": { "type": "string", + "format": "date-time", "description": "Gets or sets the time of the status." } }, diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2016-03-30/Microsoft.Compute.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2016-03-30/Microsoft.Compute.json index 30685340f622d..a71cb6e63269a 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2016-03-30/Microsoft.Compute.json +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Compute/2016-03-30/Microsoft.Compute.json @@ -595,6 +595,7 @@ }, "time": { "type": "string", + "format": "date-time", "description": "Gets or sets the time of the status." } }, diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DevTestLabs/2015-05-21-preview/Microsoft.DevTestLabs.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DevTestLabs/2015-05-21-preview/Microsoft.DevTestLabs.json new file mode 100644 index 0000000000000..f0fca2c126769 --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/DevTestLabs/2015-05-21-preview/Microsoft.DevTestLabs.json @@ -0,0 +1,1806 @@ +{ + "id": "http://schema.management.azure.com/schemas/2015-05-21-preview/Microsoft.DevTestLab.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.DevTestLab", + "description": "Microsoft DevTestLab Resource Types", + "resourceDefinitions": { + "labs": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.DevTestLab/labs" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LabProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/labs_virtualnetworks_childResource" + }, + { + "$ref": "#/definitions/labs_virtualmachines_childResource" + }, + { + "$ref": "#/definitions/labs_schedules_childResource" + }, + { + "$ref": "#/definitions/labs_formulas_childResource" + }, + { + "$ref": "#/definitions/labs_customimages_childResource" + }, + { + "$ref": "#/definitions/labs_artifactsources_childResource" + } + ] + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs" + }, + "labs_artifactsources": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.DevTestLab/labs/artifactsources" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ArtifactSourceProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs/artifactsources" + }, + "labs_customimages": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.DevTestLab/labs/customimages" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/CustomImageProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs/customimages" + }, + "labs_formulas": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.DevTestLab/labs/formulas" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/FormulaProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs/formulas" + }, + "labs_policysets_policies": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.DevTestLab/labs/policysets/policies" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PolicyProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs/policysets/policies" + }, + "labs_schedules": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.DevTestLab/labs/schedules" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ScheduleProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs/schedules" + }, + "labs_virtualmachines": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.DevTestLab/labs/virtualmachines" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LabVirtualMachineProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs/virtualmachines" + }, + "labs_virtualnetworks": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Microsoft.DevTestLab/labs/virtualnetworks" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs/virtualnetworks" + } + }, + "definitions": { + "ArtifactDeploymentStatusProperties": { + "type": "object", + "properties": { + "deploymentStatus": { + "type": "string", + "description": "The deployment status of the artifact." + }, + "artifactsApplied": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The total count of the artifacts that were successfully applied." + }, + "totalArtifacts": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The total count of the artifacts that were tentatively applied." + } + }, + "description": "Properties of an artifact deployment." + }, + "ArtifactInstallProperties": { + "type": "object", + "properties": { + "artifactId": { + "type": "string", + "description": "The artifact's identifier." + }, + "parameters": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ArtifactParameterProperties" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The parameters of the artifact." + } + }, + "description": "Properties of an artifact." + }, + "ArtifactParameterProperties": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the artifact parameter." + }, + "value": { + "type": "string", + "description": "The value of the artifact parameter." + } + }, + "description": "Properties of an artifact parameter." + }, + "ArtifactSourceProperties": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the artifact source." + }, + "uri": { + "type": "string", + "description": "The URI of the artifact source." + }, + "sourceType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "VsoGit", + "GitHub" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The type of the artifact source. Possible values include: 'VsoGit', 'GitHub'" + }, + "folderPath": { + "type": "string", + "description": "The folder path of the artifact source." + }, + "branchRef": { + "type": "string", + "description": "The branch reference of the artifact source." + }, + "securityToken": { + "type": "string", + "description": "The security token of the artifact source." + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The status of the artifact source. Possible values include: 'Enabled', 'Disabled'" + }, + "provisioningState": { + "type": "string", + "description": "The provisioning status of the resource." + } + }, + "description": "Properties of an artifact source." + }, + "CustomImageProperties": { + "type": "object", + "properties": { + "vm": { + "oneOf": [ + { + "$ref": "#/definitions/CustomImagePropertiesFromVm" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ] + }, + "vhd": { + "oneOf": [ + { + "$ref": "#/definitions/CustomImagePropertiesCustom" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The VHD from which the image is to be created." + }, + "description": { + "type": "string", + "description": "The description of the custom image." + }, + "osType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Windows", + "Linux", + "None" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The OS type of the custom image. Possible values include: 'Windows', 'Linux', 'None'" + }, + "author": { + "type": "string", + "description": "The author of the custom image." + }, + "creationDate": { + "type": "string", + "format": "date-time", + "description": "The creation date of the custom image." + }, + "provisioningState": { + "type": "string", + "description": "The provisioning status of the resource." + } + }, + "description": "Properties of a custom image." + }, + "CustomImagePropertiesCustom": { + "type": "object", + "properties": { + "imageName": { + "type": "string", + "description": "The image name." + }, + "sysPrep": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Indicates whether sysprep has been run on the VHD." + } + }, + "description": "Properties for creating a custom image from a VHD." + }, + "CustomImagePropertiesFromVm": { + "type": "object", + "properties": { + "sourceVmId": { + "type": "string", + "description": "The source vm identifier." + }, + "sysPrep": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Indicates whether sysprep has been run on the VHD." + }, + "windowsOsInfo": { + "oneOf": [ + { + "$ref": "#/definitions/WindowsOsInfo" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The Windows OS information of the VM." + }, + "linuxOsInfo": { + "oneOf": [ + { + "$ref": "#/definitions/LinuxOsInfo" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The Linux OS information of the VM." + } + }, + "description": "Properties for creating a custom image from a virtual machine." + }, + "DayDetails": { + "type": "object", + "properties": { + "time": { + "type": "string" + } + }, + "description": "Properties of a daily schedule." + }, + "FormulaProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The description of the formula." + }, + "author": { + "type": "string", + "description": "The author of the formula." + }, + "osType": { + "type": "string", + "description": "The OS type of the formula." + }, + "creationDate": { + "type": "string", + "format": "date-time", + "description": "The creation date of the formula." + }, + "formulaContent": { + "oneOf": [ + { + "$ref": "#/definitions/LabVirtualMachine" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The content of the formula." + }, + "vm": { + "oneOf": [ + { + "$ref": "#/definitions/FormulaPropertiesFromVm" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Information about a VM from which a formula is to be created." + }, + "provisioningState": { + "type": "string", + "description": "The provisioning status of the resource." + } + }, + "description": "Properties of a formula." + }, + "FormulaPropertiesFromVm": { + "type": "object", + "properties": { + "labVmId": { + "type": "string", + "description": "The identifier of the VM from which a formula is to be created." + } + }, + "description": "Information about a VM from which a formula is to be created." + }, + "GalleryImageReference": { + "type": "object", + "properties": { + "offer": { + "type": "string", + "description": "The offer of the gallery image." + }, + "publisher": { + "type": "string", + "description": "The publisher of the gallery image." + }, + "sku": { + "type": "string", + "description": "The SKU of the gallery image." + }, + "osType": { + "type": "string", + "description": "The OS type of the gallery image." + }, + "version": { + "type": "string", + "description": "The version of the gallery image." + } + }, + "description": "The reference information for an Azure Marketplace image." + }, + "HourDetails": { + "type": "object", + "properties": { + "minute": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Minutes of the hour the schedule will run." + } + }, + "description": "Properties of an hourly schedule." + }, + "LabProperties": { + "type": "object", + "properties": { + "defaultStorageAccount": { + "type": "string", + "description": "The lab's default storage account." + }, + "artifactsStorageAccount": { + "type": "string", + "description": "The artifact storage account of the lab." + }, + "storageAccounts": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The storage accounts of the lab." + }, + "vaultName": { + "type": "string", + "description": "The name of the key vault of the lab." + }, + "labStorageType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Standard", + "Premium" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The type of the lab storage. Possible values include: 'Standard', 'Premium'" + }, + "defaultVirtualNetworkId": { + "type": "string", + "description": "The default virtual network identifier of the lab." + }, + "createdDate": { + "type": "string", + "format": "date-time", + "description": "The creation date of the lab." + }, + "provisioningState": { + "type": "string", + "description": "The provisioning status of the resource." + } + }, + "description": "Properties of a lab." + }, + "labs_artifactsources_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "artifactsources" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ArtifactSourceProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs/artifactsources" + }, + "labs_customimages_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "customimages" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/CustomImageProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs/customimages" + }, + "labs_formulas_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "formulas" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/FormulaProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs/formulas" + }, + "labs_schedules_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "schedules" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ScheduleProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs/schedules" + }, + "labs_virtualmachines_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "virtualmachines" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LabVirtualMachineProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs/virtualmachines" + }, + "labs_virtualnetworks_childResource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "virtualnetworks" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2015-05-21-preview" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "required": [ + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.DevTestLab/labs/virtualnetworks" + }, + "LabVirtualMachine": { + "type": "object", + "properties": { + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/LabVirtualMachineProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The properties of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "name": { + "type": "string", + "description": "The name of the resource." + }, + "type": { + "type": "string", + "description": "The type of the resource." + }, + "location": { + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The tags of the resource." + } + }, + "description": "A virtual machine." + }, + "LabVirtualMachineProperties": { + "type": "object", + "properties": { + "notes": { + "type": "string", + "description": "The notes of the virtual machine." + }, + "ownerObjectId": { + "type": "string", + "description": "The object identifier of the owner of the virtual machine." + }, + "createdByUserId": { + "type": "string", + "description": "The object identifier of the creator of the virtual machine." + }, + "createdByUser": { + "type": "string", + "description": "The email address of creator of the virtual machine." + }, + "computeId": { + "type": "string", + "description": "The resource identifier (Microsoft.Compute) of the virtual machine." + }, + "customImageId": { + "type": "string", + "description": "The custom image identifier of the virtual machine." + }, + "osType": { + "type": "string", + "description": "The OS type of the virtual machine." + }, + "size": { + "type": "string", + "description": "The size of the virtual machine." + }, + "userName": { + "type": "string", + "description": "The user name of the virtual machine." + }, + "password": { + "type": "string", + "description": "The password of the virtual machine administrator." + }, + "sshKey": { + "type": "string", + "description": "The SSH key of the virtual machine administrator." + }, + "isAuthenticationWithSshKey": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "A value indicating whether this virtual machine uses an SSH key for authentication." + }, + "fqdn": { + "type": "string", + "description": "The fully-qualified domain name of the virtual machine." + }, + "labSubnetName": { + "type": "string", + "description": "The lab subnet name of the virtual machine." + }, + "labVirtualNetworkId": { + "type": "string", + "description": "The lab virtual network identifier of the virtual machine." + }, + "disallowPublicIpAddress": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Indicates whether the virtual machine is to be created without a public IP address." + }, + "artifacts": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ArtifactInstallProperties" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The artifacts to be installed on the virtual machine." + }, + "artifactDeploymentStatus": { + "oneOf": [ + { + "$ref": "#/definitions/ArtifactDeploymentStatusProperties" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The artifact deployment status for the virtual machine." + }, + "galleryImageReference": { + "oneOf": [ + { + "$ref": "#/definitions/GalleryImageReference" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The Microsoft Azure Marketplace image reference of the virtual machine." + }, + "provisioningState": { + "type": "string", + "description": "The provisioning status of the resource." + } + }, + "description": "Properties of a virtual machine." + }, + "LinuxOsInfo": { + "type": "object", + "properties": { + "linuxOsState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NonDeprovisioned", + "DeprovisionRequested", + "DeprovisionApplied" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The state of the Linux OS. Possible values include: 'NonDeprovisioned', 'DeprovisionRequested', 'DeprovisionApplied'" + } + }, + "description": "Information about a Linux OS." + }, + "PolicyProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The description of the policy." + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The status of the policy. Possible values include: 'Enabled', 'Disabled'" + }, + "factName": { + "oneOf": [ + { + "type": "string", + "enum": [ + "UserOwnedLabVmCount", + "LabVmCount", + "LabVmSize", + "GalleryImage", + "UserOwnedLabVmCountInSubnet" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The fact name of the policy. Possible values include: 'UserOwnedLabVmCount', 'LabVmCount', 'LabVmSize', 'GalleryImage', 'UserOwnedLabVmCountInSubnet'" + }, + "factData": { + "type": "string", + "description": "The fact data of the policy." + }, + "threshold": { + "type": "string", + "description": "The threshold of the policy." + }, + "evaluatorType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AllowedValuesPolicy", + "MaxValuePolicy" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The evaluator type of the policy. Possible values include: 'AllowedValuesPolicy', 'MaxValuePolicy'" + }, + "provisioningState": { + "type": "string", + "description": "The provisioning status of the resource." + } + }, + "description": "Properties of a Policy." + }, + "ScheduleProperties": { + "type": "object", + "properties": { + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The status of the schedule. Possible values include: 'Enabled', 'Disabled'" + }, + "taskType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "LabVmsShutdownTask", + "LabVmsStartupTask", + "LabBillingTask" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The task type of the schedule. Possible values include: 'LabVmsShutdownTask', 'LabVmsStartupTask', 'LabBillingTask'" + }, + "weeklyRecurrence": { + "oneOf": [ + { + "$ref": "#/definitions/WeekDetails" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The weekly recurrence of the schedule." + }, + "dailyRecurrence": { + "oneOf": [ + { + "$ref": "#/definitions/DayDetails" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The daily recurrence of the schedule." + }, + "hourlyRecurrence": { + "oneOf": [ + { + "$ref": "#/definitions/HourDetails" + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The hourly recurrence of the schedule." + }, + "timeZoneId": { + "type": "string", + "description": "The time zone id." + }, + "provisioningState": { + "type": "string", + "description": "The provisioning status of the resource." + } + }, + "description": "Properties of a schedule." + }, + "Subnet": { + "type": "object", + "properties": { + "resourceId": { + "type": "string" + }, + "labSubnetName": { + "type": "string" + }, + "allowPublicIp": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Default", + "Deny", + "Allow" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Possible values include: 'Default', 'Deny', 'Allow'" + } + } + }, + "SubnetOverride": { + "type": "object", + "properties": { + "resourceId": { + "type": "string", + "description": "The resource identifier of the subnet." + }, + "labSubnetName": { + "type": "string", + "description": "The name given to the subnet within the lab." + }, + "useInVmCreationPermission": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Default", + "Deny", + "Allow" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Indicates whether this subnet can be used during virtual machine creation. Possible values include: 'Default', 'Deny', 'Allow'" + }, + "usePublicIpAddressPermission": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Default", + "Deny", + "Allow" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "Indicates whether public IP addresses can be assigned to virtual machines on this subnet. Possible values include: 'Default', 'Deny', 'Allow'" + } + }, + "description": "Property overrides on a subnet of a virtual network." + }, + "VirtualNetworkProperties": { + "type": "object", + "properties": { + "allowedSubnets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The allowed subnets of the virtual network." + }, + "description": { + "type": "string", + "description": "The description of the virtual network." + }, + "externalProviderResourceId": { + "type": "string", + "description": "The Microsoft.Network resource identifier of the virtual network." + }, + "subnetOverrides": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubnetOverride" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The subnet overrides of the virtual network." + }, + "provisioningState": { + "type": "string", + "description": "The provisioning status of the resource." + } + }, + "description": "Properties of a virtual network." + }, + "WeekDetails": { + "type": "object", + "properties": { + "weekdays": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The days of the week." + }, + "time": { + "type": "string", + "description": "The time of the day." + } + }, + "description": "Properties of a weekly schedule." + }, + "WindowsOsInfo": { + "type": "object", + "properties": { + "windowsOsState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NonSysprepped", + "SysprepRequested", + "SysprepApplied" + ] + }, + { + "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" + } + ], + "description": "The state of the Windows OS. Possible values include: 'NonSysprepped', 'SysprepRequested', 'SysprepApplied'" + } + }, + "description": "Information about a Windows OS." + } + } +} diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.CertificateRegistration.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.CertificateRegistration.json index df0baf33435b7..817bd6cae429e 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.CertificateRegistration.json +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.CertificateRegistration.json @@ -163,10 +163,12 @@ }, "notBefore": { "type": "string", + "format": "date-time", "description": "Valid from" }, "notAfter": { "type": "string", + "format": "date-time", "description": "Valid to" }, "signatureAlgorithm": { @@ -340,10 +342,12 @@ }, "lastCertificateIssuanceTime": { "type": "string", + "format": "date-time", "description": "Certificate last issuance time" }, "expirationTime": { "type": "string", + "format": "date-time", "description": "Certificate expiration time" } } diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.DomainRegistration.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.DomainRegistration.json index 12caa3e346bd1..82fe9dbd70024 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.DomainRegistration.json +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.DomainRegistration.json @@ -244,14 +244,17 @@ }, "createdTime": { "type": "string", + "format": "date-time", "description": "Domain creation timestamp" }, "expirationTime": { "type": "string", + "format": "date-time", "description": "Domain expiration timestamp" }, "lastRenewedTime": { "type": "string", + "format": "date-time", "description": "Timestamp when the domain was renewed last time" }, "autoRenew": { @@ -341,6 +344,7 @@ }, "agreedAt": { "type": "string", + "format": "date-time", "description": "Timestamp when the agreements were accepted" } }, diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.Web.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.Web.json index aca0f93c96142..dd8b1d46ccab1 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.Web.json +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Expected/Web/2015-08-01/Microsoft.Web.json @@ -1011,10 +1011,12 @@ }, "issueDate": { "type": "string", + "format": "date-time", "description": "Certificate issue Date" }, "expirationDate": { "type": "string", + "format": "date-time", "description": "Certificate expriration date" }, "password": { @@ -1257,10 +1259,12 @@ }, "start_time": { "type": "string", + "format": "date-time", "description": "StartTime" }, "end_time": { "type": "string", + "format": "date-time", "description": "EndTime" }, "active": { @@ -1816,7 +1820,8 @@ "order": { "oneOf": [ { - "type": "integer" + "type": "integer", + "format": "int32" }, { "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" @@ -1922,7 +1927,8 @@ "port": { "oneOf": [ { - "type": "integer" + "type": "integer", + "format": "int32" }, { "$ref": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#/definitions/expression" @@ -2254,6 +2260,7 @@ }, "requestTracingExpirationTime": { "type": "string", + "format": "date-time", "description": "Request tracing expiration time" }, "remoteDebuggingEnabled": { diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DevTestLabs/2015-05-21-preview/DTL.json b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DevTestLabs/2015-05-21-preview/DTL.json new file mode 100644 index 0000000000000..7dc0614ae694f --- /dev/null +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema.Tests/Swagger/DevTestLabs/2015-05-21-preview/DTL.json @@ -0,0 +1,4390 @@ +{ + "swagger": "2.0", + "info": { + "version": "2015-05-21-preview", + "title": "DevTestLabsClient", + "description": "The DevTest Labs client version 2015-05-21-preview." + }, + "host": "management.azure.com", + "schemes": [ "https" ], + "paths": { + "/subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/labs": { + "get": { + "tags": [ "Lab" ], + "description": "List labs.", + "operationId": "Lab_ListBySubscription", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[Lab]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/Lab" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs": { + "get": { + "tags": [ "Lab" ], + "description": "List labs.", + "operationId": "Lab_ListByResourceGroup", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[Lab]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/Lab" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources": { + "get": { + "tags": [ "ArtifactSource" ], + "description": "List artifact sources.", + "operationId": "ArtifactSource_List", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[ArtifactSource]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/ArtifactSource" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/artifacts": { + "get": { + "tags": [ "Artifact" ], + "description": "List artifacts.", + "operationId": "Artifact_List", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "artifactSourceName", + "in": "path", + "description": "The name of the artifact source.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[Artifact]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/Artifact" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/artifacts/{name}": { + "get": { + "tags": [ "Artifact" ], + "description": "Get artifact.", + "operationId": "Artifact_GetResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "artifactSourceName", + "in": "path", + "description": "The name of the artifact source.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the artifact.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Artifact" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/artifacts/{name}/generateArmTemplate": { + "post": { + "tags": [ "Artifact" ], + "description": "Generates an ARM template for the given artifact, uploads the required files to a storage account, and validates the generated artifact.", + "operationId": "Artifact_GenerateArmTemplate", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "artifactSourceName", + "in": "path", + "description": "The name of the artifact source.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the artifact.", + "required": true, + "type": "string" + }, + { + "name": "generateArmTemplateRequest", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/GenerateArmTemplateRequest" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ArmTemplateInfo" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{name}": { + "get": { + "tags": [ "ArtifactSource" ], + "description": "Get artifact source.", + "operationId": "ArtifactSource_GetResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the artifact source.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ArtifactSource" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + }, + "put": { + "tags": [ "ArtifactSource" ], + "description": "Create or replace an existing artifact source.", + "operationId": "ArtifactSource_CreateOrUpdateResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the artifact source.", + "required": true, + "type": "string" + }, + { + "name": "artifactSource", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/ArtifactSource" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ArtifactSource" } + }, + "201": { + "description": "Created", + "schema": { "$ref": "#/definitions/ArtifactSource" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + }, + "delete": { + "tags": [ "ArtifactSource" ], + "description": "Delete artifact source.", + "operationId": "ArtifactSource_DeleteResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the artifact source.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { "description": "OK" }, + "204": { "description": "No Content" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + }, + "patch": { + "tags": [ "ArtifactSource" ], + "description": "Modify properties of artifact sources.", + "operationId": "ArtifactSource_PatchResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the artifact source.", + "required": true, + "type": "string" + }, + { + "name": "artifactSource", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/ArtifactSource" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ArtifactSource" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/costinsights": { + "get": { + "tags": [ "CostInsight" ], + "description": "List cost insights.", + "operationId": "CostInsight_List", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[CostInsight]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/CostInsight" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/costinsights/{name}": { + "get": { + "tags": [ "CostInsight" ], + "description": "Get cost insight.", + "operationId": "CostInsight_GetResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the cost insight.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/CostInsight" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/costinsights/{name}/refreshData": { + "post": { + "tags": [ "CostInsight" ], + "description": "Refresh Lab's Cost Insight Data. This operation can take a while to complete.", + "operationId": "CostInsight_RefreshData", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the cost insight.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { "description": "OK" }, + "202": { "description": "Accepted" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/costs": { + "get": { + "tags": [ "Cost" ], + "description": "List costs.", + "operationId": "Cost_List", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[Cost]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/Cost" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/costs/{name}": { + "get": { + "tags": [ "Cost" ], + "description": "Get cost.", + "operationId": "Cost_GetResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the cost.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Cost" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/costs/{name}/refreshData": { + "post": { + "tags": [ "Cost" ], + "description": "Refresh Lab's Cost Data. This operation can take a while to complete.", + "operationId": "Cost_RefreshData", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the cost.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { "description": "OK" }, + "202": { "description": "Accepted" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/customimages": { + "get": { + "tags": [ "CustomImage" ], + "description": "List custom images.", + "operationId": "CustomImage_List", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[CustomImage]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/CustomImage" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/customimages/{name}": { + "get": { + "tags": [ "CustomImage" ], + "description": "Get custom image.", + "operationId": "CustomImage_GetResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the custom image.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/CustomImage" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + }, + "put": { + "tags": [ "CustomImage" ], + "description": "Create or replace an existing custom image. This operation can take a while to complete.", + "operationId": "CustomImage_CreateOrUpdateResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the custom image.", + "required": true, + "type": "string" + }, + { + "name": "customImage", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/CustomImage" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/CustomImage" } + }, + "201": { + "description": "Created", + "schema": { "$ref": "#/definitions/CustomImage" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ "CustomImage" ], + "description": "Delete custom image. This operation can take a while to complete.", + "operationId": "CustomImage_DeleteResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the custom image.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "202": { "description": "Accepted" }, + "204": { "description": "No Content" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/formulas": { + "get": { + "tags": [ "Formula" ], + "description": "List formulas.", + "operationId": "Formula_List", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[Formula]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/Formula" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/formulas/{name}": { + "get": { + "tags": [ "Formula" ], + "description": "Get formula.", + "operationId": "Formula_GetResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the formula.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Formula" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + }, + "put": { + "tags": [ "Formula" ], + "description": "Create or replace an existing Formula. This operation can take a while to complete.", + "operationId": "Formula_CreateOrUpdateResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the formula.", + "required": true, + "type": "string" + }, + { + "name": "formula", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/Formula" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Formula" } + }, + "201": { + "description": "Created", + "schema": { "$ref": "#/definitions/Formula" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ "Formula" ], + "description": "Delete formula.", + "operationId": "Formula_DeleteResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the formula.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { "description": "OK" }, + "204": { "description": "No Content" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/galleryimages": { + "get": { + "tags": [ "GalleryImage" ], + "description": "List gallery images.", + "operationId": "GalleryImage_List", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[GalleryImage]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/GalleryImage" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/policysets/{name}/evaluatePolicies": { + "post": { + "tags": [ "PolicySet" ], + "description": "Evaluates Lab Policy.", + "operationId": "PolicySet_EvaluatePolicies", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the policy set.", + "required": true, + "type": "string" + }, + { + "name": "evaluatePoliciesRequest", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/EvaluatePoliciesRequest" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/EvaluatePoliciesResponse" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/policysets/{policySetName}/policies": { + "get": { + "tags": [ "Policy" ], + "description": "List policies.", + "operationId": "Policy_List", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "policySetName", + "in": "path", + "description": "The name of the policy set.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[Policy]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/Policy" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/policysets/{policySetName}/policies/{name}": { + "get": { + "tags": [ "Policy" ], + "description": "Get policy.", + "operationId": "Policy_GetResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "policySetName", + "in": "path", + "description": "The name of the policy set.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the policy.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Policy" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + }, + "put": { + "tags": [ "Policy" ], + "description": "Create or replace an existing policy.", + "operationId": "Policy_CreateOrUpdateResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "policySetName", + "in": "path", + "description": "The name of the policy set.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the policy.", + "required": true, + "type": "string" + }, + { + "name": "policy", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/Policy" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Policy" } + }, + "201": { + "description": "Created", + "schema": { "$ref": "#/definitions/Policy" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + }, + "delete": { + "tags": [ "Policy" ], + "description": "Delete policy.", + "operationId": "Policy_DeleteResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "policySetName", + "in": "path", + "description": "The name of the policy set.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the policy.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { "description": "OK" }, + "204": { "description": "No Content" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + }, + "patch": { + "tags": [ "Policy" ], + "description": "Modify properties of policies.", + "operationId": "Policy_PatchResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "policySetName", + "in": "path", + "description": "The name of the policy set.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the policy.", + "required": true, + "type": "string" + }, + { + "name": "policy", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/Policy" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Policy" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/schedules": { + "get": { + "tags": [ "Schedule" ], + "description": "List schedules.", + "operationId": "Schedule_List", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[Schedule]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/Schedule" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/schedules/{name}": { + "get": { + "tags": [ "Schedule" ], + "description": "Get schedule.", + "operationId": "Schedule_GetResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the schedule.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Schedule" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + }, + "put": { + "tags": [ "Schedule" ], + "description": "Create or replace an existing schedule. This operation can take a while to complete.", + "operationId": "Schedule_CreateOrUpdateResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the schedule.", + "required": true, + "type": "string" + }, + { + "name": "schedule", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/Schedule" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Schedule" } + }, + "201": { + "description": "Created", + "schema": { "$ref": "#/definitions/Schedule" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ "Schedule" ], + "description": "Delete schedule. This operation can take a while to complete.", + "operationId": "Schedule_DeleteResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the schedule.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "202": { "description": "Accepted" }, + "204": { "description": "No Content" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ "Schedule" ], + "description": "Modify properties of schedules.", + "operationId": "Schedule_PatchResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the schedule.", + "required": true, + "type": "string" + }, + { + "name": "schedule", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/Schedule" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Schedule" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/schedules/{name}/execute": { + "post": { + "tags": [ "Schedule" ], + "description": "Execute a schedule. This operation can take a while to complete.", + "operationId": "Schedule_Execute", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the schedule.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { "description": "OK" }, + "202": { "description": "Accepted" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines": { + "get": { + "tags": [ "VirtualMachine" ], + "description": "List virtual machines.", + "operationId": "VirtualMachine_List", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[LabVirtualMachine]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/LabVirtualMachine" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}": { + "get": { + "tags": [ "VirtualMachine" ], + "description": "Get virtual machine.", + "operationId": "VirtualMachine_GetResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the virtual Machine.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/LabVirtualMachine" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + }, + "put": { + "tags": [ "VirtualMachine" ], + "description": "Create or replace an existing Virtual Machine. This operation can take a while to complete.", + "operationId": "VirtualMachine_CreateOrUpdateResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the virtual Machine.", + "required": true, + "type": "string" + }, + { + "name": "labVirtualMachine", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/LabVirtualMachine" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/LabVirtualMachine" } + }, + "201": { + "description": "Created", + "schema": { "$ref": "#/definitions/LabVirtualMachine" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ "VirtualMachine" ], + "description": "Delete virtual machine. This operation can take a while to complete.", + "operationId": "VirtualMachine_DeleteResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the virtual Machine.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "202": { "description": "Accepted" }, + "204": { "description": "No Content" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ "VirtualMachine" ], + "description": "Modify properties of virtual machines.", + "operationId": "VirtualMachine_PatchResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the virtual Machine.", + "required": true, + "type": "string" + }, + { + "name": "labVirtualMachine", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/LabVirtualMachine" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/LabVirtualMachine" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/applyArtifacts": { + "post": { + "tags": [ "VirtualMachine" ], + "description": "Apply artifacts to Lab VM. This operation can take a while to complete.", + "operationId": "VirtualMachine_ApplyArtifacts", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the virtual Machine.", + "required": true, + "type": "string" + }, + { + "name": "applyArtifactsRequest", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/ApplyArtifactsRequest" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { "description": "OK" }, + "202": { "description": "Accepted" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/start": { + "post": { + "tags": [ "VirtualMachine" ], + "description": "Start a Lab VM. This operation can take a while to complete.", + "operationId": "VirtualMachine_Start", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the virtual Machine.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { "description": "OK" }, + "202": { "description": "Accepted" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/stop": { + "post": { + "tags": [ "VirtualMachine" ], + "description": "Stop a Lab VM. This operation can take a while to complete.", + "operationId": "VirtualMachine_Stop", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the virtual Machine.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { "description": "OK" }, + "202": { "description": "Accepted" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualnetworks": { + "get": { + "tags": [ "VirtualNetwork" ], + "description": "List virtual networks.", + "operationId": "VirtualNetwork_List", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$orderBy", + "in": "query", + "required": false, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[VirtualNetwork]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/VirtualNetwork" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualnetworks/{name}": { + "get": { + "tags": [ "VirtualNetwork" ], + "description": "Get virtual network.", + "operationId": "VirtualNetwork_GetResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the virtual network.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/VirtualNetwork" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + }, + "put": { + "tags": [ "VirtualNetwork" ], + "description": "Create or replace an existing virtual network. This operation can take a while to complete.", + "operationId": "VirtualNetwork_CreateOrUpdateResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the virtual network.", + "required": true, + "type": "string" + }, + { + "name": "virtualNetwork", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/VirtualNetwork" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/VirtualNetwork" } + }, + "201": { + "description": "Created", + "schema": { "$ref": "#/definitions/VirtualNetwork" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ "VirtualNetwork" ], + "description": "Delete virtual network. This operation can take a while to complete.", + "operationId": "VirtualNetwork_DeleteResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the virtual network.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "202": { "description": "Accepted" }, + "204": { "description": "No Content" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ "VirtualNetwork" ], + "description": "Modify properties of virtual networks.", + "operationId": "VirtualNetwork_PatchResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "labName", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the virtual network.", + "required": true, + "type": "string" + }, + { + "name": "virtualNetwork", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/VirtualNetwork" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/VirtualNetwork" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}": { + "get": { + "tags": [ "Lab" ], + "description": "Get lab.", + "operationId": "Lab_GetResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Lab" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + }, + "put": { + "tags": [ "Lab" ], + "description": "Create or replace an existing Lab. This operation can take a while to complete.", + "operationId": "Lab_CreateOrUpdateResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "lab", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/Lab" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Lab" } + }, + "201": { + "description": "Created", + "schema": { "$ref": "#/definitions/Lab" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ "Lab" ], + "description": "Delete lab. This operation can take a while to complete.", + "operationId": "Lab_DeleteResource", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "202": { "description": "Accepted" }, + "204": { "description": "No Content" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ "Lab" ], + "description": "Modify properties of labs.", + "operationId": "Lab_PatchResource", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "lab", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/Lab" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Lab" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/createEnvironment": { + "post": { + "tags": [ "Lab" ], + "description": "Create virtual machines in a Lab. This operation can take a while to complete.", + "operationId": "Lab_CreateEnvironment", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "labVirtualMachine", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/LabVirtualMachine" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { "description": "OK" }, + "202": { "description": "Accepted" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/generateUploadUri": { + "post": { + "tags": [ "Lab" ], + "description": "Generate a URI for uploading custom disk images to a Lab.", + "operationId": "Lab_GenerateUploadUri", + "consumes": [ "application/json", "text/json" ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { + "name": "generateUploadUriParameter", + "in": "body", + "required": true, + "schema": { "$ref": "#/definitions/GenerateUploadUriParameter" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/GenerateUploadUriResponse" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/listVhds": { + "post": { + "tags": [ "Lab" ], + "description": "List disk images available for custom image creation.", + "operationId": "Lab_ListVhds", + "consumes": [ ], + "produces": [ "application/json", "text/json" ], + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "The name of the lab.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[LabVhd]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" } + } + } + }, + "definitions": { + "ApplyArtifactsRequest": { + "description": "Request body for applying artifacts to a virtual machine.", + "type": "object", + "properties": { + "artifacts": { + "description": "The list of artifacts to apply.", + "type": "array", + "items": { "$ref": "#/definitions/ArtifactInstallProperties" } + } + } + }, + "ArmTemplateInfo": { + "description": "Information about a generated ARM template.", + "type": "object", + "properties": { + "template": { + "$ref": "#/definitions/Object", + "description": "The template's contents." + }, + "parameters": { + "$ref": "#/definitions/Object", + "description": "The parameters of the ARM template." + } + } + }, + "Artifact": { + "description": "An artifact.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/ArtifactProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "name": { + "description": "The name of the resource.", + "type": "string" + }, + "type": { + "description": "The type of the resource.", + "type": "string" + }, + "location": { + "description": "The location of the resource.", + "type": "string" + }, + "tags": { + "description": "The tags of the resource.", + "type": "object", + "additionalProperties": { "type": "string" } + } + }, + "x-ms-azure-resource": true + }, + "ArtifactDeploymentStatusProperties": { + "description": "Properties of an artifact deployment.", + "type": "object", + "properties": { + "deploymentStatus": { + "description": "The deployment status of the artifact.", + "type": "string" + }, + "artifactsApplied": { + "format": "int32", + "description": "The total count of the artifacts that were successfully applied.", + "type": "integer" + }, + "totalArtifacts": { + "format": "int32", + "description": "The total count of the artifacts that were tentatively applied.", + "type": "integer" + } + } + }, + "ArtifactInstallProperties": { + "description": "Properties of an artifact.", + "type": "object", + "properties": { + "artifactId": { + "description": "The artifact's identifier.", + "type": "string" + }, + "parameters": { + "description": "The parameters of the artifact.", + "type": "array", + "items": { "$ref": "#/definitions/ArtifactParameterProperties" } + } + } + }, + "ArtifactParameterProperties": { + "description": "Properties of an artifact parameter.", + "type": "object", + "properties": { + "name": { + "description": "The name of the artifact parameter.", + "type": "string" + }, + "value": { + "description": "The value of the artifact parameter.", + "type": "string" + } + } + }, + "ArtifactProperties": { + "description": "Properties of an artifact.", + "type": "object", + "properties": { + "title": { + "description": "The title of the artifact.", + "type": "string" + }, + "description": { + "description": "The description of the artifact.", + "type": "string" + }, + "filePath": { + "description": "The file path of the artifact.", + "type": "string" + }, + "icon": { + "description": "The icon of the artifact.", + "type": "string" + }, + "targetOsType": { + "description": "Gets or sets the type of the target os.", + "type": "string" + }, + "parameters": { + "$ref": "#/definitions/Object", + "description": "The parameters of the artifact." + } + } + }, + "ArtifactSource": { + "description": "Properties of an artifact source.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/ArtifactSourceProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "name": { + "description": "The name of the resource.", + "type": "string" + }, + "type": { + "description": "The type of the resource.", + "type": "string" + }, + "location": { + "description": "The location of the resource.", + "type": "string" + }, + "tags": { + "description": "The tags of the resource.", + "type": "object", + "additionalProperties": { "type": "string" } + } + }, + "x-ms-azure-resource": true + }, + "ArtifactSourceProperties": { + "description": "Properties of an artifact source.", + "type": "object", + "properties": { + "displayName": { + "description": "The display name of the artifact source.", + "type": "string" + }, + "uri": { + "description": "The URI of the artifact source.", + "type": "string" + }, + "sourceType": { + "description": "The type of the artifact source.", + "enum": [ "VsoGit", "GitHub" ], + "type": "string", + "x-ms-enum": { + "name": "SourceControlType", + "modelAsString": true + } + }, + "folderPath": { + "description": "The folder path of the artifact source.", + "type": "string" + }, + "branchRef": { + "description": "The branch reference of the artifact source.", + "type": "string" + }, + "securityToken": { + "description": "The security token of the artifact source.", + "type": "string" + }, + "status": { + "description": "The status of the artifact source.", + "enum": [ "Enabled", "Disabled" ], + "type": "string", + "x-ms-enum": { + "name": "EnableStatus", + "modelAsString": true + } + }, + "provisioningState": { + "description": "The provisioning status of the resource.", + "type": "string" + } + } + }, + "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 + }, + "Cost": { + "description": "A cost item.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/CostProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "name": { + "description": "The name of the resource.", + "type": "string" + }, + "type": { + "description": "The type of the resource.", + "type": "string" + }, + "location": { + "description": "The location of the resource.", + "type": "string" + }, + "tags": { + "description": "The tags of the resource.", + "type": "object", + "additionalProperties": { "type": "string" } + } + }, + "x-ms-azure-resource": true + }, + "CostInsight": { + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/CostInsightProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "name": { + "description": "The name of the resource.", + "type": "string" + }, + "type": { + "description": "The type of the resource.", + "type": "string" + }, + "location": { + "description": "The location of the resource.", + "type": "string" + }, + "tags": { + "description": "The tags of the resource.", + "type": "object", + "additionalProperties": { "type": "string" } + } + }, + "x-ms-azure-resource": true + }, + "CostInsightProperties": { + "type": "object", + "properties": { + "currencyCode": { "type": "string" }, + "vmCosts": { + "type": "array", + "items": { "$ref": "#/definitions/VMCostProperties" } + }, + "provisioningState": { + "description": "The provisioning status of the resource.", + "type": "string" + } + } + }, + "CostPerDayProperties": { + "description": "The per-day properties of a cost item.", + "type": "object", + "properties": { + "date": { + "format": "date-time", + "description": "The date of the cost item.", + "type": "string" + }, + "cost": { + "format": "double", + "description": "The cost of the cost item.", + "type": "number" + }, + "costType": { + "description": "The type of the cost.", + "enum": [ "Unavailable", "Reported", "Projected" ], + "type": "string", + "x-ms-enum": { + "name": "CostPropertyType", + "modelAsString": true + } + } + } + }, + "CostProperties": { + "description": "Properties of a cost item.", + "type": "object", + "properties": { + "currencyCode": { + "description": "The currency code of the cost.", + "type": "string" + }, + "costs": { + "description": "The per-day costs items of the cost.", + "type": "array", + "items": { "$ref": "#/definitions/CostPerDayProperties" } + } + } + }, + "CustomImage": { + "description": "A custom image.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/CustomImageProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "name": { + "description": "The name of the resource.", + "type": "string" + }, + "type": { + "description": "The type of the resource.", + "type": "string" + }, + "location": { + "description": "The location of the resource.", + "type": "string" + }, + "tags": { + "description": "The tags of the resource.", + "type": "object", + "additionalProperties": { "type": "string" } + } + }, + "x-ms-azure-resource": true + }, + "CustomImageProperties": { + "description": "Properties of a custom image.", + "type": "object", + "properties": { + "vm": { + "$ref": "#/definitions/CustomImagePropertiesFromVm", + "description": "" + }, + "vhd": { + "$ref": "#/definitions/CustomImagePropertiesCustom", + "description": "The VHD from which the image is to be created." + }, + "description": { + "description": "The description of the custom image.", + "type": "string" + }, + "osType": { + "description": "The OS type of the custom image.", + "enum": [ "Windows", "Linux", "None" ], + "type": "string", + "x-ms-enum": { + "name": "CustomImageOsType", + "modelAsString": true + } + }, + "author": { + "description": "The author of the custom image.", + "type": "string" + }, + "creationDate": { + "format": "date-time", + "description": "The creation date of the custom image.", + "type": "string" + }, + "provisioningState": { + "description": "The provisioning status of the resource.", + "type": "string" + } + } + }, + "CustomImagePropertiesCustom": { + "description": "Properties for creating a custom image from a VHD.", + "type": "object", + "properties": { + "imageName": { + "description": "The image name.", + "type": "string" + }, + "sysPrep": { + "description": "Indicates whether sysprep has been run on the VHD.", + "type": "boolean" + } + } + }, + "CustomImagePropertiesFromVm": { + "description": "Properties for creating a custom image from a virtual machine.", + "type": "object", + "properties": { + "sourceVmId": { + "description": "The source vm identifier.", + "type": "string" + }, + "sysPrep": { + "description": "Indicates whether sysprep has been run on the VHD.", + "type": "boolean" + }, + "windowsOsInfo": { + "$ref": "#/definitions/WindowsOsInfo", + "description": "The Windows OS information of the VM." + }, + "linuxOsInfo": { + "$ref": "#/definitions/LinuxOsInfo", + "description": "The Linux OS information of the VM." + } + } + }, + "DayDetails": { + "description": "Properties of a daily schedule.", + "type": "object", + "properties": { "time": { "type": "string" } } + }, + "EvaluatePoliciesProperties": { + "description": "Properties for evaluating a policy set.", + "type": "object", + "properties": { + "factName": { + "description": "The fact name.", + "type": "string" + }, + "factData": { + "description": "The fact data.", + "type": "string" + }, + "valueOffset": { + "description": "The value offset.", + "type": "string" + } + } + }, + "EvaluatePoliciesRequest": { + "description": "Request body for evaluating a policy set.", + "type": "object", + "properties": { + "policies": { + "description": "Policies to evaluate.", + "type": "array", + "items": { "$ref": "#/definitions/EvaluatePoliciesProperties" } + } + } + }, + "EvaluatePoliciesResponse": { + "description": "Response body for evaluating a policy set.", + "type": "object", + "properties": { + "results": { + "description": "Results of evaluating a policy set.", + "type": "array", + "items": { "$ref": "#/definitions/PolicySetResult" } + } + } + }, + "Formula": { + "description": "A formula.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/FormulaProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "name": { + "description": "The name of the resource.", + "type": "string" + }, + "type": { + "description": "The type of the resource.", + "type": "string" + }, + "location": { + "description": "The location of the resource.", + "type": "string" + }, + "tags": { + "description": "The tags of the resource.", + "type": "object", + "additionalProperties": { "type": "string" } + } + }, + "x-ms-azure-resource": true + }, + "FormulaProperties": { + "description": "Properties of a formula.", + "type": "object", + "properties": { + "description": { + "description": "The description of the formula.", + "type": "string" + }, + "author": { + "description": "The author of the formula.", + "type": "string" + }, + "osType": { + "description": "The OS type of the formula.", + "type": "string" + }, + "creationDate": { + "format": "date-time", + "description": "The creation date of the formula.", + "type": "string" + }, + "formulaContent": { + "$ref": "#/definitions/LabVirtualMachine", + "description": "The content of the formula." + }, + "vm": { + "$ref": "#/definitions/FormulaPropertiesFromVm", + "description": "Information about a VM from which a formula is to be created." + }, + "provisioningState": { + "description": "The provisioning status of the resource.", + "type": "string" + } + } + }, + "FormulaPropertiesFromVm": { + "description": "Information about a VM from which a formula is to be created.", + "type": "object", + "properties": { + "labVmId": { + "description": "The identifier of the VM from which a formula is to be created.", + "type": "string" + } + } + }, + "GalleryImage": { + "description": "A gallery image.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/GalleryImageProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "name": { + "description": "The name of the resource.", + "type": "string" + }, + "type": { + "description": "The type of the resource.", + "type": "string" + }, + "location": { + "description": "The location of the resource.", + "type": "string" + }, + "tags": { + "description": "The tags of the resource.", + "type": "object", + "additionalProperties": { "type": "string" } + } + }, + "x-ms-azure-resource": true + }, + "GalleryImageProperties": { + "description": "Properties of a gallery image.", + "type": "object", + "properties": { + "author": { + "description": "The author of the gallery image.", + "type": "string" + }, + "createdDate": { + "format": "date-time", + "description": "The creation date of the gallery image.", + "type": "string" + }, + "description": { + "description": "The description of the gallery image.", + "type": "string" + }, + "imageReference": { + "$ref": "#/definitions/GalleryImageReference", + "description": "The image reference of the gallery image." + }, + "icon": { + "description": "The icon of the gallery image.", + "type": "string" + }, + "enabled": { + "description": "Indicates whether this gallery image is enabled.", + "type": "boolean" + } + } + }, + "GalleryImageReference": { + "description": "The reference information for an Azure Marketplace image.", + "type": "object", + "properties": { + "offer": { + "description": "The offer of the gallery image.", + "type": "string" + }, + "publisher": { + "description": "The publisher of the gallery image.", + "type": "string" + }, + "sku": { + "description": "The SKU of the gallery image.", + "type": "string" + }, + "osType": { + "description": "The OS type of the gallery image.", + "type": "string" + }, + "version": { + "description": "The version of the gallery image.", + "type": "string" + } + } + }, + "GenerateArmTemplateRequest": { + "description": "Parameters for generating an ARM template for deploying artifacts.", + "type": "object", + "properties": { + "virtualMachineName": { + "description": "The resource name of the virtual machine.", + "type": "string" + }, + "parameters": { + "description": "The parameters of the ARM template.", + "type": "array", + "items": { "$ref": "#/definitions/ParameterInfo" } + }, + "location": { + "description": "The location of the virtual machine.", + "type": "string" + } + } + }, + "GenerateUploadUriParameter": { + "description": "Properties for generating an upload URI.", + "type": "object", + "properties": { + "blobName": { + "description": "The blob name of the upload URI.", + "type": "string" + } + } + }, + "GenerateUploadUriResponse": { + "description": "Reponse body for generating an upload URI.", + "type": "object", + "properties": { + "uploadUri": { + "description": "The upload URI for the VHD.", + "type": "string" + } + } + }, + "HourDetails": { + "description": "Properties of an hourly schedule.", + "type": "object", + "properties": { + "minute": { + "format": "int32", + "description": "Minutes of the hour the schedule will run.", + "type": "integer" + } + } + }, + "Lab": { + "description": "A lab.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/LabProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "name": { + "description": "The name of the resource.", + "type": "string" + }, + "type": { + "description": "The type of the resource.", + "type": "string" + }, + "location": { + "description": "The location of the resource.", + "type": "string" + }, + "tags": { + "description": "The tags of the resource.", + "type": "object", + "additionalProperties": { "type": "string" } + } + }, + "x-ms-azure-resource": true + }, + "LabProperties": { + "description": "Properties of a lab.", + "type": "object", + "properties": { + "defaultStorageAccount": { + "description": "The lab's default storage account.", + "type": "string" + }, + "artifactsStorageAccount": { + "description": "The artifact storage account of the lab.", + "type": "string" + }, + "storageAccounts": { + "description": "The storage accounts of the lab.", + "type": "array", + "items": { "type": "string" } + }, + "vaultName": { + "description": "The name of the key vault of the lab.", + "type": "string" + }, + "labStorageType": { + "description": "The type of the lab storage.", + "enum": [ "Standard", "Premium" ], + "type": "string", + "x-ms-enum": { + "name": "LabStorageType", + "modelAsString": true + } + }, + "defaultVirtualNetworkId": { + "description": "The default virtual network identifier of the lab.", + "type": "string" + }, + "createdDate": { + "format": "date-time", + "description": "The creation date of the lab.", + "type": "string" + }, + "provisioningState": { + "description": "The provisioning status of the resource.", + "type": "string" + } + } + }, + "LabVhd": { + "description": "Properties of a VHD in the lab.", + "type": "object", + "properties": { + "id": { + "description": "The absolute URI of the VHD.", + "type": "string" + } + } + }, + "LabVirtualMachine": { + "description": "A virtual machine.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/LabVirtualMachineProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "name": { + "description": "The name of the resource.", + "type": "string" + }, + "type": { + "description": "The type of the resource.", + "type": "string" + }, + "location": { + "description": "The location of the resource.", + "type": "string" + }, + "tags": { + "description": "The tags of the resource.", + "type": "object", + "additionalProperties": { "type": "string" } + } + }, + "x-ms-azure-resource": true + }, + "LabVirtualMachineProperties": { + "description": "Properties of a virtual machine.", + "type": "object", + "properties": { + "notes": { + "description": "The notes of the virtual machine.", + "type": "string" + }, + "ownerObjectId": { + "description": "The object identifier of the owner of the virtual machine.", + "type": "string" + }, + "createdByUserId": { + "description": "The object identifier of the creator of the virtual machine.", + "type": "string" + }, + "createdByUser": { + "description": "The email address of creator of the virtual machine.", + "type": "string" + }, + "computeId": { + "description": "The resource identifier (Microsoft.Compute) of the virtual machine.", + "type": "string" + }, + "customImageId": { + "description": "The custom image identifier of the virtual machine.", + "type": "string" + }, + "osType": { + "description": "The OS type of the virtual machine.", + "type": "string" + }, + "size": { + "description": "The size of the virtual machine.", + "type": "string" + }, + "userName": { + "description": "The user name of the virtual machine.", + "type": "string" + }, + "password": { + "description": "The password of the virtual machine administrator.", + "type": "string" + }, + "sshKey": { + "description": "The SSH key of the virtual machine administrator.", + "type": "string" + }, + "isAuthenticationWithSshKey": { + "description": "A value indicating whether this virtual machine uses an SSH key for authentication.", + "type": "boolean" + }, + "fqdn": { + "description": "The fully-qualified domain name of the virtual machine.", + "type": "string" + }, + "labSubnetName": { + "description": "The lab subnet name of the virtual machine.", + "type": "string" + }, + "labVirtualNetworkId": { + "description": "The lab virtual network identifier of the virtual machine.", + "type": "string" + }, + "disallowPublicIpAddress": { + "description": "Indicates whether the virtual machine is to be created without a public IP address.", + "type": "boolean" + }, + "artifacts": { + "description": "The artifacts to be installed on the virtual machine.", + "type": "array", + "items": { "$ref": "#/definitions/ArtifactInstallProperties" } + }, + "artifactDeploymentStatus": { + "$ref": "#/definitions/ArtifactDeploymentStatusProperties", + "description": "The artifact deployment status for the virtual machine." + }, + "galleryImageReference": { + "$ref": "#/definitions/GalleryImageReference", + "description": "The Microsoft Azure Marketplace image reference of the virtual machine." + }, + "provisioningState": { + "description": "The provisioning status of the resource.", + "type": "string" + } + } + }, + "LinuxOsInfo": { + "description": "Information about a Linux OS.", + "type": "object", + "properties": { + "linuxOsState": { + "description": "The state of the Linux OS.", + "enum": [ "NonDeprovisioned", "DeprovisionRequested", "DeprovisionApplied" ], + "type": "string", + "x-ms-enum": { + "name": "LinuxOsState", + "modelAsString": true + } + } + } + }, + "Object": { + "type": "object", + "properties": { } + }, + "ParameterInfo": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "value": { "type": "string" } + } + }, + "Policy": { + "description": "A Policy.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/PolicyProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "name": { + "description": "The name of the resource.", + "type": "string" + }, + "type": { + "description": "The type of the resource.", + "type": "string" + }, + "location": { + "description": "The location of the resource.", + "type": "string" + }, + "tags": { + "description": "The tags of the resource.", + "type": "object", + "additionalProperties": { "type": "string" } + } + }, + "x-ms-azure-resource": true + }, + "PolicyProperties": { + "description": "Properties of a Policy.", + "type": "object", + "properties": { + "description": { + "description": "The description of the policy.", + "type": "string" + }, + "status": { + "description": "The status of the policy.", + "enum": [ "Enabled", "Disabled" ], + "type": "string", + "x-ms-enum": { + "name": "PolicyStatus", + "modelAsString": true + } + }, + "factName": { + "description": "The fact name of the policy.", + "enum": [ "UserOwnedLabVmCount", "LabVmCount", "LabVmSize", "GalleryImage", "UserOwnedLabVmCountInSubnet" ], + "type": "string", + "x-ms-enum": { + "name": "PolicyFactName", + "modelAsString": true + } + }, + "factData": { + "description": "The fact data of the policy.", + "type": "string" + }, + "threshold": { + "description": "The threshold of the policy.", + "type": "string" + }, + "evaluatorType": { + "description": "The evaluator type of the policy.", + "enum": [ "AllowedValuesPolicy", "MaxValuePolicy" ], + "type": "string", + "x-ms-enum": { + "name": "PolicyEvaluatorType", + "modelAsString": true + } + }, + "provisioningState": { + "description": "The provisioning status of the resource.", + "type": "string" + } + } + }, + "PolicySetResult": { + "description": "Result of a policy set evaluation.", + "type": "object", + "properties": { + "hasError": { + "description": "A value indicating whether this policy set evaluation has discovered violations.", + "type": "boolean" + }, + "policyViolations": { + "description": "The list of policy violations.", + "type": "array", + "items": { "$ref": "#/definitions/PolicyViolation" } + } + } + }, + "PolicyViolation": { + "description": "Policy violation.", + "type": "object", + "properties": { + "code": { + "description": "The code of the policy violation.", + "type": "string" + }, + "message": { + "description": "The message of the policy violation.", + "type": "string" + } + } + }, + "ResponseWithContinuation[Artifact]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/Artifact" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[ArtifactSource]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/ArtifactSource" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[Cost]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/Cost" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[CostInsight]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/CostInsight" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[CustomImage]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/CustomImage" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[Formula]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/Formula" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[GalleryImage]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/GalleryImage" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[Lab]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/Lab" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[LabVhd]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/LabVhd" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[LabVirtualMachine]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/LabVirtualMachine" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[Policy]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/Policy" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[Schedule]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/Schedule" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[VirtualNetwork]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/VirtualNetwork" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "Schedule": { + "description": "A schedule.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/ScheduleProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "name": { + "description": "The name of the resource.", + "type": "string" + }, + "type": { + "description": "The type of the resource.", + "type": "string" + }, + "location": { + "description": "The location of the resource.", + "type": "string" + }, + "tags": { + "description": "The tags of the resource.", + "type": "object", + "additionalProperties": { "type": "string" } + } + }, + "x-ms-azure-resource": true + }, + "ScheduleProperties": { + "description": "Properties of a schedule.", + "type": "object", + "properties": { + "status": { + "description": "The status of the schedule.", + "enum": [ "Enabled", "Disabled" ], + "type": "string", + "x-ms-enum": { + "name": "EnableStatus", + "modelAsString": true + } + }, + "taskType": { + "description": "The task type of the schedule.", + "enum": [ "LabVmsShutdownTask", "LabVmsStartupTask", "LabBillingTask" ], + "type": "string", + "x-ms-enum": { + "name": "TaskType", + "modelAsString": true + } + }, + "weeklyRecurrence": { + "$ref": "#/definitions/WeekDetails", + "description": "The weekly recurrence of the schedule." + }, + "dailyRecurrence": { + "$ref": "#/definitions/DayDetails", + "description": "The daily recurrence of the schedule." + }, + "hourlyRecurrence": { + "$ref": "#/definitions/HourDetails", + "description": "The hourly recurrence of the schedule." + }, + "timeZoneId": { + "description": "The time zone id.", + "type": "string" + }, + "provisioningState": { + "description": "The provisioning status of the resource.", + "type": "string" + } + } + }, + "Subnet": { + "type": "object", + "properties": { + "resourceId": { "type": "string" }, + "labSubnetName": { "type": "string" }, + "allowPublicIp": { + "enum": [ "Default", "Deny", "Allow" ], + "type": "string", + "x-ms-enum": { + "name": "UsagePermissionType", + "modelAsString": true + } + } + } + }, + "SubnetOverride": { + "description": "Property overrides on a subnet of a virtual network.", + "type": "object", + "properties": { + "resourceId": { + "description": "The resource identifier of the subnet.", + "type": "string" + }, + "labSubnetName": { + "description": "The name given to the subnet within the lab.", + "type": "string" + }, + "useInVmCreationPermission": { + "description": "Indicates whether this subnet can be used during virtual machine creation.", + "enum": [ "Default", "Deny", "Allow" ], + "type": "string", + "x-ms-enum": { + "name": "UsagePermissionType", + "modelAsString": true + } + }, + "usePublicIpAddressPermission": { + "description": "Indicates whether public IP addresses can be assigned to virtual machines on this subnet.", + "enum": [ "Default", "Deny", "Allow" ], + "type": "string", + "x-ms-enum": { + "name": "UsagePermissionType", + "modelAsString": true + } + } + } + }, + "SubscriptionNotification": { + "type": "object", + "properties": { + "registrationDate": { "type": "string" }, + "state": { + "enum": [ "NotDefined", "Registered", "Unregistered", "Warned", "Suspended", "Deleted" ], + "type": "string", + "x-ms-enum": { + "name": "SubscriptionNotificationState", + "modelAsString": true + } + }, + "properties": { "$ref": "#/definitions/SubscriptionNotificationProperties" } + } + }, + "SubscriptionNotificationProperties": { + "type": "object", + "properties": { "tenantId": { "type": "string" } } + }, + "VirtualNetwork": { + "description": "A virtual network.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/VirtualNetworkProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "name": { + "description": "The name of the resource.", + "type": "string" + }, + "type": { + "description": "The type of the resource.", + "type": "string" + }, + "location": { + "description": "The location of the resource.", + "type": "string" + }, + "tags": { + "description": "The tags of the resource.", + "type": "object", + "additionalProperties": { "type": "string" } + } + }, + "x-ms-azure-resource": true + }, + "VirtualNetworkProperties": { + "description": "Properties of a virtual network.", + "type": "object", + "properties": { + "allowedSubnets": { + "description": "The allowed subnets of the virtual network.", + "type": "array", + "items": { "$ref": "#/definitions/Subnet" } + }, + "description": { + "description": "The description of the virtual network.", + "type": "string" + }, + "externalProviderResourceId": { + "description": "The Microsoft.Network resource identifier of the virtual network.", + "type": "string" + }, + "subnetOverrides": { + "description": "The subnet overrides of the virtual network.", + "type": "array", + "items": { "$ref": "#/definitions/SubnetOverride" } + }, + "provisioningState": { + "description": "The provisioning status of the resource.", + "type": "string" + } + } + }, + "VMCostProperties": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "resourceGroupName": { "type": "string" }, + "cost": { + "format": "double", + "type": "number" + } + } + }, + "WeekDetails": { + "description": "Properties of a weekly schedule.", + "type": "object", + "properties": { + "weekdays": { + "description": "The days of the week.", + "type": "array", + "items": { "type": "string" } + }, + "time": { + "description": "The time of the day.", + "type": "string" + } + } + }, + "WindowsOsInfo": { + "description": "Information about a Windows OS.", + "type": "object", + "properties": { + "windowsOsState": { + "description": "The state of the Windows OS.", + "enum": [ "NonSysprepped", "SysprepRequested", "SysprepApplied" ], + "type": "string", + "x-ms-enum": { + "name": "WindowsOsState", + "modelAsString": true + } + } + } + } + }, + "parameters": { + "api-version": { + "name": "api-version", + "in": "query", + "description": "Client API version.", + "required": true, + "type": "string", + "default": "2015-05-21-preview" + }, + "subscriptionId": { + "name": "subscriptionId", + "in": "path", + "description": "The subscription ID.", + "required": true, + "type": "string" + } + }, + "securityDefinitions": { + "oauth2": { + "type": "oauth2", + "description": "OAuth2 Implicit Grant", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { "user_impersonation": "Access Microsoft Azure" } + } + }, + "security": [ { "oauth2": [ "user_impersonation" ] } ] +} diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/JsonSchema.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/JsonSchema.cs index 26beb8c8606a7..98fb128331fb6 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/JsonSchema.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/JsonSchema.cs @@ -30,6 +30,11 @@ public class JsonSchema /// public JsonSchema Items { get; set; } + /// + /// The format of the value that matches this schema. This only applies to string values. + /// + public string Format { get; set; } + /// /// The description metadata that describes this schema. /// diff --git a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/ResourceSchemaParser.cs b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/ResourceSchemaParser.cs index b6a68bb6093af..8614c78002c4f 100644 --- a/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/ResourceSchemaParser.cs +++ b/AutoRest/Generators/AzureResourceSchema/AzureResourceSchema/ResourceSchemaParser.cs @@ -210,6 +210,7 @@ private static JsonSchema ParseProperty(Property property, IDictionary