armcarbonoptimization

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 29, 2025 License: MIT Imports: 10 Imported by: 0

README

Azure Carbon Optimization Module for Go

The armcarbonoptimization module provides operations for working with Azure Carbon Optimization.

Source code

Getting started

Prerequisites

  • an Azure subscription
  • Go 1.18 or above (You could download and install the latest version of Go from here. It will replace the existing Go on your machine. If you want to install multiple Go versions on the same machine, you could refer this doc.)

Install the package

This project uses Go modules for versioning and dependency management.

Install the Azure Carbon Optimization module:

go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization

Authorization

When creating a client, you will need to provide a credential for authenticating with Azure Carbon Optimization. The azidentity module provides facilities for various ways of authenticating with Azure including client/secret, certificate, managed identity, and more.

cred, err := azidentity.NewDefaultAzureCredential(nil)

For more information on authentication, please see the documentation for azidentity at pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity.

Client Factory

Azure Carbon Optimization module consists of one or more clients. We provide a client factory which could be used to create any client in this module.

clientFactory, err := armcarbonoptimization.NewClientFactory(cred, nil)

You can use ClientOptions in package github.com/Azure/azure-sdk-for-go/sdk/azcore/arm to set endpoint to connect with public and sovereign clouds as well as Azure Stack. For more information, please see the documentation for azcore at pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azcore.

options := arm.ClientOptions {
    ClientOptions: azcore.ClientOptions {
        Cloud: cloud.AzureChina,
    },
}
clientFactory, err := armcarbonoptimization.NewClientFactory(cred, &options)

Clients

A client groups a set of related APIs, providing access to its functionality. Create one or more clients to access the APIs you require using client factory.

client := clientFactory.()

Fakes

The fake package contains types used for constructing in-memory fake servers used in unit tests. This allows writing tests to cover various success/error conditions without the need for connecting to a live service.

Please see https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/samples/fakes for details and examples on how to use fakes.

Provide Feedback

If you encounter bugs or have suggestions, please open an issue and assign the CarbonOptimization label.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information, see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccessDecisionEnum

type AccessDecisionEnum string

AccessDecisionEnum - Enum for Access Decision

const (
	// AccessDecisionEnumAllowed - Access allowed
	AccessDecisionEnumAllowed AccessDecisionEnum = "Allowed"
	// AccessDecisionEnumDenied - Access denied
	AccessDecisionEnumDenied AccessDecisionEnum = "Denied"
)

func PossibleAccessDecisionEnumValues

func PossibleAccessDecisionEnumValues() []AccessDecisionEnum

PossibleAccessDecisionEnumValues returns the possible values for the AccessDecisionEnum const type.

type ActionType

type ActionType string

ActionType - Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs.

const (
	// ActionTypeInternal - Actions are for internal-only APIs.
	ActionTypeInternal ActionType = "Internal"
)

func PossibleActionTypeValues

func PossibleActionTypeValues() []ActionType

PossibleActionTypeValues returns the possible values for the ActionType const type.

type CarbonEmissionData

type CarbonEmissionData struct {
	// REQUIRED; The data type of the query result, indicating the format of the returned response.
	DataType *ResponseDataTypeEnum

	// REQUIRED; 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).
	LatestMonthEmissions *float64

	// REQUIRED; 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.
	PreviousMonthEmissions *float64

	// The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions
	// - previousMonthEmissions) / previousMonthEmissions.
	MonthOverMonthEmissionsChangeRatio *float64

	// The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
	MonthlyEmissionsChangeValue *float64
}

CarbonEmissionData - The basic response for different query report, all query report result will have these information

func (*CarbonEmissionData) GetCarbonEmissionData

func (c *CarbonEmissionData) GetCarbonEmissionData() *CarbonEmissionData

GetCarbonEmissionData implements the CarbonEmissionDataClassification interface for type CarbonEmissionData.

func (CarbonEmissionData) MarshalJSON

func (c CarbonEmissionData) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type CarbonEmissionData.

func (*CarbonEmissionData) UnmarshalJSON

func (c *CarbonEmissionData) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type CarbonEmissionData.

type CarbonEmissionDataAvailableDateRange

type CarbonEmissionDataAvailableDateRange struct {
	// REQUIRED; End date parameter, format is yyyy-MM-dd
	EndDate *string

	// REQUIRED; Start date parameter, format is yyyy-MM-dd
	StartDate *string
}

CarbonEmissionDataAvailableDateRange - Response for available date range of carbon emission data

func (CarbonEmissionDataAvailableDateRange) MarshalJSON

func (c CarbonEmissionDataAvailableDateRange) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type CarbonEmissionDataAvailableDateRange.

func (*CarbonEmissionDataAvailableDateRange) UnmarshalJSON

func (c *CarbonEmissionDataAvailableDateRange) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type CarbonEmissionDataAvailableDateRange.

type CarbonEmissionDataClassification

type CarbonEmissionDataClassification interface {
	// GetCarbonEmissionData returns the CarbonEmissionData content of the underlying type.
	GetCarbonEmissionData() *CarbonEmissionData
}

CarbonEmissionDataClassification provides polymorphic access to related types. Call the interface's GetCarbonEmissionData() method to access the common type. Use a type switch to determine the concrete type. The possible types are: - *CarbonEmissionData, *CarbonEmissionItemDetailData, *CarbonEmissionMonthlySummaryData, *CarbonEmissionOverallSummaryData, - *CarbonEmissionTopItemMonthlySummaryData, *CarbonEmissionTopItemsSummaryData, *ResourceCarbonEmissionItemDetailData, - *ResourceCarbonEmissionTopItemMonthlySummaryData, *ResourceCarbonEmissionTopItemsSummaryData, *ResourceGroupCarbonEmissionItemDetailData, - *ResourceGroupCarbonEmissionTopItemMonthlySummaryData, *ResourceGroupCarbonEmissionTopItemsSummaryData

type CarbonEmissionDataListResult

type CarbonEmissionDataListResult struct {
	// REQUIRED; The CarbonEmissionData items on this page
	Value []CarbonEmissionDataClassification

	// The pagination token to fetch next page data, it's null or empty if it doesn't have next page data
	SkipToken *string

	// The access decision list for each input subscription
	SubscriptionAccessDecisionList []*SubscriptionAccessDecision
}

CarbonEmissionDataListResult - List of carbon emission results

func (CarbonEmissionDataListResult) MarshalJSON

func (c CarbonEmissionDataListResult) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type CarbonEmissionDataListResult.

func (*CarbonEmissionDataListResult) UnmarshalJSON

func (c *CarbonEmissionDataListResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type CarbonEmissionDataListResult.

type CarbonEmissionItemDetailData

type CarbonEmissionItemDetailData struct {
	// REQUIRED; Item category, see supported type value defined in CategoryTypeEnum
	CategoryType *CategoryTypeEnum

	// REQUIRED; Item details data
	DataType *ResponseDataTypeEnum

	// REQUIRED; Item name, it can be resource name, resource type name, location, resource group name or subscriptionId. It depends
	// on category type.
	ItemName *string

	// REQUIRED; 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).
	LatestMonthEmissions *float64

	// REQUIRED; 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.
	PreviousMonthEmissions *float64

	// The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions
	// - previousMonthEmissions) / previousMonthEmissions.
	MonthOverMonthEmissionsChangeRatio *float64

	// The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
	MonthlyEmissionsChangeValue *float64
}

CarbonEmissionItemDetailData - Response for detailed carbon emissions

func (*CarbonEmissionItemDetailData) GetCarbonEmissionData

func (c *CarbonEmissionItemDetailData) GetCarbonEmissionData() *CarbonEmissionData

GetCarbonEmissionData implements the CarbonEmissionDataClassification interface for type CarbonEmissionItemDetailData.

func (CarbonEmissionItemDetailData) MarshalJSON

func (c CarbonEmissionItemDetailData) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type CarbonEmissionItemDetailData.

func (*CarbonEmissionItemDetailData) UnmarshalJSON

func (c *CarbonEmissionItemDetailData) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type CarbonEmissionItemDetailData.

type CarbonEmissionMonthlySummaryData

type CarbonEmissionMonthlySummaryData struct {
	// REQUIRED; Carbon intensity for the specified month, typically in units of kgCO2E per unit of normalized usage
	CarbonIntensity *float64

	// REQUIRED; Monthly summary data
	DataType *ResponseDataTypeEnum

	// REQUIRED; The date, representing the month, for which the emissions data is reported, formatted as yyyy-MM-dd (e.g., 2024-03-01)
	Date *string

	// REQUIRED; 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).
	LatestMonthEmissions *float64

	// REQUIRED; 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.
	PreviousMonthEmissions *float64

	// The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions
	// - previousMonthEmissions) / previousMonthEmissions.
	MonthOverMonthEmissionsChangeRatio *float64

	// The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
	MonthlyEmissionsChangeValue *float64
}

CarbonEmissionMonthlySummaryData - Response for Monthly Carbon Emissions Summary

func (*CarbonEmissionMonthlySummaryData) GetCarbonEmissionData

func (c *CarbonEmissionMonthlySummaryData) GetCarbonEmissionData() *CarbonEmissionData

GetCarbonEmissionData implements the CarbonEmissionDataClassification interface for type CarbonEmissionMonthlySummaryData.

func (CarbonEmissionMonthlySummaryData) MarshalJSON

func (c CarbonEmissionMonthlySummaryData) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type CarbonEmissionMonthlySummaryData.

func (*CarbonEmissionMonthlySummaryData) UnmarshalJSON

func (c *CarbonEmissionMonthlySummaryData) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type CarbonEmissionMonthlySummaryData.

type CarbonEmissionOverallSummaryData

type CarbonEmissionOverallSummaryData struct {
	// REQUIRED; Overall summary data
	DataType *ResponseDataTypeEnum

	// REQUIRED; 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).
	LatestMonthEmissions *float64

	// REQUIRED; 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.
	PreviousMonthEmissions *float64

	// The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions
	// - previousMonthEmissions) / previousMonthEmissions.
	MonthOverMonthEmissionsChangeRatio *float64

	// The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
	MonthlyEmissionsChangeValue *float64
}

CarbonEmissionOverallSummaryData - Response for Overall Carbon Emissions Summary

func (*CarbonEmissionOverallSummaryData) GetCarbonEmissionData

func (c *CarbonEmissionOverallSummaryData) GetCarbonEmissionData() *CarbonEmissionData

GetCarbonEmissionData implements the CarbonEmissionDataClassification interface for type CarbonEmissionOverallSummaryData.

func (CarbonEmissionOverallSummaryData) MarshalJSON

func (c CarbonEmissionOverallSummaryData) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type CarbonEmissionOverallSummaryData.

func (*CarbonEmissionOverallSummaryData) UnmarshalJSON

func (c *CarbonEmissionOverallSummaryData) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type CarbonEmissionOverallSummaryData.

type CarbonEmissionTopItemMonthlySummaryData

type CarbonEmissionTopItemMonthlySummaryData struct {
	// REQUIRED; Item category, see supported type value defined in CategoryTypeEnum
	CategoryType *CategoryTypeEnum

	// REQUIRED; Top items Monthly summary data
	DataType *ResponseDataTypeEnum

	// REQUIRED; The date, representing the month, for which the emissions data is reported, formatted as yyyy-MM-dd (e.g., 2024-03-01)
	Date *string

	// REQUIRED; Item name, it can be resource name, resource type name, location, resource group name or subscriptionId. It depends
	// on category type.
	ItemName *string

	// REQUIRED; 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).
	LatestMonthEmissions *float64

	// REQUIRED; 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.
	PreviousMonthEmissions *float64

	// The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions
	// - previousMonthEmissions) / previousMonthEmissions.
	MonthOverMonthEmissionsChangeRatio *float64

	// The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
	MonthlyEmissionsChangeValue *float64
}

CarbonEmissionTopItemMonthlySummaryData - Response for Top Items Carbon Emissions by Month

func (*CarbonEmissionTopItemMonthlySummaryData) GetCarbonEmissionData

func (c *CarbonEmissionTopItemMonthlySummaryData) GetCarbonEmissionData() *CarbonEmissionData

GetCarbonEmissionData implements the CarbonEmissionDataClassification interface for type CarbonEmissionTopItemMonthlySummaryData.

func (CarbonEmissionTopItemMonthlySummaryData) MarshalJSON

func (c CarbonEmissionTopItemMonthlySummaryData) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type CarbonEmissionTopItemMonthlySummaryData.

func (*CarbonEmissionTopItemMonthlySummaryData) UnmarshalJSON

func (c *CarbonEmissionTopItemMonthlySummaryData) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type CarbonEmissionTopItemMonthlySummaryData.

type CarbonEmissionTopItemsSummaryData

type CarbonEmissionTopItemsSummaryData struct {
	// REQUIRED; 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.).
	CategoryType *CategoryTypeEnum

	// REQUIRED; Top items summary data
	DataType *ResponseDataTypeEnum

	// REQUIRED; 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.
	ItemName *string

	// REQUIRED; 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).
	LatestMonthEmissions *float64

	// REQUIRED; 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.
	PreviousMonthEmissions *float64

	// The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions
	// - previousMonthEmissions) / previousMonthEmissions.
	MonthOverMonthEmissionsChangeRatio *float64

	// The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
	MonthlyEmissionsChangeValue *float64
}

CarbonEmissionTopItemsSummaryData - Response for Top Items by Category Type

func (*CarbonEmissionTopItemsSummaryData) GetCarbonEmissionData

func (c *CarbonEmissionTopItemsSummaryData) GetCarbonEmissionData() *CarbonEmissionData

GetCarbonEmissionData implements the CarbonEmissionDataClassification interface for type CarbonEmissionTopItemsSummaryData.

func (CarbonEmissionTopItemsSummaryData) MarshalJSON

func (c CarbonEmissionTopItemsSummaryData) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type CarbonEmissionTopItemsSummaryData.

func (*CarbonEmissionTopItemsSummaryData) UnmarshalJSON

func (c *CarbonEmissionTopItemsSummaryData) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type CarbonEmissionTopItemsSummaryData.

type CarbonServiceClient

type CarbonServiceClient struct {
	// contains filtered or unexported fields
}

CarbonServiceClient contains the methods for the CarbonService group. Don't use this type directly, use NewCarbonServiceClient() instead.

func NewCarbonServiceClient

func NewCarbonServiceClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*CarbonServiceClient, error)

NewCarbonServiceClient creates a new instance of CarbonServiceClient with the specified values.

  • credential - used to authorize requests. Usually a credential from azidentity.
  • options - pass nil to accept the default values.

func (*CarbonServiceClient) QueryCarbonEmissionDataAvailableDateRange

QueryCarbonEmissionDataAvailableDateRange - API for query carbon emission data available date range If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2025-04-01

  • options - CarbonServiceClientQueryCarbonEmissionDataAvailableDateRangeOptions contains the optional parameters for the CarbonServiceClient.QueryCarbonEmissionDataAvailableDateRange method.
Example

Generated from example definition: 2025-04-01/carbonEmissionsDataAvailableDateRange.json

package main

import (
	"context"
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
	"log"
)

func main() {
	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().QueryCarbonEmissionDataAvailableDateRange(ctx, 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.CarbonServiceClientQueryCarbonEmissionDataAvailableDateRangeResponse{
	// 	CarbonEmissionDataAvailableDateRange: &armcarbonoptimization.CarbonEmissionDataAvailableDateRange{
	// 		StartDate: to.Ptr("2023-01-01"),
	// 		EndDate: to.Ptr("2023-05-01"),
	// 	},
	// }
}
Output:

func (*CarbonServiceClient) QueryCarbonEmissionReports

QueryCarbonEmissionReports - API for Carbon Emissions Reports If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2025-04-01

  • queryParameters - Query parameters
  • options - CarbonServiceClientQueryCarbonEmissionReportsOptions contains the optional parameters for the CarbonServiceClient.QueryCarbonEmissionReports method.
Example (QueryCarbonEmissionLocationItemDetailsReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsLocationItemDetailsReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionMonthlySummaryReportWithOptionalFilterLocationListResourceTypeListResourceGroupUrlList)

Generated from example definition: 2025-04-01/queryCarbonEmissionsMonthlySummaryReportWithOtherOptionalFilter.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionOverallMonthlySummaryReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsMonthlySummaryReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionOverallSummaryReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsOverallSummaryReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionOverallSummaryReportWithOptionalFilterLocationListResourceTypeListResourceGroupUrlList)

Generated from example definition: 2025-04-01/queryCarbonEmissionsOverallSummaryReportWithOtherOptionalFilter.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionResourceGroupItemDetailsReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsResourceGroupItemDetailsReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionResourceItemDetailsReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsResourceItemDetailsReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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=="),
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionResourceItemDetailsReportWithPaginationToken)

Generated from example definition: 2025-04-01/queryCarbonEmissionsResourceItemDetailsReportWithPaginationToken.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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"),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionResourceTypeItemDetailsReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsResourceTypeItemDetailsReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionSubscriptionsItemDetailsReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsSubscriptionItemDetailsReportReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionTopNLocationsMonthlyReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNLocationItemsMonthlyReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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"),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionTopNLocationsReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNLocationItemsReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionTopNResourceGroupMonthlyReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceGroupItemsMonthlyReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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"),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionTopNResourceGroupReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceGroupItemsReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionTopNResourceMonthlyReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceItemsMonthlyReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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"),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionTopNResourceReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceItemsReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionTopNResourceTypeMonthlyReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceTypeItemsMonthlyReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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"),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionTopNResourceTypeReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNResourceTypeItemsReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionTopNSubscriptionsMonthlyReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNSubscriptionItemsMonthlyReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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"),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

Example (QueryCarbonEmissionTopNSubscriptionsReport)

Generated from example definition: 2025-04-01/queryCarbonEmissionsTopNSubscriptionItemsReport.json

package main

import (
	"context"
	"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"
	"log"
	"time"
)

func main() {
	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),
	// 			},
	// 		},
	// 	},
	// }
}
Output:

type CarbonServiceClientQueryCarbonEmissionDataAvailableDateRangeOptions

type CarbonServiceClientQueryCarbonEmissionDataAvailableDateRangeOptions struct {
}

CarbonServiceClientQueryCarbonEmissionDataAvailableDateRangeOptions contains the optional parameters for the CarbonServiceClient.QueryCarbonEmissionDataAvailableDateRange method.

type CarbonServiceClientQueryCarbonEmissionDataAvailableDateRangeResponse

type CarbonServiceClientQueryCarbonEmissionDataAvailableDateRangeResponse struct {
	// Response for available date range of carbon emission data
	CarbonEmissionDataAvailableDateRange
}

CarbonServiceClientQueryCarbonEmissionDataAvailableDateRangeResponse contains the response from method CarbonServiceClient.QueryCarbonEmissionDataAvailableDateRange.

type CarbonServiceClientQueryCarbonEmissionReportsOptions

type CarbonServiceClientQueryCarbonEmissionReportsOptions struct {
}

CarbonServiceClientQueryCarbonEmissionReportsOptions contains the optional parameters for the CarbonServiceClient.QueryCarbonEmissionReports method.

type CarbonServiceClientQueryCarbonEmissionReportsResponse

type CarbonServiceClientQueryCarbonEmissionReportsResponse struct {
	// List of carbon emission results
	CarbonEmissionDataListResult
}

CarbonServiceClientQueryCarbonEmissionReportsResponse contains the response from method CarbonServiceClient.QueryCarbonEmissionReports.

type CategoryTypeEnum

type CategoryTypeEnum string

CategoryTypeEnum - Supported category types to be used with QueryParameter. Each type represents a different level of emissions data aggregation.

const (
	// CategoryTypeEnumLocation - Emissions aggregated at the location level.
	CategoryTypeEnumLocation CategoryTypeEnum = "Location"
	// CategoryTypeEnumResource - Emissions aggregated at the resource level.
	CategoryTypeEnumResource CategoryTypeEnum = "Resource"
	// CategoryTypeEnumResourceGroup - Emissions aggregated at the resource group level.
	CategoryTypeEnumResourceGroup CategoryTypeEnum = "ResourceGroup"
	// CategoryTypeEnumResourceType - Emissions aggregated at the resource type level.
	CategoryTypeEnumResourceType CategoryTypeEnum = "ResourceType"
	// CategoryTypeEnumSubscription - Emissions aggregated at the subscription level.
	CategoryTypeEnumSubscription CategoryTypeEnum = "Subscription"
)

func PossibleCategoryTypeEnumValues

func PossibleCategoryTypeEnumValues() []CategoryTypeEnum

PossibleCategoryTypeEnumValues returns the possible values for the CategoryTypeEnum const type.

type ClientFactory

type ClientFactory struct {
	// contains filtered or unexported fields
}

ClientFactory is a client factory used to create any client in this module. Don't use this type directly, use NewClientFactory instead.

func NewClientFactory

func NewClientFactory(credential azcore.TokenCredential, options *arm.ClientOptions) (*ClientFactory, error)

NewClientFactory creates a new instance of ClientFactory with the specified values. The parameter values will be propagated to any client created from this factory.

  • credential - used to authorize requests. Usually a credential from azidentity.
  • options - pass nil to accept the default values.

func (*ClientFactory) NewCarbonServiceClient

func (c *ClientFactory) NewCarbonServiceClient() *CarbonServiceClient

NewCarbonServiceClient creates a new instance of CarbonServiceClient.

func (*ClientFactory) NewOperationsClient

func (c *ClientFactory) NewOperationsClient() *OperationsClient

NewOperationsClient creates a new instance of OperationsClient.

type DateRange

type DateRange struct {
	// REQUIRED; End date parameter in yyyy-MM-01 format. Only the first day of each month is accepted.
	End *time.Time

	// REQUIRED; Start date parameter in yyyy-MM-01 format. Only the first day of each month is accepted.
	Start *time.Time
}

DateRange - 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.

func (DateRange) MarshalJSON

func (d DateRange) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type DateRange.

func (*DateRange) UnmarshalJSON

func (d *DateRange) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type DateRange.

type EmissionScopeEnum

type EmissionScopeEnum string

EmissionScopeEnum - 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.

const (
	// EmissionScopeEnumScope1 - Scope1 carbon emission
	EmissionScopeEnumScope1 EmissionScopeEnum = "Scope1"
	// EmissionScopeEnumScope2 - Scope2 carbon emission
	EmissionScopeEnumScope2 EmissionScopeEnum = "Scope2"
	// EmissionScopeEnumScope3 - Scope3 carbon emission
	EmissionScopeEnumScope3 EmissionScopeEnum = "Scope3"
)

func PossibleEmissionScopeEnumValues

func PossibleEmissionScopeEnumValues() []EmissionScopeEnum

PossibleEmissionScopeEnumValues returns the possible values for the EmissionScopeEnum const type.

type ItemDetailsQueryFilter

type ItemDetailsQueryFilter struct {
	// REQUIRED; 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.
	CarbonScopeList []*EmissionScopeEnum

	// REQUIRED; Specifies the category type for detailed emissions data, such as Resource, ResourceGroup, ResourceType, Location,
	// or Subscription. See supported types in CategoryTypeEnum.
	CategoryType *CategoryTypeEnum

	// REQUIRED; 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).
	DateRange *DateRange

	// REQUIRED; The column name to order the results by. See supported values in OrderByColumnEnum.
	OrderBy *OrderByColumnEnum

	// REQUIRED; Number of items to return in one request, max value is 5000.
	PageSize *int32

	// CONSTANT; Specifies that the report type is an item details report for granular carbon emissions data. This is a paginated
	// report.
	// Field has constant value ReportTypeEnumItemDetailsReport, any specified value is ignored.
	ReportType *ReportTypeEnum

	// REQUIRED; Direction for sorting results. See supported values in SortDirectionEnum.
	SortDirection *SortDirectionEnum

	// REQUIRED; 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.
	SubscriptionList []*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.
	LocationList []*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.
	ResourceGroupURLList []*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'.
	ResourceTypeList []*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.
	SkipToken *string
}

ItemDetailsQueryFilter - Query Parameters for ItemDetailsReport

func (*ItemDetailsQueryFilter) GetQueryFilter

func (i *ItemDetailsQueryFilter) GetQueryFilter() *QueryFilter

GetQueryFilter implements the QueryFilterClassification interface for type ItemDetailsQueryFilter.

func (ItemDetailsQueryFilter) MarshalJSON

func (i ItemDetailsQueryFilter) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ItemDetailsQueryFilter.

func (*ItemDetailsQueryFilter) UnmarshalJSON

func (i *ItemDetailsQueryFilter) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ItemDetailsQueryFilter.

type MonthlySummaryReportQueryFilter

type MonthlySummaryReportQueryFilter struct {
	// REQUIRED; 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.
	CarbonScopeList []*EmissionScopeEnum

	// REQUIRED; 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).
	DateRange *DateRange

	// CONSTANT; Specifies that the report type is a monthly summary report for carbon emissions data.
	// Field has constant value ReportTypeEnumMonthlySummaryReport, any specified value is ignored.
	ReportType *ReportTypeEnum

	// REQUIRED; 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.
	SubscriptionList []*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.
	LocationList []*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.
	ResourceGroupURLList []*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'.
	ResourceTypeList []*string
}

MonthlySummaryReportQueryFilter - Query filter parameter to configure MonthlySummaryReport queries.

func (*MonthlySummaryReportQueryFilter) GetQueryFilter

func (m *MonthlySummaryReportQueryFilter) GetQueryFilter() *QueryFilter

GetQueryFilter implements the QueryFilterClassification interface for type MonthlySummaryReportQueryFilter.

func (MonthlySummaryReportQueryFilter) MarshalJSON

func (m MonthlySummaryReportQueryFilter) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type MonthlySummaryReportQueryFilter.

func (*MonthlySummaryReportQueryFilter) UnmarshalJSON

func (m *MonthlySummaryReportQueryFilter) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type MonthlySummaryReportQueryFilter.

type Operation

type Operation struct {
	// Localized display information for this particular operation.
	Display *OperationDisplay

	// READ-ONLY; Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs.
	ActionType *ActionType

	// READ-ONLY; Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for Azure
	// Resource Manager/control-plane operations.
	IsDataAction *bool

	// READ-ONLY; The name of the operation, as per Resource-Based Access Control (RBAC). Examples: "Microsoft.Compute/virtualMachines/write",
	// "Microsoft.Compute/virtualMachines/capture/action"
	Name *string

	// READ-ONLY; The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default
	// value is "user,system"
	Origin *Origin
}

Operation - Details of a REST API operation, returned from the Resource Provider Operations API

func (Operation) MarshalJSON

func (o Operation) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Operation.

func (*Operation) UnmarshalJSON

func (o *Operation) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Operation.

type OperationDisplay

type OperationDisplay struct {
	// READ-ONLY; The short, localized friendly description of the operation; suitable for tool tips and detailed views.
	Description *string

	// READ-ONLY; The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual
	// Machine", "Restart Virtual Machine".
	Operation *string

	// READ-ONLY; The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft
	// Compute".
	Provider *string

	// READ-ONLY; The localized friendly name of the resource type related to this operation. E.g. "Virtual Machines" or "Job
	// Schedule Collections".
	Resource *string
}

OperationDisplay - Localized display information for and operation.

func (OperationDisplay) MarshalJSON

func (o OperationDisplay) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type OperationDisplay.

func (*OperationDisplay) UnmarshalJSON

func (o *OperationDisplay) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type OperationDisplay.

type OperationListResult

type OperationListResult struct {
	// REQUIRED; The Operation items on this page
	Value []*Operation

	// The link to the next page of items
	NextLink *string
}

OperationListResult - A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results.

func (OperationListResult) MarshalJSON

func (o OperationListResult) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type OperationListResult.

func (*OperationListResult) UnmarshalJSON

func (o *OperationListResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type OperationListResult.

type OperationsClient

type OperationsClient struct {
	// contains filtered or unexported fields
}

OperationsClient contains the methods for the Operations group. Don't use this type directly, use NewOperationsClient() instead.

func NewOperationsClient

func NewOperationsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*OperationsClient, error)

NewOperationsClient creates a new instance of OperationsClient with the specified values.

  • credential - used to authorize requests. Usually a credential from azidentity.
  • options - pass nil to accept the default values.

func (*OperationsClient) NewListPager

NewListPager - List the operations for the provider

Generated from API version 2025-04-01

  • options - OperationsClientListOptions contains the optional parameters for the OperationsClient.NewListPager method.
Example

Generated from example definition: 2025-04-01/listOperations.json

package main

import (
	"context"
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/carbonoptimization/armcarbonoptimization"
	"log"
)

func main() {
	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)
	}
	pager := clientFactory.NewOperationsClient().NewListPager(nil)
	for pager.More() {
		page, err := pager.NextPage(ctx)
		if err != nil {
			log.Fatalf("failed to advance page: %v", err)
		}
		for _, v := range page.Value {
			// You could use page here. We use blank identifier for just demo purposes.
			_ = v
		}
		// If the HTTP response code is 200 as defined in example definition, your page structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
		// page = armcarbonoptimization.OperationsClientListResponse{
		// 	OperationListResult: armcarbonoptimization.OperationListResult{
		// 		Value: []*armcarbonoptimization.Operation{
		// 			{
		// 				Name: to.Ptr("Microsoft.Carbon/action"),
		// 				IsDataAction: to.Ptr(false),
		// 				Display: &armcarbonoptimization.OperationDisplay{
		// 					Provider: to.Ptr("Microsoft.Carbon"),
		// 					Resource: to.Ptr("queryCarbonEmissionReport"),
		// 					Operation: to.Ptr("CarbonService_ListCarbonEmissionReports"),
		// 					Description: to.Ptr("Returns carbon emission reports."),
		// 				},
		// 			},
		// 			{
		// 				Name: to.Ptr("Microsoft.Carbon/action"),
		// 				IsDataAction: to.Ptr(false),
		// 				Display: &armcarbonoptimization.OperationDisplay{
		// 					Provider: to.Ptr("Microsoft.Carbon"),
		// 					Resource: to.Ptr("QueryCarbonEmissionDataAvailableDateRange"),
		// 					Operation: to.Ptr("CarbonService_QueryCarbonEmissionDataAvailableDateRange"),
		// 					Description: to.Ptr("Returns carbon emission data available date range."),
		// 				},
		// 			},
		// 		},
		// 	},
		// }
	}
}
Output:

type OperationsClientListOptions

type OperationsClientListOptions struct {
}

OperationsClientListOptions contains the optional parameters for the OperationsClient.NewListPager method.

type OperationsClientListResponse

type OperationsClientListResponse struct {
	// A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results.
	OperationListResult
}

OperationsClientListResponse contains the response from method OperationsClient.NewListPager.

type OrderByColumnEnum

type OrderByColumnEnum string

OrderByColumnEnum - Sorting is supported for columns in ItemDetailsReport. This object includes the column names that sorting is allowed for. Select one of these supported values

const (
	// OrderByColumnEnumItemName - The itemName filed in ItemDetailsReport result, see CarbonEmissionItemDetailData for more information.
	OrderByColumnEnumItemName OrderByColumnEnum = "ItemName"
	// OrderByColumnEnumLatestMonthEmissions - The latestMonthEmissions filed in ItemDetailsReport result, see CarbonEmissionItemDetailData
	// for more information.
	OrderByColumnEnumLatestMonthEmissions OrderByColumnEnum = "LatestMonthEmissions"
	// OrderByColumnEnumMonthOverMonthEmissionsChangeRatio - The monthOverMonthEmissionsChangeRatio filed in ItemDetailsReport
	// result, see CarbonEmissionItemDetailData for more information.
	OrderByColumnEnumMonthOverMonthEmissionsChangeRatio OrderByColumnEnum = "MonthOverMonthEmissionsChangeRatio"
	// OrderByColumnEnumMonthlyEmissionsChangeValue - The monthlyEmissionsChangeValue filed in ItemDetailsReport result, see CarbonEmissionItemDetailData
	// for more information.
	OrderByColumnEnumMonthlyEmissionsChangeValue OrderByColumnEnum = "MonthlyEmissionsChangeValue"
	// OrderByColumnEnumPreviousMonthEmissions - The previousMonthEmissions filed in ItemDetailsReport result, see CarbonEmissionItemDetailData
	// for more information.
	OrderByColumnEnumPreviousMonthEmissions OrderByColumnEnum = "PreviousMonthEmissions"
	// OrderByColumnEnumResourceGroup - The resourceGroup filed in ResourceCarbonEmissionItemDetailData result, see ResourceCarbonEmissionItemDetailData
	// for more information.
	OrderByColumnEnumResourceGroup OrderByColumnEnum = "ResourceGroup"
)

func PossibleOrderByColumnEnumValues

func PossibleOrderByColumnEnumValues() []OrderByColumnEnum

PossibleOrderByColumnEnumValues returns the possible values for the OrderByColumnEnum const type.

type Origin

type Origin string

Origin - The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system"

const (
	// OriginSystem - Indicates the operation is initiated by a system.
	OriginSystem Origin = "system"
	// OriginUser - Indicates the operation is initiated by a user.
	OriginUser Origin = "user"
	// OriginUserSystem - Indicates the operation is initiated by a user or system.
	OriginUserSystem Origin = "user,system"
)

func PossibleOriginValues

func PossibleOriginValues() []Origin

PossibleOriginValues returns the possible values for the Origin const type.

type OverallSummaryReportQueryFilter

type OverallSummaryReportQueryFilter struct {
	// REQUIRED; 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.
	CarbonScopeList []*EmissionScopeEnum

	// REQUIRED; 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).
	DateRange *DateRange

	// CONSTANT; Specifies that the report type is a overall summary report for carbon emissions data.
	// Field has constant value ReportTypeEnumOverallSummaryReport, any specified value is ignored.
	ReportType *ReportTypeEnum

	// REQUIRED; 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.
	SubscriptionList []*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.
	LocationList []*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.
	ResourceGroupURLList []*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'.
	ResourceTypeList []*string
}

OverallSummaryReportQueryFilter - Query filter parameter to configure OverallSummaryReport queries.

func (*OverallSummaryReportQueryFilter) GetQueryFilter

func (o *OverallSummaryReportQueryFilter) GetQueryFilter() *QueryFilter

GetQueryFilter implements the QueryFilterClassification interface for type OverallSummaryReportQueryFilter.

func (OverallSummaryReportQueryFilter) MarshalJSON

func (o OverallSummaryReportQueryFilter) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type OverallSummaryReportQueryFilter.

func (*OverallSummaryReportQueryFilter) UnmarshalJSON

func (o *OverallSummaryReportQueryFilter) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type OverallSummaryReportQueryFilter.

type QueryFilter

type QueryFilter struct {
	// REQUIRED; 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.
	CarbonScopeList []*EmissionScopeEnum

	// REQUIRED; 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).
	DateRange *DateRange

	// REQUIRED; The ReportType requested for carbon emissions data. Required. Specifies how data is aggregated and displayed
	// in the output, as explained in the ReportTypeEnum.
	ReportType *ReportTypeEnum

	// REQUIRED; 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.
	SubscriptionList []*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.
	LocationList []*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.
	ResourceGroupURLList []*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'.
	ResourceTypeList []*string
}

QueryFilter - Shared query filter parameter to configure carbon emissions data queries for all different report type defined in ReportTypeEnum.

func (*QueryFilter) GetQueryFilter

func (q *QueryFilter) GetQueryFilter() *QueryFilter

GetQueryFilter implements the QueryFilterClassification interface for type QueryFilter.

func (QueryFilter) MarshalJSON

func (q QueryFilter) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type QueryFilter.

func (*QueryFilter) UnmarshalJSON

func (q *QueryFilter) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type QueryFilter.

type QueryFilterClassification

type QueryFilterClassification interface {
	// GetQueryFilter returns the QueryFilter content of the underlying type.
	GetQueryFilter() *QueryFilter
}

QueryFilterClassification provides polymorphic access to related types. Call the interface's GetQueryFilter() method to access the common type. Use a type switch to determine the concrete type. The possible types are: - *ItemDetailsQueryFilter, *MonthlySummaryReportQueryFilter, *OverallSummaryReportQueryFilter, *QueryFilter, *TopItemsMonthlySummaryReportQueryFilter, - *TopItemsSummaryReportQueryFilter

type ReportTypeEnum

type ReportTypeEnum string

ReportTypeEnum - 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.

const (
	// ReportTypeEnumItemDetailsReport - 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.
	ReportTypeEnumItemDetailsReport ReportTypeEnum = "ItemDetailsReport"
	// ReportTypeEnumMonthlySummaryReport - 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).
	ReportTypeEnumMonthlySummaryReport ReportTypeEnum = "MonthlySummaryReport"
	// ReportTypeEnumOverallSummaryReport - 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).
	ReportTypeEnumOverallSummaryReport ReportTypeEnum = "OverallSummaryReport"
	// ReportTypeEnumTopItemsMonthlySummaryReport - 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.
	ReportTypeEnumTopItemsMonthlySummaryReport ReportTypeEnum = "TopItemsMonthlySummaryReport"
	// ReportTypeEnumTopItemsSummaryReport - 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.
	ReportTypeEnumTopItemsSummaryReport ReportTypeEnum = "TopItemsSummaryReport"
)

func PossibleReportTypeEnumValues

func PossibleReportTypeEnumValues() []ReportTypeEnum

PossibleReportTypeEnumValues returns the possible values for the ReportTypeEnum const type.

type ResourceCarbonEmissionItemDetailData

type ResourceCarbonEmissionItemDetailData struct {
	// REQUIRED; Resource Item category, see supported value defined in CategoryTypeEnum
	CategoryType *CategoryTypeEnum

	// REQUIRED; ResourceGroup's item details data
	DataType *ResponseDataTypeEnum

	// REQUIRED; It's resource name.
	ItemName *string

	// REQUIRED; 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).
	LatestMonthEmissions *float64

	// REQUIRED; 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.
	PreviousMonthEmissions *float64

	// REQUIRED; Resource Group
	ResourceGroup *string

	// REQUIRED; The fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ResourceID *string

	// REQUIRED; Subscription Id
	SubscriptionID *string

	// Resource Location (e.g., 'east us').
	Location *string

	// The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions
	// - previousMonthEmissions) / previousMonthEmissions.
	MonthOverMonthEmissionsChangeRatio *float64

	// The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
	MonthlyEmissionsChangeValue *float64

	// The type of resource, for example: microsoft.storage/storageaccounts
	ResourceType *string
}

ResourceCarbonEmissionItemDetailData - Response for Resource detailed carbon emissions

func (*ResourceCarbonEmissionItemDetailData) GetCarbonEmissionData

func (r *ResourceCarbonEmissionItemDetailData) GetCarbonEmissionData() *CarbonEmissionData

GetCarbonEmissionData implements the CarbonEmissionDataClassification interface for type ResourceCarbonEmissionItemDetailData.

func (ResourceCarbonEmissionItemDetailData) MarshalJSON

func (r ResourceCarbonEmissionItemDetailData) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ResourceCarbonEmissionItemDetailData.

func (*ResourceCarbonEmissionItemDetailData) UnmarshalJSON

func (r *ResourceCarbonEmissionItemDetailData) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ResourceCarbonEmissionItemDetailData.

type ResourceCarbonEmissionTopItemMonthlySummaryData

type ResourceCarbonEmissionTopItemMonthlySummaryData struct {
	// REQUIRED; Resource Item category
	CategoryType *CategoryTypeEnum

	// REQUIRED; Resource top items Monthly summary data
	DataType *ResponseDataTypeEnum

	// REQUIRED; Monthly date string, format is yyyy-MM-dd
	Date *string

	// REQUIRED; The resource name of resource for Resource Category
	ItemName *string

	// REQUIRED; 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).
	LatestMonthEmissions *float64

	// REQUIRED; 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.
	PreviousMonthEmissions *float64

	// REQUIRED; Resource Group
	ResourceGroup *string

	// REQUIRED; The fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ResourceID *string

	// REQUIRED; Subscription Id
	SubscriptionID *string

	// The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions
	// - previousMonthEmissions) / previousMonthEmissions.
	MonthOverMonthEmissionsChangeRatio *float64

	// The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
	MonthlyEmissionsChangeValue *float64
}

ResourceCarbonEmissionTopItemMonthlySummaryData - Response for top items carbon emissions by month for resource

func (*ResourceCarbonEmissionTopItemMonthlySummaryData) GetCarbonEmissionData

GetCarbonEmissionData implements the CarbonEmissionDataClassification interface for type ResourceCarbonEmissionTopItemMonthlySummaryData.

func (ResourceCarbonEmissionTopItemMonthlySummaryData) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type ResourceCarbonEmissionTopItemMonthlySummaryData.

func (*ResourceCarbonEmissionTopItemMonthlySummaryData) UnmarshalJSON

UnmarshalJSON implements the json.Unmarshaller interface for type ResourceCarbonEmissionTopItemMonthlySummaryData.

type ResourceCarbonEmissionTopItemsSummaryData

type ResourceCarbonEmissionTopItemsSummaryData struct {
	// REQUIRED; 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.).
	CategoryType *CategoryTypeEnum

	// REQUIRED; Data for the top items carbon emissions summary report specific to resource category
	DataType *ResponseDataTypeEnum

	// REQUIRED; The resource name of the resource for the Resource Category.
	ItemName *string

	// REQUIRED; 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).
	LatestMonthEmissions *float64

	// REQUIRED; 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.
	PreviousMonthEmissions *float64

	// REQUIRED; Resource group name
	ResourceGroup *string

	// REQUIRED; Resource Id, The URI of the resource for the Resource Category. This identifies the resource being reported.
	ResourceID *string

	// REQUIRED; Subscription Id
	SubscriptionID *string

	// The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions
	// - previousMonthEmissions) / previousMonthEmissions.
	MonthOverMonthEmissionsChangeRatio *float64

	// The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
	MonthlyEmissionsChangeValue *float64
}

ResourceCarbonEmissionTopItemsSummaryData - Response for Top Items For Resource Category

func (*ResourceCarbonEmissionTopItemsSummaryData) GetCarbonEmissionData

GetCarbonEmissionData implements the CarbonEmissionDataClassification interface for type ResourceCarbonEmissionTopItemsSummaryData.

func (ResourceCarbonEmissionTopItemsSummaryData) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type ResourceCarbonEmissionTopItemsSummaryData.

func (*ResourceCarbonEmissionTopItemsSummaryData) UnmarshalJSON

func (r *ResourceCarbonEmissionTopItemsSummaryData) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ResourceCarbonEmissionTopItemsSummaryData.

type ResourceGroupCarbonEmissionItemDetailData

type ResourceGroupCarbonEmissionItemDetailData struct {
	// REQUIRED; ResourceGroup Item category
	CategoryType *CategoryTypeEnum

	// REQUIRED; ResourceGroup item details data
	DataType *ResponseDataTypeEnum

	// REQUIRED; It's resource group name
	ItemName *string

	// REQUIRED; 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).
	LatestMonthEmissions *float64

	// REQUIRED; 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.
	PreviousMonthEmissions *float64

	// REQUIRED; Resource Group url, value format is '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}'
	ResourceGroupURL *string

	// REQUIRED; Subscription Id
	SubscriptionID *string

	// The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions
	// - previousMonthEmissions) / previousMonthEmissions.
	MonthOverMonthEmissionsChangeRatio *float64

	// The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
	MonthlyEmissionsChangeValue *float64
}

ResourceGroupCarbonEmissionItemDetailData - Response for Resource Group detailed carbon emissions

func (*ResourceGroupCarbonEmissionItemDetailData) GetCarbonEmissionData

GetCarbonEmissionData implements the CarbonEmissionDataClassification interface for type ResourceGroupCarbonEmissionItemDetailData.

func (ResourceGroupCarbonEmissionItemDetailData) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type ResourceGroupCarbonEmissionItemDetailData.

func (*ResourceGroupCarbonEmissionItemDetailData) UnmarshalJSON

func (r *ResourceGroupCarbonEmissionItemDetailData) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ResourceGroupCarbonEmissionItemDetailData.

type ResourceGroupCarbonEmissionTopItemMonthlySummaryData

type ResourceGroupCarbonEmissionTopItemMonthlySummaryData struct {
	// REQUIRED; ResourceGroup Item category
	CategoryType *CategoryTypeEnum

	// REQUIRED; Resource group top items Monthly summary data
	DataType *ResponseDataTypeEnum

	// REQUIRED; Monthly date string, format is yyyy-MM-dd
	Date *string

	// REQUIRED; It's resource group name for ResourceGroup category
	ItemName *string

	// REQUIRED; 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).
	LatestMonthEmissions *float64

	// REQUIRED; 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.
	PreviousMonthEmissions *float64

	// REQUIRED; Resource Group url, the format is '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}'
	ResourceGroupURL *string

	// REQUIRED; Subscription Id
	SubscriptionID *string

	// The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions
	// - previousMonthEmissions) / previousMonthEmissions.
	MonthOverMonthEmissionsChangeRatio *float64

	// The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
	MonthlyEmissionsChangeValue *float64
}

ResourceGroupCarbonEmissionTopItemMonthlySummaryData - Response for top items carbon emissions by month for resource group

func (*ResourceGroupCarbonEmissionTopItemMonthlySummaryData) GetCarbonEmissionData

GetCarbonEmissionData implements the CarbonEmissionDataClassification interface for type ResourceGroupCarbonEmissionTopItemMonthlySummaryData.

func (ResourceGroupCarbonEmissionTopItemMonthlySummaryData) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type ResourceGroupCarbonEmissionTopItemMonthlySummaryData.

func (*ResourceGroupCarbonEmissionTopItemMonthlySummaryData) UnmarshalJSON

UnmarshalJSON implements the json.Unmarshaller interface for type ResourceGroupCarbonEmissionTopItemMonthlySummaryData.

type ResourceGroupCarbonEmissionTopItemsSummaryData

type ResourceGroupCarbonEmissionTopItemsSummaryData struct {
	// REQUIRED; ResourceGroup Item category
	CategoryType *CategoryTypeEnum

	// REQUIRED; Resource group top items summary data
	DataType *ResponseDataTypeEnum

	// REQUIRED; The resourceGroup name of the resource for ResourceGroup Category
	ItemName *string

	// REQUIRED; 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).
	LatestMonthEmissions *float64

	// REQUIRED; 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.
	PreviousMonthEmissions *float64

	// REQUIRED; Resource Group url, value format is '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}'
	ResourceGroupURL *string

	// REQUIRED; Subscription Id
	SubscriptionID *string

	// The percentage change in carbon emissions between the current and previous DateRange. This is calculated as: (latestMonthEmissions
	// - previousMonthEmissions) / previousMonthEmissions.
	MonthOverMonthEmissionsChangeRatio *float64

	// The change in carbon emissions between the current and previous period, calculated as: latestMonthEmissions - previousMonthEmissions.
	MonthlyEmissionsChangeValue *float64
}

ResourceGroupCarbonEmissionTopItemsSummaryData - Response for Top Items For ResourceGroup

func (*ResourceGroupCarbonEmissionTopItemsSummaryData) GetCarbonEmissionData

GetCarbonEmissionData implements the CarbonEmissionDataClassification interface for type ResourceGroupCarbonEmissionTopItemsSummaryData.

func (ResourceGroupCarbonEmissionTopItemsSummaryData) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type ResourceGroupCarbonEmissionTopItemsSummaryData.

func (*ResourceGroupCarbonEmissionTopItemsSummaryData) UnmarshalJSON

UnmarshalJSON implements the json.Unmarshaller interface for type ResourceGroupCarbonEmissionTopItemsSummaryData.

type ResponseDataTypeEnum

type ResponseDataTypeEnum string

ResponseDataTypeEnum - The response data type of Carbon emission data

const (
	// ResponseDataTypeEnumItemDetailsData - The response data type for ItemDetailsReport
	ResponseDataTypeEnumItemDetailsData ResponseDataTypeEnum = "ItemDetailsData"
	// ResponseDataTypeEnumMonthlySummaryData - The response data type for MonthlySummaryReport
	ResponseDataTypeEnumMonthlySummaryData ResponseDataTypeEnum = "MonthlySummaryData"
	// ResponseDataTypeEnumOverallSummaryData - The response data type for OverallSummaryReport
	ResponseDataTypeEnumOverallSummaryData ResponseDataTypeEnum = "OverallSummaryData"
	// ResponseDataTypeEnumResourceGroupItemDetailsData - The response data type for ResourceGroup's ItemDetailsReport
	ResponseDataTypeEnumResourceGroupItemDetailsData ResponseDataTypeEnum = "ResourceGroupItemDetailsData"
	// ResponseDataTypeEnumResourceGroupTopItemsMonthlySummaryData - The response data type for ResourceGroup's TopItemsMonthlySummaryReport
	ResponseDataTypeEnumResourceGroupTopItemsMonthlySummaryData ResponseDataTypeEnum = "ResourceGroupTopItemsMonthlySummaryData"
	// ResponseDataTypeEnumResourceGroupTopItemsSummaryData - The response data type for ResourceGroup's TopItemsSummaryReport
	ResponseDataTypeEnumResourceGroupTopItemsSummaryData ResponseDataTypeEnum = "ResourceGroupTopItemsSummaryData"
	// ResponseDataTypeEnumResourceItemDetailsData - The response data type for Resource's ItemDetailsReport
	ResponseDataTypeEnumResourceItemDetailsData ResponseDataTypeEnum = "ResourceItemDetailsData"
	// ResponseDataTypeEnumResourceTopItemsMonthlySummaryData - The response data type for Resource's TopItemsMonthlySummaryReport
	ResponseDataTypeEnumResourceTopItemsMonthlySummaryData ResponseDataTypeEnum = "ResourceTopItemsMonthlySummaryData"
	// ResponseDataTypeEnumResourceTopItemsSummaryData - The response data type for Resource's TopItemsSummaryReport
	ResponseDataTypeEnumResourceTopItemsSummaryData ResponseDataTypeEnum = "ResourceTopItemsSummaryData"
	// ResponseDataTypeEnumTopItemsMonthlySummaryData - The response data type for TopItemsMonthlySummaryReport
	ResponseDataTypeEnumTopItemsMonthlySummaryData ResponseDataTypeEnum = "TopItemsMonthlySummaryData"
	// ResponseDataTypeEnumTopItemsSummaryData - The response data type for TopItemsSummaryReport
	ResponseDataTypeEnumTopItemsSummaryData ResponseDataTypeEnum = "TopItemsSummaryData"
)

func PossibleResponseDataTypeEnumValues

func PossibleResponseDataTypeEnumValues() []ResponseDataTypeEnum

PossibleResponseDataTypeEnumValues returns the possible values for the ResponseDataTypeEnum const type.

type SortDirectionEnum

type SortDirectionEnum string

SortDirectionEnum - Sorting is supported for columns in ItemDetailsReport. This object define sorting direction.

const (
	// SortDirectionEnumAsc - Ascending order for query result.
	SortDirectionEnumAsc SortDirectionEnum = "Asc"
	// SortDirectionEnumDesc - Descending order for query result.
	SortDirectionEnumDesc SortDirectionEnum = "Desc"
)

func PossibleSortDirectionEnumValues

func PossibleSortDirectionEnumValues() []SortDirectionEnum

PossibleSortDirectionEnumValues returns the possible values for the SortDirectionEnum const type.

type SubscriptionAccessDecision

type SubscriptionAccessDecision struct {
	// REQUIRED; Access decision to subscription
	Decision *AccessDecisionEnum

	// REQUIRED; Id of Subscription
	SubscriptionID *string

	// The reason why access request got denied
	DenialReason *string
}

SubscriptionAccessDecision - Access Decision for each Subscription

func (SubscriptionAccessDecision) MarshalJSON

func (s SubscriptionAccessDecision) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type SubscriptionAccessDecision.

func (*SubscriptionAccessDecision) UnmarshalJSON

func (s *SubscriptionAccessDecision) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type SubscriptionAccessDecision.

type TopItemsMonthlySummaryReportQueryFilter

type TopItemsMonthlySummaryReportQueryFilter struct {
	// REQUIRED; 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.
	CarbonScopeList []*EmissionScopeEnum

	// REQUIRED; Specifies the category type to retrieve top-emitting items, aggregated by month. See supported types in CategoryTypeEnum.
	CategoryType *CategoryTypeEnum

	// REQUIRED; 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).
	DateRange *DateRange

	// CONSTANT; Specifies that the report type is a top items monthly summary report for carbon emissions data.
	// Field has constant value ReportTypeEnumTopItemsMonthlySummaryReport, any specified value is ignored.
	ReportType *ReportTypeEnum

	// REQUIRED; 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.
	SubscriptionList []*string

	// REQUIRED; The number of top items to return, based on emissions. Must be between 1 and 10.
	TopItems *int32

	// 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.
	LocationList []*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.
	ResourceGroupURLList []*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'.
	ResourceTypeList []*string
}

TopItemsMonthlySummaryReportQueryFilter - Query filter parameter to configure TopItemsMonthlySummaryReport queries.

func (*TopItemsMonthlySummaryReportQueryFilter) GetQueryFilter

GetQueryFilter implements the QueryFilterClassification interface for type TopItemsMonthlySummaryReportQueryFilter.

func (TopItemsMonthlySummaryReportQueryFilter) MarshalJSON

func (t TopItemsMonthlySummaryReportQueryFilter) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type TopItemsMonthlySummaryReportQueryFilter.

func (*TopItemsMonthlySummaryReportQueryFilter) UnmarshalJSON

func (t *TopItemsMonthlySummaryReportQueryFilter) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type TopItemsMonthlySummaryReportQueryFilter.

type TopItemsSummaryReportQueryFilter

type TopItemsSummaryReportQueryFilter struct {
	// REQUIRED; 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.
	CarbonScopeList []*EmissionScopeEnum

	// REQUIRED; Specifies the category type for which to retrieve top-emitting items. See supported values defined in CategoryTypeEnum.
	CategoryType *CategoryTypeEnum

	// REQUIRED; 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).
	DateRange *DateRange

	// CONSTANT; Specifies that the report type is a top items summary report for carbon emissions data, aggregated by category
	// type.
	// Field has constant value ReportTypeEnumTopItemsSummaryReport, any specified value is ignored.
	ReportType *ReportTypeEnum

	// REQUIRED; 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.
	SubscriptionList []*string

	// REQUIRED; The number of top items to return, based on emissions. This value must be between 1 and 10.
	TopItems *int32

	// 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.
	LocationList []*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.
	ResourceGroupURLList []*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'.
	ResourceTypeList []*string
}

TopItemsSummaryReportQueryFilter - Query filter parameter to configure TopItemsSummaryReport queries.

func (*TopItemsSummaryReportQueryFilter) GetQueryFilter

func (t *TopItemsSummaryReportQueryFilter) GetQueryFilter() *QueryFilter

GetQueryFilter implements the QueryFilterClassification interface for type TopItemsSummaryReportQueryFilter.

func (TopItemsSummaryReportQueryFilter) MarshalJSON

func (t TopItemsSummaryReportQueryFilter) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type TopItemsSummaryReportQueryFilter.

func (*TopItemsSummaryReportQueryFilter) UnmarshalJSON

func (t *TopItemsSummaryReportQueryFilter) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type TopItemsSummaryReportQueryFilter.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL