From 5ef46a8e9f86e7c9e54e1a024078117f3525e4a2 Mon Sep 17 00:00:00 2001 From: Panda Wang Date: Fri, 21 Apr 2017 12:32:32 -0700 Subject: [PATCH] Add new version of Microsoft.Billing and new RP Microsoft.Consumption (#1148) * Add new version of Microsoft.Billing and new RP Microsoft.Consumption * Add descriptions for error details --- .../examples/BillingPeriodsGet.json | 24 + .../examples/BillingPeriodsList.json | 27 + .../examples/InvoicesExpand.json | 34 + .../examples/InvoicesGet.json | 28 + .../examples/InvoicesGetLatest.json | 27 + .../examples/InvoicesList.json | 27 + .../2017-04-24-preview/swagger/billing.json | 585 ++++++++++++++++++ .../examples/UsageDetailsExpand.json | 52 ++ .../examples/UsageDetailsList.json | 38 ++ .../UsageDetailsListForBillingPeriod.json | 38 ++ .../examples/UsageDetailsListForInvoice.json | 38 ++ .../swagger/consumption.json | 443 +++++++++++++ 12 files changed, 1361 insertions(+) create mode 100644 arm-billing/2017-04-24-preview/examples/BillingPeriodsGet.json create mode 100644 arm-billing/2017-04-24-preview/examples/BillingPeriodsList.json create mode 100644 arm-billing/2017-04-24-preview/examples/InvoicesExpand.json create mode 100644 arm-billing/2017-04-24-preview/examples/InvoicesGet.json create mode 100644 arm-billing/2017-04-24-preview/examples/InvoicesGetLatest.json create mode 100644 arm-billing/2017-04-24-preview/examples/InvoicesList.json create mode 100644 arm-billing/2017-04-24-preview/swagger/billing.json create mode 100644 arm-consumption/2017-04-24-preview/examples/UsageDetailsExpand.json create mode 100644 arm-consumption/2017-04-24-preview/examples/UsageDetailsList.json create mode 100644 arm-consumption/2017-04-24-preview/examples/UsageDetailsListForBillingPeriod.json create mode 100644 arm-consumption/2017-04-24-preview/examples/UsageDetailsListForInvoice.json create mode 100644 arm-consumption/2017-04-24-preview/swagger/consumption.json diff --git a/arm-billing/2017-04-24-preview/examples/BillingPeriodsGet.json b/arm-billing/2017-04-24-preview/examples/BillingPeriodsGet.json new file mode 100644 index 000000000000..51a0fc771ae4 --- /dev/null +++ b/arm-billing/2017-04-24-preview/examples/BillingPeriodsGet.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2017-04-24-preview", + "subscriptionId": "subid", + "billingPeriodName": "201702-1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1", + "name": "201702-1", + "type": "Microsoft.Billing/billingPeriods", + "properties": { + "billingPeriodStartDate": "2017-01-01", + "billingPeriodEndDate": "2017-02-01", + "invoiceIds": [ + "/subscriptions/subid/providers/Microsoft.Billing/invoices/2017-02-05-123456789", + "/subscriptions/subid/providers/Microsoft.Billing/invoices/2017-01-05-987654321" + ] + } + } + } + } +} \ No newline at end of file diff --git a/arm-billing/2017-04-24-preview/examples/BillingPeriodsList.json b/arm-billing/2017-04-24-preview/examples/BillingPeriodsList.json new file mode 100644 index 000000000000..331e98b91416 --- /dev/null +++ b/arm-billing/2017-04-24-preview/examples/BillingPeriodsList.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2017-04-24-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1", + "name": "201702-1", + "type": "Microsoft.Billing/billingPeriods", + "properties": { + "billingPeriodStartDate": "2017-01-01", + "billingPeriodEndDate": "2017-02-01", + "invoiceIds": [ + "/subscriptions/subid/providers/Microsoft.Billing/invoices/2017-02-05-123456789", + "/subscriptions/subid/providers/Microsoft.Billing/invoices/2017-01-05-987654321" + ] + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/arm-billing/2017-04-24-preview/examples/InvoicesExpand.json b/arm-billing/2017-04-24-preview/examples/InvoicesExpand.json new file mode 100644 index 000000000000..3bdd4367a75b --- /dev/null +++ b/arm-billing/2017-04-24-preview/examples/InvoicesExpand.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2017-04-24-preview", + "subscriptionId": "subid", + "$top": "1", + "$filter": "invoicePeriodStartDate le 2017-02-01", + "$expand": "downloadUrl" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/providers/Microsoft.Billing/invoices/2017-02-05-123456789", + "name": "2017-02-05-123456789", + "type": "Microsoft.Billing/invoices", + "properties": { + "invoicePeriodStartDate": "2017-01-01", + "invoicePeriodEndDate": "2017-02-01", + "billingPeriodIds": [ + "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1", + "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201701-1" + ], + "downloadUrl": { + "expiryTime": "2017-02-13T20:46:30Z", + "url": "https://microsoft.com" + } + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/arm-billing/2017-04-24-preview/examples/InvoicesGet.json b/arm-billing/2017-04-24-preview/examples/InvoicesGet.json new file mode 100644 index 000000000000..63ca37ea18c8 --- /dev/null +++ b/arm-billing/2017-04-24-preview/examples/InvoicesGet.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2017-04-24-preview", + "subscriptionId": "subid", + "invoiceName": "2017-02-05-123456789" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/providers/Microsoft.Billing/invoices/2017-02-05-123456789", + "name": "2017-02-05-123456789", + "type": "Microsoft.Billing/invoices", + "properties": { + "invoicePeriodStartDate": "2017-01-01", + "invoicePeriodEndDate": "2017-02-01", + "billingPeriodIds": [ + "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1", + "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201701-1" + ], + "downloadUrl": { + "expiryTime": "2017-02-13T20:46:30Z", + "url": "https://microsoft.com" + } + } + } + } + } +} \ No newline at end of file diff --git a/arm-billing/2017-04-24-preview/examples/InvoicesGetLatest.json b/arm-billing/2017-04-24-preview/examples/InvoicesGetLatest.json new file mode 100644 index 000000000000..6584d676a4ae --- /dev/null +++ b/arm-billing/2017-04-24-preview/examples/InvoicesGetLatest.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2017-04-24-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/providers/Microsoft.Billing/invoices/2017-02-05-123456789", + "name": "2017-02-05-123456789", + "type": "Microsoft.Billing/invoices", + "properties": { + "invoicePeriodStartDate": "2017-01-01", + "invoicePeriodEndDate": "2017-02-01", + "billingPeriodIds": [ + "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1", + "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201701-1" + ], + "downloadUrl": { + "expiryTime": "2017-02-13T20:46:30Z", + "url": "https://microsoft.com" + } + } + } + } + } +} \ No newline at end of file diff --git a/arm-billing/2017-04-24-preview/examples/InvoicesList.json b/arm-billing/2017-04-24-preview/examples/InvoicesList.json new file mode 100644 index 000000000000..9f684ebeb48c --- /dev/null +++ b/arm-billing/2017-04-24-preview/examples/InvoicesList.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2017-04-24-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/providers/Microsoft.Billing/invoices/2017-02-05-123456789", + "name": "2017-02-05-123456789", + "type": "Microsoft.Billing/invoices", + "properties": { + "invoicePeriodStartDate": "2017-01-01", + "invoicePeriodEndDate": "2017-02-01", + "billingPeriodIds": [ + "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1", + "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201701-1" + ] + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/arm-billing/2017-04-24-preview/swagger/billing.json b/arm-billing/2017-04-24-preview/swagger/billing.json new file mode 100644 index 000000000000..3d119fd768da --- /dev/null +++ b/arm-billing/2017-04-24-preview/swagger/billing.json @@ -0,0 +1,585 @@ +{ + "swagger": "2.0", + "info": { + "version": "2017-04-24-preview", + "title": "BillingManagementClient", + "description": "Billing client provides access to billing resources for Azure Web-Direct subscriptions. Other subscription types which were not purchased directly through the Azure web portal are not supported through this preview API." + }, + "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.Billing/billingPeriods": { + "get": { + "tags": [ + "BillingPeriods" + ], + "operationId": "BillingPeriods_List", + "description": "Lists the available billing periods for a subscription in reverse chronological order.", + "externalDocs": { + "url": "https://go.microsoft.com/fwlink/?linkid=844490" + }, + "x-ms-examples": { + "BillingPeriodsList": { + "$ref": "../examples/BillingPeriodsList.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "name": "$filter", + "description": "May be used to filter billing periods by billingPeriodEndDate. 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" + }, + { + "name": "$skiptoken", + "description": "Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "$top", + "description": "May be used to limit the number of results to the most recent N billing periods.", + "in": "query", + "required": false, + "type": "integer", + "minimum": 1, + "maximum": 100 + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/BillingPeriodsListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}": { + "get": { + "tags": [ + "BillingPeriods" + ], + "operationId": "BillingPeriods_Get", + "description": "Gets a named billing period.", + "x-ms-examples": { + "BillingPeriodsGet": { + "$ref": "../examples/BillingPeriodsGet.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "name": "billingPeriodName", + "description": "The name of a BillingPeriod resource.", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/BillingPeriod" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Billing/invoices": { + "get": { + "tags": [ + "Invoices" + ], + "operationId": "Invoices_List", + "description": "Lists the available invoices for a subscription in reverse chronological order beginning with the most recent invoice. In preview, invoices are available via this API only for invoice periods which end December 1, 2016 or later.", + "externalDocs": { + "url": "https://go.microsoft.com/fwlink/?linkid=842057" + }, + "x-ms-examples": { + "InvoicesList": { + "$ref": "../examples/InvoicesList.json" + }, + "InvoicesExpand": { + "$ref": "../examples/InvoicesExpand.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "name": "$expand", + "description": "May be used to expand the downloadUrl property within a list of invoices. This enables download links to be generated for multiple invoices at once. By default, downloadURLs are not included when listing invoices.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "$filter", + "description": "May be used to filter invoices by invoicePeriodEndDate. 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" + }, + { + "name": "$skiptoken", + "description": "Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "$top", + "description": "May be used to limit the number of results to the most recent N invoices.", + "in": "query", + "required": false, + "type": "integer", + "minimum": 1, + "maximum": 100 + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/InvoicesListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Billing/invoices/{invoiceName}": { + "get": { + "tags": [ + "Invoices" + ], + "operationId": "Invoices_Get", + "description": "Gets a named invoice resource. When getting a single invoice, the downloadUrl property is expanded automatically.", + "x-ms-examples": { + "InvoicesGet": { + "$ref": "../examples/InvoicesGet.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "name": "invoiceName", + "description": "The name of an invoice resource.", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/Invoice" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Billing/invoices/latest": { + "get": { + "tags": [ + "Invoices" + ], + "operationId": "Invoices_GetLatest", + "description": "Gets the most recent invoice. When getting a single invoice, the downloadUrl property is expanded automatically.", + "x-ms-examples": { + "InvoicesGetLatest": { + "$ref": "../examples/InvoicesGetLatest.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/Invoice" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Billing/operations": { + "get": { + "tags": [ + "Operations" + ], + "operationId": "Operations_List", + "description": "Lists all of the available billing 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": { + "BillingPeriod": { + "description": "A billing period resource.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/BillingPeriodProperties" + } + } + }, + "BillingPeriodsListResult": { + "description": "Result of listing billing periods. It contains a list of available billing periods in reverse chronological order.", + "properties": { + "value": { + "description": "The list of billing periods.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/BillingPeriod" + } + }, + "nextLink": { + "description": "The link (url) to the next page of results.", + "type": "string", + "readOnly": true + } + } + }, + "BillingPeriodProperties": { + "description": "The properties of the billing period.", + "properties": { + "billingPeriodStartDate": { + "description": "The start of the date range covered by the billing period.", + "type": "string", + "format": "date", + "readOnly": true + }, + "billingPeriodEndDate": { + "description": "The end of the date range covered by the billing period.", + "type": "string", + "format": "date", + "readOnly": true + }, + "invoiceIds": { + "description": "Array of invoice ids that associated with.", + "type": "array", + "readOnly": true, + "items": { + "type": "string" + } + } + } + }, + "DownloadUrl": { + "description": "A secure URL that can be used to download a PDF invoice until the URL expires.", + "properties": { + "expiryTime": { + "description": "The time in UTC at which this download URL will expire.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "url": { + "description": "The URL to the PDF file.", + "type": "string", + "readOnly": true + } + } + }, + "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 + }, + "target": { + "description": "The target of the particular error.", + "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" + } + } + }, + "Invoice": { + "description": "An invoice resource can be used download a PDF version of an invoice.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/InvoiceProperties" + } + } + }, + "InvoicesListResult": { + "description": "Result of listing invoices. It contains a list of available invoices in reverse chronological order.", + "properties": { + "value": { + "description": "The list of invoices.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Invoice" + } + }, + "nextLink": { + "description": "The link (url) to the next page of results.", + "type": "string", + "readOnly": true + } + } + }, + "InvoiceProperties": { + "description": "The properties of the invoice.", + "properties": { + "downloadUrl": { + "description": "A secure link to download the PDF version of an invoice. The link will cease to work after its expiry time is reached.", + "$ref": "#/definitions/DownloadUrl" + }, + "invoicePeriodStartDate": { + "description": "The start of the date range covered by the invoice.", + "type": "string", + "format": "date", + "readOnly": true + }, + "invoicePeriodEndDate": { + "description": "The end of the date range covered by the invoice.", + "type": "string", + "format": "date", + "readOnly": true + }, + "billingPeriodIds": { + "description": "Array of billing perdiod ids that the invoice is attributed to.", + "type": "array", + "readOnly": true, + "items": { + "type": "string" + } + } + } + }, + "Operation": { + "description": "A Billing 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.Billing.", + "type": "string", + "readOnly": true + }, + "resource": { + "description": "Resource on which the operation is performed: Invoice, etc.", + "type": "string", + "readOnly": true + }, + "operation": { + "description": "Operation type: Read, write, delete, etc.", + "type": "string", + "readOnly": true + } + } + } + } + }, + "OperationListResult": { + "description": "Result listing billing operations. It contains a list of operations and a URL link to get the next set of results.", + "properties": { + "value": { + "description": "List of billing operations supported by the Microsoft.Billing 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." + } + }, + "x-ms-azure-resource": 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 2017-02-27-preview." + }, + "subscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "Azure Subscription ID.", + "required": true, + "type": "string" + } + } +} \ No newline at end of file diff --git a/arm-consumption/2017-04-24-preview/examples/UsageDetailsExpand.json b/arm-consumption/2017-04-24-preview/examples/UsageDetailsExpand.json new file mode 100644 index 000000000000..416ac0c7c919 --- /dev/null +++ b/arm-consumption/2017-04-24-preview/examples/UsageDetailsExpand.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "api-version": "2017-04-24-preview", + "scope": "subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1", + "$expand": "meterDetails,additionalProperties", + "$filter": "usageEnd le 2017-02-14T00:00:00Z", + "$top": "1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1/providers/Microsoft.Consumption/usageDetails/usageDetailsId1", + "name": "usageDetailsId1", + "type": "Microsoft.Consumption/usageDetails", + "tags": { + "env": "newcrp", + "dev": "tools" + }, + "properties": { + "billingPeriodId": "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1", + "invoiceId": "/subscriptions/subid/providers/Microsoft.Billing/invoices/201703-123456789", + "usageStart": "2017-02-13T00:00:00Z", + "usageEnd": "2017-02-13T23:59:59Z", + "instanceName": "shared1", + "instanceId": "/subscriptions/subid/resourceGroups/Default-Web-eastasia/providers/Microsoft.Web/sites/shared1", + "instanceLocation": "eastasia", + "currency": "USD", + "usageQuantity": 0.00328, + "billableQuantity": 0.00328, + "pretaxCost": 0.67, + "isEstimated": false, + "meterId": "fe167397-a38d-43c3-9bb3-8e2907e56a41", + "meterDetails": { + "meterName": "Data Transfer Out (GB)", + "meterCategory": "Networking", + "unit": "GB", + "meterLocation": "Zone 2", + "totalIncludedQuantity": 0, + "pretaxStandardRate": 0.138 + }, + "additionalProperties": { + "AppServicePlanUri": "/subscriptions/subid/resourceGroups/Default-Web-eastasia/providers/Microsoft.Web/serverfarms/DefaultServerFarm" + } + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/arm-consumption/2017-04-24-preview/examples/UsageDetailsList.json b/arm-consumption/2017-04-24-preview/examples/UsageDetailsList.json new file mode 100644 index 000000000000..1a24a9e159ef --- /dev/null +++ b/arm-consumption/2017-04-24-preview/examples/UsageDetailsList.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2017-04-24-preview", + "scope": "subscriptions/subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/providers/Microsoft.Consumption/usageDetails/usageDetailsId1", + "name": "usageDetailsId1", + "type": "Microsoft.Consumption/usageDetails", + "tags": { + "env": "newcrp", + "dev": "tools" + }, + "properties": { + "billingPeriodId": "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1", + "invoiceId": "/subscriptions/subid/providers/Microsoft.Billing/invoices/201703-123456789", + "usageStart": "2017-02-13T00:00:00Z", + "usageEnd": "2017-02-13T23:59:59Z", + "instanceName": "shared1", + "instanceId": "/subscriptions/subid/resourceGroups/Default-Web-eastasia/providers/Microsoft.Web/sites/shared1", + "instanceLocation": "eastasia", + "currency": "USD", + "usageQuantity": 0.00328, + "billableQuantity": 0.00328, + "pretaxCost": 0.67, + "isEstimated": false, + "meterId": "fe167397-a38d-43c3-9bb3-8e2907e56a41" + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/arm-consumption/2017-04-24-preview/examples/UsageDetailsListForBillingPeriod.json b/arm-consumption/2017-04-24-preview/examples/UsageDetailsListForBillingPeriod.json new file mode 100644 index 000000000000..92b9af880b1b --- /dev/null +++ b/arm-consumption/2017-04-24-preview/examples/UsageDetailsListForBillingPeriod.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2017-04-24-preview", + "scope": "subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1/providers/Microsoft.Consumption/usageDetails/usageDetailsId1", + "name": "usageDetailsId1", + "type": "Microsoft.Consumption/usageDetails", + "tags": { + "env": "newcrp", + "dev": "tools" + }, + "properties": { + "billingPeriodId": "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1", + "invoiceId": "/subscriptions/subid/providers/Microsoft.Billing/invoices/201703-123456789", + "usageStart": "2017-02-13T00:00:00Z", + "usageEnd": "2017-02-13T23:59:59Z", + "instanceName": "shared1", + "instanceId": "/subscriptions/subid/resourceGroups/Default-Web-eastasia/providers/Microsoft.Web/sites/shared1", + "instanceLocation": "eastasia", + "currency": "USD", + "usageQuantity": 0.00328, + "billableQuantity": 0.00328, + "pretaxCost": 0.67, + "isEstimated": false, + "meterId": "fe167397-a38d-43c3-9bb3-8e2907e56a41" + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/arm-consumption/2017-04-24-preview/examples/UsageDetailsListForInvoice.json b/arm-consumption/2017-04-24-preview/examples/UsageDetailsListForInvoice.json new file mode 100644 index 000000000000..384e5d4c64e1 --- /dev/null +++ b/arm-consumption/2017-04-24-preview/examples/UsageDetailsListForInvoice.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2017-04-24-preview", + "scope": "subscriptions/subid/providers/Microsoft.Billing/invoices/2017-03-05-123456789" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/providers/Microsoft.Billing/invoices/2017-03-05-123456789/providers/Microsoft.Consumption/usageDetails/usageDetailsId1", + "name": "usageDetailsId1", + "type": "Microsoft.Consumption/usageDetails", + "tags": { + "env": "newcrp", + "dev": "tools" + }, + "properties": { + "billingPeriodId": "/subscriptions/subid/providers/Microsoft.Billing/billingPeriods/201702-1", + "invoiceId": "/subscriptions/subid/providers/Microsoft.Billing/invoices/201703-123456789", + "usageStart": "2017-02-13T00:00:00Z", + "usageEnd": "2017-02-13T23:59:59Z", + "instanceName": "shared1", + "instanceId": "/subscriptions/subid/resourceGroups/Default-Web-eastasia/providers/Microsoft.Web/sites/shared1", + "instanceLocation": "eastasia", + "currency": "USD", + "usageQuantity": 0.00328, + "billableQuantity": 0.00328, + "pretaxCost": 0.67, + "isEstimated": false, + "meterId": "fe167397-a38d-43c3-9bb3-8e2907e56a41" + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/arm-consumption/2017-04-24-preview/swagger/consumption.json b/arm-consumption/2017-04-24-preview/swagger/consumption.json new file mode 100644 index 000000000000..6ff53f489d56 --- /dev/null +++ b/arm-consumption/2017-04-24-preview/swagger/consumption.json @@ -0,0 +1,443 @@ +{ + "swagger": "2.0", + "info": { + "version": "2017-04-24-preview", + "title": "ConsumptionManagementClient", + "description": "Consumption management client provides access to consumption resources for Azure Web-Direct subscriptions. Other subscription types which were not purchased directly through the Azure web portal are not supported through this preview API." + }, + "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": { + "/{scope}/providers/Microsoft.Consumption/usageDetails": { + "get": { + "tags": [ + "UsageDetails" + ], + "operationId": "UsageDetails_List", + "description": "Lists the usage details for a scope in reverse chronological order by billing period. Usage details are available via this API only for January 1, 2017 or later.", + "externalDocs": { + "url": "https://go.microsoft.com/fwlink/?linkid=845275" + }, + "x-ms-examples": { + "UsageDetailsListForBillingPeriod": { + "$ref": "../examples/UsageDetailsListForBillingPeriod.json" + }, + "UsageDetailsListForInvoice": { + "$ref": "../examples/UsageDetailsListForInvoice.json" + }, + "UsageDetailsList": { + "$ref": "../examples/UsageDetailsList.json" + }, + "UsageDetailsExpand": { + "$ref": "../examples/UsageDetailsExpand.json" + } + }, + "parameters": [ + { + "name": "scope", + "description": "The scope of the usage details. The scope can be '/subscriptions/{subscriptionId}/' for a subscription, or '/subscriptions/{subscriptionId}/providers/Microsoft.Billing/invoices/{invoiceName}' for an invoice or '/subscriptions/{subscriptionId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}' for a billing perdiod.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "description": "May be used to expand the additionalProperties or meterDetails property within a list of usage details. By default, these fields are not included when listing usage details.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "$filter", + "description": "May be used to filter usageDetails by usageEnd (Utc time). 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" + }, + { + "name": "$skiptoken", + "description": "Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "$top", + "description": "May be used to limit the number of results to the most recent N usageDetails.", + "in": "query", + "required": false, + "type": "integer", + "minimum": 1, + "maximum": 100 + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/UsageDetailsListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/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": { + "MeterDetails": { + "description": "The properties of the meter detail.", + "properties": { + "meterName": { + "description": "The name of the meter, within the given meter category", + "type": "string", + "readOnly": true + }, + "meterCategory": { + "description": "The category of the meter, for example, 'Cloud services', 'Networking', etc..", + "type": "string", + "readOnly": true + }, + "meterSubCategory": { + "description": "The subcategory of the meter, for example, 'A6 Cloud services', 'ExpressRoute (IXP)', etc..", + "type": "string", + "readOnly": true + }, + "unit": { + "description": "The unit in which the meter consumption is charged, for example, 'Hours', 'GB', etc.", + "type": "string", + "readOnly": true + }, + "meterLocation": { + "description": "The location in which the Azure service is available.", + "type": "string", + "readOnly": true + }, + "totalIncludedQuantity": { + "description": "The total included quantity associated with the offer.", + "type": "number", + "format": "decimal", + "readOnly": true + }, + "pretaxStandardRate": { + "description": "The pretax listing price.", + "type": "number", + "format": "decimal", + "readOnly": true + } + } + }, + "UsageDetail": { + "description": "An usage detail resource.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/UsageDetailProperties" + } + } + }, + "UsageDetailsListResult": { + "description": "Result of listing usage details. It contains a list of available usage details in reverse chronological order by billing period.", + "properties": { + "value": { + "description": "The list of usage details.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/UsageDetail" + } + }, + "nextLink": { + "description": "The link (url) to the next page of results.", + "type": "string", + "readOnly": true + } + } + }, + "UsageDetailProperties": { + "description": "The properties of the usage detail.", + "properties": { + "billingPeriodId": { + "description": "The id of the billing period resource that the usage belongs to.", + "type": "string", + "readOnly": true + }, + "invoiceId": { + "description": "The id of the invoice resource that the usage belongs to.", + "type": "string", + "readOnly": true + }, + "usageStart": { + "description": "The start of the date time range covered by the usage detail.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "usageEnd": { + "description": "The end of the date time range covered by the usage detail.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "instanceName": { + "description": "The name of the resource instance that the usage is about.", + "type": "string", + "readOnly": true + }, + "instanceId": { + "description": "The uri of the resource instance that the usage is about.", + "type": "string", + "readOnly": true + }, + "instanceLocation": { + "description": "The location of the resource instance that the usage is about.", + "type": "string", + "readOnly": true + }, + "currency": { + "description": "The ISO currency in which the meter is charged, for example, USD.", + "type": "string", + "readOnly": true + }, + "usageQuantity": { + "description": "The quantity of usage.", + "type": "number", + "format": "decimal", + "readOnly": true + }, + "billableQuantity": { + "description": "The billable usage quantity.", + "type": "number", + "format": "decimal", + "readOnly": true + }, + "pretaxCost": { + "description": "The amount of cost before tax.", + "type": "number", + "format": "decimal", + "readOnly": true + }, + "isEstimated": { + "description": "The estimated usage is subject to change.", + "type": "boolean", + "readOnly": true + }, + "meterId": { + "description": "The meter id.", + "type": "string", + "readOnly": true + }, + "meterDetails": { + "description": "The details about the meter. By default this is not populated, unless it's specified in $expand.", + "$ref": "#/definitions/MeterDetails", + "readOnly": true + }, + "additionalProperties": { + "description": "The list of key/value pairs for the additional properties, in the format 'key':'value' where key = the field name, and value = the field value. By default this is not populated, unless it's specified in $expand.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + } + } + }, + "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 + }, + "target": { + "description": "The target of the particular error.", + "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 + } + }, + "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 2017-02-27-preview." + }, + "subscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "Azure Subscription ID.", + "required": true, + "type": "string" + } + } +} \ No newline at end of file