You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/cost-management-billing/automate/migrate-ea-usage-details-api.md
+55-57Lines changed: 55 additions & 57 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ titleSuffix: Microsoft Cost Management
4
4
description: This article has information to help you migrate from the EA Usage Details APIs.
5
5
author: bandersmsft
6
6
ms.author: banders
7
-
ms.date: 02/22/2024
7
+
ms.date: 03/07/2024
8
8
ms.topic: conceptual
9
9
ms.service: cost-management-billing
10
10
ms.subservice: cost-management
@@ -33,33 +33,33 @@ Generally we recommend using [Exports](../costs/tutorial-export-acm-data.md) if
33
33
34
34
### Assign permissions to an SPN to call the APIs
35
35
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).
37
37
38
38
### Avoid the Microsoft Consumption Usage Details API
39
39
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.
41
41
42
42
```http
43
43
GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?api-version=2021-10-01
44
44
```
45
45
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).
47
47
48
48
## Migration benefits
49
49
50
50
Our new solutions provide many benefits over the EA Reporting Usage Details APIs. Here's a summary:
51
51
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.
53
53
-**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.
55
55
-**Purchase amortization** - Customers who purchase Reservations can see an Amortized view of their costs using the new solutions.
56
56
-**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.
59
59
60
60
## Enterprise Usage APIs to migrate off
61
61
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.
63
63
64
64
| Endpoint | API Comments |
65
65
| --- | ---|
@@ -73,55 +73,53 @@ The table below summarizes the different APIs that you may be using today to ing
73
73
74
74
## Data field mapping
75
75
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 ||
85
109
| 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. |
0 commit comments