From 2f458702b57a57376e2cfaf119bcdba4a8d02202 Mon Sep 17 00:00:00 2001 From: Dan Schulte Date: Wed, 25 May 2016 12:59:34 -0700 Subject: [PATCH] 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 b914c4694e..6cf9324d14 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 c9afa085b3..2663c32902 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 0000000000..1ef130aa4b --- /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 0000000000..c8793ab68b --- /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 0000000000..65c97a8a78 --- /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 0000000000..fc7c3c052e --- /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