diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index f23f12deef48..000000000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "EditorConfig.EditorConfig", - "esbenp.prettier-vscode", - "docsmsft.docs-authoring-pack" - ] -} diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index fe6da0a7d616..000000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "request": "launch", - "name": "Mocha Tests", - "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha", - "args": [ - "--timeout", - "999999", - "--colors", - "${workspaceFolder}/test/syntax.js" - ], - "internalConsoleOptions": "openOnSessionStart" - }, - { - "type": "node", - "request": "launch", - "name": "Launch Program", - "program": "${file}" - } - ] -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 81c95f4d9519..000000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,27 +0,0 @@ -// Place your settings in this file to overwrite default and user settings. -{ - "json.schemas":[ - { - "fileMatch":[ - "/**/specification/*.json" - ], - "url":"https://raw.githubusercontent.com/Azure/autorest/master/schema/swagger-extensions.json" - }, - { - "fileMatch":[ - "/**/examples/*.json" - ], - "url":"https://raw.githubusercontent.com/Azure/autorest/master/schema/example-schema.json" - }, - { - "fileMatch":[ - "/**/composite*.json" - ], - "url":"https://raw.githubusercontent.com/Azure/autorest/master/schema/composite-swagger.json" - } - ], - "typescript.tsdk": "node_modules\\typescript\\lib", - "[json]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - } -} diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/examples/GetLocations.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/examples/GetLocations.json new file mode 100644 index 000000000000..2d23bcd8363e --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/examples/GetLocations.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "subscriptionId": "291bba3f-e0a5-47bc-a099-3bdcb2a50a05", + "api-version": "2019-11-01" + }, + "responses": { + "200": { + "body": [ + { + "id": "/subscriptions/291bba3f-e0a5-47bc-a099-3bdcb2a50a05/locations/centralus", + "name": "centralus", + "displayName": "Central US", + "regionalDisplayName": "(US) Central US", + "metadata": { + "regionType": "Physical", + "regionCategory": "Recommended", + "geographyGroup": "US", + "longitude": "-93.6208", + "latitude": "41.5908", + "physicalLocation": "Iowa", + "pairedRegion": [ + { + "name": "eastus2", + "id": "/subscriptions/291bba3f-e0a5-47bc-a099-3bdcb2a50a05/locations/eastus2" + } + ] + } + }, + { + "id": "/subscriptions/291bba3f-e0a5-47bc-a099-3bdcb2a50a05/locations/eastasia", + "name": "eastasia", + "displayName": "East Asia", + "regionalDisplayName": "(Asia Pacific) East Asia", + "metadata": { + "regionType": "Physical", + "regionCategory": "Recommended", + "geographyGroup": "Asia Pacific", + "longitude": "114.188", + "latitude": "22.267", + "physicalLocation": "Hong Kong", + "pairedRegion": [ + { + "name": "southeastasia", + "id": "/subscriptions/291bba3f-e0a5-47bc-a099-3bdcb2a50a05/locations/southeastasia" + } + ] + } + } + ] + } + } +} diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/examples/GetSubscription.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/examples/GetSubscription.json new file mode 100644 index 000000000000..087ec2b7b555 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/examples/GetSubscription.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "subscriptionId": "291bba3f-e0a5-47bc-a099-3bdcb2a50a05", + "api-version": "2019-11-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/291bba3f-e0a5-47bc-a099-3bdcb2a50a05", + "subscriptionId": "291bba3f-e0a5-47bc-a099-3bdcb2a50a05", + "tenantId": "31c75423-32d6-4322-88b7-c478bdde4858", + "displayName": "Example Subscription", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + }, + "authorizationSource": "Bypassed", + "managedByTenants": [ + { + "tenantId": "8f70baf1-1f6e-46a2-a1ff-238dac1ebfb7" + } + ] + } + } + } +} diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/examples/GetSubscriptions.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/examples/GetSubscriptions.json new file mode 100644 index 000000000000..98c7aad42602 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/examples/GetSubscriptions.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "api-version": "2019-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/291bba3f-e0a5-47bc-a099-3bdcb2a50a05", + "subscriptionId": "291bba3f-e0a5-47bc-a099-3bdcb2a50a05", + "tenantId": "31c75423-32d6-4322-88b7-c478bdde4858", + "displayName": "Example Subscription", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + }, + "authorizationSource": "RoleBased", + "managedByTenants": [ + { + "tenantId": "8f70baf1-1f6e-46a2-a1ff-238dac1ebfb7" + } + ] + }, + { + "id": "/subscriptions/72ac930a-f34e-42d8-b06d-dc2a9e12ed71", + "subscriptionId": "72ac930a-f34e-42d8-b06d-dc2a9e12ed71", + "tenantId": "2a0ff0de-96b2-4859-bb7c-a430d07a3e0c", + "displayName": "Example Subscription2", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + }, + "authorizationSource": "RoleBased", + "managedByTenants": [ + { + "tenantId": "8f70baf1-1f6e-46a2-a1ff-238dac1ebfb7" + }, + { + "tenantId": "f7fb6af2-321d-47c8-9c0f-b0239eaad39a" + } + ] + } + ], + "nextLink": "..." + } + } + } +} diff --git a/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/subscriptions.json b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/subscriptions.json new file mode 100644 index 000000000000..e30a1b77d6fa --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Resources/stable/2019-11-01/subscriptions.json @@ -0,0 +1,521 @@ +{ + "swagger": "2.0", + "info": { + "title": "SubscriptionClient", + "version": "2019-11-01", + "description": "All resource groups and resources exist within subscriptions. These operation enable you get information about your subscriptions and tenants. A tenant is a dedicated instance of Azure Active Directory (Azure AD) for your organization." + }, + "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": { + "/providers/Microsoft.Resources/operations": { + "get": { + "tags": [ + "Operations" + ], + "operationId": "Operations_List", + "description": "Lists all of the available Microsoft.Resources REST API operations.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/locations": { + "get": { + "tags": [ + "Subscriptions" + ], + "operationId": "Subscriptions_ListLocations", + "summary": "Gets all available geo-locations.", + "description": "This operation provides all the locations that are available for resource providers; however, each resource provider may support a subset of this list.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns an array of locations.", + "schema": { + "$ref": "#/definitions/LocationListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + }, + "x-ms-examples": { + "Get locations with a subscription id": { + "$ref": "./examples/GetLocations.json" + } + } + } + }, + "/subscriptions/{subscriptionId}": { + "get": { + "tags": [ + "Subscriptions" + ], + "operationId": "Subscriptions_Get", + "description": "Gets details about a specified subscription.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns information about the subscription.", + "schema": { + "$ref": "#/definitions/Subscription" + } + } + }, + "x-ms-examples": { + "Get a single subscription.": { + "$ref": "./examples/GetSubscription.json" + } + } + } + }, + "/subscriptions": { + "get": { + "tags": [ + "Subscriptions" + ], + "operationId": "Subscriptions_List", + "description": "Gets all subscriptions for a tenant.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns an array of subscriptions.", + "schema": { + "$ref": "#/definitions/SubscriptionListResult" + } + } + }, + "x-ms-examples": { + "Get all subscriptions.": { + "$ref": "./examples/GetSubscriptions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/tenants": { + "get": { + "tags": [ + "Tenants" + ], + "operationId": "Tenants_List", + "description": "Gets the tenants for your account.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns an array of tenants.", + "schema": { + "$ref": "#/definitions/TenantListResult" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "PairedRegion": { + "description": "Information regarding paired region.", + "properties": { + "name": { + "type": "string", + "readOnly": true, + "description": "The name of the paired region." + }, + "id": { + "readOnly": true, + "type": "string", + "description": "The fully qualified ID of the location. For example, /subscriptions/00000000-0000-0000-0000-000000000000/locations/westus." + }, + "subscriptionId": { + "readOnly": true, + "type": "string", + "description": "The subscription ID." + } + } + }, + "LocationMetadata": { + "description": "Location metadata information", + "properties": { + "regionType": { + "readOnly": true, + "type": "string", + "description": "The type of the region.", + "enum": [ + "Physical", + "Logical" + ], + "x-ms-enum": { + "name": "RegionType", + "modelAsString": true + } + }, + "regionCategory": { + "readOnly": true, + "type": "string", + "description": "The category of the region.", + "enum": [ + "Recommended", + "Other" + ], + "x-ms-enum": { + "name": "RegionCategory", + "modelAsString": true + } + }, + "geographyGroup": { + "readOnly": true, + "type": "string", + "description": "The geography group of the location." + }, + "longitude": { + "readOnly": true, + "type": "string", + "description": "The longitude of the location." + }, + "latitude": { + "readOnly": true, + "type": "string", + "description": "The latitude of the location." + }, + "physicalLocation": { + "readOnly": true, + "type": "string", + "description": "The physical location of the Azure location." + }, + "pairedRegion": { + "type": "array", + "description": "The regions paired to this region.", + "items": { + "$ref": "#/definitions/PairedRegion" + } + } + } + }, + "Location": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The fully qualified ID of the location. For example, /subscriptions/00000000-0000-0000-0000-000000000000/locations/westus." + }, + "subscriptionId": { + "readOnly": true, + "type": "string", + "description": "The subscription ID." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The location name." + }, + "displayName": { + "readOnly": true, + "type": "string", + "description": "The display name of the location." + }, + "regionalDisplayName": { + "readOnly": true, + "type": "string", + "description": "The display name of the location and its region." + }, + "metadata": { + "description": "Metadata of the location, such as lat/long, paired region, and others.", + "$ref": "#/definitions/LocationMetadata" + } + }, + "description": "Location information." + }, + "LocationListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Location" + }, + "description": "An array of locations." + } + }, + "description": "Location list operation response." + }, + "Subscription": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The fully qualified ID for the subscription. For example, /subscriptions/00000000-0000-0000-0000-000000000000." + }, + "subscriptionId": { + "readOnly": true, + "type": "string", + "description": "The subscription ID." + }, + "displayName": { + "readOnly": true, + "type": "string", + "description": "The subscription display name." + }, + "tenantId": { + "readOnly": true, + "type": "string", + "description": "The subscription tenant ID." + }, + "state": { + "readOnly": true, + "type": "string", + "description": "The subscription state. Possible values are Enabled, Warned, PastDue, Disabled, and Deleted.", + "enum": [ + "Enabled", + "Warned", + "PastDue", + "Disabled", + "Deleted" + ], + "x-ms-enum": { + "name": "SubscriptionState", + "modelAsString": false + } + }, + "subscriptionPolicies": { + "$ref": "#/definitions/SubscriptionPolicies", + "description": "The subscription policies." + }, + "authorizationSource": { + "type": "string", + "description": "The authorization source of the request. Valid values are one or more combinations of Legacy, RoleBased, Bypassed, Direct and Management. For example, 'Legacy, RoleBased'." + }, + "managedByTenants": { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedByTenant" + }, + "description": "An array containing the tenants managing the subscription." + } + }, + "description": "Subscription information." + }, + "SubscriptionPolicies": { + "properties": { + "locationPlacementId": { + "readOnly": true, + "type": "string", + "description": "The subscription location placement ID. The ID indicates which regions are visible for a subscription. For example, a subscription with a location placement Id of Public_2014-09-01 has access to Azure public regions." + }, + "quotaId": { + "readOnly": true, + "type": "string", + "description": "The subscription quota ID." + }, + "spendingLimit": { + "readOnly": true, + "type": "string", + "description": "The subscription spending limit.", + "enum": [ + "On", + "Off", + "CurrentPeriodOff" + ], + "x-ms-enum": { + "name": "spendingLimit", + "modelAsString": false + } + } + }, + "description": "Subscription policies." + }, + "ManagedByTenant": { + "properties": { + "tenantId": { + "readOnly": true, + "type": "string", + "description": "The tenant ID of the managing tenant. This is a GUID." + } + }, + "description": "Information about a tenant managing the subscription." + }, + "SubscriptionListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Subscription" + }, + "description": "An array of subscriptions." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of results." + } + }, + "required": [ + "nextLink" + ], + "description": "Subscription list operation response." + }, + "TenantIdDescription": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The fully qualified ID of the tenant. For example, /tenants/00000000-0000-0000-0000-000000000000." + }, + "tenantId": { + "readOnly": true, + "type": "string", + "description": "The tenant ID. For example, 00000000-0000-0000-0000-000000000000." + } + }, + "description": "Tenant Id information." + }, + "TenantListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/TenantIdDescription" + }, + "description": "An array of tenants." + }, + "nextLink": { + "type": "string", + "description": "The URL to use for getting the next set of results." + } + }, + "required": [ + "nextLink" + ], + "description": "Tenant Ids information." + }, + "Operation": { + "description": "Microsoft.Resources operation", + "type": "object", + "properties": { + "name": { + "description": "Operation name: {provider}/{resource}/{operation}", + "type": "string" + }, + "display": { + "description": "The object that represents the operation.", + "properties": { + "provider": { + "description": "Service provider: Microsoft.Resources", + "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" + }, + "description": { + "description": "Description of the operation.", + "type": "string" + } + } + } + } + }, + "OperationListResult": { + "description": "Result of the request to list Microsoft.Resources operations. It contains a list of operations and a URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Operation" + }, + "description": "List of Microsoft.Resources operations." + }, + "nextLink": { + "type": "string", + "description": "URL to get the next set of operation list results if there are any." + } + } + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "The ID of the target subscription.", + "x-ms-parameter-location": "method" + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "The API version to use for the operation.", + "x-ms-parameter-location": "client" + } + } +} diff --git a/specification/resources/resource-manager/readme.md b/specification/resources/resource-manager/readme.md index 7d015cbc165d..2eb69d62d242 100644 --- a/specification/resources/resource-manager/readme.md +++ b/specification/resources/resource-manager/readme.md @@ -57,12 +57,22 @@ tag: package-managedapplications-2018-06 ``` ``` yaml $(package-deploymentscripts) -tag: package-deploymentscripts-2019-10-preview +tag: package-2019-11 ``` + +### Tag: package-2019-11 + +These settings apply only when `--tag=package-2019-11` is specified on the command line. + +```yaml $(tag) == 'package-2019-11' +input-file: + - Microsoft.Resources/stable/2019-11-01/subscriptions.json +``` ### Tag: package-resources-2019-10-preview + These settings apply only when `--tag=package-deploymentscripts-2019-10-preview` is specified on the command line. - + ``` yaml $(tag) == 'package-deploymentscripts-2019-10-preview' input-file: - Microsoft.Resources/preview/2019-10-01-preview/deploymentScripts.json @@ -394,6 +404,7 @@ input-file: ``` ### Tag: package-managedapplications-2019-07 + These settings apply only when `--tag=package-managedapplications-2019-07` is specified on the command line. ``` yaml $(tag) == 'package-managedapplications-2019-07' @@ -581,7 +592,7 @@ input-file: - Microsoft.Resources/stable/2018-05-01/resources.json ``` -## Multi-API/Profile support for AutoRest v3 generators +## Multi-API/Profile support for AutoRest v3 generators AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files. @@ -643,11 +654,10 @@ input-file: ``` -If there are files that should not be in the `all-api-versions` set, +If there are files that should not be in the `all-api-versions` set, uncomment the `exclude-file` section below and add the file paths. ``` yaml $(tag) == 'all-api-versions' #exclude-file: # - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json ``` -