From 733ee1e83e2dcdd3d9453820bb8256e885d37a2c Mon Sep 17 00:00:00 2001 From: Nazanin C Date: Tue, 29 May 2018 23:51:04 -0700 Subject: [PATCH] Adding swagger for new api-version consumption 2018-05-31, introducing new Forecast api swagger (#3114) * Forecast Api swagger * consumption readme file update for the new swagger version * addressing review comment on adding nextLink * fixing build error * Addressed feedback on enum and fixed a typo --- .../stable/2018-05-31/consumption.json | 359 ++++++++++++++++++ .../2018-05-31/examples/ForecastsList.json | 51 +++ .../examples/ForecastsListFilterByDates.json | 52 +++ .../examples/ForecastsListFilterByGrain.json | 52 +++ .../consumption/resource-manager/readme.md | 21 +- 5 files changed, 534 insertions(+), 1 deletion(-) create mode 100644 specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/consumption.json create mode 100644 specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/examples/ForecastsList.json create mode 100644 specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/examples/ForecastsListFilterByDates.json create mode 100644 specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/examples/ForecastsListFilterByGrain.json diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/consumption.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/consumption.json new file mode 100644 index 000000000000..e09560e3bec9 --- /dev/null +++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/consumption.json @@ -0,0 +1,359 @@ +{ + "swagger": "2.0", + "info": { + "version": "2018-05-31", + "title": "ConsumptionManagementClient", + "description": "Consumption management client provides access to consumption resources for Azure Enterprise Subscriptions." + }, + "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.Consumption/forecasts": { + "get": { + "tags": [ + "Forecasts" + ], + "x-ms-odata": "#/definitions/Forecast", + "operationId": "Forecasts_List", + "description": "Lists the forecast charges by subscriptionId.", + "externalDocs": { + "url": "https://docs.microsoft.com/en-us/rest/api/consumption/" + }, + "x-ms-examples": { + "ForecastsList": { + "$ref": "./examples/ForecastsList.json" + }, + "ForecastsListFilterByGrain": { + "$ref": "./examples/ForecastsListFilterByGrain.json" + }, + "ForecastsListFilterByDates": { + "$ref": "./examples/ForecastsListFilterByDates.json" + } + }, + "parameters": [ + { + "name": "$filter", + "description": "May be used to filter forecasts by properties/usageDate (Utc time), properties/chargeType or properties/grain. The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. It does not currently support 'ne', 'or', or 'not'.", + "in": "query", + "required": false, + "type": "string" + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/ForecastsListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/providers/Microsoft.Consumption/operations": { + "get": { + "tags": [ + "Operations" + ], + "operationId": "Operations_List", + "description": "Lists all of the available consumption REST API operations.", + "parameters": [ + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "ErrorDetails": { + "description": "The details of the error.", + "properties": { + "code": { + "description": "Error code.", + "type": "string", + "readOnly": true + }, + "message": { + "description": "Error message indicating why the operation failed.", + "type": "string", + "readOnly": true + } + } + }, + "ErrorResponse": { + "description": "Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message.", + "type": "object", + "properties": { + "error": { + "description": "The details of the error.", + "$ref": "#/definitions/ErrorDetails" + } + } + }, + "Operation": { + "description": "A Consumption REST API operation.", + "type": "object", + "properties": { + "name": { + "description": "Operation name: {provider}/{resource}/{operation}.", + "type": "string", + "readOnly": true + }, + "display": { + "description": "The object that represents the operation.", + "properties": { + "provider": { + "description": "Service provider: Microsoft.Consumption.", + "type": "string", + "readOnly": true + }, + "resource": { + "description": "Resource on which the operation is performed: UsageDetail, etc.", + "type": "string", + "readOnly": true + }, + "operation": { + "description": "Operation type: Read, write, delete, etc.", + "type": "string", + "readOnly": true + } + } + } + } + }, + "OperationListResult": { + "description": "Result of listing consumption operations. It contains a list of operations and a URL link to get the next set of results.", + "properties": { + "value": { + "description": "List of consumption operations supported by the Microsoft.Consumption resource provider.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Operation" + } + }, + "nextLink": { + "description": "URL to get the next set of operation list results if there are any.", + "type": "string", + "readOnly": true + } + } + }, + "Resource": { + "description": "The Resource model definition.", + "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." + }, + "tags": { + "readOnly": true, + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Resource tags." + } + }, + "x-ms-azure-resource": true + }, + + "Forecast": { + "description": "A forecast resource.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ForecastProperties", + "title": "Forecast properties" + } + } + }, + "ForecastsListResult": { + "description": "Result of listing forecasts. It contains a list of available forecasts.", + "type": "object", + "properties": { + "value": { + "description": "The list of forecasts.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Forecast" + } + } + } + }, + "ForecastProperties": { + "description": "The properties of the forecast charge.", + "type": "object", + "properties": { + "usageDate": { + "description": "The usage date of the forecast.", + "type": "string", + "readOnly": true + }, + "grain": { + "description": "The granularity of forecast.", + "type": "string", + "enum": [ + "Daily", + "Monthly", + "Yearly" + ], + "x-ms-enum": { + "name": "Grain", + "modelAsString": true + } + }, + "charge": { + "description": "The amount of charge", + "type": "number", + "format": "decimal", + "readOnly": true + }, + "currency": { + "description": "The ISO currency in which the meter is charged, for example, USD.", + "type": "string", + "readOnly": true + }, + "chargeType": { + "description": "The type of the charge. Could be actual or forecast", + "type": "string", + "enum": [ + "Actual", + "Forecast" + ], + "x-ms-enum": { + "name": "ChargeType", + "modelAsString": true + } + }, + "confidenceLevels": { + "description": "The details about the forecast confidence levels. This is populated only when chargeType is Forecast.", + "type": "array", + "items": { + "type": "object", + "properties": { + "percentage": { + "description": "The percentage level of the confidence", + "type": "number", + "format": "decimal", + "readOnly": true + }, + "bound": { + "description": "The boundary of the percentage, values could be 'Upper' or 'Lower'", + "type": "string", + "enum": [ + "Upper", + "Lower" + ], + "x-ms-enum": { + "name": "Bound", + "modelAsString": true + } + }, + "value": { + "description": "The amount of forecast within the percentage level", + "type": "number", + "format": "decimal", + "readOnly": true + } + } + }, + + "readOnly": true + } + } + } + }, + "parameters": { + "apiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Version of the API to be used with the client request. The current version is 2018-05-31." + }, + "subscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "Azure Subscription ID.", + "required": true, + "type": "string" + } + } +} diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/examples/ForecastsList.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/examples/ForecastsList.json new file mode 100644 index 000000000000..e43ad70810b3 --- /dev/null +++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/examples/ForecastsList.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "api-version": "2018-05-31", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/providers/Microsoft.Consumption/forecasts/forecastId1", + "name": "forecastId1", + "type": "Microsoft.Consumption/forecasts", + "properties": { + "usageDate": "2018-04-01", + "grain": "Daily", + "charge": 752.000000, + "currency": "USD", + "chargeType": "Actual", + "confidenceLevels": null + } + }, + { + "id": "/subscriptions/subid/providers/Microsoft.Consumption/forecasts/forecastId2", + "name": "forecastId2", + "type": "Microsoft.Consumption/forecasts", + "properties": { + "usageDate": "2018-04-02", + "grain": "Daily", + "charge": 753.809074, + "currency": "USD", + "chargeType": "Forecast", + "confidenceLevels": [ + { + "percentage": 95, + "bound": "Upper", + "value": 1165.951737 + }, + { + "percentage": 95, + "bound": "Lower", + "value": 340.753404 + } + ] + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/examples/ForecastsListFilterByDates.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/examples/ForecastsListFilterByDates.json new file mode 100644 index 000000000000..7d174d5ed402 --- /dev/null +++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/examples/ForecastsListFilterByDates.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "api-version": "2018-05-31", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "$filter": "usagedate ge '2018-04-01' AND usagedate le '2018-04-02'" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/providers/Microsoft.Consumption/forecasts/forecastId1", + "name": "forecastId1", + "type": "Microsoft.Consumption/forecasts", + "properties": { + "usageDate": "2018-04-01", + "grain": "Daily", + "charge": 752.000000, + "currency": "USD", + "chargeType": "Actual", + "confidenceLevels": null + } + }, + { + "id": "/subscriptions/subid/providers/Microsoft.Consumption/forecasts/forecastId2", + "name": "forecastId2", + "type": "Microsoft.Consumption/forecasts", + "properties": { + "usageDate": "2018-04-02", + "grain": "Daily", + "charge": 753.809074, + "currency": "USD", + "chargeType": "Forecast", + "confidenceLevels": [ + { + "percentage": 95, + "bound": "Upper", + "value": 1165.951737 + }, + { + "percentage": 95, + "bound": "Lower", + "value": 340.753404 + } + ] + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/examples/ForecastsListFilterByGrain.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/examples/ForecastsListFilterByGrain.json new file mode 100644 index 000000000000..365e0142ae62 --- /dev/null +++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2018-05-31/examples/ForecastsListFilterByGrain.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "api-version": "2018-05-31", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "$filter": "Grain eq 'Monthly'" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/providers/Microsoft.Consumption/forecasts/forecastId1", + "name": "forecastId1", + "type": "Microsoft.Consumption/forecasts", + "properties": { + "usageDate": "2018-04-01", + "grain": "Monthly", + "charge": 752.000000, + "currency": "USD", + "chargeType": "Actual", + "confidenceLevels": null + } + }, + { + "id": "/subscriptions/subid/providers/Microsoft.Consumption/forecasts/forecastId2", + "name": "forecastId2", + "type": "Microsoft.Consumption/forecasts", + "properties": { + "usageDate": "2018-05-01", + "grain": "Monthly", + "charge": 753.809074, + "currency": "USD", + "chargeType": "Forecast", + "confidenceLevels": [ + { + "percentage": 95, + "bound": "Upper", + "value": 1165.951737 + }, + { + "percentage": 95, + "bound": "Lower", + "value": 340.753404 + } + ] + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/specification/consumption/resource-manager/readme.md b/specification/consumption/resource-manager/readme.md index 4cc907c39be1..688a1243ae3f 100644 --- a/specification/consumption/resource-manager/readme.md +++ b/specification/consumption/resource-manager/readme.md @@ -26,7 +26,7 @@ These are the global settings for the Consumption API. ``` yaml openapi-type: arm -tag: package-2018-03 +tag: package-2018-05 ``` ### Tag: package-2017-11 @@ -58,6 +58,16 @@ input-file: - Microsoft.Consumption/stable/2018-03-31/consumption.json ``` +--- +### Tag: package-2018-05 + +These settings apply only when `--tag=package-2018-05` is specified on the command line. + +``` yaml $(tag) == 'package-2018-05' +input-file: +- Microsoft.Consumption/stable/2018-05-31/consumption.json +``` + ## Suppression ``` yaml directive: @@ -169,6 +179,7 @@ batch: - tag: package-2017-12-preview - tag: package-2018-01 - tag: package-2018-03 + - tag: package-2018-05 ``` @@ -213,6 +224,14 @@ Please also specify `--go-sdk-folder=`. + +``` yaml $(tag) == 'package-2018-05' && $(go) +output-folder: $(go-sdk-folder)/services/consumption/mgmt/2018-05-31/consumption +``` + ## Java These settings apply only when `--java` is specified on the command line.