API for Carbon Emissions Reports
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
URI Parameters
Name |
In |
Required |
Type |
Description |
api-version
|
query |
True
|
string
minLength: 1
|
The API version to use for this operation.
|
Request Body
The request body can be one of the following:
ItemDetailsQueryFilter
Query Parameters for ItemDetailsReport
Name |
Required |
Type |
Description |
carbonScopeList
|
True
|
EmissionScopeEnum[]
|
List of carbon emission scopes. Required. Accepts one or more values from EmissionScopeEnum (e.g., Scope1, Scope2, Scope3) in list form. The output will include the total emissions for the specified scopes.
|
categoryType
|
True
|
CategoryTypeEnum
|
Specifies the category type for detailed emissions data, such as Resource, ResourceGroup, ResourceType, Location, or Subscription. See supported types in CategoryTypeEnum.
|
dateRange
|
True
|
DateRange
|
The start and end dates for carbon emissions data. Required. For ItemDetailsReport and TopItemsSummaryReport, only one month of data is supported at a time, so start and end dates should be equal within DateRange (e.g., start: 2024-06-01 and end: 2024-06-01).
|
orderBy
|
True
|
OrderByColumnEnum
|
The column name to order the results by. See supported values in OrderByColumnEnum.
|
pageSize
|
True
|
integer
(int32)
minimum: 1 maximum: 5000
|
Number of items to return in one request, max value is 5000.
|
reportType
|
True
|
string:
ItemDetailsReport
|
The ReportType requested for carbon emissions data. Required. Specifies how data is aggregated and displayed in the output, as explained in the ReportTypeEnum.
|
sortDirection
|
True
|
SortDirectionEnum
|
Direction for sorting results. See supported values in SortDirectionEnum.
|
subscriptionList
|
True
|
string[]
|
List of subscription IDs for which carbon emissions data is requested. Required. Each subscription ID should be in lowercase format. The max length of list is 100.
|
locationList
|
|
string[]
|
List of locations(Azure Region Display Name) for carbon emissions data, with each location specified in lowercase (e.g., 'east us'). Optional. You can use the command 'az account list-locations -o table' to find Azure Region Display Names.
|
resourceGroupUrlList
|
|
string[]
|
List of resource group URLs for carbon emissions data. Optional. Each URL must follow the format '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}', and should be in all lowercase.
|
resourceTypeList
|
|
string[]
|
List of resource types for carbon emissions data. Optional. Each resource type should be specified in lowercase, following the format 'microsoft.{service}/{resourceType}', e.g., 'microsoft.storage/storageaccounts'.
|
skipToken
|
|
string
|
Pagination token for fetching the next page of data. This token is nullable and will be returned in the previous response if additional data pages are available.
|
MonthlySummaryReportQueryFilter
Query filter parameter to configure MonthlySummaryReport queries.
Name |
Required |
Type |
Description |
carbonScopeList
|
True
|
EmissionScopeEnum[]
|
List of carbon emission scopes. Required. Accepts one or more values from EmissionScopeEnum (e.g., Scope1, Scope2, Scope3) in list form. The output will include the total emissions for the specified scopes.
|
dateRange
|
True
|
DateRange
|
The start and end dates for carbon emissions data. Required. For ItemDetailsReport and TopItemsSummaryReport, only one month of data is supported at a time, so start and end dates should be equal within DateRange (e.g., start: 2024-06-01 and end: 2024-06-01).
|
reportType
|
True
|
string:
MonthlySummaryReport
|
The ReportType requested for carbon emissions data. Required. Specifies how data is aggregated and displayed in the output, as explained in the ReportTypeEnum.
|
subscriptionList
|
True
|
string[]
|
List of subscription IDs for which carbon emissions data is requested. Required. Each subscription ID should be in lowercase format. The max length of list is 100.
|
locationList
|
|
string[]
|
List of locations(Azure Region Display Name) for carbon emissions data, with each location specified in lowercase (e.g., 'east us'). Optional. You can use the command 'az account list-locations -o table' to find Azure Region Display Names.
|
resourceGroupUrlList
|
|
string[]
|
List of resource group URLs for carbon emissions data. Optional. Each URL must follow the format '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}', and should be in all lowercase.
|
resourceTypeList
|
|
string[]
|
List of resource types for carbon emissions data. Optional. Each resource type should be specified in lowercase, following the format 'microsoft.{service}/{resourceType}', e.g., 'microsoft.storage/storageaccounts'.
|
OverallSummaryReportQueryFilter
Query filter parameter to configure OverallSummaryReport queries.
Name |
Required |
Type |
Description |
carbonScopeList
|
True
|
EmissionScopeEnum[]
|
List of carbon emission scopes. Required. Accepts one or more values from EmissionScopeEnum (e.g., Scope1, Scope2, Scope3) in list form. The output will include the total emissions for the specified scopes.
|
dateRange
|
True
|
DateRange
|
The start and end dates for carbon emissions data. Required. For ItemDetailsReport and TopItemsSummaryReport, only one month of data is supported at a time, so start and end dates should be equal within DateRange (e.g., start: 2024-06-01 and end: 2024-06-01).
|
reportType
|
True
|
string:
OverallSummaryReport
|
The ReportType requested for carbon emissions data. Required. Specifies how data is aggregated and displayed in the output, as explained in the ReportTypeEnum.
|
subscriptionList
|
True
|
string[]
|
List of subscription IDs for which carbon emissions data is requested. Required. Each subscription ID should be in lowercase format. The max length of list is 100.
|
locationList
|
|
string[]
|
List of locations(Azure Region Display Name) for carbon emissions data, with each location specified in lowercase (e.g., 'east us'). Optional. You can use the command 'az account list-locations -o table' to find Azure Region Display Names.
|
resourceGroupUrlList
|
|
string[]
|
List of resource group URLs for carbon emissions data. Optional. Each URL must follow the format '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}', and should be in all lowercase.
|
resourceTypeList
|
|
string[]
|
List of resource types for carbon emissions data. Optional. Each resource type should be specified in lowercase, following the format 'microsoft.{service}/{resourceType}', e.g., 'microsoft.storage/storageaccounts'.
|
TopItemsMonthlySummaryReportQueryFilter
Query filter parameter to configure TopItemsMonthlySummaryReport queries.
Name |
Required |
Type |
Description |
carbonScopeList
|
True
|
EmissionScopeEnum[]
|
List of carbon emission scopes. Required. Accepts one or more values from EmissionScopeEnum (e.g., Scope1, Scope2, Scope3) in list form. The output will include the total emissions for the specified scopes.
|
categoryType
|
True
|
CategoryTypeEnum
|
Specifies the category type to retrieve top-emitting items, aggregated by month. See supported types in CategoryTypeEnum.
|
dateRange
|
True
|
DateRange
|
The start and end dates for carbon emissions data. Required. For ItemDetailsReport and TopItemsSummaryReport, only one month of data is supported at a time, so start and end dates should be equal within DateRange (e.g., start: 2024-06-01 and end: 2024-06-01).
|
reportType
|
True
|
string:
TopItemsMonthlySummaryReport
|
The ReportType requested for carbon emissions data. Required. Specifies how data is aggregated and displayed in the output, as explained in the ReportTypeEnum.
|
subscriptionList
|
True
|
string[]
|
List of subscription IDs for which carbon emissions data is requested. Required. Each subscription ID should be in lowercase format. The max length of list is 100.
|
topItems
|
True
|
integer
(int32)
minimum: 1 maximum: 10
|
The number of top items to return, based on emissions. Must be between 1 and 10.
|
locationList
|
|
string[]
|
List of locations(Azure Region Display Name) for carbon emissions data, with each location specified in lowercase (e.g., 'east us'). Optional. You can use the command 'az account list-locations -o table' to find Azure Region Display Names.
|
resourceGroupUrlList
|
|
string[]
|
List of resource group URLs for carbon emissions data. Optional. Each URL must follow the format '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}', and should be in all lowercase.
|
resourceTypeList
|
|
string[]
|
List of resource types for carbon emissions data. Optional. Each resource type should be specified in lowercase, following the format 'microsoft.{service}/{resourceType}', e.g., 'microsoft.storage/storageaccounts'.
|
TopItemsSummaryReportQueryFilter
Query filter parameter to configure TopItemsSummaryReport queries.
Name |
Required |
Type |
Description |
carbonScopeList
|
True
|
EmissionScopeEnum[]
|
List of carbon emission scopes. Required. Accepts one or more values from EmissionScopeEnum (e.g., Scope1, Scope2, Scope3) in list form. The output will include the total emissions for the specified scopes.
|
categoryType
|
True
|
CategoryTypeEnum
|
Specifies the category type for which to retrieve top-emitting items. See supported values defined in CategoryTypeEnum.
|
dateRange
|
True
|
DateRange
|
The start and end dates for carbon emissions data. Required. For ItemDetailsReport and TopItemsSummaryReport, only one month of data is supported at a time, so start and end dates should be equal within DateRange (e.g., start: 2024-06-01 and end: 2024-06-01).
|
reportType
|
True
|
string:
TopItemsSummaryReport
|
The ReportType requested for carbon emissions data. Required. Specifies how data is aggregated and displayed in the output, as explained in the ReportTypeEnum.
|
subscriptionList
|
True
|
string[]
|
List of subscription IDs for which carbon emissions data is requested. Required. Each subscription ID should be in lowercase format. The max length of list is 100.
|
topItems
|
True
|
integer
(int32)
minimum: 1 maximum: 10
|
The number of top items to return, based on emissions. This value must be between 1 and 10.
|
locationList
|
|
string[]
|
List of locations(Azure Region Display Name) for carbon emissions data, with each location specified in lowercase (e.g., 'east us'). Optional. You can use the command 'az account list-locations -o table' to find Azure Region Display Names.
|
resourceGroupUrlList
|
|
string[]
|
List of resource group URLs for carbon emissions data. Optional. Each URL must follow the format '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}', and should be in all lowercase.
|
resourceTypeList
|
|
string[]
|
List of resource types for carbon emissions data. Optional. Each resource type should be specified in lowercase, following the format 'microsoft.{service}/{resourceType}', e.g., 'microsoft.storage/storageaccounts'.
|
Responses
Security
azure_auth
Azure Active Directory OAuth2 Flow.
Type:
oauth2
Flow:
implicit
Authorization URL:
https://login.microsoftonline.com/common/oauth2/authorize
Scopes
Name |
Description |
user_impersonation
|
impersonate your user account
|
Examples
QueryCarbonEmission Location item details Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "ItemDetailsReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-05-01",
"end": "2024-05-01"
},
"categoryType": "Location",
"orderBy": "LatestMonthEmissions",
"sortDirection": "Desc",
"pageSize": 100
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.ItemDetailsQueryFilter;
import com.azure.resourcemanager.carbonoptimization.models.OrderByColumnEnum;
import com.azure.resourcemanager.carbonoptimization.models.SortDirectionEnum;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsLocationItemDetailsReport.json
*/
/**
* Sample code: QueryCarbonEmission Location item details Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionLocationItemDetailsReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(new ItemDetailsQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-05-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.LOCATION).withOrderBy(OrderByColumnEnum.LATEST_MONTH_EMISSIONS)
.withSortDirection(SortDirectionEnum.DESC).withPageSize(100), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_location_item_details_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "Location",
"dateRange": {"end": "2024-05-01", "start": "2024-05-01"},
"orderBy": "LatestMonthEmissions",
"pageSize": 100,
"reportType": "ItemDetailsReport",
"sortDirection": "Desc",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsLocationItemDetailsReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsLocationItemDetailsReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionLocationItemDetailsReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.ItemDetailsQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumItemDetailsReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
OrderBy: to.Ptr(armcarbonoptimization.OrderByColumnEnumLatestMonthEmissions),
SortDirection: to.Ptr(armcarbonoptimization.SortDirectionEnumDesc),
PageSize: to.Ptr[int32](100),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("east us"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// },
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("west us"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// },
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("west us 2"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// },
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("west us 3"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// },
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("east us 2"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsLocationItemDetailsReport.json
*/
async function queryCarbonEmissionLocationItemDetailsReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "ItemDetailsReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-05-01", end: "2024-05-01" },
categoryType: "Location",
orderBy: "LatestMonthEmissions",
sortDirection: "Desc",
pageSize: 100,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsLocationItemDetailsReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new ItemDetailsQueryFilter(
new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-05-01"), DateTimeOffset.Parse("2024-05-01")),
new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" },
new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 },
CarbonEmissionCategoryType.Location,
CarbonEmissionQueryOrderByColumn.LatestMonthEmissions,
CarbonEmissionQuerySortDirection.Desc,
100);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "east us",
"categoryType": "Location"
},
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "west us",
"categoryType": "Location"
},
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "west us 2",
"categoryType": "Location"
},
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "west us 3",
"categoryType": "Location"
},
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "east us 2",
"categoryType": "Location"
}
]
}
QueryCarbonEmission Monthly Summary Report with optional filter - locationList, resourceTypeList, resourceGroupUrlList
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "MonthlySummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-03-01",
"end": "2024-05-01"
},
"locationList": [
"east us",
"west us"
],
"resourceTypeList": [
"microsoft.storage/storageaccounts",
"microsoft.databricks/workspaces"
],
"resourceGroupUrlList": [
"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-name"
]
}
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.MonthlySummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsMonthlySummaryReportWithOtherOptionalFilter.json
*/
/**
* Sample code: QueryCarbonEmission Monthly Summary Report with optional filter - locationList, resourceTypeList,
* resourceGroupUrlList.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void
queryCarbonEmissionMonthlySummaryReportWithOptionalFilterLocationListResourceTypeListResourceGroupUrlList(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices().queryCarbonEmissionReportsWithResponse(
new MonthlySummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-03-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000"))
.withResourceGroupUrlList(
Arrays.asList("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-name"))
.withResourceTypeList(
Arrays.asList("microsoft.storage/storageaccounts", "microsoft.databricks/workspaces"))
.withLocationList(Arrays.asList("east us", "west us"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3)),
com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_monthly_summary_report_with_other_optional_filter.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"dateRange": {"end": "2024-05-01", "start": "2024-03-01"},
"locationList": ["east us", "west us"],
"reportType": "MonthlySummaryReport",
"resourceGroupUrlList": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-name"],
"resourceTypeList": ["microsoft.storage/storageaccounts", "microsoft.databricks/workspaces"],
"subscriptionList": ["00000000-0000-0000-0000-000000000000"],
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsMonthlySummaryReportWithOtherOptionalFilter.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsMonthlySummaryReportWithOtherOptionalFilter.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionMonthlySummaryReportWithOptionalFilterLocationListResourceTypeListResourceGroupUrlList() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.MonthlySummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumMonthlySummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-03-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
LocationList: []*string{
to.Ptr("east us"),
to.Ptr("west us"),
},
ResourceTypeList: []*string{
to.Ptr("microsoft.storage/storageaccounts"),
to.Ptr("microsoft.databricks/workspaces"),
},
ResourceGroupURLList: []*string{
to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-name"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.CarbonEmissionMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// Date: to.Ptr("2024-05-01"),
// CarbonIntensity: to.Ptr[float64](22),
// },
// &armcarbonoptimization.CarbonEmissionMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// Date: to.Ptr("2024-04-01"),
// CarbonIntensity: to.Ptr[float64](22),
// },
// &armcarbonoptimization.CarbonEmissionMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// Date: to.Ptr("2024-03-01"),
// CarbonIntensity: to.Ptr[float64](22),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsMonthlySummaryReportWithOtherOptionalFilter.json
*/
async function queryCarbonEmissionMonthlySummaryReportWithOptionalFilterLocationListResourceTypeListResourceGroupUrlList() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "MonthlySummaryReport",
subscriptionList: ["00000000-0000-0000-0000-000000000000"],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-03-01", end: "2024-05-01" },
locationList: ["east us", "west us"],
resourceTypeList: ["microsoft.storage/storageaccounts", "microsoft.databricks/workspaces"],
resourceGroupUrlList: [
"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-name",
],
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsMonthlySummaryReportWithOtherOptionalFilter.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new MonthlySummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-03-01"), DateTimeOffset.Parse("2024-05-01")), new string[] { "00000000-0000-0000-0000-000000000000" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 })
{
ResourceGroupUrlList = { "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-name" },
ResourceTypeList = { new ResourceType("microsoft.storage/storageaccounts"), new ResourceType("microsoft.databricks/workspaces") },
LocationList = { new AzureLocation("east us"), new AzureLocation("west us") },
};
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
}
],
"value": [
{
"dataType": "MonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"date": "2024-05-01",
"carbonIntensity": 22
},
{
"dataType": "MonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"date": "2024-04-01",
"carbonIntensity": 22
},
{
"dataType": "MonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"date": "2024-03-01",
"carbonIntensity": 22
}
]
}
QueryCarbonEmission Overall Monthly Summary Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "MonthlySummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-03-01",
"end": "2024-05-01"
}
}
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.MonthlySummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsMonthlySummaryReport.json
*/
/**
* Sample code: QueryCarbonEmission Overall Monthly Summary Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionOverallMonthlySummaryReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices().queryCarbonEmissionReportsWithResponse(
new MonthlySummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-03-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3)),
com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_monthly_summary_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"dateRange": {"end": "2024-05-01", "start": "2024-03-01"},
"reportType": "MonthlySummaryReport",
"subscriptionList": ["00000000-0000-0000-0000-000000000000"],
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsMonthlySummaryReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsMonthlySummaryReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionOverallMonthlySummaryReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.MonthlySummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumMonthlySummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-03-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.CarbonEmissionMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// Date: to.Ptr("2024-05-01"),
// CarbonIntensity: to.Ptr[float64](22),
// },
// &armcarbonoptimization.CarbonEmissionMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// Date: to.Ptr("2024-04-01"),
// CarbonIntensity: to.Ptr[float64](22),
// },
// &armcarbonoptimization.CarbonEmissionMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// Date: to.Ptr("2024-03-01"),
// CarbonIntensity: to.Ptr[float64](22),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsMonthlySummaryReport.json
*/
async function queryCarbonEmissionOverallMonthlySummaryReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "MonthlySummaryReport",
subscriptionList: ["00000000-0000-0000-0000-000000000000"],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-03-01", end: "2024-05-01" },
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsMonthlySummaryReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new MonthlySummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-03-01"), DateTimeOffset.Parse("2024-05-01")), new string[] { "00000000-0000-0000-0000-000000000000" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 });
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
}
],
"value": [
{
"dataType": "MonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"date": "2024-05-01",
"carbonIntensity": 22
},
{
"dataType": "MonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"date": "2024-04-01",
"carbonIntensity": 22
},
{
"dataType": "MonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"date": "2024-03-01",
"carbonIntensity": 22
}
]
}
QueryCarbonEmission Overall Summary Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "OverallSummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2023-06-01",
"end": "2023-06-01"
}
}
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.OverallSummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsOverallSummaryReport.json
*/
/**
* Sample code: QueryCarbonEmission Overall Summary Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionOverallSummaryReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices().queryCarbonEmissionReportsWithResponse(
new OverallSummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2023-06-01")).withEnd(LocalDate.parse("2023-06-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3)),
com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_overall_summary_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"dateRange": {"end": "2023-06-01", "start": "2023-06-01"},
"reportType": "OverallSummaryReport",
"subscriptionList": ["00000000-0000-0000-0000-000000000000"],
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsOverallSummaryReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsOverallSummaryReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionOverallSummaryReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.OverallSummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumOverallSummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-06-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-06-01"); return t }()),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.CarbonEmissionOverallSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumOverallSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsOverallSummaryReport.json
*/
async function queryCarbonEmissionOverallSummaryReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "OverallSummaryReport",
subscriptionList: ["00000000-0000-0000-0000-000000000000"],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2023-06-01", end: "2023-06-01" },
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsOverallSummaryReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new OverallSummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2023-06-01"), DateTimeOffset.Parse("2023-06-01")), new string[] { "00000000-0000-0000-0000-000000000000" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 });
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
}
],
"value": [
{
"dataType": "OverallSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05
}
]
}
QueryCarbonEmission Overall Summary Report with optional filter - locationList, resourceTypeList, resourceGroupUrlList
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "OverallSummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2023-06-01",
"end": "2023-06-01"
},
"locationList": [
"east us",
"west us"
],
"resourceTypeList": [
"microsoft.storage/storageaccounts",
"microsoft.databricks/workspaces"
],
"resourceGroupUrlList": [
"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-name"
]
}
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.OverallSummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsOverallSummaryReportWithOtherOptionalFilter.json
*/
/**
* Sample code: QueryCarbonEmission Overall Summary Report with optional filter - locationList, resourceTypeList,
* resourceGroupUrlList.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void
queryCarbonEmissionOverallSummaryReportWithOptionalFilterLocationListResourceTypeListResourceGroupUrlList(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices().queryCarbonEmissionReportsWithResponse(
new OverallSummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2023-06-01")).withEnd(LocalDate.parse("2023-06-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000"))
.withResourceGroupUrlList(
Arrays.asList("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-name"))
.withResourceTypeList(
Arrays.asList("microsoft.storage/storageaccounts", "microsoft.databricks/workspaces"))
.withLocationList(Arrays.asList("east us", "west us"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3)),
com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_overall_summary_report_with_other_optional_filter.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"dateRange": {"end": "2023-06-01", "start": "2023-06-01"},
"locationList": ["east us", "west us"],
"reportType": "OverallSummaryReport",
"resourceGroupUrlList": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-name"],
"resourceTypeList": ["microsoft.storage/storageaccounts", "microsoft.databricks/workspaces"],
"subscriptionList": ["00000000-0000-0000-0000-000000000000"],
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsOverallSummaryReportWithOtherOptionalFilter.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsOverallSummaryReportWithOtherOptionalFilter.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionOverallSummaryReportWithOptionalFilterLocationListResourceTypeListResourceGroupUrlList() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.OverallSummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumOverallSummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-06-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-06-01"); return t }()),
},
LocationList: []*string{
to.Ptr("east us"),
to.Ptr("west us"),
},
ResourceTypeList: []*string{
to.Ptr("microsoft.storage/storageaccounts"),
to.Ptr("microsoft.databricks/workspaces"),
},
ResourceGroupURLList: []*string{
to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-name"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.CarbonEmissionOverallSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumOverallSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsOverallSummaryReportWithOtherOptionalFilter.json
*/
async function queryCarbonEmissionOverallSummaryReportWithOptionalFilterLocationListResourceTypeListResourceGroupUrlList() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "OverallSummaryReport",
subscriptionList: ["00000000-0000-0000-0000-000000000000"],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2023-06-01", end: "2023-06-01" },
locationList: ["east us", "west us"],
resourceTypeList: ["microsoft.storage/storageaccounts", "microsoft.databricks/workspaces"],
resourceGroupUrlList: [
"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-name",
],
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsOverallSummaryReportWithOtherOptionalFilter.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new OverallSummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2023-06-01"), DateTimeOffset.Parse("2023-06-01")), new string[] { "00000000-0000-0000-0000-000000000000" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 })
{
ResourceGroupUrlList = { "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-name" },
ResourceTypeList = { new ResourceType("microsoft.storage/storageaccounts"), new ResourceType("microsoft.databricks/workspaces") },
LocationList = { new AzureLocation("east us"), new AzureLocation("west us") },
};
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
}
],
"value": [
{
"dataType": "OverallSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05
}
]
}
QueryCarbonEmission resource item details Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "ItemDetailsReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-05-01",
"end": "2024-05-01"
},
"categoryType": "Resource",
"orderBy": "LatestMonthEmissions",
"sortDirection": "Desc",
"pageSize": 100
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.ItemDetailsQueryFilter;
import com.azure.resourcemanager.carbonoptimization.models.OrderByColumnEnum;
import com.azure.resourcemanager.carbonoptimization.models.SortDirectionEnum;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsResourceItemDetailsReport.json
*/
/**
* Sample code: QueryCarbonEmission resource item details Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionResourceItemDetailsReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(new ItemDetailsQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-05-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.RESOURCE).withOrderBy(OrderByColumnEnum.LATEST_MONTH_EMISSIONS)
.withSortDirection(SortDirectionEnum.DESC).withPageSize(100), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_resource_item_details_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "Resource",
"dateRange": {"end": "2024-05-01", "start": "2024-05-01"},
"orderBy": "LatestMonthEmissions",
"pageSize": 100,
"reportType": "ItemDetailsReport",
"sortDirection": "Desc",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsResourceItemDetailsReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsResourceItemDetailsReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionResourceItemDetailsReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.ItemDetailsQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumItemDetailsReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
OrderBy: to.Ptr(armcarbonoptimization.OrderByColumnEnumLatestMonthEmissions),
SortDirection: to.Ptr(armcarbonoptimization.SortDirectionEnumDesc),
PageSize: to.Ptr[int32](100),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.ResourceCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName1"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName1"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// ResourceType: to.Ptr("microsoft.storage/storageaccounts"),
// Location: to.Ptr("east us"),
// },
// &armcarbonoptimization.ResourceCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName2"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName2"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// ResourceType: to.Ptr("microsoft.storage/storageaccounts"),
// Location: to.Ptr("east us"),
// },
// &armcarbonoptimization.ResourceCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName3"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName3"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// ResourceType: to.Ptr("microsoft.storage/storageaccounts"),
// Location: to.Ptr("east us"),
// },
// &armcarbonoptimization.ResourceCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName4"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName4"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// ResourceType: to.Ptr("microsoft.storage/storageaccounts"),
// Location: to.Ptr("east us"),
// },
// &armcarbonoptimization.ResourceCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName5"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName5"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// ResourceType: to.Ptr("microsoft.storage/storageaccounts"),
// Location: to.Ptr("east us"),
// },
// },
// SkipToken: to.Ptr("dGVzZGZhZGZzZnNkZg=="),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsResourceItemDetailsReport.json
*/
async function queryCarbonEmissionResourceItemDetailsReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "ItemDetailsReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-05-01", end: "2024-05-01" },
categoryType: "Resource",
orderBy: "LatestMonthEmissions",
sortDirection: "Desc",
pageSize: 100,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsResourceItemDetailsReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new ItemDetailsQueryFilter(
new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-05-01"), DateTimeOffset.Parse("2024-05-01")),
new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" },
new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 },
CarbonEmissionCategoryType.Resource,
CarbonEmissionQueryOrderByColumn.LatestMonthEmissions,
CarbonEmissionQuerySortDirection.Desc,
100);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "ResourceItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName1",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName1",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource",
"resourceType": "microsoft.storage/storageaccounts",
"location": "east us"
},
{
"dataType": "ResourceItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName2",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName2",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource",
"resourceType": "microsoft.storage/storageaccounts",
"location": "east us"
},
{
"dataType": "ResourceItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName3",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName3",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource",
"resourceType": "microsoft.storage/storageaccounts",
"location": "east us"
},
{
"dataType": "ResourceItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName4",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName4",
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"categoryType": "Resource",
"resourceType": "microsoft.storage/storageaccounts",
"location": "east us"
},
{
"dataType": "ResourceItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName5",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName5",
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"categoryType": "Resource",
"resourceType": "microsoft.storage/storageaccounts",
"location": "east us"
}
],
"skipToken": "dGVzZGZhZGZzZnNkZg=="
}
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "ItemDetailsReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-05-01",
"end": "2024-05-01"
},
"categoryType": "Resource",
"orderBy": "LatestMonthEmissions",
"sortDirection": "Desc",
"pageSize": 100,
"skipToken": "dGVzZGZhZGZzZnNkZg=="
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.ItemDetailsQueryFilter;
import com.azure.resourcemanager.carbonoptimization.models.OrderByColumnEnum;
import com.azure.resourcemanager.carbonoptimization.models.SortDirectionEnum;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsResourceItemDetailsReportWithPaginationToken.json
*/
/**
* Sample code: QueryCarbonEmission resource item details Report with pagination token.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionResourceItemDetailsReportWithPaginationToken(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices().queryCarbonEmissionReportsWithResponse(
new ItemDetailsQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-05-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.RESOURCE).withOrderBy(OrderByColumnEnum.LATEST_MONTH_EMISSIONS)
.withSortDirection(SortDirectionEnum.DESC).withPageSize(100).withSkipToken("fakeTokenPlaceholder"),
com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_resource_item_details_report_with_pagination_token.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "Resource",
"dateRange": {"end": "2024-05-01", "start": "2024-05-01"},
"orderBy": "LatestMonthEmissions",
"pageSize": 100,
"reportType": "ItemDetailsReport",
"skipToken": "dGVzZGZhZGZzZnNkZg==",
"sortDirection": "Desc",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsResourceItemDetailsReportWithPaginationToken.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsResourceItemDetailsReportWithPaginationToken.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionResourceItemDetailsReportWithPaginationToken() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.ItemDetailsQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumItemDetailsReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
OrderBy: to.Ptr(armcarbonoptimization.OrderByColumnEnumLatestMonthEmissions),
SortDirection: to.Ptr(armcarbonoptimization.SortDirectionEnumDesc),
PageSize: to.Ptr[int32](100),
SkipToken: to.Ptr("dGVzZGZhZGZzZnNkZg=="),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.ResourceCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName1"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName1"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// ResourceType: to.Ptr("microsoft.storage/storageaccounts"),
// Location: to.Ptr("east us"),
// },
// &armcarbonoptimization.ResourceCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName2"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName2"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// ResourceType: to.Ptr("microsoft.storage/storageaccounts"),
// Location: to.Ptr("east us"),
// },
// &armcarbonoptimization.ResourceCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName3"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName3"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// ResourceType: to.Ptr("microsoft.storage/storageaccounts"),
// Location: to.Ptr("east us"),
// },
// &armcarbonoptimization.ResourceCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName4"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName4"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// ResourceType: to.Ptr("microsoft.storage/storageaccounts"),
// Location: to.Ptr("east us"),
// },
// &armcarbonoptimization.ResourceCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName5"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName5"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// ResourceType: to.Ptr("microsoft.storage/storageaccounts"),
// Location: to.Ptr("east us"),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsResourceItemDetailsReportWithPaginationToken.json
*/
async function queryCarbonEmissionResourceItemDetailsReportWithPaginationToken() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "ItemDetailsReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-05-01", end: "2024-05-01" },
categoryType: "Resource",
orderBy: "LatestMonthEmissions",
sortDirection: "Desc",
pageSize: 100,
skipToken: "dGVzZGZhZGZzZnNkZg==",
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsResourceItemDetailsReportWithPaginationToken.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new ItemDetailsQueryFilter(
new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-05-01"), DateTimeOffset.Parse("2024-05-01")),
new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" },
new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 },
CarbonEmissionCategoryType.Resource,
CarbonEmissionQueryOrderByColumn.LatestMonthEmissions,
CarbonEmissionQuerySortDirection.Desc,
100)
{
SkipToken = "dGVzZGZhZGZzZnNkZg==",
};
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "ResourceItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName1",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName1",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource",
"resourceType": "microsoft.storage/storageaccounts",
"location": "east us"
},
{
"dataType": "ResourceItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName2",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName2",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource",
"resourceType": "microsoft.storage/storageaccounts",
"location": "east us"
},
{
"dataType": "ResourceItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName3",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName3",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource",
"resourceType": "microsoft.storage/storageaccounts",
"location": "east us"
},
{
"dataType": "ResourceItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName4",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName4",
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"categoryType": "Resource",
"resourceType": "microsoft.storage/storageaccounts",
"location": "east us"
},
{
"dataType": "ResourceItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName5",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName5",
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"categoryType": "Resource",
"resourceType": "microsoft.storage/storageaccounts",
"location": "east us"
}
]
}
QueryCarbonEmission ResourceGroup item details Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "ItemDetailsReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-05-01",
"end": "2024-05-01"
},
"categoryType": "ResourceGroup",
"orderBy": "LatestMonthEmissions",
"sortDirection": "Desc",
"pageSize": 100
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.ItemDetailsQueryFilter;
import com.azure.resourcemanager.carbonoptimization.models.OrderByColumnEnum;
import com.azure.resourcemanager.carbonoptimization.models.SortDirectionEnum;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsResourceGroupItemDetailsReport.json
*/
/**
* Sample code: QueryCarbonEmission ResourceGroup item details Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionResourceGroupItemDetailsReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(new ItemDetailsQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-05-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.RESOURCE_GROUP).withOrderBy(OrderByColumnEnum.LATEST_MONTH_EMISSIONS)
.withSortDirection(SortDirectionEnum.DESC).withPageSize(100), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_resource_group_item_details_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "ResourceGroup",
"dateRange": {"end": "2024-05-01", "start": "2024-05-01"},
"orderBy": "LatestMonthEmissions",
"pageSize": 100,
"reportType": "ItemDetailsReport",
"sortDirection": "Desc",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsResourceGroupItemDetailsReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsResourceGroupItemDetailsReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionResourceGroupItemDetailsReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.ItemDetailsQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumItemDetailsReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
OrderBy: to.Ptr(armcarbonoptimization.OrderByColumnEnumLatestMonthEmissions),
SortDirection: to.Ptr(armcarbonoptimization.SortDirectionEnumDesc),
PageSize: to.Ptr[int32](100),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.ResourceGroupCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup1"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup1"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// },
// &armcarbonoptimization.ResourceGroupCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup2"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup2"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// },
// &armcarbonoptimization.ResourceGroupCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup3"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup3"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// },
// &armcarbonoptimization.ResourceGroupCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup4"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup4"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// },
// &armcarbonoptimization.ResourceGroupCarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup5"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup5"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsResourceGroupItemDetailsReport.json
*/
async function queryCarbonEmissionResourceGroupItemDetailsReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "ItemDetailsReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-05-01", end: "2024-05-01" },
categoryType: "ResourceGroup",
orderBy: "LatestMonthEmissions",
sortDirection: "Desc",
pageSize: 100,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsResourceGroupItemDetailsReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new ItemDetailsQueryFilter(
new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-05-01"), DateTimeOffset.Parse("2024-05-01")),
new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" },
new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 },
CarbonEmissionCategoryType.ResourceGroup,
CarbonEmissionQueryOrderByColumn.LatestMonthEmissions,
CarbonEmissionQuerySortDirection.Desc,
100);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "ResourceGroupItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup1",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup1",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "ResourceGroup"
},
{
"dataType": "ResourceGroupItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup2",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup2",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "ResourceGroup"
},
{
"dataType": "ResourceGroupItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup3",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup3",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "ResourceGroup"
},
{
"dataType": "ResourceGroupItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup4",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup4",
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"categoryType": "ResourceGroup"
},
{
"dataType": "ResourceGroupItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup5",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup5",
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"categoryType": "ResourceGroup"
}
]
}
QueryCarbonEmission ResourceType item details Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "ItemDetailsReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-05-01",
"end": "2024-05-01"
},
"categoryType": "ResourceType",
"orderBy": "LatestMonthEmissions",
"sortDirection": "Desc",
"pageSize": 100
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.ItemDetailsQueryFilter;
import com.azure.resourcemanager.carbonoptimization.models.OrderByColumnEnum;
import com.azure.resourcemanager.carbonoptimization.models.SortDirectionEnum;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsResourceTypeItemDetailsReport.json
*/
/**
* Sample code: QueryCarbonEmission ResourceType item details Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionResourceTypeItemDetailsReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(new ItemDetailsQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-05-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.RESOURCE_TYPE).withOrderBy(OrderByColumnEnum.LATEST_MONTH_EMISSIONS)
.withSortDirection(SortDirectionEnum.DESC).withPageSize(100), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_resource_type_item_details_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "ResourceType",
"dateRange": {"end": "2024-05-01", "start": "2024-05-01"},
"orderBy": "LatestMonthEmissions",
"pageSize": 100,
"reportType": "ItemDetailsReport",
"sortDirection": "Desc",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsResourceTypeItemDetailsReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsResourceTypeItemDetailsReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionResourceTypeItemDetailsReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.ItemDetailsQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumItemDetailsReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
OrderBy: to.Ptr(armcarbonoptimization.OrderByColumnEnumLatestMonthEmissions),
SortDirection: to.Ptr(armcarbonoptimization.SortDirectionEnumDesc),
PageSize: to.Ptr[int32](100),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.storage/storageaccounts"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// },
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.compute/disks"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// },
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.sql/servers"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// },
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.keyvault/vaults"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// },
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.compute/virtualmachines"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsResourceTypeItemDetailsReport.json
*/
async function queryCarbonEmissionResourceTypeItemDetailsReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "ItemDetailsReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-05-01", end: "2024-05-01" },
categoryType: "ResourceType",
orderBy: "LatestMonthEmissions",
sortDirection: "Desc",
pageSize: 100,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsResourceTypeItemDetailsReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new ItemDetailsQueryFilter(
new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-05-01"), DateTimeOffset.Parse("2024-05-01")),
new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" },
new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 },
CarbonEmissionCategoryType.ResourceType,
CarbonEmissionQueryOrderByColumn.LatestMonthEmissions,
CarbonEmissionQuerySortDirection.Desc,
100);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.storage/storageaccounts",
"categoryType": "ResourceType"
},
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.compute/disks",
"categoryType": "ResourceType"
},
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.sql/servers",
"categoryType": "ResourceType"
},
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.keyvault/vaults",
"categoryType": "ResourceType"
},
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.compute/virtualmachines",
"categoryType": "ResourceType"
}
]
}
QueryCarbonEmission Subscriptions item details Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "ItemDetailsReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-05-01",
"end": "2024-05-01"
},
"categoryType": "Subscription",
"orderBy": "LatestMonthEmissions",
"sortDirection": "Desc",
"pageSize": 100
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.ItemDetailsQueryFilter;
import com.azure.resourcemanager.carbonoptimization.models.OrderByColumnEnum;
import com.azure.resourcemanager.carbonoptimization.models.SortDirectionEnum;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsSubscriptionItemDetailsReportReport.json
*/
/**
* Sample code: QueryCarbonEmission Subscriptions item details Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionSubscriptionsItemDetailsReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(new ItemDetailsQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-05-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.SUBSCRIPTION).withOrderBy(OrderByColumnEnum.LATEST_MONTH_EMISSIONS)
.withSortDirection(SortDirectionEnum.DESC).withPageSize(100), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_subscription_item_details_report_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "Subscription",
"dateRange": {"end": "2024-05-01", "start": "2024-05-01"},
"orderBy": "LatestMonthEmissions",
"pageSize": 100,
"reportType": "ItemDetailsReport",
"sortDirection": "Desc",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsSubscriptionItemDetailsReportReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsSubscriptionItemDetailsReportReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionSubscriptionsItemDetailsReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.ItemDetailsQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumItemDetailsReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
OrderBy: to.Ptr(armcarbonoptimization.OrderByColumnEnumLatestMonthEmissions),
SortDirection: to.Ptr(armcarbonoptimization.SortDirectionEnumDesc),
PageSize: to.Ptr[int32](100),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// },
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000001"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// },
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000002"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// },
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000003"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// },
// &armcarbonoptimization.CarbonEmissionItemDetailData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumItemDetailsData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000004"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsSubscriptionItemDetailsReportReport.json
*/
async function queryCarbonEmissionSubscriptionsItemDetailsReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "ItemDetailsReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-05-01", end: "2024-05-01" },
categoryType: "Subscription",
orderBy: "LatestMonthEmissions",
sortDirection: "Desc",
pageSize: 100,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsSubscriptionItemDetailsReportReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new ItemDetailsQueryFilter(
new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-05-01"), DateTimeOffset.Parse("2024-05-01")),
new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" },
new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 },
CarbonEmissionCategoryType.Subscription,
CarbonEmissionQueryOrderByColumn.LatestMonthEmissions,
CarbonEmissionQuerySortDirection.Desc,
100);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000000",
"categoryType": "Subscription"
},
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000001",
"categoryType": "Subscription"
},
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000002",
"categoryType": "Subscription"
},
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000003",
"categoryType": "Subscription"
},
{
"dataType": "ItemDetailsData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000004",
"categoryType": "Subscription"
}
]
}
QueryCarbonEmission Top N Locations monthly Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "TopItemsMonthlySummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-03-01",
"end": "2024-05-01"
},
"categoryType": "Location",
"topItems": 2
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.TopItemsMonthlySummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNLocationItemsMonthlyReport.json
*/
/**
* Sample code: QueryCarbonEmission Top N Locations monthly Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionTopNLocationsMonthlyReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(new TopItemsMonthlySummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-03-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.LOCATION).withTopItems(2), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_top_nlocation_items_monthly_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "Location",
"dateRange": {"end": "2024-05-01", "start": "2024-03-01"},
"reportType": "TopItemsMonthlySummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
"topItems": 2,
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNLocationItemsMonthlyReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNLocationItemsMonthlyReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionTopNLocationsMonthlyReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.TopItemsMonthlySummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumTopItemsMonthlySummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-03-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
TopItems: to.Ptr[int32](2),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("east us"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// Date: to.Ptr("2024-05-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("east us"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// Date: to.Ptr("2024-04-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("east us"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// Date: to.Ptr("2024-03-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("west us"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// Date: to.Ptr("2024-05-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("west us"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// Date: to.Ptr("2024-04-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("west us"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// Date: to.Ptr("2024-03-01"),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNLocationItemsMonthlyReport.json
*/
async function queryCarbonEmissionTopNLocationsMonthlyReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "TopItemsMonthlySummaryReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-03-01", end: "2024-05-01" },
categoryType: "Location",
topItems: 2,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNLocationItemsMonthlyReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new TopItemsMonthlySummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-03-01"), DateTimeOffset.Parse("2024-05-01")), new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 }, CarbonEmissionCategoryType.Location, 2);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "east us",
"categoryType": "Location",
"date": "2024-05-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "east us",
"categoryType": "Location",
"date": "2024-04-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "east us",
"categoryType": "Location",
"date": "2024-03-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "west us",
"categoryType": "Location",
"date": "2024-05-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "west us",
"categoryType": "Location",
"date": "2024-04-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "west us",
"categoryType": "Location",
"date": "2024-03-01"
}
]
}
QueryCarbonEmission Top N Locations Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "TopItemsSummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-05-01",
"end": "2024-05-01"
},
"categoryType": "Location",
"topItems": 5
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.TopItemsSummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNLocationItemsReport.json
*/
/**
* Sample code: QueryCarbonEmission Top N Locations Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionTopNLocationsReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(new TopItemsSummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-05-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.LOCATION).withTopItems(5), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_top_nlocation_items_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "Location",
"dateRange": {"end": "2024-05-01", "start": "2024-05-01"},
"reportType": "TopItemsSummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
"topItems": 5,
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNLocationItemsReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNLocationItemsReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionTopNLocationsReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.TopItemsSummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumTopItemsSummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
TopItems: to.Ptr[int32](5),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("east us"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// },
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("west us"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// },
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("west us 2"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// },
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("west us 3"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// },
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("east us 2"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumLocation),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNLocationItemsReport.json
*/
async function queryCarbonEmissionTopNLocationsReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "TopItemsSummaryReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-05-01", end: "2024-05-01" },
categoryType: "Location",
topItems: 5,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNLocationItemsReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new TopItemsSummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-05-01"), DateTimeOffset.Parse("2024-05-01")), new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 }, CarbonEmissionCategoryType.Location, 5);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "east us",
"categoryType": "Location"
},
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "west us",
"categoryType": "Location"
},
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "west us 2",
"categoryType": "Location"
},
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "west us 3",
"categoryType": "Location"
},
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "east us 2",
"categoryType": "Location"
}
]
}
QueryCarbonEmission Top N resource monthly Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "TopItemsMonthlySummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-03-01",
"end": "2024-05-01"
},
"categoryType": "Resource",
"topItems": 2
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.TopItemsMonthlySummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceItemsMonthlyReport.json
*/
/**
* Sample code: QueryCarbonEmission Top N resource monthly Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionTopNResourceMonthlyReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(new TopItemsMonthlySummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-03-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.RESOURCE).withTopItems(2), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_top_nresource_items_monthly_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "Resource",
"dateRange": {"end": "2024-05-01", "start": "2024-03-01"},
"reportType": "TopItemsMonthlySummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
"topItems": 2,
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceItemsMonthlyReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceItemsMonthlyReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionTopNResourceMonthlyReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.TopItemsMonthlySummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumTopItemsMonthlySummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-03-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
TopItems: to.Ptr[int32](2),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.ResourceCarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName1"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName1"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// Date: to.Ptr("2024-05-01"),
// },
// &armcarbonoptimization.ResourceCarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName1"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName1"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// Date: to.Ptr("2024-04-01"),
// },
// &armcarbonoptimization.ResourceCarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName1"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName1"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// Date: to.Ptr("2024-03-01"),
// },
// &armcarbonoptimization.ResourceCarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName2"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName2"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// Date: to.Ptr("2024-05-01"),
// },
// &armcarbonoptimization.ResourceCarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName2"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName2"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// Date: to.Ptr("2024-04-01"),
// },
// &armcarbonoptimization.ResourceCarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName2"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName2"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// Date: to.Ptr("2024-03-01"),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceItemsMonthlyReport.json
*/
async function queryCarbonEmissionTopNResourceMonthlyReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "TopItemsMonthlySummaryReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-03-01", end: "2024-05-01" },
categoryType: "Resource",
topItems: 2,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceItemsMonthlyReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new TopItemsMonthlySummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-03-01"), DateTimeOffset.Parse("2024-05-01")), new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 }, CarbonEmissionCategoryType.Resource, 2);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "ResourceTopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName1",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName1",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource",
"date": "2024-05-01"
},
{
"dataType": "ResourceTopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName1",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName1",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource",
"date": "2024-04-01"
},
{
"dataType": "ResourceTopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName1",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName1",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource",
"date": "2024-03-01"
},
{
"dataType": "ResourceTopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName2",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName2",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource",
"date": "2024-05-01"
},
{
"dataType": "ResourceTopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName2",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName2",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource",
"date": "2024-04-01"
},
{
"dataType": "ResourceTopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName2",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName2",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource",
"date": "2024-03-01"
}
]
}
QueryCarbonEmission Top N resource Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "TopItemsSummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-05-01",
"end": "2024-05-01"
},
"categoryType": "Resource",
"topItems": 5
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.TopItemsSummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceItemsReport.json
*/
/**
* Sample code: QueryCarbonEmission Top N resource Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionTopNResourceReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(new TopItemsSummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-05-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.RESOURCE).withTopItems(5), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_top_nresource_items_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "Resource",
"dateRange": {"end": "2024-05-01", "start": "2024-05-01"},
"reportType": "TopItemsSummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
"topItems": 5,
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceItemsReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceItemsReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionTopNResourceReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.TopItemsSummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumTopItemsSummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
TopItems: to.Ptr[int32](5),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.ResourceCarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName1"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName1"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// },
// &armcarbonoptimization.ResourceCarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName2"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName2"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// },
// &armcarbonoptimization.ResourceCarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName3"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName3"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// },
// &armcarbonoptimization.ResourceCarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName4"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName4"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// },
// &armcarbonoptimization.ResourceCarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgName5"),
// ResourceGroup: to.Ptr("rgGroup"),
// ResourceID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName5"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResource),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceItemsReport.json
*/
async function queryCarbonEmissionTopNResourceReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "TopItemsSummaryReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-05-01", end: "2024-05-01" },
categoryType: "Resource",
topItems: 5,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceItemsReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new TopItemsSummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-05-01"), DateTimeOffset.Parse("2024-05-01")), new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 }, CarbonEmissionCategoryType.Resource, 5);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "ResourceTopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName1",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName1",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource"
},
{
"dataType": "ResourceTopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName2",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName2",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource"
},
{
"dataType": "ResourceTopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName3",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName3",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "Resource"
},
{
"dataType": "ResourceTopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName4",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName4",
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"categoryType": "Resource"
},
{
"dataType": "ResourceTopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgName5",
"resourceGroup": "rgGroup",
"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup/providers/microsoft.storage/storageaccounts/rgName5",
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"categoryType": "Resource"
}
]
}
QueryCarbonEmission Top N ResourceGroup monthly Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "TopItemsMonthlySummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-03-01",
"end": "2024-05-01"
},
"categoryType": "ResourceGroup",
"topItems": 2
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.TopItemsMonthlySummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceGroupItemsMonthlyReport.json
*/
/**
* Sample code: QueryCarbonEmission Top N ResourceGroup monthly Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionTopNResourceGroupMonthlyReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(
new TopItemsMonthlySummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-03-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.RESOURCE_GROUP).withTopItems(2),
com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_top_nresource_group_items_monthly_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "ResourceGroup",
"dateRange": {"end": "2024-05-01", "start": "2024-03-01"},
"reportType": "TopItemsMonthlySummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
"topItems": 2,
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceGroupItemsMonthlyReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceGroupItemsMonthlyReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionTopNResourceGroupMonthlyReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.TopItemsMonthlySummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumTopItemsMonthlySummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-03-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
TopItems: to.Ptr[int32](2),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.ResourceGroupCarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup1"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup1"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// Date: to.Ptr("2024-05-01"),
// },
// &armcarbonoptimization.ResourceGroupCarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup1"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup1"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// Date: to.Ptr("2024-04-01"),
// },
// &armcarbonoptimization.ResourceGroupCarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup1"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup1"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// Date: to.Ptr("2024-03-01"),
// },
// &armcarbonoptimization.ResourceGroupCarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup2"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup2"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// Date: to.Ptr("2024-05-01"),
// },
// &armcarbonoptimization.ResourceGroupCarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup2"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup2"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// Date: to.Ptr("2024-04-01"),
// },
// &armcarbonoptimization.ResourceGroupCarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup2"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup2"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// Date: to.Ptr("2024-03-01"),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceGroupItemsMonthlyReport.json
*/
async function queryCarbonEmissionTopNResourceGroupMonthlyReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "TopItemsMonthlySummaryReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-03-01", end: "2024-05-01" },
categoryType: "ResourceGroup",
topItems: 2,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceGroupItemsMonthlyReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new TopItemsMonthlySummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-03-01"), DateTimeOffset.Parse("2024-05-01")), new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 }, CarbonEmissionCategoryType.ResourceGroup, 2);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "ResourceGroupTopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup1",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup1",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "ResourceGroup",
"date": "2024-05-01"
},
{
"dataType": "ResourceGroupTopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup1",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup1",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "ResourceGroup",
"date": "2024-04-01"
},
{
"dataType": "ResourceGroupTopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup1",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup1",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "ResourceGroup",
"date": "2024-03-01"
},
{
"dataType": "ResourceGroupTopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup2",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup2",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "ResourceGroup",
"date": "2024-05-01"
},
{
"dataType": "ResourceGroupTopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup2",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup2",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "ResourceGroup",
"date": "2024-04-01"
},
{
"dataType": "ResourceGroupTopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup2",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup2",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "ResourceGroup",
"date": "2024-03-01"
}
]
}
QueryCarbonEmission Top N ResourceGroup Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "TopItemsSummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-05-01",
"end": "2024-05-01"
},
"categoryType": "ResourceGroup",
"topItems": 5
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.TopItemsSummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceGroupItemsReport.json
*/
/**
* Sample code: QueryCarbonEmission Top N ResourceGroup Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionTopNResourceGroupReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(
new TopItemsSummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-05-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.RESOURCE_GROUP).withTopItems(5),
com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_top_nresource_group_items_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "ResourceGroup",
"dateRange": {"end": "2024-05-01", "start": "2024-05-01"},
"reportType": "TopItemsSummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
"topItems": 5,
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceGroupItemsReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceGroupItemsReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionTopNResourceGroupReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.TopItemsSummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumTopItemsSummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
TopItems: to.Ptr[int32](5),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.ResourceGroupCarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup1"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup1"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// },
// &armcarbonoptimization.ResourceGroupCarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup2"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup2"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// },
// &armcarbonoptimization.ResourceGroupCarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup3"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup3"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// },
// &armcarbonoptimization.ResourceGroupCarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup4"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup4"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// },
// &armcarbonoptimization.ResourceGroupCarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumResourceGroupTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("rgGroup5"),
// ResourceGroupURL: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup5"),
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceGroup),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceGroupItemsReport.json
*/
async function queryCarbonEmissionTopNResourceGroupReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "TopItemsSummaryReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-05-01", end: "2024-05-01" },
categoryType: "ResourceGroup",
topItems: 5,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceGroupItemsReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new TopItemsSummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-05-01"), DateTimeOffset.Parse("2024-05-01")), new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 }, CarbonEmissionCategoryType.ResourceGroup, 5);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "ResourceGroupTopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup1",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup1",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "ResourceGroup"
},
{
"dataType": "ResourceGroupTopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup2",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup2",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "ResourceGroup"
},
{
"dataType": "ResourceGroupTopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup3",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgGroup3",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"categoryType": "ResourceGroup"
},
{
"dataType": "ResourceGroupTopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup4",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup4",
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"categoryType": "ResourceGroup"
},
{
"dataType": "ResourceGroupTopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "rgGroup5",
"resourceGroupUrl": "/subscriptions/00000000-0000-0000-0000-000000000002/resourceGroups/rgGroup5",
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"categoryType": "ResourceGroup"
}
]
}
QueryCarbonEmission Top N ResourceType monthly Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "TopItemsMonthlySummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-03-01",
"end": "2024-05-01"
},
"categoryType": "ResourceType",
"topItems": 2
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.TopItemsMonthlySummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceTypeItemsMonthlyReport.json
*/
/**
* Sample code: QueryCarbonEmission Top N ResourceType monthly Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionTopNResourceTypeMonthlyReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(
new TopItemsMonthlySummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-03-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.RESOURCE_TYPE).withTopItems(2),
com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_top_nresource_type_items_monthly_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "ResourceType",
"dateRange": {"end": "2024-05-01", "start": "2024-03-01"},
"reportType": "TopItemsMonthlySummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
"topItems": 2,
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceTypeItemsMonthlyReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceTypeItemsMonthlyReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionTopNResourceTypeMonthlyReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.TopItemsMonthlySummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumTopItemsMonthlySummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-03-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
TopItems: to.Ptr[int32](2),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.storage/storageaccounts"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// Date: to.Ptr("2024-05-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.storage/storageaccounts"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// Date: to.Ptr("2024-04-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.storage/storageaccounts"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// Date: to.Ptr("2024-03-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.compute/disks"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// Date: to.Ptr("2024-05-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.compute/disks"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// Date: to.Ptr("2024-04-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.compute/disks"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// Date: to.Ptr("2024-03-01"),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceTypeItemsMonthlyReport.json
*/
async function queryCarbonEmissionTopNResourceTypeMonthlyReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "TopItemsMonthlySummaryReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-03-01", end: "2024-05-01" },
categoryType: "ResourceType",
topItems: 2,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceTypeItemsMonthlyReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new TopItemsMonthlySummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-03-01"), DateTimeOffset.Parse("2024-05-01")), new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 }, CarbonEmissionCategoryType.ResourceType, 2);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.storage/storageaccounts",
"categoryType": "ResourceType",
"date": "2024-05-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.storage/storageaccounts",
"categoryType": "ResourceType",
"date": "2024-04-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.storage/storageaccounts",
"categoryType": "ResourceType",
"date": "2024-03-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.compute/disks",
"categoryType": "ResourceType",
"date": "2024-05-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.compute/disks",
"categoryType": "ResourceType",
"date": "2024-04-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.compute/disks",
"categoryType": "ResourceType",
"date": "2024-03-01"
}
]
}
QueryCarbonEmission Top N ResourceType Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "TopItemsSummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-05-01",
"end": "2024-05-01"
},
"categoryType": "ResourceType",
"topItems": 5
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.TopItemsSummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceTypeItemsReport.json
*/
/**
* Sample code: QueryCarbonEmission Top N ResourceType Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionTopNResourceTypeReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(
new TopItemsSummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-05-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.RESOURCE_TYPE).withTopItems(5),
com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_top_nresource_type_items_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "ResourceType",
"dateRange": {"end": "2024-05-01", "start": "2024-05-01"},
"reportType": "TopItemsSummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
"topItems": 5,
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceTypeItemsReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceTypeItemsReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionTopNResourceTypeReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.TopItemsSummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumTopItemsSummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
TopItems: to.Ptr[int32](5),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.storage/storageaccounts"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// },
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.compute/disks"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// },
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.sql/servers"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// },
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.keyvault/vaults"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// },
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("microsoft.compute/virtualmachines"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumResourceType),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNResourceTypeItemsReport.json
*/
async function queryCarbonEmissionTopNResourceTypeReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "TopItemsSummaryReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-05-01", end: "2024-05-01" },
categoryType: "ResourceType",
topItems: 5,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceTypeItemsReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new TopItemsSummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-05-01"), DateTimeOffset.Parse("2024-05-01")), new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 }, CarbonEmissionCategoryType.ResourceType, 5);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.storage/storageaccounts",
"categoryType": "ResourceType"
},
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.compute/disks",
"categoryType": "ResourceType"
},
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.sql/servers",
"categoryType": "ResourceType"
},
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.keyvault/vaults",
"categoryType": "ResourceType"
},
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "microsoft.compute/virtualmachines",
"categoryType": "ResourceType"
}
]
}
QueryCarbonEmission Top N Subscriptions monthly Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "TopItemsMonthlySummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-03-01",
"end": "2024-05-01"
},
"categoryType": "Subscription",
"topItems": 2
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.TopItemsMonthlySummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNSubscriptionItemsMonthlyReport.json
*/
/**
* Sample code: QueryCarbonEmission Top N Subscriptions monthly Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionTopNSubscriptionsMonthlyReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(new TopItemsMonthlySummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-03-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.SUBSCRIPTION).withTopItems(2), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_top_nsubscription_items_monthly_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "Subscription",
"dateRange": {"end": "2024-05-01", "start": "2024-03-01"},
"reportType": "TopItemsMonthlySummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
"topItems": 2,
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNSubscriptionItemsMonthlyReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNSubscriptionItemsMonthlyReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionTopNSubscriptionsMonthlyReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.TopItemsMonthlySummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumTopItemsMonthlySummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-03-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
TopItems: to.Ptr[int32](2),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// Date: to.Ptr("2024-05-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// Date: to.Ptr("2024-04-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// Date: to.Ptr("2024-03-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000001"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// Date: to.Ptr("2024-05-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000001"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// Date: to.Ptr("2024-04-01"),
// },
// &armcarbonoptimization.CarbonEmissionTopItemMonthlySummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsMonthlySummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000001"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// Date: to.Ptr("2024-03-01"),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNSubscriptionItemsMonthlyReport.json
*/
async function queryCarbonEmissionTopNSubscriptionsMonthlyReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "TopItemsMonthlySummaryReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-03-01", end: "2024-05-01" },
categoryType: "Subscription",
topItems: 2,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNSubscriptionItemsMonthlyReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new TopItemsMonthlySummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-03-01"), DateTimeOffset.Parse("2024-05-01")), new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 }, CarbonEmissionCategoryType.Subscription, 2);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000000",
"categoryType": "Subscription",
"date": "2024-05-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000000",
"categoryType": "Subscription",
"date": "2024-04-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000000",
"categoryType": "Subscription",
"date": "2024-03-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000001",
"categoryType": "Subscription",
"date": "2024-05-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000001",
"categoryType": "Subscription",
"date": "2024-04-01"
},
{
"dataType": "TopItemsMonthlySummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000001",
"categoryType": "Subscription",
"date": "2024-03-01"
}
]
}
QueryCarbonEmission Top N Subscriptions Report
Sample request
POST https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2025-04-01
{
"reportType": "TopItemsSummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008"
],
"carbonScopeList": [
"Scope1",
"Scope3"
],
"dateRange": {
"start": "2024-05-01",
"end": "2024-05-01"
},
"categoryType": "Subscription",
"topItems": 5
}
import com.azure.resourcemanager.carbonoptimization.models.CategoryTypeEnum;
import com.azure.resourcemanager.carbonoptimization.models.DateRange;
import com.azure.resourcemanager.carbonoptimization.models.EmissionScopeEnum;
import com.azure.resourcemanager.carbonoptimization.models.TopItemsSummaryReportQueryFilter;
import java.time.LocalDate;
import java.util.Arrays;
/**
* Samples for CarbonService QueryCarbonEmissionReports.
*/
public final class Main {
/*
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNSubscriptionItemsReport.json
*/
/**
* Sample code: QueryCarbonEmission Top N Subscriptions Report.
*
* @param manager Entry point to CarbonOptimizationManager.
*/
public static void queryCarbonEmissionTopNSubscriptionsReport(
com.azure.resourcemanager.carbonoptimization.CarbonOptimizationManager manager) {
manager.carbonServices()
.queryCarbonEmissionReportsWithResponse(new TopItemsSummaryReportQueryFilter()
.withDateRange(
new DateRange().withStart(LocalDate.parse("2024-05-01")).withEnd(LocalDate.parse("2024-05-01")))
.withSubscriptionList(Arrays.asList("00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008"))
.withCarbonScopeList(Arrays.asList(EmissionScopeEnum.SCOPE1, EmissionScopeEnum.SCOPE3))
.withCategoryType(CategoryTypeEnum.SUBSCRIPTION).withTopItems(5), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from azure.identity import DefaultAzureCredential
from azure.mgmt.carbonoptimization import CarbonOptimizationMgmtClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-carbonoptimization
# USAGE
python query_carbon_emissions_top_nsubscription_items_report.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = CarbonOptimizationMgmtClient(
credential=DefaultAzureCredential(),
)
response = client.carbon_service.query_carbon_emission_reports(
query_parameters={
"carbonScopeList": ["Scope1", "Scope3"],
"categoryType": "Subscription",
"dateRange": {"end": "2024-05-01", "start": "2024-05-01"},
"reportType": "TopItemsSummaryReport",
"subscriptionList": [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
"topItems": 5,
},
)
print(response)
# x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNSubscriptionItemsReport.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armcarbonoptimization_test
import (
"context"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
)
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNSubscriptionItemsReport.json
func ExampleCarbonServiceClient_QueryCarbonEmissionReports_queryCarbonEmissionTopNSubscriptionsReport() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewCarbonServiceClient().QueryCarbonEmissionReports(ctx, &armcarbonoptimization.TopItemsSummaryReportQueryFilter{
ReportType: to.Ptr(armcarbonoptimization.ReportTypeEnumTopItemsSummaryReport),
SubscriptionList: []*string{
to.Ptr("00000000-0000-0000-0000-000000000000"),
to.Ptr("00000000-0000-0000-0000-000000000001,"),
to.Ptr("00000000-0000-0000-0000-000000000002"),
to.Ptr("00000000-0000-0000-0000-000000000003"),
to.Ptr("00000000-0000-0000-0000-000000000004"),
to.Ptr("00000000-0000-0000-0000-000000000005"),
to.Ptr("00000000-0000-0000-0000-000000000006"),
to.Ptr("00000000-0000-0000-0000-000000000007"),
to.Ptr("00000000-0000-0000-0000-000000000008"),
},
CarbonScopeList: []*armcarbonoptimization.EmissionScopeEnum{
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope1),
to.Ptr(armcarbonoptimization.EmissionScopeEnumScope3),
},
DateRange: &armcarbonoptimization.DateRange{
Start: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
End: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-01"); return t }()),
},
CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
TopItems: to.Ptr[int32](5),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armcarbonoptimization.CarbonServiceClientQueryCarbonEmissionReportsResponse{
// CarbonEmissionDataListResult: &armcarbonoptimization.CarbonEmissionDataListResult{
// SubscriptionAccessDecisionList: []*armcarbonoptimization.SubscriptionAccessDecision{
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000000"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000001"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000002"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000003"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000004"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000005"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumAllowed),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000006"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000007"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// },
// {
// SubscriptionID: to.Ptr("00000000-0000-0000-0000-000000000008"),
// Decision: to.Ptr(armcarbonoptimization.AccessDecisionEnumDenied),
// DenialReason: to.Ptr("Carbon Optimization Reader permisison required"),
// },
// },
// Value: []armcarbonoptimization.CarbonEmissionDataClassification{
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000000"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// },
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000001"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// },
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000002"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// },
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000003"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// },
// &armcarbonoptimization.CarbonEmissionTopItemsSummaryData{
// DataType: to.Ptr(armcarbonoptimization.ResponseDataTypeEnumTopItemsSummaryData),
// LatestMonthEmissions: to.Ptr[float64](0.1),
// PreviousMonthEmissions: to.Ptr[float64](0.05),
// MonthOverMonthEmissionsChangeRatio: to.Ptr[float64](1),
// MonthlyEmissionsChangeValue: to.Ptr[float64](0.05),
// ItemName: to.Ptr("00000000-0000-0000-0000-000000000004"),
// CategoryType: to.Ptr(armcarbonoptimization.CategoryTypeEnumSubscription),
// },
// },
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { CarbonOptimizationManagementClient } = require("@azure/arm-carbonoptimization");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to aPI for Carbon Emissions Reports
*
* @summary aPI for Carbon Emissions Reports
* x-ms-original-file: 2025-04-01/queryCarbonEmissionsTopNSubscriptionItemsReport.json
*/
async function queryCarbonEmissionTopNSubscriptionsReport() {
const credential = new DefaultAzureCredential();
const client = new CarbonOptimizationManagementClient(credential);
const result = await client.carbonService.queryCarbonEmissionReports({
reportType: "TopItemsSummaryReport",
subscriptionList: [
"00000000-0000-0000-0000-000000000000",
"00000000-0000-0000-0000-000000000001,",
"00000000-0000-0000-0000-000000000002",
"00000000-0000-0000-0000-000000000003",
"00000000-0000-0000-0000-000000000004",
"00000000-0000-0000-0000-000000000005",
"00000000-0000-0000-0000-000000000006",
"00000000-0000-0000-0000-000000000007",
"00000000-0000-0000-0000-000000000008",
],
carbonScopeList: ["Scope1", "Scope3"],
dateRange: { start: "2024-05-01", end: "2024-05-01" },
categoryType: "Subscription",
topItems: 5,
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using Azure;
using Azure.ResourceManager;
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager.CarbonOptimization.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.CarbonOptimization;
// Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNSubscriptionItemsReport.json
// this example is just showing the usage of "CarbonService_QueryCarbonEmissionReports" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
TenantResource tenantResource = client.GetTenants().GetAllAsync().GetAsyncEnumerator().Current;
// invoke the operation and iterate over the result
CarbonEmissionQueryFilter queryParameters = new TopItemsSummaryReportQueryFilter(new CarbonEmissionQueryDateRange(DateTimeOffset.Parse("2024-05-01"), DateTimeOffset.Parse("2024-05-01")), new string[] { "00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000001,", "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000003", "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005", "00000000-0000-0000-0000-000000000006", "00000000-0000-0000-0000-000000000007", "00000000-0000-0000-0000-000000000008" }, new CarbonEmissionScope[] { CarbonEmissionScope.Scope1, CarbonEmissionScope.Scope3 }, CarbonEmissionCategoryType.Subscription, 5);
var result = await tenantResource.QueryCarbonEmissionReportsAsync(queryParameters);
Console.WriteLine("Succeeded");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"subscriptionAccessDecisionList": [
{
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000001",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000002",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000003",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000004",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000005",
"decision": "Allowed"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000006",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000007",
"decision": "Denied"
},
{
"subscriptionId": "00000000-0000-0000-0000-000000000008",
"decision": "Denied",
"denialReason": "Carbon Optimization Reader permisison required"
}
],
"value": [
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000000",
"categoryType": "Subscription"
},
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000001",
"categoryType": "Subscription"
},
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000002",
"categoryType": "Subscription"
},
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000003",
"categoryType": "Subscription"
},
{
"dataType": "TopItemsSummaryData",
"latestMonthEmissions": 0.1,
"previousMonthEmissions": 0.05,
"monthOverMonthEmissionsChangeRatio": 1,
"monthlyEmissionsChangeValue": 0.05,
"itemName": "00000000-0000-0000-0000-000000000004",
"categoryType": "Subscription"
}
]
}
Definitions
AccessDecisionEnum
Enumeration
Enum for Access Decision
Value |
Description |
Allowed
|
Access allowed
|
Denied
|
Access denied
|
CarbonEmissionDataListResult
Object
List of carbon emission results
Name |
Type |
Description |
skipToken
|
string
|
The pagination token to fetch next page data, it's null or empty if it doesn't have next page data
|
subscriptionAccessDecisionList
|
SubscriptionAccessDecision[]
|
The access decision list for each input subscription
|
value
|
CarbonEmissionData[]:
|
The CarbonEmissionData items on this page
|
CarbonEmissionItemDetailData
Object
Response for detailed carbon emissions
Name |
Type |
Description |
categoryType
|
CategoryTypeEnum
|
Item category, see supported type value defined in CategoryTypeEnum
|
dataType
|
string:
ItemDetailsData
|
The data type of the query result, indicating the format of the returned response.
|
itemName
|
string
|
Item name, it can be resource name, resource type name, location, resource group name or subscriptionId. It depends on category type.
|
latestMonthEmissions
|
number
(double)
|
Total carbon emissions for the specified query parameters, measured in kgCO2E. This value represents total emissions over the specified date range (e.g., March-June).
|
monthOverMonthEmissionsChangeRatio
|
number
(double)
|
The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions - previousMonthEmissions) / previousMonthEmissions.
|
monthlyEmissionsChangeValue
|
number
(double)
|
The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
|
previousMonthEmissions
|
number
(double)
|
Total carbon emissions for the previous month’s date range, which is the same period as the specified date range but shifted left by one month (e.g., if the specified range is March - June, the previous month’s range will be Feb - May). The value is measured in kgCO2E.
|
CarbonEmissionMonthlySummaryData
Object
Response for Monthly Carbon Emissions Summary
Name |
Type |
Description |
carbonIntensity
|
number
(double)
|
Carbon intensity for the specified month, typically in units of kgCO2E per unit of normalized usage
|
dataType
|
string:
MonthlySummaryData
|
The data type of the query result, indicating the format of the returned response.
|
date
|
string
|
The date, representing the month, for which the emissions data is reported, formatted as yyyy-MM-dd (e.g., 2024-03-01)
|
latestMonthEmissions
|
number
(double)
|
Total carbon emissions for the specified query parameters, measured in kgCO2E. This value represents total emissions over the specified date range (e.g., March-June).
|
monthOverMonthEmissionsChangeRatio
|
number
(double)
|
The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions - previousMonthEmissions) / previousMonthEmissions.
|
monthlyEmissionsChangeValue
|
number
(double)
|
The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
|
previousMonthEmissions
|
number
(double)
|
Total carbon emissions for the previous month’s date range, which is the same period as the specified date range but shifted left by one month (e.g., if the specified range is March - June, the previous month’s range will be Feb - May). The value is measured in kgCO2E.
|
CarbonEmissionOverallSummaryData
Object
Response for Overall Carbon Emissions Summary
Name |
Type |
Description |
dataType
|
string:
OverallSummaryData
|
The data type of the query result, indicating the format of the returned response.
|
latestMonthEmissions
|
number
(double)
|
Total carbon emissions for the specified query parameters, measured in kgCO2E. This value represents total emissions over the specified date range (e.g., March-June).
|
monthOverMonthEmissionsChangeRatio
|
number
(double)
|
The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions - previousMonthEmissions) / previousMonthEmissions.
|
monthlyEmissionsChangeValue
|
number
(double)
|
The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
|
previousMonthEmissions
|
number
(double)
|
Total carbon emissions for the previous month’s date range, which is the same period as the specified date range but shifted left by one month (e.g., if the specified range is March - June, the previous month’s range will be Feb - May). The value is measured in kgCO2E.
|
CarbonEmissionTopItemMonthlySummaryData
Object
Response for Top Items Carbon Emissions by Month
Name |
Type |
Description |
categoryType
|
CategoryTypeEnum
|
Item category, see supported type value defined in CategoryTypeEnum
|
dataType
|
string:
TopItemsMonthlySummaryData
|
The data type of the query result, indicating the format of the returned response.
|
date
|
string
|
The date, representing the month, for which the emissions data is reported, formatted as yyyy-MM-dd (e.g., 2024-03-01)
|
itemName
|
string
|
Item name, it can be resource name, resource type name, location, resource group name or subscriptionId. It depends on category type.
|
latestMonthEmissions
|
number
(double)
|
Total carbon emissions for the specified query parameters, measured in kgCO2E. This value represents total emissions over the specified date range (e.g., March-June).
|
monthOverMonthEmissionsChangeRatio
|
number
(double)
|
The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions - previousMonthEmissions) / previousMonthEmissions.
|
monthlyEmissionsChangeValue
|
number
(double)
|
The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
|
previousMonthEmissions
|
number
(double)
|
Total carbon emissions for the previous month’s date range, which is the same period as the specified date range but shifted left by one month (e.g., if the specified range is March - June, the previous month’s range will be Feb - May). The value is measured in kgCO2E.
|
CarbonEmissionTopItemsSummaryData
Object
Response for Top Items by Category Type
Name |
Type |
Description |
categoryType
|
CategoryTypeEnum
|
The category type of the item. This defines which dimension the emissions are aggregated by, and the supported values are defined in CategoryTypeEnum (e.g., Subscription, ResourceGroup, Resource, etc.).
|
dataType
|
string:
TopItemsSummaryData
|
The data type of the query result, indicating the format of the returned response.
|
itemName
|
string
|
The identifier of the item being reported on, which could refer to the resource name, resource type name, location, resource group name, or subscription ID, depending on the specified category type.
|
latestMonthEmissions
|
number
(double)
|
Total carbon emissions for the specified query parameters, measured in kgCO2E. This value represents total emissions over the specified date range (e.g., March-June).
|
monthOverMonthEmissionsChangeRatio
|
number
(double)
|
The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions - previousMonthEmissions) / previousMonthEmissions.
|
monthlyEmissionsChangeValue
|
number
(double)
|
The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
|
previousMonthEmissions
|
number
(double)
|
Total carbon emissions for the previous month’s date range, which is the same period as the specified date range but shifted left by one month (e.g., if the specified range is March - June, the previous month’s range will be Feb - May). The value is measured in kgCO2E.
|
CategoryTypeEnum
Enumeration
Supported category types to be used with QueryParameter. Each type represents a different level of emissions data aggregation.
Value |
Description |
Subscription
|
Emissions aggregated at the subscription level.
|
ResourceGroup
|
Emissions aggregated at the resource group level.
|
Location
|
Emissions aggregated at the location level.
|
Resource
|
Emissions aggregated at the resource level.
|
ResourceType
|
Emissions aggregated at the resource type level.
|
DateRange
Object
Date range to be used with QueryParameter, it should be within 12 months between start and end date. In certain cases, start and end dates must be the same date.
Name |
Type |
Description |
end
|
string
(date)
|
End date parameter in yyyy-MM-01 format. Only the first day of each month is accepted.
|
start
|
string
(date)
|
Start date parameter in yyyy-MM-01 format. Only the first day of each month is accepted.
|
EmissionScopeEnum
Enumeration
Supported carbon emission scopes to be used with QueryParameter, as defined by the GHG Protocol. At least one scope must be specified. The output will return a total of all specified scopes.
Value |
Description |
Scope1
|
Scope1 carbon emission
|
Scope2
|
Scope2 carbon emission
|
Scope3
|
Scope3 carbon emission
|
ErrorAdditionalInfo
Object
The resource management error additional info.
Name |
Type |
Description |
info
|
object
|
The additional info.
|
type
|
string
|
The additional info type.
|
ErrorDetail
Object
The error detail.
Name |
Type |
Description |
additionalInfo
|
ErrorAdditionalInfo[]
|
The error additional info.
|
code
|
string
|
The error code.
|
details
|
ErrorDetail[]
|
The error details.
|
message
|
string
|
The error message.
|
target
|
string
|
The error target.
|
ErrorResponse
Object
Error response
Name |
Type |
Description |
error
|
ErrorDetail
|
The error object.
|
ItemDetailsQueryFilter
Object
Query Parameters for ItemDetailsReport
Name |
Type |
Description |
carbonScopeList
|
EmissionScopeEnum[]
|
List of carbon emission scopes. Required. Accepts one or more values from EmissionScopeEnum (e.g., Scope1, Scope2, Scope3) in list form. The output will include the total emissions for the specified scopes.
|
categoryType
|
CategoryTypeEnum
|
Specifies the category type for detailed emissions data, such as Resource, ResourceGroup, ResourceType, Location, or Subscription. See supported types in CategoryTypeEnum.
|
dateRange
|
DateRange
|
The start and end dates for carbon emissions data. Required. For ItemDetailsReport and TopItemsSummaryReport, only one month of data is supported at a time, so start and end dates should be equal within DateRange (e.g., start: 2024-06-01 and end: 2024-06-01).
|
locationList
|
string[]
|
List of locations(Azure Region Display Name) for carbon emissions data, with each location specified in lowercase (e.g., 'east us'). Optional. You can use the command 'az account list-locations -o table' to find Azure Region Display Names.
|
orderBy
|
OrderByColumnEnum
|
The column name to order the results by. See supported values in OrderByColumnEnum.
|
pageSize
|
integer
(int32)
minimum: 1 maximum: 5000
|
Number of items to return in one request, max value is 5000.
|
reportType
|
string:
ItemDetailsReport
|
The ReportType requested for carbon emissions data. Required. Specifies how data is aggregated and displayed in the output, as explained in the ReportTypeEnum.
|
resourceGroupUrlList
|
string[]
|
List of resource group URLs for carbon emissions data. Optional. Each URL must follow the format '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}', and should be in all lowercase.
|
resourceTypeList
|
string[]
|
List of resource types for carbon emissions data. Optional. Each resource type should be specified in lowercase, following the format 'microsoft.{service}/{resourceType}', e.g., 'microsoft.storage/storageaccounts'.
|
skipToken
|
string
|
Pagination token for fetching the next page of data. This token is nullable and will be returned in the previous response if additional data pages are available.
|
sortDirection
|
SortDirectionEnum
|
Direction for sorting results. See supported values in SortDirectionEnum.
|
subscriptionList
|
string[]
|
List of subscription IDs for which carbon emissions data is requested. Required. Each subscription ID should be in lowercase format. The max length of list is 100.
|
MonthlySummaryReportQueryFilter
Object
Query filter parameter to configure MonthlySummaryReport queries.
Name |
Type |
Description |
carbonScopeList
|
EmissionScopeEnum[]
|
List of carbon emission scopes. Required. Accepts one or more values from EmissionScopeEnum (e.g., Scope1, Scope2, Scope3) in list form. The output will include the total emissions for the specified scopes.
|
dateRange
|
DateRange
|
The start and end dates for carbon emissions data. Required. For ItemDetailsReport and TopItemsSummaryReport, only one month of data is supported at a time, so start and end dates should be equal within DateRange (e.g., start: 2024-06-01 and end: 2024-06-01).
|
locationList
|
string[]
|
List of locations(Azure Region Display Name) for carbon emissions data, with each location specified in lowercase (e.g., 'east us'). Optional. You can use the command 'az account list-locations -o table' to find Azure Region Display Names.
|
reportType
|
string:
MonthlySummaryReport
|
The ReportType requested for carbon emissions data. Required. Specifies how data is aggregated and displayed in the output, as explained in the ReportTypeEnum.
|
resourceGroupUrlList
|
string[]
|
List of resource group URLs for carbon emissions data. Optional. Each URL must follow the format '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}', and should be in all lowercase.
|
resourceTypeList
|
string[]
|
List of resource types for carbon emissions data. Optional. Each resource type should be specified in lowercase, following the format 'microsoft.{service}/{resourceType}', e.g., 'microsoft.storage/storageaccounts'.
|
subscriptionList
|
string[]
|
List of subscription IDs for which carbon emissions data is requested. Required. Each subscription ID should be in lowercase format. The max length of list is 100.
|
OrderByColumnEnum
Enumeration
Sorting is supported for columns in ItemDetailsReport. This object includes the column names that sorting is allowed for. Select one of these supported values
Value |
Description |
ItemName
|
The itemName filed in ItemDetailsReport result, see CarbonEmissionItemDetailData for more information.
|
LatestMonthEmissions
|
The latestMonthEmissions filed in ItemDetailsReport result, see CarbonEmissionItemDetailData for more information.
|
PreviousMonthEmissions
|
The previousMonthEmissions filed in ItemDetailsReport result, see CarbonEmissionItemDetailData for more information.
|
MonthOverMonthEmissionsChangeRatio
|
The monthOverMonthEmissionsChangeRatio filed in ItemDetailsReport result, see CarbonEmissionItemDetailData for more information.
|
MonthlyEmissionsChangeValue
|
The monthlyEmissionsChangeValue filed in ItemDetailsReport result, see CarbonEmissionItemDetailData for more information.
|
ResourceGroup
|
The resourceGroup filed in ResourceCarbonEmissionItemDetailData result, see ResourceCarbonEmissionItemDetailData for more information.
|
OverallSummaryReportQueryFilter
Object
Query filter parameter to configure OverallSummaryReport queries.
Name |
Type |
Description |
carbonScopeList
|
EmissionScopeEnum[]
|
List of carbon emission scopes. Required. Accepts one or more values from EmissionScopeEnum (e.g., Scope1, Scope2, Scope3) in list form. The output will include the total emissions for the specified scopes.
|
dateRange
|
DateRange
|
The start and end dates for carbon emissions data. Required. For ItemDetailsReport and TopItemsSummaryReport, only one month of data is supported at a time, so start and end dates should be equal within DateRange (e.g., start: 2024-06-01 and end: 2024-06-01).
|
locationList
|
string[]
|
List of locations(Azure Region Display Name) for carbon emissions data, with each location specified in lowercase (e.g., 'east us'). Optional. You can use the command 'az account list-locations -o table' to find Azure Region Display Names.
|
reportType
|
string:
OverallSummaryReport
|
The ReportType requested for carbon emissions data. Required. Specifies how data is aggregated and displayed in the output, as explained in the ReportTypeEnum.
|
resourceGroupUrlList
|
string[]
|
List of resource group URLs for carbon emissions data. Optional. Each URL must follow the format '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}', and should be in all lowercase.
|
resourceTypeList
|
string[]
|
List of resource types for carbon emissions data. Optional. Each resource type should be specified in lowercase, following the format 'microsoft.{service}/{resourceType}', e.g., 'microsoft.storage/storageaccounts'.
|
subscriptionList
|
string[]
|
List of subscription IDs for which carbon emissions data is requested. Required. Each subscription ID should be in lowercase format. The max length of list is 100.
|
ReportTypeEnum
Enumeration
Enum for Report Type, specifying different report formats for carbon emissions data. Each report type returns different aggregations of carbon emissions across various categories, date range, emissions scope, and other parameters.
Value |
Description |
OverallSummaryReport
|
Overall summary report provides total carbon emissions for the specified date range and query parameters, as well as comparative values for a high-level overview. This report type can accept different values in the start and end fields within DateRange (e.g., start: 2024-03-01 and end: 2024-06-01).
|
MonthlySummaryReport
|
MonthlySummaryReport provides carbon emissions data by month for the specified query parameters. This report type can accept different values in the start and end fields within DateRange (e.g., start: 2024-03-01 and end: 2024-06-01).
|
TopItemsSummaryReport
|
TopItemsSummaryReport provides the N highest-emitting items for the specified query filters. This report returns data for a single month at a time, so it requires the same values for the start and end fields within DateRange. A maximum of N=10 items can be returned at a time.
|
TopItemsMonthlySummaryReport
|
TopItemsMonthlyReport provides the N highest-emitting items by month for the specified query filter. Returns emissions data for the top N items by month within the given date range. A maximum of N=10 items can be returned at a time.
|
ItemDetailsReport
|
ItemDetailsReport provides a granular list of items based on the specified CategoryType (e.g., Resource, ResourceGroup, ResourceType, Location, or Subscription) for the query filter. This report can be queried for only one month at a time, requiring the same values in the start and end fields within DateRange.
|
ResourceCarbonEmissionItemDetailData
Object
Response for Resource detailed carbon emissions
Name |
Type |
Description |
categoryType
|
CategoryTypeEnum
|
Resource Item category, see supported value defined in CategoryTypeEnum
|
dataType
|
string:
ResourceItemDetailsData
|
The data type of the query result, indicating the format of the returned response.
|
itemName
|
string
|
It's resource name.
|
latestMonthEmissions
|
number
(double)
|
Total carbon emissions for the specified query parameters, measured in kgCO2E. This value represents total emissions over the specified date range (e.g., March-June).
|
location
|
string
|
Resource Location (e.g., 'east us').
|
monthOverMonthEmissionsChangeRatio
|
number
(double)
|
The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions - previousMonthEmissions) / previousMonthEmissions.
|
monthlyEmissionsChangeValue
|
number
(double)
|
The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
|
previousMonthEmissions
|
number
(double)
|
Total carbon emissions for the previous month’s date range, which is the same period as the specified date range but shifted left by one month (e.g., if the specified range is March - June, the previous month’s range will be Feb - May). The value is measured in kgCO2E.
|
resourceGroup
|
string
|
Resource Group
|
resourceId
|
string
|
The fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
|
resourceType
|
string
|
The type of resource, for example: microsoft.storage/storageaccounts
|
subscriptionId
|
string
|
Subscription Id
|
ResourceCarbonEmissionTopItemMonthlySummaryData
Object
Response for top items carbon emissions by month for resource
Name |
Type |
Description |
categoryType
|
CategoryTypeEnum
|
Resource Item category
|
dataType
|
string:
ResourceTopItemsMonthlySummaryData
|
The data type of the query result, indicating the format of the returned response.
|
date
|
string
|
Monthly date string, format is yyyy-MM-dd
|
itemName
|
string
|
The resource name of resource for Resource Category
|
latestMonthEmissions
|
number
(double)
|
Total carbon emissions for the specified query parameters, measured in kgCO2E. This value represents total emissions over the specified date range (e.g., March-June).
|
monthOverMonthEmissionsChangeRatio
|
number
(double)
|
The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions - previousMonthEmissions) / previousMonthEmissions.
|
monthlyEmissionsChangeValue
|
number
(double)
|
The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
|
previousMonthEmissions
|
number
(double)
|
Total carbon emissions for the previous month’s date range, which is the same period as the specified date range but shifted left by one month (e.g., if the specified range is March - June, the previous month’s range will be Feb - May). The value is measured in kgCO2E.
|
resourceGroup
|
string
|
Resource Group
|
resourceId
|
string
|
The fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
|
subscriptionId
|
string
|
Subscription Id
|
ResourceCarbonEmissionTopItemsSummaryData
Object
Response for Top Items For Resource Category
Name |
Type |
Description |
categoryType
|
CategoryTypeEnum
|
The category type of the item. This defines which dimension the emissions are aggregated by, and the supported values are defined in CategoryTypeEnum (e.g., Subscription, ResourceGroup, Resource, etc.).
|
dataType
|
string:
ResourceTopItemsSummaryData
|
The data type of the query result, indicating the format of the returned response.
|
itemName
|
string
|
The resource name of the resource for the Resource Category.
|
latestMonthEmissions
|
number
(double)
|
Total carbon emissions for the specified query parameters, measured in kgCO2E. This value represents total emissions over the specified date range (e.g., March-June).
|
monthOverMonthEmissionsChangeRatio
|
number
(double)
|
The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions - previousMonthEmissions) / previousMonthEmissions.
|
monthlyEmissionsChangeValue
|
number
(double)
|
The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
|
previousMonthEmissions
|
number
(double)
|
Total carbon emissions for the previous month’s date range, which is the same period as the specified date range but shifted left by one month (e.g., if the specified range is March - June, the previous month’s range will be Feb - May). The value is measured in kgCO2E.
|
resourceGroup
|
string
|
Resource group name
|
resourceId
|
string
|
Resource Id, The URI of the resource for the Resource Category. This identifies the resource being reported.
|
subscriptionId
|
string
|
Subscription Id
|
ResourceGroupCarbonEmissionItemDetailData
Object
Response for Resource Group detailed carbon emissions
Name |
Type |
Description |
categoryType
|
CategoryTypeEnum
|
ResourceGroup Item category
|
dataType
|
string:
ResourceGroupItemDetailsData
|
The data type of the query result, indicating the format of the returned response.
|
itemName
|
string
|
It's resource group name
|
latestMonthEmissions
|
number
(double)
|
Total carbon emissions for the specified query parameters, measured in kgCO2E. This value represents total emissions over the specified date range (e.g., March-June).
|
monthOverMonthEmissionsChangeRatio
|
number
(double)
|
The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions - previousMonthEmissions) / previousMonthEmissions.
|
monthlyEmissionsChangeValue
|
number
(double)
|
The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
|
previousMonthEmissions
|
number
(double)
|
Total carbon emissions for the previous month’s date range, which is the same period as the specified date range but shifted left by one month (e.g., if the specified range is March - June, the previous month’s range will be Feb - May). The value is measured in kgCO2E.
|
resourceGroupUrl
|
string
|
Resource Group url, value format is '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}'
|
subscriptionId
|
string
|
Subscription Id
|
ResourceGroupCarbonEmissionTopItemMonthlySummaryData
Object
Response for top items carbon emissions by month for resource group
Name |
Type |
Description |
categoryType
|
CategoryTypeEnum
|
ResourceGroup Item category
|
dataType
|
string:
ResourceGroupTopItemsMonthlySummaryData
|
The data type of the query result, indicating the format of the returned response.
|
date
|
string
|
Monthly date string, format is yyyy-MM-dd
|
itemName
|
string
|
It's resource group name for ResourceGroup category
|
latestMonthEmissions
|
number
(double)
|
Total carbon emissions for the specified query parameters, measured in kgCO2E. This value represents total emissions over the specified date range (e.g., March-June).
|
monthOverMonthEmissionsChangeRatio
|
number
(double)
|
The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions - previousMonthEmissions) / previousMonthEmissions.
|
monthlyEmissionsChangeValue
|
number
(double)
|
The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
|
previousMonthEmissions
|
number
(double)
|
Total carbon emissions for the previous month’s date range, which is the same period as the specified date range but shifted left by one month (e.g., if the specified range is March - June, the previous month’s range will be Feb - May). The value is measured in kgCO2E.
|
resourceGroupUrl
|
string
|
Resource Group url, the format is '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}'
|
subscriptionId
|
string
|
Subscription Id
|
ResourceGroupCarbonEmissionTopItemsSummaryData
Object
Response for Top Items For ResourceGroup
Name |
Type |
Description |
categoryType
|
CategoryTypeEnum
|
ResourceGroup Item category
|
dataType
|
string:
ResourceGroupTopItemsSummaryData
|
The data type of the query result, indicating the format of the returned response.
|
itemName
|
string
|
The resourceGroup name of the resource for ResourceGroup Category
|
latestMonthEmissions
|
number
(double)
|
Total carbon emissions for the specified query parameters, measured in kgCO2E. This value represents total emissions over the specified date range (e.g., March-June).
|
monthOverMonthEmissionsChangeRatio
|
number
(double)
|
The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions - previousMonthEmissions) / previousMonthEmissions.
|
monthlyEmissionsChangeValue
|
number
(double)
|
The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
|
previousMonthEmissions
|
number
(double)
|
Total carbon emissions for the previous month’s date range, which is the same period as the specified date range but shifted left by one month (e.g., if the specified range is March - June, the previous month’s range will be Feb - May). The value is measured in kgCO2E.
|
resourceGroupUrl
|
string
|
Resource Group url, value format is '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}'
|
subscriptionId
|
string
|
Subscription Id
|
ResponseDataTypeEnum
Enumeration
The response data type of Carbon emission data
Value |
Description |
OverallSummaryData
|
The response data type for OverallSummaryReport
|
MonthlySummaryData
|
The response data type for MonthlySummaryReport
|
TopItemsSummaryData
|
The response data type for TopItemsSummaryReport
|
ResourceTopItemsSummaryData
|
The response data type for Resource's TopItemsSummaryReport
|
ResourceGroupTopItemsSummaryData
|
The response data type for ResourceGroup's TopItemsSummaryReport
|
TopItemsMonthlySummaryData
|
The response data type for TopItemsMonthlySummaryReport
|
ResourceTopItemsMonthlySummaryData
|
The response data type for Resource's TopItemsMonthlySummaryReport
|
ResourceGroupTopItemsMonthlySummaryData
|
The response data type for ResourceGroup's TopItemsMonthlySummaryReport
|
ItemDetailsData
|
The response data type for ItemDetailsReport
|
ResourceItemDetailsData
|
The response data type for Resource's ItemDetailsReport
|
ResourceGroupItemDetailsData
|
The response data type for ResourceGroup's ItemDetailsReport
|
SortDirectionEnum
Enumeration
Sorting is supported for columns in ItemDetailsReport. This object define sorting direction.
Value |
Description |
Desc
|
Descending order for query result.
|
Asc
|
Ascending order for query result.
|
SubscriptionAccessDecision
Object
Access Decision for each Subscription
Name |
Type |
Description |
decision
|
AccessDecisionEnum
|
Access decision to subscription
|
denialReason
|
string
|
The reason why access request got denied
|
subscriptionId
|
string
|
Id of Subscription
|
TopItemsMonthlySummaryReportQueryFilter
Object
Query filter parameter to configure TopItemsMonthlySummaryReport queries.
Name |
Type |
Description |
carbonScopeList
|
EmissionScopeEnum[]
|
List of carbon emission scopes. Required. Accepts one or more values from EmissionScopeEnum (e.g., Scope1, Scope2, Scope3) in list form. The output will include the total emissions for the specified scopes.
|
categoryType
|
CategoryTypeEnum
|
Specifies the category type to retrieve top-emitting items, aggregated by month. See supported types in CategoryTypeEnum.
|
dateRange
|
DateRange
|
The start and end dates for carbon emissions data. Required. For ItemDetailsReport and TopItemsSummaryReport, only one month of data is supported at a time, so start and end dates should be equal within DateRange (e.g., start: 2024-06-01 and end: 2024-06-01).
|
locationList
|
string[]
|
List of locations(Azure Region Display Name) for carbon emissions data, with each location specified in lowercase (e.g., 'east us'). Optional. You can use the command 'az account list-locations -o table' to find Azure Region Display Names.
|
reportType
|
string:
TopItemsMonthlySummaryReport
|
The ReportType requested for carbon emissions data. Required. Specifies how data is aggregated and displayed in the output, as explained in the ReportTypeEnum.
|
resourceGroupUrlList
|
string[]
|
List of resource group URLs for carbon emissions data. Optional. Each URL must follow the format '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}', and should be in all lowercase.
|
resourceTypeList
|
string[]
|
List of resource types for carbon emissions data. Optional. Each resource type should be specified in lowercase, following the format 'microsoft.{service}/{resourceType}', e.g., 'microsoft.storage/storageaccounts'.
|
subscriptionList
|
string[]
|
List of subscription IDs for which carbon emissions data is requested. Required. Each subscription ID should be in lowercase format. The max length of list is 100.
|
topItems
|
integer
(int32)
minimum: 1 maximum: 10
|
The number of top items to return, based on emissions. Must be between 1 and 10.
|
TopItemsSummaryReportQueryFilter
Object
Query filter parameter to configure TopItemsSummaryReport queries.
Name |
Type |
Description |
carbonScopeList
|
EmissionScopeEnum[]
|
List of carbon emission scopes. Required. Accepts one or more values from EmissionScopeEnum (e.g., Scope1, Scope2, Scope3) in list form. The output will include the total emissions for the specified scopes.
|
categoryType
|
CategoryTypeEnum
|
Specifies the category type for which to retrieve top-emitting items. See supported values defined in CategoryTypeEnum.
|
dateRange
|
DateRange
|
The start and end dates for carbon emissions data. Required. For ItemDetailsReport and TopItemsSummaryReport, only one month of data is supported at a time, so start and end dates should be equal within DateRange (e.g., start: 2024-06-01 and end: 2024-06-01).
|
locationList
|
string[]
|
List of locations(Azure Region Display Name) for carbon emissions data, with each location specified in lowercase (e.g., 'east us'). Optional. You can use the command 'az account list-locations -o table' to find Azure Region Display Names.
|
reportType
|
string:
TopItemsSummaryReport
|
The ReportType requested for carbon emissions data. Required. Specifies how data is aggregated and displayed in the output, as explained in the ReportTypeEnum.
|
resourceGroupUrlList
|
string[]
|
List of resource group URLs for carbon emissions data. Optional. Each URL must follow the format '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}', and should be in all lowercase.
|
resourceTypeList
|
string[]
|
List of resource types for carbon emissions data. Optional. Each resource type should be specified in lowercase, following the format 'microsoft.{service}/{resourceType}', e.g., 'microsoft.storage/storageaccounts'.
|
subscriptionList
|
string[]
|
List of subscription IDs for which carbon emissions data is requested. Required. Each subscription ID should be in lowercase format. The max length of list is 100.
|
topItems
|
integer
(int32)
minimum: 1 maximum: 10
|
The number of top items to return, based on emissions. This value must be between 1 and 10.
|