Skip to content

Commit 743d4da

Browse files
authored
Merge pull request #268463 from bandersmsft/migrate-ea-usage-details-api
MCM - Update table in migrate-ea-usage-details-api
2 parents f126349 + 4f679f0 commit 743d4da

File tree

1 file changed

+55
-57
lines changed

1 file changed

+55
-57
lines changed

articles/cost-management-billing/automate/migrate-ea-usage-details-api.md

Lines changed: 55 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ titleSuffix: Microsoft Cost Management
44
description: This article has information to help you migrate from the EA Usage Details APIs.
55
author: bandersmsft
66
ms.author: banders
7-
ms.date: 02/22/2024
7+
ms.date: 03/07/2024
88
ms.topic: conceptual
99
ms.service: cost-management-billing
1010
ms.subservice: cost-management
@@ -33,33 +33,33 @@ Generally we recommend using [Exports](../costs/tutorial-export-acm-data.md) if
3333

3434
### Assign permissions to an SPN to call the APIs
3535

36-
If you're looking to call either the Exports or Cost Details APIs programmatically, you'll need to configure a Service Principal with the correct permission. For more information, see [Assign permissions to ACM APIs](cost-management-api-permissions.md).
36+
If you're looking to call either the Exports or Cost Details APIs programmatically, you need to configure a Service Principal with the correct permission. For more information, see [Assign permissions to ACM APIs](cost-management-api-permissions.md).
3737

3838
### Avoid the Microsoft Consumption Usage Details API
3939

40-
The [Consumption Usage Details API](/rest/api/consumption/usage-details/list) is another endpoint that currently supports EA customers. Don't migrate to this API. Migrate to either Exports or the Cost Details API, as outlined earlier in this document. The Consumption Usage Details API will be deprecated in the future and is located behind the endpoint below.
40+
The [Consumption Usage Details API](/rest/api/consumption/usage-details/list) is another endpoint that currently supports EA customers. Don't migrate to this API. Migrate to either Exports or the Cost Details API, as outlined earlier in this document. The Consumption Usage Details API will be deprecated in the future and is located behind the following endpoint.
4141

4242
```http
4343
GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?api-version=2021-10-01
4444
```
4545

46-
This API is a synchronous endpoint and will be unable to scale as both your spending and the size of your month over month cost dataset increases. If you're currently using the Consumption Usage Details API, we recommend migrating off of it to either Exports of the Cost Details API as soon as possible. A formal deprecation announcement will be made at a future date and a timeline for retirement will be provided. To learn more about migrating away from Consumption Usage Details, see [Migrate from Consumption Usage Details API](migrate-consumption-usage-details-api.md).
46+
This API is a synchronous endpoint and will be unable to scale as both your spending and the size of your month over month cost dataset increases. If you're currently using the Consumption Usage Details API, we recommend migrating off of it to either Exports of the Cost Details API as soon as possible. A formal deprecation announcement will be made at a future date. To learn more about migrating away from Consumption Usage Details, see [Migrate from Consumption Usage Details API](migrate-consumption-usage-details-api.md).
4747

4848
## Migration benefits
4949

5050
Our new solutions provide many benefits over the EA Reporting Usage Details APIs. Here's a summary:
5151

52-
- **Security and stability** - New solutions require Service Principal and/or user tokens in order to access data. They're more secure than the API keys that are used for authenticating to the EA Reporting APIs. Keys in these legacy APIs are valid for six months and can expose sensitive financial data if leaked. Additionally, if keys aren't renewed and integrated into workloads prior to their six month expiry data access is revoked. This breaks customer workloads.
52+
- **Security and stability** - New solutions require Service Principal and/or user tokens in order to access data. They're more secure than the API keys that are used for authenticating to the EA Reporting APIs. Keys in these legacy APIs are valid for six months and can expose sensitive financial data if leaked. Additionally, if keys aren't renewed and integrated into workloads before their six month expiry, data access is revoked. This breaks customer workloads.
5353
- **Scalability** - The EA Reporting APIs aren't built to scale well as your Azure usage increases. The usage details dataset can get exceedingly large as you deploy more resources into the cloud. The new solutions are asynchronous and have extensive infrastructure enhancements behind them to ensure successful downloads for any size dataset.
54-
- **Single dataset for all usage details** - Azure and Azure Marketplace usage details have been merged into one dataset in the new solutions. The single dataset reduces the number of APIs that you need to call to see all your charges.
54+
- **Single dataset for all usage details** - Azure and Azure Marketplace usage details were merged into one dataset in the new solutions. The single dataset reduces the number of APIs that you need to call to see all your charges.
5555
- **Purchase amortization** - Customers who purchase Reservations can see an Amortized view of their costs using the new solutions.
5656
- **Schema consistency** - Each solution that is available provides files with matching fields. It allows you to easily move between solutions based on your scenario.
57-
- **Cost Allocation integration** - Enterprise Agreement and Microsoft Customer Agreement customers can use the new solution to view charges in relation to the cost allocation rules that they've configured. For more information about cost allocation, see [Allocate costs](../costs/allocate-costs.md).
58-
- **Go forward improvements** - The new solutions are being actively developed moving forward. They'll receive all new features as they're released.
57+
- **Cost Allocation integration** - Enterprise Agreement and Microsoft Customer Agreement customers can use the new solution to view charges in relation to the cost allocation rules that they configured. For more information about cost allocation, see [Allocate costs](../costs/allocate-costs.md).
58+
- **Go forward improvements** - The new solutions are being actively developed moving forward. The solutions receive all new features as they're released.
5959

6060
## Enterprise Usage APIs to migrate off
6161

62-
The table below summarizes the different APIs that you may be using today to ingest cost details data. If you're using one of the APIs below, you'll need to migrate to one of the new solutions outlined above. All APIs below are behind the *https://consumption.azure.com* endpoint.
62+
The following table summarizes the different APIs that you might be using today to ingest cost details data. If you're using one of the following APIs, you need to migrate to one of the new solutions outlined previously. All APIs are behind the *https://consumption.azure.com* endpoint.
6363

6464
| Endpoint | API Comments |
6565
| --- | ---|
@@ -73,55 +73,53 @@ The table below summarizes the different APIs that you may be using today to ing
7373

7474
## Data field mapping
7575

76-
The table below provides a summary of the old fields available in the solutions you're currently using along with the field to use in the new solutions.
77-
78-
| Old field | New field | Comments |
79-
| --- | ---| --- |
80-
| serviceName | MeterCategory | |
81-
| serviceTier | MeterSubCategory | |
82-
| location | ResourceLocation | |
83-
| chargesBilledSeparately | isAzureCreditEligible | The properties are opposites. If isAzureCreditEnabled is true, ChargesBilledSeparately would be false. |
84-
| partNumber | PartNumber | |
76+
The following table provides a summary of the old fields available in the solutions you're currently using along with the field to use in the new solutions.
77+
78+
| **Old field** | **New field** | **Comments** |
79+
| --- | --- | --- |
80+
| accountId | | _Not available -_ Use AccountName to get the account information. |
81+
| accountName | AccountName | |
82+
| accountOwnerEmail | AccountOwnerId | |
83+
| additionalInfo | AdditionalInfo | |
84+
| chargesBilledSeparately | isAzureCreditEligible | The properties are opposites. If `isAzureCreditEnabled` is true, `ChargesBilledSeparately` would be false. |
85+
| consumedQuantity | Quantity | |
86+
| consumedService | ConsumedService | |
87+
| consumedServiceId | ConsumedService | `consumedServiceId` only provides a number value.<br> `ConsumedService` provides the name of the service. |
88+
| cost | CostInBillingCurrency | |
89+
| costCenter | CostCenter | |
90+
| date | Date | The format in the old field was yyyy-mm-dd, while the new field is in the format mm/dd/yyyy. |
91+
| departmentId | InvoiceSectionId | |
92+
| departmentName | InvoiceSectionName | |
93+
| extendedCost | CostInBillingCurrency | |
94+
| instanceId | ResourceId | |
95+
| isRecurringCharge | | Where applicable, use the `Frequency` and `Term fields` moving forward. |
96+
| location | ResourceLocationNormalized | `ResourceLocationNormalized` is present in Cost Details report, but not yet in exports. |
97+
| meterCategory | MeterCategory | |
98+
| meterId | MeterId | |
99+
| meterName | MeterName | |
100+
| meterRegion | MeterRegion | |
101+
| meterSubCategory | MeterSubCategory | |
102+
| offerId | OfferId | |
103+
| orderNumber | | Not available. |
104+
| partNumber | PartNumber | |
105+
| planName | PlanName | |
106+
| product | ProductName | |
107+
| publisherName | PublisherName | |
108+
| resourceGroup | ResourceGroup | |
85109
| resourceGuid | MeterId | Values vary. `resourceGuid` is a GUID value. `meterId` is a long number. |
86-
| offerId | OfferId | |
87-
| cost | CostInBillingCurrency | |
88-
| accountId | AccountId | |
89-
| resourceLocationId | | Not available. |
90-
| consumedServiceId | ConsumedService | `consumedServiceId` only provides a number value. `ConsumedService` provides the name of the service. |
91-
| departmentId | InvoiceSectionId | |
92-
| accountOwnerEmail | AccountOwnerId | |
93-
| accountName | AccountName | |
94-
| subscriptionId | SubscriptionId | |
95-
| subscriptionGuid | SubscriptionId | |
96-
| subscriptionName | SubscriptionName | |
97-
| date | Date | |
98-
| product | ProductName | |
99-
| meterId | MeterId | |
100-
| meterCategory | MeterCategory | |
101-
| meterSubCategory | MeterSubCategory | |
102-
| meterRegion | MeterRegion | |
103-
| meterName | MeterName | |
104-
| consumedQuantity | Quantity | |
105-
| resourceRate | EffectivePrice | |
106-
| resourceLocation | ResourceLocation | |
107-
| consumedService | ConsumedService | |
108-
| instanceId | ResourceId | |
109-
| serviceInfo1 | ServiceInfo1 | |
110-
| serviceInfo2 | ServiceInfo2 | |
111-
| additionalInfo | AdditionalInfo | |
112-
| tags | Tags | |
113-
| storeServiceIdentifier | | Not available. |
114-
| departmentName | InvoiceSectionName | |
115-
| costCenter | CostCenter | |
116-
| unitOfMeasure | UnitOfMeasure | |
117-
| resourceGroup | ResourceGroup | |
118-
| isRecurringCharge | | Where applicable, use the Frequency and Term fields moving forward. |
119-
| extendedCost | CostInBillingCurrency | |
120-
| planName | PlanName | |
121-
| publisherName | PublisherName | |
122-
| orderNumber | | Not available. |
123-
| usageStartDate | Date | |
124-
| usageEndDate | Date | |
110+
| resourceLocation | ResourceLocation | |
111+
| resourceLocationId | | Not available. |
112+
| resourceRate | EffectivePrice | |
113+
| serviceInfo1 | ServiceInfo1 | |
114+
| serviceInfo2 | ServiceInfo2 | |
115+
| serviceName | MeterCategory | |
116+
| serviceTier | MeterSubCategory | |
117+
| storeServiceIdentifier | | Not available. |
118+
| subscriptionGuid | SubscriptionId | |
119+
| subscriptionId | SubscriptionId | |
120+
| subscriptionName | SubscriptionName | |
121+
| tags | Tags | The new field doesn't have the enclosing `{}` around the key-value pairs. |
122+
| unitOfMeasure | UnitOfMeasure | |
125123

126124
## Next steps
127125

0 commit comments

Comments
 (0)