diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/costmanagement.generatedetailedcostreport.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/costmanagement.generatedetailedcostreport.json index 656b7609d1ff..8c8359107f03 100644 --- a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/costmanagement.generatedetailedcostreport.json +++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/costmanagement.generatedetailedcostreport.json @@ -380,7 +380,7 @@ "TimedOut" ], "x-ms-enum": { - "name": "OperationStatusType", + "name": "ReportOperationStatusType", "modelAsString": true } } diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/costmanagement.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/costmanagement.json index 8c8697e3c277..ad2b07826fc4 100644 --- a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/costmanagement.json +++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/costmanagement.json @@ -1109,6 +1109,135 @@ } } }, + "/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/providers/Microsoft.CostManagement/generateReservationDetailsReport": { + "post": { + "tags": [ + "ReservedInstances" + ], + "operationId": "GenerateReservationDetailsReport_ByBillingAccountId", + "description": "Generates the reservations details report for provided date range asynchronously based on enrollment id.", + "externalDocs": { + "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/" + }, + "x-ms-examples": { + "ReservationDetails": { + "$ref": "./examples/GenerateReservationDetailsReportByBillingAccount.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "parameters": [ + { + "$ref": "#/parameters/enrollmentIdParameter" + }, + { + "$ref": "#/parameters/startDateParameter" + }, + { + "$ref": "#/parameters/endDateParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Request processing completed.", + "schema": { + "$ref": "#/definitions/OperationStatus" + } + }, + "202": { + "description": "Accepted. Request will be processed. Use the location header to check the status.", + "headers": { + "Location": { + "description": "The URL to check the status of the asynchronous operation.", + "type": "string" + }, + "Retry-After": { + "description": "The amount of delay to use while the status of the operation is checked. The value is expressed in seconds.", + "format": "int32", + "type": "integer" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/providers/Microsoft.CostManagement/generateReservationDetailsReport": { + "post": { + "tags": [ + "ReservedInstances" + ], + "operationId": "GenerateReservationDetailsReport_ByBillingProfileId", + "description": "Generates the reservations details report for provided date range asynchronously by billing profile.", + "externalDocs": { + "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/" + }, + "x-ms-examples": { + "ReservationDetails": { + "$ref": "./examples/GenerateReservationDetailsReportByBillingProfile.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "parameters": [ + { + "$ref": "#/parameters/billingAccountIdParameter" + }, + { + "$ref": "#/parameters/billingProfileIdParameter" + }, + { + "$ref": "#/parameters/startDateParameter" + }, + { + "$ref": "#/parameters/endDateParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Request processing completed.", + "schema": { + "$ref": "#/definitions/OperationStatus" + } + }, + "202": { + "description": "Accepted. Request will be processed. Use the Location header to check the status.", + "headers": { + "Location": { + "description": "The URL to check the status of the asynchronous operation.", + "type": "string" + }, + "Retry-After": { + "description": "The amount of delay to use while the status of the operation is checked. The value is expressed in seconds.", + "format": "int32", + "type": "integer" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, "/providers/Microsoft.CostManagement/operations": { "get": { "tags": [ @@ -2400,6 +2529,46 @@ } } }, + "OperationStatus": { + "description": "The status of the long running operation.", + "type": "object", + "properties": { + "status": { + "description": "The status of the long running operation.", + "type": "string", + "enum": [ + "Running", + "Completed", + "Failed" + ], + "x-ms-enum": { + "name": "OperationStatusType", + "modelAsString": true + } + }, + "properties": { + "x-ms-client-flatten": true, + "type": "object", + "description": "The properties of the resource generated.", + "$ref": "#/definitions/ReportURL" + } + } + }, + "ReportURL": { + "description": "The URL to download the generated report.", + "type": "object", + "properties": { + "reportUrl": { + "description": "The URL to download the generated report.", + "type": "string" + }, + "validUntil": { + "description": "The time at which report URL becomes invalid.", + "type": "string", + "format": "date-time" + } + } + }, "QueryDatasetConfiguration": { "description": "The configuration of dataset in the query.", "type": "object", @@ -2608,6 +2777,30 @@ "type": "string", "x-ms-parameter-location": "method" }, + "startDateParameter": { + "name": "startDate", + "in": "query", + "description": "Start Date", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "endDateParameter": { + "name": "endDate", + "in": "query", + "description": "End Date", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "enrollmentIdParameter": { + "name": "billingAccountId", + "in": "path", + "description": "Enrollment ID (Legacy BillingAccount ID)", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, "billingAccountIdParameter": { "name": "billingAccountId", "in": "path", @@ -2616,6 +2809,14 @@ "type": "string", "x-ms-parameter-location": "method" }, + "billingProfileIdParameter": { + "name": "billingProfileId", + "in": "path", + "description": "BillingProfile ID", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, "managementGroupIdParameter": { "name": "managementGroupId", "in": "path", diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/examples/GenerateReservationDetailsReportByBillingAccount.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/examples/GenerateReservationDetailsReportByBillingAccount.json new file mode 100644 index 000000000000..d8c8f0f40faf --- /dev/null +++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/examples/GenerateReservationDetailsReportByBillingAccount.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "billingAccountId": "9845612", + "startDate": "2020-01-01", + "endDate": "2020-01-30", + "api-version": "2019-11-01" + }, + "responses": { + "202": { + "headers": { + "Location": "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/9845612/providers/Microsoft.CostManagement/reservationDetailsOperationResults/cf9f95c9-af6b-41dd-a622-e6f4fc60c3ee?api-version=2019-11-01", + "Retry-After": "60" + } + }, + "200": { + "body": { + "status": "Completed", + "properties": { + "reportUrl": "https://storage.blob.core.windows.net/details/20200911/00000000-0000-0000-0000-000000000000?sv=2016-05-31&sr=b&sig=jep8HT2aphfUkyERRZa5LRfd9RPzjXbzB%2F9TNiQ", + "validUntil": "2020-09-12T02:56:55.5021869Z" + } + } + } + } +} diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/examples/GenerateReservationDetailsReportByBillingProfile.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/examples/GenerateReservationDetailsReportByBillingProfile.json new file mode 100644 index 000000000000..a4bd203ef284 --- /dev/null +++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2021-10-01/examples/GenerateReservationDetailsReportByBillingProfile.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "billingAccountId": "00000000-0000-0000-0000-000000000000", + "billingProfileId": "CZSFR-SDFXC-DSDF", + "startDate": "2020-01-01", + "endDate": "2020-01-30", + "api-version": "2019-11-01" + }, + "responses": { + "202": { + "headers": { + "Location": "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000/billingProfiles/CZSFR-SDFXC-DSDF/providers/Microsoft.CostManagement/reservationDetailsOperationResults/cf9f95c9-af6b-41dd-a622-e6f4fc60c3ee?api-version=2019-11-01", + "Retry-After": "60" + } + }, + "200": { + "body": { + "status": "Completed", + "properties": { + "reportUrl": "https://storage.blob.core.windows.net/details/20200911/00000000-0000-0000-0000-000000000000?sv=2016-05-31&sr=b&sig=jep8HT2aphfUkyERRZa5LRfd9RPzjXbzB%2F9TNiQ", + "validUntil": "2020-09-12T02:56:55.5021869Z" + } + } + } + } +}