armbilling

package module
v0.0.0-...-45adee8 Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2024 License: MIT Imports: 15 Imported by: 0

README

Azure Billing Module for Go

The armbilling module provides operations for working with Azure Billing.

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 Billing module:

go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling

Authorization

When creating a client, you will need to provide a credential for authenticating with Azure Billing. 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 Billing 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 := armbilling.NewClientFactory(<subscription ID>, 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 := armbilling.NewClientFactory(<subscription ID>, 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.NewInvoicesClient()

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 Billing 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 AcceptTransferProperties

type AcceptTransferProperties struct {
	// Request parameters to accept transfer.
	ProductDetails []*ProductDetails
}

AcceptTransferProperties - Request parameters to accept transfer.

func (AcceptTransferProperties) MarshalJSON

func (a AcceptTransferProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AcceptTransferProperties.

func (*AcceptTransferProperties) UnmarshalJSON

func (a *AcceptTransferProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AcceptTransferProperties.

type AcceptTransferRequest

type AcceptTransferRequest struct {
	// Request parameters to accept transfer.
	Properties *AcceptTransferProperties
}

AcceptTransferRequest - Request parameters to accept transfer.

func (AcceptTransferRequest) MarshalJSON

func (a AcceptTransferRequest) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AcceptTransferRequest.

func (*AcceptTransferRequest) UnmarshalJSON

func (a *AcceptTransferRequest) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AcceptTransferRequest.

type AcceptanceMode

type AcceptanceMode string

AcceptanceMode - The mode of acceptance for an agreement.

const (
	AcceptanceModeClickToAccept AcceptanceMode = "ClickToAccept"
	AcceptanceModeESignEmbedded AcceptanceMode = "ESignEmbedded"
	AcceptanceModeESignOffline  AcceptanceMode = "ESignOffline"
	AcceptanceModeImplicit      AcceptanceMode = "Implicit"
	AcceptanceModeOffline       AcceptanceMode = "Offline"
	AcceptanceModeOther         AcceptanceMode = "Other"
	AcceptanceModePhysicalSign  AcceptanceMode = "PhysicalSign"
)

func PossibleAcceptanceModeValues

func PossibleAcceptanceModeValues() []AcceptanceMode

PossibleAcceptanceModeValues returns the possible values for the AcceptanceMode const type.

type AccessDecision

type AccessDecision string

AccessDecision - Access Decision, specifies access is allowed or not.

const (
	AccessDecisionAllowed    AccessDecision = "Allowed"
	AccessDecisionNotAllowed AccessDecision = "NotAllowed"
	AccessDecisionOther      AccessDecision = "Other"
)

func PossibleAccessDecisionValues

func PossibleAccessDecisionValues() []AccessDecision

PossibleAccessDecisionValues returns the possible values for the AccessDecision const type.

type Account

type Account struct {
	// A billing account.
	Properties *AccountProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

Account - A billing account.

func (Account) MarshalJSON

func (a Account) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Account.

func (*Account) UnmarshalJSON

func (a *Account) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Account.

type AccountListResult

type AccountListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*Account
}

AccountListResult - A container for a list of resources

func (AccountListResult) MarshalJSON

func (a AccountListResult) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AccountListResult.

func (*AccountListResult) UnmarshalJSON

func (a *AccountListResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AccountListResult.

type AccountPatch

type AccountPatch struct {
	// A billing account.
	Properties *AccountProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

AccountPatch - A billing account.

func (AccountPatch) MarshalJSON

func (a AccountPatch) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AccountPatch.

func (*AccountPatch) UnmarshalJSON

func (a *AccountPatch) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AccountPatch.

type AccountPolicy

type AccountPolicy struct {
	// A policy at billing account scope.
	Properties *AccountPolicyProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

AccountPolicy - A policy at billing account scope.

func (AccountPolicy) MarshalJSON

func (a AccountPolicy) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AccountPolicy.

func (*AccountPolicy) UnmarshalJSON

func (a *AccountPolicy) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AccountPolicy.

type AccountPolicyProperties

type AccountPolicyProperties struct {
	// The policies for Enterprise Agreement enrollments.
	EnterpriseAgreementPolicies *AccountPolicyPropertiesEnterpriseAgreementPolicies

	// The policy that controls whether Azure marketplace purchases are allowed.
	MarketplacePurchases *MarketplacePurchasesPolicy

	// List of all policies defined at the billing scope.
	Policies []*PolicySummary

	// The policy that controls whether Azure reservation purchases are allowed.
	ReservationPurchases *ReservationPurchasesPolicy

	// The policy that controls whether users with Azure savings plan purchase are allowed.
	SavingsPlanPurchases *SavingsPlanPurchasesPolicy

	// READ-ONLY; The provisioning state of the resource during a long-running operation.
	ProvisioningState *ProvisioningState
}

AccountPolicyProperties - A policy at billing account scope.

func (AccountPolicyProperties) MarshalJSON

func (a AccountPolicyProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AccountPolicyProperties.

func (*AccountPolicyProperties) UnmarshalJSON

func (a *AccountPolicyProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AccountPolicyProperties.

type AccountPolicyPropertiesEnterpriseAgreementPolicies

type AccountPolicyPropertiesEnterpriseAgreementPolicies struct {
	// The policy that controls whether account owner can view charges.
	AccountOwnerViewCharges *EnrollmentAccountOwnerViewCharges

	// The state showing the enrollment auth level.
	AuthenticationType *EnrollmentAuthLevelState

	// The policy that controls whether department admin can view charges.
	DepartmentAdminViewCharges *EnrollmentDepartmentAdminViewCharges
}

AccountPolicyPropertiesEnterpriseAgreementPolicies - The policies for Enterprise Agreement enrollments.

func (AccountPolicyPropertiesEnterpriseAgreementPolicies) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type AccountPolicyPropertiesEnterpriseAgreementPolicies.

func (*AccountPolicyPropertiesEnterpriseAgreementPolicies) UnmarshalJSON

UnmarshalJSON implements the json.Unmarshaller interface for type AccountPolicyPropertiesEnterpriseAgreementPolicies.

type AccountProperties

type AccountProperties struct {
	// The billing account name.
	DisplayName *string

	// The properties of an enrollment.
	EnrollmentDetails *AccountPropertiesEnrollmentDetails

	// Indicates whether or not the billing account has any billing profiles.
	HasNoBillingProfiles *bool

	// Indicates whether user has read access to the billing account.
	HasReadAccess *bool

	// Notification email address for legacy account. Available for agreement type Microsoft Online Services Program.
	NotificationEmailAddress *string

	// The tenant that was used to set up the billing account. By default, only users from this tenant can get role assignments
	// on the billing account and all purchases are provisioned in this tenant.
	PrimaryBillingTenantID *string

	// Describes the registration number of the organization linked with the billing account.
	RegistrationNumber *AccountPropertiesRegistrationNumber

	// The address of the individual or organization that is responsible for the billing account.
	SoldTo *AccountPropertiesSoldTo

	// A list of tax identifiers for the billing account.
	TaxIDs []*TaxIdentifier

	// READ-ONLY; The current status of the billing account.
	AccountStatus *AccountStatus

	// READ-ONLY; Reason for the specified billing account status.
	AccountStatusReasonCode *BillingAccountStatusReasonCode

	// READ-ONLY; The tier of the account.
	AccountSubType *AccountSubType

	// READ-ONLY; The type of customer.
	AccountType *AccountType

	// READ-ONLY; The type of agreement.
	AgreementType *AgreementType

	// READ-ONLY; Identifies the billing relationships represented by a billing account. The billing relationship may be between
	// Microsoft, the customer, and/or a third-party.
	BillingRelationshipTypes []*BillingRelationshipType

	// READ-ONLY; The provisioning state of the resource during a long-running operation.
	ProvisioningState *ProvisioningState

	// READ-ONLY; Qualifications for pricing on a billing account. Values may be Commercial, Education, Charity or Government.
	Qualifications []*string
}

AccountProperties - A billing account.

func (AccountProperties) MarshalJSON

func (a AccountProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AccountProperties.

func (*AccountProperties) UnmarshalJSON

func (a *AccountProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AccountProperties.

type AccountPropertiesEnrollmentDetails

type AccountPropertiesEnrollmentDetails struct {
	// The end date of the enrollment.
	EndDate *time.Time

	// The properties of an enrollment which are applicable only for indirect enrollments.
	IndirectRelationshipInfo *EnrollmentDetailsIndirectRelationshipInfo

	// The purchase order number of the enrollment.
	PoNumber *string

	// The start date of the enrollment.
	StartDate *time.Time

	// READ-ONLY; The billing cycle for the enrollment.
	BillingCycle *string

	// READ-ONLY; The channel type of the enrollment.
	Channel *string

	// READ-ONLY; The cloud of the enrollment.
	Cloud *string

	// READ-ONLY; The country code of the enrollment.
	CountryCode *string

	// READ-ONLY; The billing currency for the enrollment.
	Currency *string

	// READ-ONLY; The billing account extension opted by the company.
	ExtendedTermOption *ExtendedTermOption

	// READ-ONLY; The contact who receives invoices of the enrollment.
	InvoiceRecipient *string

	// READ-ONLY; The language for the enrollment.
	Language *string

	// READ-ONLY; Markup status of enrollment, applicable only for indirect enrollments.
	MarkupStatus *MarkupStatus

	// READ-ONLY; The support coverage period for the enrollment.
	SupportCoverage *string

	// READ-ONLY; The support level offer associated with an enrollment.
	SupportLevel *SupportLevel
}

AccountPropertiesEnrollmentDetails - The properties of an enrollment.

func (AccountPropertiesEnrollmentDetails) MarshalJSON

func (a AccountPropertiesEnrollmentDetails) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AccountPropertiesEnrollmentDetails.

func (*AccountPropertiesEnrollmentDetails) UnmarshalJSON

func (a *AccountPropertiesEnrollmentDetails) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AccountPropertiesEnrollmentDetails.

type AccountPropertiesRegistrationNumber

type AccountPropertiesRegistrationNumber struct {
	// The unique identification number of the organization linked with the billing account.
	ID *string

	// READ-ONLY; Identifies if the registration number is required for the billing account.
	Required *bool

	// READ-ONLY; The types of registration number allowed based on the country of the billing account.
	Type []*string
}

AccountPropertiesRegistrationNumber - Describes the registration number of the organization linked with the billing account.

func (AccountPropertiesRegistrationNumber) MarshalJSON

func (a AccountPropertiesRegistrationNumber) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AccountPropertiesRegistrationNumber.

func (*AccountPropertiesRegistrationNumber) UnmarshalJSON

func (a *AccountPropertiesRegistrationNumber) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AccountPropertiesRegistrationNumber.

type AccountPropertiesSoldTo

type AccountPropertiesSoldTo struct {
	// REQUIRED; Address line 1.
	AddressLine1 *string

	// REQUIRED; Country code uses ISO 3166-1 Alpha-2 format.
	Country *string

	// Address line 2.
	AddressLine2 *string

	// Address line 3.
	AddressLine3 *string

	// Address city.
	City *string

	// Company name. Optional for MCA Individual (Pay-as-you-go).
	CompanyName *string

	// Address district.
	District *string

	// Email address.
	Email *string

	// First name. Optional for MCA Enterprise.
	FirstName *string

	// Indicates if the address is incomplete.
	IsValidAddress *bool

	// Last name. Optional for MCA Enterprise.
	LastName *string

	// Middle name.
	MiddleName *string

	// Phone number.
	PhoneNumber *string

	// Postal code.
	PostalCode *string

	// Address region.
	Region *string
}

AccountPropertiesSoldTo - The address of the individual or organization that is responsible for the billing account.

func (AccountPropertiesSoldTo) MarshalJSON

func (a AccountPropertiesSoldTo) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AccountPropertiesSoldTo.

func (*AccountPropertiesSoldTo) UnmarshalJSON

func (a *AccountPropertiesSoldTo) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AccountPropertiesSoldTo.

type AccountStatus

type AccountStatus string

AccountStatus - The current status of the billing account.

const (
	AccountStatusActive      AccountStatus = "Active"
	AccountStatusDeleted     AccountStatus = "Deleted"
	AccountStatusDisabled    AccountStatus = "Disabled"
	AccountStatusExpired     AccountStatus = "Expired"
	AccountStatusExtended    AccountStatus = "Extended"
	AccountStatusNew         AccountStatus = "New"
	AccountStatusOther       AccountStatus = "Other"
	AccountStatusPending     AccountStatus = "Pending"
	AccountStatusTerminated  AccountStatus = "Terminated"
	AccountStatusTransferred AccountStatus = "Transferred"
	AccountStatusUnderReview AccountStatus = "UnderReview"
)

func PossibleAccountStatusValues

func PossibleAccountStatusValues() []AccountStatus

PossibleAccountStatusValues returns the possible values for the AccountStatus const type.

type AccountSubType

type AccountSubType string

AccountSubType - The tier of the account.

const (
	AccountSubTypeEnterprise   AccountSubType = "Enterprise"
	AccountSubTypeIndividual   AccountSubType = "Individual"
	AccountSubTypeNone         AccountSubType = "None"
	AccountSubTypeOther        AccountSubType = "Other"
	AccountSubTypeProfessional AccountSubType = "Professional"
)

func PossibleAccountSubTypeValues

func PossibleAccountSubTypeValues() []AccountSubType

PossibleAccountSubTypeValues returns the possible values for the AccountSubType const type.

type AccountType

type AccountType string

AccountType - The type of customer.

const (
	AccountTypeBusiness       AccountType = "Business"
	AccountTypeClassicPartner AccountType = "ClassicPartner"
	AccountTypeEnterprise     AccountType = "Enterprise"
	AccountTypeIndividual     AccountType = "Individual"
	AccountTypeInternal       AccountType = "Internal"
	AccountTypeOther          AccountType = "Other"
	AccountTypePartner        AccountType = "Partner"
	AccountTypeReseller       AccountType = "Reseller"
	AccountTypeTenant         AccountType = "Tenant"
)

func PossibleAccountTypeValues

func PossibleAccountTypeValues() []AccountType

PossibleAccountTypeValues returns the possible values for the AccountType const type.

type AccountsClient

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

AccountsClient contains the methods for the BillingAccounts group. Don't use this type directly, use NewAccountsClient() instead.

func NewAccountsClient

func NewAccountsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*AccountsClient, error)

NewAccountsClient creates a new instance of AccountsClient with the specified values.

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

func (*AccountsClient) BeginAddPaymentTerms

func (client *AccountsClient) BeginAddPaymentTerms(ctx context.Context, billingAccountName string, parameters []*PaymentTerm, options *AccountsClientBeginAddPaymentTermsOptions) (*runtime.Poller[AccountsClientAddPaymentTermsResponse], error)

BeginAddPaymentTerms - Adds payment terms to all the billing profiles under the billing account. Currently, payment terms can be added only on billing accounts that have Agreement Type as 'Microsoft Customer Agreement' and AccountType as 'Enterprise'. This action needs pre-authorization and only Field Sellers are authorized to add the payment terms and is not a self-serve action. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • parameters - The properties of payment term.
  • options - AccountsClientBeginAddPaymentTermsOptions contains the optional parameters for the AccountsClient.BeginAddPaymentTerms method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/paymentTermsAdd.json

package main

import (
	"context"
	"log"

	"time"

	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewAccountsClient().BeginAddPaymentTerms(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", []*armbilling.PaymentTerm{
		{
			EndDate:   to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-25T22:39:34.260Z"); return t }()),
			StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t }()),
			Term:      to.Ptr("net10"),
		}}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.Account = armbilling.Account{
	// 	Name: to.Ptr("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/010000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.AccountProperties{
	// 		AccountStatus: to.Ptr(armbilling.AccountStatusActive),
	// 		AccountSubType: to.Ptr(armbilling.AccountSubTypeEnterprise),
	// 		AccountType: to.Ptr(armbilling.AccountTypeBusiness),
	// 		AgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftCustomerAgreement),
	// 		DisplayName: to.Ptr("Premier Business Account"),
	// 		HasReadAccess: to.Ptr(true),
	// 		PrimaryBillingTenantID: to.Ptr("20000000-0000-0000-0000-000000000001"),
	// 	},
	// }
}

func (*AccountsClient) BeginCancelPaymentTerms

func (client *AccountsClient) BeginCancelPaymentTerms(ctx context.Context, billingAccountName string, parameters time.Time, options *AccountsClientBeginCancelPaymentTermsOptions) (*runtime.Poller[AccountsClientCancelPaymentTermsResponse], error)

BeginCancelPaymentTerms - Cancels all the payment terms on billing account that falls after the cancellation date in the request. Currently, cancel payment terms is only served by admin actions and is not a self-serve action. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • parameters - Date after which any payment terms that needs to be cancelled.
  • options - AccountsClientBeginCancelPaymentTermsOptions contains the optional parameters for the AccountsClient.BeginCancelPaymentTerms method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/paymentTermsCancel.json

package main

import (
	"context"
	"log"

	"time"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewAccountsClient().BeginCancelPaymentTerms(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t }(), nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.Account = armbilling.Account{
	// 	Name: to.Ptr("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/010000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.AccountProperties{
	// 		AccountStatus: to.Ptr(armbilling.AccountStatusActive),
	// 		AccountSubType: to.Ptr(armbilling.AccountSubTypeEnterprise),
	// 		AccountType: to.Ptr(armbilling.AccountTypeBusiness),
	// 		AgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftCustomerAgreement),
	// 		DisplayName: to.Ptr("Premier Business Account"),
	// 		HasReadAccess: to.Ptr(true),
	// 		PrimaryBillingTenantID: to.Ptr("20000000-0000-0000-0000-000000000001"),
	// 	},
	// }
}

func (*AccountsClient) BeginUpdate

func (client *AccountsClient) BeginUpdate(ctx context.Context, billingAccountName string, parameters AccountPatch, options *AccountsClientBeginUpdateOptions) (*runtime.Poller[AccountsClientUpdateResponse], error)

BeginUpdate - Updates the properties of a billing account. Currently, displayName and address can be updated for billing accounts with agreement type Microsoft Customer Agreement. Currently address and notification email address can be updated for billing accounts with agreement type Microsoft Online Services Agreement. Currently, purchase order number can be edited for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • parameters - A billing account.
  • options - AccountsClientBeginUpdateOptions contains the optional parameters for the AccountsClient.BeginUpdate method.
Example (BillingAccountUpdateWithPoNumber)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingAccountUpdateWithPONumber.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewAccountsClient().BeginUpdate(ctx, "6575495", armbilling.AccountPatch{
		Properties: &armbilling.AccountProperties{
			EnrollmentDetails: &armbilling.AccountPropertiesEnrollmentDetails{
				PoNumber: to.Ptr("poNumber123"),
			},
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.Account = armbilling.Account{
	// 	Name: to.Ptr("6575495"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6575495"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.AccountProperties{
	// 		AccountStatus: to.Ptr(armbilling.AccountStatusActive),
	// 		AccountSubType: to.Ptr(armbilling.AccountSubTypeNone),
	// 		AccountType: to.Ptr(armbilling.AccountTypeEnterprise),
	// 		AgreementType: to.Ptr(armbilling.AgreementTypeEnterpriseAgreement),
	// 		DisplayName: to.Ptr("Enterprise Account"),
	// 		EnrollmentDetails: &armbilling.AccountPropertiesEnrollmentDetails{
	// 			BillingCycle: to.Ptr("Monthly"),
	// 			Channel: to.Ptr("EaDirect"),
	// 			Cloud: to.Ptr("Azure Commercial"),
	// 			CountryCode: to.Ptr("US"),
	// 			Currency: to.Ptr("USD"),
	// 			EndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-05-31T17:32:28.000Z"); return t}()),
	// 			ExtendedTermOption: to.Ptr(armbilling.ExtendedTermOptionOptedOut),
	// 			PoNumber: to.Ptr("poNumber123"),
	// 			StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-05-01T17:32:28.000Z"); return t}()),
	// 			SupportCoverage: to.Ptr("1/26/2021 - 6/30/2021"),
	// 			SupportLevel: to.Ptr(armbilling.SupportLevelStandard),
	// 			Language: to.Ptr("en"),
	// 		},
	// 		HasReadAccess: to.Ptr(true),
	// 		SoldTo: &armbilling.AccountPropertiesSoldTo{
	// 			AddressLine1: to.Ptr("Test Address"),
	// 			AddressLine2: to.Ptr("Test Address"),
	// 			AddressLine3: to.Ptr("Test Address"),
	// 			City: to.Ptr("City"),
	// 			Country: to.Ptr("US"),
	// 			PostalCode: to.Ptr("00000"),
	// 			Region: to.Ptr("WA"),
	// 		},
	// 	},
	// }
}
Example (BillingAccountsUpdate)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingAccountsUpdate.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewAccountsClient().BeginUpdate(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", armbilling.AccountPatch{
		Properties: &armbilling.AccountProperties{
			DisplayName: to.Ptr("Test Account"),
			SoldTo: &armbilling.AccountPropertiesSoldTo{
				AddressLine1: to.Ptr("1 Microsoft Way"),
				City:         to.Ptr("Redmond"),
				CompanyName:  to.Ptr("Contoso"),
				Country:      to.Ptr("US"),
				PostalCode:   to.Ptr("98052-8300"),
				Region:       to.Ptr("WA"),
			},
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.Account = armbilling.Account{
	// 	Name: to.Ptr("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.AccountProperties{
	// 		AccountStatus: to.Ptr(armbilling.AccountStatusActive),
	// 		AccountSubType: to.Ptr(armbilling.AccountSubTypeEnterprise),
	// 		AccountType: to.Ptr(armbilling.AccountTypeBusiness),
	// 		AgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftCustomerAgreement),
	// 		DisplayName: to.Ptr("Premier Business Account"),
	// 		HasReadAccess: to.Ptr(true),
	// 		PrimaryBillingTenantID: to.Ptr("20000000-0000-0000-0000-000000000001"),
	// 		SoldTo: &armbilling.AccountPropertiesSoldTo{
	// 			AddressLine1: to.Ptr("1 Microsoft Way"),
	// 			City: to.Ptr("Redmond"),
	// 			CompanyName: to.Ptr("Contoso"),
	// 			Country: to.Ptr("US"),
	// 			IsValidAddress: to.Ptr(true),
	// 			PostalCode: to.Ptr("98052-8300"),
	// 			Region: to.Ptr("WA"),
	// 		},
	// 	},
	// }
}

func (*AccountsClient) ConfirmTransition

func (client *AccountsClient) ConfirmTransition(ctx context.Context, billingAccountName string, options *AccountsClientConfirmTransitionOptions) (AccountsClientConfirmTransitionResponse, error)

ConfirmTransition - Gets the transition details for a billing account that has transitioned from agreement type Microsoft Online Services Program to agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - AccountsClientConfirmTransitionOptions contains the optional parameters for the AccountsClient.ConfirmTransition method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingAccountsConfirmTransition.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAccountsClient().ConfirmTransition(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", 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.TransitionDetails = armbilling.TransitionDetails{
	// 	AnniversaryDay: to.Ptr[int32](12),
	// 	TransitionDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-05-17T00:00:00.000Z"); return t}()),
	// }
}

func (*AccountsClient) Get

func (client *AccountsClient) Get(ctx context.Context, billingAccountName string, options *AccountsClientGetOptions) (AccountsClientGetResponse, error)

Get - Gets a billing account by its ID. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - AccountsClientGetOptions contains the optional parameters for the AccountsClient.Get method.
Example (BillingAccountWithExpandForPoNumber)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingAccountWithExpandForPONumber.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAccountsClient().Get(ctx, "8608480", 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.Account = armbilling.Account{
	// 	Name: to.Ptr("6564892"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6564892"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.AccountProperties{
	// 		AccountStatus: to.Ptr(armbilling.AccountStatusActive),
	// 		AccountType: to.Ptr(armbilling.AccountTypeEnterprise),
	// 		AgreementType: to.Ptr(armbilling.AgreementTypeEnterpriseAgreement),
	// 		DisplayName: to.Ptr("Enterprise Account"),
	// 		EnrollmentDetails: &armbilling.AccountPropertiesEnrollmentDetails{
	// 			BillingCycle: to.Ptr("Monthly"),
	// 			Channel: to.Ptr("EaDirect"),
	// 			Cloud: to.Ptr("Azure Commercial"),
	// 			CountryCode: to.Ptr("US"),
	// 			Currency: to.Ptr("USD"),
	// 			EndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-05-31T17:32:28.000Z"); return t}()),
	// 			ExtendedTermOption: to.Ptr(armbilling.ExtendedTermOptionOptedOut),
	// 			PoNumber: to.Ptr("poNumber123"),
	// 			StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-05-01T17:32:28.000Z"); return t}()),
	// 			SupportCoverage: to.Ptr("1/26/2021 - 6/30/2021"),
	// 			SupportLevel: to.Ptr(armbilling.SupportLevelStandard),
	// 			Language: to.Ptr("en"),
	// 		},
	// 		HasReadAccess: to.Ptr(true),
	// 	},
	// }
}
Example (BillingAccountWithRegistrationNumberWithDefaultType)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingAccountWithRegistrationNumberWithDefaultType.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAccountsClient().Get(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", 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.Account = armbilling.Account{
	// 	Name: to.Ptr("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.AccountProperties{
	// 		AccountStatus: to.Ptr(armbilling.AccountStatusActive),
	// 		AccountSubType: to.Ptr(armbilling.AccountSubTypeEnterprise),
	// 		AccountType: to.Ptr(armbilling.AccountTypeBusiness),
	// 		AgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftCustomerAgreement),
	// 		DisplayName: to.Ptr("Premier Business Account"),
	// 		HasReadAccess: to.Ptr(true),
	// 		PrimaryBillingTenantID: to.Ptr("20000000-0000-0000-0000-000000000001"),
	// 		RegistrationNumber: &armbilling.AccountPropertiesRegistrationNumber{
	// 			Type: []*string{
	// 				to.Ptr("RegistrationNumber")},
	// 				ID: to.Ptr("RegistrationId"),
	// 			},
	// 		},
	// 	}
}
Example (BillingAccountWithRegistrationNumberWithType)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingAccountWithRegistrationNumberWithType.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAccountsClient().Get(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", 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.Account = armbilling.Account{
	// 	Name: to.Ptr("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.AccountProperties{
	// 		AccountStatus: to.Ptr(armbilling.AccountStatusActive),
	// 		AccountSubType: to.Ptr(armbilling.AccountSubTypeEnterprise),
	// 		AccountType: to.Ptr(armbilling.AccountTypeBusiness),
	// 		AgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftCustomerAgreement),
	// 		DisplayName: to.Ptr("Premier Business Account"),
	// 		HasReadAccess: to.Ptr(true),
	// 		PrimaryBillingTenantID: to.Ptr("20000000-0000-0000-0000-000000000001"),
	// 		RegistrationNumber: &armbilling.AccountPropertiesRegistrationNumber{
	// 			Type: []*string{
	// 				to.Ptr("TIN")},
	// 				ID: to.Ptr("SomeRegistrationId"),
	// 				Required: to.Ptr(true),
	// 			},
	// 		},
	// 	}
}
Example (BillingAccountsGet)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingAccountsGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAccountsClient().Get(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", 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.Account = armbilling.Account{
	// 	Name: to.Ptr("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.AccountProperties{
	// 		AccountStatus: to.Ptr(armbilling.AccountStatusActive),
	// 		AccountSubType: to.Ptr(armbilling.AccountSubTypeEnterprise),
	// 		AccountType: to.Ptr(armbilling.AccountTypeBusiness),
	// 		AgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftCustomerAgreement),
	// 		DisplayName: to.Ptr("Premier Business Account"),
	// 		HasReadAccess: to.Ptr(true),
	// 		PrimaryBillingTenantID: to.Ptr("20000000-0000-0000-0000-000000000001"),
	// 	},
	// }
}
Example (BillingAccountsGetEa)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingAccountsGetEA.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAccountsClient().Get(ctx, "6575495", 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.Account = armbilling.Account{
	// 	Name: to.Ptr("6575495"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6575495"),
	// 	Properties: &armbilling.AccountProperties{
	// 		AgreementType: to.Ptr(armbilling.AgreementTypeEnterpriseAgreement),
	// 		EnrollmentDetails: &armbilling.AccountPropertiesEnrollmentDetails{
	// 			BillingCycle: to.Ptr("Monthly"),
	// 			Channel: to.Ptr("EaDirect"),
	// 			Cloud: to.Ptr("Azure Commercial"),
	// 			CountryCode: to.Ptr("US"),
	// 			Currency: to.Ptr("USD"),
	// 			EndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-05-31T17:32:28.000Z"); return t}()),
	// 			ExtendedTermOption: to.Ptr(armbilling.ExtendedTermOptionOptedOut),
	// 			IndirectRelationshipInfo: &armbilling.EnrollmentDetailsIndirectRelationshipInfo{
	// 				BillingAccountName: to.Ptr("pcn.12345"),
	// 				BillingProfileName: to.Ptr(""),
	// 				DisplayName: to.Ptr("Test partner"),
	// 			},
	// 			InvoiceRecipient: to.Ptr("abc@contoso.com"),
	// 			MarkupStatus: to.Ptr(armbilling.MarkupStatusPublished),
	// 			StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-05-01T17:32:28.000Z"); return t}()),
	// 			SupportCoverage: to.Ptr("1/26/2021 - 6/30/2021"),
	// 			SupportLevel: to.Ptr(armbilling.SupportLevelStandard),
	// 			Language: to.Ptr("en"),
	// 		},
	// 		SoldTo: &armbilling.AccountPropertiesSoldTo{
	// 			AddressLine1: to.Ptr("Test Address"),
	// 			AddressLine2: to.Ptr("Test Address"),
	// 			AddressLine3: to.Ptr("Test Address"),
	// 			City: to.Ptr("City"),
	// 			Country: to.Ptr("US"),
	// 			PostalCode: to.Ptr("00000"),
	// 			Region: to.Ptr("WA"),
	// 		},
	// 	},
	// }
}
Example (BillingAccountsGetWithExpand)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingAccountsGetWithExpand.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAccountsClient().Get(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", 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.Account = armbilling.Account{
	// 	Name: to.Ptr("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.AccountProperties{
	// 		AccountStatus: to.Ptr(armbilling.AccountStatusActive),
	// 		AccountSubType: to.Ptr(armbilling.AccountSubTypeEnterprise),
	// 		AccountType: to.Ptr(armbilling.AccountTypeBusiness),
	// 		AgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftCustomerAgreement),
	// 		DisplayName: to.Ptr("Premier Business Account"),
	// 		HasReadAccess: to.Ptr(true),
	// 		PrimaryBillingTenantID: to.Ptr("20000000-0000-0000-0000-000000000001"),
	// 		SoldTo: &armbilling.AccountPropertiesSoldTo{
	// 			AddressLine1: to.Ptr("1 Microsoft Way"),
	// 			City: to.Ptr("Redmond"),
	// 			CompanyName: to.Ptr("Contoso"),
	// 			Country: to.Ptr("US"),
	// 			IsValidAddress: to.Ptr(true),
	// 			PostalCode: to.Ptr("98052-8300"),
	// 			Region: to.Ptr("WA"),
	// 		},
	// 	},
	// }
}

func (*AccountsClient) NewListInvoiceSectionsByCreateSubscriptionPermissionPager

NewListInvoiceSectionsByCreateSubscriptionPermissionPager - Lists the invoice sections for which the user has permission to create Azure subscriptions. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - AccountsClientListInvoiceSectionsByCreateSubscriptionPermissionOptions contains the optional parameters for the AccountsClient.NewListInvoiceSectionsByCreateSubscriptionPermissionPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoiceSectionsWithCreateSubscriptionPermissionList.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewAccountsClient().NewListInvoiceSectionsByCreateSubscriptionPermissionPager("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.AccountsClientListInvoiceSectionsByCreateSubscriptionPermissionOptions{Filter: 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.InvoiceSectionWithCreateSubPermissionListResult = armbilling.InvoiceSectionWithCreateSubPermissionListResult{
		// 	Value: []*armbilling.InvoiceSectionWithCreateSubPermission{
		// 		{
		// 			BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
		// 			BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 			BillingProfileSpendingLimit: to.Ptr(armbilling.SpendingLimitOn),
		// 			BillingProfileStatus: to.Ptr(armbilling.BillingProfileStatusWarned),
		// 			BillingProfileStatusReasonCode: to.Ptr(armbilling.BillingProfileStatusReasonCodePastDue),
		// 			BillingProfileSystemID: to.Ptr("33000000-0000-0000-0000-000000000000"),
		// 			EnabledAzurePlans: []*armbilling.AzurePlan{
		// 				{
		// 					SKUDescription: to.Ptr("Microsoft Azure Plan"),
		// 					SKUID: to.Ptr("0001"),
		// 				},
		// 				{
		// 					SKUDescription: to.Ptr("Microsoft Azure Plan for DevTest"),
		// 					SKUID: to.Ptr("0002"),
		// 			}},
		// 			InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
		// 			InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
		// 			InvoiceSectionSystemID: to.Ptr("22000000-0000-0000-0000-000000000000"),
		// 	}},
		// }
	}
}

func (*AccountsClient) NewListPager

NewListPager - Lists the billing accounts that a user has access to.

Generated from API version 2024-04-01

  • options - AccountsClientListOptions contains the optional parameters for the AccountsClient.NewListPager method.
Example (BillingAccountForLegacyAccountDetails)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingAccountForLegacyAccountDetails.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewAccountsClient().NewListPager(&armbilling.AccountsClientListOptions{IncludeAll: nil,
		IncludeAllWithoutBillingProfiles: nil,
		IncludeDeleted:                   nil,
		IncludePendingAgreement:          nil,
		IncludeResellee:                  nil,
		LegalOwnerTID:                    nil,
		LegalOwnerOID:                    nil,
		Filter:                           nil,
		Expand:                           nil,
		Top:                              nil,
		Skip:                             nil,
		Search:                           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.AccountListResult = armbilling.AccountListResult{
		// 	Value: []*armbilling.Account{
		// 		{
		// 			Name: to.Ptr("20000000-0000-0000-0000-000000000001"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/20000000-0000-0000-0000-000000000001"),
		// 			Properties: &armbilling.AccountProperties{
		// 				AccountStatus: to.Ptr(armbilling.AccountStatusActive),
		// 				AccountType: to.Ptr(armbilling.AccountTypeIndividual),
		// 				AgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftOnlineServicesProgram),
		// 				DisplayName: to.Ptr("Individual Account 2"),
		// 				HasReadAccess: to.Ptr(true),
		// 				NotificationEmailAddress: to.Ptr("individual@domain.com"),
		// 			},
		// 	}},
		// }
	}
}
Example (BillingAccountsList)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingAccountsList.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewAccountsClient().NewListPager(&armbilling.AccountsClientListOptions{IncludeAll: nil,
		IncludeAllWithoutBillingProfiles: nil,
		IncludeDeleted:                   nil,
		IncludePendingAgreement:          nil,
		IncludeResellee:                  nil,
		LegalOwnerTID:                    nil,
		LegalOwnerOID:                    nil,
		Filter:                           nil,
		Expand:                           nil,
		Top:                              nil,
		Skip:                             nil,
		Search:                           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.AccountListResult = armbilling.AccountListResult{
		// 	Value: []*armbilling.Account{
		// 		{
		// 			Name: to.Ptr("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 			SystemData: &armbilling.SystemData{
		// 				CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
		// 				LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 			},
		// 			Properties: &armbilling.AccountProperties{
		// 				AccountStatus: to.Ptr(armbilling.AccountStatusActive),
		// 				AccountSubType: to.Ptr(armbilling.AccountSubTypeEnterprise),
		// 				AccountType: to.Ptr(armbilling.AccountTypeBusiness),
		// 				AgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftCustomerAgreement),
		// 				DisplayName: to.Ptr("Premier Business Account"),
		// 				HasReadAccess: to.Ptr(true),
		// 				PrimaryBillingTenantID: to.Ptr("20000000-0000-0000-0000-000000000001"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("20000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/20000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 			SystemData: &armbilling.SystemData{
		// 				CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
		// 				LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 			},
		// 			Properties: &armbilling.AccountProperties{
		// 				AccountStatus: to.Ptr(armbilling.AccountStatusActive),
		// 				AccountSubType: to.Ptr(armbilling.AccountSubTypeProfessional),
		// 				AccountType: to.Ptr(armbilling.AccountTypeBusiness),
		// 				AgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftCustomerAgreement),
		// 				DisplayName: to.Ptr("Standard Business Account"),
		// 				HasReadAccess: to.Ptr(true),
		// 				PrimaryBillingTenantID: to.Ptr("20000000-0000-0000-0000-000000000001"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("30000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/30000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 			SystemData: &armbilling.SystemData{
		// 				CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
		// 				LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 			},
		// 			Properties: &armbilling.AccountProperties{
		// 				AccountStatus: to.Ptr(armbilling.AccountStatusActive),
		// 				AccountSubType: to.Ptr(armbilling.AccountSubTypeIndividual),
		// 				AccountType: to.Ptr(armbilling.AccountTypeIndividual),
		// 				AgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftCustomerAgreement),
		// 				DisplayName: to.Ptr("Individual Account"),
		// 				HasReadAccess: to.Ptr(true),
		// 				PrimaryBillingTenantID: to.Ptr("20000000-0000-0000-0000-000000000001"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("40000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/40000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 			SystemData: &armbilling.SystemData{
		// 				CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
		// 				LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 			},
		// 			Properties: &armbilling.AccountProperties{
		// 				AccountStatus: to.Ptr(armbilling.AccountStatusActive),
		// 				AccountSubType: to.Ptr(armbilling.AccountSubTypeEnterprise),
		// 				AccountType: to.Ptr(armbilling.AccountTypeBusiness),
		// 				AgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftPartnerAgreement),
		// 				DisplayName: to.Ptr("Premier Business Account"),
		// 				HasReadAccess: to.Ptr(true),
		// 				PrimaryBillingTenantID: to.Ptr("20000000-0000-0000-0000-000000000001"),
		// 			},
		// 	}},
		// }
	}
}
Example (BillingAccountsListWithExpandForPoNumber)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingAccountsListWithExpandForPONumber.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewAccountsClient().NewListPager(&armbilling.AccountsClientListOptions{IncludeAll: nil,
		IncludeAllWithoutBillingProfiles: nil,
		IncludeDeleted:                   nil,
		IncludePendingAgreement:          nil,
		IncludeResellee:                  nil,
		LegalOwnerTID:                    nil,
		LegalOwnerOID:                    nil,
		Filter:                           nil,
		Expand:                           to.Ptr("soldTo,enrollmentDetails/poNumber"),
		Top:                              nil,
		Skip:                             nil,
		Search:                           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.AccountListResult = armbilling.AccountListResult{
		// 	Value: []*armbilling.Account{
		// 		{
		// 			Name: to.Ptr("6564892"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6564892"),
		// 			SystemData: &armbilling.SystemData{
		// 				CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
		// 				LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 			},
		// 			Properties: &armbilling.AccountProperties{
		// 				AccountStatus: to.Ptr(armbilling.AccountStatusActive),
		// 				AccountSubType: to.Ptr(armbilling.AccountSubTypeNone),
		// 				AccountType: to.Ptr(armbilling.AccountTypeEnterprise),
		// 				AgreementType: to.Ptr(armbilling.AgreementTypeEnterpriseAgreement),
		// 				DisplayName: to.Ptr("Enterprise Account"),
		// 				EnrollmentDetails: &armbilling.AccountPropertiesEnrollmentDetails{
		// 					BillingCycle: to.Ptr("Monthly"),
		// 					Channel: to.Ptr("EaDirect"),
		// 					Cloud: to.Ptr("Azure Commercial"),
		// 					CountryCode: to.Ptr("US"),
		// 					Currency: to.Ptr("USD"),
		// 					EndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-05-31T17:32:28.000Z"); return t}()),
		// 					ExtendedTermOption: to.Ptr(armbilling.ExtendedTermOptionOptedOut),
		// 					PoNumber: to.Ptr("poNumber123"),
		// 					StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-05-01T17:32:28.000Z"); return t}()),
		// 					SupportCoverage: to.Ptr("1/26/2021 - 6/30/2021"),
		// 					SupportLevel: to.Ptr(armbilling.SupportLevelStandard),
		// 					Language: to.Ptr("en"),
		// 				},
		// 				HasReadAccess: to.Ptr(true),
		// 				SoldTo: &armbilling.AccountPropertiesSoldTo{
		// 					AddressLine1: to.Ptr("Test Address"),
		// 					City: to.Ptr("City"),
		// 					CompanyName: to.Ptr("Enterprise Company"),
		// 					Country: to.Ptr("US"),
		// 					PostalCode: to.Ptr("00000-1111"),
		// 					Region: to.Ptr("WA"),
		// 				},
		// 			},
		// 	}},
		// }
	}
}

func (*AccountsClient) ValidatePaymentTerms

func (client *AccountsClient) ValidatePaymentTerms(ctx context.Context, billingAccountName string, parameters []*PaymentTerm, options *AccountsClientValidatePaymentTermsOptions) (AccountsClientValidatePaymentTermsResponse, error)

ValidatePaymentTerms - Validates payment terms on a billing account with agreement type 'Microsoft Customer Agreement' and account type 'Enterprise'. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • parameters - The properties of payment term.
  • options - AccountsClientValidatePaymentTermsOptions contains the optional parameters for the AccountsClient.ValidatePaymentTerms method.
Example (PaymentTermInvalid)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/paymentTermInvalid.json

package main

import (
	"context"
	"log"

	"time"

	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAccountsClient().ValidatePaymentTerms(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", []*armbilling.PaymentTerm{
		{
			EndDate:   to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-25T22:39:34.260Z"); return t }()),
			StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-05T22:39:34.260Z"); return t }()),
			Term:      to.Ptr("net10"),
		}}, 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.PaymentTermsEligibilityResult = armbilling.PaymentTermsEligibilityResult{
	// 	EligibilityDetails: []*armbilling.PaymentTermsEligibilityDetail{
	// 		{
	// 			Code: to.Ptr(armbilling.PaymentTermsEligibilityCodeInvalidDateRange),
	// 			Message: to.Ptr("The date range is invalid. The start date must be before the end date."),
	// 	}},
	// 	EligibilityStatus: to.Ptr(armbilling.PaymentTermsEligibilityStatusInvalid),
	// }
}
Example (PaymentTermValid)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/paymentTermValid.json

package main

import (
	"context"
	"log"

	"time"

	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAccountsClient().ValidatePaymentTerms(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", []*armbilling.PaymentTerm{
		{
			EndDate:   to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-25T22:39:34.260Z"); return t }()),
			StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t }()),
			Term:      to.Ptr("net10"),
		}}, 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.PaymentTermsEligibilityResult = armbilling.PaymentTermsEligibilityResult{
	// 	EligibilityStatus: to.Ptr(armbilling.PaymentTermsEligibilityStatusValid),
	// }
}

type AccountsClientAddPaymentTermsResponse

type AccountsClientAddPaymentTermsResponse struct {
	// A billing account.
	Account
}

AccountsClientAddPaymentTermsResponse contains the response from method AccountsClient.BeginAddPaymentTerms.

type AccountsClientBeginAddPaymentTermsOptions

type AccountsClientBeginAddPaymentTermsOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

AccountsClientBeginAddPaymentTermsOptions contains the optional parameters for the AccountsClient.BeginAddPaymentTerms method.

type AccountsClientBeginCancelPaymentTermsOptions

type AccountsClientBeginCancelPaymentTermsOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

AccountsClientBeginCancelPaymentTermsOptions contains the optional parameters for the AccountsClient.BeginCancelPaymentTerms method.

type AccountsClientBeginUpdateOptions

type AccountsClientBeginUpdateOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

AccountsClientBeginUpdateOptions contains the optional parameters for the AccountsClient.BeginUpdate method.

type AccountsClientCancelPaymentTermsResponse

type AccountsClientCancelPaymentTermsResponse struct {
	// A billing account.
	Account
}

AccountsClientCancelPaymentTermsResponse contains the response from method AccountsClient.BeginCancelPaymentTerms.

type AccountsClientConfirmTransitionOptions

type AccountsClientConfirmTransitionOptions struct {
}

AccountsClientConfirmTransitionOptions contains the optional parameters for the AccountsClient.ConfirmTransition method.

type AccountsClientConfirmTransitionResponse

type AccountsClientConfirmTransitionResponse struct {
	// The details for a billing account transitioned from agreement type Microsoft Online Services Program to agreement type
	// Microsoft Customer Agreement.
	TransitionDetails
}

AccountsClientConfirmTransitionResponse contains the response from method AccountsClient.ConfirmTransition.

type AccountsClientGetOptions

type AccountsClientGetOptions struct {
}

AccountsClientGetOptions contains the optional parameters for the AccountsClient.Get method.

type AccountsClientGetResponse

type AccountsClientGetResponse struct {
	// A billing account.
	Account
}

AccountsClientGetResponse contains the response from method AccountsClient.Get.

type AccountsClientListInvoiceSectionsByCreateSubscriptionPermissionOptions

type AccountsClientListInvoiceSectionsByCreateSubscriptionPermissionOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string
}

AccountsClientListInvoiceSectionsByCreateSubscriptionPermissionOptions contains the optional parameters for the AccountsClient.NewListInvoiceSectionsByCreateSubscriptionPermissionPager method.

type AccountsClientListInvoiceSectionsByCreateSubscriptionPermissionResponse

type AccountsClientListInvoiceSectionsByCreateSubscriptionPermissionResponse struct {
	// A container for a list of resources
	InvoiceSectionWithCreateSubPermissionListResult
}

AccountsClientListInvoiceSectionsByCreateSubscriptionPermissionResponse contains the response from method AccountsClient.NewListInvoiceSectionsByCreateSubscriptionPermissionPager.

type AccountsClientListOptions

type AccountsClientListOptions struct {
	// Expand is allowed for SoldTo and EnrollmentDetails/PONumber.
	Expand *string

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// When true, results will include Billing Accounts that the user does not have a direct role assignment on if the user has
	// one of the following AAD roles: Global Administrator, Global Reader, Billing
	// Administrator.
	IncludeAll *bool

	// When true, results will include Billing Accounts that are not fully created if the user has one of the following AAD roles:
	// Global Administrator, Global Reader, Billing Administrator.
	IncludeAllWithoutBillingProfiles *bool

	// When true, results will include any billing accounts in a deleted state.
	IncludeDeleted *bool

	// Includes billing accounts with agreement pending signature that the user has access to.
	IncludePendingAgreement *bool

	// Includes the customer's billing account of Microsoft Partner Agreement that the user has access to.
	IncludeResellee *bool

	// Must be combined with legalOwnerTID, results will only include Billing Accounts for whom is legally responsible for the
	// Billing Accounts. Optional.
	LegalOwnerOID *string

	// Must be combined with legalOwnerOID, results will only include Billing Accounts for whom is legally responsible for the
	// Billing Accounts. Optional.
	LegalOwnerTID *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

AccountsClientListOptions contains the optional parameters for the AccountsClient.NewListPager method.

type AccountsClientListResponse

type AccountsClientListResponse struct {
	// A container for a list of resources
	AccountListResult
}

AccountsClientListResponse contains the response from method AccountsClient.NewListPager.

type AccountsClientUpdateResponse

type AccountsClientUpdateResponse struct {
	// A billing account.
	Account
}

AccountsClientUpdateResponse contains the response from method AccountsClient.BeginUpdate.

type AccountsClientValidatePaymentTermsOptions

type AccountsClientValidatePaymentTermsOptions struct {
}

AccountsClientValidatePaymentTermsOptions contains the optional parameters for the AccountsClient.ValidatePaymentTerms method.

type AccountsClientValidatePaymentTermsResponse

type AccountsClientValidatePaymentTermsResponse struct {
	// Result of the payment terms eligibility.
	PaymentTermsEligibilityResult
}

AccountsClientValidatePaymentTermsResponse contains the response from method AccountsClient.ValidatePaymentTerms.

type AddressClient

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

AddressClient contains the methods for the Address group. Don't use this type directly, use NewAddressClient() instead.

func NewAddressClient

func NewAddressClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*AddressClient, error)

NewAddressClient creates a new instance of AddressClient with the specified values.

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

func (*AddressClient) Validate

Validate - Validates an address. Use the operation to validate an address before using it as soldTo or a billTo address. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • parameters - Address details.
  • options - AddressClientValidateOptions contains the optional parameters for the AddressClient.Validate method.
Example (AddressValidateInvalid)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/addressValidateInvalid.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAddressClient().Validate(ctx, armbilling.AddressDetails{
		AddressLine1: to.Ptr("1 Test"),
		City:         to.Ptr("bellevue"),
		Country:      to.Ptr("us"),
		PostalCode:   to.Ptr("12345"),
		Region:       to.Ptr("wa"),
	}, 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.AddressValidationResponse = armbilling.AddressValidationResponse{
	// 	Status: to.Ptr(armbilling.AddressValidationStatusInvalid),
	// 	SuggestedAddresses: []*armbilling.AddressDetails{
	// 		{
	// 			AddressLine1: to.Ptr("1 Test Address"),
	// 			City: to.Ptr("Bellevue"),
	// 			Country: to.Ptr("US"),
	// 			PostalCode: to.Ptr("98052"),
	// 			Region: to.Ptr("WA"),
	// 		},
	// 		{
	// 			AddressLine1: to.Ptr("1 Test Address"),
	// 			City: to.Ptr("Bellevue"),
	// 			Country: to.Ptr("US"),
	// 			PostalCode: to.Ptr("12345-0000"),
	// 			Region: to.Ptr("WA"),
	// 	}},
	// 	ValidationMessage: to.Ptr("Invalid address"),
	// }
}
Example (AddressValidateValid)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/addressValidateValid.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAddressClient().Validate(ctx, armbilling.AddressDetails{
		AddressLine1: to.Ptr("1 Test"),
		City:         to.Ptr("bellevue"),
		Country:      to.Ptr("us"),
		PostalCode:   to.Ptr("12345"),
		Region:       to.Ptr("wa"),
	}, 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.AddressValidationResponse = armbilling.AddressValidationResponse{
	// 	Status: to.Ptr(armbilling.AddressValidationStatusValid),
	// }
}

type AddressClientValidateOptions

type AddressClientValidateOptions struct {
}

AddressClientValidateOptions contains the optional parameters for the AddressClient.Validate method.

type AddressClientValidateResponse

type AddressClientValidateResponse struct {
	// Result of the address validation.
	AddressValidationResponse
}

AddressClientValidateResponse contains the response from method AddressClient.Validate.

type AddressDetails

type AddressDetails struct {
	// REQUIRED; Address line 1.
	AddressLine1 *string

	// REQUIRED; Country code uses ISO 3166-1 Alpha-2 format.
	Country *string

	// Address line 2.
	AddressLine2 *string

	// Address line 3.
	AddressLine3 *string

	// Address city.
	City *string

	// Company name. Optional for MCA Individual (Pay-as-you-go).
	CompanyName *string

	// Address district.
	District *string

	// Email address.
	Email *string

	// First name. Optional for MCA Enterprise.
	FirstName *string

	// Indicates if the address is incomplete.
	IsValidAddress *bool

	// Last name. Optional for MCA Enterprise.
	LastName *string

	// Middle name.
	MiddleName *string

	// Phone number.
	PhoneNumber *string

	// Postal code.
	PostalCode *string

	// Address region.
	Region *string
}

AddressDetails - Address details.

func (AddressDetails) MarshalJSON

func (a AddressDetails) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AddressDetails.

func (*AddressDetails) UnmarshalJSON

func (a *AddressDetails) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AddressDetails.

type AddressValidationResponse

type AddressValidationResponse struct {
	// READ-ONLY; Status of the address validation.
	Status *AddressValidationStatus

	// READ-ONLY; The list of suggested addresses.
	SuggestedAddresses []*AddressDetails

	// READ-ONLY; Validation error message.
	ValidationMessage *string
}

AddressValidationResponse - Result of the address validation.

func (AddressValidationResponse) MarshalJSON

func (a AddressValidationResponse) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AddressValidationResponse.

func (*AddressValidationResponse) UnmarshalJSON

func (a *AddressValidationResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AddressValidationResponse.

type AddressValidationStatus

type AddressValidationStatus string

AddressValidationStatus - Status of the address validation.

const (
	AddressValidationStatusInvalid AddressValidationStatus = "Invalid"
	AddressValidationStatusOther   AddressValidationStatus = "Other"
	AddressValidationStatusValid   AddressValidationStatus = "Valid"
)

func PossibleAddressValidationStatusValues

func PossibleAddressValidationStatusValues() []AddressValidationStatus

PossibleAddressValidationStatusValues returns the possible values for the AddressValidationStatus const type.

type Agreement

type Agreement struct {
	// An agreement.
	Properties *AgreementProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

Agreement - An agreement.

func (Agreement) MarshalJSON

func (a Agreement) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Agreement.

func (*Agreement) UnmarshalJSON

func (a *Agreement) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Agreement.

type AgreementListResult

type AgreementListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*Agreement
}

AgreementListResult - A container for a list of resources

func (AgreementListResult) MarshalJSON

func (a AgreementListResult) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AgreementListResult.

func (*AgreementListResult) UnmarshalJSON

func (a *AgreementListResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AgreementListResult.

type AgreementProperties

type AgreementProperties struct {
	// READ-ONLY; The mode of acceptance for an agreement.
	AcceptanceMode *AcceptanceMode

	// READ-ONLY; The URL to download the agreement.
	AgreementLink *string

	// READ-ONLY; The list of billing profiles associated with agreement and present only for specific agreements.
	BillingProfileInfo []*ProfileInfo

	// READ-ONLY; The category of the agreement.
	Category *Category

	// READ-ONLY; The name of the agreement signed by a customer.
	DisplayName *string

	// READ-ONLY; The date from which the agreement is effective.
	EffectiveDate *time.Time

	// READ-ONLY; The date when the agreement expires.
	ExpirationDate *time.Time

	// READ-ONLY; The ID of the lead billing account if this agreement is part of the Customer Affiliate Purchase Terms.
	LeadBillingAccountName *string

	// READ-ONLY; The list of participants that participates in acceptance of an agreement.
	Participants []*Participant

	// READ-ONLY; The current status of the agreement.
	Status *string
}

AgreementProperties - An agreement.

func (AgreementProperties) MarshalJSON

func (a AgreementProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AgreementProperties.

func (*AgreementProperties) UnmarshalJSON

func (a *AgreementProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AgreementProperties.

type AgreementType

type AgreementType string

AgreementType - The type of agreement.

const (
	AgreementTypeEnterpriseAgreement            AgreementType = "EnterpriseAgreement"
	AgreementTypeMicrosoftCustomerAgreement     AgreementType = "MicrosoftCustomerAgreement"
	AgreementTypeMicrosoftOnlineServicesProgram AgreementType = "MicrosoftOnlineServicesProgram"
	AgreementTypeMicrosoftPartnerAgreement      AgreementType = "MicrosoftPartnerAgreement"
	AgreementTypeOther                          AgreementType = "Other"
)

func PossibleAgreementTypeValues

func PossibleAgreementTypeValues() []AgreementType

PossibleAgreementTypeValues returns the possible values for the AgreementType const type.

type AgreementsClient

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

AgreementsClient contains the methods for the Agreements group. Don't use this type directly, use NewAgreementsClient() instead.

func NewAgreementsClient

func NewAgreementsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*AgreementsClient, error)

NewAgreementsClient creates a new instance of AgreementsClient with the specified values.

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

func (*AgreementsClient) Get

func (client *AgreementsClient) Get(ctx context.Context, billingAccountName string, agreementName string, options *AgreementsClientGetOptions) (AgreementsClientGetResponse, error)

Get - Gets an agreement by ID. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • agreementName - The ID that uniquely identifies an agreement.
  • options - AgreementsClientGetOptions contains the optional parameters for the AgreementsClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/agreementByName.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAgreementsClient().Get(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "ABC123", 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.Agreement = armbilling.Agreement{
	// 	Name: to.Ptr("ABC123"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/agreements"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/agreements/ABC123"),
	// 	Properties: &armbilling.AgreementProperties{
	// 		AcceptanceMode: to.Ptr(armbilling.AcceptanceModeClickToAccept),
	// 		AgreementLink: to.Ptr("https://contoso.com"),
	// 		DisplayName: to.Ptr("Microsoft Customer Agreement"),
	// 		EffectiveDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-01T00:00:00.000Z"); return t}()),
	// 		ExpirationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-11-01T00:00:00.000Z"); return t}()),
	// 		LeadBillingAccountName: to.Ptr("20000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 		Status: to.Ptr("Active"),
	// 	},
	// }
}

func (*AgreementsClient) NewListByBillingAccountPager

func (client *AgreementsClient) NewListByBillingAccountPager(billingAccountName string, options *AgreementsClientListByBillingAccountOptions) *runtime.Pager[AgreementsClientListByBillingAccountResponse]

NewListByBillingAccountPager - Lists the agreements for a billing account.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - AgreementsClientListByBillingAccountOptions contains the optional parameters for the AgreementsClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/agreementsListByBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewAgreementsClient().NewListByBillingAccountPager("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.AgreementsClientListByBillingAccountOptions{Expand: to.Ptr("Participants")})
	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.AgreementListResult = armbilling.AgreementListResult{
		// 	Value: []*armbilling.Agreement{
		// 		{
		// 			Name: to.Ptr("ABC123"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/agreements"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/agreements/ABC123"),
		// 			Properties: &armbilling.AgreementProperties{
		// 				AcceptanceMode: to.Ptr(armbilling.AcceptanceModeClickToAccept),
		// 				AgreementLink: to.Ptr("https://contoso.com"),
		// 				DisplayName: to.Ptr("Microsoft Customer Agreement"),
		// 				EffectiveDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-01T00:00:00.000Z"); return t}()),
		// 				ExpirationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-11-01T00:00:00.000Z"); return t}()),
		// 				LeadBillingAccountName: to.Ptr("20000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				Participants: []*armbilling.Participant{
		// 					{
		// 						Email: to.Ptr("abc@contoso.com"),
		// 						Status: to.Ptr("Accepted"),
		// 						StatusDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-01T00:00:00.000Z"); return t}()),
		// 					},
		// 					{
		// 						Email: to.Ptr("xtz@contoso.com"),
		// 						Status: to.Ptr("Declined"),
		// 						StatusDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-02T00:00:00.000Z"); return t}()),
		// 				}},
		// 				Status: to.Ptr("Active"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("DEF456"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/agreements"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/agreements/DEF456"),
		// 			Properties: &armbilling.AgreementProperties{
		// 				AcceptanceMode: to.Ptr(armbilling.AcceptanceModeESignEmbedded),
		// 				AgreementLink: to.Ptr("https://contoso.com"),
		// 				DisplayName: to.Ptr("Microsoft Customer Agreement"),
		// 				EffectiveDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-12-05T00:00:00.000Z"); return t}()),
		// 				ExpirationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-12-05T00:00:00.000Z"); return t}()),
		// 				LeadBillingAccountName: to.Ptr("20000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				Participants: []*armbilling.Participant{
		// 					{
		// 						Email: to.Ptr("abc@contoso.com"),
		// 						Status: to.Ptr("Pending"),
		// 						StatusDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-12-05T00:00:00.000Z"); return t}()),
		// 				}},
		// 				Status: to.Ptr("PendingSignature"),
		// 			},
		// 	}},
		// }
	}
}

type AgreementsClientGetOptions

type AgreementsClientGetOptions struct {
}

AgreementsClientGetOptions contains the optional parameters for the AgreementsClient.Get method.

type AgreementsClientGetResponse

type AgreementsClientGetResponse struct {
	// An agreement.
	Agreement
}

AgreementsClientGetResponse contains the response from method AgreementsClient.Get.

type AgreementsClientListByBillingAccountOptions

type AgreementsClientListByBillingAccountOptions struct {
	// May be used to expand the participants.
	Expand *string
}

AgreementsClientListByBillingAccountOptions contains the optional parameters for the AgreementsClient.NewListByBillingAccountPager method.

type AgreementsClientListByBillingAccountResponse

type AgreementsClientListByBillingAccountResponse struct {
	// A container for a list of resources
	AgreementListResult
}

AgreementsClientListByBillingAccountResponse contains the response from method AgreementsClient.NewListByBillingAccountPager.

type Amount

type Amount struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

Amount - The amount.

func (Amount) MarshalJSON

func (a Amount) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Amount.

func (*Amount) UnmarshalJSON

func (a *Amount) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Amount.

type AppliedScopeProperties

type AppliedScopeProperties struct {
	// Display name
	DisplayName *string

	// Fully-qualified identifier of the management group where the benefit is applied.
	ManagementGroupID *string

	// Fully-qualified identifier of the resource group where the benefit is applied.
	ResourceGroupID *string

	// Fully-qualified identifier of the subscription where the benefit is applied.
	SubscriptionID *string

	// Tenant ID where the savings plan where the benefit is applied.
	TenantID *string
}

AppliedScopeProperties - Properties specific to applied scope type. Not required if not applicable.

func (AppliedScopeProperties) MarshalJSON

func (a AppliedScopeProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AppliedScopeProperties.

func (*AppliedScopeProperties) UnmarshalJSON

func (a *AppliedScopeProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AppliedScopeProperties.

type AppliedScopeType

type AppliedScopeType string

AppliedScopeType - Type of the Applied Scope.

const (
	AppliedScopeTypeManagementGroup AppliedScopeType = "ManagementGroup"
	AppliedScopeTypeShared          AppliedScopeType = "Shared"
	AppliedScopeTypeSingle          AppliedScopeType = "Single"
)

func PossibleAppliedScopeTypeValues

func PossibleAppliedScopeTypeValues() []AppliedScopeType

PossibleAppliedScopeTypeValues returns the possible values for the AppliedScopeType const type.

type AssociatedTenant

type AssociatedTenant struct {
	// An associated tenant.
	Properties *AssociatedTenantProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

AssociatedTenant - An associated tenant.

func (AssociatedTenant) MarshalJSON

func (a AssociatedTenant) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AssociatedTenant.

func (*AssociatedTenant) UnmarshalJSON

func (a *AssociatedTenant) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AssociatedTenant.

type AssociatedTenantListResult

type AssociatedTenantListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*AssociatedTenant
}

AssociatedTenantListResult - A container for a list of resources

func (AssociatedTenantListResult) MarshalJSON

func (a AssociatedTenantListResult) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AssociatedTenantListResult.

func (*AssociatedTenantListResult) UnmarshalJSON

func (a *AssociatedTenantListResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AssociatedTenantListResult.

type AssociatedTenantProperties

type AssociatedTenantProperties struct {
	// The state determines whether users from the associated tenant can be assigned roles for commerce activities like viewing
	// and downloading invoices, managing payments, and making purchases.
	BillingManagementState *BillingManagementTenantState

	// The name of the associated tenant.
	DisplayName *string

	// The state determines whether subscriptions and licenses can be provisioned in the associated tenant. It can be set to 'Pending'
	// to initiate a billing request.
	ProvisioningManagementState *ProvisioningTenantState

	// The ID that uniquely identifies a tenant.
	TenantID *string

	// READ-ONLY; The unique identifier for the billing request that is created when enabling provisioning for an associated tenant.
	ProvisioningBillingRequestID *string

	// READ-ONLY; The provisioning state of the resource during a long-running operation.
	ProvisioningState *ProvisioningState
}

AssociatedTenantProperties - An associated tenant.

func (AssociatedTenantProperties) MarshalJSON

func (a AssociatedTenantProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AssociatedTenantProperties.

func (*AssociatedTenantProperties) UnmarshalJSON

func (a *AssociatedTenantProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AssociatedTenantProperties.

type AssociatedTenantsClient

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

AssociatedTenantsClient contains the methods for the AssociatedTenants group. Don't use this type directly, use NewAssociatedTenantsClient() instead.

func NewAssociatedTenantsClient

func NewAssociatedTenantsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*AssociatedTenantsClient, error)

NewAssociatedTenantsClient creates a new instance of AssociatedTenantsClient with the specified values.

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

func (*AssociatedTenantsClient) BeginCreateOrUpdate

func (client *AssociatedTenantsClient) BeginCreateOrUpdate(ctx context.Context, billingAccountName string, associatedTenantName string, parameters AssociatedTenant, options *AssociatedTenantsClientBeginCreateOrUpdateOptions) (*runtime.Poller[AssociatedTenantsClientCreateOrUpdateResponse], error)

BeginCreateOrUpdate - Create or update an associated tenant for the billing account. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • associatedTenantName - The ID that uniquely identifies a tenant.
  • parameters - An associated tenant.
  • options - AssociatedTenantsClientBeginCreateOrUpdateOptions contains the optional parameters for the AssociatedTenantsClient.BeginCreateOrUpdate method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/associatedTenantsCreateOrUpdate.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewAssociatedTenantsClient().BeginCreateOrUpdate(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", armbilling.AssociatedTenant{
		Properties: &armbilling.AssociatedTenantProperties{
			BillingManagementState:      to.Ptr(armbilling.BillingManagementTenantStateActive),
			DisplayName:                 to.Ptr("Contoso Finance"),
			ProvisioningManagementState: to.Ptr(armbilling.ProvisioningTenantStatePending),
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.AssociatedTenant = armbilling.AssociatedTenant{
	// 	Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/associatedTenants"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/associatedTenants/11111111-1111-1111-1111-111111111111"),
	// 	Properties: &armbilling.AssociatedTenantProperties{
	// 		BillingManagementState: to.Ptr(armbilling.BillingManagementTenantStateActive),
	// 		DisplayName: to.Ptr("Contoso Finance"),
	// 		ProvisioningBillingRequestID: to.Ptr("/providers/Microsoft.Billing/billingRequests/22222222-2222-2222-2222-222222222222"),
	// 		ProvisioningManagementState: to.Ptr(armbilling.ProvisioningTenantStatePending),
	// 		TenantID: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 	},
	// }
}

func (*AssociatedTenantsClient) BeginDelete

func (client *AssociatedTenantsClient) BeginDelete(ctx context.Context, billingAccountName string, associatedTenantName string, options *AssociatedTenantsClientBeginDeleteOptions) (*runtime.Poller[AssociatedTenantsClientDeleteResponse], error)

BeginDelete - Deletes an associated tenant for a billing account. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • associatedTenantName - The ID that uniquely identifies a tenant.
  • options - AssociatedTenantsClientBeginDeleteOptions contains the optional parameters for the AssociatedTenantsClient.BeginDelete method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/associatedTenantsDelete.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewAssociatedTenantsClient().BeginDelete(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	_, err = poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %v", err)
	}
}

func (*AssociatedTenantsClient) Get

func (client *AssociatedTenantsClient) Get(ctx context.Context, billingAccountName string, associatedTenantName string, options *AssociatedTenantsClientGetOptions) (AssociatedTenantsClientGetResponse, error)

Get - Gets an associated tenant by ID. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • associatedTenantName - The ID that uniquely identifies a tenant.
  • options - AssociatedTenantsClientGetOptions contains the optional parameters for the AssociatedTenantsClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/associatedTenantsGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAssociatedTenantsClient().Get(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", 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.AssociatedTenant = armbilling.AssociatedTenant{
	// 	Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/associatedTenants"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/associatedTenants/11111111-1111-1111-1111-111111111111"),
	// 	Properties: &armbilling.AssociatedTenantProperties{
	// 		BillingManagementState: to.Ptr(armbilling.BillingManagementTenantStateActive),
	// 		DisplayName: to.Ptr("Contoso Finance"),
	// 		ProvisioningBillingRequestID: to.Ptr("/providers/Microsoft.Billing/billingRequests/22222222-2222-2222-2222-222222222222"),
	// 		ProvisioningManagementState: to.Ptr(armbilling.ProvisioningTenantStatePending),
	// 		TenantID: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 	},
	// }
}

func (*AssociatedTenantsClient) NewListByBillingAccountPager

NewListByBillingAccountPager - Lists the associated tenants that can collaborate with the billing account on commerce activities like viewing and downloading invoices, managing payments, making purchases, and managing or provisioning licenses.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - AssociatedTenantsClientListByBillingAccountOptions contains the optional parameters for the AssociatedTenantsClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/associatedTenantsListByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewAssociatedTenantsClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.AssociatedTenantsClientListByBillingAccountOptions{IncludeRevoked: nil,
		Filter:  nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.AssociatedTenantListResult = armbilling.AssociatedTenantListResult{
		// 	Value: []*armbilling.AssociatedTenant{
		// 		{
		// 			Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/associatedTenants"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-000000000000:00000000-0000-0000-000000000000_2019-05-31/associatedTenants/11111111-1111-1111-1111-111111111111"),
		// 			Properties: &armbilling.AssociatedTenantProperties{
		// 				BillingManagementState: to.Ptr(armbilling.BillingManagementTenantStateActive),
		// 				DisplayName: to.Ptr("Contoso Finance"),
		// 				ProvisioningManagementState: to.Ptr(armbilling.ProvisioningTenantStateNotRequested),
		// 				TenantID: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("22222222-2222-2222-2222-222222222222"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/associatedTenants"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-000000000000:00000000-0000-0000-000000000000_2019-05-31/associatedTenants/22222222-2222-2222-2222-222222222222"),
		// 			Properties: &armbilling.AssociatedTenantProperties{
		// 				BillingManagementState: to.Ptr(armbilling.BillingManagementTenantStateNotAllowed),
		// 				DisplayName: to.Ptr("Contoso Engineering"),
		// 				ProvisioningBillingRequestID: to.Ptr("/providers/Microsoft.Billing/billingRequests/22222222-2222-2222-2222-222222222222"),
		// 				ProvisioningManagementState: to.Ptr(armbilling.ProvisioningTenantStatePending),
		// 				TenantID: to.Ptr("22222222-2222-2222-2222-222222222222"),
		// 			},
		// 	}},
		// }
	}
}

type AssociatedTenantsClientBeginCreateOrUpdateOptions

type AssociatedTenantsClientBeginCreateOrUpdateOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

AssociatedTenantsClientBeginCreateOrUpdateOptions contains the optional parameters for the AssociatedTenantsClient.BeginCreateOrUpdate method.

type AssociatedTenantsClientBeginDeleteOptions

type AssociatedTenantsClientBeginDeleteOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

AssociatedTenantsClientBeginDeleteOptions contains the optional parameters for the AssociatedTenantsClient.BeginDelete method.

type AssociatedTenantsClientCreateOrUpdateResponse

type AssociatedTenantsClientCreateOrUpdateResponse struct {
	// An associated tenant.
	AssociatedTenant
}

AssociatedTenantsClientCreateOrUpdateResponse contains the response from method AssociatedTenantsClient.BeginCreateOrUpdate.

type AssociatedTenantsClientDeleteResponse

type AssociatedTenantsClientDeleteResponse struct {
}

AssociatedTenantsClientDeleteResponse contains the response from method AssociatedTenantsClient.BeginDelete.

type AssociatedTenantsClientGetOptions

type AssociatedTenantsClientGetOptions struct {
}

AssociatedTenantsClientGetOptions contains the optional parameters for the AssociatedTenantsClient.Get method.

type AssociatedTenantsClientGetResponse

type AssociatedTenantsClientGetResponse struct {
	// An associated tenant.
	AssociatedTenant
}

AssociatedTenantsClientGetResponse contains the response from method AssociatedTenantsClient.Get.

type AssociatedTenantsClientListByBillingAccountOptions

type AssociatedTenantsClientListByBillingAccountOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// Can be used to get revoked associated tenants.
	IncludeRevoked *bool

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

AssociatedTenantsClientListByBillingAccountOptions contains the optional parameters for the AssociatedTenantsClient.NewListByBillingAccountPager method.

type AssociatedTenantsClientListByBillingAccountResponse

type AssociatedTenantsClientListByBillingAccountResponse struct {
	// A container for a list of resources
	AssociatedTenantListResult
}

AssociatedTenantsClientListByBillingAccountResponse contains the response from method AssociatedTenantsClient.NewListByBillingAccountPager.

type AutoRenew

type AutoRenew string

AutoRenew - Indicates whether auto renewal is turned on or off for a product.

const (
	AutoRenewOff AutoRenew = "Off"
	AutoRenewOn  AutoRenew = "On"
)

func PossibleAutoRenewValues

func PossibleAutoRenewValues() []AutoRenew

PossibleAutoRenewValues returns the possible values for the AutoRenew const type.

type AvailableBalance

type AvailableBalance struct {
	// The Available Credit or Payment on Account Balance. The credit balance can be used to settle due or past due invoices.
	Properties *AvailableBalanceProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

AvailableBalance - The Available Credit or Payment on Account Balance. The credit balance can be used to settle due or past due invoices.

func (AvailableBalance) MarshalJSON

func (a AvailableBalance) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AvailableBalance.

func (*AvailableBalance) UnmarshalJSON

func (a *AvailableBalance) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AvailableBalance.

type AvailableBalanceProperties

type AvailableBalanceProperties struct {
	// Credit amount for immediate payment.
	Amount *AvailableBalancePropertiesAmount

	// Total amount of payments on accounts.
	TotalPaymentsOnAccount *AvailableBalancePropertiesTotalPaymentsOnAccount

	// READ-ONLY; The list of payments on accounts.
	PaymentsOnAccount []*PaymentOnAccount
}

AvailableBalanceProperties - The Available Credit or Payment on Account Balance. The credit balance can be used to settle due or past due invoices.

func (AvailableBalanceProperties) MarshalJSON

func (a AvailableBalanceProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AvailableBalanceProperties.

func (*AvailableBalanceProperties) UnmarshalJSON

func (a *AvailableBalanceProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AvailableBalanceProperties.

type AvailableBalancePropertiesAmount

type AvailableBalancePropertiesAmount struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

AvailableBalancePropertiesAmount - Credit amount for immediate payment.

func (AvailableBalancePropertiesAmount) MarshalJSON

func (a AvailableBalancePropertiesAmount) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AvailableBalancePropertiesAmount.

func (*AvailableBalancePropertiesAmount) UnmarshalJSON

func (a *AvailableBalancePropertiesAmount) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AvailableBalancePropertiesAmount.

type AvailableBalancePropertiesTotalPaymentsOnAccount

type AvailableBalancePropertiesTotalPaymentsOnAccount struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

AvailableBalancePropertiesTotalPaymentsOnAccount - Total amount of payments on accounts.

func (AvailableBalancePropertiesTotalPaymentsOnAccount) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type AvailableBalancePropertiesTotalPaymentsOnAccount.

func (*AvailableBalancePropertiesTotalPaymentsOnAccount) UnmarshalJSON

UnmarshalJSON implements the json.Unmarshaller interface for type AvailableBalancePropertiesTotalPaymentsOnAccount.

type AvailableBalancesClient

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

AvailableBalancesClient contains the methods for the AvailableBalances group. Don't use this type directly, use NewAvailableBalancesClient() instead.

func NewAvailableBalancesClient

func NewAvailableBalancesClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*AvailableBalancesClient, error)

NewAvailableBalancesClient creates a new instance of AvailableBalancesClient with the specified values.

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

func (*AvailableBalancesClient) GetByBillingAccount

GetByBillingAccount - The Available Credit or Payment on Account Balance for a billing account. The credit balance can be used to settle due or past due invoices and is supported for billing accounts with agreement type Microsoft Customer Agreement. The payment on account balance is supported for billing accounts with agreement type Microsoft Customer Agreement or Microsoft Online Services Program. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - AvailableBalancesClientGetByBillingAccountOptions contains the optional parameters for the AvailableBalancesClient.GetByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/availableBalanceGetByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAvailableBalancesClient().GetByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", 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.AvailableBalance = armbilling.AvailableBalance{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/availableBalance"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/availableBalance/default"),
	// 	Properties: &armbilling.AvailableBalanceProperties{
	// 		Amount: &armbilling.AvailableBalancePropertiesAmount{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](500),
	// 		},
	// 		PaymentsOnAccount: []*armbilling.PaymentOnAccount{
	// 			{
	// 				Amount: &armbilling.PaymentOnAccountAmount{
	// 					Currency: to.Ptr("USD"),
	// 					Value: to.Ptr[float32](50),
	// 				},
	// 				BillingProfileDisplayName: to.Ptr("Contoso Finance"),
	// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 				Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T00:00:00.000Z"); return t}()),
	// 				InvoiceID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/G123456789"),
	// 				InvoiceName: to.Ptr("G123456789"),
	// 				PaymentMethodType: to.Ptr(armbilling.PaymentMethodFamilyCheckWire),
	// 			},
	// 			{
	// 				Amount: &armbilling.PaymentOnAccountAmount{
	// 					Currency: to.Ptr("USD"),
	// 					Value: to.Ptr[float32](150),
	// 				},
	// 				BillingProfileDisplayName: to.Ptr("Contoso Engineering"),
	// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/yyyy-yyyy-yyy-yyy"),
	// 				Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-01T00:00:00.000Z"); return t}()),
	// 				InvoiceID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/G987654321"),
	// 				InvoiceName: to.Ptr("G987654321"),
	// 				PaymentMethodType: to.Ptr(armbilling.PaymentMethodFamilyCheckWire),
	// 		}},
	// 		TotalPaymentsOnAccount: &armbilling.AvailableBalancePropertiesTotalPaymentsOnAccount{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](200),
	// 		},
	// 	},
	// }
}

func (*AvailableBalancesClient) GetByBillingProfile

func (client *AvailableBalancesClient) GetByBillingProfile(ctx context.Context, billingAccountName string, billingProfileName string, options *AvailableBalancesClientGetByBillingProfileOptions) (AvailableBalancesClientGetByBillingProfileResponse, error)

GetByBillingProfile - The Available Credit or Payment on Account Balance for a billing profile. The credit balance can be used to settle due or past due invoices and is supported for billing accounts with agreement type Microsoft Customer Agreement. The payment on account balance is supported for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - AvailableBalancesClientGetByBillingProfileOptions contains the optional parameters for the AvailableBalancesClient.GetByBillingProfile method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/availableBalanceGetByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewAvailableBalancesClient().GetByBillingProfile(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", 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.AvailableBalance = armbilling.AvailableBalance{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/availableBalance"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/availableBalance/default"),
	// 	Properties: &armbilling.AvailableBalanceProperties{
	// 		Amount: &armbilling.AvailableBalancePropertiesAmount{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](500),
	// 		},
	// 		PaymentsOnAccount: []*armbilling.PaymentOnAccount{
	// 			{
	// 				Amount: &armbilling.PaymentOnAccountAmount{
	// 					Currency: to.Ptr("USD"),
	// 					Value: to.Ptr[float32](50),
	// 				},
	// 				BillingProfileDisplayName: to.Ptr("Contoso Finance"),
	// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 				Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T00:00:00.000Z"); return t}()),
	// 				InvoiceID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/G123456789"),
	// 				InvoiceName: to.Ptr("G123456789"),
	// 				PaymentMethodType: to.Ptr(armbilling.PaymentMethodFamilyCheckWire),
	// 		}},
	// 		TotalPaymentsOnAccount: &armbilling.AvailableBalancePropertiesTotalPaymentsOnAccount{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](200),
	// 		},
	// 	},
	// }
}

type AvailableBalancesClientGetByBillingAccountOptions

type AvailableBalancesClientGetByBillingAccountOptions struct {
}

AvailableBalancesClientGetByBillingAccountOptions contains the optional parameters for the AvailableBalancesClient.GetByBillingAccount method.

type AvailableBalancesClientGetByBillingAccountResponse

type AvailableBalancesClientGetByBillingAccountResponse struct {
	// The Available Credit or Payment on Account Balance. The credit balance can be used to settle due or past due invoices.
	AvailableBalance
}

AvailableBalancesClientGetByBillingAccountResponse contains the response from method AvailableBalancesClient.GetByBillingAccount.

type AvailableBalancesClientGetByBillingProfileOptions

type AvailableBalancesClientGetByBillingProfileOptions struct {
}

AvailableBalancesClientGetByBillingProfileOptions contains the optional parameters for the AvailableBalancesClient.GetByBillingProfile method.

type AvailableBalancesClientGetByBillingProfileResponse

type AvailableBalancesClientGetByBillingProfileResponse struct {
	// The Available Credit or Payment on Account Balance. The credit balance can be used to settle due or past due invoices.
	AvailableBalance
}

AvailableBalancesClientGetByBillingProfileResponse contains the response from method AvailableBalancesClient.GetByBillingProfile.

type AzurePlan

type AzurePlan struct {
	// The ID that uniquely identifies a product.
	ProductID *string

	// The sku description.
	SKUDescription *string

	// The ID that uniquely identifies a sku.
	SKUID *string
}

AzurePlan - Details of the Azure plan.

func (AzurePlan) MarshalJSON

func (a AzurePlan) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type AzurePlan.

func (*AzurePlan) UnmarshalJSON

func (a *AzurePlan) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type AzurePlan.

type Beneficiary

type Beneficiary struct {
	// The ID that uniquely identifies a user in a tenant.
	ObjectID *string

	// The ID that uniquely identifies a tenant.
	TenantID *string
}

Beneficiary - Details of the beneficiary.

func (Beneficiary) MarshalJSON

func (b Beneficiary) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Beneficiary.

func (*Beneficiary) UnmarshalJSON

func (b *Beneficiary) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Beneficiary.

type BillingAccountStatusReasonCode

type BillingAccountStatusReasonCode string

BillingAccountStatusReasonCode - Reason for the specified billing account status.

const (
	BillingAccountStatusReasonCodeExpired             BillingAccountStatusReasonCode = "Expired"
	BillingAccountStatusReasonCodeManuallyTerminated  BillingAccountStatusReasonCode = "ManuallyTerminated"
	BillingAccountStatusReasonCodeOther               BillingAccountStatusReasonCode = "Other"
	BillingAccountStatusReasonCodeTerminateProcessing BillingAccountStatusReasonCode = "TerminateProcessing"
	BillingAccountStatusReasonCodeTransferred         BillingAccountStatusReasonCode = "Transferred"
	BillingAccountStatusReasonCodeUnusualActivity     BillingAccountStatusReasonCode = "UnusualActivity"
)

func PossibleBillingAccountStatusReasonCodeValues

func PossibleBillingAccountStatusReasonCodeValues() []BillingAccountStatusReasonCode

PossibleBillingAccountStatusReasonCodeValues returns the possible values for the BillingAccountStatusReasonCode const type.

type BillingManagementTenantState

type BillingManagementTenantState string

BillingManagementTenantState - The state determines whether users from the associated tenant can be assigned roles for commerce activities like viewing and downloading invoices, managing payments, and making purchases.

const (
	BillingManagementTenantStateActive     BillingManagementTenantState = "Active"
	BillingManagementTenantStateNotAllowed BillingManagementTenantState = "NotAllowed"
	BillingManagementTenantStateOther      BillingManagementTenantState = "Other"
	BillingManagementTenantStateRevoked    BillingManagementTenantState = "Revoked"
)

func PossibleBillingManagementTenantStateValues

func PossibleBillingManagementTenantStateValues() []BillingManagementTenantState

PossibleBillingManagementTenantStateValues returns the possible values for the BillingManagementTenantState const type.

type BillingPlan

type BillingPlan string

BillingPlan - Represents the billing plan in ISO 8601 format. Required only for monthly purchases.

const (
	BillingPlanP1M BillingPlan = "P1M"
)

func PossibleBillingPlanValues

func PossibleBillingPlanValues() []BillingPlan

PossibleBillingPlanValues returns the possible values for the BillingPlan const type.

type BillingProfileStatus

type BillingProfileStatus string

BillingProfileStatus - The status of the billing profile.

const (
	BillingProfileStatusActive      BillingProfileStatus = "Active"
	BillingProfileStatusDeleted     BillingProfileStatus = "Deleted"
	BillingProfileStatusDisabled    BillingProfileStatus = "Disabled"
	BillingProfileStatusOther       BillingProfileStatus = "Other"
	BillingProfileStatusUnderReview BillingProfileStatus = "UnderReview"
	BillingProfileStatusWarned      BillingProfileStatus = "Warned"
)

func PossibleBillingProfileStatusValues

func PossibleBillingProfileStatusValues() []BillingProfileStatus

PossibleBillingProfileStatusValues returns the possible values for the BillingProfileStatus const type.

type BillingProfileStatusReasonCode

type BillingProfileStatusReasonCode string

BillingProfileStatusReasonCode - Reason for the specified billing profile status.

const (
	BillingProfileStatusReasonCodeOther                BillingProfileStatusReasonCode = "Other"
	BillingProfileStatusReasonCodePastDue              BillingProfileStatusReasonCode = "PastDue"
	BillingProfileStatusReasonCodeSpendingLimitExpired BillingProfileStatusReasonCode = "SpendingLimitExpired"
	BillingProfileStatusReasonCodeSpendingLimitReached BillingProfileStatusReasonCode = "SpendingLimitReached"
	BillingProfileStatusReasonCodeUnusualActivity      BillingProfileStatusReasonCode = "UnusualActivity"
)

func PossibleBillingProfileStatusReasonCodeValues

func PossibleBillingProfileStatusReasonCodeValues() []BillingProfileStatusReasonCode

PossibleBillingProfileStatusReasonCodeValues returns the possible values for the BillingProfileStatusReasonCode const type.

type BillingRelationshipType

type BillingRelationshipType string

BillingRelationshipType - Identifies the billing relationships represented by a billing account or billing profile. The billing relationship may be between Microsoft, the customer, and/or a third-party.

const (
	BillingRelationshipTypeCSPCustomer      BillingRelationshipType = "CSPCustomer"
	BillingRelationshipTypeCSPPartner       BillingRelationshipType = "CSPPartner"
	BillingRelationshipTypeDirect           BillingRelationshipType = "Direct"
	BillingRelationshipTypeIndirectCustomer BillingRelationshipType = "IndirectCustomer"
	BillingRelationshipTypeIndirectPartner  BillingRelationshipType = "IndirectPartner"
	BillingRelationshipTypeOther            BillingRelationshipType = "Other"
)

func PossibleBillingRelationshipTypeValues

func PossibleBillingRelationshipTypeValues() []BillingRelationshipType

PossibleBillingRelationshipTypeValues returns the possible values for the BillingRelationshipType const type.

type BillingRequestStatus

type BillingRequestStatus string

BillingRequestStatus - Status of billing request.

const (
	BillingRequestStatusApproved  BillingRequestStatus = "Approved"
	BillingRequestStatusCancelled BillingRequestStatus = "Cancelled"
	BillingRequestStatusCompleted BillingRequestStatus = "Completed"
	BillingRequestStatusDeclined  BillingRequestStatus = "Declined"
	BillingRequestStatusExpired   BillingRequestStatus = "Expired"
	BillingRequestStatusOther     BillingRequestStatus = "Other"
	BillingRequestStatusPending   BillingRequestStatus = "Pending"
)

func PossibleBillingRequestStatusValues

func PossibleBillingRequestStatusValues() []BillingRequestStatus

PossibleBillingRequestStatusValues returns the possible values for the BillingRequestStatus const type.

type BillingRequestType

type BillingRequestType string

BillingRequestType - Type of billing request.

const (
	BillingRequestTypeInvoiceAccess       BillingRequestType = "InvoiceAccess"
	BillingRequestTypeOther               BillingRequestType = "Other"
	BillingRequestTypeProvisioningAccess  BillingRequestType = "ProvisioningAccess"
	BillingRequestTypeRoleAssignment      BillingRequestType = "RoleAssignment"
	BillingRequestTypeUpdateBillingPolicy BillingRequestType = "UpdateBillingPolicy"
)

func PossibleBillingRequestTypeValues

func PossibleBillingRequestTypeValues() []BillingRequestType

PossibleBillingRequestTypeValues returns the possible values for the BillingRequestType const type.

type BillingSubscriptionOperationStatus

type BillingSubscriptionOperationStatus string

BillingSubscriptionOperationStatus - The status of an operation on the subscription. When None, there is no ongoing operation. When LockedForUpdate, write operations will be blocked on the Billing Subscription. Other is the default value and you may need to refer to the latest API version for more details.

const (
	BillingSubscriptionOperationStatusLockedForUpdate BillingSubscriptionOperationStatus = "LockedForUpdate"
	BillingSubscriptionOperationStatusNone            BillingSubscriptionOperationStatus = "None"
	BillingSubscriptionOperationStatusOther           BillingSubscriptionOperationStatus = "Other"
)

func PossibleBillingSubscriptionOperationStatusValues

func PossibleBillingSubscriptionOperationStatusValues() []BillingSubscriptionOperationStatus

PossibleBillingSubscriptionOperationStatusValues returns the possible values for the BillingSubscriptionOperationStatus const type.

type BillingSubscriptionStatus

type BillingSubscriptionStatus string

BillingSubscriptionStatus - The subscription status.

const (
	BillingSubscriptionStatusActive    BillingSubscriptionStatus = "Active"
	BillingSubscriptionStatusAutoRenew BillingSubscriptionStatus = "AutoRenew"
	BillingSubscriptionStatusCancelled BillingSubscriptionStatus = "Cancelled"
	BillingSubscriptionStatusDeleted   BillingSubscriptionStatus = "Deleted"
	BillingSubscriptionStatusDisabled  BillingSubscriptionStatus = "Disabled"
	BillingSubscriptionStatusExpired   BillingSubscriptionStatus = "Expired"
	BillingSubscriptionStatusExpiring  BillingSubscriptionStatus = "Expiring"
	BillingSubscriptionStatusFailed    BillingSubscriptionStatus = "Failed"
	BillingSubscriptionStatusOther     BillingSubscriptionStatus = "Other"
	BillingSubscriptionStatusSuspended BillingSubscriptionStatus = "Suspended"
	BillingSubscriptionStatusUnknown   BillingSubscriptionStatus = "Unknown"
	BillingSubscriptionStatusWarned    BillingSubscriptionStatus = "Warned"
)

func PossibleBillingSubscriptionStatusValues

func PossibleBillingSubscriptionStatusValues() []BillingSubscriptionStatus

PossibleBillingSubscriptionStatusValues returns the possible values for the BillingSubscriptionStatus const type.

type CancelSubscriptionRequest

type CancelSubscriptionRequest struct {
	// REQUIRED; Cancellation reason.
	CancellationReason *CancellationReason

	// The fully qualified ID that uniquely identifies a customer.
	CustomerID *string
}

CancelSubscriptionRequest - Request parameters for cancel customer subscription.

func (CancelSubscriptionRequest) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type CancelSubscriptionRequest.

func (*CancelSubscriptionRequest) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type CancelSubscriptionRequest.

type Cancellation

type Cancellation string

Cancellation - The policy override for the subscription indicates whether the self-serve cancellation or seat reduction is allowed.

const (
	CancellationAllowed    Cancellation = "Allowed"
	CancellationNotAllowed Cancellation = "NotAllowed"
)

func PossibleCancellationValues

func PossibleCancellationValues() []Cancellation

PossibleCancellationValues returns the possible values for the Cancellation const type.

type CancellationReason

type CancellationReason string

CancellationReason - Cancellation reason.

const (
	CancellationReasonCompromise CancellationReason = "Compromise"
	CancellationReasonDispute    CancellationReason = "Dispute"
	CancellationReasonOther      CancellationReason = "Other"
)

func PossibleCancellationReasonValues

func PossibleCancellationReasonValues() []CancellationReason

PossibleCancellationReasonValues returns the possible values for the CancellationReason const type.

type Category

type Category string

Category - The category of the agreement.

const (
	CategoryAffiliatePurchaseTerms         Category = "AffiliatePurchaseTerms"
	CategoryIndirectForGovernmentAgreement Category = "IndirectForGovernmentAgreement"
	CategoryMicrosoftCustomerAgreement     Category = "MicrosoftCustomerAgreement"
	CategoryMicrosoftPartnerAgreement      Category = "MicrosoftPartnerAgreement"
	CategoryOther                          Category = "Other"
	CategoryUKCloudComputeFramework        Category = "UKCloudComputeFramework"
)

func PossibleCategoryValues

func PossibleCategoryValues() []Category

PossibleCategoryValues returns the possible values for the Category const type.

type CheckAccessRequest

type CheckAccessRequest struct {
	// List of actions passed in the request body against which the permissions will be checked.
	Actions []*string
}

CheckAccessRequest - Request to check access.

func (CheckAccessRequest) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type CheckAccessRequest.

func (*CheckAccessRequest) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type CheckAccessRequest.

type CheckAccessResponse

type CheckAccessResponse struct {
	// READ-ONLY; Access Decision, specifies access is allowed or not.
	AccessDecision *AccessDecision

	// READ-ONLY; Gets or sets an action.
	Action *string
}

CheckAccessResponse - The properties of a check access response.

func (CheckAccessResponse) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type CheckAccessResponse.

func (*CheckAccessResponse) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type CheckAccessResponse.

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(subscriptionID string, 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.

  • subscriptionID - The ID that uniquely identifies a billing subscription.
  • credential - used to authorize requests. Usually a credential from azidentity.
  • options - pass nil to accept the default values.

func (*ClientFactory) NewAccountsClient

func (c *ClientFactory) NewAccountsClient() *AccountsClient

NewAccountsClient creates a new instance of AccountsClient.

func (*ClientFactory) NewAddressClient

func (c *ClientFactory) NewAddressClient() *AddressClient

NewAddressClient creates a new instance of AddressClient.

func (*ClientFactory) NewAgreementsClient

func (c *ClientFactory) NewAgreementsClient() *AgreementsClient

NewAgreementsClient creates a new instance of AgreementsClient.

func (*ClientFactory) NewAssociatedTenantsClient

func (c *ClientFactory) NewAssociatedTenantsClient() *AssociatedTenantsClient

NewAssociatedTenantsClient creates a new instance of AssociatedTenantsClient.

func (*ClientFactory) NewAvailableBalancesClient

func (c *ClientFactory) NewAvailableBalancesClient() *AvailableBalancesClient

NewAvailableBalancesClient creates a new instance of AvailableBalancesClient.

func (*ClientFactory) NewCustomersClient

func (c *ClientFactory) NewCustomersClient() *CustomersClient

NewCustomersClient creates a new instance of CustomersClient.

func (*ClientFactory) NewDepartmentsClient

func (c *ClientFactory) NewDepartmentsClient() *DepartmentsClient

NewDepartmentsClient creates a new instance of DepartmentsClient.

func (*ClientFactory) NewEnrollmentAccountsClient

func (c *ClientFactory) NewEnrollmentAccountsClient() *EnrollmentAccountsClient

NewEnrollmentAccountsClient creates a new instance of EnrollmentAccountsClient.

func (*ClientFactory) NewInvoiceSectionsClient

func (c *ClientFactory) NewInvoiceSectionsClient() *InvoiceSectionsClient

NewInvoiceSectionsClient creates a new instance of InvoiceSectionsClient.

func (*ClientFactory) NewInvoicesClient

func (c *ClientFactory) NewInvoicesClient() *InvoicesClient

NewInvoicesClient creates a new instance of InvoicesClient.

func (*ClientFactory) NewOperationsClient

func (c *ClientFactory) NewOperationsClient() *OperationsClient

NewOperationsClient creates a new instance of OperationsClient.

func (*ClientFactory) NewPartnerTransfersClient

func (c *ClientFactory) NewPartnerTransfersClient() *PartnerTransfersClient

NewPartnerTransfersClient creates a new instance of PartnerTransfersClient.

func (*ClientFactory) NewPaymentMethodsClient

func (c *ClientFactory) NewPaymentMethodsClient() *PaymentMethodsClient

NewPaymentMethodsClient creates a new instance of PaymentMethodsClient.

func (*ClientFactory) NewPermissionsClient

func (c *ClientFactory) NewPermissionsClient() *PermissionsClient

NewPermissionsClient creates a new instance of PermissionsClient.

func (*ClientFactory) NewPoliciesClient

func (c *ClientFactory) NewPoliciesClient() *PoliciesClient

NewPoliciesClient creates a new instance of PoliciesClient.

func (*ClientFactory) NewProductsClient

func (c *ClientFactory) NewProductsClient() *ProductsClient

NewProductsClient creates a new instance of ProductsClient.

func (*ClientFactory) NewProfilesClient

func (c *ClientFactory) NewProfilesClient() *ProfilesClient

NewProfilesClient creates a new instance of ProfilesClient.

func (*ClientFactory) NewPropertyClient

func (c *ClientFactory) NewPropertyClient() *PropertyClient

NewPropertyClient creates a new instance of PropertyClient.

func (*ClientFactory) NewRecipientTransfersClient

func (c *ClientFactory) NewRecipientTransfersClient() *RecipientTransfersClient

NewRecipientTransfersClient creates a new instance of RecipientTransfersClient.

func (*ClientFactory) NewRequestsClient

func (c *ClientFactory) NewRequestsClient() *RequestsClient

NewRequestsClient creates a new instance of RequestsClient.

func (*ClientFactory) NewReservationOrdersClient

func (c *ClientFactory) NewReservationOrdersClient() *ReservationOrdersClient

NewReservationOrdersClient creates a new instance of ReservationOrdersClient.

func (*ClientFactory) NewReservationsClient

func (c *ClientFactory) NewReservationsClient() *ReservationsClient

NewReservationsClient creates a new instance of ReservationsClient.

func (*ClientFactory) NewRoleAssignmentsClient

func (c *ClientFactory) NewRoleAssignmentsClient() *RoleAssignmentsClient

NewRoleAssignmentsClient creates a new instance of RoleAssignmentsClient.

func (*ClientFactory) NewRoleDefinitionClient

func (c *ClientFactory) NewRoleDefinitionClient() *RoleDefinitionClient

NewRoleDefinitionClient creates a new instance of RoleDefinitionClient.

func (*ClientFactory) NewSavingsPlanOrdersClient

func (c *ClientFactory) NewSavingsPlanOrdersClient() *SavingsPlanOrdersClient

NewSavingsPlanOrdersClient creates a new instance of SavingsPlanOrdersClient.

func (*ClientFactory) NewSavingsPlansClient

func (c *ClientFactory) NewSavingsPlansClient() *SavingsPlansClient

NewSavingsPlansClient creates a new instance of SavingsPlansClient.

func (*ClientFactory) NewSubscriptionsAliasesClient

func (c *ClientFactory) NewSubscriptionsAliasesClient() *SubscriptionsAliasesClient

NewSubscriptionsAliasesClient creates a new instance of SubscriptionsAliasesClient.

func (*ClientFactory) NewSubscriptionsClient

func (c *ClientFactory) NewSubscriptionsClient() *SubscriptionsClient

NewSubscriptionsClient creates a new instance of SubscriptionsClient.

func (*ClientFactory) NewTransactionsClient

func (c *ClientFactory) NewTransactionsClient() *TransactionsClient

NewTransactionsClient creates a new instance of TransactionsClient.

func (*ClientFactory) NewTransfersClient

func (c *ClientFactory) NewTransfersClient() *TransfersClient

NewTransfersClient creates a new instance of TransfersClient.

type Commitment

type Commitment struct {
	Amount *float64

	// The ISO 4217 3-letter currency code for the currency used by this purchase record.
	CurrencyCode *string

	// Commitment grain.
	Grain *CommitmentGrain
}

Commitment towards the benefit.

func (Commitment) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type Commitment.

func (*Commitment) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type Commitment.

type CommitmentGrain

type CommitmentGrain string

CommitmentGrain - Commitment grain.

const (
	CommitmentGrainHourly CommitmentGrain = "Hourly"
)

func PossibleCommitmentGrainValues

func PossibleCommitmentGrainValues() []CommitmentGrain

PossibleCommitmentGrainValues returns the possible values for the CommitmentGrain const type.

type CreatedByType

type CreatedByType string

CreatedByType - The type of identity that created the resource.

const (
	CreatedByTypeApplication     CreatedByType = "Application"
	CreatedByTypeKey             CreatedByType = "Key"
	CreatedByTypeManagedIdentity CreatedByType = "ManagedIdentity"
	CreatedByTypeUser            CreatedByType = "User"
)

func PossibleCreatedByTypeValues

func PossibleCreatedByTypeValues() []CreatedByType

PossibleCreatedByTypeValues returns the possible values for the CreatedByType const type.

type CreditType

type CreditType string

CreditType - The credit type of the transaction. Applies only to credited transactions.

const (
	CreditTypeAzureCreditOffer    CreditType = "AzureCreditOffer"
	CreditTypeAzureFreeCredit     CreditType = "AzureFreeCredit"
	CreditTypeOther               CreditType = "Other"
	CreditTypeRefund              CreditType = "Refund"
	CreditTypeServiceInterruption CreditType = "ServiceInterruption"
)

func PossibleCreditTypeValues

func PossibleCreditTypeValues() []CreditType

PossibleCreditTypeValues returns the possible values for the CreditType const type.

type Customer

type Customer struct {
	// A partner's customer.
	Properties *CustomerProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

Customer - A partner's customer.

func (Customer) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type Customer.

func (*Customer) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type Customer.

type CustomerListResult

type CustomerListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*Customer
}

CustomerListResult - A container for a list of resources

func (CustomerListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type CustomerListResult.

func (*CustomerListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type CustomerListResult.

type CustomerPolicy

type CustomerPolicy struct {
	// A policy at customer scope.
	Properties *CustomerPolicyProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

CustomerPolicy - A policy at customer scope.

func (CustomerPolicy) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type CustomerPolicy.

func (*CustomerPolicy) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type CustomerPolicy.

type CustomerPolicyProperties

type CustomerPolicyProperties struct {
	// REQUIRED; The policy that controls whether the users in customer's organization can view charges at pay-as-you-go prices.
	ViewCharges *ViewChargesPolicy

	// List of all policies defined at the billing scope.
	Policies []*PolicySummary

	// READ-ONLY; The provisioning state of the resource during a long-running operation.
	ProvisioningState *ProvisioningState
}

CustomerPolicyProperties - A policy at customer scope.

func (CustomerPolicyProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type CustomerPolicyProperties.

func (*CustomerPolicyProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type CustomerPolicyProperties.

type CustomerProperties

type CustomerProperties struct {
	// Azure plans enabled for the customer.
	EnabledAzurePlans []*AzurePlan

	// The list of resellers for which an Azure plan is enabled for the customer.
	Resellers []*Reseller

	// Dictionary of metadata associated with the resource. Maximum key/value length supported of 256 characters. Keys/value should
	// not empty value nor null. Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; The name of the billing profile.
	BillingProfileDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies a billing profile.
	BillingProfileID *string

	// READ-ONLY; The name of the customer.
	DisplayName *string

	// READ-ONLY; Identifies the status of an customer. This is an upcoming property that will be populated in the future.
	Status *CustomerStatus

	// READ-ONLY; The system generated unique identifier for a customer.
	SystemID *string
}

CustomerProperties - A partner's customer.

func (CustomerProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type CustomerProperties.

func (*CustomerProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type CustomerProperties.

type CustomerStatus

type CustomerStatus string

CustomerStatus - Identifies the status of an customer. This is an upcoming property that will be populated in the future.

const (
	CustomerStatusActive      CustomerStatus = "Active"
	CustomerStatusDeleted     CustomerStatus = "Deleted"
	CustomerStatusDisabled    CustomerStatus = "Disabled"
	CustomerStatusOther       CustomerStatus = "Other"
	CustomerStatusPending     CustomerStatus = "Pending"
	CustomerStatusUnderReview CustomerStatus = "UnderReview"
	CustomerStatusWarned      CustomerStatus = "Warned"
)

func PossibleCustomerStatusValues

func PossibleCustomerStatusValues() []CustomerStatus

PossibleCustomerStatusValues returns the possible values for the CustomerStatus const type.

type CustomersClient

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

CustomersClient contains the methods for the Customers group. Don't use this type directly, use NewCustomersClient() instead.

func NewCustomersClient

func NewCustomersClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*CustomersClient, error)

NewCustomersClient creates a new instance of CustomersClient with the specified values.

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

func (*CustomersClient) Get

func (client *CustomersClient) Get(ctx context.Context, billingAccountName string, billingProfileName string, customerName string, options *CustomersClientGetOptions) (CustomersClientGetResponse, error)

Get - Gets a customer by its ID. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • options - CustomersClientGetOptions contains the optional parameters for the CustomersClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/customersGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewCustomersClient().Get(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "11111111-1111-1111-1111-111111111111", 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.Customer = armbilling.Customer{
	// 	Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111"),
	// 	Properties: &armbilling.CustomerProperties{
	// 		BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		DisplayName: to.Ptr("customer1"),
	// 		EnabledAzurePlans: []*armbilling.AzurePlan{
	// 			{
	// 				SKUDescription: to.Ptr("Microsoft Azure Plan for DevTest"),
	// 				SKUID: to.Ptr("0002"),
	// 		}},
	// 		Resellers: []*armbilling.Reseller{
	// 			{
	// 				Description: to.Ptr("Reseller1"),
	// 				ResellerID: to.Ptr("89e87bdf-a2a2-4687-925f-4c18b27bccfd"),
	// 			},
	// 			{
	// 				Description: to.Ptr("Reseller2"),
	// 				ResellerID: to.Ptr("3b65b5a8-bd4f-4084-90e9-e1bd667a2b19"),
	// 		}},
	// 		Status: to.Ptr(armbilling.CustomerStatusActive),
	// 		SystemID: to.Ptr("yyyy-yyyy-yyy-yyy"),
	// 		Tags: map[string]*string{
	// 			"costCategory": to.Ptr("Support"),
	// 			"pcCode": to.Ptr("A123456"),
	// 		},
	// 	},
	// }
}

func (*CustomersClient) GetByBillingAccount

func (client *CustomersClient) GetByBillingAccount(ctx context.Context, billingAccountName string, customerName string, options *CustomersClientGetByBillingAccountOptions) (CustomersClientGetByBillingAccountResponse, error)

GetByBillingAccount - Gets a customer by its ID at billing account level. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • customerName - The ID that uniquely identifies a customer.
  • options - CustomersClientGetByBillingAccountOptions contains the optional parameters for the CustomersClient.GetByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/customersGetByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewCustomersClient().GetByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", 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.Customer = armbilling.Customer{
	// 	Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111"),
	// 	Properties: &armbilling.CustomerProperties{
	// 		BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		DisplayName: to.Ptr("customer1"),
	// 		EnabledAzurePlans: []*armbilling.AzurePlan{
	// 			{
	// 				SKUDescription: to.Ptr("Microsoft Azure Plan for DevTest"),
	// 				SKUID: to.Ptr("0002"),
	// 		}},
	// 		Resellers: []*armbilling.Reseller{
	// 			{
	// 				Description: to.Ptr("Reseller1"),
	// 				ResellerID: to.Ptr("89e87bdf-a2a2-4687-925f-4c18b27bccfd"),
	// 			},
	// 			{
	// 				Description: to.Ptr("Reseller2"),
	// 				ResellerID: to.Ptr("3b65b5a8-bd4f-4084-90e9-e1bd667a2b19"),
	// 		}},
	// 		Status: to.Ptr(armbilling.CustomerStatusActive),
	// 		SystemID: to.Ptr("yyyy-yyyy-yyy-yyy"),
	// 		Tags: map[string]*string{
	// 			"costCategory": to.Ptr("Support"),
	// 			"pcCode": to.Ptr("A123456"),
	// 		},
	// 	},
	// }
}

func (*CustomersClient) NewListByBillingAccountPager

func (client *CustomersClient) NewListByBillingAccountPager(billingAccountName string, options *CustomersClientListByBillingAccountOptions) *runtime.Pager[CustomersClientListByBillingAccountResponse]

NewListByBillingAccountPager - Lists the customers that are billed to a billing account. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - CustomersClientListByBillingAccountOptions contains the optional parameters for the CustomersClient.NewListByBillingAccountPager method.
Example (CustomersListByBillingAccount)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/customersListByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewCustomersClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.CustomersClientListByBillingAccountOptions{Expand: nil,
		Filter:  nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.CustomerListResult = armbilling.CustomerListResult{
		// 	Value: []*armbilling.Customer{
		// 		{
		// 			Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111"),
		// 			Properties: &armbilling.CustomerProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("customer1"),
		// 				Status: to.Ptr(armbilling.CustomerStatusActive),
		// 				SystemID: to.Ptr("yyyy-yyyy-yyy-yyy"),
		// 				Tags: map[string]*string{
		// 					"costCategory": to.Ptr("Support"),
		// 					"pcCode": to.Ptr("A123456"),
		// 				},
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("22222222-2222-2222-2222-222222222222"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/22222222-2222-2222-2222-222222222222"),
		// 			Properties: &armbilling.CustomerProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("customer2"),
		// 				Status: to.Ptr(armbilling.CustomerStatusActive),
		// 				SystemID: to.Ptr("zzzz-zzzz-zzz-zzz"),
		// 			},
		// 	}},
		// }
	}
}
Example (CustomersListByBillingAccountWithExpand)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/customersListByBillingAccountWithExpand.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewCustomersClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.CustomersClientListByBillingAccountOptions{Expand: to.Ptr("enabledAzurePlans,resellers"),
		Filter:  nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.CustomerListResult = armbilling.CustomerListResult{
		// 	Value: []*armbilling.Customer{
		// 		{
		// 			Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111"),
		// 			Properties: &armbilling.CustomerProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("customer1"),
		// 				EnabledAzurePlans: []*armbilling.AzurePlan{
		// 					{
		// 						SKUDescription: to.Ptr("Microsoft Azure Plan for DevTest"),
		// 						SKUID: to.Ptr("0002"),
		// 				}},
		// 				Resellers: []*armbilling.Reseller{
		// 					{
		// 						Description: to.Ptr("Reseller1"),
		// 						ResellerID: to.Ptr("89e87bdf-a2a2-4687-925f-4c18b27bccfd"),
		// 					},
		// 					{
		// 						Description: to.Ptr("Reseller2"),
		// 						ResellerID: to.Ptr("3b65b5a8-bd4f-4084-90e9-e1bd667a2b19"),
		// 				}},
		// 				Status: to.Ptr(armbilling.CustomerStatusActive),
		// 				SystemID: to.Ptr("yyyy-yyyy-yyy-yyy"),
		// 				Tags: map[string]*string{
		// 					"costCategory": to.Ptr("Support"),
		// 					"pcCode": to.Ptr("A123456"),
		// 				},
		// 			},
		// 	}},
		// }
	}
}

func (*CustomersClient) NewListByBillingProfilePager

func (client *CustomersClient) NewListByBillingProfilePager(billingAccountName string, billingProfileName string, options *CustomersClientListByBillingProfileOptions) *runtime.Pager[CustomersClientListByBillingProfileResponse]

NewListByBillingProfilePager - Lists the customers that are billed to a billing profile. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - CustomersClientListByBillingProfileOptions contains the optional parameters for the CustomersClient.NewListByBillingProfilePager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/customersListByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewCustomersClient().NewListByBillingProfilePager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", &armbilling.CustomersClientListByBillingProfileOptions{Expand: nil,
		Filter:  nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.CustomerListResult = armbilling.CustomerListResult{
		// 	Value: []*armbilling.Customer{
		// 		{
		// 			Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111"),
		// 			Properties: &armbilling.CustomerProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("customer1"),
		// 				Status: to.Ptr(armbilling.CustomerStatusActive),
		// 				SystemID: to.Ptr("yyyy-yyyy-yyy-yyy"),
		// 				Tags: map[string]*string{
		// 					"costCategory": to.Ptr("Support"),
		// 					"pcCode": to.Ptr("A123456"),
		// 				},
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("22222222-2222-2222-2222-222222222222"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/22222222-2222-2222-2222-222222222222"),
		// 			Properties: &armbilling.CustomerProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("customer2"),
		// 				Status: to.Ptr(armbilling.CustomerStatusActive),
		// 				SystemID: to.Ptr("zzzz-zzzz-zzz-zzz"),
		// 			},
		// 	}},
		// }
	}
}

type CustomersClientGetByBillingAccountOptions

type CustomersClientGetByBillingAccountOptions struct {
}

CustomersClientGetByBillingAccountOptions contains the optional parameters for the CustomersClient.GetByBillingAccount method.

type CustomersClientGetByBillingAccountResponse

type CustomersClientGetByBillingAccountResponse struct {
	// A partner's customer.
	Customer
}

CustomersClientGetByBillingAccountResponse contains the response from method CustomersClient.GetByBillingAccount.

type CustomersClientGetOptions

type CustomersClientGetOptions struct {
}

CustomersClientGetOptions contains the optional parameters for the CustomersClient.Get method.

type CustomersClientGetResponse

type CustomersClientGetResponse struct {
	// A partner's customer.
	Customer
}

CustomersClientGetResponse contains the response from method CustomersClient.Get.

type CustomersClientListByBillingAccountOptions

type CustomersClientListByBillingAccountOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// May be used to expand enabledAzurePlans and resellers
	Expand *string

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

CustomersClientListByBillingAccountOptions contains the optional parameters for the CustomersClient.NewListByBillingAccountPager method.

type CustomersClientListByBillingAccountResponse

type CustomersClientListByBillingAccountResponse struct {
	// A container for a list of resources
	CustomerListResult
}

CustomersClientListByBillingAccountResponse contains the response from method CustomersClient.NewListByBillingAccountPager.

type CustomersClientListByBillingProfileOptions

type CustomersClientListByBillingProfileOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// May be used to expand enabledAzurePlans and resellers
	Expand *string

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

CustomersClientListByBillingProfileOptions contains the optional parameters for the CustomersClient.NewListByBillingProfilePager method.

type CustomersClientListByBillingProfileResponse

type CustomersClientListByBillingProfileResponse struct {
	// A container for a list of resources
	CustomerListResult
}

CustomersClientListByBillingProfileResponse contains the response from method CustomersClient.NewListByBillingProfilePager.

type DeleteBillingProfileEligibilityCode

type DeleteBillingProfileEligibilityCode string

DeleteBillingProfileEligibilityCode - Code of the delete invoice section eligibility response.

const (
	DeleteBillingProfileEligibilityCodeActiveBillingSubscriptions DeleteBillingProfileEligibilityCode = "ActiveBillingSubscriptions"
	DeleteBillingProfileEligibilityCodeActiveCreditCard           DeleteBillingProfileEligibilityCode = "ActiveCreditCard"
	DeleteBillingProfileEligibilityCodeActiveCredits              DeleteBillingProfileEligibilityCode = "ActiveCredits"
	DeleteBillingProfileEligibilityCodeLastBillingProfile         DeleteBillingProfileEligibilityCode = "LastBillingProfile"
	DeleteBillingProfileEligibilityCodeNone                       DeleteBillingProfileEligibilityCode = "None"
	DeleteBillingProfileEligibilityCodeNotSupported               DeleteBillingProfileEligibilityCode = "NotSupported"
	DeleteBillingProfileEligibilityCodeOutstandingCharges         DeleteBillingProfileEligibilityCode = "OutstandingCharges"
	DeleteBillingProfileEligibilityCodePendingCharges             DeleteBillingProfileEligibilityCode = "PendingCharges"
	DeleteBillingProfileEligibilityCodeReservedInstances          DeleteBillingProfileEligibilityCode = "ReservedInstances"
)

func PossibleDeleteBillingProfileEligibilityCodeValues

func PossibleDeleteBillingProfileEligibilityCodeValues() []DeleteBillingProfileEligibilityCode

PossibleDeleteBillingProfileEligibilityCodeValues returns the possible values for the DeleteBillingProfileEligibilityCode const type.

type DeleteBillingProfileEligibilityDetail

type DeleteBillingProfileEligibilityDetail struct {
	// Code of the delete invoice section eligibility response.
	Code *DeleteBillingProfileEligibilityCode

	// Validation message.
	Message *string
}

DeleteBillingProfileEligibilityDetail - Validation details of delete billing profile eligibility.

func (DeleteBillingProfileEligibilityDetail) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type DeleteBillingProfileEligibilityDetail.

func (*DeleteBillingProfileEligibilityDetail) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type DeleteBillingProfileEligibilityDetail.

type DeleteBillingProfileEligibilityResult

type DeleteBillingProfileEligibilityResult struct {
	// Validation details of delete billing profile eligibility.
	EligibilityDetails []*DeleteBillingProfileEligibilityDetail

	// Status describing if billing profile is eligible to be deleted.
	EligibilityStatus *DeleteBillingProfileEligibilityStatus
}

DeleteBillingProfileEligibilityResult - Eligibility to delete a billing profile result.

func (DeleteBillingProfileEligibilityResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type DeleteBillingProfileEligibilityResult.

func (*DeleteBillingProfileEligibilityResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type DeleteBillingProfileEligibilityResult.

type DeleteBillingProfileEligibilityStatus

type DeleteBillingProfileEligibilityStatus string

DeleteBillingProfileEligibilityStatus - Status describing if billing profile is eligible to be deleted.

const (
	DeleteBillingProfileEligibilityStatusAllowed    DeleteBillingProfileEligibilityStatus = "Allowed"
	DeleteBillingProfileEligibilityStatusNotAllowed DeleteBillingProfileEligibilityStatus = "NotAllowed"
)

func PossibleDeleteBillingProfileEligibilityStatusValues

func PossibleDeleteBillingProfileEligibilityStatusValues() []DeleteBillingProfileEligibilityStatus

PossibleDeleteBillingProfileEligibilityStatusValues returns the possible values for the DeleteBillingProfileEligibilityStatus const type.

type DeleteInvoiceSectionEligibilityCode

type DeleteInvoiceSectionEligibilityCode string

DeleteInvoiceSectionEligibilityCode - Code for the delete invoice section validation.

const (
	DeleteInvoiceSectionEligibilityCodeActiveAzurePlans           DeleteInvoiceSectionEligibilityCode = "ActiveAzurePlans"
	DeleteInvoiceSectionEligibilityCodeActiveBillingSubscriptions DeleteInvoiceSectionEligibilityCode = "ActiveBillingSubscriptions"
	DeleteInvoiceSectionEligibilityCodeLastInvoiceSection         DeleteInvoiceSectionEligibilityCode = "LastInvoiceSection"
	DeleteInvoiceSectionEligibilityCodeOther                      DeleteInvoiceSectionEligibilityCode = "Other"
	DeleteInvoiceSectionEligibilityCodeReservedInstances          DeleteInvoiceSectionEligibilityCode = "ReservedInstances"
)

func PossibleDeleteInvoiceSectionEligibilityCodeValues

func PossibleDeleteInvoiceSectionEligibilityCodeValues() []DeleteInvoiceSectionEligibilityCode

PossibleDeleteInvoiceSectionEligibilityCodeValues returns the possible values for the DeleteInvoiceSectionEligibilityCode const type.

type DeleteInvoiceSectionEligibilityDetail

type DeleteInvoiceSectionEligibilityDetail struct {
	// Code for the delete invoice section validation.
	Code *DeleteInvoiceSectionEligibilityCode

	// Validation message.
	Message *string
}

DeleteInvoiceSectionEligibilityDetail - The details of delete invoice section eligibility result.

func (DeleteInvoiceSectionEligibilityDetail) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type DeleteInvoiceSectionEligibilityDetail.

func (*DeleteInvoiceSectionEligibilityDetail) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type DeleteInvoiceSectionEligibilityDetail.

type DeleteInvoiceSectionEligibilityResult

type DeleteInvoiceSectionEligibilityResult struct {
	// A list of delete invoice section eligibility result details.
	EligibilityDetails []*DeleteInvoiceSectionEligibilityDetail

	// Status describing if invoice section is eligible to be deleted.
	EligibilityStatus *DeleteInvoiceSectionEligibilityStatus
}

DeleteInvoiceSectionEligibilityResult - Eligibility to delete an invoice section result.

func (DeleteInvoiceSectionEligibilityResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type DeleteInvoiceSectionEligibilityResult.

func (*DeleteInvoiceSectionEligibilityResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type DeleteInvoiceSectionEligibilityResult.

type DeleteInvoiceSectionEligibilityStatus

type DeleteInvoiceSectionEligibilityStatus string

DeleteInvoiceSectionEligibilityStatus - Status describing if invoice section is eligible to be deleted.

const (
	DeleteInvoiceSectionEligibilityStatusAllowed    DeleteInvoiceSectionEligibilityStatus = "Allowed"
	DeleteInvoiceSectionEligibilityStatusNotAllowed DeleteInvoiceSectionEligibilityStatus = "NotAllowed"
)

func PossibleDeleteInvoiceSectionEligibilityStatusValues

func PossibleDeleteInvoiceSectionEligibilityStatusValues() []DeleteInvoiceSectionEligibilityStatus

PossibleDeleteInvoiceSectionEligibilityStatusValues returns the possible values for the DeleteInvoiceSectionEligibilityStatus const type.

type Department

type Department struct {
	// Optional grouping of enrollment accounts to segment costs into logical groupings and set budgets.
	Properties *DepartmentProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

Department - Optional grouping of enrollment accounts to segment costs into logical groupings and set budgets.

func (Department) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type Department.

func (*Department) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type Department.

type DepartmentListResult

type DepartmentListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*Department
}

DepartmentListResult - A container for a list of resources

func (DepartmentListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type DepartmentListResult.

func (*DepartmentListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type DepartmentListResult.

type DepartmentProperties

type DepartmentProperties struct {
	// The cost center associated with the department.
	CostCenter *string

	// The name of the department.
	DisplayName *string

	// READ-ONLY; The ID that uniquely identifies the department.
	ID *string

	// READ-ONLY; The status of the department.
	Status *string
}

DepartmentProperties - Optional grouping of enrollment accounts to segment costs into logical groupings and set budgets.

func (DepartmentProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type DepartmentProperties.

func (*DepartmentProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type DepartmentProperties.

type DepartmentsClient

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

DepartmentsClient contains the methods for the Departments group. Don't use this type directly, use NewDepartmentsClient() instead.

func NewDepartmentsClient

func NewDepartmentsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*DepartmentsClient, error)

NewDepartmentsClient creates a new instance of DepartmentsClient with the specified values.

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

func (*DepartmentsClient) Get

func (client *DepartmentsClient) Get(ctx context.Context, billingAccountName string, departmentName string, options *DepartmentsClientGetOptions) (DepartmentsClientGetResponse, error)

Get - Gets a department by ID. The operation is supported only for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • departmentName - The name of the department.
  • options - DepartmentsClientGetOptions contains the optional parameters for the DepartmentsClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/departmentGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewDepartmentsClient().Get(ctx, "456598", "164821", 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.Department = armbilling.Department{
	// 	Name: to.Ptr("164821"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/departments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/456598/departments/164821"),
	// 	Properties: &armbilling.DepartmentProperties{
	// 		CostCenter: to.Ptr("C1"),
	// 		DisplayName: to.Ptr("Test department"),
	// 		Status: to.Ptr("Active"),
	// 	},
	// }
}

func (*DepartmentsClient) NewListByBillingAccountPager

func (client *DepartmentsClient) NewListByBillingAccountPager(billingAccountName string, options *DepartmentsClientListByBillingAccountOptions) *runtime.Pager[DepartmentsClientListByBillingAccountResponse]

NewListByBillingAccountPager - Lists the departments that a user has access to. The operation is supported only for billing accounts with agreement type Enterprise Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - DepartmentsClientListByBillingAccountOptions contains the optional parameters for the DepartmentsClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/departmentsListByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewDepartmentsClient().NewListByBillingAccountPager("456598", &armbilling.DepartmentsClientListByBillingAccountOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Search:  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.DepartmentListResult = armbilling.DepartmentListResult{
		// 	Value: []*armbilling.Department{
		// 		{
		// 			Name: to.Ptr("164821"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/departments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/456598/departments/164821"),
		// 			Properties: &armbilling.DepartmentProperties{
		// 				CostCenter: to.Ptr("C1"),
		// 				DisplayName: to.Ptr("departmentName1"),
		// 				Status: to.Ptr("Active"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("164822"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/departments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/456598/departments/164822"),
		// 			Properties: &armbilling.DepartmentProperties{
		// 				CostCenter: to.Ptr("C4"),
		// 				DisplayName: to.Ptr("departmentName2"),
		// 				Status: to.Ptr("Active"),
		// 			},
		// 	}},
		// }
	}
}

type DepartmentsClientGetOptions

type DepartmentsClientGetOptions struct {
}

DepartmentsClientGetOptions contains the optional parameters for the DepartmentsClient.Get method.

type DepartmentsClientGetResponse

type DepartmentsClientGetResponse struct {
	// Optional grouping of enrollment accounts to segment costs into logical groupings and set budgets.
	Department
}

DepartmentsClientGetResponse contains the response from method DepartmentsClient.Get.

type DepartmentsClientListByBillingAccountOptions

type DepartmentsClientListByBillingAccountOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

DepartmentsClientListByBillingAccountOptions contains the optional parameters for the DepartmentsClient.NewListByBillingAccountPager method.

type DepartmentsClientListByBillingAccountResponse

type DepartmentsClientListByBillingAccountResponse struct {
	// A container for a list of resources
	DepartmentListResult
}

DepartmentsClientListByBillingAccountResponse contains the response from method DepartmentsClient.NewListByBillingAccountPager.

type DetailedTransferStatus

type DetailedTransferStatus struct {
	// Error details for transfer execution.
	ErrorDetails *TransferError

	// READ-ONLY; The ID of the product that is transferred.
	ProductID *string

	// READ-ONLY; The name of the product that is transferred.
	ProductName *string

	// READ-ONLY; Type of product that is transferred.
	ProductType *ProductType

	// READ-ONLY; The SKU of the product that is transferred.
	SKUDescription *string

	// READ-ONLY; Transfer status.
	TransferStatus *ProductTransferStatus
}

DetailedTransferStatus - Detailed transfer status.

func (DetailedTransferStatus) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type DetailedTransferStatus.

func (*DetailedTransferStatus) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type DetailedTransferStatus.

type DocumentDownloadRequest

type DocumentDownloadRequest struct {
	// The ID that uniquely identifies an invoice document. This ID may be an identifier for an invoice PDF, a credit note, or
	// a tax receipt. If omitted, the most recent invoice PDF for the invoice will be
	// returned.
	DocumentName *string

	// The ID that uniquely identifies an invoice.
	InvoiceName *string
}

DocumentDownloadRequest - A list of download details for individual documents.

func (DocumentDownloadRequest) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type DocumentDownloadRequest.

func (*DocumentDownloadRequest) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type DocumentDownloadRequest.

type DocumentDownloadResult

type DocumentDownloadResult struct {
	// READ-ONLY; The time in UTC when the download URL will expire.
	ExpiryTime *string

	// READ-ONLY; The URL to the PDF or .zip file.
	URL *string
}

DocumentDownloadResult - A secure URL that can be used to download a an entity until the URL expires.

func (DocumentDownloadResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type DocumentDownloadResult.

func (*DocumentDownloadResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type DocumentDownloadResult.

type DocumentSource

type DocumentSource string

DocumentSource - The source of the document. ENF for Brazil and DRS for rest of the world.

const (
	DocumentSourceDRS   DocumentSource = "DRS"
	DocumentSourceENF   DocumentSource = "ENF"
	DocumentSourceOther DocumentSource = "Other"
)

func PossibleDocumentSourceValues

func PossibleDocumentSourceValues() []DocumentSource

PossibleDocumentSourceValues returns the possible values for the DocumentSource const type.

type EligibleProductType

type EligibleProductType string

EligibleProductType - Type of the products that can be transferred.

const (
	EligibleProductTypeAzureReservation          EligibleProductType = "AzureReservation"
	EligibleProductTypeDevTestAzureSubscription  EligibleProductType = "DevTestAzureSubscription"
	EligibleProductTypeStandardAzureSubscription EligibleProductType = "StandardAzureSubscription"
)

func PossibleEligibleProductTypeValues

func PossibleEligibleProductTypeValues() []EligibleProductType

PossibleEligibleProductTypeValues returns the possible values for the EligibleProductType const type.

type EnrollmentAccount

type EnrollmentAccount struct {
	// It is an organizational hierarchy within a billing account to administer and manage azure costs.
	Properties *EnrollmentAccountProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

EnrollmentAccount - It is an organizational hierarchy within a billing account to administer and manage azure costs.

func (EnrollmentAccount) MarshalJSON

func (e EnrollmentAccount) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type EnrollmentAccount.

func (*EnrollmentAccount) UnmarshalJSON

func (e *EnrollmentAccount) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type EnrollmentAccount.

type EnrollmentAccountListResult

type EnrollmentAccountListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*EnrollmentAccount
}

EnrollmentAccountListResult - A container for a list of resources

func (EnrollmentAccountListResult) MarshalJSON

func (e EnrollmentAccountListResult) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type EnrollmentAccountListResult.

func (*EnrollmentAccountListResult) UnmarshalJSON

func (e *EnrollmentAccountListResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type EnrollmentAccountListResult.

type EnrollmentAccountOwnerViewCharges

type EnrollmentAccountOwnerViewCharges string

EnrollmentAccountOwnerViewCharges - The policy that controls whether account owner can view charges.

const (
	EnrollmentAccountOwnerViewChargesAllowed    EnrollmentAccountOwnerViewCharges = "Allowed"
	EnrollmentAccountOwnerViewChargesDisabled   EnrollmentAccountOwnerViewCharges = "Disabled"
	EnrollmentAccountOwnerViewChargesNotAllowed EnrollmentAccountOwnerViewCharges = "NotAllowed"
	EnrollmentAccountOwnerViewChargesOther      EnrollmentAccountOwnerViewCharges = "Other"
)

func PossibleEnrollmentAccountOwnerViewChargesValues

func PossibleEnrollmentAccountOwnerViewChargesValues() []EnrollmentAccountOwnerViewCharges

PossibleEnrollmentAccountOwnerViewChargesValues returns the possible values for the EnrollmentAccountOwnerViewCharges const type.

type EnrollmentAccountProperties

type EnrollmentAccountProperties struct {
	// The cost center associated with the enrollment account.
	CostCenter *string

	// The name of the enrollment account.
	DisplayName *string

	// Boolean flag which enables subscribers to run development and testing workloads on Azure at special Dev/Test rates.
	IsDevTestEnabled *bool

	// READ-ONLY; The owner of the enrollment account.
	AccountOwner *string

	// READ-ONLY; The authorization type of the enrollment account.
	AuthType *string

	// READ-ONLY; The name of the department under which the enrollment account exists.
	DepartmentDisplayName *string

	// READ-ONLY; The ID that uniquely identifies the department.
	DepartmentID *string

	// READ-ONLY; The date of expiration of the enrollment account.
	EndDate *time.Time

	// READ-ONLY; The date from which the enrollment account became valid and functional.
	StartDate *time.Time

	// READ-ONLY; The status of the enrollment account.
	Status *string
}

EnrollmentAccountProperties - It is an organizational hierarchy within a billing account to administer and manage azure costs.

func (EnrollmentAccountProperties) MarshalJSON

func (e EnrollmentAccountProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type EnrollmentAccountProperties.

func (*EnrollmentAccountProperties) UnmarshalJSON

func (e *EnrollmentAccountProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type EnrollmentAccountProperties.

type EnrollmentAccountSubscriptionDetails

type EnrollmentAccountSubscriptionDetails struct {
	// READ-ONLY; The enrollment Account and the subscription association start date. This field is available only for the Enterprise
	// Agreement Type.
	EnrollmentAccountStartDate *time.Time

	// READ-ONLY; The current enrollment account status of the subscription. This field is available only for the Enterprise Agreement
	// Type.
	SubscriptionEnrollmentAccountStatus *SubscriptionEnrollmentAccountStatus
}

EnrollmentAccountSubscriptionDetails - The billing properties that can be modified. Available only for the Enterprise Agreement Type.

func (EnrollmentAccountSubscriptionDetails) MarshalJSON

func (e EnrollmentAccountSubscriptionDetails) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type EnrollmentAccountSubscriptionDetails.

func (*EnrollmentAccountSubscriptionDetails) UnmarshalJSON

func (e *EnrollmentAccountSubscriptionDetails) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type EnrollmentAccountSubscriptionDetails.

type EnrollmentAccountsClient

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

EnrollmentAccountsClient contains the methods for the EnrollmentAccounts group. Don't use this type directly, use NewEnrollmentAccountsClient() instead.

func NewEnrollmentAccountsClient

func NewEnrollmentAccountsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*EnrollmentAccountsClient, error)

NewEnrollmentAccountsClient creates a new instance of EnrollmentAccountsClient with the specified values.

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

func (*EnrollmentAccountsClient) Get

func (client *EnrollmentAccountsClient) Get(ctx context.Context, billingAccountName string, enrollmentAccountName string, options *EnrollmentAccountsClientGetOptions) (EnrollmentAccountsClientGetResponse, error)

Get - Gets an enrollment account by ID. The operation is supported only for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • enrollmentAccountName - The name of the enrollment account.
  • options - EnrollmentAccountsClientGetOptions contains the optional parameters for the EnrollmentAccountsClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/enrollmentAccountGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewEnrollmentAccountsClient().Get(ctx, "6564892", "257698", 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.EnrollmentAccount = armbilling.EnrollmentAccount{
	// 	Name: to.Ptr("257698"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6564892/enrollmentAccounts/257698"),
	// 	Properties: &armbilling.EnrollmentAccountProperties{
	// 		AccountOwner: to.Ptr("account0@contoso.com"),
	// 		AuthType: to.Ptr("Organization"),
	// 		CostCenter: to.Ptr("C0"),
	// 		DepartmentDisplayName: to.Ptr("TestDept123"),
	// 		DepartmentID: to.Ptr("234516"),
	// 		DisplayName: to.Ptr("AccountName0"),
	// 		EndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-05-31T17:32:28.000Z"); return t}()),
	// 		IsDevTestEnabled: to.Ptr(true),
	// 		StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-05-01T17:32:28.000Z"); return t}()),
	// 		Status: to.Ptr("Active"),
	// 	},
	// }
}

func (*EnrollmentAccountsClient) GetByDepartment

func (client *EnrollmentAccountsClient) GetByDepartment(ctx context.Context, billingAccountName string, departmentName string, enrollmentAccountName string, options *EnrollmentAccountsClientGetByDepartmentOptions) (EnrollmentAccountsClientGetByDepartmentResponse, error)

GetByDepartment - Gets an enrollment account by department. The operation is supported only for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • departmentName - The name of the department.
  • enrollmentAccountName - The name of the enrollment account.
  • options - EnrollmentAccountsClientGetByDepartmentOptions contains the optional parameters for the EnrollmentAccountsClient.GetByDepartment method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/enrollmentAccountByDepartment.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewEnrollmentAccountsClient().GetByDepartment(ctx, "6564892", "164821", "257698", 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.EnrollmentAccount = armbilling.EnrollmentAccount{
	// 	Name: to.Ptr("257698"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/departments/enrollmentAccounts"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6564892/departments/164821/enrollmentAccounts/257698"),
	// 	Properties: &armbilling.EnrollmentAccountProperties{
	// 		AccountOwner: to.Ptr("account0@contoso.com"),
	// 		AuthType: to.Ptr("MicrosoftAccount"),
	// 		CostCenter: to.Ptr("C0"),
	// 		DepartmentDisplayName: to.Ptr("TestDept"),
	// 		DepartmentID: to.Ptr("164821"),
	// 		DisplayName: to.Ptr("AccountName0"),
	// 		EndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-05-31T17:32:28.000Z"); return t}()),
	// 		IsDevTestEnabled: to.Ptr(true),
	// 		StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-05-01T17:32:28.000Z"); return t}()),
	// 		Status: to.Ptr("Active"),
	// 	},
	// }
}

func (*EnrollmentAccountsClient) NewListByBillingAccountPager

NewListByBillingAccountPager - Lists the enrollment accounts for a billing account. The operation is supported only for billing accounts with agreement type Enterprise Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - EnrollmentAccountsClientListByBillingAccountOptions contains the optional parameters for the EnrollmentAccountsClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/enrollmentAccountsListByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewEnrollmentAccountsClient().NewListByBillingAccountPager("6564892", &armbilling.EnrollmentAccountsClientListByBillingAccountOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.EnrollmentAccountListResult = armbilling.EnrollmentAccountListResult{
		// 	Value: []*armbilling.EnrollmentAccount{
		// 		{
		// 			Name: to.Ptr("257698"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6564892/enrollmentAccounts/257698"),
		// 			Properties: &armbilling.EnrollmentAccountProperties{
		// 				AccountOwner: to.Ptr("account0@contoso.com"),
		// 				AuthType: to.Ptr("Organization"),
		// 				CostCenter: to.Ptr("C0"),
		// 				DepartmentDisplayName: to.Ptr("TestDept123"),
		// 				DepartmentID: to.Ptr("234516"),
		// 				DisplayName: to.Ptr("AccountName0"),
		// 				EndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-05-31T17:32:28.000Z"); return t}()),
		// 				IsDevTestEnabled: to.Ptr(true),
		// 				StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-05-01T17:32:28.000Z"); return t}()),
		// 				Status: to.Ptr("Active"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("264698"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6564892/enrollmentAccounts/264698"),
		// 			Properties: &armbilling.EnrollmentAccountProperties{
		// 				AccountOwner: to.Ptr("account1@contoso.com"),
		// 				AuthType: to.Ptr("MicrosoftAccount"),
		// 				CostCenter: to.Ptr("C1"),
		// 				DepartmentDisplayName: to.Ptr("TestDept1"),
		// 				DepartmentID: to.Ptr("234531"),
		// 				DisplayName: to.Ptr("AccountName1"),
		// 				EndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-05-31T17:32:28.000Z"); return t}()),
		// 				IsDevTestEnabled: to.Ptr(true),
		// 				StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-05-01T17:32:28.000Z"); return t}()),
		// 				Status: to.Ptr("Active"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("276290"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6564892/enrollmentAccounts/276290"),
		// 			Properties: &armbilling.EnrollmentAccountProperties{
		// 				AccountOwner: to.Ptr("account2@contoso.com"),
		// 				AuthType: to.Ptr("Organization"),
		// 				CostCenter: to.Ptr("C2"),
		// 				DepartmentDisplayName: to.Ptr("TestDept2"),
		// 				DepartmentID: to.Ptr("234512"),
		// 				DisplayName: to.Ptr("AccountName2"),
		// 				EndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-05-31T17:32:28.000Z"); return t}()),
		// 				IsDevTestEnabled: to.Ptr(true),
		// 				StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-05-01T17:32:28.000Z"); return t}()),
		// 				Status: to.Ptr("Active"),
		// 			},
		// 	}},
		// }
	}
}

func (*EnrollmentAccountsClient) NewListByDepartmentPager

func (client *EnrollmentAccountsClient) NewListByDepartmentPager(billingAccountName string, departmentName string, options *EnrollmentAccountsClientListByDepartmentOptions) *runtime.Pager[EnrollmentAccountsClientListByDepartmentResponse]

NewListByDepartmentPager - Lists the enrollment accounts for a department. The operation is supported only for billing accounts with agreement type Enterprise Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • departmentName - The name of the department.
  • options - EnrollmentAccountsClientListByDepartmentOptions contains the optional parameters for the EnrollmentAccountsClient.NewListByDepartmentPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/enrollmentAccountsListByDepartment.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewEnrollmentAccountsClient().NewListByDepartmentPager("6564892", "164821", &armbilling.EnrollmentAccountsClientListByDepartmentOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.EnrollmentAccountListResult = armbilling.EnrollmentAccountListResult{
		// 	Value: []*armbilling.EnrollmentAccount{
		// 		{
		// 			Name: to.Ptr("257698"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/departments/enrollmentAccounts"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6564892/departments/164821/enrollmentAccounts/257698"),
		// 			Properties: &armbilling.EnrollmentAccountProperties{
		// 				AccountOwner: to.Ptr("account0@contoso.com"),
		// 				AuthType: to.Ptr("MicrosoftAccount"),
		// 				CostCenter: to.Ptr("C0"),
		// 				DepartmentDisplayName: to.Ptr("TestDept"),
		// 				DepartmentID: to.Ptr("164821"),
		// 				DisplayName: to.Ptr("AccountName0"),
		// 				EndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-05-31T17:32:28.000Z"); return t}()),
		// 				IsDevTestEnabled: to.Ptr(true),
		// 				StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-05-01T17:32:28.000Z"); return t}()),
		// 				Status: to.Ptr("Active"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("264698"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/departments/enrollmentAccounts"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6564892/departments/164821/enrollmentAccounts/264698"),
		// 			Properties: &armbilling.EnrollmentAccountProperties{
		// 				AccountOwner: to.Ptr("account1@contoso.com"),
		// 				AuthType: to.Ptr("Organization"),
		// 				CostCenter: to.Ptr("C1"),
		// 				DepartmentDisplayName: to.Ptr("TestDept"),
		// 				DepartmentID: to.Ptr("164821"),
		// 				DisplayName: to.Ptr("AccountName1"),
		// 				EndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-05-31T17:32:28.000Z"); return t}()),
		// 				IsDevTestEnabled: to.Ptr(false),
		// 				StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-05-01T17:32:28.000Z"); return t}()),
		// 				Status: to.Ptr("Active"),
		// 			},
		// 	}},
		// }
	}
}

type EnrollmentAccountsClientGetByDepartmentOptions

type EnrollmentAccountsClientGetByDepartmentOptions struct {
}

EnrollmentAccountsClientGetByDepartmentOptions contains the optional parameters for the EnrollmentAccountsClient.GetByDepartment method.

type EnrollmentAccountsClientGetByDepartmentResponse

type EnrollmentAccountsClientGetByDepartmentResponse struct {
	// It is an organizational hierarchy within a billing account to administer and manage azure costs.
	EnrollmentAccount
}

EnrollmentAccountsClientGetByDepartmentResponse contains the response from method EnrollmentAccountsClient.GetByDepartment.

type EnrollmentAccountsClientGetOptions

type EnrollmentAccountsClientGetOptions struct {
}

EnrollmentAccountsClientGetOptions contains the optional parameters for the EnrollmentAccountsClient.Get method.

type EnrollmentAccountsClientGetResponse

type EnrollmentAccountsClientGetResponse struct {
	// It is an organizational hierarchy within a billing account to administer and manage azure costs.
	EnrollmentAccount
}

EnrollmentAccountsClientGetResponse contains the response from method EnrollmentAccountsClient.Get.

type EnrollmentAccountsClientListByBillingAccountOptions

type EnrollmentAccountsClientListByBillingAccountOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

EnrollmentAccountsClientListByBillingAccountOptions contains the optional parameters for the EnrollmentAccountsClient.NewListByBillingAccountPager method.

type EnrollmentAccountsClientListByBillingAccountResponse

type EnrollmentAccountsClientListByBillingAccountResponse struct {
	// A container for a list of resources
	EnrollmentAccountListResult
}

EnrollmentAccountsClientListByBillingAccountResponse contains the response from method EnrollmentAccountsClient.NewListByBillingAccountPager.

type EnrollmentAccountsClientListByDepartmentOptions

type EnrollmentAccountsClientListByDepartmentOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

EnrollmentAccountsClientListByDepartmentOptions contains the optional parameters for the EnrollmentAccountsClient.NewListByDepartmentPager method.

type EnrollmentAccountsClientListByDepartmentResponse

type EnrollmentAccountsClientListByDepartmentResponse struct {
	// A container for a list of resources
	EnrollmentAccountListResult
}

EnrollmentAccountsClientListByDepartmentResponse contains the response from method EnrollmentAccountsClient.NewListByDepartmentPager.

type EnrollmentAuthLevelState

type EnrollmentAuthLevelState string

EnrollmentAuthLevelState - The state showing the enrollment auth level.

const (
	EnrollmentAuthLevelStateMicrosoftAccountOnly             EnrollmentAuthLevelState = "MicrosoftAccountOnly"
	EnrollmentAuthLevelStateMixedAccount                     EnrollmentAuthLevelState = "MixedAccount"
	EnrollmentAuthLevelStateOrganizationalAccountCrossTenant EnrollmentAuthLevelState = "OrganizationalAccountCrossTenant"
	EnrollmentAuthLevelStateOrganizationalAccountOnly        EnrollmentAuthLevelState = "OrganizationalAccountOnly"
	EnrollmentAuthLevelStateOther                            EnrollmentAuthLevelState = "Other"
)

func PossibleEnrollmentAuthLevelStateValues

func PossibleEnrollmentAuthLevelStateValues() []EnrollmentAuthLevelState

PossibleEnrollmentAuthLevelStateValues returns the possible values for the EnrollmentAuthLevelState const type.

type EnrollmentDepartmentAdminViewCharges

type EnrollmentDepartmentAdminViewCharges string

EnrollmentDepartmentAdminViewCharges - The policy that controls whether department admin can view charges.

const (
	EnrollmentDepartmentAdminViewChargesAllowed    EnrollmentDepartmentAdminViewCharges = "Allowed"
	EnrollmentDepartmentAdminViewChargesDisabled   EnrollmentDepartmentAdminViewCharges = "Disabled"
	EnrollmentDepartmentAdminViewChargesNotAllowed EnrollmentDepartmentAdminViewCharges = "NotAllowed"
	EnrollmentDepartmentAdminViewChargesOther      EnrollmentDepartmentAdminViewCharges = "Other"
)

func PossibleEnrollmentDepartmentAdminViewChargesValues

func PossibleEnrollmentDepartmentAdminViewChargesValues() []EnrollmentDepartmentAdminViewCharges

PossibleEnrollmentDepartmentAdminViewChargesValues returns the possible values for the EnrollmentDepartmentAdminViewCharges const type.

type EnrollmentDetails

type EnrollmentDetails struct {
	// The end date of the enrollment.
	EndDate *time.Time

	// The properties of an enrollment which are applicable only for indirect enrollments.
	IndirectRelationshipInfo *EnrollmentDetailsIndirectRelationshipInfo

	// The purchase order number of the enrollment.
	PoNumber *string

	// The start date of the enrollment.
	StartDate *time.Time

	// READ-ONLY; The billing cycle for the enrollment.
	BillingCycle *string

	// READ-ONLY; The channel type of the enrollment.
	Channel *string

	// READ-ONLY; The cloud of the enrollment.
	Cloud *string

	// READ-ONLY; The country code of the enrollment.
	CountryCode *string

	// READ-ONLY; The billing currency for the enrollment.
	Currency *string

	// READ-ONLY; The billing account extension opted by the company.
	ExtendedTermOption *ExtendedTermOption

	// READ-ONLY; The contact who receives invoices of the enrollment.
	InvoiceRecipient *string

	// READ-ONLY; The language for the enrollment.
	Language *string

	// READ-ONLY; Markup status of enrollment, applicable only for indirect enrollments.
	MarkupStatus *MarkupStatus

	// READ-ONLY; The support coverage period for the enrollment.
	SupportCoverage *string

	// READ-ONLY; The support level offer associated with an enrollment.
	SupportLevel *SupportLevel
}

EnrollmentDetails - The properties of an enrollment.

func (EnrollmentDetails) MarshalJSON

func (e EnrollmentDetails) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type EnrollmentDetails.

func (*EnrollmentDetails) UnmarshalJSON

func (e *EnrollmentDetails) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type EnrollmentDetails.

type EnrollmentDetailsIndirectRelationshipInfo

type EnrollmentDetailsIndirectRelationshipInfo struct {
	// The billing account name of the partner or the customer for an indirect motion.
	BillingAccountName *string

	// The billing profile name of the partner or the customer for an indirect motion.
	BillingProfileName *string

	// The display name of the partner or customer for an indirect motion.
	DisplayName *string
}

EnrollmentDetailsIndirectRelationshipInfo - The properties of an enrollment which are applicable only for indirect enrollments.

func (EnrollmentDetailsIndirectRelationshipInfo) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type EnrollmentDetailsIndirectRelationshipInfo.

func (*EnrollmentDetailsIndirectRelationshipInfo) UnmarshalJSON

func (e *EnrollmentDetailsIndirectRelationshipInfo) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type EnrollmentDetailsIndirectRelationshipInfo.

type EnterpriseAgreementPolicies

type EnterpriseAgreementPolicies struct {
	// The policy that controls whether account owner can view charges.
	AccountOwnerViewCharges *EnrollmentAccountOwnerViewCharges

	// The state showing the enrollment auth level.
	AuthenticationType *EnrollmentAuthLevelState

	// The policy that controls whether department admin can view charges.
	DepartmentAdminViewCharges *EnrollmentDepartmentAdminViewCharges
}

EnterpriseAgreementPolicies - The policies for Enterprise Agreement enrollments.

func (EnterpriseAgreementPolicies) MarshalJSON

func (e EnterpriseAgreementPolicies) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type EnterpriseAgreementPolicies.

func (*EnterpriseAgreementPolicies) UnmarshalJSON

func (e *EnterpriseAgreementPolicies) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type EnterpriseAgreementPolicies.

type ErrorAdditionalInfo

type ErrorAdditionalInfo struct {
	// READ-ONLY; The additional info.
	Info any

	// READ-ONLY; The additional info type.
	Type *string
}

ErrorAdditionalInfo - The resource management error additional info.

func (ErrorAdditionalInfo) MarshalJSON

func (e ErrorAdditionalInfo) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ErrorAdditionalInfo.

func (*ErrorAdditionalInfo) UnmarshalJSON

func (e *ErrorAdditionalInfo) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ErrorAdditionalInfo.

type ErrorDetail

type ErrorDetail struct {
	// READ-ONLY; The error additional info.
	AdditionalInfo []*ErrorAdditionalInfo

	// READ-ONLY; The error code.
	Code *string

	// READ-ONLY; The error details.
	Details []*ErrorDetail

	// READ-ONLY; The error message.
	Message *string

	// READ-ONLY; The error target.
	Target *string
}

ErrorDetail - The error detail.

func (ErrorDetail) MarshalJSON

func (e ErrorDetail) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ErrorDetail.

func (*ErrorDetail) UnmarshalJSON

func (e *ErrorDetail) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ErrorDetail.

type ErrorResponse

type ErrorResponse struct {
	// The error object.
	Error *ErrorDetail
}

ErrorResponse - Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.).

func (ErrorResponse) MarshalJSON

func (e ErrorResponse) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ErrorResponse.

func (*ErrorResponse) UnmarshalJSON

func (e *ErrorResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ErrorResponse.

type ExtendedStatusDefinitionProperties

type ExtendedStatusDefinitionProperties struct {
	// Subscription Id
	SubscriptionID *string
}

ExtendedStatusDefinitionProperties - Extended status definition properties

func (ExtendedStatusDefinitionProperties) MarshalJSON

func (e ExtendedStatusDefinitionProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ExtendedStatusDefinitionProperties.

func (*ExtendedStatusDefinitionProperties) UnmarshalJSON

func (e *ExtendedStatusDefinitionProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ExtendedStatusDefinitionProperties.

type ExtendedStatusInfo

type ExtendedStatusInfo struct {
	// The message giving detailed information about the status code.
	Message *string

	// Properties specific to credit line check failure
	Properties *ExtendedStatusInfoProperties

	// Status code providing additional information.
	StatusCode *string
}

ExtendedStatusInfo - Extended status information

func (ExtendedStatusInfo) MarshalJSON

func (e ExtendedStatusInfo) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ExtendedStatusInfo.

func (*ExtendedStatusInfo) UnmarshalJSON

func (e *ExtendedStatusInfo) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ExtendedStatusInfo.

type ExtendedStatusInfoProperties

type ExtendedStatusInfoProperties struct {
	// The subscription that has failed credit line check.
	SubscriptionID *string
}

ExtendedStatusInfoProperties - Properties specific to credit line check failure

func (ExtendedStatusInfoProperties) MarshalJSON

func (e ExtendedStatusInfoProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ExtendedStatusInfoProperties.

func (*ExtendedStatusInfoProperties) UnmarshalJSON

func (e *ExtendedStatusInfoProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ExtendedStatusInfoProperties.

type ExtendedTermOption

type ExtendedTermOption string

ExtendedTermOption - The billing account extension opted by the company.

const (
	ExtendedTermOptionOptedIn  ExtendedTermOption = "Opted-In"
	ExtendedTermOptionOptedOut ExtendedTermOption = "Opted-Out"
	ExtendedTermOptionOther    ExtendedTermOption = "Other"
)

func PossibleExtendedTermOptionValues

func PossibleExtendedTermOptionValues() []ExtendedTermOption

PossibleExtendedTermOptionValues returns the possible values for the ExtendedTermOption const type.

type ExternalReference

type ExternalReference struct {
	// READ-ONLY; The ID that uniquely identifies an external reference.
	ID *string

	// READ-ONLY; The URL of the external reference.
	URL *string
}

ExternalReference - An external reference.

func (ExternalReference) MarshalJSON

func (e ExternalReference) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ExternalReference.

func (*ExternalReference) UnmarshalJSON

func (e *ExternalReference) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ExternalReference.

type FailedPayment

type FailedPayment struct {
	// READ-ONLY; The date when the payment was attempted.
	Date *time.Time

	// READ-ONLY; The reason that the payment failed.
	FailedPaymentReason *FailedPaymentReason
}

FailedPayment - A failed payment.

func (FailedPayment) MarshalJSON

func (f FailedPayment) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type FailedPayment.

func (*FailedPayment) UnmarshalJSON

func (f *FailedPayment) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type FailedPayment.

type FailedPaymentReason

type FailedPaymentReason string

FailedPaymentReason - The reason that the payment failed.

const (
	FailedPaymentReasonBankDeclined         FailedPaymentReason = "BankDeclined"
	FailedPaymentReasonCardExpired          FailedPaymentReason = "CardExpired"
	FailedPaymentReasonIncorrectCardDetails FailedPaymentReason = "IncorrectCardDetails"
	FailedPaymentReasonOther                FailedPaymentReason = "Other"
)

func PossibleFailedPaymentReasonValues

func PossibleFailedPaymentReasonValues() []FailedPaymentReason

PossibleFailedPaymentReasonValues returns the possible values for the FailedPaymentReason const type.

type IndirectRelationshipInfo

type IndirectRelationshipInfo struct {
	// The billing account name of the partner or the customer for an indirect motion.
	BillingAccountName *string

	// The billing profile name of the partner or the customer for an indirect motion.
	BillingProfileName *string

	// The display name of the partner or customer for an indirect motion.
	DisplayName *string
}

IndirectRelationshipInfo - Identifies the billing profile that is linked to another billing profile in indirect purchase motion.

func (IndirectRelationshipInfo) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type IndirectRelationshipInfo.

func (*IndirectRelationshipInfo) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type IndirectRelationshipInfo.

type InitiateTransferProperties

type InitiateTransferProperties struct {
	// The email ID of the recipient to whom the transfer request is sent.
	RecipientEmailID *string
}

InitiateTransferProperties - Request parameters to initiate transfer.

func (InitiateTransferProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InitiateTransferProperties.

func (*InitiateTransferProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InitiateTransferProperties.

type InitiateTransferRequest

type InitiateTransferRequest struct {
	// Request parameters to initiate transfer.
	Properties *InitiateTransferProperties
}

InitiateTransferRequest - Request parameters to initiate transfer.

func (InitiateTransferRequest) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InitiateTransferRequest.

func (*InitiateTransferRequest) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InitiateTransferRequest.

type InitiatorCustomerType

type InitiatorCustomerType string

InitiatorCustomerType - The type of customer of the transfer initiator.

const (
	InitiatorCustomerTypeEA      InitiatorCustomerType = "EA"
	InitiatorCustomerTypePartner InitiatorCustomerType = "Partner"
)

func PossibleInitiatorCustomerTypeValues

func PossibleInitiatorCustomerTypeValues() []InitiatorCustomerType

PossibleInitiatorCustomerTypeValues returns the possible values for the InitiatorCustomerType const type.

type InstanceFlexibility

type InstanceFlexibility string

InstanceFlexibility - Turning this on will apply the reservation discount to other VMs in the same VM size group. Only specify for VirtualMachines reserved resource type.

const (
	InstanceFlexibilityOff InstanceFlexibility = "Off"
	InstanceFlexibilityOn  InstanceFlexibility = "On"
)

func PossibleInstanceFlexibilityValues

func PossibleInstanceFlexibilityValues() []InstanceFlexibility

PossibleInstanceFlexibilityValues returns the possible values for the InstanceFlexibility const type.

type Invoice

type Invoice struct {
	// An invoice.
	Properties *InvoiceProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

Invoice - An invoice.

func (Invoice) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type Invoice.

func (*Invoice) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type Invoice.

type InvoiceDocument

type InvoiceDocument struct {
	// READ-ONLY; The document numbers for the invoice document.
	DocumentNumbers []*string

	// READ-ONLY; The URL to download the invoice document if the source is external to Microsoft.Billing.
	ExternalURL *string

	// READ-ONLY; The type of the document.
	Kind *InvoiceDocumentType

	// READ-ONLY; The ID that uniquely identifies an invoice document. This ID may be an identifier for an invoice PDF, a credit
	// note, or a tax receipt.
	Name *string

	// READ-ONLY; The source of the document. ENF for Brazil and DRS for rest of the world.
	Source *DocumentSource

	// READ-ONLY; The URL to download the invoice document if the source is internal to Microsoft.Billing.
	URL *string
}

InvoiceDocument - The properties of a document.

func (InvoiceDocument) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoiceDocument.

func (*InvoiceDocument) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoiceDocument.

type InvoiceDocumentType

type InvoiceDocumentType string

InvoiceDocumentType - The type of the document.

const (
	InvoiceDocumentTypeCreditNote   InvoiceDocumentType = "CreditNote"
	InvoiceDocumentTypeInvoice      InvoiceDocumentType = "Invoice"
	InvoiceDocumentTypeOther        InvoiceDocumentType = "Other"
	InvoiceDocumentTypeSummary      InvoiceDocumentType = "Summary"
	InvoiceDocumentTypeTaxReceipt   InvoiceDocumentType = "TaxReceipt"
	InvoiceDocumentTypeTransactions InvoiceDocumentType = "Transactions"
	InvoiceDocumentTypeVoidNote     InvoiceDocumentType = "VoidNote"
)

func PossibleInvoiceDocumentTypeValues

func PossibleInvoiceDocumentTypeValues() []InvoiceDocumentType

PossibleInvoiceDocumentTypeValues returns the possible values for the InvoiceDocumentType const type.

type InvoiceListResult

type InvoiceListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*Invoice
}

InvoiceListResult - A container for a list of resources

func (InvoiceListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoiceListResult.

func (*InvoiceListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoiceListResult.

type InvoiceProperties

type InvoiceProperties struct {
	// The amount due as of now.
	AmountDue *InvoicePropertiesAmountDue

	// The amount of Azure prepayment applied to the charges. This field is applicable to billing accounts with agreement type
	// Microsoft Customer Agreement.
	AzurePrepaymentApplied *InvoicePropertiesAzurePrepaymentApplied

	// The total charges for the invoice billing period.
	BilledAmount *InvoicePropertiesBilledAmount

	// The total refund for returns and cancellations during the invoice billing period. This field is applicable to billing accounts
	// with agreement type Microsoft Customer Agreement.
	CreditAmount *InvoicePropertiesCreditAmount

	// The amount of free Azure credits applied to the charges. This field is applicable to billing accounts with agreement type
	// Microsoft Customer Agreement.
	FreeAzureCreditApplied *InvoicePropertiesFreeAzureCreditApplied

	// Rebill details for an invoice.
	RebillDetails *InvoicePropertiesRebillDetails

	// The details of a refund request.
	RefundDetails *InvoicePropertiesRefundDetails

	// The pre-tax amount due. This field is applicable to billing accounts with agreement type Microsoft Customer Agreement.
	SubTotal *InvoicePropertiesSubTotal

	// The amount of tax charged for the billing period. This field is applicable to billing accounts with agreement type Microsoft
	// Customer Agreement.
	TaxAmount *InvoicePropertiesTaxAmount

	// The amount due when the invoice was generated. This field is applicable to billing accounts with agreement type Microsoft
	// Customer Agreement.
	TotalAmount *InvoicePropertiesTotalAmount

	// READ-ONLY; The Id of the active invoice which is originally billed after this invoice was voided. This field is applicable
	// to the void invoices only.
	BilledDocumentID *string

	// READ-ONLY; The name of the billing profile for which the invoice is generated.
	BillingProfileDisplayName *string

	// READ-ONLY; The ID of the billing profile for which the invoice is generated.
	BillingProfileID *string

	// READ-ONLY; The Id of the invoice which got voided and this credit note was issued as a result. This field is applicable
	// to the credit notes only.
	CreditForDocumentID *string

	// READ-ONLY; The type of the document.
	DocumentType *InvoiceDocumentType

	// READ-ONLY; List of documents available to download and view such as invoice, credit note, or tax receipt.
	Documents []*InvoiceDocument

	// READ-ONLY; The due date for the invoice.
	DueDate *time.Time

	// READ-ONLY; List of failed payments.
	FailedPayments []*FailedPayment

	// READ-ONLY; The date when the invoice was generated.
	InvoiceDate *time.Time

	// READ-ONLY; The end date of the billing period for which the invoice is generated. The date is in MM-DD-YYYY format.
	InvoicePeriodEndDate *time.Time

	// READ-ONLY; The start date of the billing period for which the invoice is generated. The date is in MM-DD-YYYY format.
	InvoicePeriodStartDate *time.Time

	// READ-ONLY; Invoice type.
	InvoiceType *InvoiceType

	// READ-ONLY; Specifies if the invoice is generated as part of monthly invoicing cycle or not. This field is applicable to
	// billing accounts with agreement type Microsoft Customer Agreement.
	IsMonthlyInvoice *bool

	// READ-ONLY; List of payments.
	Payments []*Payment

	// READ-ONLY; An optional purchase order number for the invoice.
	PurchaseOrderNumber *string

	// READ-ONLY; Identifies the type of tax calculation used for the invoice. The field is applicable only to invoices with special
	// tax calculation logic.
	SpecialTaxationType *SpecialTaxationType

	// READ-ONLY; The current status of the invoice.
	Status *InvoiceStatus

	// READ-ONLY; The name of the billing subscription for which the invoice is generated.
	SubscriptionDisplayName *string

	// READ-ONLY; The ID of the subscription for which the invoice is generated.
	SubscriptionID *string
}

InvoiceProperties - An invoice.

func (InvoiceProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoiceProperties.

func (*InvoiceProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoiceProperties.

type InvoicePropertiesAmountDue

type InvoicePropertiesAmountDue struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

InvoicePropertiesAmountDue - The amount due as of now.

func (InvoicePropertiesAmountDue) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoicePropertiesAmountDue.

func (*InvoicePropertiesAmountDue) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoicePropertiesAmountDue.

type InvoicePropertiesAzurePrepaymentApplied

type InvoicePropertiesAzurePrepaymentApplied struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

InvoicePropertiesAzurePrepaymentApplied - The amount of Azure prepayment applied to the charges. This field is applicable to billing accounts with agreement type Microsoft Customer Agreement.

func (InvoicePropertiesAzurePrepaymentApplied) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoicePropertiesAzurePrepaymentApplied.

func (*InvoicePropertiesAzurePrepaymentApplied) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoicePropertiesAzurePrepaymentApplied.

type InvoicePropertiesBilledAmount

type InvoicePropertiesBilledAmount struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

InvoicePropertiesBilledAmount - The total charges for the invoice billing period.

func (InvoicePropertiesBilledAmount) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoicePropertiesBilledAmount.

func (*InvoicePropertiesBilledAmount) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoicePropertiesBilledAmount.

type InvoicePropertiesCreditAmount

type InvoicePropertiesCreditAmount struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

InvoicePropertiesCreditAmount - The total refund for returns and cancellations during the invoice billing period. This field is applicable to billing accounts with agreement type Microsoft Customer Agreement.

func (InvoicePropertiesCreditAmount) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoicePropertiesCreditAmount.

func (*InvoicePropertiesCreditAmount) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoicePropertiesCreditAmount.

type InvoicePropertiesFreeAzureCreditApplied

type InvoicePropertiesFreeAzureCreditApplied struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

InvoicePropertiesFreeAzureCreditApplied - The amount of free Azure credits applied to the charges. This field is applicable to billing accounts with agreement type Microsoft Customer Agreement.

func (InvoicePropertiesFreeAzureCreditApplied) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoicePropertiesFreeAzureCreditApplied.

func (*InvoicePropertiesFreeAzureCreditApplied) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoicePropertiesFreeAzureCreditApplied.

type InvoicePropertiesRebillDetails

type InvoicePropertiesRebillDetails struct {
	// READ-ONLY; The ID of credit note.
	CreditNoteDocumentID *string

	// READ-ONLY; The ID of invoice.
	InvoiceDocumentID *string

	// READ-ONLY; The rebill details of an invoice.
	RebillDetails *RebillDetails
}

InvoicePropertiesRebillDetails - Rebill details for an invoice.

func (InvoicePropertiesRebillDetails) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoicePropertiesRebillDetails.

func (*InvoicePropertiesRebillDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoicePropertiesRebillDetails.

type InvoicePropertiesRefundDetails

type InvoicePropertiesRefundDetails struct {
	// The amount refunded.
	AmountRefunded *RefundDetailsSummaryAmountRefunded

	// The amount of refund requested.
	AmountRequested *RefundDetailsSummaryAmountRequested

	// READ-ONLY; Date when the refund was approved.
	ApprovedOn *time.Time

	// READ-ONLY; Date when the refund was completed.
	CompletedOn *time.Time

	// READ-ONLY; The invoice ID of the rebill invoice for a refund.
	RebillInvoiceID *string

	// READ-ONLY; The ID of refund operation.
	RefundOperationID *string

	// READ-ONLY; The reason for refund.
	RefundReason *RefundReasonCode

	// READ-ONLY; The status of refund request.
	RefundStatus *RefundStatus

	// READ-ONLY; Date when the refund was requested.
	RequestedOn *time.Time

	// READ-ONLY; The number of transactions refunded.
	TransactionCount *int32
}

InvoicePropertiesRefundDetails - The details of a refund request.

func (InvoicePropertiesRefundDetails) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoicePropertiesRefundDetails.

func (*InvoicePropertiesRefundDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoicePropertiesRefundDetails.

type InvoicePropertiesSubTotal

type InvoicePropertiesSubTotal struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

InvoicePropertiesSubTotal - The pre-tax amount due. This field is applicable to billing accounts with agreement type Microsoft Customer Agreement.

func (InvoicePropertiesSubTotal) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoicePropertiesSubTotal.

func (*InvoicePropertiesSubTotal) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoicePropertiesSubTotal.

type InvoicePropertiesTaxAmount

type InvoicePropertiesTaxAmount struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

InvoicePropertiesTaxAmount - The amount of tax charged for the billing period. This field is applicable to billing accounts with agreement type Microsoft Customer Agreement.

func (InvoicePropertiesTaxAmount) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoicePropertiesTaxAmount.

func (*InvoicePropertiesTaxAmount) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoicePropertiesTaxAmount.

type InvoicePropertiesTotalAmount

type InvoicePropertiesTotalAmount struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

InvoicePropertiesTotalAmount - The amount due when the invoice was generated. This field is applicable to billing accounts with agreement type Microsoft Customer Agreement.

func (InvoicePropertiesTotalAmount) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoicePropertiesTotalAmount.

func (*InvoicePropertiesTotalAmount) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoicePropertiesTotalAmount.

type InvoiceSection

type InvoiceSection struct {
	// An invoice section.
	Properties *InvoiceSectionProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

InvoiceSection - An invoice section.

func (InvoiceSection) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoiceSection.

func (*InvoiceSection) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoiceSection.

type InvoiceSectionLabelManagementPolicy

type InvoiceSectionLabelManagementPolicy string

InvoiceSectionLabelManagementPolicy - The policy that controls invoice section label management at invoice section scope. This is allowed by default.

const (
	InvoiceSectionLabelManagementPolicyAllowed    InvoiceSectionLabelManagementPolicy = "Allowed"
	InvoiceSectionLabelManagementPolicyNotAllowed InvoiceSectionLabelManagementPolicy = "NotAllowed"
	InvoiceSectionLabelManagementPolicyOther      InvoiceSectionLabelManagementPolicy = "Other"
)

func PossibleInvoiceSectionLabelManagementPolicyValues

func PossibleInvoiceSectionLabelManagementPolicyValues() []InvoiceSectionLabelManagementPolicy

PossibleInvoiceSectionLabelManagementPolicyValues returns the possible values for the InvoiceSectionLabelManagementPolicy const type.

type InvoiceSectionListResult

type InvoiceSectionListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*InvoiceSection
}

InvoiceSectionListResult - A container for a list of resources

func (InvoiceSectionListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoiceSectionListResult.

func (*InvoiceSectionListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoiceSectionListResult.

type InvoiceSectionProperties

type InvoiceSectionProperties struct {
	// The name of the invoice section.
	DisplayName *string

	// Reason for the specified invoice section status.
	ReasonCode *InvoiceSectionStateReasonCode

	// Identifies the status of an invoice section.
	State *InvoiceSectionState

	// Dictionary of metadata associated with the resource. Maximum key/value length supported of 256 characters. Keys/value should
	// not empty value nor null. Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// Identifies the cloud environments that are associated with an invoice section. This is a system managed optional field
	// and gets updated as the invoice section gets associated with accounts in various
	// clouds.
	TargetCloud *string

	// READ-ONLY; The provisioning state of the resource during a long-running operation.
	ProvisioningState *ProvisioningState

	// READ-ONLY; The system generated unique identifier for an invoice section.
	SystemID *string
}

InvoiceSectionProperties - An invoice section.

func (InvoiceSectionProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoiceSectionProperties.

func (*InvoiceSectionProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoiceSectionProperties.

type InvoiceSectionState

type InvoiceSectionState string

InvoiceSectionState - Identifies the status of an invoice section.

const (
	InvoiceSectionStateActive      InvoiceSectionState = "Active"
	InvoiceSectionStateDeleted     InvoiceSectionState = "Deleted"
	InvoiceSectionStateDisabled    InvoiceSectionState = "Disabled"
	InvoiceSectionStateOther       InvoiceSectionState = "Other"
	InvoiceSectionStateRestricted  InvoiceSectionState = "Restricted"
	InvoiceSectionStateUnderReview InvoiceSectionState = "UnderReview"
	InvoiceSectionStateWarned      InvoiceSectionState = "Warned"
)

func PossibleInvoiceSectionStateValues

func PossibleInvoiceSectionStateValues() []InvoiceSectionState

PossibleInvoiceSectionStateValues returns the possible values for the InvoiceSectionState const type.

type InvoiceSectionStateReasonCode

type InvoiceSectionStateReasonCode string

InvoiceSectionStateReasonCode - Reason for the specified invoice section status.

const (
	InvoiceSectionStateReasonCodeOther                InvoiceSectionStateReasonCode = "Other"
	InvoiceSectionStateReasonCodePastDue              InvoiceSectionStateReasonCode = "PastDue"
	InvoiceSectionStateReasonCodeSpendingLimitExpired InvoiceSectionStateReasonCode = "SpendingLimitExpired"
	InvoiceSectionStateReasonCodeSpendingLimitReached InvoiceSectionStateReasonCode = "SpendingLimitReached"
	InvoiceSectionStateReasonCodeUnusualActivity      InvoiceSectionStateReasonCode = "UnusualActivity"
)

func PossibleInvoiceSectionStateReasonCodeValues

func PossibleInvoiceSectionStateReasonCodeValues() []InvoiceSectionStateReasonCode

PossibleInvoiceSectionStateReasonCodeValues returns the possible values for the InvoiceSectionStateReasonCode const type.

type InvoiceSectionWithCreateSubPermission

type InvoiceSectionWithCreateSubPermission struct {
	// READ-ONLY; The name of the billing profile.
	BillingProfileDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies a billing profile.
	BillingProfileID *string

	// READ-ONLY; The billing profile spending limit.
	BillingProfileSpendingLimit *SpendingLimit

	// READ-ONLY; The status of the billing profile.
	BillingProfileStatus *BillingProfileStatus

	// READ-ONLY; Reason for the specified billing profile status.
	BillingProfileStatusReasonCode *BillingProfileStatusReasonCode

	// READ-ONLY; The system generated unique identifier for a billing profile.
	BillingProfileSystemID *string

	// READ-ONLY; Enabled azure plans for the associated billing profile.
	EnabledAzurePlans []*AzurePlan

	// READ-ONLY; The name of the invoice section.
	InvoiceSectionDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies an invoice section.
	InvoiceSectionID *string

	// READ-ONLY; The system generated unique identifier for an invoice section.
	InvoiceSectionSystemID *string
}

InvoiceSectionWithCreateSubPermission - Invoice section properties with create subscription permission.

func (InvoiceSectionWithCreateSubPermission) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type InvoiceSectionWithCreateSubPermission.

func (*InvoiceSectionWithCreateSubPermission) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type InvoiceSectionWithCreateSubPermission.

type InvoiceSectionWithCreateSubPermissionListResult

type InvoiceSectionWithCreateSubPermissionListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*InvoiceSectionWithCreateSubPermission
}

InvoiceSectionWithCreateSubPermissionListResult - A container for a list of resources

func (InvoiceSectionWithCreateSubPermissionListResult) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type InvoiceSectionWithCreateSubPermissionListResult.

func (*InvoiceSectionWithCreateSubPermissionListResult) UnmarshalJSON

UnmarshalJSON implements the json.Unmarshaller interface for type InvoiceSectionWithCreateSubPermissionListResult.

type InvoiceSectionsClient

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

InvoiceSectionsClient contains the methods for the InvoiceSections group. Don't use this type directly, use NewInvoiceSectionsClient() instead.

func NewInvoiceSectionsClient

func NewInvoiceSectionsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*InvoiceSectionsClient, error)

NewInvoiceSectionsClient creates a new instance of InvoiceSectionsClient with the specified values.

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

func (*InvoiceSectionsClient) BeginCreateOrUpdate

func (client *InvoiceSectionsClient) BeginCreateOrUpdate(ctx context.Context, billingAccountName string, billingProfileName string, invoiceSectionName string, parameters InvoiceSection, options *InvoiceSectionsClientBeginCreateOrUpdateOptions) (*runtime.Poller[InvoiceSectionsClientCreateOrUpdateResponse], error)

BeginCreateOrUpdate - Creates or updates an invoice section. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • parameters - An invoice section.
  • options - InvoiceSectionsClientBeginCreateOrUpdateOptions contains the optional parameters for the InvoiceSectionsClient.BeginCreateOrUpdate method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoiceSectionsCreateOrUpdate.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewInvoiceSectionsClient().BeginCreateOrUpdate(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "invoice-section-1", armbilling.InvoiceSection{
		Properties: &armbilling.InvoiceSectionProperties{
			DisplayName: to.Ptr("Invoice Section 1"),
			Tags: map[string]*string{
				"costCategory": to.Ptr("Support"),
				"pcCode":       to.Ptr("A123456"),
			},
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.InvoiceSection = armbilling.InvoiceSection{
	// 	Name: to.Ptr("invoice-section-1"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/invoice-section-1"),
	// 	Properties: &armbilling.InvoiceSectionProperties{
	// 		DisplayName: to.Ptr("Invoice Section 1"),
	// 		SystemID: to.Ptr("yyyy-yyyy-yyy-yyy"),
	// 		Tags: map[string]*string{
	// 			"costCategory": to.Ptr("Support"),
	// 			"pcCode": to.Ptr("A123456"),
	// 		},
	// 	},
	// }
}

func (*InvoiceSectionsClient) BeginDelete

func (client *InvoiceSectionsClient) BeginDelete(ctx context.Context, billingAccountName string, billingProfileName string, invoiceSectionName string, options *InvoiceSectionsClientBeginDeleteOptions) (*runtime.Poller[InvoiceSectionsClientDeleteResponse], error)

BeginDelete - Deletes an invoice section. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • options - InvoiceSectionsClientBeginDeleteOptions contains the optional parameters for the InvoiceSectionsClient.BeginDelete method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoiceSectionsDelete.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewInvoiceSectionsClient().BeginDelete(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "yyyy-yyyy-yyy-yyy", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	_, err = poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %v", err)
	}
}

func (*InvoiceSectionsClient) Get

func (client *InvoiceSectionsClient) Get(ctx context.Context, billingAccountName string, billingProfileName string, invoiceSectionName string, options *InvoiceSectionsClientGetOptions) (InvoiceSectionsClientGetResponse, error)

Get - Gets an invoice section by its ID. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • options - InvoiceSectionsClientGetOptions contains the optional parameters for the InvoiceSectionsClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoiceSectionsGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewInvoiceSectionsClient().Get(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "yyyy-yyyy-yyy-yyy", 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.InvoiceSection = armbilling.InvoiceSection{
	// 	Name: to.Ptr("invoice-section-1"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/invoice-section-1"),
	// 	Properties: &armbilling.InvoiceSectionProperties{
	// 		DisplayName: to.Ptr("Invoice Section 1"),
	// 		SystemID: to.Ptr("yyyy-yyyy-yyy-yyy"),
	// 		Tags: map[string]*string{
	// 			"costCategory": to.Ptr("Support"),
	// 			"pcCode": to.Ptr("A123456"),
	// 		},
	// 	},
	// }
}

func (*InvoiceSectionsClient) NewListByBillingProfilePager

func (client *InvoiceSectionsClient) NewListByBillingProfilePager(billingAccountName string, billingProfileName string, options *InvoiceSectionsClientListByBillingProfileOptions) *runtime.Pager[InvoiceSectionsClientListByBillingProfileResponse]

NewListByBillingProfilePager - Lists the invoice sections that a user has access to. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - InvoiceSectionsClientListByBillingProfileOptions contains the optional parameters for the InvoiceSectionsClient.NewListByBillingProfilePager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoiceSectionsListByBillingProfile.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewInvoiceSectionsClient().NewListByBillingProfilePager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", &armbilling.InvoiceSectionsClientListByBillingProfileOptions{IncludeDeleted: to.Ptr(true),
		Filter:  nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.InvoiceSectionListResult = armbilling.InvoiceSectionListResult{
		// 	Value: []*armbilling.InvoiceSection{
		// 		{
		// 			Name: to.Ptr("invoice-section-1"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/invoice-section-1"),
		// 			Properties: &armbilling.InvoiceSectionProperties{
		// 				DisplayName: to.Ptr("Invoice Section 1"),
		// 				State: to.Ptr(armbilling.InvoiceSectionStateActive),
		// 				SystemID: to.Ptr("yyyy-yyyy-yyy-yyy"),
		// 				Tags: map[string]*string{
		// 					"costCategory": to.Ptr("Support"),
		// 					"pcCode": to.Ptr("A123456"),
		// 				},
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("invoice-section-2"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/invoice-section-2"),
		// 			Properties: &armbilling.InvoiceSectionProperties{
		// 				DisplayName: to.Ptr("Invoice Section 2"),
		// 				ReasonCode: to.Ptr(armbilling.InvoiceSectionStateReasonCodePastDue),
		// 				State: to.Ptr(armbilling.InvoiceSectionStateWarned),
		// 				SystemID: to.Ptr("zzzz-zzzz-zzz-zzz"),
		// 				Tags: map[string]*string{
		// 					"costCategory": to.Ptr("Marketing"),
		// 					"pcCode": to.Ptr("Z345678"),
		// 				},
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("invoice-section-3"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/invoice-section-3"),
		// 			Properties: &armbilling.InvoiceSectionProperties{
		// 				DisplayName: to.Ptr("Invoice Section 3"),
		// 				State: to.Ptr(armbilling.InvoiceSectionStateDeleted),
		// 				SystemID: to.Ptr("aaaa-aaaa-aaa-aaa"),
		// 				Tags: map[string]*string{
		// 					"costCategory": to.Ptr("Support"),
		// 					"pcCode": to.Ptr("A123456"),
		// 				},
		// 			},
		// 	}},
		// }
	}
}

func (*InvoiceSectionsClient) ValidateDeleteEligibility

func (client *InvoiceSectionsClient) ValidateDeleteEligibility(ctx context.Context, billingAccountName string, billingProfileName string, invoiceSectionName string, options *InvoiceSectionsClientValidateDeleteEligibilityOptions) (InvoiceSectionsClientValidateDeleteEligibilityResponse, error)

ValidateDeleteEligibility - Validates if the invoice section can be deleted. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • options - InvoiceSectionsClientValidateDeleteEligibilityOptions contains the optional parameters for the InvoiceSectionsClient.ValidateDeleteEligibility method.
Example (InvoiceSectionsValidateDeleteEligibilityFailure)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoiceSectionsValidateDeleteEligibilityFailure.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewInvoiceSectionsClient().ValidateDeleteEligibility(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "yyyy-yyyy-yyy-yyy", 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.DeleteInvoiceSectionEligibilityResult = armbilling.DeleteInvoiceSectionEligibilityResult{
	// 	EligibilityDetails: []*armbilling.DeleteInvoiceSectionEligibilityDetail{
	// 		{
	// 			Code: to.Ptr(armbilling.DeleteInvoiceSectionEligibilityCodeActiveBillingSubscriptions),
	// 			Message: to.Ptr("There are active or disabled subscriptions assigned to the invoice section. Either move the subscription to another invoice section or delete the subscriptions and then try deleting the invoice section."),
	// 		},
	// 		{
	// 			Code: to.Ptr(armbilling.DeleteInvoiceSectionEligibilityCodeLastInvoiceSection),
	// 			Message: to.Ptr("This is the only invoice section in this billing profile so it can’t be deleted."),
	// 		},
	// 		{
	// 			Code: to.Ptr(armbilling.DeleteInvoiceSectionEligibilityCodeActiveAzurePlans),
	// 			Message: to.Ptr("This is the invoice section that was created when its billing profile was created so it can’t be deleted."),
	// 		},
	// 		{
	// 			Code: to.Ptr(armbilling.DeleteInvoiceSectionEligibilityCodeReservedInstances),
	// 			Message: to.Ptr("The invoice section has the RI asset with a billing plan."),
	// 	}},
	// 	EligibilityStatus: to.Ptr(armbilling.DeleteInvoiceSectionEligibilityStatusNotAllowed),
	// }
}
Example (InvoiceSectionsValidateDeleteEligibilitySuccess)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoiceSectionsValidateDeleteEligibilitySuccess.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewInvoiceSectionsClient().ValidateDeleteEligibility(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "yyyy-yyyy-yyy-yyy", 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.DeleteInvoiceSectionEligibilityResult = armbilling.DeleteInvoiceSectionEligibilityResult{
	// }
}

type InvoiceSectionsClientBeginCreateOrUpdateOptions

type InvoiceSectionsClientBeginCreateOrUpdateOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

InvoiceSectionsClientBeginCreateOrUpdateOptions contains the optional parameters for the InvoiceSectionsClient.BeginCreateOrUpdate method.

type InvoiceSectionsClientBeginDeleteOptions

type InvoiceSectionsClientBeginDeleteOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

InvoiceSectionsClientBeginDeleteOptions contains the optional parameters for the InvoiceSectionsClient.BeginDelete method.

type InvoiceSectionsClientCreateOrUpdateResponse

type InvoiceSectionsClientCreateOrUpdateResponse struct {
	// An invoice section.
	InvoiceSection
}

InvoiceSectionsClientCreateOrUpdateResponse contains the response from method InvoiceSectionsClient.BeginCreateOrUpdate.

type InvoiceSectionsClientDeleteResponse

type InvoiceSectionsClientDeleteResponse struct {
}

InvoiceSectionsClientDeleteResponse contains the response from method InvoiceSectionsClient.BeginDelete.

type InvoiceSectionsClientGetOptions

type InvoiceSectionsClientGetOptions struct {
}

InvoiceSectionsClientGetOptions contains the optional parameters for the InvoiceSectionsClient.Get method.

type InvoiceSectionsClientGetResponse

type InvoiceSectionsClientGetResponse struct {
	// An invoice section.
	InvoiceSection
}

InvoiceSectionsClientGetResponse contains the response from method InvoiceSectionsClient.Get.

type InvoiceSectionsClientListByBillingProfileOptions

type InvoiceSectionsClientListByBillingProfileOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// Can be used to get deleted invoice sections.
	IncludeDeleted *bool

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

InvoiceSectionsClientListByBillingProfileOptions contains the optional parameters for the InvoiceSectionsClient.NewListByBillingProfilePager method.

type InvoiceSectionsClientListByBillingProfileResponse

type InvoiceSectionsClientListByBillingProfileResponse struct {
	// A container for a list of resources
	InvoiceSectionListResult
}

InvoiceSectionsClientListByBillingProfileResponse contains the response from method InvoiceSectionsClient.NewListByBillingProfilePager.

type InvoiceSectionsClientValidateDeleteEligibilityOptions

type InvoiceSectionsClientValidateDeleteEligibilityOptions struct {
}

InvoiceSectionsClientValidateDeleteEligibilityOptions contains the optional parameters for the InvoiceSectionsClient.ValidateDeleteEligibility method.

type InvoiceSectionsClientValidateDeleteEligibilityResponse

type InvoiceSectionsClientValidateDeleteEligibilityResponse struct {
	// Eligibility to delete an invoice section result.
	DeleteInvoiceSectionEligibilityResult
}

InvoiceSectionsClientValidateDeleteEligibilityResponse contains the response from method InvoiceSectionsClient.ValidateDeleteEligibility.

type InvoiceStatus

type InvoiceStatus string

InvoiceStatus - The current status of the invoice.

const (
	InvoiceStatusDue     InvoiceStatus = "Due"
	InvoiceStatusLocked  InvoiceStatus = "Locked"
	InvoiceStatusOther   InvoiceStatus = "Other"
	InvoiceStatusOverDue InvoiceStatus = "OverDue"
	InvoiceStatusPaid    InvoiceStatus = "Paid"
	InvoiceStatusVoid    InvoiceStatus = "Void"
)

func PossibleInvoiceStatusValues

func PossibleInvoiceStatusValues() []InvoiceStatus

PossibleInvoiceStatusValues returns the possible values for the InvoiceStatus const type.

type InvoiceType

type InvoiceType string

InvoiceType - Invoice type.

const (
	InvoiceTypeAzureMarketplace InvoiceType = "AzureMarketplace"
	InvoiceTypeAzureServices    InvoiceType = "AzureServices"
	InvoiceTypeAzureSupport     InvoiceType = "AzureSupport"
	InvoiceTypeOther            InvoiceType = "Other"
)

func PossibleInvoiceTypeValues

func PossibleInvoiceTypeValues() []InvoiceType

PossibleInvoiceTypeValues returns the possible values for the InvoiceType const type.

type InvoicesClient

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

InvoicesClient contains the methods for the Invoices group. Don't use this type directly, use NewInvoicesClient() instead.

func NewInvoicesClient

func NewInvoicesClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*InvoicesClient, error)

NewInvoicesClient creates a new instance of InvoicesClient with the specified values.

  • subscriptionID - The ID that uniquely identifies a billing subscription.
  • credential - used to authorize requests. Usually a credential from azidentity.
  • options - pass nil to accept the default values.

func (*InvoicesClient) BeginAmend

func (client *InvoicesClient) BeginAmend(ctx context.Context, billingAccountName string, invoiceName string, options *InvoicesClientBeginAmendOptions) (*runtime.Poller[InvoicesClientAmendResponse], error)

BeginAmend - Regenerate an invoice by billing account name and invoice name. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • invoiceName - The ID that uniquely identifies an invoice.
  • options - InvoicesClientBeginAmendOptions contains the optional parameters for the InvoicesClient.BeginAmend method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoicesAmend.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewInvoicesClient().BeginAmend(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "G123456789", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	_, err = poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %v", err)
	}
}

func (*InvoicesClient) BeginDownloadByBillingAccount

func (client *InvoicesClient) BeginDownloadByBillingAccount(ctx context.Context, billingAccountName string, invoiceName string, options *InvoicesClientBeginDownloadByBillingAccountOptions) (*runtime.Poller[InvoicesClientDownloadByBillingAccountResponse], error)

BeginDownloadByBillingAccount - Gets a URL to download an invoice document. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement, Microsoft Customer Agreement or Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • invoiceName - The ID that uniquely identifies an invoice.
  • options - InvoicesClientBeginDownloadByBillingAccountOptions contains the optional parameters for the InvoicesClient.BeginDownloadByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoicesDownloadByBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewInvoicesClient().BeginDownloadByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "G123456789", &armbilling.InvoicesClientBeginDownloadByBillingAccountOptions{DocumentName: to.Ptr("12345678")})
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.DocumentDownloadResult = armbilling.DocumentDownloadResult{
	// 	ExpiryTime: to.Ptr("2023-02-16T17:32:28Z"),
	// 	URL: to.Ptr("https://myaccount.blob.core.windows.net/invoices/1383724.pdf?sv=2019-02-02&sr=b&sp=r"),
	// }
}

func (*InvoicesClient) BeginDownloadByBillingSubscription

BeginDownloadByBillingSubscription - Gets a URL to download an invoice by billing subscription. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • invoiceName - The ID that uniquely identifies an invoice.
  • options - InvoicesClientBeginDownloadByBillingSubscriptionOptions contains the optional parameters for the InvoicesClient.BeginDownloadByBillingSubscription method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoicesDownloadByBillingSubscription.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewInvoicesClient().BeginDownloadByBillingSubscription(ctx, "E123456789", &armbilling.InvoicesClientBeginDownloadByBillingSubscriptionOptions{DocumentName: to.Ptr("12345678")})
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.DocumentDownloadResult = armbilling.DocumentDownloadResult{
	// 	ExpiryTime: to.Ptr("2023-02-16T17:32:28Z"),
	// 	URL: to.Ptr("https://myaccount.blob.core.windows.net/invoices/1383724.pdf?sv=2019-02-02&sr=b&sp=r"),
	// }
}

func (*InvoicesClient) BeginDownloadDocumentsByBillingAccount

BeginDownloadDocumentsByBillingAccount - Gets a URL to download multiple invoice documents (invoice pdf, tax receipts, credit notes) as a zip file. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • parameters - A list of download details for individual documents.
  • options - InvoicesClientBeginDownloadDocumentsByBillingAccountOptions contains the optional parameters for the InvoicesClient.BeginDownloadDocumentsByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoicesDownloadDocumentsByBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewInvoicesClient().BeginDownloadDocumentsByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", []*armbilling.DocumentDownloadRequest{
		{
			DocumentName: to.Ptr("12345678"),
			InvoiceName:  to.Ptr("G123456789"),
		},
		{
			DocumentName: to.Ptr("12345678"),
			InvoiceName:  to.Ptr("G987654321"),
		}}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.DocumentDownloadResult = armbilling.DocumentDownloadResult{
	// 	ExpiryTime: to.Ptr("2023-02-16T17:32:28Z"),
	// 	URL: to.Ptr("https://myaccount.blob.core.windows.net/invoices/1383724.pdf?sv=2019-02-02&sr=b&sp=r"),
	// }
}

func (*InvoicesClient) BeginDownloadDocumentsByBillingSubscription

BeginDownloadDocumentsByBillingSubscription - Gets a URL to download multiple invoice documents (invoice pdf, tax receipts, credit notes) as a zip file. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • parameters - A list of download details for individual documents.
  • options - InvoicesClientBeginDownloadDocumentsByBillingSubscriptionOptions contains the optional parameters for the InvoicesClient.BeginDownloadDocumentsByBillingSubscription method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoicesDownloadDocumentsByBillingSubscription.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewInvoicesClient().BeginDownloadDocumentsByBillingSubscription(ctx, []*armbilling.DocumentDownloadRequest{
		{
			DocumentName: to.Ptr("12345678"),
			InvoiceName:  to.Ptr("E123456789"),
		},
		{
			DocumentName: to.Ptr("12345678"),
			InvoiceName:  to.Ptr("E987654321"),
		}}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.DocumentDownloadResult = armbilling.DocumentDownloadResult{
	// 	ExpiryTime: to.Ptr("2023-02-16T17:32:28Z"),
	// 	URL: to.Ptr("https://myaccount.blob.core.windows.net/invoices/1383724.pdf?sv=2019-02-02&sr=b&sp=r"),
	// }
}

func (*InvoicesClient) BeginDownloadSummaryByBillingAccount

func (client *InvoicesClient) BeginDownloadSummaryByBillingAccount(ctx context.Context, billingAccountName string, invoiceName string, options *InvoicesClientBeginDownloadSummaryByBillingAccountOptions) (*runtime.Poller[InvoicesClientDownloadSummaryByBillingAccountResponse], error)

BeginDownloadSummaryByBillingAccount - Gets a URL to download the summary document for an invoice. The operation is supported for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • invoiceName - The ID that uniquely identifies an invoice.
  • options - InvoicesClientBeginDownloadSummaryByBillingAccountOptions contains the optional parameters for the InvoicesClient.BeginDownloadSummaryByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoicesDownloadSummaryByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewInvoicesClient().BeginDownloadSummaryByBillingAccount(ctx, "123456789", "G123456789", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.DocumentDownloadResult = armbilling.DocumentDownloadResult{
	// 	ExpiryTime: to.Ptr("2023-02-16T17:32:28Z"),
	// 	URL: to.Ptr("https://myaccount.blob.core.windows.net/invoices/1383724_summary.pdf?sv=2019-02-02&sr=b&sp=r"),
	// }
}

func (*InvoicesClient) Get

Get - Gets an invoice by ID. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • invoiceName - The ID that uniquely identifies an invoice.
  • options - InvoicesClientGetOptions contains the optional parameters for the InvoicesClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoicesGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewInvoicesClient().Get(ctx, "G123456789", 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.Invoice = armbilling.Invoice{
	// 	Name: to.Ptr("G123456789"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/invoices"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/G123456789"),
	// 	Properties: &armbilling.InvoiceProperties{
	// 		AmountDue: &armbilling.InvoicePropertiesAmountDue{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](8.53),
	// 		},
	// 		AzurePrepaymentApplied: &armbilling.InvoicePropertiesAzurePrepaymentApplied{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](25.46),
	// 		},
	// 		BilledAmount: &armbilling.InvoicePropertiesBilledAmount{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](33.99),
	// 		},
	// 		BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		CreditAmount: &armbilling.InvoicePropertiesCreditAmount{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](0),
	// 		},
	// 		DocumentType: to.Ptr(armbilling.InvoiceDocumentTypeInvoice),
	// 		Documents: []*armbilling.InvoiceDocument{
	// 			{
	// 				Name: to.Ptr("12345678"),
	// 				Kind: to.Ptr(armbilling.InvoiceDocumentTypeInvoice),
	// 			},
	// 			{
	// 				Name: to.Ptr("22345678"),
	// 				Kind: to.Ptr(armbilling.InvoiceDocumentTypeTaxReceipt),
	// 		}},
	// 		DueDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-16T17:32:28.000Z"); return t}()),
	// 		FreeAzureCreditApplied: &armbilling.InvoicePropertiesFreeAzureCreditApplied{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](0),
	// 		},
	// 		InvoiceDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
	// 		InvoicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-15T17:32:28.000Z"); return t}()),
	// 		InvoicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
	// 		IsMonthlyInvoice: to.Ptr(false),
	// 		PurchaseOrderNumber: to.Ptr("123456"),
	// 		RebillDetails: &armbilling.InvoicePropertiesRebillDetails{
	// 			CreditNoteDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/CreditNote2"),
	// 			InvoiceDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/I000002"),
	// 			RebillDetails: &armbilling.RebillDetails{
	// 				CreditNoteDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/CreditNote"),
	// 				InvoiceDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/I000001"),
	// 			},
	// 		},
	// 		SpecialTaxationType: to.Ptr(armbilling.SpecialTaxationTypeSubtotalLevel),
	// 		Status: to.Ptr(armbilling.InvoiceStatusDue),
	// 		SubTotal: &armbilling.InvoicePropertiesSubTotal{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](33.99),
	// 		},
	// 		TaxAmount: &armbilling.InvoicePropertiesTaxAmount{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](1),
	// 		},
	// 		TotalAmount: &armbilling.InvoicePropertiesTotalAmount{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](7.53),
	// 		},
	// 	},
	// }
}

func (*InvoicesClient) GetByBillingAccount

func (client *InvoicesClient) GetByBillingAccount(ctx context.Context, billingAccountName string, invoiceName string, options *InvoicesClientGetByBillingAccountOptions) (InvoicesClientGetByBillingAccountResponse, error)

GetByBillingAccount - Gets an invoice by billing account name and ID. The operation is supported for all billing account types. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • invoiceName - The ID that uniquely identifies an invoice.
  • options - InvoicesClientGetByBillingAccountOptions contains the optional parameters for the InvoicesClient.GetByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoicesGetByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewInvoicesClient().GetByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "G123456789", 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.Invoice = armbilling.Invoice{
	// 	Name: to.Ptr("G123456789"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/invoices"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/G123456789"),
	// 	Properties: &armbilling.InvoiceProperties{
	// 		AmountDue: &armbilling.InvoicePropertiesAmountDue{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](8.53),
	// 		},
	// 		AzurePrepaymentApplied: &armbilling.InvoicePropertiesAzurePrepaymentApplied{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](25.46),
	// 		},
	// 		BilledAmount: &armbilling.InvoicePropertiesBilledAmount{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](33.99),
	// 		},
	// 		BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		CreditAmount: &armbilling.InvoicePropertiesCreditAmount{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](0),
	// 		},
	// 		DocumentType: to.Ptr(armbilling.InvoiceDocumentTypeInvoice),
	// 		Documents: []*armbilling.InvoiceDocument{
	// 			{
	// 				Name: to.Ptr("12345678"),
	// 				Kind: to.Ptr(armbilling.InvoiceDocumentTypeInvoice),
	// 			},
	// 			{
	// 				Name: to.Ptr("22345678"),
	// 				Kind: to.Ptr(armbilling.InvoiceDocumentTypeTaxReceipt),
	// 		}},
	// 		DueDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-16T17:32:28.000Z"); return t}()),
	// 		FreeAzureCreditApplied: &armbilling.InvoicePropertiesFreeAzureCreditApplied{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](0),
	// 		},
	// 		InvoiceDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
	// 		InvoicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-15T17:32:28.000Z"); return t}()),
	// 		InvoicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
	// 		IsMonthlyInvoice: to.Ptr(false),
	// 		PurchaseOrderNumber: to.Ptr("123456"),
	// 		RebillDetails: &armbilling.InvoicePropertiesRebillDetails{
	// 			CreditNoteDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/CreditNote2"),
	// 			InvoiceDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/I000002"),
	// 			RebillDetails: &armbilling.RebillDetails{
	// 				CreditNoteDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/CreditNote"),
	// 				InvoiceDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/I000001"),
	// 			},
	// 		},
	// 		SpecialTaxationType: to.Ptr(armbilling.SpecialTaxationTypeSubtotalLevel),
	// 		Status: to.Ptr(armbilling.InvoiceStatusDue),
	// 		SubTotal: &armbilling.InvoicePropertiesSubTotal{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](33.99),
	// 		},
	// 		TaxAmount: &armbilling.InvoicePropertiesTaxAmount{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](1),
	// 		},
	// 		TotalAmount: &armbilling.InvoicePropertiesTotalAmount{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](7.53),
	// 		},
	// 	},
	// }
}

func (*InvoicesClient) GetByBillingSubscription

GetByBillingSubscription - Gets an invoice by subscription ID and invoice ID. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • invoiceName - The ID that uniquely identifies an invoice.
  • options - InvoicesClientGetByBillingSubscriptionOptions contains the optional parameters for the InvoicesClient.GetByBillingSubscription method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoicesGetByBillingSubscription.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewInvoicesClient().GetByBillingSubscription(ctx, "E123456789", 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.Invoice = armbilling.Invoice{
	// 	Name: to.Ptr("E123456789"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions/invoices"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/11111111-1111-1111-1111-111111111111/invoices/E123456789"),
	// 	Properties: &armbilling.InvoiceProperties{
	// 		AmountDue: &armbilling.InvoicePropertiesAmountDue{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](8.53),
	// 		},
	// 		BilledAmount: &armbilling.InvoicePropertiesBilledAmount{
	// 			Currency: to.Ptr("USD"),
	// 			Value: to.Ptr[float32](33.99),
	// 		},
	// 		DueDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-16T17:32:28.000Z"); return t}()),
	// 		InvoiceDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
	// 		InvoicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-15T17:32:28.000Z"); return t}()),
	// 		InvoicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
	// 		InvoiceType: to.Ptr(armbilling.InvoiceTypeAzureServices),
	// 		PurchaseOrderNumber: to.Ptr("123456"),
	// 		Status: to.Ptr(armbilling.InvoiceStatusDue),
	// 		SubscriptionDisplayName: to.Ptr("Contoso Operations Billing"),
	// 		SubscriptionID: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 	},
	// }
}

func (*InvoicesClient) NewListByBillingAccountPager

func (client *InvoicesClient) NewListByBillingAccountPager(billingAccountName string, options *InvoicesClientListByBillingAccountOptions) *runtime.Pager[InvoicesClientListByBillingAccountResponse]

NewListByBillingAccountPager - Lists the invoices for a billing account for a given start date and end date. The operation is supported for all billing account types.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - InvoicesClientListByBillingAccountOptions contains the optional parameters for the InvoicesClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoicesListByBillingAccount.json

package main

import (
	"context"
	"log"

	"time"

	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewInvoicesClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.InvoicesClientListByBillingAccountOptions{PeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-01-01"); return t }()),
		PeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-06-30"); return t }()),
		Filter:        nil,
		OrderBy:       nil,
		Top:           nil,
		Skip:          nil,
		Count:         nil,
		Search:        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.InvoiceListResult = armbilling.InvoiceListResult{
		// 	Value: []*armbilling.Invoice{
		// 		{
		// 			Name: to.Ptr("G123456789"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/invoices"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/G123456789"),
		// 			Properties: &armbilling.InvoiceProperties{
		// 				AmountDue: &armbilling.InvoicePropertiesAmountDue{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](8.53),
		// 				},
		// 				AzurePrepaymentApplied: &armbilling.InvoicePropertiesAzurePrepaymentApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](25.46),
		// 				},
		// 				BilledAmount: &armbilling.InvoicePropertiesBilledAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](33.99),
		// 				},
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				CreditAmount: &armbilling.InvoicePropertiesCreditAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](0),
		// 				},
		// 				DocumentType: to.Ptr(armbilling.InvoiceDocumentTypeInvoice),
		// 				Documents: []*armbilling.InvoiceDocument{
		// 					{
		// 						Name: to.Ptr("12345678"),
		// 						Kind: to.Ptr(armbilling.InvoiceDocumentTypeInvoice),
		// 					},
		// 					{
		// 						Name: to.Ptr("22345678"),
		// 						Kind: to.Ptr(armbilling.InvoiceDocumentTypeTaxReceipt),
		// 				}},
		// 				DueDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-16T17:32:28.000Z"); return t}()),
		// 				FreeAzureCreditApplied: &armbilling.InvoicePropertiesFreeAzureCreditApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](0),
		// 				},
		// 				InvoiceDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-15T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
		// 				IsMonthlyInvoice: to.Ptr(false),
		// 				PurchaseOrderNumber: to.Ptr("123456"),
		// 				RebillDetails: &armbilling.InvoicePropertiesRebillDetails{
		// 					CreditNoteDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/CreditNote2"),
		// 					InvoiceDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/I000002"),
		// 					RebillDetails: &armbilling.RebillDetails{
		// 						CreditNoteDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/CreditNote"),
		// 						InvoiceDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/I000001"),
		// 					},
		// 				},
		// 				Status: to.Ptr(armbilling.InvoiceStatusDue),
		// 				SubTotal: &armbilling.InvoicePropertiesSubTotal{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](33.99),
		// 				},
		// 				TaxAmount: &armbilling.InvoicePropertiesTaxAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](1),
		// 				},
		// 				TotalAmount: &armbilling.InvoicePropertiesTotalAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](7.53),
		// 				},
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("G987654321"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/invoices"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/G987654321"),
		// 			Properties: &armbilling.InvoiceProperties{
		// 				AmountDue: &armbilling.InvoicePropertiesAmountDue{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](0),
		// 				},
		// 				AzurePrepaymentApplied: &armbilling.InvoicePropertiesAzurePrepaymentApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](25.46),
		// 				},
		// 				BilledAmount: &armbilling.InvoicePropertiesBilledAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](33.99),
		// 				},
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				CreditAmount: &armbilling.InvoicePropertiesCreditAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](0),
		// 				},
		// 				DocumentType: to.Ptr(armbilling.InvoiceDocumentTypeInvoice),
		// 				Documents: []*armbilling.InvoiceDocument{
		// 					{
		// 						Name: to.Ptr("12345678"),
		// 						Kind: to.Ptr(armbilling.InvoiceDocumentTypeInvoice),
		// 					},
		// 					{
		// 						Name: to.Ptr("22345678"),
		// 						Kind: to.Ptr(armbilling.InvoiceDocumentTypeTaxReceipt),
		// 				}},
		// 				DueDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-16T17:32:28.000Z"); return t}()),
		// 				FreeAzureCreditApplied: &armbilling.InvoicePropertiesFreeAzureCreditApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](0),
		// 				},
		// 				InvoiceDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-01T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-15T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-01T17:32:28.000Z"); return t}()),
		// 				IsMonthlyInvoice: to.Ptr(false),
		// 				Payments: []*armbilling.Payment{
		// 					{
		// 						Amount: &armbilling.PaymentAmount{
		// 							Currency: to.Ptr("USD"),
		// 							Value: to.Ptr[float32](33.99),
		// 						},
		// 						Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-14T17:32:28.000Z"); return t}()),
		// 						PaymentMethodFamily: to.Ptr(armbilling.PaymentMethodFamilyCreditCard),
		// 						PaymentMethodType: to.Ptr("visa"),
		// 						PaymentType: to.Ptr("debited"),
		// 				}},
		// 				PurchaseOrderNumber: to.Ptr("123455"),
		// 				RebillDetails: &armbilling.InvoicePropertiesRebillDetails{
		// 					CreditNoteDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/CreditNote2"),
		// 					InvoiceDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/I000002"),
		// 					RebillDetails: &armbilling.RebillDetails{
		// 						CreditNoteDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/CreditNote"),
		// 						InvoiceDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/I000001"),
		// 					},
		// 				},
		// 				Status: to.Ptr(armbilling.InvoiceStatusPaid),
		// 				SubTotal: &armbilling.InvoicePropertiesSubTotal{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](33.99),
		// 				},
		// 				TaxAmount: &armbilling.InvoicePropertiesTaxAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](1),
		// 				},
		// 				TotalAmount: &armbilling.InvoicePropertiesTotalAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](7.53),
		// 				},
		// 			},
		// 	}},
		// }
	}
}

func (*InvoicesClient) NewListByBillingProfilePager

func (client *InvoicesClient) NewListByBillingProfilePager(billingAccountName string, billingProfileName string, options *InvoicesClientListByBillingProfileOptions) *runtime.Pager[InvoicesClientListByBillingProfileResponse]

NewListByBillingProfilePager - Lists the invoices for a billing profile for a given start date and end date. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - InvoicesClientListByBillingProfileOptions contains the optional parameters for the InvoicesClient.NewListByBillingProfilePager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoicesListByBillingProfile.json

package main

import (
	"context"
	"log"

	"time"

	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewInvoicesClient().NewListByBillingProfilePager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", &armbilling.InvoicesClientListByBillingProfileOptions{PeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-01-01"); return t }()),
		PeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-06-30"); return t }()),
		Filter:        nil,
		OrderBy:       nil,
		Top:           nil,
		Skip:          nil,
		Count:         nil,
		Search:        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.InvoiceListResult = armbilling.InvoiceListResult{
		// 	Value: []*armbilling.Invoice{
		// 		{
		// 			Name: to.Ptr("G123456789"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/invoices"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/G123456789"),
		// 			Properties: &armbilling.InvoiceProperties{
		// 				AmountDue: &armbilling.InvoicePropertiesAmountDue{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](8.53),
		// 				},
		// 				AzurePrepaymentApplied: &armbilling.InvoicePropertiesAzurePrepaymentApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](25.46),
		// 				},
		// 				BilledAmount: &armbilling.InvoicePropertiesBilledAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](33.99),
		// 				},
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				CreditAmount: &armbilling.InvoicePropertiesCreditAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](0),
		// 				},
		// 				DocumentType: to.Ptr(armbilling.InvoiceDocumentTypeInvoice),
		// 				Documents: []*armbilling.InvoiceDocument{
		// 					{
		// 						Name: to.Ptr("12345678"),
		// 						Kind: to.Ptr(armbilling.InvoiceDocumentTypeInvoice),
		// 					},
		// 					{
		// 						Name: to.Ptr("22345678"),
		// 						Kind: to.Ptr(armbilling.InvoiceDocumentTypeTaxReceipt),
		// 				}},
		// 				DueDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-16T17:32:28.000Z"); return t}()),
		// 				FreeAzureCreditApplied: &armbilling.InvoicePropertiesFreeAzureCreditApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](0),
		// 				},
		// 				InvoiceDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-15T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
		// 				IsMonthlyInvoice: to.Ptr(false),
		// 				PurchaseOrderNumber: to.Ptr("123456"),
		// 				RebillDetails: &armbilling.InvoicePropertiesRebillDetails{
		// 					CreditNoteDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/CreditNote2"),
		// 					InvoiceDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/I000002"),
		// 					RebillDetails: &armbilling.RebillDetails{
		// 						CreditNoteDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/CreditNote"),
		// 						InvoiceDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/I000001"),
		// 					},
		// 				},
		// 				Status: to.Ptr(armbilling.InvoiceStatusDue),
		// 				SubTotal: &armbilling.InvoicePropertiesSubTotal{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](33.99),
		// 				},
		// 				TaxAmount: &armbilling.InvoicePropertiesTaxAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](1),
		// 				},
		// 				TotalAmount: &armbilling.InvoicePropertiesTotalAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](7.53),
		// 				},
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("G987654321"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/invoices"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/G987654321"),
		// 			Properties: &armbilling.InvoiceProperties{
		// 				AmountDue: &armbilling.InvoicePropertiesAmountDue{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](0),
		// 				},
		// 				AzurePrepaymentApplied: &armbilling.InvoicePropertiesAzurePrepaymentApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](25.46),
		// 				},
		// 				BilledAmount: &armbilling.InvoicePropertiesBilledAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](33.99),
		// 				},
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				CreditAmount: &armbilling.InvoicePropertiesCreditAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](0),
		// 				},
		// 				DocumentType: to.Ptr(armbilling.InvoiceDocumentTypeInvoice),
		// 				Documents: []*armbilling.InvoiceDocument{
		// 					{
		// 						Name: to.Ptr("12345678"),
		// 						Kind: to.Ptr(armbilling.InvoiceDocumentTypeInvoice),
		// 					},
		// 					{
		// 						Name: to.Ptr("22345678"),
		// 						Kind: to.Ptr(armbilling.InvoiceDocumentTypeTaxReceipt),
		// 				}},
		// 				DueDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-16T17:32:28.000Z"); return t}()),
		// 				FreeAzureCreditApplied: &armbilling.InvoicePropertiesFreeAzureCreditApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](0),
		// 				},
		// 				InvoiceDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-01T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-15T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-01T17:32:28.000Z"); return t}()),
		// 				IsMonthlyInvoice: to.Ptr(false),
		// 				Payments: []*armbilling.Payment{
		// 					{
		// 						Amount: &armbilling.PaymentAmount{
		// 							Currency: to.Ptr("USD"),
		// 							Value: to.Ptr[float32](33.99),
		// 						},
		// 						Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-14T17:32:28.000Z"); return t}()),
		// 						PaymentMethodFamily: to.Ptr(armbilling.PaymentMethodFamilyCreditCard),
		// 						PaymentMethodType: to.Ptr("visa"),
		// 						PaymentType: to.Ptr("debited"),
		// 				}},
		// 				PurchaseOrderNumber: to.Ptr("123455"),
		// 				RebillDetails: &armbilling.InvoicePropertiesRebillDetails{
		// 					CreditNoteDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/CreditNote2"),
		// 					InvoiceDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/I000002"),
		// 					RebillDetails: &armbilling.RebillDetails{
		// 						CreditNoteDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/CreditNote"),
		// 						InvoiceDocumentID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/I000001"),
		// 					},
		// 				},
		// 				Status: to.Ptr(armbilling.InvoiceStatusPaid),
		// 				SubTotal: &armbilling.InvoicePropertiesSubTotal{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](33.99),
		// 				},
		// 				TaxAmount: &armbilling.InvoicePropertiesTaxAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](1),
		// 				},
		// 				TotalAmount: &armbilling.InvoicePropertiesTotalAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](7.53),
		// 				},
		// 			},
		// 	}},
		// }
	}
}

func (*InvoicesClient) NewListByBillingSubscriptionPager

NewListByBillingSubscriptionPager - Lists the invoices for a subscription. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.

Generated from API version 2024-04-01

  • options - InvoicesClientListByBillingSubscriptionOptions contains the optional parameters for the InvoicesClient.NewListByBillingSubscriptionPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/invoicesListByBillingSubscription.json

package main

import (
	"context"
	"log"

	"time"

	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewInvoicesClient().NewListByBillingSubscriptionPager(&armbilling.InvoicesClientListByBillingSubscriptionOptions{PeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-01-01"); return t }()),
		PeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-06-30"); return t }()),
		Filter:        nil,
		OrderBy:       nil,
		Top:           nil,
		Skip:          nil,
		Count:         nil,
		Search:        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.InvoiceListResult = armbilling.InvoiceListResult{
		// 	Value: []*armbilling.Invoice{
		// 		{
		// 			Name: to.Ptr("E123456789"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions/invoices"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/11111111-1111-1111-1111-111111111111/invoices/E123456789"),
		// 			Properties: &armbilling.InvoiceProperties{
		// 				AmountDue: &armbilling.InvoicePropertiesAmountDue{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](8.53),
		// 				},
		// 				BilledAmount: &armbilling.InvoicePropertiesBilledAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](33.99),
		// 				},
		// 				DueDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-16T17:32:28.000Z"); return t}()),
		// 				InvoiceDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-15T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
		// 				InvoiceType: to.Ptr(armbilling.InvoiceTypeAzureServices),
		// 				PurchaseOrderNumber: to.Ptr("123456"),
		// 				Status: to.Ptr(armbilling.InvoiceStatusDue),
		// 				SubscriptionDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				SubscriptionID: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("G123456789"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions/invoices"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/11111111-1111-1111-1111-111111111111/invoices/G123456789"),
		// 			Properties: &armbilling.InvoiceProperties{
		// 				AmountDue: &armbilling.InvoicePropertiesAmountDue{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](15.53),
		// 				},
		// 				BilledAmount: &armbilling.InvoicePropertiesBilledAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](55.99),
		// 				},
		// 				DueDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-16T17:32:28.000Z"); return t}()),
		// 				InvoiceDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-15T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T17:32:28.000Z"); return t}()),
		// 				InvoiceType: to.Ptr(armbilling.InvoiceTypeAzureMarketplace),
		// 				PurchaseOrderNumber: to.Ptr("123456"),
		// 				Status: to.Ptr(armbilling.InvoiceStatusDue),
		// 				SubscriptionDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				SubscriptionID: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("E987654321"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions/invoices"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/11111111-1111-1111-1111-111111111111/invoices/E987654321"),
		// 			Properties: &armbilling.InvoiceProperties{
		// 				AmountDue: &armbilling.InvoicePropertiesAmountDue{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](8.53),
		// 				},
		// 				BilledAmount: &armbilling.InvoicePropertiesBilledAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](33.99),
		// 				},
		// 				Documents: []*armbilling.InvoiceDocument{
		// 					{
		// 						Name: to.Ptr("12345678"),
		// 						Kind: to.Ptr(armbilling.InvoiceDocumentTypeInvoice),
		// 				}},
		// 				DueDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-16T17:32:28.000Z"); return t}()),
		// 				InvoiceDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-01T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-15T17:32:28.000Z"); return t}()),
		// 				InvoicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-01T17:32:28.000Z"); return t}()),
		// 				InvoiceType: to.Ptr(armbilling.InvoiceTypeAzureSupport),
		// 				Payments: []*armbilling.Payment{
		// 					{
		// 						Amount: &armbilling.PaymentAmount{
		// 							Currency: to.Ptr("USD"),
		// 							Value: to.Ptr[float32](2000),
		// 						},
		// 						Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-14T17:32:28.000Z"); return t}()),
		// 						PaymentMethodFamily: to.Ptr(armbilling.PaymentMethodFamilyCreditCard),
		// 						PaymentMethodType: to.Ptr("visa"),
		// 						PaymentType: to.Ptr("credited"),
		// 				}},
		// 				PurchaseOrderNumber: to.Ptr("123456"),
		// 				Status: to.Ptr(armbilling.InvoiceStatusDue),
		// 				SubscriptionDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				SubscriptionID: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 			},
		// 	}},
		// }
	}
}

type InvoicesClientAmendResponse

type InvoicesClientAmendResponse struct {
}

InvoicesClientAmendResponse contains the response from method InvoicesClient.BeginAmend.

type InvoicesClientBeginAmendOptions

type InvoicesClientBeginAmendOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

InvoicesClientBeginAmendOptions contains the optional parameters for the InvoicesClient.BeginAmend method.

type InvoicesClientBeginDownloadByBillingAccountOptions

type InvoicesClientBeginDownloadByBillingAccountOptions struct {
	// The ID that uniquely identifies an invoice document. This ID may be an identifier for an invoice PDF, a credit note, or
	// a tax receipt.
	DocumentName *string

	// Resumes the LRO from the provided token.
	ResumeToken string
}

InvoicesClientBeginDownloadByBillingAccountOptions contains the optional parameters for the InvoicesClient.BeginDownloadByBillingAccount method.

type InvoicesClientBeginDownloadByBillingSubscriptionOptions

type InvoicesClientBeginDownloadByBillingSubscriptionOptions struct {
	// The ID that uniquely identifies an invoice document. This ID may be an identifier for an invoice PDF, a credit note, or
	// a tax receipt.
	DocumentName *string

	// Resumes the LRO from the provided token.
	ResumeToken string
}

InvoicesClientBeginDownloadByBillingSubscriptionOptions contains the optional parameters for the InvoicesClient.BeginDownloadByBillingSubscription method.

type InvoicesClientBeginDownloadDocumentsByBillingAccountOptions

type InvoicesClientBeginDownloadDocumentsByBillingAccountOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

InvoicesClientBeginDownloadDocumentsByBillingAccountOptions contains the optional parameters for the InvoicesClient.BeginDownloadDocumentsByBillingAccount method.

type InvoicesClientBeginDownloadDocumentsByBillingSubscriptionOptions

type InvoicesClientBeginDownloadDocumentsByBillingSubscriptionOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

InvoicesClientBeginDownloadDocumentsByBillingSubscriptionOptions contains the optional parameters for the InvoicesClient.BeginDownloadDocumentsByBillingSubscription method.

type InvoicesClientBeginDownloadSummaryByBillingAccountOptions

type InvoicesClientBeginDownloadSummaryByBillingAccountOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

InvoicesClientBeginDownloadSummaryByBillingAccountOptions contains the optional parameters for the InvoicesClient.BeginDownloadSummaryByBillingAccount method.

type InvoicesClientDownloadByBillingAccountResponse

type InvoicesClientDownloadByBillingAccountResponse struct {
	// A secure URL that can be used to download a an entity until the URL expires.
	DocumentDownloadResult
}

InvoicesClientDownloadByBillingAccountResponse contains the response from method InvoicesClient.BeginDownloadByBillingAccount.

type InvoicesClientDownloadByBillingSubscriptionResponse

type InvoicesClientDownloadByBillingSubscriptionResponse struct {
	// A secure URL that can be used to download a an entity until the URL expires.
	DocumentDownloadResult
}

InvoicesClientDownloadByBillingSubscriptionResponse contains the response from method InvoicesClient.BeginDownloadByBillingSubscription.

type InvoicesClientDownloadDocumentsByBillingAccountResponse

type InvoicesClientDownloadDocumentsByBillingAccountResponse struct {
	// A secure URL that can be used to download a an entity until the URL expires.
	DocumentDownloadResult
}

InvoicesClientDownloadDocumentsByBillingAccountResponse contains the response from method InvoicesClient.BeginDownloadDocumentsByBillingAccount.

type InvoicesClientDownloadDocumentsByBillingSubscriptionResponse

type InvoicesClientDownloadDocumentsByBillingSubscriptionResponse struct {
	// A secure URL that can be used to download a an entity until the URL expires.
	DocumentDownloadResult
}

InvoicesClientDownloadDocumentsByBillingSubscriptionResponse contains the response from method InvoicesClient.BeginDownloadDocumentsByBillingSubscription.

type InvoicesClientDownloadSummaryByBillingAccountResponse

type InvoicesClientDownloadSummaryByBillingAccountResponse struct {
	// A secure URL that can be used to download a an entity until the URL expires.
	DocumentDownloadResult
}

InvoicesClientDownloadSummaryByBillingAccountResponse contains the response from method InvoicesClient.BeginDownloadSummaryByBillingAccount.

type InvoicesClientGetByBillingAccountOptions

type InvoicesClientGetByBillingAccountOptions struct {
}

InvoicesClientGetByBillingAccountOptions contains the optional parameters for the InvoicesClient.GetByBillingAccount method.

type InvoicesClientGetByBillingAccountResponse

type InvoicesClientGetByBillingAccountResponse struct {
	// An invoice.
	Invoice
}

InvoicesClientGetByBillingAccountResponse contains the response from method InvoicesClient.GetByBillingAccount.

type InvoicesClientGetByBillingSubscriptionOptions

type InvoicesClientGetByBillingSubscriptionOptions struct {
}

InvoicesClientGetByBillingSubscriptionOptions contains the optional parameters for the InvoicesClient.GetByBillingSubscription method.

type InvoicesClientGetByBillingSubscriptionResponse

type InvoicesClientGetByBillingSubscriptionResponse struct {
	// An invoice.
	Invoice
}

InvoicesClientGetByBillingSubscriptionResponse contains the response from method InvoicesClient.GetByBillingSubscription.

type InvoicesClientGetOptions

type InvoicesClientGetOptions struct {
}

InvoicesClientGetOptions contains the optional parameters for the InvoicesClient.Get method.

type InvoicesClientGetResponse

type InvoicesClientGetResponse struct {
	// An invoice.
	Invoice
}

InvoicesClientGetResponse contains the response from method InvoicesClient.Get.

type InvoicesClientListByBillingAccountOptions

type InvoicesClientListByBillingAccountOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The end date of the billing period for which the invoice is generated. The date is in MM-DD-YYYY format.
	PeriodEndDate *time.Time

	// The start date of the billing period for which the invoice is generated. The date is in MM-DD-YYYY format.
	PeriodStartDate *time.Time

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

InvoicesClientListByBillingAccountOptions contains the optional parameters for the InvoicesClient.NewListByBillingAccountPager method.

type InvoicesClientListByBillingAccountResponse

type InvoicesClientListByBillingAccountResponse struct {
	// A container for a list of resources
	InvoiceListResult
}

InvoicesClientListByBillingAccountResponse contains the response from method InvoicesClient.NewListByBillingAccountPager.

type InvoicesClientListByBillingProfileOptions

type InvoicesClientListByBillingProfileOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The end date of the billing period for which the invoice is generated. The date is in MM-DD-YYYY format.
	PeriodEndDate *time.Time

	// The start date of the billing period for which the invoice is generated. The date is in MM-DD-YYYY format.
	PeriodStartDate *time.Time

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

InvoicesClientListByBillingProfileOptions contains the optional parameters for the InvoicesClient.NewListByBillingProfilePager method.

type InvoicesClientListByBillingProfileResponse

type InvoicesClientListByBillingProfileResponse struct {
	// A container for a list of resources
	InvoiceListResult
}

InvoicesClientListByBillingProfileResponse contains the response from method InvoicesClient.NewListByBillingProfilePager.

type InvoicesClientListByBillingSubscriptionOptions

type InvoicesClientListByBillingSubscriptionOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The end date of the billing period for which the invoice is generated. The date is in MM-DD-YYYY format.
	PeriodEndDate *time.Time

	// The start date of the billing period for which the invoice is generated. The date is in MM-DD-YYYY format.
	PeriodStartDate *time.Time

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

InvoicesClientListByBillingSubscriptionOptions contains the optional parameters for the InvoicesClient.NewListByBillingSubscriptionPager method.

type InvoicesClientListByBillingSubscriptionResponse

type InvoicesClientListByBillingSubscriptionResponse struct {
	// A container for a list of resources
	InvoiceListResult
}

InvoicesClientListByBillingSubscriptionResponse contains the response from method InvoicesClient.NewListByBillingSubscriptionPager.

type MarketplacePurchasesPolicy

type MarketplacePurchasesPolicy string

MarketplacePurchasesPolicy - The policy that controls whether Azure marketplace purchases are allowed.

const (
	MarketplacePurchasesPolicyAllAllowed      MarketplacePurchasesPolicy = "AllAllowed"
	MarketplacePurchasesPolicyDisabled        MarketplacePurchasesPolicy = "Disabled"
	MarketplacePurchasesPolicyNotAllowed      MarketplacePurchasesPolicy = "NotAllowed"
	MarketplacePurchasesPolicyOnlyFreeAllowed MarketplacePurchasesPolicy = "OnlyFreeAllowed"
	MarketplacePurchasesPolicyOther           MarketplacePurchasesPolicy = "Other"
)

func PossibleMarketplacePurchasesPolicyValues

func PossibleMarketplacePurchasesPolicyValues() []MarketplacePurchasesPolicy

PossibleMarketplacePurchasesPolicyValues returns the possible values for the MarketplacePurchasesPolicy const type.

type MarkupStatus

type MarkupStatus string

MarkupStatus - Markup status of enrollment, applicable only for indirect enrollments.

const (
	MarkupStatusDisabled  MarkupStatus = "Disabled"
	MarkupStatusLocked    MarkupStatus = "Locked"
	MarkupStatusOther     MarkupStatus = "Other"
	MarkupStatusPreview   MarkupStatus = "Preview"
	MarkupStatusPublished MarkupStatus = "Published"
)

func PossibleMarkupStatusValues

func PossibleMarkupStatusValues() []MarkupStatus

PossibleMarkupStatusValues returns the possible values for the MarkupStatus const type.

type MoveBillingSubscriptionEligibilityResult

type MoveBillingSubscriptionEligibilityResult struct {
	// Error details of the transfer eligibility validation.
	ErrorDetails *MoveBillingSubscriptionErrorDetails

	// READ-ONLY; Specifies whether the subscription is eligible to be transferred.
	IsMoveEligible *bool
}

MoveBillingSubscriptionEligibilityResult - Result of the transfer eligibility validation.

func (MoveBillingSubscriptionEligibilityResult) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type MoveBillingSubscriptionEligibilityResult.

func (*MoveBillingSubscriptionEligibilityResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type MoveBillingSubscriptionEligibilityResult.

type MoveBillingSubscriptionErrorDetails

type MoveBillingSubscriptionErrorDetails struct {
	// Error code of the transfer validation response.
	Code *SubscriptionTransferValidationErrorCode

	// Detailed error message explaining the error.
	Details *string

	// The error message.
	Message *string
}

MoveBillingSubscriptionErrorDetails - Error details of the transfer eligibility validation.

func (MoveBillingSubscriptionErrorDetails) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type MoveBillingSubscriptionErrorDetails.

func (*MoveBillingSubscriptionErrorDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type MoveBillingSubscriptionErrorDetails.

type MoveBillingSubscriptionRequest

type MoveBillingSubscriptionRequest struct {
	// The destination enrollment account id.
	DestinationEnrollmentAccountID *string

	// The destination invoice section id.
	DestinationInvoiceSectionID *string
}

MoveBillingSubscriptionRequest - Request parameters to transfer billing subscription.

func (MoveBillingSubscriptionRequest) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type MoveBillingSubscriptionRequest.

func (*MoveBillingSubscriptionRequest) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type MoveBillingSubscriptionRequest.

type MoveProductEligibilityResult

type MoveProductEligibilityResult struct {
	// Error details of the transfer eligibility validation.
	ErrorDetails *MoveProductEligibilityResultErrorDetails

	// Specifies whether the subscription is eligible to be transferred.
	IsMoveEligible *bool
}

MoveProductEligibilityResult - Result of the transfer eligibility validation.

func (MoveProductEligibilityResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type MoveProductEligibilityResult.

func (*MoveProductEligibilityResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type MoveProductEligibilityResult.

type MoveProductEligibilityResultErrorDetails

type MoveProductEligibilityResultErrorDetails struct {
	// READ-ONLY; Error code for the product transfer validation.
	Code *MoveValidationErrorCode

	// READ-ONLY; Error details of the transfer eligibility validation.
	Details *string

	// READ-ONLY; The error message.
	Message *string
}

MoveProductEligibilityResultErrorDetails - Error details of the transfer eligibility validation.

func (MoveProductEligibilityResultErrorDetails) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type MoveProductEligibilityResultErrorDetails.

func (*MoveProductEligibilityResultErrorDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type MoveProductEligibilityResultErrorDetails.

type MoveProductErrorDetails

type MoveProductErrorDetails struct {
	// READ-ONLY; Error code for the product transfer validation.
	Code *MoveValidationErrorCode

	// READ-ONLY; Error details of the transfer eligibility validation.
	Details *string

	// READ-ONLY; The error message.
	Message *string
}

MoveProductErrorDetails - Error details of the transfer eligibility validation.

func (MoveProductErrorDetails) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type MoveProductErrorDetails.

func (*MoveProductErrorDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type MoveProductErrorDetails.

type MoveProductRequest

type MoveProductRequest struct {
	// REQUIRED; The destination invoice section id.
	DestinationInvoiceSectionID *string
}

MoveProductRequest - The properties of the product to initiate a transfer.

func (MoveProductRequest) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type MoveProductRequest.

func (*MoveProductRequest) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type MoveProductRequest.

type MoveValidationErrorCode

type MoveValidationErrorCode string

MoveValidationErrorCode - Error code for the product transfer validation.

const (
	MoveValidationErrorCodeBillingAccountInactive              MoveValidationErrorCode = "BillingAccountInactive"
	MoveValidationErrorCodeDestinationBillingProfileInactive   MoveValidationErrorCode = "DestinationBillingProfileInactive"
	MoveValidationErrorCodeDestinationBillingProfileNotFound   MoveValidationErrorCode = "DestinationBillingProfileNotFound"
	MoveValidationErrorCodeDestinationBillingProfilePastDue    MoveValidationErrorCode = "DestinationBillingProfilePastDue"
	MoveValidationErrorCodeDestinationInvoiceSectionInactive   MoveValidationErrorCode = "DestinationInvoiceSectionInactive"
	MoveValidationErrorCodeDestinationInvoiceSectionNotFound   MoveValidationErrorCode = "DestinationInvoiceSectionNotFound"
	MoveValidationErrorCodeInsufficientPermissionOnDestination MoveValidationErrorCode = "InsufficientPermissionOnDestination"
	MoveValidationErrorCodeInsufficientPermissionOnSource      MoveValidationErrorCode = "InsufficientPermissionOnSource"
	MoveValidationErrorCodeInvalidDestination                  MoveValidationErrorCode = "InvalidDestination"
	MoveValidationErrorCodeInvalidSource                       MoveValidationErrorCode = "InvalidSource"
	MoveValidationErrorCodeMarketplaceNotEnabledOnDestination  MoveValidationErrorCode = "MarketplaceNotEnabledOnDestination"
	MoveValidationErrorCodeOther                               MoveValidationErrorCode = "Other"
	MoveValidationErrorCodeProductInactive                     MoveValidationErrorCode = "ProductInactive"
	MoveValidationErrorCodeProductNotFound                     MoveValidationErrorCode = "ProductNotFound"
	MoveValidationErrorCodeProductTypeNotSupported             MoveValidationErrorCode = "ProductTypeNotSupported"
	MoveValidationErrorCodeSourceBillingProfilePastDue         MoveValidationErrorCode = "SourceBillingProfilePastDue"
	MoveValidationErrorCodeSourceInvoiceSectionInactive        MoveValidationErrorCode = "SourceInvoiceSectionInactive"
)

func PossibleMoveValidationErrorCodeValues

func PossibleMoveValidationErrorCodeValues() []MoveValidationErrorCode

PossibleMoveValidationErrorCodeValues returns the possible values for the MoveValidationErrorCode const type.

type NextBillingCycleDetails

type NextBillingCycleDetails struct {
	// READ-ONLY; Billing frequency of the product under the subscription.
	BillingFrequency *string
}

NextBillingCycleDetails - Billing cycle details of the product.

func (NextBillingCycleDetails) MarshalJSON

func (n NextBillingCycleDetails) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type NextBillingCycleDetails.

func (*NextBillingCycleDetails) UnmarshalJSON

func (n *NextBillingCycleDetails) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type NextBillingCycleDetails.

type Operation

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

	// READ-ONLY; Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for ARM/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
}

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 this particular 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 {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*Operation
}

OperationListResult - A container for a list of resources

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 of operations supported by provider.

Generated from API version 2024-04-01

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

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/operationsList.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", 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.OperationListResult = armbilling.OperationListResult{
		// 	Value: []*armbilling.Operation{
		// 		{
		// 			Name: to.Ptr("{namespace}/resource/read"),
		// 			Display: &armbilling.OperationDisplay{
		// 				Operation: to.Ptr("List resources"),
		// 				Provider: to.Ptr("{namespace}"),
		// 				Resource: to.Ptr("resource"),
		// 			},
		// 	}},
		// }
	}
}

type OperationsClientListOptions

type OperationsClientListOptions struct {
}

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

type OperationsClientListResponse

type OperationsClientListResponse struct {
	// A container for a list of resources
	OperationListResult
}

OperationsClientListResponse contains the response from method OperationsClient.NewListPager.

type Participant

type Participant struct {
	// READ-ONLY; The email address of the participant.
	Email *string

	// READ-ONLY; The acceptance status of the participant.
	Status *string

	// READ-ONLY; The date when the status got changed.
	StatusDate *time.Time
}

Participant - Billing account name. Available for a specific type of agreement.

func (Participant) MarshalJSON

func (p Participant) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Participant.

func (*Participant) UnmarshalJSON

func (p *Participant) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Participant.

type PartnerInitiateTransferProperties

type PartnerInitiateTransferProperties struct {
	// The email ID of the recipient to whom the transfer request is sent.
	RecipientEmailID *string

	// Optional MPN ID of the reseller for transfer requests that are sent from a Microsoft Partner Agreement billing account.
	ResellerID *string
}

PartnerInitiateTransferProperties - Request parameters to initiate transfer.

func (PartnerInitiateTransferProperties) MarshalJSON

func (p PartnerInitiateTransferProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PartnerInitiateTransferProperties.

func (*PartnerInitiateTransferProperties) UnmarshalJSON

func (p *PartnerInitiateTransferProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PartnerInitiateTransferProperties.

type PartnerInitiateTransferRequest

type PartnerInitiateTransferRequest struct {
	// Request parameters to initiate partner transfer.
	Properties *PartnerInitiateTransferProperties
}

PartnerInitiateTransferRequest - Request parameters to initiate partner transfer.

func (PartnerInitiateTransferRequest) MarshalJSON

func (p PartnerInitiateTransferRequest) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PartnerInitiateTransferRequest.

func (*PartnerInitiateTransferRequest) UnmarshalJSON

func (p *PartnerInitiateTransferRequest) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PartnerInitiateTransferRequest.

type PartnerTransferDetails

type PartnerTransferDetails struct {
	// Details of the transfer.
	Properties *PartnerTransferProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

PartnerTransferDetails - Details of the transfer.

func (PartnerTransferDetails) MarshalJSON

func (p PartnerTransferDetails) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PartnerTransferDetails.

func (*PartnerTransferDetails) UnmarshalJSON

func (p *PartnerTransferDetails) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PartnerTransferDetails.

type PartnerTransferDetailsListResult

type PartnerTransferDetailsListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of transfers initiated by partner.
	Value []*PartnerTransferDetails
}

PartnerTransferDetailsListResult - The list of transfers initiated by partner.

func (PartnerTransferDetailsListResult) MarshalJSON

func (p PartnerTransferDetailsListResult) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PartnerTransferDetailsListResult.

func (*PartnerTransferDetailsListResult) UnmarshalJSON

func (p *PartnerTransferDetailsListResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PartnerTransferDetailsListResult.

type PartnerTransferProperties

type PartnerTransferProperties struct {
	// READ-ONLY; The email ID of the user who canceled the transfer request.
	CanceledBy *string

	// READ-ONLY; Detailed transfer status.
	DetailedTransferStatus []*DetailedTransferStatus

	// READ-ONLY; The time at which the transfer request expires.
	ExpirationTime *time.Time

	// READ-ONLY; The type of customer who sent the transfer request.
	InitiatorCustomerType *InitiatorCustomerType

	// READ-ONLY; The email ID of the user who sent the transfer request.
	InitiatorEmailID *string

	// READ-ONLY; The email ID of the user to whom the transfer request was sent.
	RecipientEmailID *string

	// READ-ONLY; Optional MPN ID of the reseller for transfer requests that are sent from a Microsoft Partner Agreement billing
	// account.
	ResellerID *string

	// READ-ONLY; Optional name of the reseller for transfer requests that are sent from Microsoft Partner Agreement billing account.
	ResellerName *string

	// READ-ONLY; Overall transfer status.
	TransferStatus *TransferStatus
}

PartnerTransferProperties - Transfer Details.

func (PartnerTransferProperties) MarshalJSON

func (p PartnerTransferProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PartnerTransferProperties.

func (*PartnerTransferProperties) UnmarshalJSON

func (p *PartnerTransferProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PartnerTransferProperties.

type PartnerTransfersClient

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

PartnerTransfersClient contains the methods for the PartnerTransfers group. Don't use this type directly, use NewPartnerTransfersClient() instead.

func NewPartnerTransfersClient

func NewPartnerTransfersClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*PartnerTransfersClient, error)

NewPartnerTransfersClient creates a new instance of PartnerTransfersClient with the specified values.

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

func (*PartnerTransfersClient) Cancel

func (client *PartnerTransfersClient) Cancel(ctx context.Context, billingAccountName string, billingProfileName string, customerName string, transferName string, options *PartnerTransfersClientCancelOptions) (PartnerTransfersClientCancelResponse, error)

Cancel - Cancels a transfer request. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • transferName - The ID that uniquely identifies a transfer request.
  • options - PartnerTransfersClientCancelOptions contains the optional parameters for the PartnerTransfersClient.Cancel method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/partnerTransfersCancel.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPartnerTransfersClient().Cancel(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "11111111-1111-1111-1111-111111111111", "aabb123", 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.PartnerTransferDetails = armbilling.PartnerTransferDetails{
	// 	Name: to.Ptr("aabb123"),
	// 	Type: to.Ptr("Microsoft.Billing/transfers"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/BillingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111/transfers/aabb123"),
	// 	Properties: &armbilling.PartnerTransferProperties{
	// 		CanceledBy: to.Ptr("user@contoso.com"),
	// 		ExpirationTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-05T17:32:28.000Z"); return t}()),
	// 		InitiatorCustomerType: to.Ptr(armbilling.InitiatorCustomerTypePartner),
	// 		InitiatorEmailID: to.Ptr("xyz@contoso.com"),
	// 		RecipientEmailID: to.Ptr("user@contoso.com"),
	// 		TransferStatus: to.Ptr(armbilling.TransferStatusPending),
	// 	},
	// }
}

func (*PartnerTransfersClient) Get

func (client *PartnerTransfersClient) Get(ctx context.Context, billingAccountName string, billingProfileName string, customerName string, transferName string, options *PartnerTransfersClientGetOptions) (PartnerTransfersClientGetResponse, error)

Get - Gets a transfer request by ID. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • transferName - The ID that uniquely identifies a transfer request.
  • options - PartnerTransfersClientGetOptions contains the optional parameters for the PartnerTransfersClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/partnerTransfersGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPartnerTransfersClient().Get(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "11111111-1111-1111-1111-111111111111", "aabb123", 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.PartnerTransferDetails = armbilling.PartnerTransferDetails{
	// 	Name: to.Ptr("aabb123"),
	// 	Type: to.Ptr("Microsoft.Billing/transfers"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/BillingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111/transfers/aabb123"),
	// 	Properties: &armbilling.PartnerTransferProperties{
	// 		DetailedTransferStatus: []*armbilling.DetailedTransferStatus{
	// 			{
	// 				ProductID: to.Ptr("subscriptionId"),
	// 				ProductName: to.Ptr("Azure subscription 1"),
	// 				ProductType: to.Ptr(armbilling.ProductTypeAzureSubscription),
	// 				SKUDescription: to.Ptr("MS-AZR-0017G"),
	// 				TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
	// 			},
	// 			{
	// 				ProductID: to.Ptr("reservedInstanceId"),
	// 				ProductName: to.Ptr("Reservation name"),
	// 				ProductType: to.Ptr(armbilling.ProductTypeAzureReservation),
	// 				SKUDescription: to.Ptr("Standard_D2s_v3;VirtualMachines;P1Y"),
	// 				TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
	// 		}},
	// 		ExpirationTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-05T17:32:28.000Z"); return t}()),
	// 		InitiatorCustomerType: to.Ptr(armbilling.InitiatorCustomerTypePartner),
	// 		InitiatorEmailID: to.Ptr("xyz@contoso.com"),
	// 		RecipientEmailID: to.Ptr("user@contoso.com"),
	// 		TransferStatus: to.Ptr(armbilling.TransferStatusInProgress),
	// 	},
	// }
}

func (*PartnerTransfersClient) Initiate

func (client *PartnerTransfersClient) Initiate(ctx context.Context, billingAccountName string, billingProfileName string, customerName string, transferName string, parameters PartnerInitiateTransferRequest, options *PartnerTransfersClientInitiateOptions) (PartnerTransfersClientInitiateResponse, error)

Initiate - Sends a request to a user in a customer's billing account to transfer billing ownership of their subscriptions. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • transferName - The ID that uniquely identifies a transfer request.
  • parameters - Request parameters that are provided to the initiate transfer operation.
  • options - PartnerTransfersClientInitiateOptions contains the optional parameters for the PartnerTransfersClient.Initiate method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/partnerTransfersInitiate.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPartnerTransfersClient().Initiate(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "11111111-1111-1111-1111-111111111111", "aabb123", armbilling.PartnerInitiateTransferRequest{
		Properties: &armbilling.PartnerInitiateTransferProperties{
			RecipientEmailID: to.Ptr("user@contoso.com"),
		},
	}, 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.PartnerTransferDetails = armbilling.PartnerTransferDetails{
	// 	Name: to.Ptr("aabb123"),
	// 	Type: to.Ptr("Microsoft.Billing/transfers"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/BillingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111/transfers/aabb123"),
	// 	Properties: &armbilling.PartnerTransferProperties{
	// 		ExpirationTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-05T17:32:28.000Z"); return t}()),
	// 		InitiatorCustomerType: to.Ptr(armbilling.InitiatorCustomerTypePartner),
	// 		InitiatorEmailID: to.Ptr("xyz@contoso.com"),
	// 		RecipientEmailID: to.Ptr("user@contoso.com"),
	// 		TransferStatus: to.Ptr(armbilling.TransferStatusPending),
	// 	},
	// }
}

func (*PartnerTransfersClient) NewListPager

func (client *PartnerTransfersClient) NewListPager(billingAccountName string, billingProfileName string, customerName string, options *PartnerTransfersClientListOptions) *runtime.Pager[PartnerTransfersClientListResponse]

NewListPager - Lists the transfer requests sent to a customer. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • options - PartnerTransfersClientListOptions contains the optional parameters for the PartnerTransfersClient.NewListPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/partnerTransfersList.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewPartnerTransfersClient().NewListPager("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "11111111-1111-1111-1111-111111111111", 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.PartnerTransferDetailsListResult = armbilling.PartnerTransferDetailsListResult{
		// 	Value: []*armbilling.PartnerTransferDetails{
		// 		{
		// 			Name: to.Ptr("aabb123"),
		// 			Type: to.Ptr("Microsoft.Billing/transfers"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/BillingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111/transfers/aabb123"),
		// 			Properties: &armbilling.PartnerTransferProperties{
		// 				DetailedTransferStatus: []*armbilling.DetailedTransferStatus{
		// 					{
		// 						ProductID: to.Ptr("subscriptionId"),
		// 						ProductName: to.Ptr("Azure subscription 1"),
		// 						ProductType: to.Ptr(armbilling.ProductTypeAzureSubscription),
		// 						SKUDescription: to.Ptr("MS-AZR-0017G"),
		// 						TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
		// 					},
		// 					{
		// 						ProductID: to.Ptr("reservedInstanceId"),
		// 						ProductName: to.Ptr("Reservation name"),
		// 						ProductType: to.Ptr(armbilling.ProductTypeAzureReservation),
		// 						SKUDescription: to.Ptr("Standard_D2s_v3;VirtualMachines;P1Y"),
		// 						TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
		// 				}},
		// 				ExpirationTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-05T17:32:28.000Z"); return t}()),
		// 				InitiatorCustomerType: to.Ptr(armbilling.InitiatorCustomerTypePartner),
		// 				InitiatorEmailID: to.Ptr("xyz@contoso.com"),
		// 				RecipientEmailID: to.Ptr("user@contoso.com"),
		// 				TransferStatus: to.Ptr(armbilling.TransferStatusInProgress),
		// 			},
		// 	}},
		// }
	}
}

type PartnerTransfersClientCancelOptions

type PartnerTransfersClientCancelOptions struct {
}

PartnerTransfersClientCancelOptions contains the optional parameters for the PartnerTransfersClient.Cancel method.

type PartnerTransfersClientCancelResponse

type PartnerTransfersClientCancelResponse struct {
	// Details of the transfer.
	PartnerTransferDetails
}

PartnerTransfersClientCancelResponse contains the response from method PartnerTransfersClient.Cancel.

type PartnerTransfersClientGetOptions

type PartnerTransfersClientGetOptions struct {
}

PartnerTransfersClientGetOptions contains the optional parameters for the PartnerTransfersClient.Get method.

type PartnerTransfersClientGetResponse

type PartnerTransfersClientGetResponse struct {
	// Details of the transfer.
	PartnerTransferDetails
}

PartnerTransfersClientGetResponse contains the response from method PartnerTransfersClient.Get.

type PartnerTransfersClientInitiateOptions

type PartnerTransfersClientInitiateOptions struct {
}

PartnerTransfersClientInitiateOptions contains the optional parameters for the PartnerTransfersClient.Initiate method.

type PartnerTransfersClientInitiateResponse

type PartnerTransfersClientInitiateResponse struct {
	// Details of the transfer.
	PartnerTransferDetails
}

PartnerTransfersClientInitiateResponse contains the response from method PartnerTransfersClient.Initiate.

type PartnerTransfersClientListOptions

type PartnerTransfersClientListOptions struct {
}

PartnerTransfersClientListOptions contains the optional parameters for the PartnerTransfersClient.NewListPager method.

type PartnerTransfersClientListResponse

type PartnerTransfersClientListResponse struct {
	// The list of transfers initiated by partner.
	PartnerTransferDetailsListResult
}

PartnerTransfersClientListResponse contains the response from method PartnerTransfersClient.NewListPager.

type Patch

type Patch struct {
	// Properties for reservation patch
	Properties *PatchProperties

	// The sku information associated to this reservation
	SKU *ReservationSKUProperty

	// Tags for this reservation
	Tags map[string]*string
}

Patch - The request for reservation patch

func (Patch) MarshalJSON

func (p Patch) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Patch.

func (*Patch) UnmarshalJSON

func (p *Patch) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Patch.

type PatchProperties

type PatchProperties struct {
	// Properties specific to applied scope type. Not required if not applicable. Required and need to provide tenantId and managementGroupId
	// if AppliedScopeType is ManagementGroup
	AppliedScopeProperties *ReservationAppliedScopeProperties

	// Type of the Applied Scope.
	AppliedScopeType *AppliedScopeType

	// Display name of the reservation
	DisplayName *string

	// Turning this on will apply the reservation discount to other VMs in the same VM size group. Only specify for VirtualMachines
	// reserved resource type.
	InstanceFlexibility *InstanceFlexibility

	// Setting this to true will automatically purchase a new benefit on the expiration date time.
	Renew           *bool
	RenewProperties *PatchPropertiesRenewProperties

	// This is the date-time when the Azure hybrid benefit needs to be reviewed.
	ReviewDateTime *time.Time
}

PatchProperties - Properties for reservation patch

func (PatchProperties) MarshalJSON

func (p PatchProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PatchProperties.

func (*PatchProperties) UnmarshalJSON

func (p *PatchProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PatchProperties.

type PatchPropertiesRenewProperties

type PatchPropertiesRenewProperties struct {
	// The request for reservation purchase
	PurchaseProperties *ReservationPurchaseRequest
}

func (PatchPropertiesRenewProperties) MarshalJSON

func (p PatchPropertiesRenewProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PatchPropertiesRenewProperties.

func (*PatchPropertiesRenewProperties) UnmarshalJSON

func (p *PatchPropertiesRenewProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PatchPropertiesRenewProperties.

type Payment

type Payment struct {
	// The paid amount.
	Amount *PaymentAmount

	// READ-ONLY; The date when the payment was made.
	Date *time.Time

	// READ-ONLY; The family of payment method.
	PaymentMethodFamily *PaymentMethodFamily

	// READ-ONLY; The ID that uniquely identifies the payment method used for the invoice.
	PaymentMethodID *string

	// READ-ONLY; The type of payment method.
	PaymentMethodType *string

	// READ-ONLY; The type of payment.
	PaymentType *string
}

Payment - An invoice payment.

func (Payment) MarshalJSON

func (p Payment) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Payment.

func (*Payment) UnmarshalJSON

func (p *Payment) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Payment.

type PaymentAmount

type PaymentAmount struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

PaymentAmount - The paid amount.

func (PaymentAmount) MarshalJSON

func (p PaymentAmount) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentAmount.

func (*PaymentAmount) UnmarshalJSON

func (p *PaymentAmount) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentAmount.

type PaymentDetail

type PaymentDetail struct {
	// Amount charged in Billing currency. Tax not included. Is null for future payments
	BillingCurrencyTotal *Price

	// Date when the payment needs to be done.
	DueDate *time.Time

	// Date when the transaction is completed. Null when it is scheduled.
	PaymentDate *time.Time

	// Amount in pricing currency. Tax not included.
	PricingCurrencyTotal *Price

	// Describes whether the payment is completed, failed, pending, cancelled or scheduled in the future.
	Status *PaymentStatus

	// READ-ONLY; Extended status information
	ExtendedStatusInfo *ExtendedStatusInfo
}

PaymentDetail - Information about payment related to a savings plan order.

func (PaymentDetail) MarshalJSON

func (p PaymentDetail) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentDetail.

func (*PaymentDetail) UnmarshalJSON

func (p *PaymentDetail) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentDetail.

type PaymentMethod

type PaymentMethod struct {
	// Payment method properties
	Properties *PaymentMethodProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

PaymentMethod - A payment method.

func (PaymentMethod) MarshalJSON

func (p PaymentMethod) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentMethod.

func (*PaymentMethod) UnmarshalJSON

func (p *PaymentMethod) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentMethod.

type PaymentMethodFamily

type PaymentMethodFamily string

PaymentMethodFamily - Payment on Account type.

const (
	PaymentMethodFamilyCheckWire   PaymentMethodFamily = "CheckWire"
	PaymentMethodFamilyCreditCard  PaymentMethodFamily = "CreditCard"
	PaymentMethodFamilyCredits     PaymentMethodFamily = "Credits"
	PaymentMethodFamilyDirectDebit PaymentMethodFamily = "DirectDebit"
	PaymentMethodFamilyEWallet     PaymentMethodFamily = "EWallet"
	PaymentMethodFamilyNone        PaymentMethodFamily = "None"
	PaymentMethodFamilyOther       PaymentMethodFamily = "Other"
	PaymentMethodFamilyTaskOrder   PaymentMethodFamily = "TaskOrder"
)

func PossiblePaymentMethodFamilyValues

func PossiblePaymentMethodFamilyValues() []PaymentMethodFamily

PossiblePaymentMethodFamilyValues returns the possible values for the PaymentMethodFamily const type.

type PaymentMethodLink struct {
	// Payment method link properties
	Properties *PaymentMethodLinkProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

PaymentMethodLink - A payment method link.

func (PaymentMethodLink) MarshalJSON

func (p PaymentMethodLink) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentMethodLink.

func (*PaymentMethodLink) UnmarshalJSON

func (p *PaymentMethodLink) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentMethodLink.

type PaymentMethodLinkProperties

type PaymentMethodLinkProperties struct {
	// Projection of a payment method. Will not be returned in this or future versions.
	PaymentMethod *PaymentMethodProperties

	// Id of payment method. Example: /providers/Microsoft.Billing/paymentMethods/ABCDABCDABC0
	PaymentMethodID *string

	// READ-ONLY; The account holder name for the payment method. This is only supported for payment methods with family CreditCard.
	AccountHolderName *string

	// READ-ONLY; The display name of the payment method.
	DisplayName *string

	// READ-ONLY; The expiration month and year of the payment method. This is only supported for payment methods with family
	// CreditCard.
	Expiration *string

	// READ-ONLY; The family of payment method.
	Family *PaymentMethodFamily

	// READ-ONLY; Last four digits of payment method.
	LastFourDigits *string

	// READ-ONLY; The list of logos for the payment method.
	Logos []*PaymentMethodLogo

	// READ-ONLY; The type of payment method.
	PaymentMethodType *string

	// READ-ONLY; Status of the payment method.
	Status *PaymentMethodStatus
}

PaymentMethodLinkProperties - The properties of a payment method link.

func (PaymentMethodLinkProperties) MarshalJSON

func (p PaymentMethodLinkProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentMethodLinkProperties.

func (*PaymentMethodLinkProperties) UnmarshalJSON

func (p *PaymentMethodLinkProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentMethodLinkProperties.

type PaymentMethodLinksListResult

type PaymentMethodLinksListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of payment method links.
	Value []*PaymentMethodLink
}

PaymentMethodLinksListResult - The list of payment method links.

func (PaymentMethodLinksListResult) MarshalJSON

func (p PaymentMethodLinksListResult) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentMethodLinksListResult.

func (*PaymentMethodLinksListResult) UnmarshalJSON

func (p *PaymentMethodLinksListResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentMethodLinksListResult.

type PaymentMethodLogo struct {
	// READ-ONLY; MIME type of the logo.
	MimeType *string

	// READ-ONLY; Public URL of image of the logo.
	URL *string
}

PaymentMethodLogo - Logo of payment method.

func (PaymentMethodLogo) MarshalJSON

func (p PaymentMethodLogo) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentMethodLogo.

func (*PaymentMethodLogo) UnmarshalJSON

func (p *PaymentMethodLogo) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentMethodLogo.

type PaymentMethodProperties

type PaymentMethodProperties struct {
	// The family of payment method.
	Family *PaymentMethodFamily

	// The list of logos for the payment method.
	Logos []*PaymentMethodLogo

	// Status of the payment method.
	Status *PaymentMethodStatus

	// READ-ONLY; The account holder name for the payment method. This is only supported for payment methods with family CreditCard.
	AccountHolderName *string

	// READ-ONLY; The display name of the payment method.
	DisplayName *string

	// READ-ONLY; The expiration month and year of the payment method. This is only supported for payment methods with family
	// CreditCard.
	Expiration *string

	// READ-ONLY; Id of payment method.
	ID *string

	// READ-ONLY; Last four digits of payment method.
	LastFourDigits *string

	// READ-ONLY; The type of payment method.
	PaymentMethodType *string
}

PaymentMethodProperties - The properties of a payment method.

func (PaymentMethodProperties) MarshalJSON

func (p PaymentMethodProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentMethodProperties.

func (*PaymentMethodProperties) UnmarshalJSON

func (p *PaymentMethodProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentMethodProperties.

type PaymentMethodStatus

type PaymentMethodStatus string

PaymentMethodStatus - Status of the payment method.

const (
	PaymentMethodStatusActive   PaymentMethodStatus = "active"
	PaymentMethodStatusInactive PaymentMethodStatus = "inactive"
)

func PossiblePaymentMethodStatusValues

func PossiblePaymentMethodStatusValues() []PaymentMethodStatus

PossiblePaymentMethodStatusValues returns the possible values for the PaymentMethodStatus const type.

type PaymentMethodsClient

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

PaymentMethodsClient contains the methods for the PaymentMethods group. Don't use this type directly, use NewPaymentMethodsClient() instead.

func NewPaymentMethodsClient

func NewPaymentMethodsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*PaymentMethodsClient, error)

NewPaymentMethodsClient creates a new instance of PaymentMethodsClient with the specified values.

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

func (*PaymentMethodsClient) DeleteByUser

DeleteByUser - Deletes a payment method owned by the caller. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • paymentMethodName - The ID that uniquely identifies a payment method.
  • options - PaymentMethodsClientDeleteByUserOptions contains the optional parameters for the PaymentMethodsClient.DeleteByUser method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/paymentMethodsDeleteByUser.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	_, err = clientFactory.NewPaymentMethodsClient().DeleteByUser(ctx, "ABCDABCDABC0", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
}

func (*PaymentMethodsClient) GetByBillingAccount

func (client *PaymentMethodsClient) GetByBillingAccount(ctx context.Context, billingAccountName string, paymentMethodName string, options *PaymentMethodsClientGetByBillingAccountOptions) (PaymentMethodsClientGetByBillingAccountResponse, error)

GetByBillingAccount - Gets a payment method available for a billing account. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • paymentMethodName - The ID that uniquely identifies a payment method.
  • options - PaymentMethodsClientGetByBillingAccountOptions contains the optional parameters for the PaymentMethodsClient.GetByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/paymentMethodsGetByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPaymentMethodsClient().GetByBillingAccount(ctx, "00000000-0000-0000-0000-000000000032:00000000-0000-0000-0000-000000000099_2019-05-31", "21dd9edc-af71-4d62-80ce-37151d475326", 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.PaymentMethod = armbilling.PaymentMethod{
	// 	Name: to.Ptr("21dd9edc-af71-4d62-80ce-37151d475326"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/paymentMethods"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000032:00000000-0000-0000-0000-000000000099_2019-05-31/paymentMethods/21dd9edc-af71-4d62-80ce-37151d475326"),
	// 	Properties: &armbilling.PaymentMethodProperties{
	// 		DisplayName: to.Ptr("Check/wire transfer"),
	// 		Family: to.Ptr(armbilling.PaymentMethodFamilyCheckWire),
	// 		PaymentMethodType: to.Ptr("check"),
	// 	},
	// }
}

func (*PaymentMethodsClient) GetByBillingProfile

func (client *PaymentMethodsClient) GetByBillingProfile(ctx context.Context, billingAccountName string, billingProfileName string, paymentMethodName string, options *PaymentMethodsClientGetByBillingProfileOptions) (PaymentMethodsClientGetByBillingProfileResponse, error)

GetByBillingProfile - Gets a payment method linked with a billing profile. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • paymentMethodName - The ID that uniquely identifies a payment method.
  • options - PaymentMethodsClientGetByBillingProfileOptions contains the optional parameters for the PaymentMethodsClient.GetByBillingProfile method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/paymentMethodsGetByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPaymentMethodsClient().GetByBillingProfile(ctx, "00000000-0000-0000-0000-000000000032:00000000-0000-0000-0000-000000000099_2019-05-31", "ABC1-A1CD-AB1-BP1", "ABCDABCDABC0", 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.PaymentMethodLink = armbilling.PaymentMethodLink{
	// 	Name: to.Ptr("ABCDABCDABC0"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/paymentMethodLinks"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000032:00000000-0000-0000-0000-000000000099_2019-05-31/billingProfiles/ABC1-A1CD-AB1-BP1/paymentMethodLinks/ABCDABCDABC0"),
	// 	Properties: &armbilling.PaymentMethodLinkProperties{
	// 		AccountHolderName: to.Ptr("abc"),
	// 		DisplayName: to.Ptr("Master Card"),
	// 		Expiration: to.Ptr("1/2035"),
	// 		Family: to.Ptr(armbilling.PaymentMethodFamilyCreditCard),
	// 		LastFourDigits: to.Ptr("1270"),
	// 		Logos: []*armbilling.PaymentMethodLogo{
	// 			{
	// 				MimeType: to.Ptr("image/png"),
	// 				URL: to.Ptr("https://contoso.com/staticresourceservice/images/v4/logo_visa_rect.png"),
	// 			},
	// 			{
	// 				MimeType: to.Ptr("image/svg+xml"),
	// 				URL: to.Ptr("https://contoso.com/staticresourceservice/images/v4/logo_visa.svg"),
	// 		}},
	// 		PaymentMethodID: to.Ptr("/providers/Microsoft.Billing/paymentMethods/ABCDABCDABC0"),
	// 		PaymentMethodType: to.Ptr("mc"),
	// 		Status: to.Ptr(armbilling.PaymentMethodStatusActive),
	// 	},
	// }
}

func (*PaymentMethodsClient) GetByUser

GetByUser - Gets a payment method owned by the caller. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • paymentMethodName - The ID that uniquely identifies a payment method.
  • options - PaymentMethodsClientGetByUserOptions contains the optional parameters for the PaymentMethodsClient.GetByUser method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/paymentMethodsGetByUser.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPaymentMethodsClient().GetByUser(ctx, "ABCDABCDABC0", 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.PaymentMethod = armbilling.PaymentMethod{
	// 	Name: to.Ptr("ABCDABCDABC0"),
	// 	Type: to.Ptr("Microsoft.Billing/paymentMethods"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/paymentMethods/ABCDABCDABC0"),
	// 	Properties: &armbilling.PaymentMethodProperties{
	// 		AccountHolderName: to.Ptr("abc"),
	// 		DisplayName: to.Ptr("Master Card"),
	// 		Expiration: to.Ptr("1/2035"),
	// 		Family: to.Ptr(armbilling.PaymentMethodFamilyCreditCard),
	// 		LastFourDigits: to.Ptr("1270"),
	// 		Logos: []*armbilling.PaymentMethodLogo{
	// 			{
	// 				MimeType: to.Ptr("image/png"),
	// 				URL: to.Ptr("https://contoso.com/staticresourceservice/images/v4/logo_visa_rect.png"),
	// 			},
	// 			{
	// 				MimeType: to.Ptr("image/svg+xml"),
	// 				URL: to.Ptr("https://contoso.com/staticresourceservice/images/v4/logo_visa.svg"),
	// 		}},
	// 		PaymentMethodType: to.Ptr("mc"),
	// 		Status: to.Ptr(armbilling.PaymentMethodStatusActive),
	// 	},
	// }
}

func (*PaymentMethodsClient) NewListByBillingAccountPager

NewListByBillingAccountPager - Lists the payment methods available for a billing account. Along with the payment methods owned by the caller, these payment methods can be attached to a billing profile to make payments. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - PaymentMethodsClientListByBillingAccountOptions contains the optional parameters for the PaymentMethodsClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/paymentMethodsListByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewPaymentMethodsClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000032:00000000-0000-0000-0000-000000000099_2019-05-31", 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.PaymentMethodsListResult = armbilling.PaymentMethodsListResult{
		// 	Value: []*armbilling.PaymentMethod{
		// 		{
		// 			Name: to.Ptr("21dd9edc-af71-4d62-80ce-37151d475326"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/paymentMethods"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000032:00000000-0000-0000-0000-000000000099_2019-05-31/paymentMethods/21dd9edc-af71-4d62-80ce-37151d475326"),
		// 			Properties: &armbilling.PaymentMethodProperties{
		// 				DisplayName: to.Ptr("Check/wire transfer"),
		// 				Family: to.Ptr(armbilling.PaymentMethodFamilyCheckWire),
		// 				PaymentMethodType: to.Ptr("check"),
		// 			},
		// 	}},
		// }
	}
}

func (*PaymentMethodsClient) NewListByBillingProfilePager

func (client *PaymentMethodsClient) NewListByBillingProfilePager(billingAccountName string, billingProfileName string, options *PaymentMethodsClientListByBillingProfileOptions) *runtime.Pager[PaymentMethodsClientListByBillingProfileResponse]

NewListByBillingProfilePager - Lists payment methods attached to a billing profile. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - PaymentMethodsClientListByBillingProfileOptions contains the optional parameters for the PaymentMethodsClient.NewListByBillingProfilePager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/paymentMethodsListByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewPaymentMethodsClient().NewListByBillingProfilePager("00000000-0000-0000-0000-000000000032:00000000-0000-0000-0000-000000000099_2019-05-31", "ABC1-A1CD-AB1-BP1", 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.PaymentMethodLinksListResult = armbilling.PaymentMethodLinksListResult{
		// 	Value: []*armbilling.PaymentMethodLink{
		// 		{
		// 			Name: to.Ptr("ABCDABCDABC0"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/paymentMethodLinks"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000032:00000000-0000-0000-0000-000000000099_2019-05-31/billingProfiles/ABC1-A1CD-AB1-BP1/paymentMethodLinks/ABCDABCDABC0"),
		// 			Properties: &armbilling.PaymentMethodLinkProperties{
		// 				AccountHolderName: to.Ptr("abc"),
		// 				DisplayName: to.Ptr("Master Card"),
		// 				Expiration: to.Ptr("1/2035"),
		// 				Family: to.Ptr(armbilling.PaymentMethodFamilyCreditCard),
		// 				LastFourDigits: to.Ptr("1270"),
		// 				Logos: []*armbilling.PaymentMethodLogo{
		// 					{
		// 						MimeType: to.Ptr("image/png"),
		// 						URL: to.Ptr("https://contoso.com/staticresourceservice/images/v4/logo_visa_rect.png"),
		// 					},
		// 					{
		// 						MimeType: to.Ptr("image/svg+xml"),
		// 						URL: to.Ptr("https://contoso.com/staticresourceservice/images/v4/logo_visa.svg"),
		// 				}},
		// 				PaymentMethodID: to.Ptr("/providers/Microsoft.Billing/paymentMethods/ABCDABCDABC0"),
		// 				PaymentMethodType: to.Ptr("mc"),
		// 				Status: to.Ptr(armbilling.PaymentMethodStatusActive),
		// 			},
		// 	}},
		// }
	}
}

func (*PaymentMethodsClient) NewListByUserPager

NewListByUserPager - Lists the payment methods owned by the caller.

Generated from API version 2024-04-01

  • options - PaymentMethodsClientListByUserOptions contains the optional parameters for the PaymentMethodsClient.NewListByUserPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/paymentMethodsListByUser.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewPaymentMethodsClient().NewListByUserPager(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.PaymentMethodsListResult = armbilling.PaymentMethodsListResult{
		// 	Value: []*armbilling.PaymentMethod{
		// 		{
		// 			Name: to.Ptr("ABCDABCDABC0"),
		// 			Type: to.Ptr("Microsoft.Billing/paymentMethods"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/paymentMethods/ABCDABCDABC0"),
		// 			Properties: &armbilling.PaymentMethodProperties{
		// 				AccountHolderName: to.Ptr("abc"),
		// 				DisplayName: to.Ptr("Master Card"),
		// 				Expiration: to.Ptr("1/2035"),
		// 				Family: to.Ptr(armbilling.PaymentMethodFamilyCreditCard),
		// 				LastFourDigits: to.Ptr("1270"),
		// 				Logos: []*armbilling.PaymentMethodLogo{
		// 					{
		// 						MimeType: to.Ptr("image/png"),
		// 						URL: to.Ptr("https://contoso.com/staticresourceservice/images/v4/logo_mc_rect.png"),
		// 					},
		// 					{
		// 						MimeType: to.Ptr("image/svg+xml"),
		// 						URL: to.Ptr("https://contoso.com/staticresourceservice/images/v4/logo_mc.svg"),
		// 				}},
		// 				PaymentMethodType: to.Ptr("mc"),
		// 				Status: to.Ptr(armbilling.PaymentMethodStatusActive),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("ABCDABCDABC1"),
		// 			Type: to.Ptr("Microsoft.Billing/paymentMethods"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/paymentMethods/ABCDABCDABC1"),
		// 			Properties: &armbilling.PaymentMethodProperties{
		// 				AccountHolderName: to.Ptr("abc"),
		// 				DisplayName: to.Ptr("Visa"),
		// 				Expiration: to.Ptr("1/2025"),
		// 				Family: to.Ptr(armbilling.PaymentMethodFamilyCreditCard),
		// 				LastFourDigits: to.Ptr("7373"),
		// 				Logos: []*armbilling.PaymentMethodLogo{
		// 					{
		// 						MimeType: to.Ptr("image/png"),
		// 						URL: to.Ptr("https://contoso.com/staticresourceservice/images/v4/logo_visa_rect.png"),
		// 					},
		// 					{
		// 						MimeType: to.Ptr("image/svg+xml"),
		// 						URL: to.Ptr("https://contoso.com/staticresourceservice/images/v4/logo_visa.svg"),
		// 				}},
		// 				PaymentMethodType: to.Ptr("visa"),
		// 				Status: to.Ptr(armbilling.PaymentMethodStatusActive),
		// 			},
		// 	}},
		// }
	}
}

type PaymentMethodsClientDeleteByUserOptions

type PaymentMethodsClientDeleteByUserOptions struct {
}

PaymentMethodsClientDeleteByUserOptions contains the optional parameters for the PaymentMethodsClient.DeleteByUser method.

type PaymentMethodsClientDeleteByUserResponse

type PaymentMethodsClientDeleteByUserResponse struct {
}

PaymentMethodsClientDeleteByUserResponse contains the response from method PaymentMethodsClient.DeleteByUser.

type PaymentMethodsClientGetByBillingAccountOptions

type PaymentMethodsClientGetByBillingAccountOptions struct {
}

PaymentMethodsClientGetByBillingAccountOptions contains the optional parameters for the PaymentMethodsClient.GetByBillingAccount method.

type PaymentMethodsClientGetByBillingAccountResponse

type PaymentMethodsClientGetByBillingAccountResponse struct {
	// A payment method.
	PaymentMethod
}

PaymentMethodsClientGetByBillingAccountResponse contains the response from method PaymentMethodsClient.GetByBillingAccount.

type PaymentMethodsClientGetByBillingProfileOptions

type PaymentMethodsClientGetByBillingProfileOptions struct {
}

PaymentMethodsClientGetByBillingProfileOptions contains the optional parameters for the PaymentMethodsClient.GetByBillingProfile method.

type PaymentMethodsClientGetByBillingProfileResponse

type PaymentMethodsClientGetByBillingProfileResponse struct {
	// A payment method link.
	PaymentMethodLink
}

PaymentMethodsClientGetByBillingProfileResponse contains the response from method PaymentMethodsClient.GetByBillingProfile.

type PaymentMethodsClientGetByUserOptions

type PaymentMethodsClientGetByUserOptions struct {
}

PaymentMethodsClientGetByUserOptions contains the optional parameters for the PaymentMethodsClient.GetByUser method.

type PaymentMethodsClientGetByUserResponse

type PaymentMethodsClientGetByUserResponse struct {
	// A payment method.
	PaymentMethod
}

PaymentMethodsClientGetByUserResponse contains the response from method PaymentMethodsClient.GetByUser.

type PaymentMethodsClientListByBillingAccountOptions

type PaymentMethodsClientListByBillingAccountOptions struct {
}

PaymentMethodsClientListByBillingAccountOptions contains the optional parameters for the PaymentMethodsClient.NewListByBillingAccountPager method.

type PaymentMethodsClientListByBillingAccountResponse

type PaymentMethodsClientListByBillingAccountResponse struct {
	// The list of payment methods.
	PaymentMethodsListResult
}

PaymentMethodsClientListByBillingAccountResponse contains the response from method PaymentMethodsClient.NewListByBillingAccountPager.

type PaymentMethodsClientListByBillingProfileOptions

type PaymentMethodsClientListByBillingProfileOptions struct {
}

PaymentMethodsClientListByBillingProfileOptions contains the optional parameters for the PaymentMethodsClient.NewListByBillingProfilePager method.

type PaymentMethodsClientListByBillingProfileResponse

type PaymentMethodsClientListByBillingProfileResponse struct {
	// The list of payment method links.
	PaymentMethodLinksListResult
}

PaymentMethodsClientListByBillingProfileResponse contains the response from method PaymentMethodsClient.NewListByBillingProfilePager.

type PaymentMethodsClientListByUserOptions

type PaymentMethodsClientListByUserOptions struct {
}

PaymentMethodsClientListByUserOptions contains the optional parameters for the PaymentMethodsClient.NewListByUserPager method.

type PaymentMethodsClientListByUserResponse

type PaymentMethodsClientListByUserResponse struct {
	// The list of payment methods.
	PaymentMethodsListResult
}

PaymentMethodsClientListByUserResponse contains the response from method PaymentMethodsClient.NewListByUserPager.

type PaymentMethodsListResult

type PaymentMethodsListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of payment methods.
	Value []*PaymentMethod
}

PaymentMethodsListResult - The list of payment methods.

func (PaymentMethodsListResult) MarshalJSON

func (p PaymentMethodsListResult) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentMethodsListResult.

func (*PaymentMethodsListResult) UnmarshalJSON

func (p *PaymentMethodsListResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentMethodsListResult.

type PaymentOnAccount

type PaymentOnAccount struct {
	// Payment on Account amount.
	Amount *PaymentOnAccountAmount

	// READ-ONLY; The name of the billing profile for the payments on account.
	BillingProfileDisplayName *string

	// READ-ONLY; The ID of the billing profile for the payments on account.
	BillingProfileID *string

	// READ-ONLY; The date of the payments on account.
	Date *time.Time

	// READ-ONLY; The ID of the invoice for which the payments on account was generated.
	InvoiceID *string

	// READ-ONLY; The name of the invoice for the payments on account.
	InvoiceName *string

	// READ-ONLY; Payment on Account type.
	PaymentMethodType *PaymentMethodFamily
}

PaymentOnAccount - A Payment on Account.

func (PaymentOnAccount) MarshalJSON

func (p PaymentOnAccount) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentOnAccount.

func (*PaymentOnAccount) UnmarshalJSON

func (p *PaymentOnAccount) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentOnAccount.

type PaymentOnAccountAmount

type PaymentOnAccountAmount struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

PaymentOnAccountAmount - Payment on Account amount.

func (PaymentOnAccountAmount) MarshalJSON

func (p PaymentOnAccountAmount) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentOnAccountAmount.

func (*PaymentOnAccountAmount) UnmarshalJSON

func (p *PaymentOnAccountAmount) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentOnAccountAmount.

type PaymentStatus

type PaymentStatus string

PaymentStatus - Describes whether the payment is completed, failed, pending, cancelled or scheduled in the future.

const (
	PaymentStatusCancelled PaymentStatus = "Cancelled"
	PaymentStatusCompleted PaymentStatus = "Completed"
	PaymentStatusFailed    PaymentStatus = "Failed"
	PaymentStatusPending   PaymentStatus = "Pending"
	PaymentStatusScheduled PaymentStatus = "Scheduled"
	PaymentStatusSucceeded PaymentStatus = "Succeeded"
)

func PossiblePaymentStatusValues

func PossiblePaymentStatusValues() []PaymentStatus

PossiblePaymentStatusValues returns the possible values for the PaymentStatus const type.

type PaymentTerm

type PaymentTerm struct {
	// The date on when the defined 'Payment Term' will end and is always in UTC.
	EndDate *time.Time

	// The date on when the defined 'Payment Term' will be effective from and is always in UTC.
	StartDate *time.Time

	// Represents duration in netXX format. Always in days.
	Term *string

	// READ-ONLY; Indicates payment term is the standard payment term.
	IsDefault *bool
}

PaymentTerm - The properties of payment term.

func (PaymentTerm) MarshalJSON

func (p PaymentTerm) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentTerm.

func (*PaymentTerm) UnmarshalJSON

func (p *PaymentTerm) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentTerm.

type PaymentTermsEligibilityCode

type PaymentTermsEligibilityCode string

PaymentTermsEligibilityCode - Indicates the reason for the ineligibility of the payment terms.

const (
	PaymentTermsEligibilityCodeBillingAccountNotFound         PaymentTermsEligibilityCode = "BillingAccountNotFound"
	PaymentTermsEligibilityCodeInactiveBillingAccount         PaymentTermsEligibilityCode = "InactiveBillingAccount"
	PaymentTermsEligibilityCodeIneligibleBillingAccountStatus PaymentTermsEligibilityCode = "IneligibleBillingAccountStatus"
	PaymentTermsEligibilityCodeInvalidBillingAccountType      PaymentTermsEligibilityCode = "InvalidBillingAccountType"
	PaymentTermsEligibilityCodeInvalidDateFormat              PaymentTermsEligibilityCode = "InvalidDateFormat"
	PaymentTermsEligibilityCodeInvalidDateRange               PaymentTermsEligibilityCode = "InvalidDateRange"
	PaymentTermsEligibilityCodeInvalidTerms                   PaymentTermsEligibilityCode = "InvalidTerms"
	PaymentTermsEligibilityCodeNullOrEmptyPaymentTerms        PaymentTermsEligibilityCode = "NullOrEmptyPaymentTerms"
	PaymentTermsEligibilityCodeOther                          PaymentTermsEligibilityCode = "Other"
	PaymentTermsEligibilityCodeOverlappingPaymentTerms        PaymentTermsEligibilityCode = "OverlappingPaymentTerms"
)

func PossiblePaymentTermsEligibilityCodeValues

func PossiblePaymentTermsEligibilityCodeValues() []PaymentTermsEligibilityCode

PossiblePaymentTermsEligibilityCodeValues returns the possible values for the PaymentTermsEligibilityCode const type.

type PaymentTermsEligibilityDetail

type PaymentTermsEligibilityDetail struct {
	// Indicates the reason for the ineligibility of the payment terms.
	Code *PaymentTermsEligibilityCode

	// Indicates the message for the ineligibility of the payment terms.
	Message *string
}

PaymentTermsEligibilityDetail - Details of the payment terms eligibility.

func (PaymentTermsEligibilityDetail) MarshalJSON

func (p PaymentTermsEligibilityDetail) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentTermsEligibilityDetail.

func (*PaymentTermsEligibilityDetail) UnmarshalJSON

func (p *PaymentTermsEligibilityDetail) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentTermsEligibilityDetail.

type PaymentTermsEligibilityResult

type PaymentTermsEligibilityResult struct {
	// Details of the payment terms eligibility.
	EligibilityDetails []*PaymentTermsEligibilityDetail

	// Indicates the eligibility status of the payment terms.
	EligibilityStatus *PaymentTermsEligibilityStatus
}

PaymentTermsEligibilityResult - Result of the payment terms eligibility.

func (PaymentTermsEligibilityResult) MarshalJSON

func (p PaymentTermsEligibilityResult) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PaymentTermsEligibilityResult.

func (*PaymentTermsEligibilityResult) UnmarshalJSON

func (p *PaymentTermsEligibilityResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PaymentTermsEligibilityResult.

type PaymentTermsEligibilityStatus

type PaymentTermsEligibilityStatus string

PaymentTermsEligibilityStatus - Indicates the eligibility status of the payment terms.

const (
	PaymentTermsEligibilityStatusInvalid PaymentTermsEligibilityStatus = "Invalid"
	PaymentTermsEligibilityStatusOther   PaymentTermsEligibilityStatus = "Other"
	PaymentTermsEligibilityStatusValid   PaymentTermsEligibilityStatus = "Valid"
)

func PossiblePaymentTermsEligibilityStatusValues

func PossiblePaymentTermsEligibilityStatusValues() []PaymentTermsEligibilityStatus

PossiblePaymentTermsEligibilityStatusValues returns the possible values for the PaymentTermsEligibilityStatus const type.

type Permission

type Permission struct {
	// READ-ONLY; The set of actions that the caller is allowed to perform.
	Actions []*string

	// READ-ONLY; The set of actions that the caller is not allowed to perform.
	NotActions []*string
}

Permission - The set of allowed action and not allowed actions a caller has on a resource.

func (Permission) MarshalJSON

func (p Permission) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Permission.

func (*Permission) UnmarshalJSON

func (p *Permission) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Permission.

type PermissionListResult

type PermissionListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*Permission
}

PermissionListResult - A container for a list of resources

func (PermissionListResult) MarshalJSON

func (p PermissionListResult) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PermissionListResult.

func (*PermissionListResult) UnmarshalJSON

func (p *PermissionListResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PermissionListResult.

type PermissionsClient

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

PermissionsClient contains the methods for the BillingPermissions group. Don't use this type directly, use NewPermissionsClient() instead.

func NewPermissionsClient

func NewPermissionsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*PermissionsClient, error)

NewPermissionsClient creates a new instance of PermissionsClient with the specified values.

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

func (*PermissionsClient) CheckAccessByBillingAccount

CheckAccessByBillingAccount - Provides a list of check access response objects for a billing account. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • parameters - The request object against which access of the caller will be checked.
  • options - PermissionsClientCheckAccessByBillingAccountOptions contains the optional parameters for the PermissionsClient.CheckAccessByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/checkAccessByBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPermissionsClient().CheckAccessByBillingAccount(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", armbilling.CheckAccessRequest{
		Actions: []*string{
			to.Ptr("Microsoft.Billing/billingAccounts/read"),
			to.Ptr("Microsoft.Subscription/subscriptions/write")},
	}, 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.CheckAccessResponseArray = []*armbilling.CheckAccessResponse{
	// 	{
	// 		AccessDecision: to.Ptr(armbilling.AccessDecisionAllowed),
	// 		Action: to.Ptr("Microsoft.Billing/billingAccounts/read"),
	// 	},
	// 	{
	// 		AccessDecision: to.Ptr(armbilling.AccessDecisionNotAllowed),
	// 		Action: to.Ptr("Microsoft.Subscription/subscriptions/write"),
	// }}
}

func (*PermissionsClient) CheckAccessByBillingProfile

func (client *PermissionsClient) CheckAccessByBillingProfile(ctx context.Context, billingAccountName string, billingProfileName string, parameters CheckAccessRequest, options *PermissionsClientCheckAccessByBillingProfileOptions) (PermissionsClientCheckAccessByBillingProfileResponse, error)

CheckAccessByBillingProfile - Provides a list of check access response objects for a billing profile. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • parameters - The request object against which access of the caller will be checked.
  • options - PermissionsClientCheckAccessByBillingProfileOptions contains the optional parameters for the PermissionsClient.CheckAccessByBillingProfile method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/checkAccessByBillingProfile.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPermissionsClient().CheckAccessByBillingProfile(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", armbilling.CheckAccessRequest{
		Actions: []*string{
			to.Ptr("Microsoft.Billing/billingAccounts/read"),
			to.Ptr("Microsoft.Subscription/subscriptions/write")},
	}, 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.CheckAccessResponseArray = []*armbilling.CheckAccessResponse{
	// 	{
	// 		AccessDecision: to.Ptr(armbilling.AccessDecisionAllowed),
	// 		Action: to.Ptr("Microsoft.Billing/billingAccounts/read"),
	// 	},
	// 	{
	// 		AccessDecision: to.Ptr(armbilling.AccessDecisionNotAllowed),
	// 		Action: to.Ptr("Microsoft.Subscription/subscriptions/write"),
	// }}
}

func (*PermissionsClient) CheckAccessByCustomer

func (client *PermissionsClient) CheckAccessByCustomer(ctx context.Context, billingAccountName string, billingProfileName string, customerName string, parameters CheckAccessRequest, options *PermissionsClientCheckAccessByCustomerOptions) (PermissionsClientCheckAccessByCustomerResponse, error)

CheckAccessByCustomer - Provides a list of check access response objects for a customer. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • parameters - The request object against which access of the caller will be checked.
  • options - PermissionsClientCheckAccessByCustomerOptions contains the optional parameters for the PermissionsClient.CheckAccessByCustomer method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/checkAccessByCustomer.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPermissionsClient().CheckAccessByCustomer(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "703ab484-dda2-4402-827b-a74513b61e2d", armbilling.CheckAccessRequest{
		Actions: []*string{
			to.Ptr("Microsoft.Billing/billingAccounts/read"),
			to.Ptr("Microsoft.Subscription/subscriptions/write")},
	}, 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.CheckAccessResponseArray = []*armbilling.CheckAccessResponse{
	// 	{
	// 		AccessDecision: to.Ptr(armbilling.AccessDecisionAllowed),
	// 		Action: to.Ptr("Microsoft.Billing/billingAccounts/read"),
	// 	},
	// 	{
	// 		AccessDecision: to.Ptr(armbilling.AccessDecisionNotAllowed),
	// 		Action: to.Ptr("Microsoft.Subscription/subscriptions/write"),
	// }}
}

func (*PermissionsClient) CheckAccessByDepartment

func (client *PermissionsClient) CheckAccessByDepartment(ctx context.Context, billingAccountName string, departmentName string, parameters CheckAccessRequest, options *PermissionsClientCheckAccessByDepartmentOptions) (PermissionsClientCheckAccessByDepartmentResponse, error)

CheckAccessByDepartment - Provides a list of check access response objects for a department. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • departmentName - The name of the department.
  • parameters - The request object against which access of the caller will be checked.
  • options - PermissionsClientCheckAccessByDepartmentOptions contains the optional parameters for the PermissionsClient.CheckAccessByDepartment method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/checkAccessByDepartment.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPermissionsClient().CheckAccessByDepartment(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "12345", armbilling.CheckAccessRequest{
		Actions: []*string{
			to.Ptr("Microsoft.Billing/billingAccounts/read"),
			to.Ptr("Microsoft.Subscription/subscriptions/write")},
	}, 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.CheckAccessResponseArray = []*armbilling.CheckAccessResponse{
	// 	{
	// 		AccessDecision: to.Ptr(armbilling.AccessDecisionAllowed),
	// 		Action: to.Ptr("Microsoft.Billing/billingAccounts/read"),
	// 	},
	// 	{
	// 		AccessDecision: to.Ptr(armbilling.AccessDecisionNotAllowed),
	// 		Action: to.Ptr("Microsoft.Subscription/subscriptions/write"),
	// }}
}

func (*PermissionsClient) CheckAccessByEnrollmentAccount

func (client *PermissionsClient) CheckAccessByEnrollmentAccount(ctx context.Context, billingAccountName string, enrollmentAccountName string, parameters CheckAccessRequest, options *PermissionsClientCheckAccessByEnrollmentAccountOptions) (PermissionsClientCheckAccessByEnrollmentAccountResponse, error)

CheckAccessByEnrollmentAccount - Provides a list of check access response objects for an enrollment account. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • enrollmentAccountName - The name of the enrollment account.
  • parameters - The request object against which access of the caller will be checked.
  • options - PermissionsClientCheckAccessByEnrollmentAccountOptions contains the optional parameters for the PermissionsClient.CheckAccessByEnrollmentAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/checkAccessByEnrollmentAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPermissionsClient().CheckAccessByEnrollmentAccount(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "123456", armbilling.CheckAccessRequest{
		Actions: []*string{
			to.Ptr("Microsoft.Billing/billingAccounts/read"),
			to.Ptr("Microsoft.Subscription/subscriptions/write")},
	}, 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.CheckAccessResponseArray = []*armbilling.CheckAccessResponse{
	// 	{
	// 		AccessDecision: to.Ptr(armbilling.AccessDecisionAllowed),
	// 		Action: to.Ptr("Microsoft.Billing/billingAccounts/read"),
	// 	},
	// 	{
	// 		AccessDecision: to.Ptr(armbilling.AccessDecisionNotAllowed),
	// 		Action: to.Ptr("Microsoft.Subscription/subscriptions/write"),
	// }}
}

func (*PermissionsClient) CheckAccessByInvoiceSection

func (client *PermissionsClient) CheckAccessByInvoiceSection(ctx context.Context, billingAccountName string, billingProfileName string, invoiceSectionName string, parameters CheckAccessRequest, options *PermissionsClientCheckAccessByInvoiceSectionOptions) (PermissionsClientCheckAccessByInvoiceSectionResponse, error)

CheckAccessByInvoiceSection - Provides a list of check access response objects for an invoice section. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • parameters - The request object against which access of the caller will be checked.
  • options - PermissionsClientCheckAccessByInvoiceSectionOptions contains the optional parameters for the PermissionsClient.CheckAccessByInvoiceSection method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/checkAccessByInvoiceSection.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPermissionsClient().CheckAccessByInvoiceSection(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "Q7GV-UUVA-PJA-TGB", armbilling.CheckAccessRequest{
		Actions: []*string{
			to.Ptr("Microsoft.Billing/billingAccounts/read"),
			to.Ptr("Microsoft.Subscription/subscriptions/write")},
	}, 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.CheckAccessResponseArray = []*armbilling.CheckAccessResponse{
	// 	{
	// 		AccessDecision: to.Ptr(armbilling.AccessDecisionAllowed),
	// 		Action: to.Ptr("Microsoft.Billing/billingAccounts/read"),
	// 	},
	// 	{
	// 		AccessDecision: to.Ptr(armbilling.AccessDecisionNotAllowed),
	// 		Action: to.Ptr("Microsoft.Subscription/subscriptions/write"),
	// }}
}

func (*PermissionsClient) NewListByBillingAccountPager

func (client *PermissionsClient) NewListByBillingAccountPager(billingAccountName string, options *PermissionsClientListByBillingAccountOptions) *runtime.Pager[PermissionsClientListByBillingAccountResponse]

NewListByBillingAccountPager - Lists the billing permissions the caller has on a billing account.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - PermissionsClientListByBillingAccountOptions contains the optional parameters for the PermissionsClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingPermissionsListByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewPermissionsClient().NewListByBillingAccountPager("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", 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.PermissionListResult = armbilling.PermissionListResult{
		// 	Value: []*armbilling.Permission{
		// 		{
		// 			Actions: []*string{
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000006"),
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000003"),
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000002"),
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000001"),
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000000"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 				to.Ptr("20000000-aaaa-bbbb-cccc-200000000002"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
		// 				to.Ptr("40000000-aaaa-bbbb-cccc-200000000000"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000000"),
		// 				to.Ptr("20000000-aaaa-bbbb-cccc-200000000000"),
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000008"),
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000007"),
		// 				to.Ptr("40000000-aaaa-bbbb-cccc-200000000008"),
		// 				to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
		// 				to.Ptr("40000000-aaaa-bbbb-cccc-200000000007"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000001")},
		// 				NotActions: []*string{
		// 				},
		// 		}},
		// 	}
	}
}

func (*PermissionsClient) NewListByBillingProfilePager

func (client *PermissionsClient) NewListByBillingProfilePager(billingAccountName string, billingProfileName string, options *PermissionsClientListByBillingProfileOptions) *runtime.Pager[PermissionsClientListByBillingProfileResponse]

NewListByBillingProfilePager - Lists the billing permissions the caller has on a billing profile.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - PermissionsClientListByBillingProfileOptions contains the optional parameters for the PermissionsClient.NewListByBillingProfilePager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingPermissionsListByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewPermissionsClient().NewListByBillingProfilePager("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", 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.PermissionListResult = armbilling.PermissionListResult{
		// 	Value: []*armbilling.Permission{
		// 		{
		// 			Actions: []*string{
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000006"),
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000003"),
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000002"),
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000001"),
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000000"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 				to.Ptr("20000000-aaaa-bbbb-cccc-200000000002"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
		// 				to.Ptr("40000000-aaaa-bbbb-cccc-200000000000"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000000"),
		// 				to.Ptr("20000000-aaaa-bbbb-cccc-200000000000"),
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000008"),
		// 				to.Ptr("10000000-aaaa-bbbb-cccc-200000000007"),
		// 				to.Ptr("40000000-aaaa-bbbb-cccc-200000000008"),
		// 				to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
		// 				to.Ptr("40000000-aaaa-bbbb-cccc-200000000007"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000001")},
		// 				NotActions: []*string{
		// 				},
		// 		}},
		// 	}
	}
}

func (*PermissionsClient) NewListByCustomerAtBillingAccountPager

func (client *PermissionsClient) NewListByCustomerAtBillingAccountPager(billingAccountName string, customerName string, options *PermissionsClientListByCustomerAtBillingAccountOptions) *runtime.Pager[PermissionsClientListByCustomerAtBillingAccountResponse]

NewListByCustomerAtBillingAccountPager - Lists the billing permissions the caller has for a customer at billing account level.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • customerName - The ID that uniquely identifies a customer.
  • options - PermissionsClientListByCustomerAtBillingAccountOptions contains the optional parameters for the PermissionsClient.NewListByCustomerAtBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingPermissionsListByCustomerAtBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewPermissionsClient().NewListByCustomerAtBillingAccountPager("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", 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.PermissionListResult = armbilling.PermissionListResult{
		// 	Value: []*armbilling.Permission{
		// 		{
		// 			Actions: []*string{
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000000"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000001")},
		// 				NotActions: []*string{
		// 				},
		// 		}},
		// 	}
	}
}

func (*PermissionsClient) NewListByCustomerPager

func (client *PermissionsClient) NewListByCustomerPager(billingAccountName string, billingProfileName string, customerName string, options *PermissionsClientListByCustomerOptions) *runtime.Pager[PermissionsClientListByCustomerResponse]

NewListByCustomerPager - Lists the billing permissions the caller has for a customer.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • options - PermissionsClientListByCustomerOptions contains the optional parameters for the PermissionsClient.NewListByCustomerPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingPermissionsListByCustomer.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewPermissionsClient().NewListByCustomerPager("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "BKM6-54VH-BG7-PGB", "11111111-1111-1111-1111-111111111111", 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.PermissionListResult = armbilling.PermissionListResult{
		// 	Value: []*armbilling.Permission{
		// 		{
		// 			Actions: []*string{
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000000"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000001")},
		// 				NotActions: []*string{
		// 				},
		// 		}},
		// 	}
	}
}

func (*PermissionsClient) NewListByDepartmentPager

func (client *PermissionsClient) NewListByDepartmentPager(billingAccountName string, departmentName string, options *PermissionsClientListByDepartmentOptions) *runtime.Pager[PermissionsClientListByDepartmentResponse]

NewListByDepartmentPager - Lists the billing permissions the caller has for a department.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • departmentName - The name of the department.
  • options - PermissionsClientListByDepartmentOptions contains the optional parameters for the PermissionsClient.NewListByDepartmentPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingPermissionsListByDepartment.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewPermissionsClient().NewListByDepartmentPager("6100092", "123456", 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.PermissionListResult = armbilling.PermissionListResult{
		// 	Value: []*armbilling.Permission{
		// 		{
		// 			Actions: []*string{
		// 				to.Ptr("Microsoft.Billing/billingAccounts/departments/read"),
		// 				to.Ptr("Microsoft.Billing/billingAccounts/departments/write"),
		// 				to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/read"),
		// 				to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/write"),
		// 				to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingSubscriptions/read"),
		// 				to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingSubscriptions/write")},
		// 				NotActions: []*string{
		// 				},
		// 		}},
		// 	}
	}
}

func (*PermissionsClient) NewListByEnrollmentAccountPager

func (client *PermissionsClient) NewListByEnrollmentAccountPager(billingAccountName string, enrollmentAccountName string, options *PermissionsClientListByEnrollmentAccountOptions) *runtime.Pager[PermissionsClientListByEnrollmentAccountResponse]

NewListByEnrollmentAccountPager - Lists the billing permissions the caller has for an enrollment account.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • enrollmentAccountName - The name of the enrollment account.
  • options - PermissionsClientListByEnrollmentAccountOptions contains the optional parameters for the PermissionsClient.NewListByEnrollmentAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingPermissionsListByEnrollmentAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewPermissionsClient().NewListByEnrollmentAccountPager("6100092", "123456", 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.PermissionListResult = armbilling.PermissionListResult{
		// 	Value: []*armbilling.Permission{
		// 		{
		// 			Actions: []*string{
		// 				to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/read"),
		// 				to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/write"),
		// 				to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingSubscriptions/read"),
		// 				to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingSubscriptions/write")},
		// 				NotActions: []*string{
		// 				},
		// 		}},
		// 	}
	}
}

func (*PermissionsClient) NewListByInvoiceSectionPager

func (client *PermissionsClient) NewListByInvoiceSectionPager(billingAccountName string, billingProfileName string, invoiceSectionName string, options *PermissionsClientListByInvoiceSectionOptions) *runtime.Pager[PermissionsClientListByInvoiceSectionResponse]

NewListByInvoiceSectionPager - Lists the billing permissions the caller has for an invoice section.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • options - PermissionsClientListByInvoiceSectionOptions contains the optional parameters for the PermissionsClient.NewListByInvoiceSectionPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingPermissionsListByInvoiceSection.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewPermissionsClient().NewListByInvoiceSectionPager("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "XXXX-XXXX-XXX-XXX", 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.PermissionListResult = armbilling.PermissionListResult{
		// 	Value: []*armbilling.Permission{
		// 		{
		// 			Actions: []*string{
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000000"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
		// 				to.Ptr("30000000-aaaa-bbbb-cccc-200000000001")},
		// 				NotActions: []*string{
		// 				},
		// 		}},
		// 	}
	}
}

type PermissionsClientCheckAccessByBillingAccountOptions

type PermissionsClientCheckAccessByBillingAccountOptions struct {
}

PermissionsClientCheckAccessByBillingAccountOptions contains the optional parameters for the PermissionsClient.CheckAccessByBillingAccount method.

type PermissionsClientCheckAccessByBillingAccountResponse

type PermissionsClientCheckAccessByBillingAccountResponse struct {
	// Array of CheckAccessResponse
	CheckAccessResponseArray []*CheckAccessResponse
}

PermissionsClientCheckAccessByBillingAccountResponse contains the response from method PermissionsClient.CheckAccessByBillingAccount.

type PermissionsClientCheckAccessByBillingProfileOptions

type PermissionsClientCheckAccessByBillingProfileOptions struct {
}

PermissionsClientCheckAccessByBillingProfileOptions contains the optional parameters for the PermissionsClient.CheckAccessByBillingProfile method.

type PermissionsClientCheckAccessByBillingProfileResponse

type PermissionsClientCheckAccessByBillingProfileResponse struct {
	// Array of CheckAccessResponse
	CheckAccessResponseArray []*CheckAccessResponse
}

PermissionsClientCheckAccessByBillingProfileResponse contains the response from method PermissionsClient.CheckAccessByBillingProfile.

type PermissionsClientCheckAccessByCustomerOptions

type PermissionsClientCheckAccessByCustomerOptions struct {
}

PermissionsClientCheckAccessByCustomerOptions contains the optional parameters for the PermissionsClient.CheckAccessByCustomer method.

type PermissionsClientCheckAccessByCustomerResponse

type PermissionsClientCheckAccessByCustomerResponse struct {
	// Array of CheckAccessResponse
	CheckAccessResponseArray []*CheckAccessResponse
}

PermissionsClientCheckAccessByCustomerResponse contains the response from method PermissionsClient.CheckAccessByCustomer.

type PermissionsClientCheckAccessByDepartmentOptions

type PermissionsClientCheckAccessByDepartmentOptions struct {
}

PermissionsClientCheckAccessByDepartmentOptions contains the optional parameters for the PermissionsClient.CheckAccessByDepartment method.

type PermissionsClientCheckAccessByDepartmentResponse

type PermissionsClientCheckAccessByDepartmentResponse struct {
	// Array of CheckAccessResponse
	CheckAccessResponseArray []*CheckAccessResponse
}

PermissionsClientCheckAccessByDepartmentResponse contains the response from method PermissionsClient.CheckAccessByDepartment.

type PermissionsClientCheckAccessByEnrollmentAccountOptions

type PermissionsClientCheckAccessByEnrollmentAccountOptions struct {
}

PermissionsClientCheckAccessByEnrollmentAccountOptions contains the optional parameters for the PermissionsClient.CheckAccessByEnrollmentAccount method.

type PermissionsClientCheckAccessByEnrollmentAccountResponse

type PermissionsClientCheckAccessByEnrollmentAccountResponse struct {
	// Array of CheckAccessResponse
	CheckAccessResponseArray []*CheckAccessResponse
}

PermissionsClientCheckAccessByEnrollmentAccountResponse contains the response from method PermissionsClient.CheckAccessByEnrollmentAccount.

type PermissionsClientCheckAccessByInvoiceSectionOptions

type PermissionsClientCheckAccessByInvoiceSectionOptions struct {
}

PermissionsClientCheckAccessByInvoiceSectionOptions contains the optional parameters for the PermissionsClient.CheckAccessByInvoiceSection method.

type PermissionsClientCheckAccessByInvoiceSectionResponse

type PermissionsClientCheckAccessByInvoiceSectionResponse struct {
	// Array of CheckAccessResponse
	CheckAccessResponseArray []*CheckAccessResponse
}

PermissionsClientCheckAccessByInvoiceSectionResponse contains the response from method PermissionsClient.CheckAccessByInvoiceSection.

type PermissionsClientListByBillingAccountOptions

type PermissionsClientListByBillingAccountOptions struct {
}

PermissionsClientListByBillingAccountOptions contains the optional parameters for the PermissionsClient.NewListByBillingAccountPager method.

type PermissionsClientListByBillingAccountResponse

type PermissionsClientListByBillingAccountResponse struct {
	// A container for a list of resources
	PermissionListResult
}

PermissionsClientListByBillingAccountResponse contains the response from method PermissionsClient.NewListByBillingAccountPager.

type PermissionsClientListByBillingProfileOptions

type PermissionsClientListByBillingProfileOptions struct {
}

PermissionsClientListByBillingProfileOptions contains the optional parameters for the PermissionsClient.NewListByBillingProfilePager method.

type PermissionsClientListByBillingProfileResponse

type PermissionsClientListByBillingProfileResponse struct {
	// A container for a list of resources
	PermissionListResult
}

PermissionsClientListByBillingProfileResponse contains the response from method PermissionsClient.NewListByBillingProfilePager.

type PermissionsClientListByCustomerAtBillingAccountOptions

type PermissionsClientListByCustomerAtBillingAccountOptions struct {
}

PermissionsClientListByCustomerAtBillingAccountOptions contains the optional parameters for the PermissionsClient.NewListByCustomerAtBillingAccountPager method.

type PermissionsClientListByCustomerAtBillingAccountResponse

type PermissionsClientListByCustomerAtBillingAccountResponse struct {
	// A container for a list of resources
	PermissionListResult
}

PermissionsClientListByCustomerAtBillingAccountResponse contains the response from method PermissionsClient.NewListByCustomerAtBillingAccountPager.

type PermissionsClientListByCustomerOptions

type PermissionsClientListByCustomerOptions struct {
}

PermissionsClientListByCustomerOptions contains the optional parameters for the PermissionsClient.NewListByCustomerPager method.

type PermissionsClientListByCustomerResponse

type PermissionsClientListByCustomerResponse struct {
	// A container for a list of resources
	PermissionListResult
}

PermissionsClientListByCustomerResponse contains the response from method PermissionsClient.NewListByCustomerPager.

type PermissionsClientListByDepartmentOptions

type PermissionsClientListByDepartmentOptions struct {
}

PermissionsClientListByDepartmentOptions contains the optional parameters for the PermissionsClient.NewListByDepartmentPager method.

type PermissionsClientListByDepartmentResponse

type PermissionsClientListByDepartmentResponse struct {
	// A container for a list of resources
	PermissionListResult
}

PermissionsClientListByDepartmentResponse contains the response from method PermissionsClient.NewListByDepartmentPager.

type PermissionsClientListByEnrollmentAccountOptions

type PermissionsClientListByEnrollmentAccountOptions struct {
}

PermissionsClientListByEnrollmentAccountOptions contains the optional parameters for the PermissionsClient.NewListByEnrollmentAccountPager method.

type PermissionsClientListByEnrollmentAccountResponse

type PermissionsClientListByEnrollmentAccountResponse struct {
	// A container for a list of resources
	PermissionListResult
}

PermissionsClientListByEnrollmentAccountResponse contains the response from method PermissionsClient.NewListByEnrollmentAccountPager.

type PermissionsClientListByInvoiceSectionOptions

type PermissionsClientListByInvoiceSectionOptions struct {
}

PermissionsClientListByInvoiceSectionOptions contains the optional parameters for the PermissionsClient.NewListByInvoiceSectionPager method.

type PermissionsClientListByInvoiceSectionResponse

type PermissionsClientListByInvoiceSectionResponse struct {
	// A container for a list of resources
	PermissionListResult
}

PermissionsClientListByInvoiceSectionResponse contains the response from method PermissionsClient.NewListByInvoiceSectionPager.

type PlanInformation

type PlanInformation struct {
	// For recurring billing plans, indicates the date when next payment will be processed. Null when total is paid off.
	NextPaymentDueDate *time.Time

	// Amount of money to be paid for the Order. Tax is not included.
	PricingCurrencyTotal *Price

	// Date when the billing plan has started.
	StartDate    *time.Time
	Transactions []*PaymentDetail
}

PlanInformation - Information describing the type of billing plan for this savings plan.

func (PlanInformation) MarshalJSON

func (p PlanInformation) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PlanInformation.

func (*PlanInformation) UnmarshalJSON

func (p *PlanInformation) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PlanInformation.

type PoliciesClient

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

PoliciesClient contains the methods for the Policies group. Don't use this type directly, use NewPoliciesClient() instead.

func NewPoliciesClient

func NewPoliciesClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*PoliciesClient, error)

NewPoliciesClient creates a new instance of PoliciesClient with the specified values.

  • subscriptionID - The ID that uniquely identifies a billing subscription.
  • credential - used to authorize requests. Usually a credential from azidentity.
  • options - pass nil to accept the default values.

func (*PoliciesClient) BeginCreateOrUpdateByBillingAccount

BeginCreateOrUpdateByBillingAccount - Update the policies for a billing account of Enterprise Agreement type. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • parameters - A policy at billing account scope.
  • options - PoliciesClientBeginCreateOrUpdateByBillingAccountOptions contains the optional parameters for the PoliciesClient.BeginCreateOrUpdateByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/policiesPutByBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewPoliciesClient().BeginCreateOrUpdateByBillingAccount(ctx, "1234567", armbilling.AccountPolicy{
		Properties: &armbilling.AccountPolicyProperties{
			EnterpriseAgreementPolicies: &armbilling.AccountPolicyPropertiesEnterpriseAgreementPolicies{
				AuthenticationType: to.Ptr(armbilling.EnrollmentAuthLevelStateOrganizationalAccountOnly),
			},
			MarketplacePurchases: to.Ptr(armbilling.MarketplacePurchasesPolicyAllAllowed),
			ReservationPurchases: to.Ptr(armbilling.ReservationPurchasesPolicyAllowed),
			SavingsPlanPurchases: to.Ptr(armbilling.SavingsPlanPurchasesPolicyNotAllowed),
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.AccountPolicy = armbilling.AccountPolicy{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/policies"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/1234567/policies/default"),
	// 	Properties: &armbilling.AccountPolicyProperties{
	// 		EnterpriseAgreementPolicies: &armbilling.AccountPolicyPropertiesEnterpriseAgreementPolicies{
	// 			AuthenticationType: to.Ptr(armbilling.EnrollmentAuthLevelStateOrganizationalAccountOnly),
	// 		},
	// 		MarketplacePurchases: to.Ptr(armbilling.MarketplacePurchasesPolicyAllAllowed),
	// 		ReservationPurchases: to.Ptr(armbilling.ReservationPurchasesPolicyAllowed),
	// 		SavingsPlanPurchases: to.Ptr(armbilling.SavingsPlanPurchasesPolicyNotAllowed),
	// 	},
	// }
}

func (*PoliciesClient) BeginCreateOrUpdateByBillingProfile

func (client *PoliciesClient) BeginCreateOrUpdateByBillingProfile(ctx context.Context, billingAccountName string, billingProfileName string, parameters ProfilePolicy, options *PoliciesClientBeginCreateOrUpdateByBillingProfileOptions) (*runtime.Poller[PoliciesClientCreateOrUpdateByBillingProfileResponse], error)

BeginCreateOrUpdateByBillingProfile - Updates the policies for a billing profile. This operation is supported only for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • parameters - A policy at billing profile scope.
  • options - PoliciesClientBeginCreateOrUpdateByBillingProfileOptions contains the optional parameters for the PoliciesClient.BeginCreateOrUpdateByBillingProfile method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/policiesPutByBillingProfile.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewPoliciesClient().BeginCreateOrUpdateByBillingProfile(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", armbilling.ProfilePolicy{
		Properties: &armbilling.ProfilePolicyProperties{
			InvoiceSectionLabelManagement: to.Ptr(armbilling.InvoiceSectionLabelManagementPolicyAllowed),
			MarketplacePurchases:          to.Ptr(armbilling.MarketplacePurchasesPolicyAllAllowed),
			ReservationPurchases:          to.Ptr(armbilling.ReservationPurchasesPolicyAllowed),
			SavingsPlanPurchases:          to.Ptr(armbilling.SavingsPlanPurchasesPolicyAllowed),
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.ProfilePolicy = armbilling.ProfilePolicy{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/policies"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/policies/default"),
	// 	Properties: &armbilling.ProfilePolicyProperties{
	// 		InvoiceSectionLabelManagement: to.Ptr(armbilling.InvoiceSectionLabelManagementPolicyAllowed),
	// 		MarketplacePurchases: to.Ptr(armbilling.MarketplacePurchasesPolicyAllAllowed),
	// 		ReservationPurchases: to.Ptr(armbilling.ReservationPurchasesPolicyAllowed),
	// 		SavingsPlanPurchases: to.Ptr(armbilling.SavingsPlanPurchasesPolicyAllowed),
	// 	},
	// }
}

func (*PoliciesClient) BeginCreateOrUpdateByCustomer

func (client *PoliciesClient) BeginCreateOrUpdateByCustomer(ctx context.Context, billingAccountName string, billingProfileName string, customerName string, parameters CustomerPolicy, options *PoliciesClientBeginCreateOrUpdateByCustomerOptions) (*runtime.Poller[PoliciesClientCreateOrUpdateByCustomerResponse], error)

BeginCreateOrUpdateByCustomer - Updates the policies for a customer. This operation is supported only for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • parameters - A policy at customer scope.
  • options - PoliciesClientBeginCreateOrUpdateByCustomerOptions contains the optional parameters for the PoliciesClient.BeginCreateOrUpdateByCustomer method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/policiesPutByCustomer.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewPoliciesClient().BeginCreateOrUpdateByCustomer(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "11111111-1111-1111-1111-111111111111", armbilling.CustomerPolicy{
		Properties: &armbilling.CustomerPolicyProperties{
			ViewCharges: to.Ptr(armbilling.ViewChargesPolicyAllowed),
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.CustomerPolicy = armbilling.CustomerPolicy{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/policies"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111/policies/default"),
	// 	Properties: &armbilling.CustomerPolicyProperties{
	// 		ViewCharges: to.Ptr(armbilling.ViewChargesPolicyAllowed),
	// 	},
	// }
}

func (*PoliciesClient) BeginCreateOrUpdateByCustomerAtBillingAccount

func (client *PoliciesClient) BeginCreateOrUpdateByCustomerAtBillingAccount(ctx context.Context, billingAccountName string, customerName string, parameters CustomerPolicy, options *PoliciesClientBeginCreateOrUpdateByCustomerAtBillingAccountOptions) (*runtime.Poller[PoliciesClientCreateOrUpdateByCustomerAtBillingAccountResponse], error)

BeginCreateOrUpdateByCustomerAtBillingAccount - Updates the policies for a customer at billing account scope. This operation is supported only for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • customerName - The ID that uniquely identifies a customer.
  • parameters - A policy at customer scope.
  • options - PoliciesClientBeginCreateOrUpdateByCustomerAtBillingAccountOptions contains the optional parameters for the PoliciesClient.BeginCreateOrUpdateByCustomerAtBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/policiesPutByCustomerAtBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewPoliciesClient().BeginCreateOrUpdateByCustomerAtBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", armbilling.CustomerPolicy{
		Properties: &armbilling.CustomerPolicyProperties{
			ViewCharges: to.Ptr(armbilling.ViewChargesPolicyAllowed),
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.CustomerPolicy = armbilling.CustomerPolicy{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/policies"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111/policies/default"),
	// 	Properties: &armbilling.CustomerPolicyProperties{
	// 		ViewCharges: to.Ptr(armbilling.ViewChargesPolicyAllowed),
	// 	},
	// }
}

func (*PoliciesClient) GetByBillingAccount

func (client *PoliciesClient) GetByBillingAccount(ctx context.Context, billingAccountName string, options *PoliciesClientGetByBillingAccountOptions) (PoliciesClientGetByBillingAccountResponse, error)

GetByBillingAccount - Get the policies for a billing account of Enterprise Agreement type. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - PoliciesClientGetByBillingAccountOptions contains the optional parameters for the PoliciesClient.GetByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/policiesGetByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPoliciesClient().GetByBillingAccount(ctx, "1234567", 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.AccountPolicy = armbilling.AccountPolicy{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/policies"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/1234567/policies/default"),
	// 	Properties: &armbilling.AccountPolicyProperties{
	// 		EnterpriseAgreementPolicies: &armbilling.AccountPolicyPropertiesEnterpriseAgreementPolicies{
	// 			AuthenticationType: to.Ptr(armbilling.EnrollmentAuthLevelStateOrganizationalAccountOnly),
	// 		},
	// 		MarketplacePurchases: to.Ptr(armbilling.MarketplacePurchasesPolicyAllAllowed),
	// 		ReservationPurchases: to.Ptr(armbilling.ReservationPurchasesPolicyAllowed),
	// 		SavingsPlanPurchases: to.Ptr(armbilling.SavingsPlanPurchasesPolicyNotAllowed),
	// 	},
	// }
}

func (*PoliciesClient) GetByBillingProfile

func (client *PoliciesClient) GetByBillingProfile(ctx context.Context, billingAccountName string, billingProfileName string, options *PoliciesClientGetByBillingProfileOptions) (PoliciesClientGetByBillingProfileResponse, error)

GetByBillingProfile - Lists the policies for a billing profile. This operation is supported only for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - PoliciesClientGetByBillingProfileOptions contains the optional parameters for the PoliciesClient.GetByBillingProfile method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/policiesGetByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPoliciesClient().GetByBillingProfile(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", 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.ProfilePolicy = armbilling.ProfilePolicy{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/policies"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/policies/default"),
	// 	Properties: &armbilling.ProfilePolicyProperties{
	// 		InvoiceSectionLabelManagement: to.Ptr(armbilling.InvoiceSectionLabelManagementPolicyAllowed),
	// 		MarketplacePurchases: to.Ptr(armbilling.MarketplacePurchasesPolicyAllAllowed),
	// 		ReservationPurchases: to.Ptr(armbilling.ReservationPurchasesPolicyAllowed),
	// 		SavingsPlanPurchases: to.Ptr(armbilling.SavingsPlanPurchasesPolicyAllowed),
	// 	},
	// }
}

func (*PoliciesClient) GetByCustomer

func (client *PoliciesClient) GetByCustomer(ctx context.Context, billingAccountName string, billingProfileName string, customerName string, policyName ServiceDefinedResourceName, options *PoliciesClientGetByCustomerOptions) (PoliciesClientGetByCustomerResponse, error)

GetByCustomer - Lists the policies for a customer. This operation is supported only for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • policyName - Service-defined resource names such as 'default' which are reserved resource names.
  • options - PoliciesClientGetByCustomerOptions contains the optional parameters for the PoliciesClient.GetByCustomer method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/policiesGetByCustomer.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPoliciesClient().GetByCustomer(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "11111111-1111-1111-1111-111111111111", armbilling.ServiceDefinedResourceNameDefault, 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.CustomerPolicy = armbilling.CustomerPolicy{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/policies"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111/policies/default"),
	// 	Properties: &armbilling.CustomerPolicyProperties{
	// 		ViewCharges: to.Ptr(armbilling.ViewChargesPolicyAllowed),
	// 	},
	// }
}

func (*PoliciesClient) GetByCustomerAtBillingAccount

func (client *PoliciesClient) GetByCustomerAtBillingAccount(ctx context.Context, billingAccountName string, customerName string, options *PoliciesClientGetByCustomerAtBillingAccountOptions) (PoliciesClientGetByCustomerAtBillingAccountResponse, error)

GetByCustomerAtBillingAccount - Lists the policies for a customer at billing account scope. This operation is supported only for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • customerName - The ID that uniquely identifies a customer.
  • options - PoliciesClientGetByCustomerAtBillingAccountOptions contains the optional parameters for the PoliciesClient.GetByCustomerAtBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/policiesGetByCustomerAtBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPoliciesClient().GetByCustomerAtBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", 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.CustomerPolicy = armbilling.CustomerPolicy{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/policies"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111/policies/default"),
	// 	Properties: &armbilling.CustomerPolicyProperties{
	// 		ViewCharges: to.Ptr(armbilling.ViewChargesPolicyAllowed),
	// 	},
	// }
}

func (*PoliciesClient) GetBySubscription

GetBySubscription - Lists the policies that are managed by the Billing Admin for the defined subscriptions. This is supported for Microsoft Online Services Program, Microsoft Customer Agreement and Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • options - PoliciesClientGetBySubscriptionOptions contains the optional parameters for the PoliciesClient.GetBySubscription method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/policiesGetBySubscription.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPoliciesClient().GetBySubscription(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.SubscriptionPolicy = armbilling.SubscriptionPolicy{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/policies"),
	// 	ID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/policies/default"),
	// 	Properties: &armbilling.SubscriptionPolicyProperties{
	// 		Policies: []*armbilling.PolicySummary{
	// 			{
	// 				Name: to.Ptr("ViewCharges"),
	// 				PolicyType: to.Ptr(armbilling.PolicyTypeSystemControlled),
	// 				Scope: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000"),
	// 				Value: to.Ptr("Allowed"),
	// 		}},
	// 	},
	// }
}

type PoliciesClientBeginCreateOrUpdateByBillingAccountOptions

type PoliciesClientBeginCreateOrUpdateByBillingAccountOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

PoliciesClientBeginCreateOrUpdateByBillingAccountOptions contains the optional parameters for the PoliciesClient.BeginCreateOrUpdateByBillingAccount method.

type PoliciesClientBeginCreateOrUpdateByBillingProfileOptions

type PoliciesClientBeginCreateOrUpdateByBillingProfileOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

PoliciesClientBeginCreateOrUpdateByBillingProfileOptions contains the optional parameters for the PoliciesClient.BeginCreateOrUpdateByBillingProfile method.

type PoliciesClientBeginCreateOrUpdateByCustomerAtBillingAccountOptions

type PoliciesClientBeginCreateOrUpdateByCustomerAtBillingAccountOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

PoliciesClientBeginCreateOrUpdateByCustomerAtBillingAccountOptions contains the optional parameters for the PoliciesClient.BeginCreateOrUpdateByCustomerAtBillingAccount method.

type PoliciesClientBeginCreateOrUpdateByCustomerOptions

type PoliciesClientBeginCreateOrUpdateByCustomerOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

PoliciesClientBeginCreateOrUpdateByCustomerOptions contains the optional parameters for the PoliciesClient.BeginCreateOrUpdateByCustomer method.

type PoliciesClientCreateOrUpdateByBillingAccountResponse

type PoliciesClientCreateOrUpdateByBillingAccountResponse struct {
	// A policy at billing account scope.
	AccountPolicy
}

PoliciesClientCreateOrUpdateByBillingAccountResponse contains the response from method PoliciesClient.BeginCreateOrUpdateByBillingAccount.

type PoliciesClientCreateOrUpdateByBillingProfileResponse

type PoliciesClientCreateOrUpdateByBillingProfileResponse struct {
	// A policy at billing profile scope.
	ProfilePolicy
}

PoliciesClientCreateOrUpdateByBillingProfileResponse contains the response from method PoliciesClient.BeginCreateOrUpdateByBillingProfile.

type PoliciesClientCreateOrUpdateByCustomerAtBillingAccountResponse

type PoliciesClientCreateOrUpdateByCustomerAtBillingAccountResponse struct {
	// A policy at customer scope.
	CustomerPolicy
}

PoliciesClientCreateOrUpdateByCustomerAtBillingAccountResponse contains the response from method PoliciesClient.BeginCreateOrUpdateByCustomerAtBillingAccount.

type PoliciesClientCreateOrUpdateByCustomerResponse

type PoliciesClientCreateOrUpdateByCustomerResponse struct {
	// A policy at customer scope.
	CustomerPolicy
}

PoliciesClientCreateOrUpdateByCustomerResponse contains the response from method PoliciesClient.BeginCreateOrUpdateByCustomer.

type PoliciesClientGetByBillingAccountOptions

type PoliciesClientGetByBillingAccountOptions struct {
}

PoliciesClientGetByBillingAccountOptions contains the optional parameters for the PoliciesClient.GetByBillingAccount method.

type PoliciesClientGetByBillingAccountResponse

type PoliciesClientGetByBillingAccountResponse struct {
	// A policy at billing account scope.
	AccountPolicy
}

PoliciesClientGetByBillingAccountResponse contains the response from method PoliciesClient.GetByBillingAccount.

type PoliciesClientGetByBillingProfileOptions

type PoliciesClientGetByBillingProfileOptions struct {
}

PoliciesClientGetByBillingProfileOptions contains the optional parameters for the PoliciesClient.GetByBillingProfile method.

type PoliciesClientGetByBillingProfileResponse

type PoliciesClientGetByBillingProfileResponse struct {
	// A policy at billing profile scope.
	ProfilePolicy
}

PoliciesClientGetByBillingProfileResponse contains the response from method PoliciesClient.GetByBillingProfile.

type PoliciesClientGetByCustomerAtBillingAccountOptions

type PoliciesClientGetByCustomerAtBillingAccountOptions struct {
}

PoliciesClientGetByCustomerAtBillingAccountOptions contains the optional parameters for the PoliciesClient.GetByCustomerAtBillingAccount method.

type PoliciesClientGetByCustomerAtBillingAccountResponse

type PoliciesClientGetByCustomerAtBillingAccountResponse struct {
	// A policy at customer scope.
	CustomerPolicy
}

PoliciesClientGetByCustomerAtBillingAccountResponse contains the response from method PoliciesClient.GetByCustomerAtBillingAccount.

type PoliciesClientGetByCustomerOptions

type PoliciesClientGetByCustomerOptions struct {
}

PoliciesClientGetByCustomerOptions contains the optional parameters for the PoliciesClient.GetByCustomer method.

type PoliciesClientGetByCustomerResponse

type PoliciesClientGetByCustomerResponse struct {
	// A policy at customer scope.
	CustomerPolicy
}

PoliciesClientGetByCustomerResponse contains the response from method PoliciesClient.GetByCustomer.

type PoliciesClientGetBySubscriptionOptions

type PoliciesClientGetBySubscriptionOptions struct {
}

PoliciesClientGetBySubscriptionOptions contains the optional parameters for the PoliciesClient.GetBySubscription method.

type PoliciesClientGetBySubscriptionResponse

type PoliciesClientGetBySubscriptionResponse struct {
	// A policy at subscription scope.
	SubscriptionPolicy
}

PoliciesClientGetBySubscriptionResponse contains the response from method PoliciesClient.GetBySubscription.

type PolicySummary

type PolicySummary struct {
	// The name of the policy.
	Name *string

	// The type of the policy.
	PolicyType *PolicyType

	// The scope at which the policy is defined.
	Scope *string

	// The value of the policy.
	Value *string
}

PolicySummary - The summary of the policy.

func (PolicySummary) MarshalJSON

func (p PolicySummary) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PolicySummary.

func (*PolicySummary) UnmarshalJSON

func (p *PolicySummary) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PolicySummary.

type PolicyType

type PolicyType string

PolicyType - The type of the policy.

const (
	PolicyTypeOther            PolicyType = "Other"
	PolicyTypeSystemControlled PolicyType = "SystemControlled"
	PolicyTypeUserControlled   PolicyType = "UserControlled"
)

func PossiblePolicyTypeValues

func PossiblePolicyTypeValues() []PolicyType

PossiblePolicyTypeValues returns the possible values for the PolicyType const type.

type Price

type Price struct {
	Amount *float64

	// The ISO 4217 3-letter currency code for the currency used by this purchase record.
	CurrencyCode *string
}

Price - The price.

func (Price) MarshalJSON

func (p Price) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Price.

func (*Price) UnmarshalJSON

func (p *Price) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Price.

type Principal

type Principal struct {
	// The object id of the principal who has interacted with a billing entity.
	ObjectID *string

	// The tenant id of the principal who has interacted with a billing entity.
	TenantID *string

	// The user principal name of the principal who has interacted with a billing entity.
	Upn *string
}

Principal - A principal who has interacted with a billing entity.

func (Principal) MarshalJSON

func (p Principal) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Principal.

func (*Principal) UnmarshalJSON

func (p *Principal) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Principal.

type PrincipalType

type PrincipalType string

PrincipalType - The type of a role Assignment.

const (
	PrincipalTypeDirectoryRole    PrincipalType = "DirectoryRole"
	PrincipalTypeEveryone         PrincipalType = "Everyone"
	PrincipalTypeGroup            PrincipalType = "Group"
	PrincipalTypeNone             PrincipalType = "None"
	PrincipalTypeServicePrincipal PrincipalType = "ServicePrincipal"
	PrincipalTypeUnknown          PrincipalType = "Unknown"
	PrincipalTypeUser             PrincipalType = "User"
)

func PossiblePrincipalTypeValues

func PossiblePrincipalTypeValues() []PrincipalType

PossiblePrincipalTypeValues returns the possible values for the PrincipalType const type.

type Product

type Product struct {
	// A product.
	Properties *ProductProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

Product - A product.

func (Product) MarshalJSON

func (p Product) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Product.

func (*Product) UnmarshalJSON

func (p *Product) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Product.

type ProductDetails

type ProductDetails struct {
	// The ID of the product that is transferred.
	ProductID *string

	// Type of the product that is transferred.
	ProductType *ProductType
}

ProductDetails - Details of the product that is transferred.

func (ProductDetails) MarshalJSON

func (p ProductDetails) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProductDetails.

func (*ProductDetails) UnmarshalJSON

func (p *ProductDetails) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProductDetails.

type ProductListResult

type ProductListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*Product
}

ProductListResult - A container for a list of resources

func (ProductListResult) MarshalJSON

func (p ProductListResult) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProductListResult.

func (*ProductListResult) UnmarshalJSON

func (p *ProductListResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProductListResult.

type ProductPatch

type ProductPatch struct {
	// A product.
	Properties *ProductProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

ProductPatch - A product.

func (ProductPatch) MarshalJSON

func (p ProductPatch) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProductPatch.

func (*ProductPatch) UnmarshalJSON

func (p *ProductPatch) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProductPatch.

type ProductProperties

type ProductProperties struct {
	// Indicates whether auto renewal is turned on or off for a product.
	AutoRenew *AutoRenew

	// The last month charges.
	LastCharge *ProductPropertiesLastCharge

	// Reseller for this product. The fields is not available for Microsoft Partner Agreement products.
	Reseller *ProductPropertiesReseller

	// READ-ONLY; The availability of the product.
	AvailabilityID *string

	// READ-ONLY; The frequency at which the product will be billed.
	BillingFrequency *string

	// READ-ONLY; The name of the billing profile to which the product is billed.
	BillingProfileDisplayName *string

	// READ-ONLY; The ID of the billing profile to which the product is billed.
	BillingProfileID *string

	// READ-ONLY; The name of the customer for whom the product was purchased. The field is applicable only for Microsoft Partner
	// Agreement billing account.
	CustomerDisplayName *string

	// READ-ONLY; The ID of the customer for whom the product was purchased. The field is applicable only for Microsoft Partner
	// Agreement billing account.
	CustomerID *string

	// READ-ONLY; The display name of the product.
	DisplayName *string

	// READ-ONLY; The date when the product will be renewed or canceled.
	EndDate *string

	// READ-ONLY; The name of the invoice section to which the product is billed.
	InvoiceSectionDisplayName *string

	// READ-ONLY; The ID of the invoice section to which the product is billed.
	InvoiceSectionID *string

	// READ-ONLY; The date of the last charge.
	LastChargeDate *string

	// READ-ONLY; The description of the type of product.
	ProductType *string

	// READ-ONLY; The ID of the type of product.
	ProductTypeID *string

	// READ-ONLY; The date when the product was purchased.
	PurchaseDate *string

	// READ-ONLY; The quantity purchased for the product.
	Quantity *int64

	// READ-ONLY; The sku description of the product.
	SKUDescription *string

	// READ-ONLY; The sku ID of the product.
	SKUID *string

	// READ-ONLY; The status of the product.
	Status *ProductStatus

	// READ-ONLY; The id of the tenant in which the product is used.
	TenantID *string
}

ProductProperties - A product.

func (ProductProperties) MarshalJSON

func (p ProductProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProductProperties.

func (*ProductProperties) UnmarshalJSON

func (p *ProductProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProductProperties.

type ProductPropertiesLastCharge

type ProductPropertiesLastCharge struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

ProductPropertiesLastCharge - The last month charges.

func (ProductPropertiesLastCharge) MarshalJSON

func (p ProductPropertiesLastCharge) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProductPropertiesLastCharge.

func (*ProductPropertiesLastCharge) UnmarshalJSON

func (p *ProductPropertiesLastCharge) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProductPropertiesLastCharge.

type ProductPropertiesReseller

type ProductPropertiesReseller struct {
	// READ-ONLY; The name of the reseller.
	Description *string

	// READ-ONLY; The MPN ID of the reseller.
	ResellerID *string
}

ProductPropertiesReseller - Reseller for this product. The fields is not available for Microsoft Partner Agreement products.

func (ProductPropertiesReseller) MarshalJSON

func (p ProductPropertiesReseller) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProductPropertiesReseller.

func (*ProductPropertiesReseller) UnmarshalJSON

func (p *ProductPropertiesReseller) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProductPropertiesReseller.

type ProductStatus

type ProductStatus string

ProductStatus - The status of the product.

const (
	ProductStatusActive    ProductStatus = "Active"
	ProductStatusAutoRenew ProductStatus = "AutoRenew"
	ProductStatusCanceled  ProductStatus = "Canceled"
	ProductStatusDeleted   ProductStatus = "Deleted"
	ProductStatusDisabled  ProductStatus = "Disabled"
	ProductStatusExpired   ProductStatus = "Expired"
	ProductStatusExpiring  ProductStatus = "Expiring"
	ProductStatusOther     ProductStatus = "Other"
	ProductStatusPastDue   ProductStatus = "PastDue"
	ProductStatusSuspended ProductStatus = "Suspended"
)

func PossibleProductStatusValues

func PossibleProductStatusValues() []ProductStatus

PossibleProductStatusValues returns the possible values for the ProductStatus const type.

type ProductTransferStatus

type ProductTransferStatus string

ProductTransferStatus - The status of a transfer.

const (
	ProductTransferStatusCompleted  ProductTransferStatus = "Completed"
	ProductTransferStatusFailed     ProductTransferStatus = "Failed"
	ProductTransferStatusInProgress ProductTransferStatus = "InProgress"
	ProductTransferStatusNotStarted ProductTransferStatus = "NotStarted"
)

func PossibleProductTransferStatusValues

func PossibleProductTransferStatusValues() []ProductTransferStatus

PossibleProductTransferStatusValues returns the possible values for the ProductTransferStatus const type.

type ProductType

type ProductType string

ProductType - The type of product that is transferred.

const (
	ProductTypeAzureReservation  ProductType = "AzureReservation"
	ProductTypeAzureSubscription ProductType = "AzureSubscription"
	ProductTypeDepartment        ProductType = "Department"
	ProductTypeSAAS              ProductType = "SAAS"
	ProductTypeSavingsPlan       ProductType = "SavingsPlan"
)

func PossibleProductTypeValues

func PossibleProductTypeValues() []ProductType

PossibleProductTypeValues returns the possible values for the ProductType const type.

type ProductsClient

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

ProductsClient contains the methods for the Products group. Don't use this type directly, use NewProductsClient() instead.

func NewProductsClient

func NewProductsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*ProductsClient, error)

NewProductsClient creates a new instance of ProductsClient with the specified values.

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

func (*ProductsClient) BeginMove

func (client *ProductsClient) BeginMove(ctx context.Context, billingAccountName string, productName string, parameters MoveProductRequest, options *ProductsClientBeginMoveOptions) (*runtime.Poller[ProductsClientMoveResponse], error)

BeginMove - Moves a product's charges to a new invoice section. The new invoice section must belong to the same billing profile as the existing invoice section. This operation is supported only for products that are purchased with a recurring charge and for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • productName - The ID that uniquely identifies a product.
  • parameters - The properties of the product to initiate a transfer.
  • options - ProductsClientBeginMoveOptions contains the optional parameters for the ProductsClient.BeginMove method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/productMove.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewProductsClient().BeginMove(ctx, "a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31", "6b96d3f2-9008-4a9d-912f-f87744185aa3", armbilling.MoveProductRequest{
		DestinationInvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.Product = armbilling.Product{
	// 	Name: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/products/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
	// 	Properties: &armbilling.ProductProperties{
	// 		BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
	// 		DisplayName: to.Ptr("My Product"),
	// 		InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
	// 		InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
	// 		SKUDescription: to.Ptr("Microsoft Azure Plan"),
	// 		SKUID: to.Ptr("0001"),
	// 		Status: to.Ptr(armbilling.ProductStatusActive),
	// 	},
	// }
}

func (*ProductsClient) Get

func (client *ProductsClient) Get(ctx context.Context, billingAccountName string, productName string, options *ProductsClientGetOptions) (ProductsClientGetResponse, error)

Get - Gets a product by ID. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • productName - The ID that uniquely identifies a product.
  • options - ProductsClientGetOptions contains the optional parameters for the ProductsClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/productsGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewProductsClient().Get(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", 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.Product = armbilling.Product{
	// 	Name: to.Ptr("90000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/products/90000000-0000-0000-0000-000000000000"),
	// 	Properties: &armbilling.ProductProperties{
	// 		AutoRenew: to.Ptr(armbilling.AutoRenewOn),
	// 		BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		DisplayName: to.Ptr("My product"),
	// 		InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
	// 		InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
	// 		ProductType: to.Ptr("Seat-Based Product Type"),
	// 		ProductTypeID: to.Ptr("XYZ56789"),
	// 		PurchaseDate: to.Ptr("2023-01-04T22:39:34.2606750Z"),
	// 		Quantity: to.Ptr[int64](1),
	// 		SKUDescription: to.Ptr("SKU Description"),
	// 		SKUID: to.Ptr("0001"),
	// 		Status: to.Ptr(armbilling.ProductStatusActive),
	// 	},
	// }
}

func (*ProductsClient) NewListByBillingAccountPager

func (client *ProductsClient) NewListByBillingAccountPager(billingAccountName string, options *ProductsClientListByBillingAccountOptions) *runtime.Pager[ProductsClientListByBillingAccountResponse]

NewListByBillingAccountPager - Lists the products for a billing account. These don't include products billed based on usage. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement or Microsoft Partner Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - ProductsClientListByBillingAccountOptions contains the optional parameters for the ProductsClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/productsListByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewProductsClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.ProductsClientListByBillingAccountOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.ProductListResult = armbilling.ProductListResult{
		// 	Value: []*armbilling.Product{
		// 		{
		// 			Name: to.Ptr("90000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/products/90000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.ProductProperties{
		// 				AutoRenew: to.Ptr(armbilling.AutoRenewOn),
		// 				BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("My product"),
		// 				InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
		// 				ProductType: to.Ptr("Seat-Based Product Type"),
		// 				ProductTypeID: to.Ptr("XYZ56789"),
		// 				PurchaseDate: to.Ptr("2023-01-04T22:39:34.2606750Z"),
		// 				Quantity: to.Ptr[int64](1),
		// 				SKUDescription: to.Ptr("SKU Description"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.ProductStatusActive),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("90000000-0000-0000-0000-000000000001"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/products/90000000-0000-0000-0000-000000000001"),
		// 			Properties: &armbilling.ProductProperties{
		// 				AutoRenew: to.Ptr(armbilling.AutoRenewOn),
		// 				BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("Test product"),
		// 				InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
		// 				ProductType: to.Ptr("Software Product Type"),
		// 				ProductTypeID: to.Ptr("EFG456"),
		// 				PurchaseDate: to.Ptr("2023-01-06T22:39:34.2606750Z"),
		// 				Quantity: to.Ptr[int64](1),
		// 				SKUDescription: to.Ptr("SKU Description"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.ProductStatusActive),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("90000000-0000-0000-0000-000000000002"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/products/90000000-0000-0000-0000-000000000002"),
		// 			Properties: &armbilling.ProductProperties{
		// 				AutoRenew: to.Ptr(armbilling.AutoRenewOn),
		// 				BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("Dev product"),
		// 				InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
		// 				ProductType: to.Ptr("Reservation Product Type"),
		// 				ProductTypeID: to.Ptr("JKL789"),
		// 				PurchaseDate: to.Ptr("2023-01-05T22:39:34.2606750Z"),
		// 				Quantity: to.Ptr[int64](1),
		// 				SKUDescription: to.Ptr("SKU Description"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.ProductStatusSuspended),
		// 			},
		// 	}},
		// }
	}
}

func (*ProductsClient) NewListByBillingProfilePager

func (client *ProductsClient) NewListByBillingProfilePager(billingAccountName string, billingProfileName string, options *ProductsClientListByBillingProfileOptions) *runtime.Pager[ProductsClientListByBillingProfileResponse]

NewListByBillingProfilePager - Lists the products for a billing profile. These don't include products billed based on usage. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement or Microsoft Partner Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - ProductsClientListByBillingProfileOptions contains the optional parameters for the ProductsClient.NewListByBillingProfilePager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/productsListByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewProductsClient().NewListByBillingProfilePager("a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31", "ea36e548-1505-41db-bebc-46fff3d37998", &armbilling.ProductsClientListByBillingProfileOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.ProductListResult = armbilling.ProductListResult{
		// 	Value: []*armbilling.Product{
		// 		{
		// 			Name: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProducts/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Properties: &armbilling.ProductProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("My Product"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Dev/Test"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.ProductStatusActive),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProducts/CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Properties: &armbilling.ProductProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("Test Product"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Dev/Test"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.ProductStatusActive),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("90D31600-D46D-4084-84C6-1235CDAFFB56"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProducts/90D31600-D46D-4084-84C6-1235CDAFFB56"),
		// 			Properties: &armbilling.ProductProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("Dev Product"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Dev/Test"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.ProductStatusActive),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProducts/9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Properties: &armbilling.ProductProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("Dev Test Product"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				SKUDescription: to.Ptr("Domain Name Registration ORG"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.ProductStatusActive),
		// 			},
		// 	}},
		// }
	}
}

func (*ProductsClient) NewListByCustomerPager

func (client *ProductsClient) NewListByCustomerPager(billingAccountName string, customerName string, options *ProductsClientListByCustomerOptions) *runtime.Pager[ProductsClientListByCustomerResponse]

NewListByCustomerPager - Lists the products for a customer. These don't include products billed based on usage.The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • customerName - The ID that uniquely identifies a customer.
  • options - ProductsClientListByCustomerOptions contains the optional parameters for the ProductsClient.NewListByCustomerPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/productsListByCustomer.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewProductsClient().NewListByCustomerPager("a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31", "Q7GV-UUVA-PJA-TGB", &armbilling.ProductsClientListByCustomerOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.ProductListResult = armbilling.ProductListResult{
		// 	Value: []*armbilling.Product{
		// 		{
		// 			Name: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProducts/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Properties: &armbilling.ProductProperties{
		// 				BillingProfileDisplayName: to.Ptr("BillingProfile1"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				CustomerDisplayName: to.Ptr("Customer1"),
		// 				CustomerID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/customers/Q7GV-UUVA-PJA-TGB"),
		// 				DisplayName: to.Ptr("My Product"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Standard"),
		// 				SKUID: to.Ptr("0002"),
		// 				Status: to.Ptr(armbilling.ProductStatusActive),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProducts/CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Properties: &armbilling.ProductProperties{
		// 				BillingProfileDisplayName: to.Ptr("BillingProfile1"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				CustomerDisplayName: to.Ptr("Customer1"),
		// 				CustomerID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/customers/Q7GV-UUVA-PJA-TGB"),
		// 				DisplayName: to.Ptr("Test Product"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Standard"),
		// 				SKUID: to.Ptr("0002"),
		// 				Status: to.Ptr(armbilling.ProductStatusActive),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProducts/9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Properties: &armbilling.ProductProperties{
		// 				BillingProfileDisplayName: to.Ptr("BillingProfile1"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				CustomerDisplayName: to.Ptr("Customer1"),
		// 				CustomerID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/customers/Q7GV-UUVA-PJA-TGB"),
		// 				DisplayName: to.Ptr("Dev Test Product"),
		// 				SKUDescription: to.Ptr("Domain Name Registration ORG"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.ProductStatusActive),
		// 			},
		// 	}},
		// }
	}
}

func (*ProductsClient) NewListByInvoiceSectionPager

func (client *ProductsClient) NewListByInvoiceSectionPager(billingAccountName string, billingProfileName string, invoiceSectionName string, options *ProductsClientListByInvoiceSectionOptions) *runtime.Pager[ProductsClientListByInvoiceSectionResponse]

NewListByInvoiceSectionPager - Lists the products for an invoice section. These don't include products billed based on usage. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • options - ProductsClientListByInvoiceSectionOptions contains the optional parameters for the ProductsClient.NewListByInvoiceSectionPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/productsListByInvoiceSection.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewProductsClient().NewListByInvoiceSectionPager("a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31", "ea36e548-1505-41db-bebc-46fff3d37998", "Q7GV-UUVA-PJA-TGB", &armbilling.ProductsClientListByInvoiceSectionOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.ProductListResult = armbilling.ProductListResult{
		// 	Value: []*armbilling.Product{
		// 		{
		// 			Name: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProducts/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Properties: &armbilling.ProductProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("My Product"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Dev/Test"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.ProductStatusActive),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProducts/CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Properties: &armbilling.ProductProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("Test Product"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Dev/Test"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.ProductStatusActive),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("90D31600-D46D-4084-84C6-1235CDAFFB56"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProducts/90D31600-D46D-4084-84C6-1235CDAFFB56"),
		// 			Properties: &armbilling.ProductProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("Dev Product"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Dev/Test"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.ProductStatusActive),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProducts/9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Properties: &armbilling.ProductProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("Dev Test Product"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
		// 				SKUDescription: to.Ptr("Domain Name Registration ORG"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.ProductStatusActive),
		// 			},
		// 	}},
		// }
	}
}

func (*ProductsClient) Update

func (client *ProductsClient) Update(ctx context.Context, billingAccountName string, productName string, parameters ProductPatch, options *ProductsClientUpdateOptions) (ProductsClientUpdateResponse, error)

Update - Updates the properties of a Product. Currently, auto renew can be updated. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • productName - The ID that uniquely identifies a product.
  • parameters - A product.
  • options - ProductsClientUpdateOptions contains the optional parameters for the ProductsClient.Update method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/productsUpdate.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewProductsClient().Update(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", armbilling.ProductPatch{
		Properties: &armbilling.ProductProperties{
			AutoRenew: to.Ptr(armbilling.AutoRenewOn),
		},
	}, 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.Product = armbilling.Product{
	// 	Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/products"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/products/11111111-1111-1111-1111-111111111111"),
	// 	Properties: &armbilling.ProductProperties{
	// 		AutoRenew: to.Ptr(armbilling.AutoRenewOn),
	// 		BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		DisplayName: to.Ptr("Product Display Name"),
	// 		InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
	// 		InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
	// 		ProductType: to.Ptr("Seat-Based Product Type"),
	// 		ProductTypeID: to.Ptr("XYZ56789"),
	// 		PurchaseDate: to.Ptr("2023-01-05T22:39:34.2606750Z"),
	// 		Quantity: to.Ptr[int64](1),
	// 		SKUDescription: to.Ptr("SKU Description"),
	// 		SKUID: to.Ptr("0001"),
	// 		Status: to.Ptr(armbilling.ProductStatusActive),
	// 	},
	// }
}

func (*ProductsClient) ValidateMoveEligibility

func (client *ProductsClient) ValidateMoveEligibility(ctx context.Context, billingAccountName string, productName string, parameters MoveProductRequest, options *ProductsClientValidateMoveEligibilityOptions) (ProductsClientValidateMoveEligibilityResponse, error)

ValidateMoveEligibility - Validates if a product's charges can be moved to a new invoice section. This operation is supported only for products that are purchased with a recurring charge and for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • productName - The ID that uniquely identifies a product.
  • parameters - The properties of the product to initiate a transfer.
  • options - ProductsClientValidateMoveEligibilityOptions contains the optional parameters for the ProductsClient.ValidateMoveEligibility method.
Example (ProductValidateMoveFailure)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/productValidateMoveFailure.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewProductsClient().ValidateMoveEligibility(ctx, "a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31", "6b96d3f2-9008-4a9d-912f-f87744185aa3", armbilling.MoveProductRequest{
		DestinationInvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
	}, 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.MoveProductEligibilityResult = armbilling.MoveProductEligibilityResult{
	// 	ErrorDetails: &armbilling.MoveProductEligibilityResultErrorDetails{
	// 		Code: to.Ptr(armbilling.MoveValidationErrorCodeProductInactive),
	// 		Message: to.Ptr("Invoice Sections can only be changed for active products."),
	// 	},
	// }
}
Example (ProductValidateMoveSuccess)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/productValidateMoveSuccess.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewProductsClient().ValidateMoveEligibility(ctx, "a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31", "6b96d3f2-9008-4a9d-912f-f87744185aa3", armbilling.MoveProductRequest{
		DestinationInvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
	}, 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.MoveProductEligibilityResult = armbilling.MoveProductEligibilityResult{
	// 	IsMoveEligible: to.Ptr(true),
	// }
}

type ProductsClientBeginMoveOptions

type ProductsClientBeginMoveOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

ProductsClientBeginMoveOptions contains the optional parameters for the ProductsClient.BeginMove method.

type ProductsClientGetOptions

type ProductsClientGetOptions struct {
}

ProductsClientGetOptions contains the optional parameters for the ProductsClient.Get method.

type ProductsClientGetResponse

type ProductsClientGetResponse struct {
	// A product.
	Product
}

ProductsClientGetResponse contains the response from method ProductsClient.Get.

type ProductsClientListByBillingAccountOptions

type ProductsClientListByBillingAccountOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

ProductsClientListByBillingAccountOptions contains the optional parameters for the ProductsClient.NewListByBillingAccountPager method.

type ProductsClientListByBillingAccountResponse

type ProductsClientListByBillingAccountResponse struct {
	// A container for a list of resources
	ProductListResult
}

ProductsClientListByBillingAccountResponse contains the response from method ProductsClient.NewListByBillingAccountPager.

type ProductsClientListByBillingProfileOptions

type ProductsClientListByBillingProfileOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

ProductsClientListByBillingProfileOptions contains the optional parameters for the ProductsClient.NewListByBillingProfilePager method.

type ProductsClientListByBillingProfileResponse

type ProductsClientListByBillingProfileResponse struct {
	// A container for a list of resources
	ProductListResult
}

ProductsClientListByBillingProfileResponse contains the response from method ProductsClient.NewListByBillingProfilePager.

type ProductsClientListByCustomerOptions

type ProductsClientListByCustomerOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

ProductsClientListByCustomerOptions contains the optional parameters for the ProductsClient.NewListByCustomerPager method.

type ProductsClientListByCustomerResponse

type ProductsClientListByCustomerResponse struct {
	// A container for a list of resources
	ProductListResult
}

ProductsClientListByCustomerResponse contains the response from method ProductsClient.NewListByCustomerPager.

type ProductsClientListByInvoiceSectionOptions

type ProductsClientListByInvoiceSectionOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

ProductsClientListByInvoiceSectionOptions contains the optional parameters for the ProductsClient.NewListByInvoiceSectionPager method.

type ProductsClientListByInvoiceSectionResponse

type ProductsClientListByInvoiceSectionResponse struct {
	// A container for a list of resources
	ProductListResult
}

ProductsClientListByInvoiceSectionResponse contains the response from method ProductsClient.NewListByInvoiceSectionPager.

type ProductsClientMoveResponse

type ProductsClientMoveResponse struct {
	// A product.
	Product
}

ProductsClientMoveResponse contains the response from method ProductsClient.BeginMove.

type ProductsClientUpdateOptions

type ProductsClientUpdateOptions struct {
}

ProductsClientUpdateOptions contains the optional parameters for the ProductsClient.Update method.

type ProductsClientUpdateResponse

type ProductsClientUpdateResponse struct {
	// A product.
	Product
}

ProductsClientUpdateResponse contains the response from method ProductsClient.Update.

type ProductsClientValidateMoveEligibilityOptions

type ProductsClientValidateMoveEligibilityOptions struct {
}

ProductsClientValidateMoveEligibilityOptions contains the optional parameters for the ProductsClient.ValidateMoveEligibility method.

type ProductsClientValidateMoveEligibilityResponse

type ProductsClientValidateMoveEligibilityResponse struct {
	// Result of the transfer eligibility validation.
	MoveProductEligibilityResult
}

ProductsClientValidateMoveEligibilityResponse contains the response from method ProductsClient.ValidateMoveEligibility.

type Profile

type Profile struct {
	// A billing profile.
	Properties *ProfileProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

Profile - A billing profile.

func (Profile) MarshalJSON

func (p Profile) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Profile.

func (*Profile) UnmarshalJSON

func (p *Profile) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Profile.

type ProfileInfo

type ProfileInfo struct {
	// The fully qualified ID that uniquely identifies a billing account.
	BillingAccountID *string

	// The name of the billing profile.
	BillingProfileDisplayName *string

	// The friendly ID that uniquely identifies a billing profile.
	BillingProfileID *string

	// The fully qualified ID that uniquely identifies a billing profile.
	BillingProfileSystemID *string

	// Billing account name. Available for a specific type of agreement.
	IndirectRelationshipOrganizationName *string
}

ProfileInfo - Details about billing profile associated with agreement and available only for specific agreements.

func (ProfileInfo) MarshalJSON

func (p ProfileInfo) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProfileInfo.

func (*ProfileInfo) UnmarshalJSON

func (p *ProfileInfo) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProfileInfo.

type ProfileListResult

type ProfileListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*Profile
}

ProfileListResult - A container for a list of resources

func (ProfileListResult) MarshalJSON

func (p ProfileListResult) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProfileListResult.

func (*ProfileListResult) UnmarshalJSON

func (p *ProfileListResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProfileListResult.

type ProfilePolicy

type ProfilePolicy struct {
	// A policy at billing profile scope.
	Properties *ProfilePolicyProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

ProfilePolicy - A policy at billing profile scope.

func (ProfilePolicy) MarshalJSON

func (p ProfilePolicy) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProfilePolicy.

func (*ProfilePolicy) UnmarshalJSON

func (p *ProfilePolicy) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProfilePolicy.

type ProfilePolicyProperties

type ProfilePolicyProperties struct {
	// The policies for Enterprise Agreement enrollments.
	EnterpriseAgreementPolicies *ProfilePolicyPropertiesEnterpriseAgreementPolicies

	// The policy that controls invoice section label management at invoice section scope. This is allowed by default.
	InvoiceSectionLabelManagement *InvoiceSectionLabelManagementPolicy

	// The policy that controls whether Azure marketplace purchases are allowed.
	MarketplacePurchases *MarketplacePurchasesPolicy

	// List of all policies defined at the billing scope.
	Policies []*PolicySummary

	// The policy that controls whether Azure reservation purchases are allowed.
	ReservationPurchases *ReservationPurchasesPolicy

	// The policy that controls whether users with Azure savings plan purchase are allowed.
	SavingsPlanPurchases *SavingsPlanPurchasesPolicy

	// The policy that controls whether the users in customer's organization can view charges at pay-as-you-go prices.
	ViewCharges *ViewChargesPolicy

	// READ-ONLY; The provisioning state of the resource during a long-running operation.
	ProvisioningState *ProvisioningState
}

ProfilePolicyProperties - A policy at billing profile scope.

func (ProfilePolicyProperties) MarshalJSON

func (p ProfilePolicyProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProfilePolicyProperties.

func (*ProfilePolicyProperties) UnmarshalJSON

func (p *ProfilePolicyProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProfilePolicyProperties.

type ProfilePolicyPropertiesEnterpriseAgreementPolicies

type ProfilePolicyPropertiesEnterpriseAgreementPolicies struct {
	// The policy that controls whether account owner can view charges.
	AccountOwnerViewCharges *EnrollmentAccountOwnerViewCharges

	// The state showing the enrollment auth level.
	AuthenticationType *EnrollmentAuthLevelState

	// The policy that controls whether department admin can view charges.
	DepartmentAdminViewCharges *EnrollmentDepartmentAdminViewCharges
}

ProfilePolicyPropertiesEnterpriseAgreementPolicies - The policies for Enterprise Agreement enrollments.

func (ProfilePolicyPropertiesEnterpriseAgreementPolicies) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type ProfilePolicyPropertiesEnterpriseAgreementPolicies.

func (*ProfilePolicyPropertiesEnterpriseAgreementPolicies) UnmarshalJSON

UnmarshalJSON implements the json.Unmarshaller interface for type ProfilePolicyPropertiesEnterpriseAgreementPolicies.

type ProfileProperties

type ProfileProperties struct {
	// Billing address.
	BillTo *ProfilePropertiesBillTo

	// The current payment term of the billing profile.
	CurrentPaymentTerm *ProfilePropertiesCurrentPaymentTerm

	// The name of the billing profile.
	DisplayName *string

	// Information about the enabled azure plans.
	EnabledAzurePlans []*AzurePlan

	// Identifies the billing profile that is linked to another billing profile in indirect purchase motion.
	IndirectRelationshipInfo *ProfilePropertiesIndirectRelationshipInfo

	// Flag controlling whether the invoices for the billing profile are sent through email.
	InvoiceEmailOptIn *bool

	// The list of email addresses to receive invoices by email for the billing profile.
	InvoiceRecipients []*string

	// The default purchase order number that will appear on the invoices generated for the billing profile.
	PoNumber *string

	// The default address where the products are shipped, or the services are being used. If a ship to is not specified for a
	// product or a subscription, then this address will be used.
	ShipTo *ProfilePropertiesShipTo

	// The address of the individual or organization that is responsible for the billing account.
	SoldTo *ProfilePropertiesSoldTo

	// Dictionary of metadata associated with the resource. Maximum key/value length supported of 256 characters. Keys/value should
	// not empty value nor null. Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Identifies the billing relationship represented by the billing profile. The billing relationship may be between
	// Microsoft, the customer, and/or a third-party.
	BillingRelationshipType *BillingRelationshipType

	// READ-ONLY; The currency in which the charges for the billing profile are billed.
	Currency *string

	// READ-ONLY; Indicates whether user has read access to the billing profile.
	HasReadAccess *bool

	// READ-ONLY; The day of the month when the invoice for the billing profile is generated.
	InvoiceDay *int32

	// READ-ONLY; The other payment terms of the billing profile.
	OtherPaymentTerms []*PaymentTerm

	// READ-ONLY; The provisioning state of the resource during a long-running operation.
	ProvisioningState *ProvisioningState

	// READ-ONLY; The billing profile spending limit.
	SpendingLimit *SpendingLimit

	// READ-ONLY; The details of billing profile spending limit.
	SpendingLimitDetails []*SpendingLimitDetails

	// READ-ONLY; The status of the billing profile.
	Status *BillingProfileStatus

	// READ-ONLY; Reason for the specified billing profile status.
	StatusReasonCode *BillingProfileStatusReasonCode

	// READ-ONLY; The system generated unique identifier for a billing profile.
	SystemID *string

	// READ-ONLY; Identifies the cloud environments that are associated with a billing profile. This is a system managed optional
	// field and gets updated as the billing profile gets associated with accounts in various
	// clouds.
	TargetClouds []*string
}

ProfileProperties - A billing profile.

func (ProfileProperties) MarshalJSON

func (p ProfileProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProfileProperties.

func (*ProfileProperties) UnmarshalJSON

func (p *ProfileProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProfileProperties.

type ProfilePropertiesBillTo

type ProfilePropertiesBillTo struct {
	// REQUIRED; Address line 1.
	AddressLine1 *string

	// REQUIRED; Country code uses ISO 3166-1 Alpha-2 format.
	Country *string

	// Address line 2.
	AddressLine2 *string

	// Address line 3.
	AddressLine3 *string

	// Address city.
	City *string

	// Company name. Optional for MCA Individual (Pay-as-you-go).
	CompanyName *string

	// Address district.
	District *string

	// Email address.
	Email *string

	// First name. Optional for MCA Enterprise.
	FirstName *string

	// Indicates if the address is incomplete.
	IsValidAddress *bool

	// Last name. Optional for MCA Enterprise.
	LastName *string

	// Middle name.
	MiddleName *string

	// Phone number.
	PhoneNumber *string

	// Postal code.
	PostalCode *string

	// Address region.
	Region *string
}

ProfilePropertiesBillTo - Billing address.

func (ProfilePropertiesBillTo) MarshalJSON

func (p ProfilePropertiesBillTo) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProfilePropertiesBillTo.

func (*ProfilePropertiesBillTo) UnmarshalJSON

func (p *ProfilePropertiesBillTo) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProfilePropertiesBillTo.

type ProfilePropertiesCurrentPaymentTerm

type ProfilePropertiesCurrentPaymentTerm struct {
	// The date on when the defined 'Payment Term' will end and is always in UTC.
	EndDate *time.Time

	// The date on when the defined 'Payment Term' will be effective from and is always in UTC.
	StartDate *time.Time

	// Represents duration in netXX format. Always in days.
	Term *string

	// READ-ONLY; Indicates payment term is the standard payment term.
	IsDefault *bool
}

ProfilePropertiesCurrentPaymentTerm - The current payment term of the billing profile.

func (ProfilePropertiesCurrentPaymentTerm) MarshalJSON

func (p ProfilePropertiesCurrentPaymentTerm) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProfilePropertiesCurrentPaymentTerm.

func (*ProfilePropertiesCurrentPaymentTerm) UnmarshalJSON

func (p *ProfilePropertiesCurrentPaymentTerm) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProfilePropertiesCurrentPaymentTerm.

type ProfilePropertiesIndirectRelationshipInfo

type ProfilePropertiesIndirectRelationshipInfo struct {
	// The billing account name of the partner or the customer for an indirect motion.
	BillingAccountName *string

	// The billing profile name of the partner or the customer for an indirect motion.
	BillingProfileName *string

	// The display name of the partner or customer for an indirect motion.
	DisplayName *string
}

ProfilePropertiesIndirectRelationshipInfo - Identifies the billing profile that is linked to another billing profile in indirect purchase motion.

func (ProfilePropertiesIndirectRelationshipInfo) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type ProfilePropertiesIndirectRelationshipInfo.

func (*ProfilePropertiesIndirectRelationshipInfo) UnmarshalJSON

func (p *ProfilePropertiesIndirectRelationshipInfo) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProfilePropertiesIndirectRelationshipInfo.

type ProfilePropertiesShipTo

type ProfilePropertiesShipTo struct {
	// REQUIRED; Address line 1.
	AddressLine1 *string

	// REQUIRED; Country code uses ISO 3166-1 Alpha-2 format.
	Country *string

	// Address line 2.
	AddressLine2 *string

	// Address line 3.
	AddressLine3 *string

	// Address city.
	City *string

	// Company name. Optional for MCA Individual (Pay-as-you-go).
	CompanyName *string

	// Address district.
	District *string

	// Email address.
	Email *string

	// First name. Optional for MCA Enterprise.
	FirstName *string

	// Indicates if the address is incomplete.
	IsValidAddress *bool

	// Last name. Optional for MCA Enterprise.
	LastName *string

	// Middle name.
	MiddleName *string

	// Phone number.
	PhoneNumber *string

	// Postal code.
	PostalCode *string

	// Address region.
	Region *string
}

ProfilePropertiesShipTo - The default address where the products are shipped, or the services are being used. If a ship to is not specified for a product or a subscription, then this address will be used.

func (ProfilePropertiesShipTo) MarshalJSON

func (p ProfilePropertiesShipTo) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProfilePropertiesShipTo.

func (*ProfilePropertiesShipTo) UnmarshalJSON

func (p *ProfilePropertiesShipTo) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProfilePropertiesShipTo.

type ProfilePropertiesSoldTo

type ProfilePropertiesSoldTo struct {
	// REQUIRED; Address line 1.
	AddressLine1 *string

	// REQUIRED; Country code uses ISO 3166-1 Alpha-2 format.
	Country *string

	// Address line 2.
	AddressLine2 *string

	// Address line 3.
	AddressLine3 *string

	// Address city.
	City *string

	// Company name. Optional for MCA Individual (Pay-as-you-go).
	CompanyName *string

	// Address district.
	District *string

	// Email address.
	Email *string

	// First name. Optional for MCA Enterprise.
	FirstName *string

	// Indicates if the address is incomplete.
	IsValidAddress *bool

	// Last name. Optional for MCA Enterprise.
	LastName *string

	// Middle name.
	MiddleName *string

	// Phone number.
	PhoneNumber *string

	// Postal code.
	PostalCode *string

	// Address region.
	Region *string
}

ProfilePropertiesSoldTo - The address of the individual or organization that is responsible for the billing account.

func (ProfilePropertiesSoldTo) MarshalJSON

func (p ProfilePropertiesSoldTo) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProfilePropertiesSoldTo.

func (*ProfilePropertiesSoldTo) UnmarshalJSON

func (p *ProfilePropertiesSoldTo) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProfilePropertiesSoldTo.

type ProfilesClient

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

ProfilesClient contains the methods for the BillingProfiles group. Don't use this type directly, use NewProfilesClient() instead.

func NewProfilesClient

func NewProfilesClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*ProfilesClient, error)

NewProfilesClient creates a new instance of ProfilesClient with the specified values.

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

func (*ProfilesClient) BeginCreateOrUpdate

func (client *ProfilesClient) BeginCreateOrUpdate(ctx context.Context, billingAccountName string, billingProfileName string, parameters Profile, options *ProfilesClientBeginCreateOrUpdateOptions) (*runtime.Poller[ProfilesClientCreateOrUpdateResponse], error)

BeginCreateOrUpdate - Creates or updates a billing profile. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement and Microsoft Partner Agreement. If you are a MCA Individual (Pay-as-you-go) customer, then please use the Azure portal experience to create the billing profile. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • parameters - A billing profile.
  • options - ProfilesClientBeginCreateOrUpdateOptions contains the optional parameters for the ProfilesClient.BeginCreateOrUpdate method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingProfilesCreateOrUpdate.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewProfilesClient().BeginCreateOrUpdate(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", armbilling.Profile{
		Properties: &armbilling.ProfileProperties{
			BillTo: &armbilling.ProfilePropertiesBillTo{
				AddressLine1:   to.Ptr("Test Address1"),
				AddressLine2:   to.Ptr("Test Address2"),
				AddressLine3:   to.Ptr("Test Address3"),
				City:           to.Ptr("City"),
				CompanyName:    to.Ptr("Contoso"),
				Country:        to.Ptr("US"),
				Email:          to.Ptr("abc@contoso.com"),
				FirstName:      to.Ptr("Test"),
				IsValidAddress: to.Ptr(true),
				LastName:       to.Ptr("User"),
				PhoneNumber:    to.Ptr("000-000-0000"),
				PostalCode:     to.Ptr("00000"),
				Region:         to.Ptr("WA"),
			},
			DisplayName: to.Ptr("Billing Profile 1"),
			EnabledAzurePlans: []*armbilling.AzurePlan{
				{
					SKUID: to.Ptr("0001"),
				},
				{
					SKUID: to.Ptr("0002"),
				}},
			InvoiceEmailOptIn: to.Ptr(true),
			PoNumber:          to.Ptr("ABC12345"),
			ShipTo: &armbilling.ProfilePropertiesShipTo{
				AddressLine1:   to.Ptr("Test Address1"),
				AddressLine2:   to.Ptr("Test Address2"),
				AddressLine3:   to.Ptr("Test Address3"),
				City:           to.Ptr("City"),
				CompanyName:    to.Ptr("Contoso"),
				Country:        to.Ptr("US"),
				Email:          to.Ptr("abc@contoso.com"),
				FirstName:      to.Ptr("Test"),
				IsValidAddress: to.Ptr(true),
				LastName:       to.Ptr("User"),
				PhoneNumber:    to.Ptr("000-000-0000"),
				PostalCode:     to.Ptr("00000"),
				Region:         to.Ptr("WA"),
			},
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.Profile = armbilling.Profile{
	// 	Name: to.Ptr("xxxx-xxxx-xxx-xxx"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 	Properties: &armbilling.ProfileProperties{
	// 		BillTo: &armbilling.ProfilePropertiesBillTo{
	// 			AddressLine1: to.Ptr("Test Address1"),
	// 			AddressLine2: to.Ptr("Test Address2"),
	// 			AddressLine3: to.Ptr("Test Address3"),
	// 			City: to.Ptr("City"),
	// 			CompanyName: to.Ptr("Contoso"),
	// 			Country: to.Ptr("US"),
	// 			Email: to.Ptr("abc@contoso.com"),
	// 			FirstName: to.Ptr("Test"),
	// 			IsValidAddress: to.Ptr(true),
	// 			LastName: to.Ptr("User"),
	// 			PhoneNumber: to.Ptr("000-000-0000"),
	// 			PostalCode: to.Ptr("00000"),
	// 			Region: to.Ptr("WA"),
	// 		},
	// 		Currency: to.Ptr("USD"),
	// 		DisplayName: to.Ptr("Billing Profile 1"),
	// 		HasReadAccess: to.Ptr(true),
	// 		InvoiceDay: to.Ptr[int32](5),
	// 		InvoiceEmailOptIn: to.Ptr(true),
	// 		PoNumber: to.Ptr("ABC12345"),
	// 		ShipTo: &armbilling.ProfilePropertiesShipTo{
	// 			AddressLine1: to.Ptr("Test Address1"),
	// 			AddressLine2: to.Ptr("Test Address2"),
	// 			AddressLine3: to.Ptr("Test Address3"),
	// 			City: to.Ptr("City"),
	// 			CompanyName: to.Ptr("Contoso"),
	// 			Country: to.Ptr("US"),
	// 			Email: to.Ptr("abc@contoso.com"),
	// 			FirstName: to.Ptr("Test"),
	// 			IsValidAddress: to.Ptr(true),
	// 			LastName: to.Ptr("User"),
	// 			PhoneNumber: to.Ptr("000-000-0000"),
	// 			PostalCode: to.Ptr("00000"),
	// 			Region: to.Ptr("WA"),
	// 		},
	// 		Status: to.Ptr(armbilling.BillingProfileStatusActive),
	// 		SystemID: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 	},
	// }
}

func (*ProfilesClient) BeginDelete

func (client *ProfilesClient) BeginDelete(ctx context.Context, billingAccountName string, billingProfileName string, options *ProfilesClientBeginDeleteOptions) (*runtime.Poller[ProfilesClientDeleteResponse], error)

BeginDelete - Deletes a billing profile. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement and Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - ProfilesClientBeginDeleteOptions contains the optional parameters for the ProfilesClient.BeginDelete method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingProfilesDelete.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewProfilesClient().BeginDelete(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	_, err = poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %v", err)
	}
}

func (*ProfilesClient) Get

func (client *ProfilesClient) Get(ctx context.Context, billingAccountName string, billingProfileName string, options *ProfilesClientGetOptions) (ProfilesClientGetResponse, error)

Get - Gets a billing profile by its ID. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement and Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - ProfilesClientGetOptions contains the optional parameters for the ProfilesClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingProfilesGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewProfilesClient().Get(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", 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.Profile = armbilling.Profile{
	// 	Name: to.Ptr("xxxx-xxxx-xxx-xxx"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 	Properties: &armbilling.ProfileProperties{
	// 		BillTo: &armbilling.ProfilePropertiesBillTo{
	// 			AddressLine1: to.Ptr("Test Address1"),
	// 			AddressLine2: to.Ptr("Test Address2"),
	// 			AddressLine3: to.Ptr("Test Address3"),
	// 			City: to.Ptr("City"),
	// 			CompanyName: to.Ptr("Contoso"),
	// 			Country: to.Ptr("US"),
	// 			Email: to.Ptr("abc@contoso.com"),
	// 			FirstName: to.Ptr("Test"),
	// 			IsValidAddress: to.Ptr(true),
	// 			LastName: to.Ptr("User"),
	// 			PhoneNumber: to.Ptr("000-000-0000"),
	// 			PostalCode: to.Ptr("00000"),
	// 			Region: to.Ptr("WA"),
	// 		},
	// 		Currency: to.Ptr("USD"),
	// 		DisplayName: to.Ptr("Billing Profile 1"),
	// 		HasReadAccess: to.Ptr(true),
	// 		InvoiceDay: to.Ptr[int32](5),
	// 		InvoiceEmailOptIn: to.Ptr(true),
	// 		InvoiceRecipients: []*string{
	// 			to.Ptr("abc@contoso.com"),
	// 			to.Ptr("xyz@contoso.com")},
	// 			PoNumber: to.Ptr("ABC12345"),
	// 			ShipTo: &armbilling.ProfilePropertiesShipTo{
	// 				AddressLine1: to.Ptr("Test Address1"),
	// 				AddressLine2: to.Ptr("Test Address2"),
	// 				AddressLine3: to.Ptr("Test Address3"),
	// 				City: to.Ptr("City"),
	// 				CompanyName: to.Ptr("Contoso"),
	// 				Country: to.Ptr("US"),
	// 				Email: to.Ptr("abc@contoso.com"),
	// 				FirstName: to.Ptr("Test"),
	// 				IsValidAddress: to.Ptr(true),
	// 				LastName: to.Ptr("User"),
	// 				PhoneNumber: to.Ptr("000-000-0000"),
	// 				PostalCode: to.Ptr("00000"),
	// 				Region: to.Ptr("WA"),
	// 			},
	// 			SoldTo: &armbilling.ProfilePropertiesSoldTo{
	// 				AddressLine1: to.Ptr("Test Address1"),
	// 				AddressLine2: to.Ptr("Test Address2"),
	// 				AddressLine3: to.Ptr("Test Address3"),
	// 				City: to.Ptr("City"),
	// 				CompanyName: to.Ptr("Contoso"),
	// 				Country: to.Ptr("US"),
	// 				Email: to.Ptr("abc@contoso.com"),
	// 				FirstName: to.Ptr("Test"),
	// 				IsValidAddress: to.Ptr(true),
	// 				LastName: to.Ptr("User"),
	// 				PhoneNumber: to.Ptr("000-000-0000"),
	// 				PostalCode: to.Ptr("00000"),
	// 				Region: to.Ptr("WA"),
	// 			},
	// 			SpendingLimit: to.Ptr(armbilling.SpendingLimitOn),
	// 			SpendingLimitDetails: []*armbilling.SpendingLimitDetails{
	// 				{
	// 					Type: to.Ptr(armbilling.SpendingLimitTypeFreeAccount),
	// 					Amount: to.Ptr[float32](200),
	// 					Currency: to.Ptr("USD"),
	// 					EndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-01-01T00:00:00.000Z"); return t}()),
	// 					StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-01-01T00:00:00.000Z"); return t}()),
	// 					Status: to.Ptr(armbilling.SpendingLimitStatusActive),
	// 			}},
	// 			Status: to.Ptr(armbilling.BillingProfileStatusWarned),
	// 			StatusReasonCode: to.Ptr(armbilling.BillingProfileStatusReasonCodePastDue),
	// 			SystemID: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 		},
	// 	}
}

func (*ProfilesClient) NewListByBillingAccountPager

func (client *ProfilesClient) NewListByBillingAccountPager(billingAccountName string, options *ProfilesClientListByBillingAccountOptions) *runtime.Pager[ProfilesClientListByBillingAccountResponse]

NewListByBillingAccountPager - Lists the billing profiles that a user has access to. The operation is supported for billing accounts with agreement of type Microsoft Customer Agreement and Microsoft Partner Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - ProfilesClientListByBillingAccountOptions contains the optional parameters for the ProfilesClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingProfilesListByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewProfilesClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.ProfilesClientListByBillingAccountOptions{IncludeDeleted: nil,
		Filter:  nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.ProfileListResult = armbilling.ProfileListResult{
		// 	Value: []*armbilling.Profile{
		// 		{
		// 			Name: to.Ptr("xxxx-xxxx-xxx-xxx"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 			Properties: &armbilling.ProfileProperties{
		// 				BillTo: &armbilling.ProfilePropertiesBillTo{
		// 					AddressLine1: to.Ptr("Test Address1"),
		// 					AddressLine2: to.Ptr("Test Address2"),
		// 					AddressLine3: to.Ptr("Test Address3"),
		// 					City: to.Ptr("City"),
		// 					CompanyName: to.Ptr("Contoso"),
		// 					Country: to.Ptr("US"),
		// 					Email: to.Ptr("abc@contoso.com"),
		// 					FirstName: to.Ptr("Test"),
		// 					IsValidAddress: to.Ptr(true),
		// 					LastName: to.Ptr("User"),
		// 					PhoneNumber: to.Ptr("000-000-0000"),
		// 					PostalCode: to.Ptr("00000"),
		// 					Region: to.Ptr("WA"),
		// 				},
		// 				Currency: to.Ptr("USD"),
		// 				DisplayName: to.Ptr("Billing Profile 1"),
		// 				HasReadAccess: to.Ptr(true),
		// 				InvoiceDay: to.Ptr[int32](5),
		// 				InvoiceEmailOptIn: to.Ptr(true),
		// 				InvoiceRecipients: []*string{
		// 					to.Ptr("abc@contoso.com"),
		// 					to.Ptr("xyz@contoso.com")},
		// 					PoNumber: to.Ptr("ABC12345"),
		// 					ShipTo: &armbilling.ProfilePropertiesShipTo{
		// 						AddressLine1: to.Ptr("Test Address1"),
		// 						AddressLine2: to.Ptr("Test Address2"),
		// 						AddressLine3: to.Ptr("Test Address3"),
		// 						City: to.Ptr("City"),
		// 						CompanyName: to.Ptr("Contoso"),
		// 						Country: to.Ptr("US"),
		// 						Email: to.Ptr("abc@contoso.com"),
		// 						FirstName: to.Ptr("Test"),
		// 						IsValidAddress: to.Ptr(true),
		// 						LastName: to.Ptr("User"),
		// 						PhoneNumber: to.Ptr("000-000-0000"),
		// 						PostalCode: to.Ptr("00000"),
		// 						Region: to.Ptr("WA"),
		// 					},
		// 					SoldTo: &armbilling.ProfilePropertiesSoldTo{
		// 						AddressLine1: to.Ptr("Test Address1"),
		// 						AddressLine2: to.Ptr("Test Address2"),
		// 						AddressLine3: to.Ptr("Test Address3"),
		// 						City: to.Ptr("City"),
		// 						CompanyName: to.Ptr("Contoso"),
		// 						Country: to.Ptr("US"),
		// 						Email: to.Ptr("abc@contoso.com"),
		// 						FirstName: to.Ptr("Test"),
		// 						IsValidAddress: to.Ptr(true),
		// 						LastName: to.Ptr("User"),
		// 						PhoneNumber: to.Ptr("000-000-0000"),
		// 						PostalCode: to.Ptr("00000"),
		// 						Region: to.Ptr("WA"),
		// 					},
		// 					SpendingLimit: to.Ptr(armbilling.SpendingLimitOn),
		// 					SpendingLimitDetails: []*armbilling.SpendingLimitDetails{
		// 						{
		// 							Type: to.Ptr(armbilling.SpendingLimitTypeFreeAccount),
		// 							Amount: to.Ptr[float32](200),
		// 							Currency: to.Ptr("USD"),
		// 							EndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2019-01-01T00:00:00.000Z"); return t}()),
		// 							StartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-01-01T00:00:00.000Z"); return t}()),
		// 							Status: to.Ptr(armbilling.SpendingLimitStatusActive),
		// 					}},
		// 					Status: to.Ptr(armbilling.BillingProfileStatusWarned),
		// 					StatusReasonCode: to.Ptr(armbilling.BillingProfileStatusReasonCodePastDue),
		// 					SystemID: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 				},
		// 			},
		// 			{
		// 				Name: to.Ptr("yyyy-yyyy-yyy-yyy"),
		// 				Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles"),
		// 				ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/yyyy-yyyy-yyy-yyy"),
		// 				Properties: &armbilling.ProfileProperties{
		// 					BillTo: &armbilling.ProfilePropertiesBillTo{
		// 						AddressLine1: to.Ptr("Test Address1"),
		// 						AddressLine2: to.Ptr("Test Address2"),
		// 						AddressLine3: to.Ptr("Test Address3"),
		// 						City: to.Ptr("City"),
		// 						CompanyName: to.Ptr("Contoso"),
		// 						Country: to.Ptr("US"),
		// 						Email: to.Ptr("abc@contoso.com"),
		// 						FirstName: to.Ptr("Test"),
		// 						IsValidAddress: to.Ptr(true),
		// 						LastName: to.Ptr("User"),
		// 						PhoneNumber: to.Ptr("000-000-0000"),
		// 						PostalCode: to.Ptr("00000"),
		// 						Region: to.Ptr("WA"),
		// 					},
		// 					Currency: to.Ptr("USD"),
		// 					DisplayName: to.Ptr("Billing Profile 2"),
		// 					HasReadAccess: to.Ptr(true),
		// 					InvoiceDay: to.Ptr[int32](5),
		// 					InvoiceEmailOptIn: to.Ptr(true),
		// 					InvoiceRecipients: []*string{
		// 						to.Ptr("abc@contoso.com"),
		// 						to.Ptr("xyz@contoso.com")},
		// 						PoNumber: to.Ptr("ABC12345"),
		// 						ShipTo: &armbilling.ProfilePropertiesShipTo{
		// 							AddressLine1: to.Ptr("Test Address1"),
		// 							AddressLine2: to.Ptr("Test Address2"),
		// 							AddressLine3: to.Ptr("Test Address3"),
		// 							City: to.Ptr("City"),
		// 							CompanyName: to.Ptr("Contoso"),
		// 							Country: to.Ptr("US"),
		// 							Email: to.Ptr("abc@contoso.com"),
		// 							FirstName: to.Ptr("Test"),
		// 							IsValidAddress: to.Ptr(true),
		// 							LastName: to.Ptr("User"),
		// 							PhoneNumber: to.Ptr("000-000-0000"),
		// 							PostalCode: to.Ptr("00000"),
		// 							Region: to.Ptr("WA"),
		// 						},
		// 						SoldTo: &armbilling.ProfilePropertiesSoldTo{
		// 							AddressLine1: to.Ptr("Test Address1"),
		// 							AddressLine2: to.Ptr("Test Address2"),
		// 							AddressLine3: to.Ptr("Test Address3"),
		// 							City: to.Ptr("City"),
		// 							CompanyName: to.Ptr("Contoso"),
		// 							Country: to.Ptr("US"),
		// 							Email: to.Ptr("abc@contoso.com"),
		// 							FirstName: to.Ptr("Test"),
		// 							IsValidAddress: to.Ptr(true),
		// 							LastName: to.Ptr("User"),
		// 							PhoneNumber: to.Ptr("000-000-0000"),
		// 							PostalCode: to.Ptr("00000"),
		// 							Region: to.Ptr("WA"),
		// 						},
		// 						Status: to.Ptr(armbilling.BillingProfileStatusUnderReview),
		// 						StatusReasonCode: to.Ptr(armbilling.BillingProfileStatusReasonCodeUnusualActivity),
		// 						SystemID: to.Ptr("22222222-2222-2222-2222-222222222222"),
		// 					},
		// 				},
		// 				{
		// 					Name: to.Ptr("zzzz-zzzz-zzz-zzz"),
		// 					Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles"),
		// 					ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/zzzz-zzzz-zzz-zzz"),
		// 					Properties: &armbilling.ProfileProperties{
		// 						BillTo: &armbilling.ProfilePropertiesBillTo{
		// 							AddressLine1: to.Ptr("Test Address1"),
		// 							AddressLine2: to.Ptr("Test Address2"),
		// 							AddressLine3: to.Ptr("Test Address3"),
		// 							City: to.Ptr("City"),
		// 							CompanyName: to.Ptr("Contoso"),
		// 							Country: to.Ptr("US"),
		// 							Email: to.Ptr("abc@contoso.com"),
		// 							FirstName: to.Ptr("Test"),
		// 							IsValidAddress: to.Ptr(true),
		// 							LastName: to.Ptr("User"),
		// 							PhoneNumber: to.Ptr("000-000-0000"),
		// 							PostalCode: to.Ptr("00000"),
		// 							Region: to.Ptr("WA"),
		// 						},
		// 						Currency: to.Ptr("USD"),
		// 						DisplayName: to.Ptr("Billing Profile 1"),
		// 						HasReadAccess: to.Ptr(true),
		// 						InvoiceDay: to.Ptr[int32](5),
		// 						InvoiceEmailOptIn: to.Ptr(true),
		// 						InvoiceRecipients: []*string{
		// 							to.Ptr("abc@contoso.com"),
		// 							to.Ptr("xyz@contoso.com")},
		// 							PoNumber: to.Ptr("ABC12345"),
		// 							ShipTo: &armbilling.ProfilePropertiesShipTo{
		// 								AddressLine1: to.Ptr("Test Address1"),
		// 								AddressLine2: to.Ptr("Test Address2"),
		// 								AddressLine3: to.Ptr("Test Address3"),
		// 								City: to.Ptr("City"),
		// 								CompanyName: to.Ptr("Contoso"),
		// 								Country: to.Ptr("US"),
		// 								Email: to.Ptr("abc@contoso.com"),
		// 								FirstName: to.Ptr("Test"),
		// 								IsValidAddress: to.Ptr(true),
		// 								LastName: to.Ptr("User"),
		// 								PhoneNumber: to.Ptr("000-000-0000"),
		// 								PostalCode: to.Ptr("00000"),
		// 								Region: to.Ptr("WA"),
		// 							},
		// 							SoldTo: &armbilling.ProfilePropertiesSoldTo{
		// 								AddressLine1: to.Ptr("Test Address1"),
		// 								AddressLine2: to.Ptr("Test Address2"),
		// 								AddressLine3: to.Ptr("Test Address3"),
		// 								City: to.Ptr("City"),
		// 								CompanyName: to.Ptr("Contoso"),
		// 								Country: to.Ptr("US"),
		// 								Email: to.Ptr("abc@contoso.com"),
		// 								FirstName: to.Ptr("Test"),
		// 								IsValidAddress: to.Ptr(true),
		// 								LastName: to.Ptr("User"),
		// 								PhoneNumber: to.Ptr("000-000-0000"),
		// 								PostalCode: to.Ptr("00000"),
		// 								Region: to.Ptr("WA"),
		// 							},
		// 							Status: to.Ptr(armbilling.BillingProfileStatusActive),
		// 							SystemID: to.Ptr("33333333-3333-3333-3333-333333333333"),
		// 						},
		// 				}},
		// 			}
	}
}

func (*ProfilesClient) ValidateDeleteEligibility

func (client *ProfilesClient) ValidateDeleteEligibility(ctx context.Context, billingAccountName string, billingProfileName string, options *ProfilesClientValidateDeleteEligibilityOptions) (ProfilesClientValidateDeleteEligibilityResponse, error)

ValidateDeleteEligibility - Validates if the billing profile can be deleted. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement and Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - ProfilesClientValidateDeleteEligibilityOptions contains the optional parameters for the ProfilesClient.ValidateDeleteEligibility method.
Example (BillingProfilesValidateDeleteEligibilityFailure)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingProfilesValidateDeleteEligibilityFailure.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewProfilesClient().ValidateDeleteEligibility(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", 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.DeleteBillingProfileEligibilityResult = armbilling.DeleteBillingProfileEligibilityResult{
	// 	EligibilityDetails: []*armbilling.DeleteBillingProfileEligibilityDetail{
	// 		{
	// 			Code: to.Ptr(armbilling.DeleteBillingProfileEligibilityCodeActiveBillingSubscriptions),
	// 			Message: to.Ptr("There are active or disabled subscriptions assigned to the invoice section. Either move the subscription to another invoice section or delete the subscriptions and then try deleting the invoice section."),
	// 		},
	// 		{
	// 			Code: to.Ptr(armbilling.DeleteBillingProfileEligibilityCodeLastBillingProfile),
	// 			Message: to.Ptr("Billing profile cannot be deleted as this is the only billing profile in this billing account."),
	// 		},
	// 		{
	// 			Code: to.Ptr(armbilling.DeleteBillingProfileEligibilityCodeOutstandingCharges),
	// 			Message: to.Ptr("Billing Profile cannot be deleted as there are outstanding charges on this billing profile."),
	// 		},
	// 		{
	// 			Code: to.Ptr(armbilling.DeleteBillingProfileEligibilityCodePendingCharges),
	// 			Message: to.Ptr("Billing Profile cannot be deleted as there are pending charges accumulating on this billing profile."),
	// 		},
	// 		{
	// 			Code: to.Ptr(armbilling.DeleteBillingProfileEligibilityCodeReservedInstances),
	// 			Message: to.Ptr("Billing Profile cannot be deleted as there are reserved assets with a billing plan."),
	// 	}},
	// 	EligibilityStatus: to.Ptr(armbilling.DeleteBillingProfileEligibilityStatusNotAllowed),
	// }
}
Example (BillingProfilesValidateDeleteEligibilitySuccess)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingProfilesValidateDeleteEligibilitySuccess.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewProfilesClient().ValidateDeleteEligibility(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", 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.DeleteBillingProfileEligibilityResult = armbilling.DeleteBillingProfileEligibilityResult{
	// }
}

type ProfilesClientBeginCreateOrUpdateOptions

type ProfilesClientBeginCreateOrUpdateOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

ProfilesClientBeginCreateOrUpdateOptions contains the optional parameters for the ProfilesClient.BeginCreateOrUpdate method.

type ProfilesClientBeginDeleteOptions

type ProfilesClientBeginDeleteOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

ProfilesClientBeginDeleteOptions contains the optional parameters for the ProfilesClient.BeginDelete method.

type ProfilesClientCreateOrUpdateResponse

type ProfilesClientCreateOrUpdateResponse struct {
	// A billing profile.
	Profile
}

ProfilesClientCreateOrUpdateResponse contains the response from method ProfilesClient.BeginCreateOrUpdate.

type ProfilesClientDeleteResponse

type ProfilesClientDeleteResponse struct {
}

ProfilesClientDeleteResponse contains the response from method ProfilesClient.BeginDelete.

type ProfilesClientGetOptions

type ProfilesClientGetOptions struct {
}

ProfilesClientGetOptions contains the optional parameters for the ProfilesClient.Get method.

type ProfilesClientGetResponse

type ProfilesClientGetResponse struct {
	// A billing profile.
	Profile
}

ProfilesClientGetResponse contains the response from method ProfilesClient.Get.

type ProfilesClientListByBillingAccountOptions

type ProfilesClientListByBillingAccountOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// Can be used to get deleted billing profiles.
	IncludeDeleted *bool

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

ProfilesClientListByBillingAccountOptions contains the optional parameters for the ProfilesClient.NewListByBillingAccountPager method.

type ProfilesClientListByBillingAccountResponse

type ProfilesClientListByBillingAccountResponse struct {
	// A container for a list of resources
	ProfileListResult
}

ProfilesClientListByBillingAccountResponse contains the response from method ProfilesClient.NewListByBillingAccountPager.

type ProfilesClientValidateDeleteEligibilityOptions

type ProfilesClientValidateDeleteEligibilityOptions struct {
}

ProfilesClientValidateDeleteEligibilityOptions contains the optional parameters for the ProfilesClient.ValidateDeleteEligibility method.

type ProfilesClientValidateDeleteEligibilityResponse

type ProfilesClientValidateDeleteEligibilityResponse struct {
	// Eligibility to delete a billing profile result.
	DeleteBillingProfileEligibilityResult
}

ProfilesClientValidateDeleteEligibilityResponse contains the response from method ProfilesClient.ValidateDeleteEligibility.

type Property

type Property struct {
	// A billing property.
	Properties *PropertyProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

Property - A billing property.

func (Property) MarshalJSON

func (p Property) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Property.

func (*Property) UnmarshalJSON

func (p *Property) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Property.

type PropertyClient

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

PropertyClient contains the methods for the BillingProperty group. Don't use this type directly, use NewPropertyClient() instead.

func NewPropertyClient

func NewPropertyClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*PropertyClient, error)

NewPropertyClient creates a new instance of PropertyClient with the specified values.

  • subscriptionID - The ID that uniquely identifies a billing subscription.
  • credential - used to authorize requests. Usually a credential from azidentity.
  • options - pass nil to accept the default values.

func (*PropertyClient) Get

Get - Gets the billing properties for a subscription If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • options - PropertyClientGetOptions contains the optional parameters for the PropertyClient.Get method.
Example (BillingPropertyGetMca)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingPropertyGetMCA.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPropertyClient().Get(ctx, &armbilling.PropertyClientGetOptions{IncludeBillingCountry: nil,
		IncludeTransitionStatus: 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.Property = armbilling.Property{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingProperty"),
	// 	ID: to.Ptr("/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Billing/billingProperty/default"),
	// 	Properties: &armbilling.PropertyProperties{
	// 		BillingAccountAgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftCustomerAgreement),
	// 		BillingAccountDisplayName: to.Ptr("My Account"),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000"),
	// 		BillingAccountSoldToCountry: to.Ptr("US"),
	// 		BillingAccountType: to.Ptr(armbilling.AccountTypeBusiness),
	// 		BillingProfileDisplayName: to.Ptr("Contoso"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000/billingProfiles/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		BillingProfileSpendingLimit: to.Ptr(armbilling.SpendingLimitOff),
	// 		BillingProfileStatus: to.Ptr(armbilling.BillingProfileStatusActive),
	// 		CostCenter: to.Ptr("1010"),
	// 		InvoiceSectionDisplayName: to.Ptr("Operations"),
	// 		InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000/billingProfiles/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
	// 		SKUDescription: to.Ptr("Microsoft Azure Plan"),
	// 		SKUID: to.Ptr("0001"),
	// 		SubscriptionBillingStatus: to.Ptr(armbilling.BillingSubscriptionStatusActive),
	// 		SubscriptionBillingStatusDetails: []*armbilling.SubscriptionStatusDetails{
	// 			{
	// 				EffectiveDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-01T17:32:28.000Z"); return t}()),
	// 				Reason: to.Ptr(armbilling.SubscriptionStatusReasonCancelled),
	// 		}},
	// 		SubscriptionBillingType: to.Ptr(armbilling.SubscriptionBillingTypeFree),
	// 		SubscriptionWorkloadType: to.Ptr(armbilling.SubscriptionWorkloadTypeProduction),
	// 	},
	// }
}
Example (BillingPropertyGetMosp)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingPropertyGetMOSP.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPropertyClient().Get(ctx, &armbilling.PropertyClientGetOptions{IncludeBillingCountry: nil,
		IncludeTransitionStatus: 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.Property = armbilling.Property{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingProperty"),
	// 	ID: to.Ptr("/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Billing/billingProperty/default"),
	// 	Properties: &armbilling.PropertyProperties{
	// 		BillingAccountAgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftOnlineServicesProgram),
	// 		BillingAccountDisplayName: to.Ptr("My Account"),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000"),
	// 		BillingAccountSoldToCountry: to.Ptr("US"),
	// 		BillingAccountType: to.Ptr(armbilling.AccountTypeIndividual),
	// 		SubscriptionBillingType: to.Ptr(armbilling.SubscriptionBillingTypeFree),
	// 		SubscriptionServiceUsageAddress: &armbilling.PropertyPropertiesSubscriptionServiceUsageAddress{
	// 			AddressLine1: to.Ptr("Address line 1"),
	// 			AddressLine2: to.Ptr("Address line 2"),
	// 			City: to.Ptr("City"),
	// 			Country: to.Ptr("US"),
	// 			FirstName: to.Ptr("Jenny"),
	// 			LastName: to.Ptr("Doe"),
	// 			MiddleName: to.Ptr("Ann"),
	// 			PostalCode: to.Ptr("12345"),
	// 			Region: to.Ptr("State"),
	// 		},
	// 		SubscriptionWorkloadType: to.Ptr(armbilling.SubscriptionWorkloadTypeProduction),
	// 	},
	// }
}
Example (BillingPropertyGetMpa)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingPropertyGetMPA.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPropertyClient().Get(ctx, &armbilling.PropertyClientGetOptions{IncludeBillingCountry: nil,
		IncludeTransitionStatus: 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.Property = armbilling.Property{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingProperty"),
	// 	ID: to.Ptr("/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Billing/billingProperty/default"),
	// 	Properties: &armbilling.PropertyProperties{
	// 		BillingAccountAgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftCustomerAgreement),
	// 		BillingAccountDisplayName: to.Ptr("My Account"),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000"),
	// 		BillingAccountSoldToCountry: to.Ptr("US"),
	// 		BillingAccountType: to.Ptr(armbilling.AccountTypeBusiness),
	// 		BillingProfileDisplayName: to.Ptr("Contoso"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000/billingProfiles/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		BillingProfileSpendingLimit: to.Ptr(armbilling.SpendingLimitOff),
	// 		BillingProfileStatus: to.Ptr(armbilling.BillingProfileStatusActive),
	// 		CostCenter: to.Ptr("1010"),
	// 		CustomerDisplayName: to.Ptr("Operations"),
	// 		CustomerID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000/billingProfiles/billingProfiles/xxxx-xxxx-xxx-xxx/customers/yyyy-yyyy-yyy-yyy"),
	// 		SKUDescription: to.Ptr("Microsoft Azure Plan"),
	// 		SKUID: to.Ptr("0001"),
	// 		SubscriptionBillingStatus: to.Ptr(armbilling.BillingSubscriptionStatusActive),
	// 		SubscriptionBillingStatusDetails: []*armbilling.SubscriptionStatusDetails{
	// 			{
	// 				EffectiveDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-01T17:32:28.000Z"); return t}()),
	// 				Reason: to.Ptr(armbilling.SubscriptionStatusReasonCancelled),
	// 		}},
	// 		SubscriptionBillingType: to.Ptr(armbilling.SubscriptionBillingTypeFree),
	// 		SubscriptionWorkloadType: to.Ptr(armbilling.SubscriptionWorkloadTypeProduction),
	// 	},
	// }
}

func (*PropertyClient) Update

Update - Updates the billing property of a subscription. Currently, cost center can be updated for billing accounts with agreement type Microsoft Customer Agreement and subscription service usage address can be updated for billing accounts with agreement type Microsoft Online Service Program. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • parameters - A billing property.
  • options - PropertyClientUpdateOptions contains the optional parameters for the PropertyClient.Update method.
Example (BillingPropertyPatchCostCenter)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingPropertyPatchCostCenter.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPropertyClient().Update(ctx, armbilling.Property{
		Properties: &armbilling.PropertyProperties{
			CostCenter: to.Ptr("1010"),
		},
	}, 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.Property = armbilling.Property{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingProperty"),
	// 	ID: to.Ptr("/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Billing/billingProperty/default"),
	// 	Properties: &armbilling.PropertyProperties{
	// 		BillingAccountAgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftCustomerAgreement),
	// 		BillingAccountDisplayName: to.Ptr("My Account"),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000"),
	// 		BillingAccountSoldToCountry: to.Ptr("US"),
	// 		BillingAccountType: to.Ptr(armbilling.AccountTypeBusiness),
	// 		BillingProfileDisplayName: to.Ptr("Contoso"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000/billingProfiles/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		BillingProfileSpendingLimit: to.Ptr(armbilling.SpendingLimitOff),
	// 		BillingProfileStatus: to.Ptr(armbilling.BillingProfileStatusActive),
	// 		CostCenter: to.Ptr("1010"),
	// 		InvoiceSectionDisplayName: to.Ptr("Operations"),
	// 		InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000/billingProfiles/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
	// 		SKUDescription: to.Ptr("Microsoft Azure Plan"),
	// 		SKUID: to.Ptr("0001"),
	// 		SubscriptionBillingStatus: to.Ptr(armbilling.BillingSubscriptionStatusActive),
	// 		SubscriptionBillingStatusDetails: []*armbilling.SubscriptionStatusDetails{
	// 			{
	// 				EffectiveDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-01T17:32:28.000Z"); return t}()),
	// 				Reason: to.Ptr(armbilling.SubscriptionStatusReasonCancelled),
	// 		}},
	// 		SubscriptionBillingType: to.Ptr(armbilling.SubscriptionBillingTypeFree),
	// 		SubscriptionWorkloadType: to.Ptr(armbilling.SubscriptionWorkloadTypeProduction),
	// 	},
	// }
}
Example (BillingPropertyPatchSubscriptionServiceUsageAddress)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingPropertyPatchSubscriptionServiceUsageAddress.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewPropertyClient().Update(ctx, armbilling.Property{
		Properties: &armbilling.PropertyProperties{
			SubscriptionServiceUsageAddress: &armbilling.PropertyPropertiesSubscriptionServiceUsageAddress{
				AddressLine1: to.Ptr("Address line 1"),
				AddressLine2: to.Ptr("Address line 2"),
				City:         to.Ptr("City"),
				Country:      to.Ptr("US"),
				FirstName:    to.Ptr("Jenny"),
				LastName:     to.Ptr("Doe"),
				MiddleName:   to.Ptr("Ann"),
				PostalCode:   to.Ptr("12345"),
				Region:       to.Ptr("State"),
			},
		},
	}, 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.Property = armbilling.Property{
	// 	Name: to.Ptr("default"),
	// 	Type: to.Ptr("Microsoft.Billing/billingProperty"),
	// 	ID: to.Ptr("/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Billing/billingProperty/default"),
	// 	Properties: &armbilling.PropertyProperties{
	// 		BillingAccountAgreementType: to.Ptr(armbilling.AgreementTypeMicrosoftOnlineServicesProgram),
	// 		BillingAccountDisplayName: to.Ptr("My Account"),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000"),
	// 		BillingAccountSoldToCountry: to.Ptr("US"),
	// 		BillingAccountType: to.Ptr(armbilling.AccountTypeIndividual),
	// 		SubscriptionBillingType: to.Ptr(armbilling.SubscriptionBillingTypeFree),
	// 		SubscriptionServiceUsageAddress: &armbilling.PropertyPropertiesSubscriptionServiceUsageAddress{
	// 			AddressLine1: to.Ptr("Address line 1"),
	// 			AddressLine2: to.Ptr("Address line 2"),
	// 			City: to.Ptr("City"),
	// 			Country: to.Ptr("US"),
	// 			FirstName: to.Ptr("Jenny"),
	// 			LastName: to.Ptr("Doe"),
	// 			MiddleName: to.Ptr("Ann"),
	// 			PostalCode: to.Ptr("12345"),
	// 			Region: to.Ptr("State"),
	// 		},
	// 		SubscriptionWorkloadType: to.Ptr(armbilling.SubscriptionWorkloadTypeProduction),
	// 	},
	// }
}

type PropertyClientGetOptions

type PropertyClientGetOptions struct {
	// A flag that specifies whether or not to include billing country.
	IncludeBillingCountry *bool

	// A flag that specifies whether or not to include transition status for billing accounts with agreement type Microsoft Customer
	// Agreement.
	IncludeTransitionStatus *bool
}

PropertyClientGetOptions contains the optional parameters for the PropertyClient.Get method.

type PropertyClientGetResponse

type PropertyClientGetResponse struct {
	// A billing property.
	Property
}

PropertyClientGetResponse contains the response from method PropertyClient.Get.

type PropertyClientUpdateOptions

type PropertyClientUpdateOptions struct {
}

PropertyClientUpdateOptions contains the optional parameters for the PropertyClient.Update method.

type PropertyClientUpdateResponse

type PropertyClientUpdateResponse struct {
	// A billing property.
	Property
}

PropertyClientUpdateResponse contains the response from method PropertyClient.Update.

type PropertyProperties

type PropertyProperties struct {
	// The cost center applied to the subscription. Available for agreement type Microsoft Customer Agreement and Microsoft Partner
	// Agreement. This property can be updated via patch.
	CostCenter *string

	// The enrollment details for the subscription. Available for billing accounts with agreement type Enterprise Agreement.
	EnrollmentDetails *PropertyPropertiesEnrollmentDetails

	// The address of the individual or organization where service subscription is being used. Available for agreement type Microsoft
	// Online Services Program. This property can be updated via patch.
	SubscriptionServiceUsageAddress *PropertyPropertiesSubscriptionServiceUsageAddress

	// READ-ONLY; Notification email address for legacy account. Available for agreement type Microsoft Online Services Program.
	AccountAdminNotificationEmailAddress *string

	// READ-ONLY; The type of agreement.
	BillingAccountAgreementType *AgreementType

	// READ-ONLY; The name of the billing account.
	BillingAccountDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies a billing account.
	BillingAccountID *string

	// READ-ONLY; The country of the individual or organization that is responsible for the billing account.
	BillingAccountSoldToCountry *string

	// READ-ONLY; The current status of the billing account.
	BillingAccountStatus *AccountStatus

	// READ-ONLY; Reason for the specified billing account status.
	BillingAccountStatusReasonCode *BillingAccountStatusReasonCode

	// READ-ONLY; The tier of the account.
	BillingAccountSubType *AccountSubType

	// READ-ONLY; The type of customer.
	BillingAccountType *AccountType

	// READ-ONLY; The billing currency for the subscription. Available for billing accounts with agreement type Enterprise Agreement
	BillingCurrency *string

	// READ-ONLY; The name of the billing profile.
	BillingProfileDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies a billing profile.
	BillingProfileID *string

	// READ-ONLY; The payment method family of the primary payment method for the billing profile.
	BillingProfilePaymentMethodFamily *PaymentMethodFamily

	// READ-ONLY; The payment method type of the primary payment method for the billing profile.
	BillingProfilePaymentMethodType *string

	// READ-ONLY; The billing profile spending limit.
	BillingProfileSpendingLimit *SpendingLimit

	// READ-ONLY; The details of billing profile spending limit.
	BillingProfileSpendingLimitDetails []*SpendingLimitDetails

	// READ-ONLY; The status of the billing profile.
	BillingProfileStatus *BillingProfileStatus

	// READ-ONLY; Reason for the specified billing profile status.
	BillingProfileStatusReasonCode *BillingProfileStatusReasonCode

	// READ-ONLY; The Azure AD tenant ID of the billing account for the subscription.
	BillingTenantID *string

	// READ-ONLY; The name of the customer.
	CustomerDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies a customer.
	CustomerID *string

	// READ-ONLY; Identifies the status of an customer. This is an upcoming property that will be populated in the future.
	CustomerStatus *CustomerStatus

	// READ-ONLY; The name of the invoice section.
	InvoiceSectionDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies an invoice section.
	InvoiceSectionID *string

	// READ-ONLY; Identifies the status of an invoice section.
	InvoiceSectionStatus *InvoiceSectionState

	// READ-ONLY; Reason for the specified invoice section status.
	InvoiceSectionStatusReasonCode *InvoiceSectionStateReasonCode

	// READ-ONLY; Indicates whether user is the account admin.
	IsAccountAdmin *bool

	// READ-ONLY; Specifies if the billing account for the subscription is transitioned from a Microsoft Online Service Program
	// to a Microsoft Customer Agreement (MCA) account. Will be present and value will be true if
	// its a transitioned billing account.
	IsTransitionedBillingAccount *bool

	// READ-ONLY; The ID that uniquely identifies a product.
	ProductID *string

	// READ-ONLY; The ID that uniquely identifies a product.
	ProductName *string

	// READ-ONLY; The sku description.
	SKUDescription *string

	// READ-ONLY; The ID that uniquely identifies a sku.
	SKUID *string

	// READ-ONLY; The subscription status.
	SubscriptionBillingStatus *BillingSubscriptionStatus

	// READ-ONLY; The reason codes for the subscription status.
	SubscriptionBillingStatusDetails []*SubscriptionStatusDetails

	// READ-ONLY; The type of billing subscription.
	SubscriptionBillingType *SubscriptionBillingType

	// READ-ONLY; The Azure workload type of the subscription.
	SubscriptionWorkloadType *SubscriptionWorkloadType
}

PropertyProperties - A billing property.

func (PropertyProperties) MarshalJSON

func (p PropertyProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PropertyProperties.

func (*PropertyProperties) UnmarshalJSON

func (p *PropertyProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PropertyProperties.

type PropertyPropertiesEnrollmentDetails

type PropertyPropertiesEnrollmentDetails struct {
	// The name of the department
	DepartmentDisplayName *string

	// The ID that uniquely identifies the department.
	DepartmentID *string

	// The name of the enrollment account.
	EnrollmentAccountDisplayName *string

	// The ID that uniquely identifies an enrollment account.
	EnrollmentAccountID *string

	// The status of the enrollment account.
	EnrollmentAccountStatus *string
}

PropertyPropertiesEnrollmentDetails - The enrollment details for the subscription. Available for billing accounts with agreement type Enterprise Agreement.

func (PropertyPropertiesEnrollmentDetails) MarshalJSON

func (p PropertyPropertiesEnrollmentDetails) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PropertyPropertiesEnrollmentDetails.

func (*PropertyPropertiesEnrollmentDetails) UnmarshalJSON

func (p *PropertyPropertiesEnrollmentDetails) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PropertyPropertiesEnrollmentDetails.

type PropertyPropertiesSubscriptionServiceUsageAddress

type PropertyPropertiesSubscriptionServiceUsageAddress struct {
	// REQUIRED; Address line 1.
	AddressLine1 *string

	// REQUIRED; Country code uses ISO 3166-1 Alpha-2 format.
	Country *string

	// Address line 2.
	AddressLine2 *string

	// Address line 3.
	AddressLine3 *string

	// Address city.
	City *string

	// Company name. Optional for MCA Individual (Pay-as-you-go).
	CompanyName *string

	// Address district.
	District *string

	// Email address.
	Email *string

	// First name. Optional for MCA Enterprise.
	FirstName *string

	// Indicates if the address is incomplete.
	IsValidAddress *bool

	// Last name. Optional for MCA Enterprise.
	LastName *string

	// Middle name.
	MiddleName *string

	// Phone number.
	PhoneNumber *string

	// Postal code.
	PostalCode *string

	// Address region.
	Region *string
}

PropertyPropertiesSubscriptionServiceUsageAddress - The address of the individual or organization where service subscription is being used. Available for agreement type Microsoft Online Services Program. This property can be updated via patch.

func (PropertyPropertiesSubscriptionServiceUsageAddress) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type PropertyPropertiesSubscriptionServiceUsageAddress.

func (*PropertyPropertiesSubscriptionServiceUsageAddress) UnmarshalJSON

UnmarshalJSON implements the json.Unmarshaller interface for type PropertyPropertiesSubscriptionServiceUsageAddress.

type ProvisioningState

type ProvisioningState string

ProvisioningState - The provisioning state of the resource during a long-running operation.

const (
	ProvisioningStateCanceled         ProvisioningState = "Canceled"
	ProvisioningStateConfirmedBilling ProvisioningState = "ConfirmedBilling"
	ProvisioningStateCreated          ProvisioningState = "Created"
	ProvisioningStateCreating         ProvisioningState = "Creating"
	ProvisioningStateExpired          ProvisioningState = "Expired"
	ProvisioningStateFailed           ProvisioningState = "Failed"
	ProvisioningStateNew              ProvisioningState = "New"
	ProvisioningStatePending          ProvisioningState = "Pending"
	ProvisioningStatePendingBilling   ProvisioningState = "PendingBilling"
	ProvisioningStateProvisioning     ProvisioningState = "Provisioning"
	ProvisioningStateSucceeded        ProvisioningState = "Succeeded"
)

func PossibleProvisioningStateValues

func PossibleProvisioningStateValues() []ProvisioningState

PossibleProvisioningStateValues returns the possible values for the ProvisioningState const type.

type ProvisioningTenantState

type ProvisioningTenantState string

ProvisioningTenantState - The state determines whether subscriptions and licenses can be provisioned in the associated tenant. It can be set to 'Pending' to initiate a billing request.

const (
	ProvisioningTenantStateActive                 ProvisioningTenantState = "Active"
	ProvisioningTenantStateBillingRequestDeclined ProvisioningTenantState = "BillingRequestDeclined"
	ProvisioningTenantStateBillingRequestExpired  ProvisioningTenantState = "BillingRequestExpired"
	ProvisioningTenantStateNotRequested           ProvisioningTenantState = "NotRequested"
	ProvisioningTenantStateOther                  ProvisioningTenantState = "Other"
	ProvisioningTenantStatePending                ProvisioningTenantState = "Pending"
	ProvisioningTenantStateRevoked                ProvisioningTenantState = "Revoked"
)

func PossibleProvisioningTenantStateValues

func PossibleProvisioningTenantStateValues() []ProvisioningTenantState

PossibleProvisioningTenantStateValues returns the possible values for the ProvisioningTenantState const type.

type ProxyResource

type ProxyResource struct {
	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

ProxyResource - The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location

func (ProxyResource) MarshalJSON

func (p ProxyResource) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProxyResource.

func (*ProxyResource) UnmarshalJSON

func (p *ProxyResource) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProxyResource.

type ProxyResourceWithTags

type ProxyResourceWithTags struct {
	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

ProxyResourceWithTags - Common fields that are returned in the response for all Azure Resource Manager resources.

func (ProxyResourceWithTags) MarshalJSON

func (p ProxyResourceWithTags) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ProxyResourceWithTags.

func (*ProxyResourceWithTags) UnmarshalJSON

func (p *ProxyResourceWithTags) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ProxyResourceWithTags.

type PurchaseRequest

type PurchaseRequest struct {
	// Purchase request properties.
	Properties *PurchaseRequestProperties

	// The SKU to be applied for this resource
	SKU *SKU
}

PurchaseRequest - Purchase request.

func (PurchaseRequest) MarshalJSON

func (p PurchaseRequest) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PurchaseRequest.

func (*PurchaseRequest) UnmarshalJSON

func (p *PurchaseRequest) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PurchaseRequest.

type PurchaseRequestProperties

type PurchaseRequestProperties struct {
	// Properties specific to applied scope type. Not required if not applicable.
	AppliedScopeProperties *AppliedScopeProperties

	// Type of the Applied Scope.
	AppliedScopeType *AppliedScopeType

	// Represents the billing plan in ISO 8601 format. Required only for monthly purchases.
	BillingPlan *BillingPlan

	// Subscription that will be charged for purchasing SavingsPlan
	BillingScopeID *string

	// Commitment towards the benefit.
	Commitment *Commitment

	// Friendly name of the savings plan
	DisplayName *string

	// Setting this to true will automatically purchase a new benefit on the expiration date time.
	Renew *bool

	// Represents the Savings plan term in ISO 8601 format.
	Term *SavingsPlanTerm
}

PurchaseRequestProperties - Purchase request properties.

func (PurchaseRequestProperties) MarshalJSON

func (p PurchaseRequestProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type PurchaseRequestProperties.

func (*PurchaseRequestProperties) UnmarshalJSON

func (p *PurchaseRequestProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type PurchaseRequestProperties.

type RebillDetails

type RebillDetails struct {
	// READ-ONLY; The ID of credit note.
	CreditNoteDocumentID *string

	// READ-ONLY; The ID of invoice.
	InvoiceDocumentID *string

	// READ-ONLY; The rebill details of an invoice.
	RebillDetails *RebillDetails
}

RebillDetails - The rebill details of an invoice.

func (RebillDetails) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RebillDetails.

func (*RebillDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RebillDetails.

type RecipientTransferDetails

type RecipientTransferDetails struct {
	// Details of the transfer.
	Properties *RecipientTransferProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

RecipientTransferDetails - Details of the transfer.

func (RecipientTransferDetails) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RecipientTransferDetails.

func (*RecipientTransferDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RecipientTransferDetails.

type RecipientTransferDetailsListResult

type RecipientTransferDetailsListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of transfers received by caller.
	Value []*RecipientTransferDetails
}

RecipientTransferDetailsListResult - The list of transfers received by caller.

func (RecipientTransferDetailsListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RecipientTransferDetailsListResult.

func (*RecipientTransferDetailsListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RecipientTransferDetailsListResult.

type RecipientTransferProperties

type RecipientTransferProperties struct {
	// READ-ONLY; Type of subscriptions that can be transferred.
	AllowedProductType []*EligibleProductType

	// READ-ONLY; The email ID of the user who canceled the transfer request.
	CanceledBy *string

	// READ-ONLY; The customer tenant id.
	CustomerTenantID *string

	// READ-ONLY; Detailed transfer status.
	DetailedTransferStatus []*DetailedTransferStatus

	// READ-ONLY; The time at which the transfer request expires.
	ExpirationTime *time.Time

	// READ-ONLY; The type of customer who sent the transfer request.
	InitiatorCustomerType *InitiatorCustomerType

	// READ-ONLY; The email ID of the user who sent the transfer request.
	InitiatorEmailID *string

	// READ-ONLY; The email ID of the user to whom the transfer request was sent.
	RecipientEmailID *string

	// READ-ONLY; Optional MPN ID of the reseller for transfer requests that are sent from a Microsoft Partner Agreement billing
	// account.
	ResellerID *string

	// READ-ONLY; Optional name of the reseller for transfer requests that are sent from Microsoft Partner Agreement billing account.
	ResellerName *string

	// READ-ONLY; List of supported account types.
	SupportedAccounts []*SupportedAccountType

	// READ-ONLY; Overall transfer status.
	TransferStatus *TransferStatus
}

RecipientTransferProperties - Transfer Details.

func (RecipientTransferProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RecipientTransferProperties.

func (*RecipientTransferProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RecipientTransferProperties.

type RecipientTransfersClient

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

RecipientTransfersClient contains the methods for the RecipientTransfers group. Don't use this type directly, use NewRecipientTransfersClient() instead.

func NewRecipientTransfersClient

func NewRecipientTransfersClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*RecipientTransfersClient, error)

NewRecipientTransfersClient creates a new instance of RecipientTransfersClient with the specified values.

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

func (*RecipientTransfersClient) Accept

Accept - Accepts a transfer request. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • transferName - The ID that uniquely identifies a transfer request.
  • parameters - Request parameters that are provided to the accept transfer operation.
  • options - RecipientTransfersClientAcceptOptions contains the optional parameters for the RecipientTransfersClient.Accept method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/recipientTransfersAccept.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRecipientTransfersClient().Accept(ctx, "aabb123", armbilling.AcceptTransferRequest{
		Properties: &armbilling.AcceptTransferProperties{
			ProductDetails: []*armbilling.ProductDetails{
				{
					ProductID:   to.Ptr("subscriptionId"),
					ProductType: to.Ptr(armbilling.ProductTypeAzureSubscription),
				},
				{
					ProductID:   to.Ptr("reservedInstanceId"),
					ProductType: to.Ptr(armbilling.ProductTypeAzureReservation),
				}},
		},
	}, 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.RecipientTransferDetails = armbilling.RecipientTransferDetails{
	// 	Name: to.Ptr("aabb123"),
	// 	Type: to.Ptr("Microsoft.Billing/transfers"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/transfers/aabb123"),
	// 	Properties: &armbilling.RecipientTransferProperties{
	// 		DetailedTransferStatus: []*armbilling.DetailedTransferStatus{
	// 			{
	// 				ProductID: to.Ptr("subscriptionId"),
	// 				ProductName: to.Ptr("Azure subscription 1"),
	// 				ProductType: to.Ptr(armbilling.ProductTypeAzureSubscription),
	// 				SKUDescription: to.Ptr("MS-AZR-0017G"),
	// 				TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
	// 			},
	// 			{
	// 				ProductID: to.Ptr("reservedInstanceId"),
	// 				ProductName: to.Ptr("Reservation name"),
	// 				ProductType: to.Ptr(armbilling.ProductTypeAzureReservation),
	// 				SKUDescription: to.Ptr("Standard_D2s_v3;VirtualMachines;P1Y"),
	// 				TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
	// 		}},
	// 		ExpirationTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-05T17:32:28.000Z"); return t}()),
	// 		InitiatorEmailID: to.Ptr("xyz@contoso.com"),
	// 		RecipientEmailID: to.Ptr("user@contoso.com"),
	// 		TransferStatus: to.Ptr(armbilling.TransferStatusInProgress),
	// 	},
	// }
}

func (*RecipientTransfersClient) Decline

Decline - Declines a transfer request. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • transferName - The ID that uniquely identifies a transfer request.
  • options - RecipientTransfersClientDeclineOptions contains the optional parameters for the RecipientTransfersClient.Decline method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/recipientTransfersDecline.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRecipientTransfersClient().Decline(ctx, "aabb123", 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.RecipientTransferDetails = armbilling.RecipientTransferDetails{
	// 	Name: to.Ptr("aabb123"),
	// 	Type: to.Ptr("Microsoft.Billing/transfers"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/transfers/aabb123"),
	// 	Properties: &armbilling.RecipientTransferProperties{
	// 		ExpirationTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-05T17:32:28.000Z"); return t}()),
	// 		InitiatorEmailID: to.Ptr("xyz@contoso.com"),
	// 		RecipientEmailID: to.Ptr("user@contoso.com"),
	// 		TransferStatus: to.Ptr(armbilling.TransferStatusDeclined),
	// 	},
	// }
}

func (*RecipientTransfersClient) Get

Get - Gets a transfer request by ID. The caller must be the recipient of the transfer request. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • transferName - The ID that uniquely identifies a transfer request.
  • options - RecipientTransfersClientGetOptions contains the optional parameters for the RecipientTransfersClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/recipientTransfersGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRecipientTransfersClient().Get(ctx, "aabb123", 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.RecipientTransferDetails = armbilling.RecipientTransferDetails{
	// 	Name: to.Ptr("aabb123"),
	// 	Type: to.Ptr("Microsoft.Billing/transfers"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/transfers/aabb123"),
	// 	Properties: &armbilling.RecipientTransferProperties{
	// 		DetailedTransferStatus: []*armbilling.DetailedTransferStatus{
	// 			{
	// 				ProductID: to.Ptr("subscriptionId"),
	// 				ProductName: to.Ptr("Azure subscription 1"),
	// 				ProductType: to.Ptr(armbilling.ProductTypeAzureSubscription),
	// 				SKUDescription: to.Ptr("MS-AZR-0017G"),
	// 				TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
	// 			},
	// 			{
	// 				ProductID: to.Ptr("reservedInstanceId"),
	// 				ProductName: to.Ptr("Reservation name"),
	// 				ProductType: to.Ptr(armbilling.ProductTypeAzureReservation),
	// 				SKUDescription: to.Ptr("Standard_D2s_v3;VirtualMachines;P1Y"),
	// 				TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
	// 		}},
	// 		ExpirationTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-05T17:32:28.000Z"); return t}()),
	// 		InitiatorEmailID: to.Ptr("xyz@contoso.com"),
	// 		RecipientEmailID: to.Ptr("user@contoso.com"),
	// 		TransferStatus: to.Ptr(armbilling.TransferStatusInProgress),
	// 	},
	// }
}

func (*RecipientTransfersClient) NewListPager

NewListPager - Lists the transfer requests received by the caller.

Generated from API version 2024-04-01

  • options - RecipientTransfersClientListOptions contains the optional parameters for the RecipientTransfersClient.NewListPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/recipientTransfersList.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRecipientTransfersClient().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.RecipientTransferDetailsListResult = armbilling.RecipientTransferDetailsListResult{
		// 	Value: []*armbilling.RecipientTransferDetails{
		// 		{
		// 			Name: to.Ptr("aabb123"),
		// 			Type: to.Ptr("Microsoft.Billing/transfers"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/transfers/aabb123"),
		// 			Properties: &armbilling.RecipientTransferProperties{
		// 				DetailedTransferStatus: []*armbilling.DetailedTransferStatus{
		// 					{
		// 						ProductID: to.Ptr("subscriptionId"),
		// 						ProductName: to.Ptr("Azure subscription 1"),
		// 						ProductType: to.Ptr(armbilling.ProductTypeAzureSubscription),
		// 						SKUDescription: to.Ptr("MS-AZR-0017G"),
		// 						TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
		// 					},
		// 					{
		// 						ProductID: to.Ptr("reservedInstanceId"),
		// 						ProductName: to.Ptr("Reservation name"),
		// 						ProductType: to.Ptr(armbilling.ProductType("ReservedInstance")),
		// 						SKUDescription: to.Ptr("Standard_D2s_v3;VirtualMachines;P1Y"),
		// 						TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
		// 				}},
		// 				ExpirationTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-05T17:32:28.000Z"); return t}()),
		// 				InitiatorEmailID: to.Ptr("xyz@contoso.com"),
		// 				RecipientEmailID: to.Ptr("user@contoso.com"),
		// 				TransferStatus: to.Ptr(armbilling.TransferStatusInProgress),
		// 			},
		// 	}},
		// }
	}
}

func (*RecipientTransfersClient) Validate

Validate - Validates if a subscription or a reservation can be transferred. Use this operation to validate your subscriptions or reservation before using the accept transfer operation. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • transferName - The ID that uniquely identifies a transfer request.
  • parameters - Request parameters that are provided to the validate transfer operation.
  • options - RecipientTransfersClientValidateOptions contains the optional parameters for the RecipientTransfersClient.Validate method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/recipientTransfersValidate.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRecipientTransfersClient().Validate(ctx, "aabb123", armbilling.AcceptTransferRequest{
		Properties: &armbilling.AcceptTransferProperties{
			ProductDetails: []*armbilling.ProductDetails{
				{
					ProductID:   to.Ptr("subscriptionId"),
					ProductType: to.Ptr(armbilling.ProductTypeAzureSubscription),
				},
				{
					ProductID:   to.Ptr("reservedInstanceId"),
					ProductType: to.Ptr(armbilling.ProductTypeAzureReservation),
				}},
		},
	}, 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.ValidateTransferListResponse = armbilling.ValidateTransferListResponse{
	// 	Value: []*armbilling.ValidateTransferResponse{
	// 		{
	// 			Properties: &armbilling.ValidateTransferResponseProperties{
	// 				ProductID: to.Ptr("subscriptionId"),
	// 				Results: []*armbilling.ValidationResultProperties{
	// 					{
	// 						Code: to.Ptr("NotIntendedRecipient"),
	// 						Level: to.Ptr("Error"),
	// 						Message: to.Ptr("Intended recipient is different."),
	// 				}},
	// 				Status: to.Ptr("Failed"),
	// 			},
	// 	}},
	// }
}

type RecipientTransfersClientAcceptOptions

type RecipientTransfersClientAcceptOptions struct {
}

RecipientTransfersClientAcceptOptions contains the optional parameters for the RecipientTransfersClient.Accept method.

type RecipientTransfersClientAcceptResponse

type RecipientTransfersClientAcceptResponse struct {
	// Details of the transfer.
	RecipientTransferDetails
}

RecipientTransfersClientAcceptResponse contains the response from method RecipientTransfersClient.Accept.

type RecipientTransfersClientDeclineOptions

type RecipientTransfersClientDeclineOptions struct {
}

RecipientTransfersClientDeclineOptions contains the optional parameters for the RecipientTransfersClient.Decline method.

type RecipientTransfersClientDeclineResponse

type RecipientTransfersClientDeclineResponse struct {
	// Details of the transfer.
	RecipientTransferDetails
}

RecipientTransfersClientDeclineResponse contains the response from method RecipientTransfersClient.Decline.

type RecipientTransfersClientGetOptions

type RecipientTransfersClientGetOptions struct {
}

RecipientTransfersClientGetOptions contains the optional parameters for the RecipientTransfersClient.Get method.

type RecipientTransfersClientGetResponse

type RecipientTransfersClientGetResponse struct {
	// Details of the transfer.
	RecipientTransferDetails
}

RecipientTransfersClientGetResponse contains the response from method RecipientTransfersClient.Get.

type RecipientTransfersClientListOptions

type RecipientTransfersClientListOptions struct {
}

RecipientTransfersClientListOptions contains the optional parameters for the RecipientTransfersClient.NewListPager method.

type RecipientTransfersClientListResponse

type RecipientTransfersClientListResponse struct {
	// The list of transfers received by caller.
	RecipientTransferDetailsListResult
}

RecipientTransfersClientListResponse contains the response from method RecipientTransfersClient.NewListPager.

type RecipientTransfersClientValidateOptions

type RecipientTransfersClientValidateOptions struct {
}

RecipientTransfersClientValidateOptions contains the optional parameters for the RecipientTransfersClient.Validate method.

type RecipientTransfersClientValidateResponse

type RecipientTransfersClientValidateResponse struct {
	// Result of transfer validation.
	ValidateTransferListResponse
}

RecipientTransfersClientValidateResponse contains the response from method RecipientTransfersClient.Validate.

type RefundDetailsSummary

type RefundDetailsSummary struct {
	// The amount refunded.
	AmountRefunded *RefundDetailsSummaryAmountRefunded

	// The amount of refund requested.
	AmountRequested *RefundDetailsSummaryAmountRequested

	// READ-ONLY; Date when the refund was approved.
	ApprovedOn *time.Time

	// READ-ONLY; Date when the refund was completed.
	CompletedOn *time.Time

	// READ-ONLY; The invoice ID of the rebill invoice for a refund.
	RebillInvoiceID *string

	// READ-ONLY; The ID of refund operation.
	RefundOperationID *string

	// READ-ONLY; The reason for refund.
	RefundReason *RefundReasonCode

	// READ-ONLY; The status of refund request.
	RefundStatus *RefundStatus

	// READ-ONLY; Date when the refund was requested.
	RequestedOn *time.Time

	// READ-ONLY; The number of transactions refunded.
	TransactionCount *int32
}

RefundDetailsSummary - The details of refund request.

func (RefundDetailsSummary) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RefundDetailsSummary.

func (*RefundDetailsSummary) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RefundDetailsSummary.

type RefundDetailsSummaryAmountRefunded

type RefundDetailsSummaryAmountRefunded struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

RefundDetailsSummaryAmountRefunded - The amount refunded.

func (RefundDetailsSummaryAmountRefunded) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RefundDetailsSummaryAmountRefunded.

func (*RefundDetailsSummaryAmountRefunded) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RefundDetailsSummaryAmountRefunded.

type RefundDetailsSummaryAmountRequested

type RefundDetailsSummaryAmountRequested struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

RefundDetailsSummaryAmountRequested - The amount of refund requested.

func (RefundDetailsSummaryAmountRequested) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RefundDetailsSummaryAmountRequested.

func (*RefundDetailsSummaryAmountRequested) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RefundDetailsSummaryAmountRequested.

type RefundReasonCode

type RefundReasonCode string

RefundReasonCode - The reason for refund.

const (
	RefundReasonCodeAccidentalConversion RefundReasonCode = "AccidentalConversion"
	RefundReasonCodeAccidentalPurchase   RefundReasonCode = "AccidentalPurchase"
	RefundReasonCodeForgotToCancel       RefundReasonCode = "ForgotToCancel"
	RefundReasonCodeOther                RefundReasonCode = "Other"
	RefundReasonCodeUnclearDocumentation RefundReasonCode = "UnclearDocumentation"
	RefundReasonCodeUnclearPricing       RefundReasonCode = "UnclearPricing"
)

func PossibleRefundReasonCodeValues

func PossibleRefundReasonCodeValues() []RefundReasonCode

PossibleRefundReasonCodeValues returns the possible values for the RefundReasonCode const type.

type RefundStatus

type RefundStatus string

RefundStatus - The status of refund request.

const (
	RefundStatusApproved  RefundStatus = "Approved"
	RefundStatusCancelled RefundStatus = "Cancelled"
	RefundStatusCompleted RefundStatus = "Completed"
	RefundStatusDeclined  RefundStatus = "Declined"
	RefundStatusExpired   RefundStatus = "Expired"
	RefundStatusOther     RefundStatus = "Other"
	RefundStatusPending   RefundStatus = "Pending"
)

func PossibleRefundStatusValues

func PossibleRefundStatusValues() []RefundStatus

PossibleRefundStatusValues returns the possible values for the RefundStatus const type.

type RefundTransactionDetails

type RefundTransactionDetails struct {
	// The amount refunded.
	AmountRefunded *RefundTransactionDetailsAmountRefunded

	// The amount of refund requested.
	AmountRequested *RefundTransactionDetailsAmountRequested

	// The ID of refund operation.
	RefundOperationID *string
}

RefundTransactionDetails - The refund details of a transaction.

func (RefundTransactionDetails) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RefundTransactionDetails.

func (*RefundTransactionDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RefundTransactionDetails.

type RefundTransactionDetailsAmountRefunded

type RefundTransactionDetailsAmountRefunded struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

RefundTransactionDetailsAmountRefunded - The amount refunded.

func (RefundTransactionDetailsAmountRefunded) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RefundTransactionDetailsAmountRefunded.

func (*RefundTransactionDetailsAmountRefunded) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RefundTransactionDetailsAmountRefunded.

type RefundTransactionDetailsAmountRequested

type RefundTransactionDetailsAmountRequested struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

RefundTransactionDetailsAmountRequested - The amount of refund requested.

func (RefundTransactionDetailsAmountRequested) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RefundTransactionDetailsAmountRequested.

func (*RefundTransactionDetailsAmountRequested) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RefundTransactionDetailsAmountRequested.

type RegistrationNumber

type RegistrationNumber struct {
	// The unique identification number of the organization linked with the billing account.
	ID *string

	// READ-ONLY; Identifies if the registration number is required for the billing account.
	Required *bool

	// READ-ONLY; The types of registration number allowed based on the country of the billing account.
	Type []*string
}

RegistrationNumber - Describes the registration number of the organization linked with the billing account.

func (RegistrationNumber) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RegistrationNumber.

func (*RegistrationNumber) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RegistrationNumber.

type RenewProperties

type RenewProperties struct {
	// Purchase request.
	PurchaseProperties *PurchaseRequest
}

RenewProperties - Properties specific to renew.

func (RenewProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RenewProperties.

func (*RenewProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RenewProperties.

type RenewPropertiesResponse

type RenewPropertiesResponse struct {
	// Currency and amount that customer will be charged in customer's local currency for renewal purchase. Tax is not included.
	BillingCurrencyTotal *Price

	// Amount that Microsoft uses for record. Used during refund for calculating refund limit. Tax is not included. This is locked
	// price 30 days before expiry.
	PricingCurrencyTotal *Price

	// The request for reservation purchase
	PurchaseProperties *ReservationPurchaseRequest
}

RenewPropertiesResponse - The renew properties for a reservation.

func (RenewPropertiesResponse) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RenewPropertiesResponse.

func (*RenewPropertiesResponse) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RenewPropertiesResponse.

type RenewalTermDetails

type RenewalTermDetails struct {
	// The quantity of licenses or fulfillment units for the subscription.
	Quantity *int64

	// READ-ONLY; The billing frequency in ISO8601 format of product in the subscription. Example: P1M, P3M, P1Y
	BillingFrequency *string

	// READ-ONLY; Id of the product for which the subscription is purchased.
	ProductID *string

	// READ-ONLY; Type Id of the product for which the subscription is purchased.
	ProductTypeID *string

	// READ-ONLY; The SKU ID of the product for which the subscription is purchased. This field is is only available for Microsoft
	// Customer Agreement billing accounts.
	SKUID *string

	// READ-ONLY; The duration in ISO8601 format for which you can use the subscription. Example: P1M, P3M, P1Y
	TermDuration *string

	// READ-ONLY; End date of the term in UTC time.
	TermEndDate *time.Time
}

RenewalTermDetails - Details for the next renewal term of a subscription.

func (RenewalTermDetails) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RenewalTermDetails.

func (*RenewalTermDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RenewalTermDetails.

type Request

type Request struct {
	// A request submitted by a user to manage billing. Users with an owner role on the scope can approve or decline these requests.
	Properties *RequestProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

Request - A request submitted by a user to manage billing. Users with an owner role on the scope can approve or decline these requests.

func (Request) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type Request.

func (*Request) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type Request.

type RequestListResult

type RequestListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*Request
}

RequestListResult - A container for a list of resources

func (RequestListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RequestListResult.

func (*RequestListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RequestListResult.

type RequestProperties

type RequestProperties struct {
	// Additional information for the billing request.
	AdditionalInformation map[string]*string

	// The principal of the entity who created the request.
	CreatedBy *RequestPropertiesCreatedBy

	// The reason to approve or decline the request.
	DecisionReason *string

	// Justification for submitting request.
	Justification *string

	// The principal of the entity who last updated the request.
	LastUpdatedBy *RequestPropertiesLastUpdatedBy

	// The recipients of the billing request.
	Recipients []*Principal

	// The billing scope for which the request was submitted (ex. '/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}').
	RequestScope *string

	// The principal of the request reviewer. Will only be set if request is approved.
	ReviewedBy *RequestPropertiesReviewedBy

	// Status of billing request.
	Status *BillingRequestStatus

	// Type of billing request.
	Type *BillingRequestType

	// READ-ONLY; The name of the billing account.
	BillingAccountDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies a billing account.
	BillingAccountID *string

	// READ-ONLY; The ID that uniquely identifies a billing account.
	BillingAccountName *string

	// READ-ONLY; The primary tenant ID of the billing account for which the billing request was submitted.
	BillingAccountPrimaryBillingTenantID *string

	// READ-ONLY; The name of the billing profile.
	BillingProfileDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies a billing profile.
	BillingProfileID *string

	// READ-ONLY; The ID that uniquely identifies a billing profile.
	BillingProfileName *string

	// READ-ONLY; The billing scope for which the request will be applied. This is a read only property derived by the service.
	BillingScope *string

	// READ-ONLY; The date and time when the request was created.
	CreationDate *time.Time

	// READ-ONLY; The name of the customer.
	CustomerDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies a customer.
	CustomerID *string

	// READ-ONLY; The ID that uniquely identifies a customer.
	CustomerName *string

	// READ-ONLY; The date and time when the request expires.
	ExpirationDate *time.Time

	// READ-ONLY; The name of the invoice section.
	InvoiceSectionDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies an invoice section.
	InvoiceSectionID *string

	// READ-ONLY; The ID that uniquely identifies an invoice section.
	InvoiceSectionName *string

	// READ-ONLY; Date and time of last update.
	LastUpdatedDate *time.Time

	// READ-ONLY; The provisioning state of the resource during a long-running operation.
	ProvisioningState *ProvisioningState

	// READ-ONLY; The date and time when the request was reviewed.
	ReviewalDate *time.Time

	// READ-ONLY; The name of the billing subscription.
	SubscriptionDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies a billing subscription.
	SubscriptionID *string

	// READ-ONLY; The ID that uniquely identifies a billing subscription.
	SubscriptionName *string
}

RequestProperties - A request submitted by a user to manage billing. Users with an owner role on the scope can approve or decline these requests.

func (RequestProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RequestProperties.

func (*RequestProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RequestProperties.

type RequestPropertiesCreatedBy

type RequestPropertiesCreatedBy struct {
	// The object id of the principal who has interacted with a billing entity.
	ObjectID *string

	// The tenant id of the principal who has interacted with a billing entity.
	TenantID *string

	// The user principal name of the principal who has interacted with a billing entity.
	Upn *string
}

RequestPropertiesCreatedBy - The principal of the entity who created the request.

func (RequestPropertiesCreatedBy) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RequestPropertiesCreatedBy.

func (*RequestPropertiesCreatedBy) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RequestPropertiesCreatedBy.

type RequestPropertiesLastUpdatedBy

type RequestPropertiesLastUpdatedBy struct {
	// The object id of the principal who has interacted with a billing entity.
	ObjectID *string

	// The tenant id of the principal who has interacted with a billing entity.
	TenantID *string

	// The user principal name of the principal who has interacted with a billing entity.
	Upn *string
}

RequestPropertiesLastUpdatedBy - The principal of the entity who last updated the request.

func (RequestPropertiesLastUpdatedBy) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RequestPropertiesLastUpdatedBy.

func (*RequestPropertiesLastUpdatedBy) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RequestPropertiesLastUpdatedBy.

type RequestPropertiesReviewedBy

type RequestPropertiesReviewedBy struct {
	// The object id of the principal who has interacted with a billing entity.
	ObjectID *string

	// The tenant id of the principal who has interacted with a billing entity.
	TenantID *string

	// The user principal name of the principal who has interacted with a billing entity.
	Upn *string
}

RequestPropertiesReviewedBy - The principal of the request reviewer. Will only be set if request is approved.

func (RequestPropertiesReviewedBy) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RequestPropertiesReviewedBy.

func (*RequestPropertiesReviewedBy) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RequestPropertiesReviewedBy.

type RequestsClient

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

RequestsClient contains the methods for the BillingRequests group. Don't use this type directly, use NewRequestsClient() instead.

func NewRequestsClient

func NewRequestsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*RequestsClient, error)

NewRequestsClient creates a new instance of RequestsClient with the specified values.

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

func (*RequestsClient) BeginCreateOrUpdate

func (client *RequestsClient) BeginCreateOrUpdate(ctx context.Context, billingRequestName string, parameters Request, options *RequestsClientBeginCreateOrUpdateOptions) (*runtime.Poller[RequestsClientCreateOrUpdateResponse], error)

BeginCreateOrUpdate - Create or update a billing request. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingRequestName - The ID that uniquely identifies a billing request.
  • parameters - A request submitted by a user to manage billing. Users with an owner role on the scope can approve or decline these requests.
  • options - RequestsClientBeginCreateOrUpdateOptions contains the optional parameters for the RequestsClient.BeginCreateOrUpdate method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRequestsCreateOrUpdate.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewRequestsClient().BeginCreateOrUpdate(ctx, "00000000-0000-0000-0000-000000000000", armbilling.Request{
		Properties: &armbilling.RequestProperties{
			Type: to.Ptr(armbilling.BillingRequestTypeRoleAssignment),
			AdditionalInformation: map[string]*string{
				"RoleId": to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
			},
			DecisionReason: to.Ptr("New team member"),
			RequestScope:   to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
			Status:         to.Ptr(armbilling.BillingRequestStatusPending),
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.Request = armbilling.Request{
	// 	Name: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingRequests"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingRequests/00000000-0000-0000-0000-000000000000"),
	// 	Properties: &armbilling.RequestProperties{
	// 		Type: to.Ptr(armbilling.BillingRequestTypeRoleAssignment),
	// 		AdditionalInformation: map[string]*string{
	// 			"RoleId": to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
	// 		},
	// 		BillingAccountDisplayName: to.Ptr("Contoso"),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 		BillingAccountName: to.Ptr("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 		BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
	// 		CreatedBy: &armbilling.RequestPropertiesCreatedBy{
	// 			Upn: to.Ptr("foo@contoso.com"),
	// 		},
	// 		CreationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
	// 		ExpirationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-04-15T17:32:28.000Z"); return t}()),
	// 		LastUpdatedBy: &armbilling.RequestPropertiesLastUpdatedBy{
	// 			Upn: to.Ptr("admin@contoso.com"),
	// 		},
	// 		LastUpdatedDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
	// 		RequestScope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		Status: to.Ptr(armbilling.BillingRequestStatusPending),
	// 	},
	// }
}

func (*RequestsClient) Get

func (client *RequestsClient) Get(ctx context.Context, billingRequestName string, options *RequestsClientGetOptions) (RequestsClientGetResponse, error)

Get - Gets a billing request by its ID. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingRequestName - The ID that uniquely identifies a billing request.
  • options - RequestsClientGetOptions contains the optional parameters for the RequestsClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRequestsGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRequestsClient().Get(ctx, "00000000-0000-0000-0000-000000000000", 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.Request = armbilling.Request{
	// 	Name: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingRequests"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingRequests/00000000-0000-0000-0000-000000000000"),
	// 	Properties: &armbilling.RequestProperties{
	// 		Type: to.Ptr(armbilling.BillingRequestTypeRoleAssignment),
	// 		AdditionalInformation: map[string]*string{
	// 			"RoleId": to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
	// 		},
	// 		BillingAccountDisplayName: to.Ptr("Contoso"),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 		BillingAccountName: to.Ptr("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 		BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
	// 		CreatedBy: &armbilling.RequestPropertiesCreatedBy{
	// 			Upn: to.Ptr("foo@contoso.com"),
	// 		},
	// 		CreationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
	// 		ExpirationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-04-15T17:32:28.000Z"); return t}()),
	// 		LastUpdatedBy: &armbilling.RequestPropertiesLastUpdatedBy{
	// 			Upn: to.Ptr("admin@contoso.com"),
	// 		},
	// 		LastUpdatedDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
	// 		RequestScope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		Status: to.Ptr(armbilling.BillingRequestStatusPending),
	// 	},
	// }
}

func (*RequestsClient) NewListByBillingAccountPager

func (client *RequestsClient) NewListByBillingAccountPager(billingAccountName string, options *RequestsClientListByBillingAccountOptions) *runtime.Pager[RequestsClientListByBillingAccountResponse]

NewListByBillingAccountPager - The list of billing requests submitted for the billing account.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - RequestsClientListByBillingAccountOptions contains the optional parameters for the RequestsClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRequestsListByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRequestsClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.RequestsClientListByBillingAccountOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.RequestListResult = armbilling.RequestListResult{
		// 	Value: []*armbilling.Request{
		// 		{
		// 			Name: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingRequests"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingRequests/00000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.RequestProperties{
		// 				Type: to.Ptr(armbilling.BillingRequestTypeRoleAssignment),
		// 				AdditionalInformation: map[string]*string{
		// 					"RoleId": to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
		// 				},
		// 				BillingAccountDisplayName: to.Ptr("Contoso"),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingAccountName: to.Ptr("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
		// 				CreatedBy: &armbilling.RequestPropertiesCreatedBy{
		// 					Upn: to.Ptr("foo@contoso.com"),
		// 				},
		// 				CreationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
		// 				ExpirationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-04-15T17:32:28.000Z"); return t}()),
		// 				LastUpdatedBy: &armbilling.RequestPropertiesLastUpdatedBy{
		// 					Upn: to.Ptr("foo@contoso.com"),
		// 				},
		// 				LastUpdatedDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
		// 				RequestScope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				Status: to.Ptr(armbilling.BillingRequestStatusPending),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 			Type: to.Ptr("Microsoft.Billing/billingRequests"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingRequests/11111111-1111-1111-1111-111111111111"),
		// 			Properties: &armbilling.RequestProperties{
		// 				Type: to.Ptr(armbilling.BillingRequestTypeProvisioningAccess),
		// 				BillingAccountDisplayName: to.Ptr("Contoso"),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingAccountName: to.Ptr("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				CreatedBy: &armbilling.RequestPropertiesCreatedBy{
		// 					Upn: to.Ptr("foo@contoso.com"),
		// 				},
		// 				CreationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-01T17:32:28.000Z"); return t}()),
		// 				ExpirationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-15T17:32:28.000Z"); return t}()),
		// 				LastUpdatedBy: &armbilling.RequestPropertiesLastUpdatedBy{
		// 					Upn: to.Ptr("admin@contosofinance.com"),
		// 				},
		// 				LastUpdatedDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-02T17:32:28.000Z"); return t}()),
		// 				RequestScope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/associatedTenants/100000000-0000-0000-0000-00000000"),
		// 				ReviewalDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-02T17:32:28.000Z"); return t}()),
		// 				ReviewedBy: &armbilling.RequestPropertiesReviewedBy{
		// 					Upn: to.Ptr("admin@contosofinance.com"),
		// 				},
		// 				Status: to.Ptr(armbilling.BillingRequestStatusApproved),
		// 			},
		// 	}},
		// }
	}
}

func (*RequestsClient) NewListByBillingProfilePager

func (client *RequestsClient) NewListByBillingProfilePager(billingAccountName string, billingProfileName string, options *RequestsClientListByBillingProfileOptions) *runtime.Pager[RequestsClientListByBillingProfileResponse]

NewListByBillingProfilePager - The list of billing requests submitted for the billing profile.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - RequestsClientListByBillingProfileOptions contains the optional parameters for the RequestsClient.NewListByBillingProfilePager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRequestsListByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRequestsClient().NewListByBillingProfilePager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", &armbilling.RequestsClientListByBillingProfileOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.RequestListResult = armbilling.RequestListResult{
		// 	Value: []*armbilling.Request{
		// 		{
		// 			Name: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingRequests"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingRequests/00000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.RequestProperties{
		// 				Type: to.Ptr(armbilling.BillingRequestTypeRoleAssignment),
		// 				AdditionalInformation: map[string]*string{
		// 					"RoleId": to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
		// 				},
		// 				BillingAccountDisplayName: to.Ptr("Contoso"),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingAccountName: to.Ptr("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
		// 				CreatedBy: &armbilling.RequestPropertiesCreatedBy{
		// 					Upn: to.Ptr("foo@contoso.com"),
		// 				},
		// 				CreationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
		// 				ExpirationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-04-15T17:32:28.000Z"); return t}()),
		// 				LastUpdatedBy: &armbilling.RequestPropertiesLastUpdatedBy{
		// 					Upn: to.Ptr("foo@contoso.com"),
		// 				},
		// 				LastUpdatedDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
		// 				RequestScope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				Status: to.Ptr(armbilling.BillingRequestStatusPending),
		// 			},
		// 	}},
		// }
	}
}

func (*RequestsClient) NewListByCustomerPager

func (client *RequestsClient) NewListByCustomerPager(billingAccountName string, billingProfileName string, customerName string, options *RequestsClientListByCustomerOptions) *runtime.Pager[RequestsClientListByCustomerResponse]

NewListByCustomerPager - The list of billing requests submitted for the customer.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • options - RequestsClientListByCustomerOptions contains the optional parameters for the RequestsClient.NewListByCustomerPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRequestsListByCustomer.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRequestsClient().NewListByCustomerPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "11111111-1111-1111-1111-111111111111", &armbilling.RequestsClientListByCustomerOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.RequestListResult = armbilling.RequestListResult{
		// 	Value: []*armbilling.Request{
		// 		{
		// 			Name: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingRequests"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingRequests/00000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.RequestProperties{
		// 				Type: to.Ptr(armbilling.BillingRequestTypeRoleAssignment),
		// 				AdditionalInformation: map[string]*string{
		// 					"RoleId": to.Ptr("30000000-aaaa-bbbb-cccc-200000000003"),
		// 				},
		// 				BillingAccountDisplayName: to.Ptr("Contoso"),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingAccountName: to.Ptr("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
		// 				CreatedBy: &armbilling.RequestPropertiesCreatedBy{
		// 					Upn: to.Ptr("foo@contoso.com"),
		// 				},
		// 				CreationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
		// 				CustomerDisplayName: to.Ptr("Customer 1"),
		// 				CustomerID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111"),
		// 				CustomerName: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 				ExpirationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-04-15T17:32:28.000Z"); return t}()),
		// 				LastUpdatedBy: &armbilling.RequestPropertiesLastUpdatedBy{
		// 					Upn: to.Ptr("foo@contoso.com"),
		// 				},
		// 				LastUpdatedDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
		// 				RequestScope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111"),
		// 				Status: to.Ptr(armbilling.BillingRequestStatusPending),
		// 			},
		// 	}},
		// }
	}
}

func (*RequestsClient) NewListByInvoiceSectionPager

func (client *RequestsClient) NewListByInvoiceSectionPager(billingAccountName string, billingProfileName string, invoiceSectionName string, options *RequestsClientListByInvoiceSectionOptions) *runtime.Pager[RequestsClientListByInvoiceSectionResponse]

NewListByInvoiceSectionPager - The list of billing requests submitted for the invoice section.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • options - RequestsClientListByInvoiceSectionOptions contains the optional parameters for the RequestsClient.NewListByInvoiceSectionPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRequestsListByInvoiceSection.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRequestsClient().NewListByInvoiceSectionPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "yyyy-yyyy-yyy-yyy", &armbilling.RequestsClientListByInvoiceSectionOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.RequestListResult = armbilling.RequestListResult{
		// 	Value: []*armbilling.Request{
		// 		{
		// 			Name: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingRequests"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingRequests/00000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.RequestProperties{
		// 				Type: to.Ptr(armbilling.BillingRequestTypeRoleAssignment),
		// 				AdditionalInformation: map[string]*string{
		// 					"RoleId": to.Ptr("30000000-aaaa-bbbb-cccc-200000000003"),
		// 				},
		// 				BillingAccountDisplayName: to.Ptr("Contoso"),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingAccountName: to.Ptr("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
		// 				CreatedBy: &armbilling.RequestPropertiesCreatedBy{
		// 					Upn: to.Ptr("foo@contoso.com"),
		// 				},
		// 				CreationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
		// 				ExpirationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-04-15T17:32:28.000Z"); return t}()),
		// 				InvoiceSectionDisplayName: to.Ptr("Department 1"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
		// 				InvoiceSectionName: to.Ptr("yyyy-yyyy-yyy-yyy"),
		// 				LastUpdatedBy: &armbilling.RequestPropertiesLastUpdatedBy{
		// 					Upn: to.Ptr("foo@contoso.com"),
		// 				},
		// 				LastUpdatedDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
		// 				RequestScope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
		// 				Status: to.Ptr(armbilling.BillingRequestStatusPending),
		// 			},
		// 	}},
		// }
	}
}

func (*RequestsClient) NewListByUserPager

NewListByUserPager - The list of billing requests submitted by a user.

Generated from API version 2024-04-01

  • options - RequestsClientListByUserOptions contains the optional parameters for the RequestsClient.NewListByUserPager method.
Example (BillingRequestsListByUser)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRequestsListByUser.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRequestsClient().NewListByUserPager(&armbilling.RequestsClientListByUserOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.RequestListResult = armbilling.RequestListResult{
		// 	Value: []*armbilling.Request{
		// 		{
		// 			Name: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingRequests"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingRequests/00000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.RequestProperties{
		// 				Type: to.Ptr(armbilling.BillingRequestTypeRoleAssignment),
		// 				AdditionalInformation: map[string]*string{
		// 					"RoleId": to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
		// 				},
		// 				BillingAccountDisplayName: to.Ptr("Contoso"),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingAccountName: to.Ptr("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingProfileDisplayName: to.Ptr("Contoso Operations Billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
		// 				CreatedBy: &armbilling.RequestPropertiesCreatedBy{
		// 					Upn: to.Ptr("foo@contoso.com"),
		// 				},
		// 				CreationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
		// 				ExpirationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-04-15T17:32:28.000Z"); return t}()),
		// 				LastUpdatedBy: &armbilling.RequestPropertiesLastUpdatedBy{
		// 					Upn: to.Ptr("foo@contoso.com"),
		// 				},
		// 				LastUpdatedDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T17:32:28.000Z"); return t}()),
		// 				RequestScope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				Status: to.Ptr(armbilling.BillingRequestStatusPending),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 			Type: to.Ptr("Microsoft.Billing/billingRequests"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingRequests/11111111-1111-1111-1111-111111111111"),
		// 			Properties: &armbilling.RequestProperties{
		// 				Type: to.Ptr(armbilling.BillingRequestTypeProvisioningAccess),
		// 				BillingAccountDisplayName: to.Ptr("Contoso"),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingAccountName: to.Ptr("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				CreatedBy: &armbilling.RequestPropertiesCreatedBy{
		// 					Upn: to.Ptr("foo@contoso.com"),
		// 				},
		// 				CreationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-01T17:32:28.000Z"); return t}()),
		// 				ExpirationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-15T17:32:28.000Z"); return t}()),
		// 				LastUpdatedBy: &armbilling.RequestPropertiesLastUpdatedBy{
		// 					Upn: to.Ptr("admin@contosofinance.com"),
		// 				},
		// 				LastUpdatedDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-02T17:32:28.000Z"); return t}()),
		// 				RequestScope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/associatedTenants/100000000-0000-0000-0000-00000000"),
		// 				ReviewalDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-02T17:32:28.000Z"); return t}()),
		// 				ReviewedBy: &armbilling.RequestPropertiesReviewedBy{
		// 					Upn: to.Ptr("admin@contosofinance.com"),
		// 				},
		// 				Status: to.Ptr(armbilling.BillingRequestStatusApproved),
		// 			},
		// 	}},
		// }
	}
}
Example (BillingRequestsListByUserWithFilter)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRequestsListByUserWithFilter.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRequestsClient().NewListByUserPager(&armbilling.RequestsClientListByUserOptions{Filter: to.Ptr("properties/status eq 'Approved'"),
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.RequestListResult = armbilling.RequestListResult{
		// 	Value: []*armbilling.Request{
		// 		{
		// 			Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 			Type: to.Ptr("Microsoft.Billing/billingRequests"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingRequests/11111111-1111-1111-1111-111111111111"),
		// 			Properties: &armbilling.RequestProperties{
		// 				Type: to.Ptr(armbilling.BillingRequestTypeProvisioningAccess),
		// 				BillingAccountDisplayName: to.Ptr("Contoso"),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingAccountName: to.Ptr("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				CreatedBy: &armbilling.RequestPropertiesCreatedBy{
		// 					Upn: to.Ptr("foo@contoso.com"),
		// 				},
		// 				CreationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-01T17:32:28.000Z"); return t}()),
		// 				ExpirationDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-15T17:32:28.000Z"); return t}()),
		// 				LastUpdatedBy: &armbilling.RequestPropertiesLastUpdatedBy{
		// 					Upn: to.Ptr("admin@contosofinance.com"),
		// 				},
		// 				LastUpdatedDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-02T17:32:28.000Z"); return t}()),
		// 				RequestScope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/associatedTenants/100000000-0000-0000-0000-00000000"),
		// 				ReviewalDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-02T17:32:28.000Z"); return t}()),
		// 				ReviewedBy: &armbilling.RequestPropertiesReviewedBy{
		// 					Upn: to.Ptr("admin@contosofinance.com"),
		// 				},
		// 				Status: to.Ptr(armbilling.BillingRequestStatusApproved),
		// 			},
		// 	}},
		// }
	}
}

type RequestsClientBeginCreateOrUpdateOptions

type RequestsClientBeginCreateOrUpdateOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

RequestsClientBeginCreateOrUpdateOptions contains the optional parameters for the RequestsClient.BeginCreateOrUpdate method.

type RequestsClientCreateOrUpdateResponse

type RequestsClientCreateOrUpdateResponse struct {
	// A request submitted by a user to manage billing. Users with an owner role on the scope can approve or decline these requests.
	Request
}

RequestsClientCreateOrUpdateResponse contains the response from method RequestsClient.BeginCreateOrUpdate.

type RequestsClientGetOptions

type RequestsClientGetOptions struct {
}

RequestsClientGetOptions contains the optional parameters for the RequestsClient.Get method.

type RequestsClientGetResponse

type RequestsClientGetResponse struct {
	// A request submitted by a user to manage billing. Users with an owner role on the scope can approve or decline these requests.
	Request
}

RequestsClientGetResponse contains the response from method RequestsClient.Get.

type RequestsClientListByBillingAccountOptions

type RequestsClientListByBillingAccountOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

RequestsClientListByBillingAccountOptions contains the optional parameters for the RequestsClient.NewListByBillingAccountPager method.

type RequestsClientListByBillingAccountResponse

type RequestsClientListByBillingAccountResponse struct {
	// A container for a list of resources
	RequestListResult
}

RequestsClientListByBillingAccountResponse contains the response from method RequestsClient.NewListByBillingAccountPager.

type RequestsClientListByBillingProfileOptions

type RequestsClientListByBillingProfileOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

RequestsClientListByBillingProfileOptions contains the optional parameters for the RequestsClient.NewListByBillingProfilePager method.

type RequestsClientListByBillingProfileResponse

type RequestsClientListByBillingProfileResponse struct {
	// A container for a list of resources
	RequestListResult
}

RequestsClientListByBillingProfileResponse contains the response from method RequestsClient.NewListByBillingProfilePager.

type RequestsClientListByCustomerOptions

type RequestsClientListByCustomerOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

RequestsClientListByCustomerOptions contains the optional parameters for the RequestsClient.NewListByCustomerPager method.

type RequestsClientListByCustomerResponse

type RequestsClientListByCustomerResponse struct {
	// A container for a list of resources
	RequestListResult
}

RequestsClientListByCustomerResponse contains the response from method RequestsClient.NewListByCustomerPager.

type RequestsClientListByInvoiceSectionOptions

type RequestsClientListByInvoiceSectionOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

RequestsClientListByInvoiceSectionOptions contains the optional parameters for the RequestsClient.NewListByInvoiceSectionPager method.

type RequestsClientListByInvoiceSectionResponse

type RequestsClientListByInvoiceSectionResponse struct {
	// A container for a list of resources
	RequestListResult
}

RequestsClientListByInvoiceSectionResponse contains the response from method RequestsClient.NewListByInvoiceSectionPager.

type RequestsClientListByUserOptions

type RequestsClientListByUserOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

RequestsClientListByUserOptions contains the optional parameters for the RequestsClient.NewListByUserPager method.

type RequestsClientListByUserResponse

type RequestsClientListByUserResponse struct {
	// A container for a list of resources
	RequestListResult
}

RequestsClientListByUserResponse contains the response from method RequestsClient.NewListByUserPager.

type Reseller

type Reseller struct {
	// READ-ONLY; The name of the reseller.
	Description *string

	// READ-ONLY; The MPN ID of the reseller.
	ResellerID *string
}

Reseller - Details of the reseller.

func (Reseller) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type Reseller.

func (*Reseller) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type Reseller.

type Reservation

type Reservation struct {
	Etag *int32

	// The location of the reservation.
	Location *string

	// The properties associated to this reservation
	Properties *ReservationProperty

	// The sku information associated to this reservation
	SKU *ReservationSKUProperty

	// Tags for this reservation
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

Reservation - The definition of the reservation.

func (Reservation) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type Reservation.

func (*Reservation) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type Reservation.

type ReservationAppliedScopeProperties

type ReservationAppliedScopeProperties struct {
	// Display name
	DisplayName *string

	// Fully-qualified identifier of the management group where the benefit must be applied.
	ManagementGroupID *string

	// Fully-qualified identifier of the resource group.
	ResourceGroupID *string

	// Fully-qualified identifier of the subscription.
	SubscriptionID *string

	// Tenant ID where the reservation should apply benefit.
	TenantID *string
}

ReservationAppliedScopeProperties - Properties specific to applied scope type. Not required if not applicable. Required and need to provide tenantId and managementGroupId if AppliedScopeType is ManagementGroup

func (ReservationAppliedScopeProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationAppliedScopeProperties.

func (*ReservationAppliedScopeProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationAppliedScopeProperties.

type ReservationBillingPlan

type ReservationBillingPlan string

ReservationBillingPlan - Represent the billing plans.

const (
	ReservationBillingPlanMonthly ReservationBillingPlan = "Monthly"
	ReservationBillingPlanUpfront ReservationBillingPlan = "Upfront"
)

func PossibleReservationBillingPlanValues

func PossibleReservationBillingPlanValues() []ReservationBillingPlan

PossibleReservationBillingPlanValues returns the possible values for the ReservationBillingPlan const type.

type ReservationExtendedStatusInfo

type ReservationExtendedStatusInfo struct {
	// The message giving detailed information about the status code.
	Message *string

	// Properties for extended status information
	Properties *ExtendedStatusDefinitionProperties

	// The status of the reservation.
	StatusCode *ReservationStatusCode
}

ReservationExtendedStatusInfo - Extended status information for the reservation.

func (ReservationExtendedStatusInfo) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationExtendedStatusInfo.

func (*ReservationExtendedStatusInfo) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationExtendedStatusInfo.

type ReservationList

type ReservationList struct {
	// Url to get the next page of reservations.
	NextLink *string
	Value    []*Reservation
}

ReservationList - List of `Reservations

func (ReservationList) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationList.

func (*ReservationList) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationList.

type ReservationMergeProperties

type ReservationMergeProperties struct {
	// Reservation resource id Created due to the merge. Format of the resource id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}
	MergeDestination *string

	// Resource ids of the source reservation's merged to form this reservation. Format of the resource id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}
	MergeSources []*string
}

ReservationMergeProperties - Properties of reservation merge

func (ReservationMergeProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationMergeProperties.

func (*ReservationMergeProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationMergeProperties.

type ReservationOrder

type ReservationOrder struct {
	Etag *int32

	// The properties associated to this reservation order
	Properties *ReservationOrderProperty

	// Tags for this reservation
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

ReservationOrder - Details of a reservation order being returned.

func (ReservationOrder) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationOrder.

func (*ReservationOrder) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationOrder.

type ReservationOrderBillingPlanInformation

type ReservationOrderBillingPlanInformation struct {
	// For recurring billing plans, indicates the date when next payment will be processed. Null when total is paid off.
	NextPaymentDueDate *time.Time

	// Amount of money to be paid for the Order. Tax is not included.
	PricingCurrencyTotal *Price

	// Date when the billing plan has started.
	StartDate    *time.Time
	Transactions []*ReservationPaymentDetail
}

ReservationOrderBillingPlanInformation - Information describing the type of billing plan for this reservation order.

func (ReservationOrderBillingPlanInformation) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationOrderBillingPlanInformation.

func (*ReservationOrderBillingPlanInformation) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationOrderBillingPlanInformation.

type ReservationOrderList

type ReservationOrderList struct {
	// Url to get the next page of reservationOrders.
	NextLink *string
	Value    []*ReservationOrder
}

ReservationOrderList - List of ReservationOrders

func (ReservationOrderList) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationOrderList.

func (*ReservationOrderList) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationOrderList.

type ReservationOrderProperty

type ReservationOrderProperty struct {
	// This is the DateTime when the reservation benefit started.
	BenefitStartTime *time.Time

	// Billing account Id associated to this reservation order.
	BillingAccountID *string

	// Represent the billing plans.
	BillingPlan *ReservationBillingPlan

	// Billing profile Id associated to this reservation order.
	BillingProfileID *string

	// This is the DateTime when the reservation order was created.
	CreatedDateTime *time.Time

	// Fully-qualified identifier of the customerId where the benefit is applied. Present only for Enterprise Agreement PartnerLed
	// customers.
	CustomerID *string

	// Friendly name for user to easily identified the reservation order.
	DisplayName *string

	// Enrollment id of the reservation order.
	EnrollmentID *string

	// This is the date when the reservation order will expire.
	ExpiryDate *time.Time

	// This is the date-time when the reservation order will expire.
	ExpiryDateTime *time.Time

	// Extended status information for the reservation.
	ExtendedStatusInfo *ReservationExtendedStatusInfo

	// Total original quantity of the skus purchased in the reservation order.
	OriginalQuantity *int32

	// Information describing the type of billing plan for this reservation order.
	PlanInformation *ReservationOrderBillingPlanInformation

	// Represents UPN
	ProductCode *string

	// This is the DateTime when the reservation order was initially requested for purchase.
	RequestDateTime *time.Time
	Reservations    []*Reservation

	// This is the date-time when the Azure Hybrid Benefit needs to be reviewed.
	ReviewDateTime *time.Time

	// READ-ONLY; The provisioning state of the reservation, e.g. Succeeded
	ProvisioningState *string

	// READ-ONLY; The term of the reservation, e.g. P1Y
	Term *string
}

ReservationOrderProperty - Properties of a reservation order.

func (ReservationOrderProperty) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationOrderProperty.

func (*ReservationOrderProperty) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationOrderProperty.

type ReservationOrdersClient

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

ReservationOrdersClient contains the methods for the ReservationOrders group. Don't use this type directly, use NewReservationOrdersClient() instead.

func NewReservationOrdersClient

func NewReservationOrdersClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*ReservationOrdersClient, error)

NewReservationOrdersClient creates a new instance of ReservationOrdersClient with the specified values.

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

func (*ReservationOrdersClient) GetByBillingAccount

func (client *ReservationOrdersClient) GetByBillingAccount(ctx context.Context, billingAccountName string, reservationOrderID string, options *ReservationOrdersClientGetByBillingAccountOptions) (ReservationOrdersClientGetByBillingAccountResponse, error)

GetByBillingAccount - Get the details of the ReservationOrder in the billing account. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • reservationOrderID - Order Id of the reservation
  • options - ReservationOrdersClientGetByBillingAccountOptions contains the optional parameters for the ReservationOrdersClient.GetByBillingAccount method.
Example (ReservationOrderGetByBillingAccount)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/reservationOrderGetByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewReservationOrdersClient().GetByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", &armbilling.ReservationOrdersClientGetByBillingAccountOptions{Expand: 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.ReservationOrder = armbilling.ReservationOrder{
	// 	Name: to.Ptr("20000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("microsoft.billing/billingAccounts/reservationOrders"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/reservationOrders/20000000-0000-0000-0000-000000000000"),
	// 	Etag: to.Ptr[int32](27),
	// 	Properties: &armbilling.ReservationOrderProperty{
	// 		BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:34:12.926Z"); return t}()),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 		BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-AAAA-AAA-AAA"),
	// 		CreatedDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:34:13.973Z"); return t}()),
	// 		DisplayName: to.Ptr("VM_RI_11-24-2021_22-30"),
	// 		ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-11-25T06:34:12.926Z"); return t}()),
	// 		OriginalQuantity: to.Ptr[int32](1),
	// 		ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
	// 		ProvisioningState: to.Ptr("Succeeded"),
	// 		RequestDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:31:18.392Z"); return t}()),
	// 		Reservations: []*armbilling.Reservation{
	// 			{
	// 				ID: to.Ptr("/providers/Microsoft.Capacity/reservationOrders/20000000-0000-0000-0000-000000000000/reservations/20000000-0000-0000-0000-000000000001"),
	// 		}},
	// 		Term: to.Ptr("P3Y"),
	// 	},
	// 	Tags: map[string]*string{
	// 		"key1": to.Ptr("value1"),
	// 		"key2": to.Ptr("value2"),
	// 	},
	// }
}
Example (ReservationOrderGetByBillingAccountWithExpandPlanInformation)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/reservationOrderGetByBillingAccountWithExpandPlanInformation.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewReservationOrdersClient().GetByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", &armbilling.ReservationOrdersClientGetByBillingAccountOptions{Expand: 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.ReservationOrder = armbilling.ReservationOrder{
	// 	Name: to.Ptr("20000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("microsoft.billing/billingAccounts/reservationOrders"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/reservationOrders/20000000-0000-0000-0000-000000000000"),
	// 	Etag: to.Ptr[int32](26),
	// 	Properties: &armbilling.ReservationOrderProperty{
	// 		BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:34:12.926Z"); return t}()),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 		BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-AAAA-AAA-AAA"),
	// 		CreatedDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:34:13.973Z"); return t}()),
	// 		DisplayName: to.Ptr("VM_RI_11-24-2021_22-30"),
	// 		ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-11-25T06:34:12.926Z"); return t}()),
	// 		OriginalQuantity: to.Ptr[int32](1),
	// 		PlanInformation: &armbilling.ReservationOrderBillingPlanInformation{
	// 			NextPaymentDueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-01-25"); return t}()),
	// 			PricingCurrencyTotal: &armbilling.Price{
	// 				Amount: to.Ptr[float64](715.68),
	// 				CurrencyCode: to.Ptr("USD"),
	// 			},
	// 			StartDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2021-11-25"); return t}()),
	// 			Transactions: []*armbilling.ReservationPaymentDetail{
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2021-11-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2021-11-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2021-12-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2021-12-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-01-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-01-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-02-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-02-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-03-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-03-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-04-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-04-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-05-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-05-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-06-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-06-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-07-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-07-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-08-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-08-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-09-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-09-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-10-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-10-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-11-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-11-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-12-25"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-12-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-01-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-02-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-03-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-04-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-05-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-06-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-07-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-08-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-09-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-10-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-11-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-12-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-01-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-02-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-03-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-04-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-06-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-07-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-08-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-09-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-10-25"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](19.88),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 			}},
	// 		},
	// 		ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
	// 		ProvisioningState: to.Ptr("Succeeded"),
	// 		RequestDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:31:18.392Z"); return t}()),
	// 		Reservations: []*armbilling.Reservation{
	// 			{
	// 				ID: to.Ptr("/providers/Microsoft.Capacity/reservationOrders/20000000-0000-0000-0000-000000000000/reservations/20000000-0000-0000-0000-000000000001"),
	// 		}},
	// 		Term: to.Ptr("P3Y"),
	// 	},
	// 	Tags: map[string]*string{
	// 		"key1": to.Ptr("value1"),
	// 		"key2": to.Ptr("value2"),
	// 	},
	// }
}

func (*ReservationOrdersClient) NewListByBillingAccountPager

NewListByBillingAccountPager - List all the `ReservationOrders in the billing account.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - ReservationOrdersClientListByBillingAccountOptions contains the optional parameters for the ReservationOrdersClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/reservationOrdersListByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewReservationOrdersClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.ReservationOrdersClientListByBillingAccountOptions{Filter: nil,
		OrderBy:   nil,
		Skiptoken: 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.ReservationOrderList = armbilling.ReservationOrderList{
		// 	Value: []*armbilling.ReservationOrder{
		// 		{
		// 			Name: to.Ptr("20000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("microsoft.billing/billingAccounts/reservationOrders"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/400000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/reservationOrders/20000000-0000-0000-0000-000000000000"),
		// 			Etag: to.Ptr[int32](10),
		// 			Properties: &armbilling.ReservationOrderProperty{
		// 				BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-08-03T21:26:48.512Z"); return t}()),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/400000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingPlan: to.Ptr(armbilling.ReservationBillingPlanUpfront),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/400000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-AAAA-AAA-AAA"),
		// 				CreatedDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-08-03T21:26:50.778Z"); return t}()),
		// 				DisplayName: to.Ptr("SUSE_Plan_08-03-2021_14-22"),
		// 				ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-08-03T21:26:48.512Z"); return t}()),
		// 				OriginalQuantity: to.Ptr[int32](1),
		// 				ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
		// 				ProvisioningState: to.Ptr("Succeeded"),
		// 				RequestDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-08-03T21:23:47.909Z"); return t}()),
		// 				Reservations: []*armbilling.Reservation{
		// 					{
		// 						ID: to.Ptr("/providers/Microsoft.Capacity/reservationOrders/20000000-0000-0000-0000-000000000000/reservations/20000000-0000-0000-0000-000000000001"),
		// 				}},
		// 				Term: to.Ptr("P3Y"),
		// 			},
		// 			Tags: map[string]*string{
		// 				"key1": to.Ptr("value1"),
		// 				"key2": to.Ptr("value2"),
		// 			},
		// 	}},
		// }
	}
}

type ReservationOrdersClientGetByBillingAccountOptions

type ReservationOrdersClientGetByBillingAccountOptions struct {
	// May be used to expand the detail information of some properties.
	Expand *string
}

ReservationOrdersClientGetByBillingAccountOptions contains the optional parameters for the ReservationOrdersClient.GetByBillingAccount method.

type ReservationOrdersClientGetByBillingAccountResponse

type ReservationOrdersClientGetByBillingAccountResponse struct {
	// Details of a reservation order being returned.
	ReservationOrder
}

ReservationOrdersClientGetByBillingAccountResponse contains the response from method ReservationOrdersClient.GetByBillingAccount.

type ReservationOrdersClientListByBillingAccountOptions

type ReservationOrdersClientListByBillingAccountOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The number of reservations to skip from the list before returning results
	Skiptoken *float32
}

ReservationOrdersClientListByBillingAccountOptions contains the optional parameters for the ReservationOrdersClient.NewListByBillingAccountPager method.

type ReservationOrdersClientListByBillingAccountResponse

type ReservationOrdersClientListByBillingAccountResponse struct {
	// List of ReservationOrders
	ReservationOrderList
}

ReservationOrdersClientListByBillingAccountResponse contains the response from method ReservationOrdersClient.NewListByBillingAccountPager.

type ReservationPaymentDetail

type ReservationPaymentDetail struct {
	// Shows the Account that is charged for this payment.
	BillingAccount *string

	// Amount charged in Billing currency. Tax not included. Is null for future payments
	BillingCurrencyTotal *Price

	// Date when the payment needs to be done.
	DueDate *time.Time

	// Extended status information for the reservation.
	ExtendedStatusInfo *ReservationExtendedStatusInfo

	// Date when the transaction is completed. Is null when it is scheduled.
	PaymentDate *time.Time

	// Amount in pricing currency. Tax not included.
	PricingCurrencyTotal *Price

	// Describes whether the payment is completed, failed, pending, cancelled or scheduled in the future.
	Status *PaymentStatus
}

ReservationPaymentDetail - Information about payment related to a reservation order.

func (ReservationPaymentDetail) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationPaymentDetail.

func (*ReservationPaymentDetail) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationPaymentDetail.

type ReservationProperty

type ReservationProperty struct {
	// Properties specific to applied scope type. Not required if not applicable. Required and need to provide tenantId and managementGroupId
	// if AppliedScopeType is ManagementGroup
	AppliedScopeProperties *ReservationAppliedScopeProperties

	// The array of applied scopes of a reservation. Will be null if the reservation is in Shared scope
	AppliedScopes []*string

	// Indicates if the reservation is archived
	Archived *bool

	// This is the DateTime when the reservation benefit started.
	BenefitStartTime *time.Time

	// The billing plan options available for this sku.
	BillingPlan *ReservationBillingPlan

	// Capabilities of the reservation
	Capabilities *string

	// This is the date-time when the reservation will expire.
	ExpiryDateTime *time.Time

	// The message giving detailed information about the status code.
	ExtendedStatusInfo *ReservationExtendedStatusInfo

	// Allows reservation discount to be applied across skus within the same auto fit group. Not all skus support instance size
	// flexibility.
	InstanceFlexibility *InstanceFlexibility

	// Properties of reservation merge
	MergeProperties *ReservationMergeProperties

	// Represents UPN
	ProductCode *string

	// This is the date when the reservation was purchased.
	PurchaseDate *time.Time

	// This is the date-time when the reservation was purchased.
	PurchaseDateTime *time.Time

	// Reservation Id of the reservation which is purchased because of renew. Format of the resource Id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}.
	RenewDestination *string

	// The renew properties for a reservation.
	RenewProperties *RenewPropertiesResponse

	// This is the date-time when the Azure Hybrid Benefit needs to be reviewed.
	ReviewDateTime *time.Time

	// Properties of reservation split
	SplitProperties *ReservationSplitProperties

	// Properties of reservation swap
	SwapProperties *ReservationSwapProperties

	// READ-ONLY; The applied scope type of the reservation.
	AppliedScopeType *string

	// READ-ONLY; Subscription that will be charged for purchasing reservation or savings plan
	BillingScopeID *string

	// READ-ONLY; The display name of the reservation
	DisplayName *string

	// READ-ONLY; The provisioning state of the reservation for display, e.g. Succeeded
	DisplayProvisioningState *string

	// READ-ONLY; The effective date time of the reservation
	EffectiveDateTime *time.Time

	// READ-ONLY; The expiry date of the reservation
	ExpiryDate *string

	// READ-ONLY; DateTime of the last time the reservation was updated.
	LastUpdatedDateTime *time.Time

	// READ-ONLY; The provisioning state of the reservation, e.g. Succeeded
	ProvisioningState *string

	// READ-ONLY; The provisioning state of the reservation, e.g. Succeeded
	ProvisioningSubState *string

	// READ-ONLY; The number of the reservation.
	Quantity *float32

	// READ-ONLY; The renew state of the reservation
	Renew *bool

	// READ-ONLY; The renew source of the reservation
	RenewSource *string

	// READ-ONLY; The reserved source type of the reservation, e.g. virtual machine.
	ReservedResourceType *string

	// READ-ONLY; The sku description of the reservation
	SKUDescription *string

	// READ-ONLY; The term of the reservation, e.g. P1Y
	Term *string

	// READ-ONLY; The applied scope type of the reservation for display, e.g. Shared
	UserFriendlyAppliedScopeType *string

	// READ-ONLY; The renew state of the reservation for display, e.g. On
	UserFriendlyRenewState *string

	// READ-ONLY; Reservation utilization
	Utilization *ReservationPropertyUtilization
}

ReservationProperty - The property of reservation object.

func (ReservationProperty) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationProperty.

func (*ReservationProperty) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationProperty.

type ReservationPropertyUtilization

type ReservationPropertyUtilization struct {
	// The array of aggregates of a reservation's utilization
	Aggregates []*ReservationUtilizationAggregates

	// READ-ONLY; last 7 day utilization trend for a reservation
	Trend *string
}

ReservationPropertyUtilization - Reservation utilization

func (ReservationPropertyUtilization) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationPropertyUtilization.

func (*ReservationPropertyUtilization) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationPropertyUtilization.

type ReservationPurchaseRequest

type ReservationPurchaseRequest struct {
	// The Azure region where the reserved resource lives.
	Location *string

	// Properties of reservation purchase request
	Properties *ReservationPurchaseRequestProperties

	// The name of sku
	SKU *SKUName
}

ReservationPurchaseRequest - The request for reservation purchase

func (ReservationPurchaseRequest) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationPurchaseRequest.

func (*ReservationPurchaseRequest) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationPurchaseRequest.

type ReservationPurchaseRequestProperties

type ReservationPurchaseRequestProperties struct {
	// Properties specific to applied scope type. Not required if not applicable. Required and need to provide tenantId and managementGroupId
	// if AppliedScopeType is ManagementGroup
	AppliedScopeProperties *ReservationAppliedScopeProperties

	// Type of the Applied Scope.
	AppliedScopeType *AppliedScopeType

	// List of the subscriptions that the benefit will be applied. Do not specify if AppliedScopeType is Shared.
	AppliedScopes []*string

	// Represent the billing plans.
	BillingPlan *ReservationBillingPlan

	// Friendly name of the reservation
	DisplayName *string

	// Allows reservation discount to be applied across skus within the same auto fit group. Not all skus support instance size
	// flexibility.
	InstanceFlexibility *InstanceFlexibility

	// Quantity of the skus that are part of the reservation. Must be greater than zero.
	Quantity *int32

	// Setting this to true will automatically purchase a new benefit on the expiration date time.
	Renew *bool

	// Properties specific to each reserved resource type. Not required if not applicable.
	ReservedResourceProperties *ReservationPurchaseRequestPropertiesReservedResourceProperties

	// This is the date-time when the Azure hybrid benefit needs to be reviewed.
	ReviewDateTime *time.Time

	// READ-ONLY; Subscription that will be charged for purchasing reservation or savings plan
	BillingScopeID *string

	// READ-ONLY; The reserved source type of the reservation, e.g. virtual machine.
	ReservedResourceType *string

	// READ-ONLY; The term of the reservation, e.g. P1Y
	Term *string
}

ReservationPurchaseRequestProperties - Properties of reservation purchase request

func (ReservationPurchaseRequestProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationPurchaseRequestProperties.

func (*ReservationPurchaseRequestProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationPurchaseRequestProperties.

type ReservationPurchaseRequestPropertiesReservedResourceProperties

type ReservationPurchaseRequestPropertiesReservedResourceProperties struct {
	// Turning this on will apply the reservation discount to other VMs in the same VM size group. Only specify for VirtualMachines
	// reserved resource type.
	InstanceFlexibility *InstanceFlexibility
}

ReservationPurchaseRequestPropertiesReservedResourceProperties - Properties specific to each reserved resource type. Not required if not applicable.

func (ReservationPurchaseRequestPropertiesReservedResourceProperties) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type ReservationPurchaseRequestPropertiesReservedResourceProperties.

func (*ReservationPurchaseRequestPropertiesReservedResourceProperties) UnmarshalJSON

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationPurchaseRequestPropertiesReservedResourceProperties.

type ReservationPurchasesPolicy

type ReservationPurchasesPolicy string

ReservationPurchasesPolicy - The policy that controls whether Azure reservation purchases are allowed.

const (
	ReservationPurchasesPolicyAllowed    ReservationPurchasesPolicy = "Allowed"
	ReservationPurchasesPolicyDisabled   ReservationPurchasesPolicy = "Disabled"
	ReservationPurchasesPolicyNotAllowed ReservationPurchasesPolicy = "NotAllowed"
	ReservationPurchasesPolicyOther      ReservationPurchasesPolicy = "Other"
)

func PossibleReservationPurchasesPolicyValues

func PossibleReservationPurchasesPolicyValues() []ReservationPurchasesPolicy

PossibleReservationPurchasesPolicyValues returns the possible values for the ReservationPurchasesPolicy const type.

type ReservationSKUProperty

type ReservationSKUProperty struct {
	// READ-ONLY; The name of the reservation sku.
	Name *string
}

ReservationSKUProperty - The property of reservation sku object.

func (ReservationSKUProperty) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationSKUProperty.

func (*ReservationSKUProperty) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationSKUProperty.

type ReservationSplitProperties

type ReservationSplitProperties struct {
	// List of destination resource id that are created due to split. Format of the resource id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}
	SplitDestinations []*string

	// Resource id of the reservation from which this is split. Format of the resource id is /providers/Microsoft.Capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}
	SplitSource *string
}

ReservationSplitProperties - Properties of reservation split

func (ReservationSplitProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationSplitProperties.

func (*ReservationSplitProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationSplitProperties.

type ReservationStatusCode

type ReservationStatusCode string

ReservationStatusCode - The status of the reservation.

const (
	ReservationStatusCodeActive                             ReservationStatusCode = "Active"
	ReservationStatusCodeCapacityError                      ReservationStatusCode = "CapacityError"
	ReservationStatusCodeCapacityRestricted                 ReservationStatusCode = "CapacityRestricted"
	ReservationStatusCodeCreditLineCheckFailed              ReservationStatusCode = "CreditLineCheckFailed"
	ReservationStatusCodeExchanged                          ReservationStatusCode = "Exchanged"
	ReservationStatusCodeExpired                            ReservationStatusCode = "Expired"
	ReservationStatusCodeMerged                             ReservationStatusCode = "Merged"
	ReservationStatusCodeNoBenefit                          ReservationStatusCode = "NoBenefit"
	ReservationStatusCodeNoBenefitDueToSubscriptionDeletion ReservationStatusCode = "NoBenefitDueToSubscriptionDeletion"
	ReservationStatusCodeNoBenefitDueToSubscriptionTransfer ReservationStatusCode = "NoBenefitDueToSubscriptionTransfer"
	ReservationStatusCodeNone                               ReservationStatusCode = "None"
	ReservationStatusCodePaymentInstrumentError             ReservationStatusCode = "PaymentInstrumentError"
	ReservationStatusCodePending                            ReservationStatusCode = "Pending"
	ReservationStatusCodeProcessing                         ReservationStatusCode = "Processing"
	ReservationStatusCodePurchaseError                      ReservationStatusCode = "PurchaseError"
	ReservationStatusCodeRiskCheckFailed                    ReservationStatusCode = "RiskCheckFailed"
	ReservationStatusCodeSplit                              ReservationStatusCode = "Split"
	ReservationStatusCodeSucceeded                          ReservationStatusCode = "Succeeded"
	ReservationStatusCodeUnknownError                       ReservationStatusCode = "UnknownError"
	ReservationStatusCodeWarning                            ReservationStatusCode = "Warning"
)

func PossibleReservationStatusCodeValues

func PossibleReservationStatusCodeValues() []ReservationStatusCode

PossibleReservationStatusCodeValues returns the possible values for the ReservationStatusCode const type.

type ReservationSummary

type ReservationSummary struct {
	// READ-ONLY; The number of reservation in Cancelled state
	CancelledCount *float32

	// READ-ONLY; The number of reservation in Expired state
	ExpiredCount *float32

	// READ-ONLY; The number of reservation in Expiring state
	ExpiringCount *float32

	// READ-ONLY; The number of reservation in Failed state
	FailedCount *float32

	// READ-ONLY; The number of reservation in 'No Benefit' state
	NoBenefitCount *float32

	// READ-ONLY; The number of reservation in Pending state
	PendingCount *float32

	// READ-ONLY; The number of reservation in Processing state
	ProcessingCount *float32

	// READ-ONLY; The number of reservation in Succeeded state
	SucceededCount *float32

	// READ-ONLY; The number of reservation in Warning state
	WarningCount *float32
}

ReservationSummary - The roll up count summary of reservations in each state

func (ReservationSummary) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationSummary.

func (*ReservationSummary) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationSummary.

type ReservationSwapProperties

type ReservationSwapProperties struct {
	// Reservation resource id that the original resource gets swapped to. Format of the resource id is /providers/microsoft.capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}
	SwapDestination *string

	// Resource id of the source reservation that gets swapped. Format of the resource id is /providers/microsoft.capacity/reservationOrders/{reservationOrderId}/reservations/{reservationId}
	SwapSource *string
}

ReservationSwapProperties - Properties of reservation swap

func (ReservationSwapProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationSwapProperties.

func (*ReservationSwapProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationSwapProperties.

type ReservationUtilizationAggregates

type ReservationUtilizationAggregates struct {
	// READ-ONLY; The grain of the aggregate
	Grain *float32

	// READ-ONLY; The grain unit of the aggregate
	GrainUnit *string

	// READ-ONLY; The aggregate value
	Value *float32

	// READ-ONLY; The aggregate value unit
	ValueUnit *string
}

ReservationUtilizationAggregates - The aggregate values of reservation utilization

func (ReservationUtilizationAggregates) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationUtilizationAggregates.

func (*ReservationUtilizationAggregates) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationUtilizationAggregates.

type ReservationsClient

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

ReservationsClient contains the methods for the Reservations group. Don't use this type directly, use NewReservationsClient() instead.

func NewReservationsClient

func NewReservationsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*ReservationsClient, error)

NewReservationsClient creates a new instance of ReservationsClient with the specified values.

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

func (*ReservationsClient) BeginUpdateByBillingAccount

func (client *ReservationsClient) BeginUpdateByBillingAccount(ctx context.Context, billingAccountName string, reservationOrderID string, reservationID string, body Patch, options *ReservationsClientBeginUpdateByBillingAccountOptions) (*runtime.Poller[ReservationsClientUpdateByBillingAccountResponse], error)

BeginUpdateByBillingAccount - Update reservation by billing account. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • reservationOrderID - Order Id of the reservation
  • reservationID - Id of the reservation item
  • body - Request body for patching a reservation
  • options - ReservationsClientBeginUpdateByBillingAccountOptions contains the optional parameters for the ReservationsClient.BeginUpdateByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/reservationUpdateByBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewReservationsClient().BeginUpdateByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", "30000000-0000-0000-0000-000000000000", armbilling.Patch{
		Properties: &armbilling.PatchProperties{
			DisplayName: to.Ptr("NewName"),
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.Reservation = armbilling.Reservation{
	// 	Name: to.Ptr("30000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("microsoft.billing/billingAccounts/reservationOrders/reservations"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/reservationOrders/20000000-0000-0000-0000-000000000000/reservations/30000000-0000-0000-0000-000000000000"),
	// 	Etag: to.Ptr[int32](15),
	// 	Location: to.Ptr("westus"),
	// 	Properties: &armbilling.ReservationProperty{
	// 		AppliedScopeType: to.Ptr("Shared"),
	// 		Archived: to.Ptr(false),
	// 		BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:34:12.926Z"); return t}()),
	// 		BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
	// 		BillingScopeID: to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009"),
	// 		DisplayName: to.Ptr("NewName"),
	// 		DisplayProvisioningState: to.Ptr("Succeeded"),
	// 		EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-24T01:46:05.425Z"); return t}()),
	// 		ExpiryDate: to.Ptr("2024-11-25"),
	// 		ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-11-25T06:34:12.926Z"); return t}()),
	// 		InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
	// 		LastUpdatedDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-24T01:46:05.534Z"); return t}()),
	// 		ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
	// 		ProvisioningState: to.Ptr("Succeeded"),
	// 		PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2021-11-25"); return t}()),
	// 		PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:31:18.392Z"); return t}()),
	// 		Quantity: to.Ptr[float32](1),
	// 		Renew: to.Ptr(true),
	// 		RenewProperties: &armbilling.RenewPropertiesResponse{
	// 			BillingCurrencyTotal: &armbilling.Price{
	// 				Amount: to.Ptr[float64](715.68),
	// 				CurrencyCode: to.Ptr("USD"),
	// 			},
	// 			PricingCurrencyTotal: &armbilling.Price{
	// 				Amount: to.Ptr[float64](715.68),
	// 				CurrencyCode: to.Ptr("USD"),
	// 			},
	// 			PurchaseProperties: &armbilling.ReservationPurchaseRequest{
	// 				Location: to.Ptr("westus"),
	// 				Properties: &armbilling.ReservationPurchaseRequestProperties{
	// 					AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeShared),
	// 					BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
	// 					BillingScopeID: to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009"),
	// 					DisplayName: to.Ptr("VM_RI_11-24-2021_22-30_renewed"),
	// 					InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
	// 					Quantity: to.Ptr[int32](1),
	// 					Renew: to.Ptr(false),
	// 					ReservedResourceProperties: &armbilling.ReservationPurchaseRequestPropertiesReservedResourceProperties{
	// 						InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
	// 					},
	// 					ReservedResourceType: to.Ptr("VirtualMachines"),
	// 					Term: to.Ptr("P3Y"),
	// 				},
	// 				SKU: &armbilling.SKUName{
	// 					Name: to.Ptr("Standard_DS1_v2"),
	// 				},
	// 			},
	// 		},
	// 		ReservedResourceType: to.Ptr("VirtualMachines"),
	// 		SKUDescription: to.Ptr("Reserved VM Instance, Standard_DS1_v2, US West, 3 Years"),
	// 		Term: to.Ptr("P3Y"),
	// 		UserFriendlyAppliedScopeType: to.Ptr("Shared"),
	// 		UserFriendlyRenewState: to.Ptr("On"),
	// 		Utilization: &armbilling.ReservationPropertyUtilization{
	// 			Aggregates: []*armbilling.ReservationUtilizationAggregates{
	// 				{
	// 					Grain: to.Ptr[float32](1),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 				},
	// 				{
	// 					Grain: to.Ptr[float32](7),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 				},
	// 				{
	// 					Grain: to.Ptr[float32](30),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 			}},
	// 			Trend: to.Ptr("SAME"),
	// 		},
	// 	},
	// 	SKU: &armbilling.ReservationSKUProperty{
	// 		Name: to.Ptr("Standard_DS1_v2"),
	// 	},
	// 	Tags: map[string]*string{
	// 		"key1": to.Ptr("value1"),
	// 		"key2": to.Ptr("value2"),
	// 	},
	// }
}

func (*ReservationsClient) GetByReservationOrder

func (client *ReservationsClient) GetByReservationOrder(ctx context.Context, billingAccountName string, reservationOrderID string, reservationID string, options *ReservationsClientGetByReservationOrderOptions) (ReservationsClientGetByReservationOrderResponse, error)

GetByReservationOrder - Get specific Reservation details in the billing account. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • reservationOrderID - Order Id of the reservation
  • reservationID - Id of the reservation item
  • options - ReservationsClientGetByReservationOrderOptions contains the optional parameters for the ReservationsClient.GetByReservationOrder method.
Example (ReservationGetByBillingAccount)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/reservationGetByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewReservationsClient().GetByReservationOrder(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", "30000000-0000-0000-0000-000000000000", &armbilling.ReservationsClientGetByReservationOrderOptions{Expand: 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.Reservation = armbilling.Reservation{
	// 	Name: to.Ptr("30000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("microsoft.billing/billingAccounts/reservationOrders/reservations"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/reservationOrders/20000000-0000-0000-0000-000000000000/reservations/30000000-0000-0000-0000-000000000000"),
	// 	Etag: to.Ptr[int32](15),
	// 	Location: to.Ptr("westus"),
	// 	Properties: &armbilling.ReservationProperty{
	// 		AppliedScopeType: to.Ptr("Shared"),
	// 		Archived: to.Ptr(false),
	// 		BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:34:12.926Z"); return t}()),
	// 		BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
	// 		BillingScopeID: to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009"),
	// 		DisplayName: to.Ptr("VM_RI_11-24-2021_22-30"),
	// 		DisplayProvisioningState: to.Ptr("Succeeded"),
	// 		EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-24T01:46:05.425Z"); return t}()),
	// 		ExpiryDate: to.Ptr("2024-11-25"),
	// 		ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-11-25T06:34:12.926Z"); return t}()),
	// 		InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
	// 		LastUpdatedDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-24T01:46:05.534Z"); return t}()),
	// 		ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
	// 		ProvisioningState: to.Ptr("Succeeded"),
	// 		PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2021-11-25"); return t}()),
	// 		PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:31:18.392Z"); return t}()),
	// 		Quantity: to.Ptr[float32](1),
	// 		Renew: to.Ptr(true),
	// 		RenewProperties: &armbilling.RenewPropertiesResponse{
	// 			BillingCurrencyTotal: &armbilling.Price{
	// 				Amount: to.Ptr[float64](715.68),
	// 				CurrencyCode: to.Ptr("USD"),
	// 			},
	// 			PricingCurrencyTotal: &armbilling.Price{
	// 				Amount: to.Ptr[float64](715.68),
	// 				CurrencyCode: to.Ptr("USD"),
	// 			},
	// 			PurchaseProperties: &armbilling.ReservationPurchaseRequest{
	// 				Location: to.Ptr("westus"),
	// 				Properties: &armbilling.ReservationPurchaseRequestProperties{
	// 					AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeShared),
	// 					BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
	// 					BillingScopeID: to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009"),
	// 					DisplayName: to.Ptr("VM_RI_11-24-2021_22-30_renewed"),
	// 					InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
	// 					Quantity: to.Ptr[int32](1),
	// 					Renew: to.Ptr(false),
	// 					ReservedResourceProperties: &armbilling.ReservationPurchaseRequestPropertiesReservedResourceProperties{
	// 						InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
	// 					},
	// 					ReservedResourceType: to.Ptr("VirtualMachines"),
	// 					Term: to.Ptr("P3Y"),
	// 				},
	// 				SKU: &armbilling.SKUName{
	// 					Name: to.Ptr("Standard_DS1_v2"),
	// 				},
	// 			},
	// 		},
	// 		ReservedResourceType: to.Ptr("VirtualMachines"),
	// 		SKUDescription: to.Ptr("Reserved VM Instance, Standard_DS1_v2, US West, 3 Years"),
	// 		Term: to.Ptr("P3Y"),
	// 		UserFriendlyAppliedScopeType: to.Ptr("Shared"),
	// 		UserFriendlyRenewState: to.Ptr("On"),
	// 		Utilization: &armbilling.ReservationPropertyUtilization{
	// 			Aggregates: []*armbilling.ReservationUtilizationAggregates{
	// 				{
	// 					Grain: to.Ptr[float32](1),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 				},
	// 				{
	// 					Grain: to.Ptr[float32](7),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 				},
	// 				{
	// 					Grain: to.Ptr[float32](30),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 			}},
	// 			Trend: to.Ptr("SAME"),
	// 		},
	// 	},
	// 	SKU: &armbilling.ReservationSKUProperty{
	// 		Name: to.Ptr("Standard_DS1_v2"),
	// 	},
	// 	Tags: map[string]*string{
	// 		"key1": to.Ptr("value1"),
	// 		"key2": to.Ptr("value2"),
	// 	},
	// }
}
Example (ReservationGetByBillingAccountManagementGroup)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/reservationGetByBillingAccountManagementGroup.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewReservationsClient().GetByReservationOrder(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", "30000000-0000-0000-0000-000000000000", &armbilling.ReservationsClientGetByReservationOrderOptions{Expand: 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.Reservation = armbilling.Reservation{
	// 	Name: to.Ptr("30000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("microsoft.billing/billingAccounts/reservationOrders/reservations"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/reservationOrders/20000000-0000-0000-0000-000000000000/reservations/30000000-0000-0000-0000-000000000000"),
	// 	Etag: to.Ptr[int32](21),
	// 	Location: to.Ptr("westus"),
	// 	Properties: &armbilling.ReservationProperty{
	// 		AppliedScopeProperties: &armbilling.ReservationAppliedScopeProperties{
	// 			DisplayName: to.Ptr("TestRg"),
	// 			ManagementGroupID: to.Ptr("/providers/Microsoft.Management/managementGroups/TestRg"),
	// 			TenantID: to.Ptr("50000000-0000-0000-0000-000000000009"),
	// 		},
	// 		AppliedScopeType: to.Ptr("ManagementGroup"),
	// 		Archived: to.Ptr(false),
	// 		BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:34:12.926Z"); return t}()),
	// 		BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
	// 		BillingScopeID: to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009"),
	// 		DisplayName: to.Ptr("VM_RI_11-24-2021_22-30"),
	// 		DisplayProvisioningState: to.Ptr("NoBenefit"),
	// 		EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-26T01:19:31.991Z"); return t}()),
	// 		ExpiryDate: to.Ptr("2024-11-25"),
	// 		ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-11-25T06:34:12.926Z"); return t}()),
	// 		ExtendedStatusInfo: &armbilling.ReservationExtendedStatusInfo{
	// 			Message: to.Ptr("The subscriptions utilizing the reservation were removed or transferred from this account and no longer receive the reservation benefit. You can cancel the reservation or transfer to the right account or create resources and subscriptions to map it to this reservation."),
	// 			StatusCode: to.Ptr(armbilling.ReservationStatusCodeNoBenefit),
	// 		},
	// 		InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
	// 		LastUpdatedDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-26T01:19:32.069Z"); return t}()),
	// 		ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
	// 		ProvisioningState: to.Ptr("Succeeded"),
	// 		PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2021-11-25"); return t}()),
	// 		PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:31:18.392Z"); return t}()),
	// 		Quantity: to.Ptr[float32](1),
	// 		Renew: to.Ptr(true),
	// 		RenewProperties: &armbilling.RenewPropertiesResponse{
	// 			BillingCurrencyTotal: &armbilling.Price{
	// 				Amount: to.Ptr[float64](715.68),
	// 				CurrencyCode: to.Ptr("USD"),
	// 			},
	// 			PricingCurrencyTotal: &armbilling.Price{
	// 				Amount: to.Ptr[float64](715.68),
	// 				CurrencyCode: to.Ptr("USD"),
	// 			},
	// 			PurchaseProperties: &armbilling.ReservationPurchaseRequest{
	// 				Location: to.Ptr("westus"),
	// 				Properties: &armbilling.ReservationPurchaseRequestProperties{
	// 					AppliedScopeProperties: &armbilling.ReservationAppliedScopeProperties{
	// 						ManagementGroupID: to.Ptr("/providers/Microsoft.Management/managementGroups/TestRg"),
	// 						TenantID: to.Ptr("50000000-0000-0000-0000-000000000009"),
	// 					},
	// 					AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeManagementGroup),
	// 					BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
	// 					BillingScopeID: to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009"),
	// 					DisplayName: to.Ptr("VM_RI_11-24-2021_22-30_renewed"),
	// 					InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
	// 					Quantity: to.Ptr[int32](1),
	// 					Renew: to.Ptr(false),
	// 					ReservedResourceProperties: &armbilling.ReservationPurchaseRequestPropertiesReservedResourceProperties{
	// 						InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
	// 					},
	// 					ReservedResourceType: to.Ptr("VirtualMachines"),
	// 					Term: to.Ptr("P3Y"),
	// 				},
	// 				SKU: &armbilling.SKUName{
	// 					Name: to.Ptr("Standard_DS1_v2"),
	// 				},
	// 			},
	// 		},
	// 		ReservedResourceType: to.Ptr("VirtualMachines"),
	// 		SKUDescription: to.Ptr("Reserved VM Instance, Standard_DS1_v2, US West, 3 Years"),
	// 		Term: to.Ptr("P3Y"),
	// 		UserFriendlyAppliedScopeType: to.Ptr("ManagementGroup"),
	// 		UserFriendlyRenewState: to.Ptr("On"),
	// 		Utilization: &armbilling.ReservationPropertyUtilization{
	// 			Aggregates: []*armbilling.ReservationUtilizationAggregates{
	// 				{
	// 					Grain: to.Ptr[float32](1),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 				},
	// 				{
	// 					Grain: to.Ptr[float32](7),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 				},
	// 				{
	// 					Grain: to.Ptr[float32](30),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 			}},
	// 			Trend: to.Ptr("SAME"),
	// 		},
	// 	},
	// 	SKU: &armbilling.ReservationSKUProperty{
	// 		Name: to.Ptr("Standard_DS1_v2"),
	// 	},
	// 	Tags: map[string]*string{
	// 		"key1": to.Ptr("value1"),
	// 		"key2": to.Ptr("value2"),
	// 	},
	// }
}
Example (ReservationGetByBillingAccountSingleResourceGroup)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/reservationGetByBillingAccountSingleResourceGroup.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewReservationsClient().GetByReservationOrder(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", "30000000-0000-0000-0000-000000000000", &armbilling.ReservationsClientGetByReservationOrderOptions{Expand: 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.Reservation = armbilling.Reservation{
	// 	Name: to.Ptr("30000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("microsoft.billing/billingAccounts/reservationOrders/reservations"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/reservationOrders/20000000-0000-0000-0000-000000000000/reservations/30000000-0000-0000-0000-000000000000"),
	// 	Etag: to.Ptr[int32](23),
	// 	Location: to.Ptr("westus"),
	// 	Properties: &armbilling.ReservationProperty{
	// 		AppliedScopeProperties: &armbilling.ReservationAppliedScopeProperties{
	// 			DisplayName: to.Ptr("fastpathtesting_20210915"),
	// 			ResourceGroupID: to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009/resourcegroups/fastpathtesting_20210915"),
	// 		},
	// 		AppliedScopeType: to.Ptr("Single"),
	// 		Archived: to.Ptr(false),
	// 		BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:34:12.926Z"); return t}()),
	// 		BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
	// 		BillingScopeID: to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009"),
	// 		DisplayName: to.Ptr("VM_RI_11-24-2021_22-30"),
	// 		DisplayProvisioningState: to.Ptr("Succeeded"),
	// 		EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-26T01:21:47.293Z"); return t}()),
	// 		ExpiryDate: to.Ptr("2024-11-25"),
	// 		ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-11-25T06:34:12.926Z"); return t}()),
	// 		InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
	// 		LastUpdatedDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-26T01:21:47.356Z"); return t}()),
	// 		ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
	// 		ProvisioningState: to.Ptr("Succeeded"),
	// 		PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2021-11-25"); return t}()),
	// 		PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:31:18.392Z"); return t}()),
	// 		Quantity: to.Ptr[float32](1),
	// 		Renew: to.Ptr(true),
	// 		RenewProperties: &armbilling.RenewPropertiesResponse{
	// 			BillingCurrencyTotal: &armbilling.Price{
	// 				Amount: to.Ptr[float64](715.68),
	// 				CurrencyCode: to.Ptr("USD"),
	// 			},
	// 			PricingCurrencyTotal: &armbilling.Price{
	// 				Amount: to.Ptr[float64](715.68),
	// 				CurrencyCode: to.Ptr("USD"),
	// 			},
	// 			PurchaseProperties: &armbilling.ReservationPurchaseRequest{
	// 				Location: to.Ptr("westus"),
	// 				Properties: &armbilling.ReservationPurchaseRequestProperties{
	// 					AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeSingle),
	// 					AppliedScopes: []*string{
	// 						to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009/resourcegroups/fastpathtesting_20210915")},
	// 						BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
	// 						BillingScopeID: to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009"),
	// 						DisplayName: to.Ptr("VM_RI_11-24-2021_22-30_renewed"),
	// 						InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
	// 						Quantity: to.Ptr[int32](1),
	// 						Renew: to.Ptr(false),
	// 						ReservedResourceProperties: &armbilling.ReservationPurchaseRequestPropertiesReservedResourceProperties{
	// 							InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
	// 						},
	// 						ReservedResourceType: to.Ptr("VirtualMachines"),
	// 						Term: to.Ptr("P3Y"),
	// 					},
	// 					SKU: &armbilling.SKUName{
	// 						Name: to.Ptr("Standard_DS1_v2"),
	// 					},
	// 				},
	// 			},
	// 			ReservedResourceType: to.Ptr("VirtualMachines"),
	// 			SKUDescription: to.Ptr("Reserved VM Instance, Standard_DS1_v2, US West, 3 Years"),
	// 			Term: to.Ptr("P3Y"),
	// 			UserFriendlyAppliedScopeType: to.Ptr("ResourceGroup"),
	// 			UserFriendlyRenewState: to.Ptr("On"),
	// 			Utilization: &armbilling.ReservationPropertyUtilization{
	// 				Aggregates: []*armbilling.ReservationUtilizationAggregates{
	// 					{
	// 						Grain: to.Ptr[float32](1),
	// 						GrainUnit: to.Ptr("days"),
	// 						Value: to.Ptr[float32](0),
	// 						ValueUnit: to.Ptr("percentage"),
	// 					},
	// 					{
	// 						Grain: to.Ptr[float32](7),
	// 						GrainUnit: to.Ptr("days"),
	// 						Value: to.Ptr[float32](0),
	// 						ValueUnit: to.Ptr("percentage"),
	// 					},
	// 					{
	// 						Grain: to.Ptr[float32](30),
	// 						GrainUnit: to.Ptr("days"),
	// 						Value: to.Ptr[float32](0),
	// 						ValueUnit: to.Ptr("percentage"),
	// 				}},
	// 				Trend: to.Ptr("SAME"),
	// 			},
	// 		},
	// 		SKU: &armbilling.ReservationSKUProperty{
	// 			Name: to.Ptr("Standard_DS1_v2"),
	// 		},
	// 		Tags: map[string]*string{
	// 			"key1": to.Ptr("value1"),
	// 			"key2": to.Ptr("value2"),
	// 		},
	// 	}
}
Example (ReservationGetByBillingAccountSingleScope)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/reservationGetByBillingAccountSingleScope.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewReservationsClient().GetByReservationOrder(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", "30000000-0000-0000-0000-000000000000", &armbilling.ReservationsClientGetByReservationOrderOptions{Expand: 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.Reservation = armbilling.Reservation{
	// 	Name: to.Ptr("30000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("microsoft.billing/billingAccounts/reservationOrders/reservations"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/reservationOrders/20000000-0000-0000-0000-000000000000/reservations/30000000-0000-0000-0000-000000000000"),
	// 	Etag: to.Ptr[int32](19),
	// 	Location: to.Ptr("westus"),
	// 	Properties: &armbilling.ReservationProperty{
	// 		AppliedScopeProperties: &armbilling.ReservationAppliedScopeProperties{
	// 			DisplayName: to.Ptr("Azure subscription 1"),
	// 			SubscriptionID: to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009"),
	// 		},
	// 		AppliedScopeType: to.Ptr("Single"),
	// 		Archived: to.Ptr(false),
	// 		BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:34:12.926Z"); return t}()),
	// 		BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
	// 		BillingScopeID: to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009"),
	// 		DisplayName: to.Ptr("VM_RI_11-24-2021_22-30"),
	// 		DisplayProvisioningState: to.Ptr("Succeeded"),
	// 		EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-26T01:14:18.558Z"); return t}()),
	// 		ExpiryDate: to.Ptr("2024-11-25"),
	// 		ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-11-25T06:34:12.926Z"); return t}()),
	// 		InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOff),
	// 		LastUpdatedDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-26T01:14:18.605Z"); return t}()),
	// 		ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
	// 		ProvisioningState: to.Ptr("Succeeded"),
	// 		PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2021-11-25"); return t}()),
	// 		PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:31:18.392Z"); return t}()),
	// 		Quantity: to.Ptr[float32](1),
	// 		Renew: to.Ptr(true),
	// 		RenewProperties: &armbilling.RenewPropertiesResponse{
	// 			BillingCurrencyTotal: &armbilling.Price{
	// 				Amount: to.Ptr[float64](715.68),
	// 				CurrencyCode: to.Ptr("USD"),
	// 			},
	// 			PricingCurrencyTotal: &armbilling.Price{
	// 				Amount: to.Ptr[float64](715.68),
	// 				CurrencyCode: to.Ptr("USD"),
	// 			},
	// 			PurchaseProperties: &armbilling.ReservationPurchaseRequest{
	// 				Location: to.Ptr("westus"),
	// 				Properties: &armbilling.ReservationPurchaseRequestProperties{
	// 					AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeSingle),
	// 					AppliedScopes: []*string{
	// 						to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009")},
	// 						BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
	// 						BillingScopeID: to.Ptr("/subscriptions/30000000-0000-0000-0000-000000000009"),
	// 						DisplayName: to.Ptr("VM_RI_11-24-2021_22-30_renewed"),
	// 						InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOff),
	// 						Quantity: to.Ptr[int32](1),
	// 						Renew: to.Ptr(false),
	// 						ReservedResourceProperties: &armbilling.ReservationPurchaseRequestPropertiesReservedResourceProperties{
	// 							InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOff),
	// 						},
	// 						ReservedResourceType: to.Ptr("VirtualMachines"),
	// 						Term: to.Ptr("P3Y"),
	// 					},
	// 					SKU: &armbilling.SKUName{
	// 						Name: to.Ptr("Standard_DS1_v2"),
	// 					},
	// 				},
	// 			},
	// 			ReservedResourceType: to.Ptr("VirtualMachines"),
	// 			SKUDescription: to.Ptr("Reserved VM Instance, Standard_DS1_v2, US West, 3 Years"),
	// 			Term: to.Ptr("P3Y"),
	// 			UserFriendlyAppliedScopeType: to.Ptr("Single"),
	// 			UserFriendlyRenewState: to.Ptr("On"),
	// 			Utilization: &armbilling.ReservationPropertyUtilization{
	// 				Aggregates: []*armbilling.ReservationUtilizationAggregates{
	// 					{
	// 						Grain: to.Ptr[float32](1),
	// 						GrainUnit: to.Ptr("days"),
	// 						Value: to.Ptr[float32](0),
	// 						ValueUnit: to.Ptr("percentage"),
	// 					},
	// 					{
	// 						Grain: to.Ptr[float32](7),
	// 						GrainUnit: to.Ptr("days"),
	// 						Value: to.Ptr[float32](0),
	// 						ValueUnit: to.Ptr("percentage"),
	// 					},
	// 					{
	// 						Grain: to.Ptr[float32](30),
	// 						GrainUnit: to.Ptr("days"),
	// 						Value: to.Ptr[float32](0),
	// 						ValueUnit: to.Ptr("percentage"),
	// 				}},
	// 				Trend: to.Ptr("SAME"),
	// 			},
	// 		},
	// 		SKU: &armbilling.ReservationSKUProperty{
	// 			Name: to.Ptr("Standard_DS1_v2"),
	// 		},
	// 		Tags: map[string]*string{
	// 			"key1": to.Ptr("value1"),
	// 			"key2": to.Ptr("value2"),
	// 		},
	// 	}
}

func (*ReservationsClient) NewListByBillingAccountPager

NewListByBillingAccountPager - Lists the reservations in the billing account and the roll up counts of reservations group by provisioning states.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - ReservationsClientListByBillingAccountOptions contains the optional parameters for the ReservationsClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/reservationsListByBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewReservationsClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.ReservationsClientListByBillingAccountOptions{Filter: nil,
		OrderBy:        nil,
		Skiptoken:      nil,
		RefreshSummary: nil,
		SelectedState:  to.Ptr("Succeeded"),
		Take:           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.ReservationsListResult = armbilling.ReservationsListResult{
		// 	Summary: &armbilling.ReservationSummary{
		// 		CancelledCount: to.Ptr[float32](0),
		// 		ExpiredCount: to.Ptr[float32](0),
		// 		ExpiringCount: to.Ptr[float32](0),
		// 		FailedCount: to.Ptr[float32](0),
		// 		NoBenefitCount: to.Ptr[float32](0),
		// 		PendingCount: to.Ptr[float32](0),
		// 		ProcessingCount: to.Ptr[float32](0),
		// 		SucceededCount: to.Ptr[float32](1),
		// 		WarningCount: to.Ptr[float32](0),
		// 	},
		// 	Value: []*armbilling.Reservation{
		// 		{
		// 			Name: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("microsoft.billing/billingAccounts/reservationOrders/reservations"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/reservationOrders/00000000-0000-0000-0000-000000000001/reservations/00000000-0000-0000-0000-000000000000"),
		// 			Location: to.Ptr("global"),
		// 			Properties: &armbilling.ReservationProperty{
		// 				AppliedScopeType: to.Ptr("Shared"),
		// 				Archived: to.Ptr(false),
		// 				BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-01-18T21:54:31.074Z"); return t}()),
		// 				BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
		// 				BillingScopeID: to.Ptr("/subscriptions/eef82110-c91b-4395-9420-fcfcbefc5a47"),
		// 				DisplayName: to.Ptr("VirtualMachineSoftware_01-18-2022_13-51"),
		// 				DisplayProvisioningState: to.Ptr("Succeeded"),
		// 				EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "1-01-01T00:00:00.000Z"); return t}()),
		// 				ExpiryDate: to.Ptr("2025-01-18"),
		// 				ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2025-01-18T21:54:31.074Z"); return t}()),
		// 				InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
		// 				LastUpdatedDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "0-12-31T15:54:17.000Z"); return t}()),
		// 				ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
		// 				ProvisioningState: to.Ptr("Succeeded"),
		// 				PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-01-18"); return t}()),
		// 				PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-01-18T21:51:29.906Z"); return t}()),
		// 				Quantity: to.Ptr[float32](1),
		// 				Renew: to.Ptr(false),
		// 				ReservedResourceType: to.Ptr("VirtualMachineSoftware"),
		// 				SKUDescription: to.Ptr("Sku description"),
		// 				Term: to.Ptr("P3Y"),
		// 				UserFriendlyAppliedScopeType: to.Ptr("Shared"),
		// 				UserFriendlyRenewState: to.Ptr("Off"),
		// 				Utilization: &armbilling.ReservationPropertyUtilization{
		// 					Aggregates: []*armbilling.ReservationUtilizationAggregates{
		// 						{
		// 							Grain: to.Ptr[float32](1),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](7),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](30),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 					}},
		// 					Trend: to.Ptr("SAME"),
		// 				},
		// 			},
		// 			SKU: &armbilling.ReservationSKUProperty{
		// 				Name: to.Ptr("mock_sku"),
		// 			},
		// 			Tags: map[string]*string{
		// 				"key1": to.Ptr("value1"),
		// 				"key2": to.Ptr("value2"),
		// 			},
		// 	}},
		// }
	}
}

func (*ReservationsClient) NewListByBillingProfilePager

func (client *ReservationsClient) NewListByBillingProfilePager(billingAccountName string, billingProfileName string, options *ReservationsClientListByBillingProfileOptions) *runtime.Pager[ReservationsClientListByBillingProfileResponse]

NewListByBillingProfilePager - Lists the reservations for a billing profile and the roll up counts of reservations group by provisioning state.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - ReservationsClientListByBillingProfileOptions contains the optional parameters for the ReservationsClient.NewListByBillingProfilePager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/reservationsListByBillingProfile.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewReservationsClient().NewListByBillingProfilePager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "AAAA-AAAA-AAA-AAA", &armbilling.ReservationsClientListByBillingProfileOptions{Filter: nil,
		OrderBy:        nil,
		Skiptoken:      nil,
		RefreshSummary: nil,
		SelectedState:  to.Ptr("Succeeded"),
		Take:           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.ReservationsListResult = armbilling.ReservationsListResult{
		// 	Summary: &armbilling.ReservationSummary{
		// 		CancelledCount: to.Ptr[float32](0),
		// 		ExpiredCount: to.Ptr[float32](0),
		// 		ExpiringCount: to.Ptr[float32](0),
		// 		FailedCount: to.Ptr[float32](0),
		// 		NoBenefitCount: to.Ptr[float32](0),
		// 		PendingCount: to.Ptr[float32](0),
		// 		ProcessingCount: to.Ptr[float32](0),
		// 		SucceededCount: to.Ptr[float32](1),
		// 		WarningCount: to.Ptr[float32](0),
		// 	},
		// 	Value: []*armbilling.Reservation{
		// 		{
		// 			Name: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("microsoft.billing/billingAccounts/reservationOrders/reservations"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/reservationOrders/00000000-0000-0000-0000-000000000001/reservations/00000000-0000-0000-0000-000000000000"),
		// 			Location: to.Ptr("global"),
		// 			Properties: &armbilling.ReservationProperty{
		// 				AppliedScopeType: to.Ptr("Shared"),
		// 				Archived: to.Ptr(false),
		// 				BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-01-18T21:54:31.074Z"); return t}()),
		// 				BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
		// 				BillingScopeID: to.Ptr("/subscriptions/eef82110-c91b-4395-9420-fcfcbefc5a47"),
		// 				DisplayName: to.Ptr("VirtualMachineSoftware_01-18-2022_13-51"),
		// 				DisplayProvisioningState: to.Ptr("Succeeded"),
		// 				EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "1-01-01T00:00:00.000Z"); return t}()),
		// 				ExpiryDate: to.Ptr("2025-01-18"),
		// 				ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2025-01-18T21:54:31.074Z"); return t}()),
		// 				InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
		// 				LastUpdatedDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "0-12-31T15:54:17.000Z"); return t}()),
		// 				ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
		// 				ProvisioningState: to.Ptr("Succeeded"),
		// 				PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2022-01-18"); return t}()),
		// 				PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-01-18T21:51:29.906Z"); return t}()),
		// 				Quantity: to.Ptr[float32](1),
		// 				Renew: to.Ptr(false),
		// 				ReservedResourceType: to.Ptr("VirtualMachineSoftware"),
		// 				SKUDescription: to.Ptr("Sku description"),
		// 				Term: to.Ptr("P3Y"),
		// 				UserFriendlyAppliedScopeType: to.Ptr("Shared"),
		// 				UserFriendlyRenewState: to.Ptr("Off"),
		// 				Utilization: &armbilling.ReservationPropertyUtilization{
		// 					Aggregates: []*armbilling.ReservationUtilizationAggregates{
		// 						{
		// 							Grain: to.Ptr[float32](1),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](7),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](30),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 					}},
		// 					Trend: to.Ptr("SAME"),
		// 				},
		// 			},
		// 			SKU: &armbilling.ReservationSKUProperty{
		// 				Name: to.Ptr("mock_sku"),
		// 			},
		// 			Tags: map[string]*string{
		// 				"key1": to.Ptr("value1"),
		// 				"key2": to.Ptr("value2"),
		// 			},
		// 	}},
		// }
	}
}

func (*ReservationsClient) NewListByReservationOrderPager

func (client *ReservationsClient) NewListByReservationOrderPager(billingAccountName string, reservationOrderID string, options *ReservationsClientListByReservationOrderOptions) *runtime.Pager[ReservationsClientListByReservationOrderResponse]

NewListByReservationOrderPager - List Reservations within a single ReservationOrder in the billing account.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • reservationOrderID - Order Id of the reservation
  • options - ReservationsClientListByReservationOrderOptions contains the optional parameters for the ReservationsClient.NewListByReservationOrderPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/reservationsGetFromOrderByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewReservationsClient().NewListByReservationOrderPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", 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.ReservationList = armbilling.ReservationList{
		// 	Value: []*armbilling.Reservation{
		// 		{
		// 			Name: to.Ptr("a7d70646-b848-4498-8093-5938128b225c"),
		// 			Type: to.Ptr("microsoft.billing/billingAccounts/reservationOrders/reservations"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/4973e1de-a829-5c64-4fef-0a692e2b3108:1970c5da-0aa4-46fd-a917-4772f9a17978_2019-05-31/reservationOrders/99f340d1-6db4-41b4-b469-cfc499716973/reservations/a7d70646-b848-4498-8093-5938128b225c"),
		// 			Etag: to.Ptr[int32](15),
		// 			Location: to.Ptr("westus"),
		// 			Properties: &armbilling.ReservationProperty{
		// 				AppliedScopeType: to.Ptr("Shared"),
		// 				Archived: to.Ptr(false),
		// 				BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:34:12.926Z"); return t}()),
		// 				BillingPlan: to.Ptr(armbilling.ReservationBillingPlanMonthly),
		// 				BillingScopeID: to.Ptr("/subscriptions/eef82110-c91b-4395-9420-fcfcbefc5a47"),
		// 				DisplayName: to.Ptr("VM_RI_11-24-2021_22-30"),
		// 				DisplayProvisioningState: to.Ptr("Succeeded"),
		// 				EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-24T01:46:05.425Z"); return t}()),
		// 				ExpiryDate: to.Ptr("2024-11-25"),
		// 				ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-11-25T06:34:12.926Z"); return t}()),
		// 				InstanceFlexibility: to.Ptr(armbilling.InstanceFlexibilityOn),
		// 				LastUpdatedDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-24T01:46:05.534Z"); return t}()),
		// 				ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
		// 				ProvisioningState: to.Ptr("Succeeded"),
		// 				PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2021-11-25"); return t}()),
		// 				PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-11-25T06:31:18.392Z"); return t}()),
		// 				Quantity: to.Ptr[float32](1),
		// 				Renew: to.Ptr(true),
		// 				ReservedResourceType: to.Ptr("VirtualMachines"),
		// 				SKUDescription: to.Ptr("Reserved VM Instance, Standard_DS1_v2, US West, 3 Years"),
		// 				Term: to.Ptr("P3Y"),
		// 				UserFriendlyAppliedScopeType: to.Ptr("Shared"),
		// 				UserFriendlyRenewState: to.Ptr("On"),
		// 				Utilization: &armbilling.ReservationPropertyUtilization{
		// 					Aggregates: []*armbilling.ReservationUtilizationAggregates{
		// 						{
		// 							Grain: to.Ptr[float32](1),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](7),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](30),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 					}},
		// 					Trend: to.Ptr("SAME"),
		// 				},
		// 			},
		// 			SKU: &armbilling.ReservationSKUProperty{
		// 				Name: to.Ptr("Standard_DS1_v2"),
		// 			},
		// 			Tags: map[string]*string{
		// 				"key1": to.Ptr("value1"),
		// 				"key2": to.Ptr("value2"),
		// 			},
		// 	}},
		// }
	}
}

type ReservationsClientBeginUpdateByBillingAccountOptions

type ReservationsClientBeginUpdateByBillingAccountOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

ReservationsClientBeginUpdateByBillingAccountOptions contains the optional parameters for the ReservationsClient.BeginUpdateByBillingAccount method.

type ReservationsClientGetByReservationOrderOptions

type ReservationsClientGetByReservationOrderOptions struct {
	// May be used to expand the detail information of some properties.
	Expand *string
}

ReservationsClientGetByReservationOrderOptions contains the optional parameters for the ReservationsClient.GetByReservationOrder method.

type ReservationsClientGetByReservationOrderResponse

type ReservationsClientGetByReservationOrderResponse struct {
	// The definition of the reservation.
	Reservation
}

ReservationsClientGetByReservationOrderResponse contains the response from method ReservationsClient.GetByReservationOrder.

type ReservationsClientListByBillingAccountOptions

type ReservationsClientListByBillingAccountOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// To indicate whether to refresh the roll up counts of the reservations group by provisioning states
	RefreshSummary *string

	// The selected provisioning state
	SelectedState *string

	// The number of reservations to skip from the list before returning results
	Skiptoken *float32

	// The number of reservations to return in API response.
	Take *float32
}

ReservationsClientListByBillingAccountOptions contains the optional parameters for the ReservationsClient.NewListByBillingAccountPager method.

type ReservationsClientListByBillingAccountResponse

type ReservationsClientListByBillingAccountResponse struct {
	// The list of reservations and summary of roll out count of reservations in each state.
	ReservationsListResult
}

ReservationsClientListByBillingAccountResponse contains the response from method ReservationsClient.NewListByBillingAccountPager.

type ReservationsClientListByBillingProfileOptions

type ReservationsClientListByBillingProfileOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// To indicate whether to refresh the roll up counts of the reservations group by provisioning states
	RefreshSummary *string

	// The selected provisioning state
	SelectedState *string

	// The number of reservations to skip from the list before returning results
	Skiptoken *float32

	// The number of reservations to return in API response.
	Take *float32
}

ReservationsClientListByBillingProfileOptions contains the optional parameters for the ReservationsClient.NewListByBillingProfilePager method.

type ReservationsClientListByBillingProfileResponse

type ReservationsClientListByBillingProfileResponse struct {
	// The list of reservations and summary of roll out count of reservations in each state.
	ReservationsListResult
}

ReservationsClientListByBillingProfileResponse contains the response from method ReservationsClient.NewListByBillingProfilePager.

type ReservationsClientListByReservationOrderOptions

type ReservationsClientListByReservationOrderOptions struct {
}

ReservationsClientListByReservationOrderOptions contains the optional parameters for the ReservationsClient.NewListByReservationOrderPager method.

type ReservationsClientListByReservationOrderResponse

type ReservationsClientListByReservationOrderResponse struct {
	// List of `Reservations
	ReservationList
}

ReservationsClientListByReservationOrderResponse contains the response from method ReservationsClient.NewListByReservationOrderPager.

type ReservationsClientUpdateByBillingAccountResponse

type ReservationsClientUpdateByBillingAccountResponse struct {
	// The definition of the reservation.
	Reservation
}

ReservationsClientUpdateByBillingAccountResponse contains the response from method ReservationsClient.BeginUpdateByBillingAccount.

type ReservationsListResult

type ReservationsListResult struct {
	// The roll out count summary of the reservations
	Summary *ReservationSummary

	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of reservations.
	Value []*Reservation
}

ReservationsListResult - The list of reservations and summary of roll out count of reservations in each state.

func (ReservationsListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type ReservationsListResult.

func (*ReservationsListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type ReservationsListResult.

type Resource

type Resource struct {
	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

Resource - Common fields that are returned in the response for all Azure Resource Manager resources

func (Resource) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type Resource.

func (*Resource) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type Resource.

type RoleAssignment

type RoleAssignment struct {
	// The properties of the billing role assignment.
	Properties *RoleAssignmentProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

RoleAssignment - The properties of the billing role assignment.

func (RoleAssignment) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RoleAssignment.

func (*RoleAssignment) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RoleAssignment.

type RoleAssignmentListResult

type RoleAssignmentListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*RoleAssignment
}

RoleAssignmentListResult - A container for a list of resources

func (RoleAssignmentListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RoleAssignmentListResult.

func (*RoleAssignmentListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RoleAssignmentListResult.

type RoleAssignmentProperties

type RoleAssignmentProperties struct {
	// REQUIRED; The ID of the role definition.
	RoleDefinitionID *string

	// The object id of the user to whom the role was assigned.
	PrincipalID *string

	// The principal PUID of the user to whom the role was assigned.
	PrincipalPuid *string

	// The principal tenant id of the user to whom the role was assigned.
	PrincipalTenantID *string

	// The scope at which the role was assigned.
	Scope *string

	// The authentication type of the user, whether Organization or MSA, of the user to whom the role was assigned. This is supported
	// only for billing accounts with agreement type Enterprise Agreement.
	UserAuthenticationType *string

	// The email address of the user to whom the role was assigned. This is supported only for billing accounts with agreement
	// type Enterprise Agreement.
	UserEmailAddress *string

	// READ-ONLY; The name of the billing account.
	BillingAccountDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies a billing account.
	BillingAccountID *string

	// READ-ONLY; The name of the billing profile.
	BillingProfileDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies a billing profile.
	BillingProfileID *string

	// READ-ONLY; The ID of the billing request that was created for the role assignment. This is only applicable to cross tenant
	// role assignments or role assignments created through the billing request.
	BillingRequestID *string

	// READ-ONLY; The object ID of the user who created the role assignment.
	CreatedByPrincipalID *string

	// READ-ONLY; The principal PUID of the user who created the role assignment.
	CreatedByPrincipalPuid *string

	// READ-ONLY; The tenant Id of the user who created the role assignment.
	CreatedByPrincipalTenantID *string

	// READ-ONLY; The email address of the user who created the role assignment. This is supported only for billing accounts with
	// agreement type Enterprise Agreement.
	CreatedByUserEmailAddress *string

	// READ-ONLY; The date the role assignment was created.
	CreatedOn *time.Time

	// READ-ONLY; The name of the customer.
	CustomerDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies a customer.
	CustomerID *string

	// READ-ONLY; The name of the invoice section.
	InvoiceSectionDisplayName *string

	// READ-ONLY; The fully qualified ID that uniquely identifies an invoice section.
	InvoiceSectionID *string

	// READ-ONLY; The principal PUID of the user who modified the role assignment.
	ModifiedByPrincipalID *string

	// READ-ONLY; The principal PUID of the user who modified the role assignment.
	ModifiedByPrincipalPuid *string

	// READ-ONLY; The tenant Id of the user who modified the role assignment.
	ModifiedByPrincipalTenantID *string

	// READ-ONLY; The email address of the user who modified the role assignment. This is supported only for billing accounts
	// with agreement type Enterprise Agreement.
	ModifiedByUserEmailAddress *string

	// READ-ONLY; The date the role assignment was modified.
	ModifiedOn *time.Time

	// READ-ONLY; The display name of the principal to whom the role was assigned.
	PrincipalDisplayName *string

	// READ-ONLY; The friendly name of the tenant of the user to whom the role was assigned. This will be 'Primary Tenant' for
	// the primary tenant of the billing account.
	PrincipalTenantName *string

	// READ-ONLY; The type of a role Assignment.
	PrincipalType *PrincipalType

	// READ-ONLY; The provisioning state of the resource during a long-running operation.
	ProvisioningState *ProvisioningState
}

RoleAssignmentProperties - The properties of the billing role assignment.

func (RoleAssignmentProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RoleAssignmentProperties.

func (*RoleAssignmentProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RoleAssignmentProperties.

type RoleAssignmentsClient

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

RoleAssignmentsClient contains the methods for the BillingRoleAssignments group. Don't use this type directly, use NewRoleAssignmentsClient() instead.

func NewRoleAssignmentsClient

func NewRoleAssignmentsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*RoleAssignmentsClient, error)

NewRoleAssignmentsClient creates a new instance of RoleAssignmentsClient with the specified values.

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

func (*RoleAssignmentsClient) BeginCreateByBillingAccount

BeginCreateByBillingAccount - Adds a role assignment on a billing account. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • parameters - The properties of the billing role assignment.
  • options - RoleAssignmentsClientBeginCreateByBillingAccountOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentCreateByBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewRoleAssignmentsClient().BeginCreateByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", armbilling.RoleAssignmentProperties{
		PrincipalID:       to.Ptr("00000000-0000-0000-0000-000000000000"),
		PrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		RoleDefinitionID:  to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleDefinitions/10000000-aaaa-bbbb-cccc-100000000000"),
		UserEmailAddress:  to.Ptr("john@contoso.com"),
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.RoleAssignment = armbilling.RoleAssignment{
	// 	Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_00000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingRoleAssignments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_00000000-0000-0000-0000-000000000000"),
	// 	Properties: &armbilling.RoleAssignmentProperties{
	// 		CreatedByPrincipalID: to.Ptr("47309529-17e6-4104-b9e8-39f62fa1e5ed"),
	// 		CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 		CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 		PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 		PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 		RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleDefinitions/10000000-aaaa-bbbb-cccc-100000000000"),
	// 		Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30"),
	// 	},
	// }
}

func (*RoleAssignmentsClient) BeginCreateByBillingProfile

BeginCreateByBillingProfile - Adds a role assignment on a billing profile. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • parameters - The properties of the billing role assignment.
  • options - RoleAssignmentsClientBeginCreateByBillingProfileOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateByBillingProfile method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentCreateByBillingProfile.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewRoleAssignmentsClient().BeginCreateByBillingProfile(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "BKM6-54VH-BG7-PGB", armbilling.RoleAssignmentProperties{
		PrincipalID:       to.Ptr("00000000-0000-0000-0000-000000000000"),
		PrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		RoleDefinitionID:  to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/billingRoleDefinitions/10000000-aaaa-bbbb-cccc-100000000000"),
		UserEmailAddress:  to.Ptr("john@contoso.com"),
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.RoleAssignment = armbilling.RoleAssignment{
	// 	Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_00000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/billingRoleAssignments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_00000000-0000-0000-0000-000000000000"),
	// 	Properties: &armbilling.RoleAssignmentProperties{
	// 		CreatedByPrincipalID: to.Ptr("47309529-17e6-4104-b9e8-39f62fa1e5ed"),
	// 		CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 		CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 		PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 		PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 		RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleDefinitions/10000000-aaaa-bbbb-cccc-100000000000"),
	// 		Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB"),
	// 	},
	// }
}

func (*RoleAssignmentsClient) BeginCreateByCustomer

func (client *RoleAssignmentsClient) BeginCreateByCustomer(ctx context.Context, billingAccountName string, billingProfileName string, customerName string, parameters RoleAssignmentProperties, options *RoleAssignmentsClientBeginCreateByCustomerOptions) (*runtime.Poller[RoleAssignmentsClientCreateByCustomerResponse], error)

BeginCreateByCustomer - Adds a role assignment on a customer. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • parameters - The properties of the billing role assignment.
  • options - RoleAssignmentsClientBeginCreateByCustomerOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateByCustomer method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentCreateByCustomer.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewRoleAssignmentsClient().BeginCreateByCustomer(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "BKM6-54VH-BG7-PGB", "703ab484-dda2-4402-827b-a74513b61e2d", armbilling.RoleAssignmentProperties{
		PrincipalID:       to.Ptr("00000000-0000-0000-0000-000000000000"),
		PrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		RoleDefinitionID:  to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfileName/BKM6-54VH-BG7-PGB/customers/703ab484-dda2-4402-827b-a74513b61e2d/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
		UserEmailAddress:  to.Ptr("john@contoso.com"),
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.RoleAssignment = armbilling.RoleAssignment{
	// 	Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000000_00000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/billingRoleAssignments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfileName/BKM6-54VH-BG7-PGB/customers/703ab484-dda2-4402-827b-a74513b61e2d/billingRoleAssignments/30000000-aaaa-bbbb-cccc-100000000000_00000000-0000-0000-0000-000000000000"),
	// 	Properties: &armbilling.RoleAssignmentProperties{
	// 		CreatedByPrincipalID: to.Ptr("47309529-17e6-4104-b9e8-39f62fa1e5ed"),
	// 		CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 		CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 		PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 		PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 		RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfileName/BKM6-54VH-BG7-PGB/customers/703ab484-dda2-4402-827b-a74513b61e2d/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
	// 		Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfileName/BKM6-54VH-BG7-PGB/customers/703ab484-dda2-4402-827b-a74513b61e2d"),
	// 	},
	// }
}

func (*RoleAssignmentsClient) BeginCreateByInvoiceSection

func (client *RoleAssignmentsClient) BeginCreateByInvoiceSection(ctx context.Context, billingAccountName string, billingProfileName string, invoiceSectionName string, parameters RoleAssignmentProperties, options *RoleAssignmentsClientBeginCreateByInvoiceSectionOptions) (*runtime.Poller[RoleAssignmentsClientCreateByInvoiceSectionResponse], error)

BeginCreateByInvoiceSection - Adds a role assignment on an invoice section. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • parameters - The properties of the billing role assignment.
  • options - RoleAssignmentsClientBeginCreateByInvoiceSectionOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateByInvoiceSection method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentCreateByInvoiceSection.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewRoleAssignmentsClient().BeginCreateByInvoiceSection(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "BKM6-54VH-BG7-PGB", "xxxx-xxxx-xxx-xxx", armbilling.RoleAssignmentProperties{
		PrincipalID:       to.Ptr("00000000-0000-0000-0000-000000000000"),
		PrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		RoleDefinitionID:  to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/10000000-aaaa-bbbb-cccc-100000000000"),
		UserEmailAddress:  to.Ptr("john@contoso.com"),
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.RoleAssignment = armbilling.RoleAssignment{
	// 	Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_00000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections/billingRoleAssignments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_00000000-0000-0000-0000-000000000000"),
	// 	Properties: &armbilling.RoleAssignmentProperties{
	// 		CreatedByPrincipalID: to.Ptr("47309529-17e6-4104-b9e8-39f62fa1e5ed"),
	// 		CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 		CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 		PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 		PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 		RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/10000000-aaaa-bbbb-cccc-100000000000"),
	// 		Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx"),
	// 	},
	// }
}

func (*RoleAssignmentsClient) BeginCreateOrUpdateByBillingAccount

func (client *RoleAssignmentsClient) BeginCreateOrUpdateByBillingAccount(ctx context.Context, billingAccountName string, billingRoleAssignmentName string, parameters RoleAssignment, options *RoleAssignmentsClientBeginCreateOrUpdateByBillingAccountOptions) (*runtime.Poller[RoleAssignmentsClientCreateOrUpdateByBillingAccountResponse], error)

BeginCreateOrUpdateByBillingAccount - Create or update a billing role assignment. The operation is supported only for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • parameters - The properties of the billing role assignment.
  • options - RoleAssignmentsClientBeginCreateOrUpdateByBillingAccountOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateOrUpdateByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentCreateOrUpdateByBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewRoleAssignmentsClient().BeginCreateOrUpdateByBillingAccount(ctx, "7898901", "9dfd08c2-62a3-4d47-85bd-1cdba1408402", armbilling.RoleAssignment{
		Properties: &armbilling.RoleAssignmentProperties{
			PrincipalID:       to.Ptr("00000000-0000-0000-0000-000000000000"),
			PrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
			RoleDefinitionID:  to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/billingRoleDefinitions/9f1983cb-2574-400c-87e9-34cf8e2280db"),
			UserEmailAddress:  to.Ptr("john@contoso.com"),
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.RoleAssignment = armbilling.RoleAssignment{
	// 	Name: to.Ptr("9dfd08c2-62a3-4d47-85bd-1cdba1408402"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingRoleAssignments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/billingRoleAssignments/9dfd08c2-62a3-4d47-85bd-1cdba1408402"),
	// 	Properties: &armbilling.RoleAssignmentProperties{
	// 		CreatedByPrincipalID: to.Ptr("60d97094-2be4-46cc-a4fe-3633021a25b9"),
	// 		CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 		CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 		PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 		PrincipalTenantID: to.Ptr("7ca289b9-c32d-4f01-8566-7ff93261d76f"),
	// 		RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/billingRoleDefinitions/9f1983cb-2574-400c-87e9-34cf8e2280db"),
	// 		Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901"),
	// 	},
	// }
}

func (*RoleAssignmentsClient) BeginCreateOrUpdateByDepartment

func (client *RoleAssignmentsClient) BeginCreateOrUpdateByDepartment(ctx context.Context, billingAccountName string, departmentName string, billingRoleAssignmentName string, parameters RoleAssignment, options *RoleAssignmentsClientBeginCreateOrUpdateByDepartmentOptions) (*runtime.Poller[RoleAssignmentsClientCreateOrUpdateByDepartmentResponse], error)

BeginCreateOrUpdateByDepartment - Create or update a billing role assignment. The operation is supported only for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • departmentName - The name of the department.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • parameters - The properties of the billing role assignment.
  • options - RoleAssignmentsClientBeginCreateOrUpdateByDepartmentOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateOrUpdateByDepartment method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentCreateOrUpdateByDepartment.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewRoleAssignmentsClient().BeginCreateOrUpdateByDepartment(ctx, "7898901", "12345", "9dfd08c2-62a3-4d47-85bd-1cdba1408402", armbilling.RoleAssignment{
		Properties: &armbilling.RoleAssignmentProperties{
			PrincipalID:       to.Ptr("00000000-0000-0000-0000-000000000000"),
			PrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
			RoleDefinitionID:  to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/departments/12345/billingRoleDefinitions/9f1983cb-2574-400c-87e9-34cf8e2280db"),
			UserEmailAddress:  to.Ptr("john@contoso.com"),
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.RoleAssignment = armbilling.RoleAssignment{
	// 	Name: to.Ptr("9dfd08c2-62a3-4d47-85bd-1cdba1408402"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/departments/billingRoleAssignments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/departments/12345/billingRoleAssignments/9dfd08c2-62a3-4d47-85bd-1cdba1408402"),
	// 	Properties: &armbilling.RoleAssignmentProperties{
	// 		CreatedByPrincipalID: to.Ptr("60d97094-2be4-46cc-a4fe-3633021a25b9"),
	// 		CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 		CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 		PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 		PrincipalTenantID: to.Ptr("7ca289b9-c32d-4f01-8566-7ff93261d76f"),
	// 		RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/departments/12345/billingRoleDefinitions/9f1983cb-2574-400c-87e9-34cf8e2280db"),
	// 		Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/departments/12345"),
	// 	},
	// }
}

func (*RoleAssignmentsClient) BeginCreateOrUpdateByEnrollmentAccount

func (client *RoleAssignmentsClient) BeginCreateOrUpdateByEnrollmentAccount(ctx context.Context, billingAccountName string, enrollmentAccountName string, billingRoleAssignmentName string, parameters RoleAssignment, options *RoleAssignmentsClientBeginCreateOrUpdateByEnrollmentAccountOptions) (*runtime.Poller[RoleAssignmentsClientCreateOrUpdateByEnrollmentAccountResponse], error)

BeginCreateOrUpdateByEnrollmentAccount - Create or update a billing role assignment. The operation is supported only for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • enrollmentAccountName - The name of the enrollment account.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • parameters - The properties of the billing role assignment.
  • options - RoleAssignmentsClientBeginCreateOrUpdateByEnrollmentAccountOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateOrUpdateByEnrollmentAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentCreateOrUpdateByEnrollmentAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewRoleAssignmentsClient().BeginCreateOrUpdateByEnrollmentAccount(ctx, "7898901", "123456", "9dfd08c2-62a3-4d47-85bd-1cdba1408402", armbilling.RoleAssignment{
		Properties: &armbilling.RoleAssignmentProperties{
			PrincipalID:       to.Ptr("00000000-0000-0000-0000-000000000000"),
			PrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
			RoleDefinitionID:  to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/enrollmentAccounts/123456/billingRoleDefinitions/9f1983cb-2574-400c-87e9-34cf8e2280db"),
			UserEmailAddress:  to.Ptr("john@contoso.com"),
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.RoleAssignment = armbilling.RoleAssignment{
	// 	Name: to.Ptr("9dfd08c2-62a3-4d47-85bd-1cdba1408402"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingRoleAssignments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/enrollmentAccounts/123456/billingRoleAssignments/9dfd08c2-62a3-4d47-85bd-1cdba1408402"),
	// 	Properties: &armbilling.RoleAssignmentProperties{
	// 		CreatedByPrincipalID: to.Ptr("60d97094-2be4-46cc-a4fe-3633021a25b9"),
	// 		CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 		CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 		PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 		PrincipalTenantID: to.Ptr("7ca289b9-c32d-4f01-8566-7ff93261d76f"),
	// 		RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/enrollmentAccounts/123456/billingRoleDefinitions/9f1983cb-2574-400c-87e9-34cf8e2280db"),
	// 		Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/enrollmentAccounts/123456"),
	// 	},
	// }
}

func (*RoleAssignmentsClient) BeginResolveByBillingAccount

BeginResolveByBillingAccount - Lists the role assignments for the caller on a billing account while fetching user info for each role assignment. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement, Microsoft Customer Agreement or Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - RoleAssignmentsClientBeginResolveByBillingAccountOptions contains the optional parameters for the RoleAssignmentsClient.BeginResolveByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/resolveBillingRoleAssignmentByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewRoleAssignmentsClient().BeginResolveByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", &armbilling.RoleAssignmentsClientBeginResolveByBillingAccountOptions{ResolveScopeDisplayNames: nil,
		Filter: nil,
	})
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.RoleAssignmentListResult = armbilling.RoleAssignmentListResult{
	// 	Value: []*armbilling.RoleAssignment{
	// 		{
	// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingRoleAssignments"),
	// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 			Properties: &armbilling.RoleAssignmentProperties{
	// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
	// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 				RoleDefinitionID: to.Ptr("providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleDefinitions/00000000-0000-0000-0000-000000000000"),
	// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30"),
	// 			},
	// 		},
	// 		{
	// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
	// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingRoleAssignments"),
	// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
	// 			Properties: &armbilling.RoleAssignmentProperties{
	// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
	// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 				RoleDefinitionID: to.Ptr("providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleDefinitions/00000000-0000-0000-0000-000000000001"),
	// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30"),
	// 			},
	// 	}},
	// }
}

func (*RoleAssignmentsClient) BeginResolveByBillingProfile

BeginResolveByBillingProfile - Lists the role assignments for the caller on an billing profile while fetching user info for each role assignment. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - RoleAssignmentsClientBeginResolveByBillingProfileOptions contains the optional parameters for the RoleAssignmentsClient.BeginResolveByBillingProfile method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/resolveBillingRoleAssignmentByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewRoleAssignmentsClient().BeginResolveByBillingProfile(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "xxxx-xxxx-xxx-xxx", &armbilling.RoleAssignmentsClientBeginResolveByBillingProfileOptions{ResolveScopeDisplayNames: nil,
		Filter: nil,
	})
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.RoleAssignmentListResult = armbilling.RoleAssignmentListResult{
	// 	Value: []*armbilling.RoleAssignment{
	// 		{
	// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/billingRoleAssignments"),
	// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 			Properties: &armbilling.RoleAssignmentProperties{
	// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
	// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 				RoleDefinitionID: to.Ptr("providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/00000000-0000-0000-0000-000000000000"),
	// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 			},
	// 		},
	// 		{
	// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
	// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/billingRoleAssignments"),
	// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
	// 			Properties: &armbilling.RoleAssignmentProperties{
	// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
	// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 				RoleDefinitionID: to.Ptr("providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/00000000-0000-0000-0000-000000000001"),
	// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 			},
	// 	}},
	// }
}

func (*RoleAssignmentsClient) BeginResolveByCustomer

func (client *RoleAssignmentsClient) BeginResolveByCustomer(ctx context.Context, billingAccountName string, billingProfileName string, customerName string, options *RoleAssignmentsClientBeginResolveByCustomerOptions) (*runtime.Poller[RoleAssignmentsClientResolveByCustomerResponse], error)

BeginResolveByCustomer - Lists the role assignments for the caller on a customer while fetching user info for each role assignment. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • options - RoleAssignmentsClientBeginResolveByCustomerOptions contains the optional parameters for the RoleAssignmentsClient.BeginResolveByCustomer method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/resolveBillingRoleAssignmentByCustomer.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewRoleAssignmentsClient().BeginResolveByCustomer(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "xxxx-xxxx-xxx-xxx", "703ab484-dda2-4402-827b-a74513b61e2d", &armbilling.RoleAssignmentsClientBeginResolveByCustomerOptions{ResolveScopeDisplayNames: nil,
		Filter: nil,
	})
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.RoleAssignmentListResult = armbilling.RoleAssignmentListResult{
	// 	Value: []*armbilling.RoleAssignment{
	// 		{
	// 			Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/billingRoleAssignments"),
	// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/customers/703ab484-dda2-4402-827b-a74513b61e2d/billingRoleAssignments/30000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 			Properties: &armbilling.RoleAssignmentProperties{
	// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
	// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 				PrincipalTenantID: to.Ptr("c360d6f1-2709-476d-81bb-d075b213d9fc"),
	// 				PrincipalTenantName: to.Ptr("Foo Bar"),
	// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/customers/703ab484-dda2-4402-827b-a74513b61e2d/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
	// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/customers/703ab484-dda2-4402-827b-a74513b61e2d"),
	// 				UserEmailAddress: to.Ptr("foo@bar.com"),
	// 			},
	// 		},
	// 		{
	// 			Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
	// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/billingRoleAssignments"),
	// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/customers/703ab484-dda2-4402-827b-a74513b61e2d/billingRoleAssignments/30000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
	// 			Properties: &armbilling.RoleAssignmentProperties{
	// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
	// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 				PrincipalTenantID: to.Ptr("c360d6f1-2709-476d-81bb-d075b213d9fc"),
	// 				PrincipalTenantName: to.Ptr("Foo Bar"),
	// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/customers/703ab484-dda2-4402-827b-a74513b61e2d/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
	// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/customers/703ab484-dda2-4402-827b-a74513b61e2d"),
	// 				UserEmailAddress: to.Ptr("foo@bar.com"),
	// 			},
	// 	}},
	// }
}

func (*RoleAssignmentsClient) BeginResolveByInvoiceSection

func (client *RoleAssignmentsClient) BeginResolveByInvoiceSection(ctx context.Context, billingAccountName string, billingProfileName string, invoiceSectionName string, options *RoleAssignmentsClientBeginResolveByInvoiceSectionOptions) (*runtime.Poller[RoleAssignmentsClientResolveByInvoiceSectionResponse], error)

BeginResolveByInvoiceSection - Lists the role assignments for the caller on an invoice section while fetching user info for each role assignment. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • options - RoleAssignmentsClientBeginResolveByInvoiceSectionOptions contains the optional parameters for the RoleAssignmentsClient.BeginResolveByInvoiceSection method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/resolveBillingRoleAssignmentByInvoiceSection.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewRoleAssignmentsClient().BeginResolveByInvoiceSection(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "BKM6-54VH-BG7-PGB", "xxxx-xxxx-xxx-xxx", &armbilling.RoleAssignmentsClientBeginResolveByInvoiceSectionOptions{ResolveScopeDisplayNames: nil,
		Filter: nil,
	})
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.RoleAssignmentListResult = armbilling.RoleAssignmentListResult{
	// 	Value: []*armbilling.RoleAssignment{
	// 		{
	// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections/billingRoleAssignments"),
	// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 			Properties: &armbilling.RoleAssignmentProperties{
	// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
	// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
	// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx"),
	// 			},
	// 		},
	// 		{
	// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
	// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections/billingRoleAssignments"),
	// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
	// 			Properties: &armbilling.RoleAssignmentProperties{
	// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
	// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
	// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx"),
	// 			},
	// 	}},
	// }
}

func (*RoleAssignmentsClient) DeleteByBillingAccount

func (client *RoleAssignmentsClient) DeleteByBillingAccount(ctx context.Context, billingAccountName string, billingRoleAssignmentName string, options *RoleAssignmentsClientDeleteByBillingAccountOptions) (RoleAssignmentsClientDeleteByBillingAccountResponse, error)

DeleteByBillingAccount - Deletes a role assignment on a billing account. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement, Microsoft Customer Agreement or Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • options - RoleAssignmentsClientDeleteByBillingAccountOptions contains the optional parameters for the RoleAssignmentsClient.DeleteByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentDeleteByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	_, err = clientFactory.NewRoleAssignmentsClient().DeleteByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
}

func (*RoleAssignmentsClient) DeleteByBillingProfile

func (client *RoleAssignmentsClient) DeleteByBillingProfile(ctx context.Context, billingAccountName string, billingProfileName string, billingRoleAssignmentName string, options *RoleAssignmentsClientDeleteByBillingProfileOptions) (RoleAssignmentsClientDeleteByBillingProfileResponse, error)

DeleteByBillingProfile - Deletes a role assignment on a billing profile. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • options - RoleAssignmentsClientDeleteByBillingProfileOptions contains the optional parameters for the RoleAssignmentsClient.DeleteByBillingProfile method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentDeleteByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	_, err = clientFactory.NewRoleAssignmentsClient().DeleteByBillingProfile(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "BKM6-54VH-BG7-PGB", "10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
}

func (*RoleAssignmentsClient) DeleteByCustomer

func (client *RoleAssignmentsClient) DeleteByCustomer(ctx context.Context, billingAccountName string, billingProfileName string, customerName string, billingRoleAssignmentName string, options *RoleAssignmentsClientDeleteByCustomerOptions) (RoleAssignmentsClientDeleteByCustomerResponse, error)

DeleteByCustomer - Deletes a role assignment on a customer. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • options - RoleAssignmentsClientDeleteByCustomerOptions contains the optional parameters for the RoleAssignmentsClient.DeleteByCustomer method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentDeleteByCustomer.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	_, err = clientFactory.NewRoleAssignmentsClient().DeleteByCustomer(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "BKM6-54VH-BG7-PGB", "703ab484-dda2-4402-827b-a74513b61e2d", "30000000-aaaa-bbbb-cccc-100000000000_00000000-0000-0000-0000-000000000000", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
}

func (*RoleAssignmentsClient) DeleteByDepartment

func (client *RoleAssignmentsClient) DeleteByDepartment(ctx context.Context, billingAccountName string, departmentName string, billingRoleAssignmentName string, options *RoleAssignmentsClientDeleteByDepartmentOptions) (RoleAssignmentsClientDeleteByDepartmentResponse, error)

DeleteByDepartment - Deletes a role assignment on a department. The operation is supported only for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • departmentName - The name of the department.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • options - RoleAssignmentsClientDeleteByDepartmentOptions contains the optional parameters for the RoleAssignmentsClient.DeleteByDepartment method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentDeleteByDepartment.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	_, err = clientFactory.NewRoleAssignmentsClient().DeleteByDepartment(ctx, "8608480", "123456", "9dfd08c2-62a3-4d47-85bd-1cdba1408402", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
}

func (*RoleAssignmentsClient) DeleteByEnrollmentAccount

func (client *RoleAssignmentsClient) DeleteByEnrollmentAccount(ctx context.Context, billingAccountName string, enrollmentAccountName string, billingRoleAssignmentName string, options *RoleAssignmentsClientDeleteByEnrollmentAccountOptions) (RoleAssignmentsClientDeleteByEnrollmentAccountResponse, error)

DeleteByEnrollmentAccount - Deletes a role assignment on a enrollment Account. The operation is supported only for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • enrollmentAccountName - The name of the enrollment account.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • options - RoleAssignmentsClientDeleteByEnrollmentAccountOptions contains the optional parameters for the RoleAssignmentsClient.DeleteByEnrollmentAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentDeleteByEnrollmentAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	_, err = clientFactory.NewRoleAssignmentsClient().DeleteByEnrollmentAccount(ctx, "8608480", "123456", "9dfd08c2-62a3-4d47-85bd-1cdba1408402", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
}

func (*RoleAssignmentsClient) DeleteByInvoiceSection

func (client *RoleAssignmentsClient) DeleteByInvoiceSection(ctx context.Context, billingAccountName string, billingProfileName string, invoiceSectionName string, billingRoleAssignmentName string, options *RoleAssignmentsClientDeleteByInvoiceSectionOptions) (RoleAssignmentsClientDeleteByInvoiceSectionResponse, error)

DeleteByInvoiceSection - Deletes a role assignment on an invoice section. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • options - RoleAssignmentsClientDeleteByInvoiceSectionOptions contains the optional parameters for the RoleAssignmentsClient.DeleteByInvoiceSection method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentDeleteByInvoiceSection.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	_, err = clientFactory.NewRoleAssignmentsClient().DeleteByInvoiceSection(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "BKM6-54VH-BG7-PGB", "xxxx-xxxx-xxx-xxx", "10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
}

func (*RoleAssignmentsClient) GetByBillingAccount

func (client *RoleAssignmentsClient) GetByBillingAccount(ctx context.Context, billingAccountName string, billingRoleAssignmentName string, options *RoleAssignmentsClientGetByBillingAccountOptions) (RoleAssignmentsClientGetByBillingAccountResponse, error)

GetByBillingAccount - Gets a role assignment for the caller on a billing account. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement, Microsoft Customer Agreement or Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • options - RoleAssignmentsClientGetByBillingAccountOptions contains the optional parameters for the RoleAssignmentsClient.GetByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentGetByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRoleAssignmentsClient().GetByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9", 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.RoleAssignment = armbilling.RoleAssignment{
	// 	Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingRoleAssignments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 	Properties: &armbilling.RoleAssignmentProperties{
	// 		CreatedByPrincipalID: to.Ptr(""),
	// 		CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 		CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 		PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 		RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleDefinitions/00000000-0000-0000-0000-000000000000"),
	// 		Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30"),
	// 	},
	// }
}

func (*RoleAssignmentsClient) GetByBillingProfile

func (client *RoleAssignmentsClient) GetByBillingProfile(ctx context.Context, billingAccountName string, billingProfileName string, billingRoleAssignmentName string, options *RoleAssignmentsClientGetByBillingProfileOptions) (RoleAssignmentsClientGetByBillingProfileResponse, error)

GetByBillingProfile - Gets a role assignment for the caller on a billing profile. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • options - RoleAssignmentsClientGetByBillingProfileOptions contains the optional parameters for the RoleAssignmentsClient.GetByBillingProfile method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentGetByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRoleAssignmentsClient().GetByBillingProfile(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "xxxx-xxxx-xxx-xxx", "10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9", 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.RoleAssignment = armbilling.RoleAssignment{
	// 	Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/billingRoleAssignments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 	Properties: &armbilling.RoleAssignmentProperties{
	// 		CreatedByPrincipalID: to.Ptr("46b831ec-42b2-4f1a-8b54-3fd5ff9d6aa1"),
	// 		CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 		CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 		PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 		RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/00000000-0000-0000-0000-000000000000"),
	// 		Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 	},
	// }
}

func (*RoleAssignmentsClient) GetByCustomer

func (client *RoleAssignmentsClient) GetByCustomer(ctx context.Context, billingAccountName string, billingProfileName string, customerName string, billingRoleAssignmentName string, options *RoleAssignmentsClientGetByCustomerOptions) (RoleAssignmentsClientGetByCustomerResponse, error)

GetByCustomer - Gets a role assignment for the caller on a customer. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • options - RoleAssignmentsClientGetByCustomerOptions contains the optional parameters for the RoleAssignmentsClient.GetByCustomer method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentGetByCustomer.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRoleAssignmentsClient().GetByCustomer(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "xxxx-xxxx-xxx-xxx", "703ab484-dda2-4402-827b-a74513b61e2d", "30000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9", 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.RoleAssignment = armbilling.RoleAssignment{
	// 	Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/billingRoleAssignments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/customers/703ab484-dda2-4402-827b-a74513b61e2d/billingRoleAssignments/30000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 	Properties: &armbilling.RoleAssignmentProperties{
	// 		CreatedByPrincipalID: to.Ptr(""),
	// 		CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 		CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 		PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 		RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/customers/703ab484-dda2-4402-827b-a74513b61e2d/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
	// 		Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/customers/703ab484-dda2-4402-827b-a74513b61e2d"),
	// 	},
	// }
}

func (*RoleAssignmentsClient) GetByDepartment

func (client *RoleAssignmentsClient) GetByDepartment(ctx context.Context, billingAccountName string, departmentName string, billingRoleAssignmentName string, options *RoleAssignmentsClientGetByDepartmentOptions) (RoleAssignmentsClientGetByDepartmentResponse, error)

GetByDepartment - Gets a role assignment for the caller on a department. The operation is supported only for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • departmentName - The name of the department.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • options - RoleAssignmentsClientGetByDepartmentOptions contains the optional parameters for the RoleAssignmentsClient.GetByDepartment method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentGetByDepartment.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRoleAssignmentsClient().GetByDepartment(ctx, "7898901", "225314", "9dfd08c2-62a3-4d47-85bd-1cdba1408402", 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.RoleAssignment = armbilling.RoleAssignment{
	// 	Name: to.Ptr("9dfd08c2-62a3-4d47-85bd-1cdba1408402"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/departments/billingRoleAssignments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/departments/225314/billingRoleAssignments/9dfd08c2-62a3-4d47-85bd-1cdba1408402"),
	// 	Properties: &armbilling.RoleAssignmentProperties{
	// 		CreatedByUserEmailAddress: to.Ptr("test@billtest900006.onmicrosoft.com"),
	// 		CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 		RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/departments/225314/billingRoleDefinitions/c15c22c0-9faf-424c-9b7e-bd91c06a240b"),
	// 		Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/departments/225314"),
	// 		UserAuthenticationType: to.Ptr("Organization"),
	// 		UserEmailAddress: to.Ptr("a_owner@billtest900006.onmicrosoft.com"),
	// 	},
	// }
}

func (*RoleAssignmentsClient) GetByEnrollmentAccount

func (client *RoleAssignmentsClient) GetByEnrollmentAccount(ctx context.Context, billingAccountName string, enrollmentAccountName string, billingRoleAssignmentName string, options *RoleAssignmentsClientGetByEnrollmentAccountOptions) (RoleAssignmentsClientGetByEnrollmentAccountResponse, error)

GetByEnrollmentAccount - Gets a role assignment for the caller on a enrollment Account. The operation is supported only for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • enrollmentAccountName - The name of the enrollment account.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • options - RoleAssignmentsClientGetByEnrollmentAccountOptions contains the optional parameters for the RoleAssignmentsClient.GetByEnrollmentAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentGetByEnrollmentAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRoleAssignmentsClient().GetByEnrollmentAccount(ctx, "7898901", "225314", "9dfd08c2-62a3-4d47-85bd-1cdba1408402", 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.RoleAssignment = armbilling.RoleAssignment{
	// 	Name: to.Ptr("9dfd08c2-62a3-4d47-85bd-1cdba1408402"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingRoleAssignments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/enrollmentAccounts/225314/billingRoleAssignments/9dfd08c2-62a3-4d47-85bd-1cdba1408402"),
	// 	Properties: &armbilling.RoleAssignmentProperties{
	// 		CreatedByUserEmailAddress: to.Ptr("test@billtest900006.onmicrosoft.com"),
	// 		CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 		RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/enrollmentAccounts/225314/billingRoleDefinitions/c15c22c0-9faf-424c-9b7e-bd91c06a240b"),
	// 		Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/7898901/enrollmentAccounts/225314"),
	// 		UserAuthenticationType: to.Ptr("Organization"),
	// 		UserEmailAddress: to.Ptr("a_owner@billtest900006.onmicrosoft.com"),
	// 	},
	// }
}

func (*RoleAssignmentsClient) GetByInvoiceSection

func (client *RoleAssignmentsClient) GetByInvoiceSection(ctx context.Context, billingAccountName string, billingProfileName string, invoiceSectionName string, billingRoleAssignmentName string, options *RoleAssignmentsClientGetByInvoiceSectionOptions) (RoleAssignmentsClientGetByInvoiceSectionResponse, error)

GetByInvoiceSection - Gets a role assignment for the caller on an invoice section. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • billingRoleAssignmentName - The ID that uniquely identifies a role assignment.
  • options - RoleAssignmentsClientGetByInvoiceSectionOptions contains the optional parameters for the RoleAssignmentsClient.GetByInvoiceSection method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentGetByInvoiceSection.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRoleAssignmentsClient().GetByInvoiceSection(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "BKM6-54VH-BG7-PGB", "xxxx-xxxx-xxx-xxx", "10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9", 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.RoleAssignment = armbilling.RoleAssignment{
	// 	Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections/billingRoleAssignments"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
	// 	Properties: &armbilling.RoleAssignmentProperties{
	// 		CreatedByPrincipalID: to.Ptr("46b831ec-42b2-4f1a-8b54-3fd5ff9d6aa1"),
	// 		CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
	// 		CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
	// 		PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
	// 		PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
	// 		RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/50000000-aaaa-bbbb-cccc-100000000000"),
	// 		Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx"),
	// 	},
	// }
}

func (*RoleAssignmentsClient) NewListByBillingAccountPager

NewListByBillingAccountPager - Lists the role assignments for the caller on a billing account. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement, Microsoft Customer Agreement or Enterprise Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - RoleAssignmentsClientListByBillingAccountOptions contains the optional parameters for the RoleAssignmentsClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentListByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRoleAssignmentsClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", &armbilling.RoleAssignmentsClientListByBillingAccountOptions{Filter: nil,
		Top:  nil,
		Skip: 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.RoleAssignmentListResult = armbilling.RoleAssignmentListResult{
		// 	Value: []*armbilling.RoleAssignment{
		// 		{
		// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingRoleAssignments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
		// 			Properties: &armbilling.RoleAssignmentProperties{
		// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
		// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
		// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
		// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleDefinitions/00000000-0000-0000-0000-000000000000"),
		// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingRoleAssignments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
		// 			Properties: &armbilling.RoleAssignmentProperties{
		// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
		// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
		// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
		// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingRoleDefinitions/00000000-0000-0000-0000-000000000001"),
		// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30"),
		// 			},
		// 	}},
		// }
	}
}

func (*RoleAssignmentsClient) NewListByBillingProfilePager

func (client *RoleAssignmentsClient) NewListByBillingProfilePager(billingAccountName string, billingProfileName string, options *RoleAssignmentsClientListByBillingProfileOptions) *runtime.Pager[RoleAssignmentsClientListByBillingProfileResponse]

NewListByBillingProfilePager - Lists the role assignments for the caller on a billing profile. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - RoleAssignmentsClientListByBillingProfileOptions contains the optional parameters for the RoleAssignmentsClient.NewListByBillingProfilePager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentListByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRoleAssignmentsClient().NewListByBillingProfilePager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "xxxx-xxxx-xxx-xxx", &armbilling.RoleAssignmentsClientListByBillingProfileOptions{Filter: nil,
		Top:  nil,
		Skip: 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.RoleAssignmentListResult = armbilling.RoleAssignmentListResult{
		// 	Value: []*armbilling.RoleAssignment{
		// 		{
		// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/billingRoleAssignments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
		// 			Properties: &armbilling.RoleAssignmentProperties{
		// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
		// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
		// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
		// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/00000000-0000-0000-0000-000000000000"),
		// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/billingRoleAssignments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
		// 			Properties: &armbilling.RoleAssignmentProperties{
		// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
		// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
		// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
		// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/00000000-0000-0000-0000-000000000001"),
		// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 			},
		// 	}},
		// }
	}
}

func (*RoleAssignmentsClient) NewListByCustomerPager

func (client *RoleAssignmentsClient) NewListByCustomerPager(billingAccountName string, billingProfileName string, customerName string, options *RoleAssignmentsClientListByCustomerOptions) *runtime.Pager[RoleAssignmentsClientListByCustomerResponse]

NewListByCustomerPager - Lists the role assignments for the caller on customer. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • options - RoleAssignmentsClientListByCustomerOptions contains the optional parameters for the RoleAssignmentsClient.NewListByCustomerPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentListByCustomer.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRoleAssignmentsClient().NewListByCustomerPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "BKM6-54VH-BG7-PGB", "703ab484-dda2-4402-827b-a74513b61e2d", &armbilling.RoleAssignmentsClientListByCustomerOptions{Filter: nil,
		Top:  nil,
		Skip: 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.RoleAssignmentListResult = armbilling.RoleAssignmentListResult{
		// 	Value: []*armbilling.RoleAssignment{
		// 		{
		// 			Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/billingRoleAssignments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/customers/703ab484-dda2-4402-827b-a74513b61e2d/billingRoleAssignments/30000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
		// 			Properties: &armbilling.RoleAssignmentProperties{
		// 				CreatedByPrincipalID: to.Ptr(""),
		// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
		// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
		// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/customers/703ab484-dda2-4402-827b-a74513b61e2d/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
		// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/customers/703ab484-dda2-4402-827b-a74513b61e2d"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/billingRoleAssignments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/customers/703ab484-dda2-4402-827b-a74513b61e2d/billingRoleAssignments/30000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
		// 			Properties: &armbilling.RoleAssignmentProperties{
		// 				CreatedByPrincipalID: to.Ptr(""),
		// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
		// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
		// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/customers/703ab484-dda2-4402-827b-a74513b61e2d/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
		// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/customers/703ab484-dda2-4402-827b-a74513b61e2d"),
		// 			},
		// 	}},
		// }
	}
}

func (*RoleAssignmentsClient) NewListByDepartmentPager

func (client *RoleAssignmentsClient) NewListByDepartmentPager(billingAccountName string, departmentName string, options *RoleAssignmentsClientListByDepartmentOptions) *runtime.Pager[RoleAssignmentsClientListByDepartmentResponse]

NewListByDepartmentPager - Lists the role assignments for the caller on a department. The operation is supported for billing accounts of type Enterprise Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • departmentName - The name of the department.
  • options - RoleAssignmentsClientListByDepartmentOptions contains the optional parameters for the RoleAssignmentsClient.NewListByDepartmentPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentListByDepartment.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRoleAssignmentsClient().NewListByDepartmentPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "12345", 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.RoleAssignmentListResult = armbilling.RoleAssignmentListResult{
		// 	Value: []*armbilling.RoleAssignment{
		// 		{
		// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/departments/billingRoleAssignments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/departments/12345/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
		// 			Properties: &armbilling.RoleAssignmentProperties{
		// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
		// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
		// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
		// 				RoleDefinitionID: to.Ptr("providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/departments/12345/billingRoleDefinitions/00000000-0000-0000-0000-000000000000"),
		// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/departments/12345"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/departments/billingRoleAssignments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/departments/12345/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
		// 			Properties: &armbilling.RoleAssignmentProperties{
		// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
		// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
		// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
		// 				RoleDefinitionID: to.Ptr("\"/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/departments/12345/billingRoleDefinitions/00000000-0000-0000-0000-000000000001"),
		// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/departments/12345"),
		// 			},
		// 	}},
		// }
	}
}

func (*RoleAssignmentsClient) NewListByEnrollmentAccountPager

func (client *RoleAssignmentsClient) NewListByEnrollmentAccountPager(billingAccountName string, enrollmentAccountName string, options *RoleAssignmentsClientListByEnrollmentAccountOptions) *runtime.Pager[RoleAssignmentsClientListByEnrollmentAccountResponse]

NewListByEnrollmentAccountPager - Lists the role assignments for the caller on a enrollment account. The operation is supported for billing accounts of type Enterprise Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • enrollmentAccountName - The name of the enrollment account.
  • options - RoleAssignmentsClientListByEnrollmentAccountOptions contains the optional parameters for the RoleAssignmentsClient.NewListByEnrollmentAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentListByEnrollmentAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRoleAssignmentsClient().NewListByEnrollmentAccountPager("6100092", "123456", 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.RoleAssignmentListResult = armbilling.RoleAssignmentListResult{
		// 	Value: []*armbilling.RoleAssignment{
		// 		{
		// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingRoleAssignments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6100092/enrollmentAccounts/123456/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
		// 			Properties: &armbilling.RoleAssignmentProperties{
		// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
		// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
		// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
		// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6100092/enrollmentAccounts/123456/billingRoleDefinitions/50000000-0000-0000-0000-000000000000"),
		// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6100092/enrollmentAccounts/123456"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingRoleAssignments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6100092/enrollmentAccounts/123456/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
		// 			Properties: &armbilling.RoleAssignmentProperties{
		// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
		// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
		// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
		// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6100092/enrollmentAccounts/123456/billingRoleDefinitions/50000000-0000-0000-0000-000000000001"),
		// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6100092/enrollmentAccounts/123456"),
		// 			},
		// 	}},
		// }
	}
}

func (*RoleAssignmentsClient) NewListByInvoiceSectionPager

func (client *RoleAssignmentsClient) NewListByInvoiceSectionPager(billingAccountName string, billingProfileName string, invoiceSectionName string, options *RoleAssignmentsClientListByInvoiceSectionOptions) *runtime.Pager[RoleAssignmentsClientListByInvoiceSectionResponse]

NewListByInvoiceSectionPager - Lists the role assignments for the caller on an invoice section. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • options - RoleAssignmentsClientListByInvoiceSectionOptions contains the optional parameters for the RoleAssignmentsClient.NewListByInvoiceSectionPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleAssignmentListByInvoiceSection.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRoleAssignmentsClient().NewListByInvoiceSectionPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30", "BKM6-54VH-BG7-PGB", "xxxx-xxxx-xxx-xxx", &armbilling.RoleAssignmentsClientListByInvoiceSectionOptions{Filter: nil,
		Top:  nil,
		Skip: 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.RoleAssignmentListResult = armbilling.RoleAssignmentListResult{
		// 	Value: []*armbilling.RoleAssignment{
		// 		{
		// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections/billingRoleAssignments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_6fd330f6-7d26-4aff-b9cf-7bd699f965b9"),
		// 			Properties: &armbilling.RoleAssignmentProperties{
		// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
		// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
		// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
		// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000002"),
		// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections/billingRoleAssignments"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx/billingRoleAssignments/10000000-aaaa-bbbb-cccc-100000000000_b1839933-b3ac-42ca-8112-d29c43f3ab47"),
		// 			Properties: &armbilling.RoleAssignmentProperties{
		// 				CreatedByPrincipalID: to.Ptr("00000000-0000-0000-0000-000000000001"),
		// 				CreatedByPrincipalTenantID: to.Ptr("076915e7-de10-4323-bb34-a58c904068bb"),
		// 				CreatedOn: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-10-19T20:10:50.102Z"); return t}()),
		// 				PrincipalID: to.Ptr("00000000-0000-0000-0000-000000000000"),
		// 				PrincipalType: to.Ptr(armbilling.PrincipalTypeUser),
		// 				RoleDefinitionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000001"),
		// 				Scope: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2018-09-30/billingProfiles/BKM6-54VH-BG7-PGB/invoiceSections/xxxx-xxxx-xxx-xxx"),
		// 			},
		// 	}},
		// }
	}
}

type RoleAssignmentsClientBeginCreateByBillingAccountOptions

type RoleAssignmentsClientBeginCreateByBillingAccountOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

RoleAssignmentsClientBeginCreateByBillingAccountOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateByBillingAccount method.

type RoleAssignmentsClientBeginCreateByBillingProfileOptions

type RoleAssignmentsClientBeginCreateByBillingProfileOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

RoleAssignmentsClientBeginCreateByBillingProfileOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateByBillingProfile method.

type RoleAssignmentsClientBeginCreateByCustomerOptions

type RoleAssignmentsClientBeginCreateByCustomerOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

RoleAssignmentsClientBeginCreateByCustomerOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateByCustomer method.

type RoleAssignmentsClientBeginCreateByInvoiceSectionOptions

type RoleAssignmentsClientBeginCreateByInvoiceSectionOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

RoleAssignmentsClientBeginCreateByInvoiceSectionOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateByInvoiceSection method.

type RoleAssignmentsClientBeginCreateOrUpdateByBillingAccountOptions

type RoleAssignmentsClientBeginCreateOrUpdateByBillingAccountOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

RoleAssignmentsClientBeginCreateOrUpdateByBillingAccountOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateOrUpdateByBillingAccount method.

type RoleAssignmentsClientBeginCreateOrUpdateByDepartmentOptions

type RoleAssignmentsClientBeginCreateOrUpdateByDepartmentOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

RoleAssignmentsClientBeginCreateOrUpdateByDepartmentOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateOrUpdateByDepartment method.

type RoleAssignmentsClientBeginCreateOrUpdateByEnrollmentAccountOptions

type RoleAssignmentsClientBeginCreateOrUpdateByEnrollmentAccountOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

RoleAssignmentsClientBeginCreateOrUpdateByEnrollmentAccountOptions contains the optional parameters for the RoleAssignmentsClient.BeginCreateOrUpdateByEnrollmentAccount method.

type RoleAssignmentsClientBeginResolveByBillingAccountOptions

type RoleAssignmentsClientBeginResolveByBillingAccountOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// Resolves the scope display name for each of the role assignments.
	ResolveScopeDisplayNames *bool

	// Resumes the LRO from the provided token.
	ResumeToken string
}

RoleAssignmentsClientBeginResolveByBillingAccountOptions contains the optional parameters for the RoleAssignmentsClient.BeginResolveByBillingAccount method.

type RoleAssignmentsClientBeginResolveByBillingProfileOptions

type RoleAssignmentsClientBeginResolveByBillingProfileOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// Resolves the scope display name for each of the role assignments.
	ResolveScopeDisplayNames *bool

	// Resumes the LRO from the provided token.
	ResumeToken string
}

RoleAssignmentsClientBeginResolveByBillingProfileOptions contains the optional parameters for the RoleAssignmentsClient.BeginResolveByBillingProfile method.

type RoleAssignmentsClientBeginResolveByCustomerOptions

type RoleAssignmentsClientBeginResolveByCustomerOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// Resolves the scope display name for each of the role assignments.
	ResolveScopeDisplayNames *bool

	// Resumes the LRO from the provided token.
	ResumeToken string
}

RoleAssignmentsClientBeginResolveByCustomerOptions contains the optional parameters for the RoleAssignmentsClient.BeginResolveByCustomer method.

type RoleAssignmentsClientBeginResolveByInvoiceSectionOptions

type RoleAssignmentsClientBeginResolveByInvoiceSectionOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// Resolves the scope display name for each of the role assignments.
	ResolveScopeDisplayNames *bool

	// Resumes the LRO from the provided token.
	ResumeToken string
}

RoleAssignmentsClientBeginResolveByInvoiceSectionOptions contains the optional parameters for the RoleAssignmentsClient.BeginResolveByInvoiceSection method.

type RoleAssignmentsClientCreateByBillingAccountResponse

type RoleAssignmentsClientCreateByBillingAccountResponse struct {
	// The properties of the billing role assignment.
	RoleAssignment
}

RoleAssignmentsClientCreateByBillingAccountResponse contains the response from method RoleAssignmentsClient.BeginCreateByBillingAccount.

type RoleAssignmentsClientCreateByBillingProfileResponse

type RoleAssignmentsClientCreateByBillingProfileResponse struct {
	// The properties of the billing role assignment.
	RoleAssignment
}

RoleAssignmentsClientCreateByBillingProfileResponse contains the response from method RoleAssignmentsClient.BeginCreateByBillingProfile.

type RoleAssignmentsClientCreateByCustomerResponse

type RoleAssignmentsClientCreateByCustomerResponse struct {
	// The properties of the billing role assignment.
	RoleAssignment
}

RoleAssignmentsClientCreateByCustomerResponse contains the response from method RoleAssignmentsClient.BeginCreateByCustomer.

type RoleAssignmentsClientCreateByInvoiceSectionResponse

type RoleAssignmentsClientCreateByInvoiceSectionResponse struct {
	// The properties of the billing role assignment.
	RoleAssignment
}

RoleAssignmentsClientCreateByInvoiceSectionResponse contains the response from method RoleAssignmentsClient.BeginCreateByInvoiceSection.

type RoleAssignmentsClientCreateOrUpdateByBillingAccountResponse

type RoleAssignmentsClientCreateOrUpdateByBillingAccountResponse struct {
	// The properties of the billing role assignment.
	RoleAssignment
}

RoleAssignmentsClientCreateOrUpdateByBillingAccountResponse contains the response from method RoleAssignmentsClient.BeginCreateOrUpdateByBillingAccount.

type RoleAssignmentsClientCreateOrUpdateByDepartmentResponse

type RoleAssignmentsClientCreateOrUpdateByDepartmentResponse struct {
	// The properties of the billing role assignment.
	RoleAssignment
}

RoleAssignmentsClientCreateOrUpdateByDepartmentResponse contains the response from method RoleAssignmentsClient.BeginCreateOrUpdateByDepartment.

type RoleAssignmentsClientCreateOrUpdateByEnrollmentAccountResponse

type RoleAssignmentsClientCreateOrUpdateByEnrollmentAccountResponse struct {
	// The properties of the billing role assignment.
	RoleAssignment
}

RoleAssignmentsClientCreateOrUpdateByEnrollmentAccountResponse contains the response from method RoleAssignmentsClient.BeginCreateOrUpdateByEnrollmentAccount.

type RoleAssignmentsClientDeleteByBillingAccountOptions

type RoleAssignmentsClientDeleteByBillingAccountOptions struct {
}

RoleAssignmentsClientDeleteByBillingAccountOptions contains the optional parameters for the RoleAssignmentsClient.DeleteByBillingAccount method.

type RoleAssignmentsClientDeleteByBillingAccountResponse

type RoleAssignmentsClientDeleteByBillingAccountResponse struct {
}

RoleAssignmentsClientDeleteByBillingAccountResponse contains the response from method RoleAssignmentsClient.DeleteByBillingAccount.

type RoleAssignmentsClientDeleteByBillingProfileOptions

type RoleAssignmentsClientDeleteByBillingProfileOptions struct {
}

RoleAssignmentsClientDeleteByBillingProfileOptions contains the optional parameters for the RoleAssignmentsClient.DeleteByBillingProfile method.

type RoleAssignmentsClientDeleteByBillingProfileResponse

type RoleAssignmentsClientDeleteByBillingProfileResponse struct {
}

RoleAssignmentsClientDeleteByBillingProfileResponse contains the response from method RoleAssignmentsClient.DeleteByBillingProfile.

type RoleAssignmentsClientDeleteByCustomerOptions

type RoleAssignmentsClientDeleteByCustomerOptions struct {
}

RoleAssignmentsClientDeleteByCustomerOptions contains the optional parameters for the RoleAssignmentsClient.DeleteByCustomer method.

type RoleAssignmentsClientDeleteByCustomerResponse

type RoleAssignmentsClientDeleteByCustomerResponse struct {
}

RoleAssignmentsClientDeleteByCustomerResponse contains the response from method RoleAssignmentsClient.DeleteByCustomer.

type RoleAssignmentsClientDeleteByDepartmentOptions

type RoleAssignmentsClientDeleteByDepartmentOptions struct {
}

RoleAssignmentsClientDeleteByDepartmentOptions contains the optional parameters for the RoleAssignmentsClient.DeleteByDepartment method.

type RoleAssignmentsClientDeleteByDepartmentResponse

type RoleAssignmentsClientDeleteByDepartmentResponse struct {
}

RoleAssignmentsClientDeleteByDepartmentResponse contains the response from method RoleAssignmentsClient.DeleteByDepartment.

type RoleAssignmentsClientDeleteByEnrollmentAccountOptions

type RoleAssignmentsClientDeleteByEnrollmentAccountOptions struct {
}

RoleAssignmentsClientDeleteByEnrollmentAccountOptions contains the optional parameters for the RoleAssignmentsClient.DeleteByEnrollmentAccount method.

type RoleAssignmentsClientDeleteByEnrollmentAccountResponse

type RoleAssignmentsClientDeleteByEnrollmentAccountResponse struct {
}

RoleAssignmentsClientDeleteByEnrollmentAccountResponse contains the response from method RoleAssignmentsClient.DeleteByEnrollmentAccount.

type RoleAssignmentsClientDeleteByInvoiceSectionOptions

type RoleAssignmentsClientDeleteByInvoiceSectionOptions struct {
}

RoleAssignmentsClientDeleteByInvoiceSectionOptions contains the optional parameters for the RoleAssignmentsClient.DeleteByInvoiceSection method.

type RoleAssignmentsClientDeleteByInvoiceSectionResponse

type RoleAssignmentsClientDeleteByInvoiceSectionResponse struct {
}

RoleAssignmentsClientDeleteByInvoiceSectionResponse contains the response from method RoleAssignmentsClient.DeleteByInvoiceSection.

type RoleAssignmentsClientGetByBillingAccountOptions

type RoleAssignmentsClientGetByBillingAccountOptions struct {
}

RoleAssignmentsClientGetByBillingAccountOptions contains the optional parameters for the RoleAssignmentsClient.GetByBillingAccount method.

type RoleAssignmentsClientGetByBillingAccountResponse

type RoleAssignmentsClientGetByBillingAccountResponse struct {
	// The properties of the billing role assignment.
	RoleAssignment
}

RoleAssignmentsClientGetByBillingAccountResponse contains the response from method RoleAssignmentsClient.GetByBillingAccount.

type RoleAssignmentsClientGetByBillingProfileOptions

type RoleAssignmentsClientGetByBillingProfileOptions struct {
}

RoleAssignmentsClientGetByBillingProfileOptions contains the optional parameters for the RoleAssignmentsClient.GetByBillingProfile method.

type RoleAssignmentsClientGetByBillingProfileResponse

type RoleAssignmentsClientGetByBillingProfileResponse struct {
	// The properties of the billing role assignment.
	RoleAssignment
}

RoleAssignmentsClientGetByBillingProfileResponse contains the response from method RoleAssignmentsClient.GetByBillingProfile.

type RoleAssignmentsClientGetByCustomerOptions

type RoleAssignmentsClientGetByCustomerOptions struct {
}

RoleAssignmentsClientGetByCustomerOptions contains the optional parameters for the RoleAssignmentsClient.GetByCustomer method.

type RoleAssignmentsClientGetByCustomerResponse

type RoleAssignmentsClientGetByCustomerResponse struct {
	// The properties of the billing role assignment.
	RoleAssignment
}

RoleAssignmentsClientGetByCustomerResponse contains the response from method RoleAssignmentsClient.GetByCustomer.

type RoleAssignmentsClientGetByDepartmentOptions

type RoleAssignmentsClientGetByDepartmentOptions struct {
}

RoleAssignmentsClientGetByDepartmentOptions contains the optional parameters for the RoleAssignmentsClient.GetByDepartment method.

type RoleAssignmentsClientGetByDepartmentResponse

type RoleAssignmentsClientGetByDepartmentResponse struct {
	// The properties of the billing role assignment.
	RoleAssignment
}

RoleAssignmentsClientGetByDepartmentResponse contains the response from method RoleAssignmentsClient.GetByDepartment.

type RoleAssignmentsClientGetByEnrollmentAccountOptions

type RoleAssignmentsClientGetByEnrollmentAccountOptions struct {
}

RoleAssignmentsClientGetByEnrollmentAccountOptions contains the optional parameters for the RoleAssignmentsClient.GetByEnrollmentAccount method.

type RoleAssignmentsClientGetByEnrollmentAccountResponse

type RoleAssignmentsClientGetByEnrollmentAccountResponse struct {
	// The properties of the billing role assignment.
	RoleAssignment
}

RoleAssignmentsClientGetByEnrollmentAccountResponse contains the response from method RoleAssignmentsClient.GetByEnrollmentAccount.

type RoleAssignmentsClientGetByInvoiceSectionOptions

type RoleAssignmentsClientGetByInvoiceSectionOptions struct {
}

RoleAssignmentsClientGetByInvoiceSectionOptions contains the optional parameters for the RoleAssignmentsClient.GetByInvoiceSection method.

type RoleAssignmentsClientGetByInvoiceSectionResponse

type RoleAssignmentsClientGetByInvoiceSectionResponse struct {
	// The properties of the billing role assignment.
	RoleAssignment
}

RoleAssignmentsClientGetByInvoiceSectionResponse contains the response from method RoleAssignmentsClient.GetByInvoiceSection.

type RoleAssignmentsClientListByBillingAccountOptions

type RoleAssignmentsClientListByBillingAccountOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

RoleAssignmentsClientListByBillingAccountOptions contains the optional parameters for the RoleAssignmentsClient.NewListByBillingAccountPager method.

type RoleAssignmentsClientListByBillingAccountResponse

type RoleAssignmentsClientListByBillingAccountResponse struct {
	// A container for a list of resources
	RoleAssignmentListResult
}

RoleAssignmentsClientListByBillingAccountResponse contains the response from method RoleAssignmentsClient.NewListByBillingAccountPager.

type RoleAssignmentsClientListByBillingProfileOptions

type RoleAssignmentsClientListByBillingProfileOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

RoleAssignmentsClientListByBillingProfileOptions contains the optional parameters for the RoleAssignmentsClient.NewListByBillingProfilePager method.

type RoleAssignmentsClientListByBillingProfileResponse

type RoleAssignmentsClientListByBillingProfileResponse struct {
	// A container for a list of resources
	RoleAssignmentListResult
}

RoleAssignmentsClientListByBillingProfileResponse contains the response from method RoleAssignmentsClient.NewListByBillingProfilePager.

type RoleAssignmentsClientListByCustomerOptions

type RoleAssignmentsClientListByCustomerOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

RoleAssignmentsClientListByCustomerOptions contains the optional parameters for the RoleAssignmentsClient.NewListByCustomerPager method.

type RoleAssignmentsClientListByCustomerResponse

type RoleAssignmentsClientListByCustomerResponse struct {
	// A container for a list of resources
	RoleAssignmentListResult
}

RoleAssignmentsClientListByCustomerResponse contains the response from method RoleAssignmentsClient.NewListByCustomerPager.

type RoleAssignmentsClientListByDepartmentOptions

type RoleAssignmentsClientListByDepartmentOptions struct {
}

RoleAssignmentsClientListByDepartmentOptions contains the optional parameters for the RoleAssignmentsClient.NewListByDepartmentPager method.

type RoleAssignmentsClientListByDepartmentResponse

type RoleAssignmentsClientListByDepartmentResponse struct {
	// A container for a list of resources
	RoleAssignmentListResult
}

RoleAssignmentsClientListByDepartmentResponse contains the response from method RoleAssignmentsClient.NewListByDepartmentPager.

type RoleAssignmentsClientListByEnrollmentAccountOptions

type RoleAssignmentsClientListByEnrollmentAccountOptions struct {
}

RoleAssignmentsClientListByEnrollmentAccountOptions contains the optional parameters for the RoleAssignmentsClient.NewListByEnrollmentAccountPager method.

type RoleAssignmentsClientListByEnrollmentAccountResponse

type RoleAssignmentsClientListByEnrollmentAccountResponse struct {
	// A container for a list of resources
	RoleAssignmentListResult
}

RoleAssignmentsClientListByEnrollmentAccountResponse contains the response from method RoleAssignmentsClient.NewListByEnrollmentAccountPager.

type RoleAssignmentsClientListByInvoiceSectionOptions

type RoleAssignmentsClientListByInvoiceSectionOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

RoleAssignmentsClientListByInvoiceSectionOptions contains the optional parameters for the RoleAssignmentsClient.NewListByInvoiceSectionPager method.

type RoleAssignmentsClientListByInvoiceSectionResponse

type RoleAssignmentsClientListByInvoiceSectionResponse struct {
	// A container for a list of resources
	RoleAssignmentListResult
}

RoleAssignmentsClientListByInvoiceSectionResponse contains the response from method RoleAssignmentsClient.NewListByInvoiceSectionPager.

type RoleAssignmentsClientResolveByBillingAccountResponse

type RoleAssignmentsClientResolveByBillingAccountResponse struct {
	// A container for a list of resources
	RoleAssignmentListResult
}

RoleAssignmentsClientResolveByBillingAccountResponse contains the response from method RoleAssignmentsClient.BeginResolveByBillingAccount.

type RoleAssignmentsClientResolveByBillingProfileResponse

type RoleAssignmentsClientResolveByBillingProfileResponse struct {
	// A container for a list of resources
	RoleAssignmentListResult
}

RoleAssignmentsClientResolveByBillingProfileResponse contains the response from method RoleAssignmentsClient.BeginResolveByBillingProfile.

type RoleAssignmentsClientResolveByCustomerResponse

type RoleAssignmentsClientResolveByCustomerResponse struct {
	// A container for a list of resources
	RoleAssignmentListResult
}

RoleAssignmentsClientResolveByCustomerResponse contains the response from method RoleAssignmentsClient.BeginResolveByCustomer.

type RoleAssignmentsClientResolveByInvoiceSectionResponse

type RoleAssignmentsClientResolveByInvoiceSectionResponse struct {
	// A container for a list of resources
	RoleAssignmentListResult
}

RoleAssignmentsClientResolveByInvoiceSectionResponse contains the response from method RoleAssignmentsClient.BeginResolveByInvoiceSection.

type RoleDefinition

type RoleDefinition struct {
	// The properties of a role definition.
	Properties *RoleDefinitionProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

RoleDefinition - The properties of a role definition.

func (RoleDefinition) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RoleDefinition.

func (*RoleDefinition) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RoleDefinition.

type RoleDefinitionClient

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

RoleDefinitionClient contains the methods for the BillingRoleDefinition group. Don't use this type directly, use NewRoleDefinitionClient() instead.

func NewRoleDefinitionClient

func NewRoleDefinitionClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*RoleDefinitionClient, error)

NewRoleDefinitionClient creates a new instance of RoleDefinitionClient with the specified values.

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

func (*RoleDefinitionClient) GetByBillingAccount

func (client *RoleDefinitionClient) GetByBillingAccount(ctx context.Context, billingAccountName string, roleDefinitionName string, options *RoleDefinitionClientGetByBillingAccountOptions) (RoleDefinitionClientGetByBillingAccountResponse, error)

GetByBillingAccount - Gets the definition for a role on a billing account. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement, Microsoft Customer Agreement or Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • roleDefinitionName - The ID that uniquely identifies a role definition.
  • options - RoleDefinitionClientGetByBillingAccountOptions contains the optional parameters for the RoleDefinitionClient.GetByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleDefinitionGetByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRoleDefinitionClient().GetByBillingAccount(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "50000000-aaaa-bbbb-cccc-100000000000", 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.RoleDefinition = armbilling.RoleDefinition{
	// 	Name: to.Ptr("50000000-aaaa-bbbb-cccc-100000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingRoleDefinitions"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingRoleDefinitions/50000000-aaaa-bbbb-cccc-100000000000"),
	// 	Properties: &armbilling.RoleDefinitionProperties{
	// 		Permissions: []*armbilling.Permission{
	// 			{
	// 				Actions: []*string{
	// 					to.Ptr("50000000-aaaa-bbbb-cccc-200000000000"),
	// 					to.Ptr("50000000-aaaa-bbbb-cccc-200000000001"),
	// 					to.Ptr("50000000-aaaa-bbbb-cccc-200000000002"),
	// 					to.Ptr("50000000-aaaa-bbbb-cccc-200000000003"),
	// 					to.Ptr("50000000-aaaa-bbbb-cccc-200000000004"),
	// 					to.Ptr("50000000-aaaa-bbbb-cccc-200000000006"),
	// 					to.Ptr("50000000-aaaa-bbbb-cccc-200000000007"),
	// 					to.Ptr("50000000-aaaa-bbbb-cccc-200000000008"),
	// 					to.Ptr("10000000-aaaa-bbbb-cccc-200000000001"),
	// 					to.Ptr("10000000-aaaa-bbbb-cccc-200000000002"),
	// 					to.Ptr("10000000-aaaa-bbbb-cccc-200000000003"),
	// 					to.Ptr("10000000-aaaa-bbbb-cccc-200000000006"),
	// 					to.Ptr("10000000-aaaa-bbbb-cccc-200000000007"),
	// 					to.Ptr("50000000-aaaa-bbbb-cccc-200000000005"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000000"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000017"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000018"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000000"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000007"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000008"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000012"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000013"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000004"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000001"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000005"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000002"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000003"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000011"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000013"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000011"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000006"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000003"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000005"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000012"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000008"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000016")},
	// 			}},
	// 			RoleName: to.Ptr("Billing account owner"),
	// 		},
	// 	}
}

func (*RoleDefinitionClient) GetByBillingProfile

func (client *RoleDefinitionClient) GetByBillingProfile(ctx context.Context, billingAccountName string, billingProfileName string, roleDefinitionName string, options *RoleDefinitionClientGetByBillingProfileOptions) (RoleDefinitionClientGetByBillingProfileResponse, error)

GetByBillingProfile - Gets the definition for a role on a billing profile. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • roleDefinitionName - The ID that uniquely identifies a role definition.
  • options - RoleDefinitionClientGetByBillingProfileOptions contains the optional parameters for the RoleDefinitionClient.GetByBillingProfile method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleDefinitionGetByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRoleDefinitionClient().GetByBillingProfile(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "40000000-aaaa-bbbb-cccc-100000000000", 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.RoleDefinition = armbilling.RoleDefinition{
	// 	Name: to.Ptr("40000000-aaaa-bbbb-cccc-100000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/billingRoleDefinitions"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/40000000-aaaa-bbbb-cccc-100000000000"),
	// 	Properties: &armbilling.RoleDefinitionProperties{
	// 		Description: to.Ptr("The Owner role gives the user all permissions including access management rights to the billing profile."),
	// 		Permissions: []*armbilling.Permission{
	// 			{
	// 				Actions: []*string{
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000000"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000001"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000002"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000003"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000004"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000005"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000007"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000008"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000011"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000012"),
	// 					to.Ptr("40000000-aaaa-bbbb-cccc-200000000013")},
	// 			}},
	// 			RoleName: to.Ptr("Billing profile owner"),
	// 		},
	// 	}
}

func (*RoleDefinitionClient) GetByCustomer

func (client *RoleDefinitionClient) GetByCustomer(ctx context.Context, billingAccountName string, billingProfileName string, customerName string, roleDefinitionName string, options *RoleDefinitionClientGetByCustomerOptions) (RoleDefinitionClientGetByCustomerResponse, error)

GetByCustomer - Gets the definition for a role on a customer. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • roleDefinitionName - The ID that uniquely identifies a role definition.
  • options - RoleDefinitionClientGetByCustomerOptions contains the optional parameters for the RoleDefinitionClient.GetByCustomer method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleDefinitionGetByCustomer.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRoleDefinitionClient().GetByCustomer(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "11111111-1111-1111-1111-111111111111", "30000000-aaaa-bbbb-cccc-100000000000", 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.RoleDefinition = armbilling.RoleDefinition{
	// 	Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/billingRoleDefinitions"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
	// 	Properties: &armbilling.RoleDefinitionProperties{
	// 		Description: to.Ptr("The Owner role gives the user all permissions including access management rights to the customer."),
	// 		Permissions: []*armbilling.Permission{
	// 			{
	// 				Actions: []*string{
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000000"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000003"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000005"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000006"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000008"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000011"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000012"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000013"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000016"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000017"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000018")},
	// 					NotActions: []*string{
	// 					},
	// 			}},
	// 			RoleName: to.Ptr("Customer owner"),
	// 		},
	// 	}
}

func (*RoleDefinitionClient) GetByDepartment

func (client *RoleDefinitionClient) GetByDepartment(ctx context.Context, billingAccountName string, departmentName string, roleDefinitionName string, options *RoleDefinitionClientGetByDepartmentOptions) (RoleDefinitionClientGetByDepartmentResponse, error)

GetByDepartment - Gets the definition for a role on a department. The operation is supported for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • departmentName - The name of the department.
  • roleDefinitionName - The ID that uniquely identifies a role definition.
  • options - RoleDefinitionClientGetByDepartmentOptions contains the optional parameters for the RoleDefinitionClient.GetByDepartment method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleDefinitionGetByDepartment.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRoleDefinitionClient().GetByDepartment(ctx, "123456", "7368531", "50000000-aaaa-bbbb-cccc-100000000000", 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.RoleDefinition = armbilling.RoleDefinition{
	// 	Name: to.Ptr("50000000-aaaa-bbbb-cccc-100000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/departments/billingRoleDefinitions"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/123456/departments/7368531/billingRoleDefinitions/50000000-aaaa-bbbb-cccc-100000000000"),
	// 	Properties: &armbilling.RoleDefinitionProperties{
	// 		Permissions: []*armbilling.Permission{
	// 			{
	// 				Actions: []*string{
	// 					to.Ptr("Microsoft.Billing/billingAccounts/departments/read"),
	// 					to.Ptr("Microsoft.Billing/billingAccounts/departments/write"),
	// 					to.Ptr("Microsoft.Billing/billingAccounts/departments/action"),
	// 					to.Ptr("Microsoft.Billing/billingAccounts/departments/delete"),
	// 					to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/read"),
	// 					to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/write"),
	// 					to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/action"),
	// 					to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/delete")},
	// 			}},
	// 			RoleName: to.Ptr("Department Admin"),
	// 		},
	// 	}
}

func (*RoleDefinitionClient) GetByEnrollmentAccount

func (client *RoleDefinitionClient) GetByEnrollmentAccount(ctx context.Context, billingAccountName string, enrollmentAccountName string, roleDefinitionName string, options *RoleDefinitionClientGetByEnrollmentAccountOptions) (RoleDefinitionClientGetByEnrollmentAccountResponse, error)

GetByEnrollmentAccount - Gets the definition for a role on an enrollment account. The operation is supported for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • enrollmentAccountName - The name of the enrollment account.
  • roleDefinitionName - The ID that uniquely identifies a role definition.
  • options - RoleDefinitionClientGetByEnrollmentAccountOptions contains the optional parameters for the RoleDefinitionClient.GetByEnrollmentAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleDefinitionGetByEnrollmentAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRoleDefinitionClient().GetByEnrollmentAccount(ctx, "123456", "4568789", "50000000-aaaa-bbbb-cccc-100000000000", 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.RoleDefinition = armbilling.RoleDefinition{
	// 	Name: to.Ptr("50000000-aaaa-bbbb-cccc-100000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingRoleDefinitions"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/123456/enrollmentAccounts/4568789/billingRoleDefinitions/50000000-aaaa-bbbb-cccc-100000000000"),
	// 	Properties: &armbilling.RoleDefinitionProperties{
	// 		Permissions: []*armbilling.Permission{
	// 			{
	// 				Actions: []*string{
	// 					to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/read"),
	// 					to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/write"),
	// 					to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/action"),
	// 					to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/delete"),
	// 					to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingSubscriptions/read"),
	// 					to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingSubscriptions/write"),
	// 					to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingSubscriptions/action")},
	// 			}},
	// 			RoleName: to.Ptr("Account Owner"),
	// 		},
	// 	}
}

func (*RoleDefinitionClient) GetByInvoiceSection

func (client *RoleDefinitionClient) GetByInvoiceSection(ctx context.Context, billingAccountName string, billingProfileName string, invoiceSectionName string, roleDefinitionName string, options *RoleDefinitionClientGetByInvoiceSectionOptions) (RoleDefinitionClientGetByInvoiceSectionResponse, error)

GetByInvoiceSection - Gets the definition for a role on an invoice section. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • roleDefinitionName - The ID that uniquely identifies a role definition.
  • options - RoleDefinitionClientGetByInvoiceSectionOptions contains the optional parameters for the RoleDefinitionClient.GetByInvoiceSection method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleDefinitionGetByInvoiceSection.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewRoleDefinitionClient().GetByInvoiceSection(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "yyyy-yyyy-yyy-yyy", "30000000-aaaa-bbbb-cccc-100000000000", 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.RoleDefinition = armbilling.RoleDefinition{
	// 	Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections/billingRoleDefinitions"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
	// 	Properties: &armbilling.RoleDefinitionProperties{
	// 		Description: to.Ptr("The Owner role gives the user all permissions including access management rights to the invoice section."),
	// 		Permissions: []*armbilling.Permission{
	// 			{
	// 				Actions: []*string{
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000000"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000003"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000005"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000006"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000008"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000011"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000012"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000013"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000016"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000017"),
	// 					to.Ptr("30000000-aaaa-bbbb-cccc-200000000018")},
	// 			}},
	// 			RoleName: to.Ptr("Invoice section owner"),
	// 		},
	// 	}
}

func (*RoleDefinitionClient) NewListByBillingAccountPager

NewListByBillingAccountPager - Lists the role definitions for a billing account. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement, Microsoft Customer Agreement or Enterprise Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - RoleDefinitionClientListByBillingAccountOptions contains the optional parameters for the RoleDefinitionClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleDefinitionListByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRoleDefinitionClient().NewListByBillingAccountPager("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", 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.RoleDefinitionListResult = armbilling.RoleDefinitionListResult{
		// 	Value: []*armbilling.RoleDefinition{
		// 		{
		// 			Name: to.Ptr("50000000-aaaa-bbbb-cccc-100000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingRoleDefinitions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingRoleDefinitions/50000000-aaaa-bbbb-cccc-100000000000"),
		// 			Properties: &armbilling.RoleDefinitionProperties{
		// 				Permissions: []*armbilling.Permission{
		// 					{
		// 						Actions: []*string{
		// 							to.Ptr("50000000-aaaa-bbbb-cccc-200000000000"),
		// 							to.Ptr("50000000-aaaa-bbbb-cccc-200000000001"),
		// 							to.Ptr("50000000-aaaa-bbbb-cccc-200000000002"),
		// 							to.Ptr("50000000-aaaa-bbbb-cccc-200000000003"),
		// 							to.Ptr("50000000-aaaa-bbbb-cccc-200000000004"),
		// 							to.Ptr("50000000-aaaa-bbbb-cccc-200000000006"),
		// 							to.Ptr("50000000-aaaa-bbbb-cccc-200000000007"),
		// 							to.Ptr("50000000-aaaa-bbbb-cccc-200000000008"),
		// 							to.Ptr("10000000-aaaa-bbbb-cccc-200000000001"),
		// 							to.Ptr("10000000-aaaa-bbbb-cccc-200000000002"),
		// 							to.Ptr("10000000-aaaa-bbbb-cccc-200000000003"),
		// 							to.Ptr("10000000-aaaa-bbbb-cccc-200000000006"),
		// 							to.Ptr("10000000-aaaa-bbbb-cccc-200000000007"),
		// 							to.Ptr("50000000-aaaa-bbbb-cccc-200000000005"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000000"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000017"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000018"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000000"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000007"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000008"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000012"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000013"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000004"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000001"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000005"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000002"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000003"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000011"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000013"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000011"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000006"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000003"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000005"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000012"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000008"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000016")},
		// 					}},
		// 					RoleName: to.Ptr("Billing account owner"),
		// 				},
		// 			},
		// 			{
		// 				Name: to.Ptr("50000000-aaaa-bbbb-cccc-100000000001"),
		// 				Type: to.Ptr("Microsoft.Billing/billingAccounts/billingRoleDefinitions"),
		// 				ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingRoleDefinitions/50000000-aaaa-bbbb-cccc-100000000001"),
		// 				Properties: &armbilling.RoleDefinitionProperties{
		// 					Description: to.Ptr("The Contributor role gives the user all permissions except access management on the organization."),
		// 					Permissions: []*armbilling.Permission{
		// 						{
		// 							Actions: []*string{
		// 								to.Ptr("50000000-aaaa-bbbb-cccc-200000000001"),
		// 								to.Ptr("50000000-aaaa-bbbb-cccc-200000000002"),
		// 								to.Ptr("50000000-aaaa-bbbb-cccc-200000000003"),
		// 								to.Ptr("50000000-aaaa-bbbb-cccc-200000000004"),
		// 								to.Ptr("50000000-aaaa-bbbb-cccc-200000000006"),
		// 								to.Ptr("50000000-aaaa-bbbb-cccc-200000000007"),
		// 								to.Ptr("50000000-aaaa-bbbb-cccc-200000000008"),
		// 								to.Ptr("10000000-aaaa-bbbb-cccc-200000000001"),
		// 								to.Ptr("10000000-aaaa-bbbb-cccc-200000000002"),
		// 								to.Ptr("10000000-aaaa-bbbb-cccc-200000000003"),
		// 								to.Ptr("10000000-aaaa-bbbb-cccc-200000000006"),
		// 								to.Ptr("10000000-aaaa-bbbb-cccc-200000000007"),
		// 								to.Ptr("50000000-aaaa-bbbb-cccc-200000000005"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000017"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000018"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000007"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000008"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000012"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000013"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000004"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000001"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000005"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000002"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000003"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000011"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000013"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000011"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000006"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000003"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000005"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000012"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000008"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000016")},
		// 						}},
		// 						RoleName: to.Ptr("Billing account contributor"),
		// 					},
		// 				},
		// 				{
		// 					Name: to.Ptr("50000000-aaaa-bbbb-cccc-100000000002"),
		// 					Type: to.Ptr("Microsoft.Billing/billingAccounts/billingRoleDefinitions"),
		// 					ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingRoleDefinitions/50000000-aaaa-bbbb-cccc-100000000002"),
		// 					Properties: &armbilling.RoleDefinitionProperties{
		// 						Description: to.Ptr("The Reader role gives the user read permissions to an organization."),
		// 						Permissions: []*armbilling.Permission{
		// 							{
		// 								Actions: []*string{
		// 									to.Ptr("50000000-aaaa-bbbb-cccc-200000000001"),
		// 									to.Ptr("50000000-aaaa-bbbb-cccc-200000000006"),
		// 									to.Ptr("50000000-aaaa-bbbb-cccc-200000000007"),
		// 									to.Ptr("10000000-aaaa-bbbb-cccc-200000000003"),
		// 									to.Ptr("50000000-aaaa-bbbb-cccc-200000000005"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000017"),
		// 									to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
		// 									to.Ptr("40000000-aaaa-bbbb-cccc-200000000007"),
		// 									to.Ptr("40000000-aaaa-bbbb-cccc-200000000008"),
		// 									to.Ptr("40000000-aaaa-bbbb-cccc-200000000012")},
		// 							}},
		// 							RoleName: to.Ptr("Billing account reader"),
		// 						},
		// 					},
		// 					{
		// 						Name: to.Ptr("50000000-aaaa-bbbb-cccc-100000000002"),
		// 						Type: to.Ptr("Microsoft.Billing/billingAccounts/billingRoleDefinitions"),
		// 						ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingRoleDefinitions/50000000-aaaa-bbbb-cccc-100000000002"),
		// 						Properties: &armbilling.RoleDefinitionProperties{
		// 							Description: to.Ptr("The Reader role gives the user read permissions to an organization."),
		// 							Permissions: []*armbilling.Permission{
		// 								{
		// 									Actions: []*string{
		// 										to.Ptr("50000000-aaaa-bbbb-cccc-200000000001"),
		// 										to.Ptr("50000000-aaaa-bbbb-cccc-200000000006"),
		// 										to.Ptr("50000000-aaaa-bbbb-cccc-200000000007"),
		// 										to.Ptr("10000000-aaaa-bbbb-cccc-200000000003"),
		// 										to.Ptr("50000000-aaaa-bbbb-cccc-200000000005"),
		// 										to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
		// 										to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 										to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 										to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
		// 										to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 										to.Ptr("30000000-aaaa-bbbb-cccc-200000000017"),
		// 										to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
		// 										to.Ptr("40000000-aaaa-bbbb-cccc-200000000007"),
		// 										to.Ptr("40000000-aaaa-bbbb-cccc-200000000008"),
		// 										to.Ptr("40000000-aaaa-bbbb-cccc-200000000012")},
		// 								}},
		// 								RoleName: to.Ptr("Billing account reader"),
		// 							},
		// 						},
		// 						{
		// 							Name: to.Ptr("50000000-aaaa-bbbb-cccc-100000000003"),
		// 							Type: to.Ptr("Microsoft.Billing/billingAccounts/billingRoleDefinitions"),
		// 							ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingRoleDefinitions/50000000-aaaa-bbbb-cccc-100000000003"),
		// 							Properties: &armbilling.RoleDefinitionProperties{
		// 								Description: to.Ptr("The Purchaser role gives the user permissions to make purchases by creating new Projects and Billing Groups in an organization."),
		// 								Permissions: []*armbilling.Permission{
		// 									{
		// 										Actions: []*string{
		// 											to.Ptr("10000000-aaaa-bbbb-cccc-200000000006"),
		// 											to.Ptr("10000000-aaaa-bbbb-cccc-200000000007"),
		// 											to.Ptr("50000000-aaaa-bbbb-cccc-200000000001"),
		// 											to.Ptr("50000000-aaaa-bbbb-cccc-200000000006")},
		// 									}},
		// 									RoleName: to.Ptr("Basic Purchaser"),
		// 								},
		// 						}},
		// 					}
	}
}

func (*RoleDefinitionClient) NewListByBillingProfilePager

func (client *RoleDefinitionClient) NewListByBillingProfilePager(billingAccountName string, billingProfileName string, options *RoleDefinitionClientListByBillingProfileOptions) *runtime.Pager[RoleDefinitionClientListByBillingProfileResponse]

NewListByBillingProfilePager - Lists the role definitions for a billing profile. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement, Microsoft Customer Agreement or Enterprise Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - RoleDefinitionClientListByBillingProfileOptions contains the optional parameters for the RoleDefinitionClient.NewListByBillingProfilePager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleDefinitionListByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRoleDefinitionClient().NewListByBillingProfilePager("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", 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.RoleDefinitionListResult = armbilling.RoleDefinitionListResult{
		// 	Value: []*armbilling.RoleDefinition{
		// 		{
		// 			Name: to.Ptr("40000000-aaaa-bbbb-cccc-100000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/billingRoleDefinitions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/40000000-aaaa-bbbb-cccc-100000000000"),
		// 			Properties: &armbilling.RoleDefinitionProperties{
		// 				Description: to.Ptr("The Owner role gives the user all permissions including access management rights to the billing profile."),
		// 				Permissions: []*armbilling.Permission{
		// 					{
		// 						Actions: []*string{
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000000"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000001"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000002"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000003"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000004"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000005"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000007"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000008"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000011"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000012"),
		// 							to.Ptr("40000000-aaaa-bbbb-cccc-200000000013")},
		// 					}},
		// 					RoleName: to.Ptr("Billing profile owner"),
		// 				},
		// 			},
		// 			{
		// 				Name: to.Ptr("40000000-aaaa-bbbb-cccc-100000000001"),
		// 				Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/billingRoleDefinitions"),
		// 				ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/40000000-aaaa-bbbb-cccc-100000000001"),
		// 				Properties: &armbilling.RoleDefinitionProperties{
		// 					Description: to.Ptr("The Contributor role gives the user all permissions except access management rights to the billing profile."),
		// 					Permissions: []*armbilling.Permission{
		// 						{
		// 							Actions: []*string{
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000001"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000002"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000003"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000004"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000005"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000007"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000008"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000011"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000012"),
		// 								to.Ptr("40000000-aaaa-bbbb-cccc-200000000013")},
		// 						}},
		// 						RoleName: to.Ptr("Billing profile contributor"),
		// 					},
		// 				},
		// 				{
		// 					Name: to.Ptr("40000000-aaaa-bbbb-cccc-100000000002"),
		// 					Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/billingRoleDefinitions"),
		// 					ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/40000000-aaaa-bbbb-cccc-100000000002"),
		// 					Properties: &armbilling.RoleDefinitionProperties{
		// 						Description: to.Ptr("The Reader role gives the user read only access to the billing profile."),
		// 						Permissions: []*armbilling.Permission{
		// 							{
		// 								Actions: []*string{
		// 									to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
		// 									to.Ptr("40000000-aaaa-bbbb-cccc-200000000007"),
		// 									to.Ptr("40000000-aaaa-bbbb-cccc-200000000008"),
		// 									to.Ptr("40000000-aaaa-bbbb-cccc-200000000012")},
		// 							}},
		// 							RoleName: to.Ptr("Billing profile reader"),
		// 						},
		// 					},
		// 					{
		// 						Name: to.Ptr("40000000-aaaa-bbbb-cccc-100000000004"),
		// 						Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/billingRoleDefinitions"),
		// 						ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/billingRoleDefinitions/40000000-aaaa-bbbb-cccc-100000000004"),
		// 						Properties: &armbilling.RoleDefinitionProperties{
		// 							Description: to.Ptr("The Invoice Manager role gives the user the ability to view and manage invoices."),
		// 							Permissions: []*armbilling.Permission{
		// 								{
		// 									Actions: []*string{
		// 										to.Ptr("40000000-aaaa-bbbb-cccc-200000000007"),
		// 										to.Ptr("40000000-aaaa-bbbb-cccc-200000000006"),
		// 										to.Ptr("40000000-aaaa-bbbb-cccc-200000000011"),
		// 										to.Ptr("40000000-aaaa-bbbb-cccc-200000000008"),
		// 										to.Ptr("40000000-aaaa-bbbb-cccc-200000000012"),
		// 										to.Ptr("40000000-aaaa-bbbb-cccc-200000000013")},
		// 								}},
		// 								RoleName: to.Ptr("Invoice manager"),
		// 							},
		// 					}},
		// 				}
	}
}

func (*RoleDefinitionClient) NewListByCustomerPager

func (client *RoleDefinitionClient) NewListByCustomerPager(billingAccountName string, billingProfileName string, customerName string, options *RoleDefinitionClientListByCustomerOptions) *runtime.Pager[RoleDefinitionClientListByCustomerResponse]

NewListByCustomerPager - Lists the role definitions for a customer. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • options - RoleDefinitionClientListByCustomerOptions contains the optional parameters for the RoleDefinitionClient.NewListByCustomerPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleDefinitionListByCustomer.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRoleDefinitionClient().NewListByCustomerPager("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "11111111-1111-1111-1111-111111111111", 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.RoleDefinitionListResult = armbilling.RoleDefinitionListResult{
		// 	Value: []*armbilling.RoleDefinition{
		// 		{
		// 			Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/billingRoleDefinitions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
		// 			Properties: &armbilling.RoleDefinitionProperties{
		// 				Description: to.Ptr("The Owner role gives the user all permissions including access management rights to the customer."),
		// 				Permissions: []*armbilling.Permission{
		// 					{
		// 						Actions: []*string{
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000000"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000003"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000005"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000006"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000008"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000011"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000012"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000013"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000016"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000017"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000018")},
		// 							NotActions: []*string{
		// 							},
		// 					}},
		// 					RoleName: to.Ptr("Customer owner"),
		// 				},
		// 			},
		// 			{
		// 				Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000001"),
		// 				Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/billingRoleDefinitions"),
		// 				ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000001"),
		// 				Properties: &armbilling.RoleDefinitionProperties{
		// 					Description: to.Ptr("The Contributor role gives the user all permissions except access management rights to the customer."),
		// 					Permissions: []*armbilling.Permission{
		// 						{
		// 							Actions: []*string{
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000003"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000005"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000006"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000008"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000011"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000012"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000013"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000016"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000017"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000018")},
		// 								NotActions: []*string{
		// 								},
		// 						}},
		// 						RoleName: to.Ptr("Customer contributor"),
		// 					},
		// 				},
		// 				{
		// 					Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000002"),
		// 					Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/customers/billingRoleDefinitions"),
		// 					ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/11111111-1111-1111-1111-111111111111/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000002"),
		// 					Properties: &armbilling.RoleDefinitionProperties{
		// 						Description: to.Ptr("The reader role gives the user read only access to the customer."),
		// 						Permissions: []*armbilling.Permission{
		// 							{
		// 								Actions: []*string{
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000017")},
		// 									NotActions: []*string{
		// 									},
		// 							}},
		// 							RoleName: to.Ptr("Customer reader"),
		// 						},
		// 				}},
		// 			}
	}
}

func (*RoleDefinitionClient) NewListByDepartmentPager

func (client *RoleDefinitionClient) NewListByDepartmentPager(billingAccountName string, departmentName string, options *RoleDefinitionClientListByDepartmentOptions) *runtime.Pager[RoleDefinitionClientListByDepartmentResponse]

NewListByDepartmentPager - List the definition for a department. The operation is supported for billing accounts with agreement type Enterprise Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • departmentName - The name of the department.
  • options - RoleDefinitionClientListByDepartmentOptions contains the optional parameters for the RoleDefinitionClient.NewListByDepartmentPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleDefinitionListByDepartment.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRoleDefinitionClient().NewListByDepartmentPager("123456", "7368531", 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.RoleDefinitionListResult = armbilling.RoleDefinitionListResult{
		// 	Value: []*armbilling.RoleDefinition{
		// 		{
		// 			Name: to.Ptr("50000000-aaaa-bbbb-cccc-100000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/departments/billingRoleDefinitions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/123456/departments/7368531/billingRoleDefinitions/50000000-aaaa-bbbb-cccc-100000000000"),
		// 			Properties: &armbilling.RoleDefinitionProperties{
		// 				Permissions: []*armbilling.Permission{
		// 					{
		// 						Actions: []*string{
		// 							to.Ptr("Microsoft.Billing/billingAccounts/departments/read"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/departments/write"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/departments/action"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/departments/delete"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/read"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/write"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/action"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/delete"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingSubscriptions/read")},
		// 					}},
		// 					RoleName: to.Ptr("Department Admin"),
		// 				},
		// 			},
		// 			{
		// 				Name: to.Ptr("50000000-aaaa-bbbb-cccc-100000000001"),
		// 				Type: to.Ptr("Microsoft.Billing/billingAccounts/departments/billingRoleDefinitions"),
		// 				ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/123456/departments/7368531/billingRoleDefinitions/50000000-aaaa-bbbb-cccc-100000000001"),
		// 				Properties: &armbilling.RoleDefinitionProperties{
		// 					Permissions: []*armbilling.Permission{
		// 						{
		// 							Actions: []*string{
		// 								to.Ptr("Microsoft.Billing/billingAccounts/departments/read"),
		// 								to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/read"),
		// 								to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingSubscriptions/read")},
		// 						}},
		// 						RoleName: to.Ptr("Department Reader"),
		// 					},
		// 			}},
		// 		}
	}
}

func (*RoleDefinitionClient) NewListByEnrollmentAccountPager

func (client *RoleDefinitionClient) NewListByEnrollmentAccountPager(billingAccountName string, enrollmentAccountName string, options *RoleDefinitionClientListByEnrollmentAccountOptions) *runtime.Pager[RoleDefinitionClientListByEnrollmentAccountResponse]

NewListByEnrollmentAccountPager - List the definition for an enrollment account. The operation is supported for billing accounts with agreement type Enterprise Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • enrollmentAccountName - The name of the enrollment account.
  • options - RoleDefinitionClientListByEnrollmentAccountOptions contains the optional parameters for the RoleDefinitionClient.NewListByEnrollmentAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleDefinitionListByEnrollmentAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRoleDefinitionClient().NewListByEnrollmentAccountPager("123456", "4568789", 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.RoleDefinitionListResult = armbilling.RoleDefinitionListResult{
		// 	Value: []*armbilling.RoleDefinition{
		// 		{
		// 			Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingRoleDefinitions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/123456/enrollmentAccounts/4568789/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
		// 			Properties: &armbilling.RoleDefinitionProperties{
		// 				Description: to.Ptr("The account owner role gives the user all permissions including access management rights to an accounts."),
		// 				Permissions: []*armbilling.Permission{
		// 					{
		// 						Actions: []*string{
		// 							to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/read"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/write"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/action"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/delete"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingSubscriptions/read"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingSubscriptions/write"),
		// 							to.Ptr("Microsoft.Billing/billingAccounts/enrollmentAccounts/billingSubscriptions/action")},
		// 							NotActions: []*string{
		// 							},
		// 					}},
		// 					RoleName: to.Ptr("Account Owner"),
		// 				},
		// 		}},
		// 	}
	}
}

func (*RoleDefinitionClient) NewListByInvoiceSectionPager

func (client *RoleDefinitionClient) NewListByInvoiceSectionPager(billingAccountName string, billingProfileName string, invoiceSectionName string, options *RoleDefinitionClientListByInvoiceSectionOptions) *runtime.Pager[RoleDefinitionClientListByInvoiceSectionResponse]

NewListByInvoiceSectionPager - Lists the role definitions for an invoice section. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • options - RoleDefinitionClientListByInvoiceSectionOptions contains the optional parameters for the RoleDefinitionClient.NewListByInvoiceSectionPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingRoleDefinitionListByInvoiceSection.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewRoleDefinitionClient().NewListByInvoiceSectionPager("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "yyyy-yyyy-yyy-yyy", 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.RoleDefinitionListResult = armbilling.RoleDefinitionListResult{
		// 	Value: []*armbilling.RoleDefinition{
		// 		{
		// 			Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections/billingRoleDefinitions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000000"),
		// 			Properties: &armbilling.RoleDefinitionProperties{
		// 				Description: to.Ptr("The Owner role gives the user all permissions including access management rights to the invoice section."),
		// 				Permissions: []*armbilling.Permission{
		// 					{
		// 						Actions: []*string{
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000000"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000003"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000005"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000006"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000008"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000011"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000012"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000013"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000016"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000017"),
		// 							to.Ptr("30000000-aaaa-bbbb-cccc-200000000018")},
		// 					}},
		// 					RoleName: to.Ptr("Invoice section owner"),
		// 				},
		// 			},
		// 			{
		// 				Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000001"),
		// 				Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections/billingRoleDefinitions"),
		// 				ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000001"),
		// 				Properties: &armbilling.RoleDefinitionProperties{
		// 					Description: to.Ptr("The Contributor role gives the user all permissions except access management rights to the invoice section."),
		// 					Permissions: []*armbilling.Permission{
		// 						{
		// 							Actions: []*string{
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000003"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000005"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000006"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000008"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000009"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000010"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000011"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000012"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000013"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000016"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000017"),
		// 								to.Ptr("30000000-aaaa-bbbb-cccc-200000000018")},
		// 						}},
		// 						RoleName: to.Ptr("Invoice section contributor"),
		// 					},
		// 				},
		// 				{
		// 					Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000002"),
		// 					Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections/billingRoleDefinitions"),
		// 					ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000002"),
		// 					Properties: &armbilling.RoleDefinitionProperties{
		// 						Description: to.Ptr("The reader role gives the user read only access to the invoice section."),
		// 						Permissions: []*armbilling.Permission{
		// 							{
		// 								Actions: []*string{
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000007"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000004"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000015"),
		// 									to.Ptr("30000000-aaaa-bbbb-cccc-200000000017")},
		// 							}},
		// 							RoleName: to.Ptr("Invoice section reader"),
		// 						},
		// 					},
		// 					{
		// 						Name: to.Ptr("30000000-aaaa-bbbb-cccc-100000000006"),
		// 						Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/invoiceSections/billingRoleDefinitions"),
		// 						ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy/billingRoleDefinitions/30000000-aaaa-bbbb-cccc-100000000006"),
		// 						Properties: &armbilling.RoleDefinitionProperties{
		// 							Description: to.Ptr("The Azure subscription creator role gives the user the ability to create an Azure subscription for the invoice section."),
		// 							Permissions: []*armbilling.Permission{
		// 								{
		// 									Actions: []*string{
		// 										to.Ptr("30000000-aaaa-bbbb-cccc-200000000001"),
		// 										to.Ptr("30000000-aaaa-bbbb-cccc-200000000013")},
		// 								}},
		// 								RoleName: to.Ptr("Azure subscription creator"),
		// 							},
		// 					}},
		// 				}
	}
}

type RoleDefinitionClientGetByBillingAccountOptions

type RoleDefinitionClientGetByBillingAccountOptions struct {
}

RoleDefinitionClientGetByBillingAccountOptions contains the optional parameters for the RoleDefinitionClient.GetByBillingAccount method.

type RoleDefinitionClientGetByBillingAccountResponse

type RoleDefinitionClientGetByBillingAccountResponse struct {
	// The properties of a role definition.
	RoleDefinition
}

RoleDefinitionClientGetByBillingAccountResponse contains the response from method RoleDefinitionClient.GetByBillingAccount.

type RoleDefinitionClientGetByBillingProfileOptions

type RoleDefinitionClientGetByBillingProfileOptions struct {
}

RoleDefinitionClientGetByBillingProfileOptions contains the optional parameters for the RoleDefinitionClient.GetByBillingProfile method.

type RoleDefinitionClientGetByBillingProfileResponse

type RoleDefinitionClientGetByBillingProfileResponse struct {
	// The properties of a role definition.
	RoleDefinition
}

RoleDefinitionClientGetByBillingProfileResponse contains the response from method RoleDefinitionClient.GetByBillingProfile.

type RoleDefinitionClientGetByCustomerOptions

type RoleDefinitionClientGetByCustomerOptions struct {
}

RoleDefinitionClientGetByCustomerOptions contains the optional parameters for the RoleDefinitionClient.GetByCustomer method.

type RoleDefinitionClientGetByCustomerResponse

type RoleDefinitionClientGetByCustomerResponse struct {
	// The properties of a role definition.
	RoleDefinition
}

RoleDefinitionClientGetByCustomerResponse contains the response from method RoleDefinitionClient.GetByCustomer.

type RoleDefinitionClientGetByDepartmentOptions

type RoleDefinitionClientGetByDepartmentOptions struct {
}

RoleDefinitionClientGetByDepartmentOptions contains the optional parameters for the RoleDefinitionClient.GetByDepartment method.

type RoleDefinitionClientGetByDepartmentResponse

type RoleDefinitionClientGetByDepartmentResponse struct {
	// The properties of a role definition.
	RoleDefinition
}

RoleDefinitionClientGetByDepartmentResponse contains the response from method RoleDefinitionClient.GetByDepartment.

type RoleDefinitionClientGetByEnrollmentAccountOptions

type RoleDefinitionClientGetByEnrollmentAccountOptions struct {
}

RoleDefinitionClientGetByEnrollmentAccountOptions contains the optional parameters for the RoleDefinitionClient.GetByEnrollmentAccount method.

type RoleDefinitionClientGetByEnrollmentAccountResponse

type RoleDefinitionClientGetByEnrollmentAccountResponse struct {
	// The properties of a role definition.
	RoleDefinition
}

RoleDefinitionClientGetByEnrollmentAccountResponse contains the response from method RoleDefinitionClient.GetByEnrollmentAccount.

type RoleDefinitionClientGetByInvoiceSectionOptions

type RoleDefinitionClientGetByInvoiceSectionOptions struct {
}

RoleDefinitionClientGetByInvoiceSectionOptions contains the optional parameters for the RoleDefinitionClient.GetByInvoiceSection method.

type RoleDefinitionClientGetByInvoiceSectionResponse

type RoleDefinitionClientGetByInvoiceSectionResponse struct {
	// The properties of a role definition.
	RoleDefinition
}

RoleDefinitionClientGetByInvoiceSectionResponse contains the response from method RoleDefinitionClient.GetByInvoiceSection.

type RoleDefinitionClientListByBillingAccountOptions

type RoleDefinitionClientListByBillingAccountOptions struct {
}

RoleDefinitionClientListByBillingAccountOptions contains the optional parameters for the RoleDefinitionClient.NewListByBillingAccountPager method.

type RoleDefinitionClientListByBillingAccountResponse

type RoleDefinitionClientListByBillingAccountResponse struct {
	// A container for a list of resources
	RoleDefinitionListResult
}

RoleDefinitionClientListByBillingAccountResponse contains the response from method RoleDefinitionClient.NewListByBillingAccountPager.

type RoleDefinitionClientListByBillingProfileOptions

type RoleDefinitionClientListByBillingProfileOptions struct {
}

RoleDefinitionClientListByBillingProfileOptions contains the optional parameters for the RoleDefinitionClient.NewListByBillingProfilePager method.

type RoleDefinitionClientListByBillingProfileResponse

type RoleDefinitionClientListByBillingProfileResponse struct {
	// A container for a list of resources
	RoleDefinitionListResult
}

RoleDefinitionClientListByBillingProfileResponse contains the response from method RoleDefinitionClient.NewListByBillingProfilePager.

type RoleDefinitionClientListByCustomerOptions

type RoleDefinitionClientListByCustomerOptions struct {
}

RoleDefinitionClientListByCustomerOptions contains the optional parameters for the RoleDefinitionClient.NewListByCustomerPager method.

type RoleDefinitionClientListByCustomerResponse

type RoleDefinitionClientListByCustomerResponse struct {
	// A container for a list of resources
	RoleDefinitionListResult
}

RoleDefinitionClientListByCustomerResponse contains the response from method RoleDefinitionClient.NewListByCustomerPager.

type RoleDefinitionClientListByDepartmentOptions

type RoleDefinitionClientListByDepartmentOptions struct {
}

RoleDefinitionClientListByDepartmentOptions contains the optional parameters for the RoleDefinitionClient.NewListByDepartmentPager method.

type RoleDefinitionClientListByDepartmentResponse

type RoleDefinitionClientListByDepartmentResponse struct {
	// A container for a list of resources
	RoleDefinitionListResult
}

RoleDefinitionClientListByDepartmentResponse contains the response from method RoleDefinitionClient.NewListByDepartmentPager.

type RoleDefinitionClientListByEnrollmentAccountOptions

type RoleDefinitionClientListByEnrollmentAccountOptions struct {
}

RoleDefinitionClientListByEnrollmentAccountOptions contains the optional parameters for the RoleDefinitionClient.NewListByEnrollmentAccountPager method.

type RoleDefinitionClientListByEnrollmentAccountResponse

type RoleDefinitionClientListByEnrollmentAccountResponse struct {
	// A container for a list of resources
	RoleDefinitionListResult
}

RoleDefinitionClientListByEnrollmentAccountResponse contains the response from method RoleDefinitionClient.NewListByEnrollmentAccountPager.

type RoleDefinitionClientListByInvoiceSectionOptions

type RoleDefinitionClientListByInvoiceSectionOptions struct {
}

RoleDefinitionClientListByInvoiceSectionOptions contains the optional parameters for the RoleDefinitionClient.NewListByInvoiceSectionPager method.

type RoleDefinitionClientListByInvoiceSectionResponse

type RoleDefinitionClientListByInvoiceSectionResponse struct {
	// A container for a list of resources
	RoleDefinitionListResult
}

RoleDefinitionClientListByInvoiceSectionResponse contains the response from method RoleDefinitionClient.NewListByInvoiceSectionPager.

type RoleDefinitionListResult

type RoleDefinitionListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*RoleDefinition
}

RoleDefinitionListResult - A container for a list of resources

func (RoleDefinitionListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RoleDefinitionListResult.

func (*RoleDefinitionListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RoleDefinitionListResult.

type RoleDefinitionProperties

type RoleDefinitionProperties struct {
	// REQUIRED; The name of the role.
	RoleName *string

	// READ-ONLY; The role description.
	Description *string

	// READ-ONLY; The billingPermissions the role has.
	Permissions []*Permission
}

RoleDefinitionProperties - The properties of a role definition.

func (RoleDefinitionProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type RoleDefinitionProperties.

func (*RoleDefinitionProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type RoleDefinitionProperties.

type SKU

type SKU struct {
	// Name of the SKU to be applied
	Name *string
}

SKU - The SKU to be applied for this resource

func (SKU) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SKU.

func (*SKU) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SKU.

type SKUName

type SKUName struct {
	Name *string
}

SKUName - The name of sku

func (SKUName) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SKUName.

func (*SKUName) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SKUName.

type SavingsPlanModel

type SavingsPlanModel struct {
	// REQUIRED; Savings plan SKU
	SKU *SKU

	// Savings plan properties
	Properties *SavingsPlanModelProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

SavingsPlanModel - Savings plan

func (SavingsPlanModel) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SavingsPlanModel.

func (*SavingsPlanModel) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SavingsPlanModel.

type SavingsPlanModelList

type SavingsPlanModelList struct {
	// Url to get the next page.
	NextLink *string
	Value    []*SavingsPlanModel
}

SavingsPlanModelList - List of savings plans

func (SavingsPlanModelList) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SavingsPlanModelList.

func (*SavingsPlanModelList) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SavingsPlanModelList.

type SavingsPlanModelListResult

type SavingsPlanModelListResult struct {
	// Url to get the next page.
	NextLink *string

	// The roll out count summary of the savings plans
	Summary *SavingsPlanSummaryCount
	Value   []*SavingsPlanModel
}

SavingsPlanModelListResult - List of savings plans

func (SavingsPlanModelListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SavingsPlanModelListResult.

func (*SavingsPlanModelListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SavingsPlanModelListResult.

type SavingsPlanModelProperties

type SavingsPlanModelProperties struct {
	// Properties specific to applied scope type. Not required if not applicable.
	AppliedScopeProperties *AppliedScopeProperties

	// Type of the Applied Scope.
	AppliedScopeType *AppliedScopeType

	// Represents the billing plan in ISO 8601 format. Required only for monthly purchases.
	BillingPlan *BillingPlan

	// Subscription that will be charged for purchasing SavingsPlan
	BillingScopeID *string

	// Commitment towards the benefit.
	Commitment *Commitment

	// Display name
	DisplayName *string

	// Represents UPN
	ProductCode *string

	// The provisioning state of the resource during a long-running operation.
	ProvisioningState *ProvisioningState

	// Setting this to true will automatically purchase a new benefit on the expiration date time.
	Renew *bool

	// SavingsPlan Id of the SavingsPlan which is purchased because of renew.
	RenewDestination *string

	// Properties specific to renew.
	RenewProperties *RenewProperties

	// SavingsPlan Id of the SavingsPlan from which this SavingsPlan is renewed.
	RenewSource *string

	// Represents the Savings plan term in ISO 8601 format.
	Term *SavingsPlanTerm

	// READ-ONLY; This is the DateTime when the savings plan benefit starts.
	BenefitStartTime *time.Time

	// READ-ONLY; Fully-qualified identifier of the billing account where the savings plan is applied.
	BillingAccountID *string

	// READ-ONLY; Fully-qualified identifier of the billing profile where the savings plan is applied. Present only for Field-led
	// or Customer-led customers.
	BillingProfileID *string

	// READ-ONLY; Fully-qualified identifier of the customer where the savings plan is applied. Present only for Partner-led customers.
	CustomerID *string

	// READ-ONLY; The provisioning state of the savings plan for display, e.g. Succeeded
	DisplayProvisioningState *string

	// READ-ONLY; DateTime of the savings plan starting when this version is effective from.
	EffectiveDateTime *time.Time

	// READ-ONLY; This is the date-time when the savings plan will expire.
	ExpiryDateTime *time.Time

	// READ-ONLY; Extended status information
	ExtendedStatusInfo *ExtendedStatusInfo

	// READ-ONLY; Date time when the savings plan was purchased.
	PurchaseDateTime *time.Time

	// READ-ONLY; The applied scope type of the savings plan for display, e.g. Shared
	UserFriendlyAppliedScopeType *string

	// READ-ONLY; Savings plan utilization
	Utilization *Utilization
}

SavingsPlanModelProperties - Savings plan properties

func (SavingsPlanModelProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SavingsPlanModelProperties.

func (*SavingsPlanModelProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SavingsPlanModelProperties.

type SavingsPlanOrderModel

type SavingsPlanOrderModel struct {
	// REQUIRED; Savings plan SKU
	SKU *SKU

	// Savings plan order properties
	Properties *SavingsPlanOrderModelProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

SavingsPlanOrderModel - Savings plan order

func (SavingsPlanOrderModel) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SavingsPlanOrderModel.

func (*SavingsPlanOrderModel) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SavingsPlanOrderModel.

type SavingsPlanOrderModelList

type SavingsPlanOrderModelList struct {
	// Url to get the next page.
	NextLink *string
	Value    []*SavingsPlanOrderModel
}

SavingsPlanOrderModelList - List of savings plan orders

func (SavingsPlanOrderModelList) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SavingsPlanOrderModelList.

func (*SavingsPlanOrderModelList) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SavingsPlanOrderModelList.

type SavingsPlanOrderModelProperties

type SavingsPlanOrderModelProperties struct {
	// Represents the billing plan in ISO 8601 format. Required only for monthly purchases.
	BillingPlan *BillingPlan

	// Subscription that will be charged for purchasing SavingsPlan
	BillingScopeID *string

	// Display name
	DisplayName *string

	// Information describing the type of billing plan for this savings plan.
	PlanInformation *PlanInformation

	// Represents UPN
	ProductCode  *string
	SavingsPlans []*string

	// Represents the Savings plan term in ISO 8601 format.
	Term *SavingsPlanTerm

	// READ-ONLY; DateTime when the savings plan benefit started.
	BenefitStartTime *time.Time

	// READ-ONLY; Fully-qualified identifier of the billing account where the savings plan is applied.
	BillingAccountID *string

	// READ-ONLY; Fully-qualified identifier of the billing profile where the savings plan is applied. Present only for Field-led
	// or Customer-led customers.
	BillingProfileID *string

	// READ-ONLY; Fully-qualified identifier of the customer where the savings plan is applied. Present only for Partner-led customers.
	CustomerID *string

	// READ-ONLY; DateTime when the savings plan will expire.
	ExpiryDateTime *time.Time

	// READ-ONLY; Extended status information
	ExtendedStatusInfo *ExtendedStatusInfo

	// READ-ONLY; The provisioning state of the savings plan, e.g. Succeeded
	ProvisioningState *string
}

SavingsPlanOrderModelProperties - Savings plan order properties

func (SavingsPlanOrderModelProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SavingsPlanOrderModelProperties.

func (*SavingsPlanOrderModelProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SavingsPlanOrderModelProperties.

type SavingsPlanOrdersClient

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

SavingsPlanOrdersClient contains the methods for the SavingsPlanOrders group. Don't use this type directly, use NewSavingsPlanOrdersClient() instead.

func NewSavingsPlanOrdersClient

func NewSavingsPlanOrdersClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*SavingsPlanOrdersClient, error)

NewSavingsPlanOrdersClient creates a new instance of SavingsPlanOrdersClient with the specified values.

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

func (*SavingsPlanOrdersClient) GetByBillingAccount

func (client *SavingsPlanOrdersClient) GetByBillingAccount(ctx context.Context, billingAccountName string, savingsPlanOrderID string, options *SavingsPlanOrdersClientGetByBillingAccountOptions) (SavingsPlanOrdersClientGetByBillingAccountResponse, error)

GetByBillingAccount - Get a savings plan order by billing account. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • savingsPlanOrderID - Order ID of the savings plan
  • options - SavingsPlanOrdersClientGetByBillingAccountOptions contains the optional parameters for the SavingsPlanOrdersClient.GetByBillingAccount method.
Example (SavingsPlanOrderGet)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/savingsPlanOrderGetByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewSavingsPlanOrdersClient().GetByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", &armbilling.SavingsPlanOrdersClientGetByBillingAccountOptions{Expand: 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.SavingsPlanOrderModel = armbilling.SavingsPlanOrderModel{
	// 	Name: to.Ptr("20000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("microsoft.billing/billingAccounts/savingsPlanOrders"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/savingsPlanOrders/20000000-0000-0000-0000-000000000000"),
	// 	Tags: map[string]*string{
	// 		"key1": to.Ptr("value1"),
	// 		"key2": to.Ptr("value2"),
	// 	},
	// 	Properties: &armbilling.SavingsPlanOrderModelProperties{
	// 		BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-20T02:36:22.339Z"); return t}()),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 		BillingPlan: to.Ptr(armbilling.BillingPlanP1M),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-BBBB-CCC-DDD"),
	// 		BillingScopeID: to.Ptr("10000000-0000-0000-0000-000000000000"),
	// 		DisplayName: to.Ptr("SP1"),
	// 		ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2026-01-20T02:36:22.339Z"); return t}()),
	// 		ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
	// 		ProvisioningState: to.Ptr("Succeeded"),
	// 		SavingsPlans: []*string{
	// 			to.Ptr("/providers/Microsoft.BillingBenefits/savingsPlanOrders/20000000-0000-0000-0000-000000000000/savingsPlans/30000000-0000-0000-0000-000000000000")},
	// 			Term: to.Ptr(armbilling.SavingsPlanTermP3Y),
	// 		},
	// 		SKU: &armbilling.SKU{
	// 			Name: to.Ptr("Compute_Savings_Plan"),
	// 		},
	// 	}
}
Example (SavingsPlanOrderWithExpandedPaymentsGet)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/savingsPlanOrderExpandedScheduleGetByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewSavingsPlanOrdersClient().GetByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", &armbilling.SavingsPlanOrdersClientGetByBillingAccountOptions{Expand: 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.SavingsPlanOrderModel = armbilling.SavingsPlanOrderModel{
	// 	Name: to.Ptr("20000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("microsoft.billing/billingAccounts/savingsPlanOrders"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/savingsPlanOrders/20000000-0000-0000-0000-000000000000"),
	// 	Tags: map[string]*string{
	// 		"key1": to.Ptr("value1"),
	// 		"key2": to.Ptr("value2"),
	// 	},
	// 	Properties: &armbilling.SavingsPlanOrderModelProperties{
	// 		BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-20T02:36:22.339Z"); return t}()),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 		BillingPlan: to.Ptr(armbilling.BillingPlanP1M),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-BBBB-CCC-DDD"),
	// 		BillingScopeID: to.Ptr("10000000-0000-0000-0000-000000000000"),
	// 		DisplayName: to.Ptr("SP1"),
	// 		ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2026-01-20T02:36:22.339Z"); return t}()),
	// 		PlanInformation: &armbilling.PlanInformation{
	// 			NextPaymentDueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-02-20"); return t}()),
	// 			PricingCurrencyTotal: &armbilling.Price{
	// 				Amount: to.Ptr[float64](26.28),
	// 				CurrencyCode: to.Ptr("USD"),
	// 			},
	// 			StartDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-01-20"); return t}()),
	// 			Transactions: []*armbilling.PaymentDetail{
	// 				{
	// 					BillingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-01-20"); return t}()),
	// 					PaymentDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-01-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusCompleted),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-02-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-03-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-04-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-05-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-06-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-07-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-08-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-09-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-10-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-11-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2023-12-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-01-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-02-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-03-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-04-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-05-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-06-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-07-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-08-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-09-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-10-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-11-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2024-12-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2025-01-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2025-02-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2025-03-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2025-04-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2025-05-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2025-06-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2025-07-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2025-08-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2025-09-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2025-10-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2025-11-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 				},
	// 				{
	// 					DueDate: to.Ptr(func() time.Time { t, _ := time.Parse("2006-01-02", "2025-12-20"); return t}()),
	// 					PricingCurrencyTotal: &armbilling.Price{
	// 						Amount: to.Ptr[float64](0.73),
	// 						CurrencyCode: to.Ptr("USD"),
	// 					},
	// 					Status: to.Ptr(armbilling.PaymentStatusScheduled),
	// 			}},
	// 		},
	// 		ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
	// 		ProvisioningState: to.Ptr("Succeeded"),
	// 		SavingsPlans: []*string{
	// 			to.Ptr("/providers/Microsoft.BillingBenefits/savingsPlanOrders/20000000-0000-0000-0000-000000000000/savingsPlans/30000000-0000-0000-0000-000000000000")},
	// 			Term: to.Ptr(armbilling.SavingsPlanTermP3Y),
	// 		},
	// 		SKU: &armbilling.SKU{
	// 			Name: to.Ptr("Compute_Savings_Plan"),
	// 		},
	// 	}
}

func (*SavingsPlanOrdersClient) NewListByBillingAccountPager

NewListByBillingAccountPager - List all Savings plan orders by billing account.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - SavingsPlanOrdersClientListByBillingAccountOptions contains the optional parameters for the SavingsPlanOrdersClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/savingsPlanOrderListByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewSavingsPlanOrdersClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.SavingsPlanOrdersClientListByBillingAccountOptions{Filter: nil,
		OrderBy:   nil,
		Skiptoken: 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.SavingsPlanOrderModelList = armbilling.SavingsPlanOrderModelList{
		// 	Value: []*armbilling.SavingsPlanOrderModel{
		// 		{
		// 			Name: to.Ptr("20000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("microsoft.billing/billingAccounts/savingsPlanOrders"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/savingsPlanOrders/20000000-0000-0000-0000-000000000000"),
		// 			Tags: map[string]*string{
		// 				"key1": to.Ptr("value1"),
		// 				"key2": to.Ptr("value2"),
		// 			},
		// 			Properties: &armbilling.SavingsPlanOrderModelProperties{
		// 				BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-04T03:18:31.307Z"); return t}()),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingPlan: to.Ptr(armbilling.BillingPlanP1M),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-BBBB-CCC-DDD"),
		// 				BillingScopeID: to.Ptr("10000000-0000-0000-0000-000000000000"),
		// 				DisplayName: to.Ptr("SP1"),
		// 				ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2026-02-04T03:18:31.307Z"); return t}()),
		// 				ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
		// 				ProvisioningState: to.Ptr("Succeeded"),
		// 				SavingsPlans: []*string{
		// 					to.Ptr("/providers/Microsoft.BillingBenefits/savingsPlanOrders/20000000-0000-0000-0000-000000000000/savingsPlans/30000000-0000-0000-0000-000000000000")},
		// 					Term: to.Ptr(armbilling.SavingsPlanTermP3Y),
		// 				},
		// 				SKU: &armbilling.SKU{
		// 					Name: to.Ptr("Compute_Savings_Plan"),
		// 				},
		// 			},
		// 			{
		// 				Name: to.Ptr("20000000-0000-0000-0000-000000000001"),
		// 				Type: to.Ptr("microsoft.billing/billingAccounts/savingsPlanOrders"),
		// 				ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/savingsPlanOrders/20000000-0000-0000-0000-000000000001"),
		// 				Tags: map[string]*string{
		// 					"key1": to.Ptr("value1"),
		// 					"key2": to.Ptr("value2"),
		// 				},
		// 				Properties: &armbilling.SavingsPlanOrderModelProperties{
		// 					BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-04T03:22:19.730Z"); return t}()),
		// 					BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 					BillingPlan: to.Ptr(armbilling.BillingPlanP1M),
		// 					BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-BBBB-CCC-DDD"),
		// 					BillingScopeID: to.Ptr("10000000-0000-0000-0000-000000000000"),
		// 					DisplayName: to.Ptr("SP2"),
		// 					ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2026-02-04T03:22:19.730Z"); return t}()),
		// 					ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
		// 					ProvisioningState: to.Ptr("Succeeded"),
		// 					SavingsPlans: []*string{
		// 						to.Ptr("/providers/Microsoft.BillingBenefits/savingsPlanOrders/20000000-0000-0000-0000-000000000001/savingsPlans/30000000-0000-0000-0000-000000000001")},
		// 						Term: to.Ptr(armbilling.SavingsPlanTermP3Y),
		// 					},
		// 					SKU: &armbilling.SKU{
		// 						Name: to.Ptr("Compute_Savings_Plan"),
		// 					},
		// 			}},
		// 		}
	}
}

type SavingsPlanOrdersClientGetByBillingAccountOptions

type SavingsPlanOrdersClientGetByBillingAccountOptions struct {
	// May be used to expand the planInformation.
	Expand *string
}

SavingsPlanOrdersClientGetByBillingAccountOptions contains the optional parameters for the SavingsPlanOrdersClient.GetByBillingAccount method.

type SavingsPlanOrdersClientGetByBillingAccountResponse

type SavingsPlanOrdersClientGetByBillingAccountResponse struct {
	// Savings plan order
	SavingsPlanOrderModel
}

SavingsPlanOrdersClientGetByBillingAccountResponse contains the response from method SavingsPlanOrdersClient.GetByBillingAccount.

type SavingsPlanOrdersClientListByBillingAccountOptions

type SavingsPlanOrdersClientListByBillingAccountOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The number of savings plans to skip from the list before returning results
	Skiptoken *float32
}

SavingsPlanOrdersClientListByBillingAccountOptions contains the optional parameters for the SavingsPlanOrdersClient.NewListByBillingAccountPager method.

type SavingsPlanOrdersClientListByBillingAccountResponse

type SavingsPlanOrdersClientListByBillingAccountResponse struct {
	// List of savings plan orders
	SavingsPlanOrderModelList
}

SavingsPlanOrdersClientListByBillingAccountResponse contains the response from method SavingsPlanOrdersClient.NewListByBillingAccountPager.

type SavingsPlanPurchasesPolicy

type SavingsPlanPurchasesPolicy string

SavingsPlanPurchasesPolicy - The policy that controls whether users with Azure savings plan purchase are allowed.

const (
	SavingsPlanPurchasesPolicyAllowed    SavingsPlanPurchasesPolicy = "Allowed"
	SavingsPlanPurchasesPolicyDisabled   SavingsPlanPurchasesPolicy = "Disabled"
	SavingsPlanPurchasesPolicyNotAllowed SavingsPlanPurchasesPolicy = "NotAllowed"
	SavingsPlanPurchasesPolicyOther      SavingsPlanPurchasesPolicy = "Other"
)

func PossibleSavingsPlanPurchasesPolicyValues

func PossibleSavingsPlanPurchasesPolicyValues() []SavingsPlanPurchasesPolicy

PossibleSavingsPlanPurchasesPolicyValues returns the possible values for the SavingsPlanPurchasesPolicy const type.

type SavingsPlanSummaryCount

type SavingsPlanSummaryCount struct {
	// READ-ONLY; The number of savings plans in Cancelled state
	CancelledCount *float32

	// READ-ONLY; The number of savings plans in Expired state
	ExpiredCount *float32

	// READ-ONLY; The number of savings plans in Expiring state
	ExpiringCount *float32

	// READ-ONLY; The number of savings plans in Failed state
	FailedCount *float32

	// READ-ONLY; The number of savings plans in No Benefit state
	NoBenefitCount *float32

	// READ-ONLY; The number of savings plans in Pending state
	PendingCount *float32

	// READ-ONLY; The number of savings plans in Processing state
	ProcessingCount *float32

	// READ-ONLY; The number of savings plans in Succeeded state
	SucceededCount *float32

	// READ-ONLY; The number of savings plans in Warning state
	WarningCount *float32
}

SavingsPlanSummaryCount - The roll up count summary of savings plans in each state

func (SavingsPlanSummaryCount) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SavingsPlanSummaryCount.

func (*SavingsPlanSummaryCount) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SavingsPlanSummaryCount.

type SavingsPlanTerm

type SavingsPlanTerm string

SavingsPlanTerm - Represents the Savings plan term in ISO 8601 format.

const (
	SavingsPlanTermP1Y SavingsPlanTerm = "P1Y"
	SavingsPlanTermP3Y SavingsPlanTerm = "P3Y"
	SavingsPlanTermP5Y SavingsPlanTerm = "P5Y"
)

func PossibleSavingsPlanTermValues

func PossibleSavingsPlanTermValues() []SavingsPlanTerm

PossibleSavingsPlanTermValues returns the possible values for the SavingsPlanTerm const type.

type SavingsPlanUpdateRequest

type SavingsPlanUpdateRequest struct {
	// Savings plan patch request
	Properties *SavingsPlanUpdateRequestProperties

	// The SKU to be applied for this resource
	SKU *SKU

	// Tags for this reservation
	Tags map[string]*string
}

SavingsPlanUpdateRequest - Savings plan patch request

func (SavingsPlanUpdateRequest) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SavingsPlanUpdateRequest.

func (*SavingsPlanUpdateRequest) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SavingsPlanUpdateRequest.

type SavingsPlanUpdateRequestProperties

type SavingsPlanUpdateRequestProperties struct {
	// Properties specific to applied scope type. Not required if not applicable.
	AppliedScopeProperties *AppliedScopeProperties

	// Type of the Applied Scope.
	AppliedScopeType *AppliedScopeType

	// Display name
	DisplayName *string

	// Setting this to true will automatically purchase a new benefit on the expiration date time.
	Renew *bool

	// Properties specific to renew.
	RenewProperties *RenewProperties
}

SavingsPlanUpdateRequestProperties - Savings plan patch request

func (SavingsPlanUpdateRequestProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SavingsPlanUpdateRequestProperties.

func (*SavingsPlanUpdateRequestProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SavingsPlanUpdateRequestProperties.

type SavingsPlanUpdateValidateRequest

type SavingsPlanUpdateValidateRequest struct {
	// The benefits of a savings plan.
	Benefits []*SavingsPlanUpdateRequestProperties
}

SavingsPlanUpdateValidateRequest - Savings plan update validate request.

func (SavingsPlanUpdateValidateRequest) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SavingsPlanUpdateValidateRequest.

func (*SavingsPlanUpdateValidateRequest) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SavingsPlanUpdateValidateRequest.

type SavingsPlanValidResponseProperty

type SavingsPlanValidResponseProperty struct {
	// Failure reason if the provided input is invalid
	Reason *string

	// Failure reason code if the provided input is invalid
	ReasonCode *string

	// Indicates if the provided input is valid
	Valid *bool
}

SavingsPlanValidResponseProperty - Benefit scope response property

func (SavingsPlanValidResponseProperty) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SavingsPlanValidResponseProperty.

func (*SavingsPlanValidResponseProperty) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SavingsPlanValidResponseProperty.

type SavingsPlanValidateResponse

type SavingsPlanValidateResponse struct {
	Benefits []*SavingsPlanValidResponseProperty

	// Url to get the next page.
	NextLink *string
}

SavingsPlanValidateResponse - Savings plan update validate response.

func (SavingsPlanValidateResponse) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SavingsPlanValidateResponse.

func (*SavingsPlanValidateResponse) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SavingsPlanValidateResponse.

type SavingsPlansClient

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

SavingsPlansClient contains the methods for the SavingsPlans group. Don't use this type directly, use NewSavingsPlansClient() instead.

func NewSavingsPlansClient

func NewSavingsPlansClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*SavingsPlansClient, error)

NewSavingsPlansClient creates a new instance of SavingsPlansClient with the specified values.

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

func (*SavingsPlansClient) BeginUpdateByBillingAccount

func (client *SavingsPlansClient) BeginUpdateByBillingAccount(ctx context.Context, billingAccountName string, savingsPlanOrderID string, savingsPlanID string, body SavingsPlanUpdateRequest, options *SavingsPlansClientBeginUpdateByBillingAccountOptions) (*runtime.Poller[SavingsPlansClientUpdateByBillingAccountResponse], error)

BeginUpdateByBillingAccount - Update savings plan by billing account. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • savingsPlanOrderID - Order ID of the savings plan
  • savingsPlanID - ID of the savings plan
  • body - Request body for patching a savings plan order alias
  • options - SavingsPlansClientBeginUpdateByBillingAccountOptions contains the optional parameters for the SavingsPlansClient.BeginUpdateByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/savingsPlanUpdateByBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewSavingsPlansClient().BeginUpdateByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", "30000000-0000-0000-0000-000000000000", armbilling.SavingsPlanUpdateRequest{
		Properties: &armbilling.SavingsPlanUpdateRequestProperties{
			AppliedScopeProperties: &armbilling.AppliedScopeProperties{
				ManagementGroupID: to.Ptr("/providers/Microsoft.Management/managementGroups/mg1"),
				TenantID:          to.Ptr("80000000-0000-0000-0000-000000000000"),
			},
			AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeManagementGroup),
			DisplayName:      to.Ptr("sp_newName"),
			Renew:            to.Ptr(true),
			RenewProperties: &armbilling.RenewProperties{
				PurchaseProperties: &armbilling.PurchaseRequest{
					Properties: &armbilling.PurchaseRequestProperties{
						AppliedScopeProperties: &armbilling.AppliedScopeProperties{
							ManagementGroupID: to.Ptr("/providers/Microsoft.Management/managementGroups/mg1"),
							TenantID:          to.Ptr("80000000-0000-0000-0000-000000000000"),
						},
						AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeManagementGroup),
						BillingPlan:      to.Ptr(armbilling.BillingPlanP1M),
						BillingScopeID:   to.Ptr("/subscriptions/50000000-0000-0000-0000-000000000000"),
						Commitment: &armbilling.Commitment{
							Amount:       to.Ptr[float64](0.001),
							CurrencyCode: to.Ptr("USD"),
							Grain:        to.Ptr(armbilling.CommitmentGrainHourly),
						},
						DisplayName: to.Ptr("sp_newName_renewed"),
						Term:        to.Ptr(armbilling.SavingsPlanTermP3Y),
					},
					SKU: &armbilling.SKU{
						Name: to.Ptr("Compute_Savings_Plan"),
					},
				},
			},
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.SavingsPlanModel = armbilling.SavingsPlanModel{
	// 	Name: to.Ptr("30000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("microsoft.billing/billingAccounts/savingsPlanOrders/savingsPlans"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/savingsPlanOrders/20000000-0000-0000-0000-000000000000/savingsPlans/30000000-0000-0000-0000-000000000000"),
	// 	Tags: map[string]*string{
	// 		"key1": to.Ptr("value1"),
	// 		"key2": to.Ptr("value2"),
	// 	},
	// 	Properties: &armbilling.SavingsPlanModelProperties{
	// 		AppliedScopeProperties: &armbilling.AppliedScopeProperties{
	// 			DisplayName: to.Ptr("mg1"),
	// 			ManagementGroupID: to.Ptr("/providers/Microsoft.Management/managementGroups/mg1"),
	// 			TenantID: to.Ptr("80000000-0000-0000-0000-000000000000"),
	// 		},
	// 		AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeManagementGroup),
	// 		BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-04T03:18:31.307Z"); return t}()),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 		BillingPlan: to.Ptr(armbilling.BillingPlanP1M),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-BBBB-CCC-DDD"),
	// 		BillingScopeID: to.Ptr("/subscriptions/50000000-0000-0000-0000-000000000000"),
	// 		Commitment: &armbilling.Commitment{
	// 			Amount: to.Ptr[float64](0.001),
	// 			CurrencyCode: to.Ptr("USD"),
	// 			Grain: to.Ptr(armbilling.CommitmentGrainHourly),
	// 		},
	// 		DisplayName: to.Ptr("sp_newName"),
	// 		DisplayProvisioningState: to.Ptr("Succeeded"),
	// 		EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-04T04:30:49.198Z"); return t}()),
	// 		ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2026-02-04T03:18:31.307Z"); return t}()),
	// 		ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
	// 		ProvisioningState: to.Ptr(armbilling.ProvisioningStateSucceeded),
	// 		PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-04T03:16:38.906Z"); return t}()),
	// 		Renew: to.Ptr(true),
	// 		Term: to.Ptr(armbilling.SavingsPlanTermP3Y),
	// 		UserFriendlyAppliedScopeType: to.Ptr("ManagementGroup"),
	// 		Utilization: &armbilling.Utilization{
	// 			Aggregates: []*armbilling.UtilizationAggregates{
	// 			},
	// 		},
	// 	},
	// 	SKU: &armbilling.SKU{
	// 		Name: to.Ptr("Compute_Savings_Plan"),
	// 	},
	// }
}

func (*SavingsPlansClient) GetByBillingAccount

func (client *SavingsPlansClient) GetByBillingAccount(ctx context.Context, billingAccountName string, savingsPlanOrderID string, savingsPlanID string, options *SavingsPlansClientGetByBillingAccountOptions) (SavingsPlansClientGetByBillingAccountResponse, error)

GetByBillingAccount - Get savings plan by billing account. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • savingsPlanOrderID - Order ID of the savings plan
  • savingsPlanID - ID of the savings plan
  • options - SavingsPlansClientGetByBillingAccountOptions contains the optional parameters for the SavingsPlansClient.GetByBillingAccount method.
Example (SavingsPlanGet)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/savingsPlanGetByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewSavingsPlansClient().GetByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", "30000000-0000-0000-0000-000000000000", &armbilling.SavingsPlansClientGetByBillingAccountOptions{Expand: 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.SavingsPlanModel = armbilling.SavingsPlanModel{
	// 	Name: to.Ptr("30000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("microsoft.billing/billingAccounts/savingsPlanOrders/savingsPlans"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/savingsPlanOrders/20000000-0000-0000-0000-000000000000/savingsPlans/30000000-0000-0000-0000-000000000000"),
	// 	Tags: map[string]*string{
	// 		"key1": to.Ptr("value1"),
	// 		"key2": to.Ptr("value2"),
	// 	},
	// 	Properties: &armbilling.SavingsPlanModelProperties{
	// 		AppliedScopeProperties: &armbilling.AppliedScopeProperties{
	// 			DisplayName: to.Ptr("TestRg"),
	// 			ManagementGroupID: to.Ptr("/providers/Microsoft.Management/managementGroups/TestRg"),
	// 			TenantID: to.Ptr("70000000-0000-0000-0000-000000000000"),
	// 		},
	// 		AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeManagementGroup),
	// 		BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-11-16T02:25:11.718Z"); return t}()),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 		BillingPlan: to.Ptr(armbilling.BillingPlanP1M),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-BBBB-CCC-DDD"),
	// 		BillingScopeID: to.Ptr("/subscriptions/50000000-0000-0000-0000-000000000000"),
	// 		Commitment: &armbilling.Commitment{
	// 			Amount: to.Ptr[float64](0.001),
	// 			CurrencyCode: to.Ptr("USD"),
	// 			Grain: to.Ptr(armbilling.CommitmentGrainHourly),
	// 		},
	// 		DisplayName: to.Ptr("SP1"),
	// 		DisplayProvisioningState: to.Ptr("NoBenefit"),
	// 		EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-12-16T01:35:36.290Z"); return t}()),
	// 		ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2025-11-16T02:25:11.718Z"); return t}()),
	// 		ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
	// 		ProvisioningState: to.Ptr(armbilling.ProvisioningStateSucceeded),
	// 		PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-11-16T02:23:21.386Z"); return t}()),
	// 		Renew: to.Ptr(false),
	// 		Term: to.Ptr(armbilling.SavingsPlanTermP3Y),
	// 		UserFriendlyAppliedScopeType: to.Ptr("ManagementGroup"),
	// 		Utilization: &armbilling.Utilization{
	// 			Aggregates: []*armbilling.UtilizationAggregates{
	// 				{
	// 					Grain: to.Ptr[float32](1),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 				},
	// 				{
	// 					Grain: to.Ptr[float32](7),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 				},
	// 				{
	// 					Grain: to.Ptr[float32](30),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 			}},
	// 			Trend: to.Ptr("SAME"),
	// 		},
	// 	},
	// 	SKU: &armbilling.SKU{
	// 		Name: to.Ptr("Compute_Savings_Plan"),
	// 	},
	// }
}
Example (SavingsPlanGetExpandRenewProperties)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/savingsPlanGetExpandRenewPropertiesByBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewSavingsPlansClient().GetByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", "30000000-0000-0000-0000-000000000000", &armbilling.SavingsPlansClientGetByBillingAccountOptions{Expand: 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.SavingsPlanModel = armbilling.SavingsPlanModel{
	// 	Name: to.Ptr("30000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("microsoft.billing/billingAccounts/savingsPlanOrders/savingsPlans"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/savingsPlanOrders/20000000-0000-0000-0000-000000000000/savingsPlans/30000000-0000-0000-0000-000000000000"),
	// 	Tags: map[string]*string{
	// 		"key1": to.Ptr("value1"),
	// 		"key2": to.Ptr("value2"),
	// 	},
	// 	Properties: &armbilling.SavingsPlanModelProperties{
	// 		AppliedScopeProperties: &armbilling.AppliedScopeProperties{
	// 			DisplayName: to.Ptr("TestRg"),
	// 			ManagementGroupID: to.Ptr("/providers/Microsoft.Management/managementGroups/TestRg"),
	// 			TenantID: to.Ptr("70000000-0000-0000-0000-000000000000"),
	// 		},
	// 		AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeManagementGroup),
	// 		BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-11-16T02:25:11.718Z"); return t}()),
	// 		BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
	// 		BillingPlan: to.Ptr(armbilling.BillingPlanP1M),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-BBBB-CCC-DDD"),
	// 		BillingScopeID: to.Ptr("/subscriptions/50000000-0000-0000-0000-000000000000"),
	// 		Commitment: &armbilling.Commitment{
	// 			Amount: to.Ptr[float64](0.001),
	// 			CurrencyCode: to.Ptr("USD"),
	// 			Grain: to.Ptr(armbilling.CommitmentGrainHourly),
	// 		},
	// 		DisplayName: to.Ptr("SP1"),
	// 		DisplayProvisioningState: to.Ptr("NoBenefit"),
	// 		EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-12-16T01:35:36.290Z"); return t}()),
	// 		ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2025-11-16T02:25:11.718Z"); return t}()),
	// 		ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
	// 		ProvisioningState: to.Ptr(armbilling.ProvisioningStateSucceeded),
	// 		PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-11-16T02:23:21.386Z"); return t}()),
	// 		Renew: to.Ptr(false),
	// 		RenewProperties: &armbilling.RenewProperties{
	// 			PurchaseProperties: &armbilling.PurchaseRequest{
	// 				Properties: &armbilling.PurchaseRequestProperties{
	// 					AppliedScopeProperties: &armbilling.AppliedScopeProperties{
	// 						ManagementGroupID: to.Ptr("/providers/Microsoft.Management/managementGroups/TestRg"),
	// 						TenantID: to.Ptr("70000000-0000-0000-0000-000000000000"),
	// 					},
	// 					AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeManagementGroup),
	// 					BillingPlan: to.Ptr(armbilling.BillingPlan("Monthly")),
	// 					BillingScopeID: to.Ptr("/subscriptions/50000000-0000-0000-0000-000000000000"),
	// 					Commitment: &armbilling.Commitment{
	// 						Amount: to.Ptr[float64](0.001),
	// 						CurrencyCode: to.Ptr("USD"),
	// 						Grain: to.Ptr(armbilling.CommitmentGrainHourly),
	// 					},
	// 					DisplayName: to.Ptr("SP1_renewed"),
	// 					Term: to.Ptr(armbilling.SavingsPlanTermP3Y),
	// 				},
	// 				SKU: &armbilling.SKU{
	// 					Name: to.Ptr("Compute_Savings_Plan"),
	// 				},
	// 			},
	// 		},
	// 		Term: to.Ptr(armbilling.SavingsPlanTermP3Y),
	// 		UserFriendlyAppliedScopeType: to.Ptr("ManagementGroup"),
	// 		Utilization: &armbilling.Utilization{
	// 			Aggregates: []*armbilling.UtilizationAggregates{
	// 				{
	// 					Grain: to.Ptr[float32](1),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 				},
	// 				{
	// 					Grain: to.Ptr[float32](7),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 				},
	// 				{
	// 					Grain: to.Ptr[float32](30),
	// 					GrainUnit: to.Ptr("days"),
	// 					Value: to.Ptr[float32](0),
	// 					ValueUnit: to.Ptr("percentage"),
	// 			}},
	// 			Trend: to.Ptr("SAME"),
	// 		},
	// 	},
	// 	SKU: &armbilling.SKU{
	// 		Name: to.Ptr("Compute_Savings_Plan"),
	// 	},
	// }
}

func (*SavingsPlansClient) NewListByBillingAccountPager

NewListByBillingAccountPager - List savings plans by billing account.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - SavingsPlansClientListByBillingAccountOptions contains the optional parameters for the SavingsPlansClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/savingsPlansListByBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewSavingsPlansClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.SavingsPlansClientListByBillingAccountOptions{Filter: nil,
		OrderBy:        nil,
		Skiptoken:      nil,
		Take:           to.Ptr[float32](3),
		SelectedState:  to.Ptr("Succeeded"),
		RefreshSummary: to.Ptr("true"),
	})
	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.SavingsPlanModelListResult = armbilling.SavingsPlanModelListResult{
		// 	Value: []*armbilling.SavingsPlanModel{
		// 		{
		// 			Name: to.Ptr("30000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("microsoft.billing/billingAccounts/savingsPlanOrders/savingsPlans"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/savingsPlanOrders/20000000-0000-0000-0000-000000000000/savingsPlans/30000000-0000-0000-0000-000000000000"),
		// 			Tags: map[string]*string{
		// 				"key1": to.Ptr("value1"),
		// 				"key2": to.Ptr("value2"),
		// 			},
		// 			Properties: &armbilling.SavingsPlanModelProperties{
		// 				AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeShared),
		// 				BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-12-16T02:17:03.739Z"); return t}()),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingPlan: to.Ptr(armbilling.BillingPlanP1M),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-BBBB-CCC-DDD"),
		// 				BillingScopeID: to.Ptr("/subscriptions/10000000-0000-0000-0000-000000000000"),
		// 				Commitment: &armbilling.Commitment{
		// 					Amount: to.Ptr[float64](10),
		// 					CurrencyCode: to.Ptr("USD"),
		// 					Grain: to.Ptr(armbilling.CommitmentGrainHourly),
		// 				},
		// 				DisplayName: to.Ptr("SP1"),
		// 				DisplayProvisioningState: to.Ptr("Succeeded"),
		// 				EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-12-16T02:17:04.989Z"); return t}()),
		// 				ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-12-16T02:17:03.739Z"); return t}()),
		// 				ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
		// 				ProvisioningState: to.Ptr(armbilling.ProvisioningStateSucceeded),
		// 				PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-12-16T02:14:58.230Z"); return t}()),
		// 				Renew: to.Ptr(false),
		// 				Term: to.Ptr(armbilling.SavingsPlanTermP1Y),
		// 				UserFriendlyAppliedScopeType: to.Ptr("Shared"),
		// 				Utilization: &armbilling.Utilization{
		// 					Aggregates: []*armbilling.UtilizationAggregates{
		// 						{
		// 							Grain: to.Ptr[float32](1),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](7),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](30),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 					}},
		// 					Trend: to.Ptr("SAME"),
		// 				},
		// 			},
		// 			SKU: &armbilling.SKU{
		// 				Name: to.Ptr("Compute_Savings_Plan"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("30000000-0000-0000-0000-000000000001"),
		// 			Type: to.Ptr("microsoft.billing/billingAccounts/savingsPlanOrders/savingsPlans"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/savingsPlanOrders/20000000-0000-0000-0000-000000000001/savingsPlans/30000000-0000-0000-0000-000000000001"),
		// 			Tags: map[string]*string{
		// 				"key1": to.Ptr("value1"),
		// 				"key2": to.Ptr("value2"),
		// 			},
		// 			Properties: &armbilling.SavingsPlanModelProperties{
		// 				AppliedScopeProperties: &armbilling.AppliedScopeProperties{
		// 					DisplayName: to.Ptr("TestRg"),
		// 					ManagementGroupID: to.Ptr("/providers/Microsoft.Management/managementGroups/TestRg"),
		// 					TenantID: to.Ptr("50000000-0000-0000-0000-000000000000"),
		// 				},
		// 				AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeManagementGroup),
		// 				BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-12-16T02:22:22.725Z"); return t}()),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingPlan: to.Ptr(armbilling.BillingPlanP1M),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-BBBB-CCC-DDD"),
		// 				BillingScopeID: to.Ptr("/subscriptions/10000000-0000-0000-0000-000000000000"),
		// 				Commitment: &armbilling.Commitment{
		// 					Amount: to.Ptr[float64](10),
		// 					CurrencyCode: to.Ptr("USD"),
		// 					Grain: to.Ptr(armbilling.CommitmentGrainHourly),
		// 				},
		// 				DisplayName: to.Ptr("SP2"),
		// 				DisplayProvisioningState: to.Ptr("Succeeded"),
		// 				EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-12-16T02:22:24.553Z"); return t}()),
		// 				ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-12-16T02:22:22.725Z"); return t}()),
		// 				ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
		// 				ProvisioningState: to.Ptr(armbilling.ProvisioningStateSucceeded),
		// 				PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-12-16T02:20:23.473Z"); return t}()),
		// 				Renew: to.Ptr(false),
		// 				Term: to.Ptr(armbilling.SavingsPlanTermP1Y),
		// 				UserFriendlyAppliedScopeType: to.Ptr("ManagementGroup"),
		// 				Utilization: &armbilling.Utilization{
		// 					Aggregates: []*armbilling.UtilizationAggregates{
		// 						{
		// 							Grain: to.Ptr[float32](1),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](7),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](30),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 					}},
		// 					Trend: to.Ptr("SAME"),
		// 				},
		// 			},
		// 			SKU: &armbilling.SKU{
		// 				Name: to.Ptr("Compute_Savings_Plan"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("30000000-0000-0000-0000-000000000002"),
		// 			Type: to.Ptr("microsoft.billing/billingAccounts/savingsPlanOrders/savingsPlans"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/savingsPlanOrders/20000000-0000-0000-0000-000000000002/savingsPlans/30000000-0000-0000-0000-000000000002"),
		// 			Tags: map[string]*string{
		// 				"key1": to.Ptr("value1"),
		// 				"key2": to.Ptr("value2"),
		// 			},
		// 			Properties: &armbilling.SavingsPlanModelProperties{
		// 				AppliedScopeProperties: &armbilling.AppliedScopeProperties{
		// 					DisplayName: to.Ptr("Azure subscription 1"),
		// 					SubscriptionID: to.Ptr("/subscriptions/10000000-0000-0000-0000-000000000000"),
		// 				},
		// 				AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeSingle),
		// 				BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-10-14T21:18:55.296Z"); return t}()),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingPlan: to.Ptr(armbilling.BillingPlanP1M),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-BBBB-CCC-DDD"),
		// 				BillingScopeID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptions/10000000-0000-0000-0000-000000000000"),
		// 				Commitment: &armbilling.Commitment{
		// 					Amount: to.Ptr[float64](0.025),
		// 					CurrencyCode: to.Ptr("USD"),
		// 					Grain: to.Ptr(armbilling.CommitmentGrainHourly),
		// 				},
		// 				DisplayName: to.Ptr("SP3"),
		// 				DisplayProvisioningState: to.Ptr("Succeeded"),
		// 				EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-11-07T23:54:43.823Z"); return t}()),
		// 				ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2025-10-14T21:18:55.296Z"); return t}()),
		// 				ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
		// 				ProvisioningState: to.Ptr(armbilling.ProvisioningStateSucceeded),
		// 				PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-10-14T21:16:57.234Z"); return t}()),
		// 				Renew: to.Ptr(true),
		// 				Term: to.Ptr(armbilling.SavingsPlanTermP3Y),
		// 				UserFriendlyAppliedScopeType: to.Ptr("Single"),
		// 				Utilization: &armbilling.Utilization{
		// 					Aggregates: []*armbilling.UtilizationAggregates{
		// 						{
		// 							Grain: to.Ptr[float32](1),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](66),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](7),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](66),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](30),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](65.52),
		// 							ValueUnit: to.Ptr("percentage"),
		// 					}},
		// 					Trend: to.Ptr("SAME"),
		// 				},
		// 			},
		// 			SKU: &armbilling.SKU{
		// 				Name: to.Ptr("Compute_Savings_Plan"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("30000000-0000-0000-0000-000000000003"),
		// 			Type: to.Ptr("microsoft.billing/billingAccounts/savingsPlanOrders/savingsPlans"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/savingsPlanOrders/20000000-0000-0000-0000-000000000003/savingsPlans/30000000-0000-0000-0000-000000000003"),
		// 			Tags: map[string]*string{
		// 				"key1": to.Ptr("value1"),
		// 				"key2": to.Ptr("value2"),
		// 			},
		// 			Properties: &armbilling.SavingsPlanModelProperties{
		// 				AppliedScopeProperties: &armbilling.AppliedScopeProperties{
		// 					DisplayName: to.Ptr("testRG"),
		// 					ResourceGroupID: to.Ptr("/subscriptions/10000000-0000-0000-0000-000000000000/resourcegroups/testRG"),
		// 				},
		// 				AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeSingle),
		// 				BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-11-08T00:00:06.363Z"); return t}()),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingPlan: to.Ptr(armbilling.BillingPlanP1M),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-BBBB-CCC-DDD"),
		// 				BillingScopeID: to.Ptr("/subscriptions/10000000-0000-0000-0000-000000000000"),
		// 				Commitment: &armbilling.Commitment{
		// 					Amount: to.Ptr[float64](0.001),
		// 					CurrencyCode: to.Ptr("USD"),
		// 					Grain: to.Ptr(armbilling.CommitmentGrainHourly),
		// 				},
		// 				DisplayName: to.Ptr("SP4"),
		// 				DisplayProvisioningState: to.Ptr("Succeeded"),
		// 				EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-11-30T21:18:12.196Z"); return t}()),
		// 				ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2025-11-08T00:00:06.363Z"); return t}()),
		// 				ProductCode: to.Ptr("20000000-0000-0000-0000-000000000005"),
		// 				ProvisioningState: to.Ptr(armbilling.ProvisioningStateSucceeded),
		// 				PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2022-11-07T23:57:58.242Z"); return t}()),
		// 				Renew: to.Ptr(false),
		// 				Term: to.Ptr(armbilling.SavingsPlanTermP3Y),
		// 				UserFriendlyAppliedScopeType: to.Ptr("ResourceGroup"),
		// 				Utilization: &armbilling.Utilization{
		// 					Aggregates: []*armbilling.UtilizationAggregates{
		// 						{
		// 							Grain: to.Ptr[float32](1),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](100),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](7),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](100),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](30),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](100),
		// 							ValueUnit: to.Ptr("percentage"),
		// 					}},
		// 					Trend: to.Ptr("SAME"),
		// 				},
		// 			},
		// 			SKU: &armbilling.SKU{
		// 				Name: to.Ptr("Compute_Savings_Plan"),
		// 			},
		// 	}},
		// 	Summary: &armbilling.SavingsPlanSummaryCount{
		// 		CancelledCount: to.Ptr[float32](0),
		// 		ExpiredCount: to.Ptr[float32](0),
		// 		ExpiringCount: to.Ptr[float32](0),
		// 		FailedCount: to.Ptr[float32](0),
		// 		NoBenefitCount: to.Ptr[float32](0),
		// 		PendingCount: to.Ptr[float32](0),
		// 		ProcessingCount: to.Ptr[float32](0),
		// 		SucceededCount: to.Ptr[float32](3),
		// 		WarningCount: to.Ptr[float32](0),
		// 	},
		// }
	}
}

func (*SavingsPlansClient) NewListBySavingsPlanOrderPager

func (client *SavingsPlansClient) NewListBySavingsPlanOrderPager(billingAccountName string, savingsPlanOrderID string, options *SavingsPlansClientListBySavingsPlanOrderOptions) *runtime.Pager[SavingsPlansClientListBySavingsPlanOrderResponse]

NewListBySavingsPlanOrderPager - List savings plans in an order by billing account.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • savingsPlanOrderID - Order ID of the savings plan
  • options - SavingsPlansClientListBySavingsPlanOrderOptions contains the optional parameters for the SavingsPlansClient.NewListBySavingsPlanOrderPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/savingsPlansListBySavingsPlanOrders.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewSavingsPlansClient().NewListBySavingsPlanOrderPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", 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.SavingsPlanModelList = armbilling.SavingsPlanModelList{
		// 	Value: []*armbilling.SavingsPlanModel{
		// 		{
		// 			Name: to.Ptr("30000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("microsoft.billing/billingAccounts/savingsPlanOrders/savingsPlans"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/savingsPlanOrders/20000000-0000-0000-0000-000000000000/savingsPlans/30000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.SavingsPlanModelProperties{
		// 				AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeShared),
		// 				BenefitStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-20T02:36:22.339Z"); return t}()),
		// 				BillingAccountID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31"),
		// 				BillingPlan: to.Ptr(armbilling.BillingPlanP1M),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/AAAA-BBBB-CCC-DDD"),
		// 				BillingScopeID: to.Ptr("/subscriptions/10000000-0000-0000-0000-000000000000"),
		// 				Commitment: &armbilling.Commitment{
		// 					Amount: to.Ptr[float64](0.001),
		// 					CurrencyCode: to.Ptr("USD"),
		// 					Grain: to.Ptr(armbilling.CommitmentGrainHourly),
		// 				},
		// 				DisplayName: to.Ptr("SP1"),
		// 				DisplayProvisioningState: to.Ptr("Succeeded"),
		// 				EffectiveDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-20T02:36:25.089Z"); return t}()),
		// 				ExpiryDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2026-01-20T02:36:22.339Z"); return t}()),
		// 				ProvisioningState: to.Ptr(armbilling.ProvisioningStateSucceeded),
		// 				PurchaseDateTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-20T02:34:38.126Z"); return t}()),
		// 				Renew: to.Ptr(false),
		// 				Term: to.Ptr(armbilling.SavingsPlanTermP3Y),
		// 				UserFriendlyAppliedScopeType: to.Ptr("Shared"),
		// 				Utilization: &armbilling.Utilization{
		// 					Aggregates: []*armbilling.UtilizationAggregates{
		// 						{
		// 							Grain: to.Ptr[float32](1),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](7),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 						},
		// 						{
		// 							Grain: to.Ptr[float32](30),
		// 							GrainUnit: to.Ptr("days"),
		// 							Value: to.Ptr[float32](0),
		// 							ValueUnit: to.Ptr("percentage"),
		// 					}},
		// 					Trend: to.Ptr("SAME"),
		// 				},
		// 			},
		// 			SKU: &armbilling.SKU{
		// 				Name: to.Ptr("Compute_Savings_Plan"),
		// 			},
		// 	}},
		// }
	}
}

func (*SavingsPlansClient) ValidateUpdateByBillingAccount

func (client *SavingsPlansClient) ValidateUpdateByBillingAccount(ctx context.Context, billingAccountName string, savingsPlanOrderID string, savingsPlanID string, body SavingsPlanUpdateValidateRequest, options *SavingsPlansClientValidateUpdateByBillingAccountOptions) (SavingsPlansClientValidateUpdateByBillingAccountResponse, error)

ValidateUpdateByBillingAccount - Validate savings plan patch by billing account. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • savingsPlanOrderID - Order ID of the savings plan
  • savingsPlanID - ID of the savings plan
  • body - Request body for patching a savings plan order alias
  • options - SavingsPlansClientValidateUpdateByBillingAccountOptions contains the optional parameters for the SavingsPlansClient.ValidateUpdateByBillingAccount method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/savingsPlanValidateUpdateByBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewSavingsPlansClient().ValidateUpdateByBillingAccount(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "20000000-0000-0000-0000-000000000000", "30000000-0000-0000-0000-000000000000", armbilling.SavingsPlanUpdateValidateRequest{
		Benefits: []*armbilling.SavingsPlanUpdateRequestProperties{
			{
				AppliedScopeProperties: &armbilling.AppliedScopeProperties{
					SubscriptionID: to.Ptr("/subscriptions/50000000-0000-0000-0000-000000000000"),
				},
				AppliedScopeType: to.Ptr(armbilling.AppliedScopeTypeSingle),
			}},
	}, 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.SavingsPlanValidateResponse = armbilling.SavingsPlanValidateResponse{
	// 	Benefits: []*armbilling.SavingsPlanValidResponseProperty{
	// 		{
	// 			Valid: to.Ptr(true),
	// 	}},
	// }
}

type SavingsPlansClientBeginUpdateByBillingAccountOptions

type SavingsPlansClientBeginUpdateByBillingAccountOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

SavingsPlansClientBeginUpdateByBillingAccountOptions contains the optional parameters for the SavingsPlansClient.BeginUpdateByBillingAccount method.

type SavingsPlansClientGetByBillingAccountOptions

type SavingsPlansClientGetByBillingAccountOptions struct {
	// May be used to expand the planInformation.
	Expand *string
}

SavingsPlansClientGetByBillingAccountOptions contains the optional parameters for the SavingsPlansClient.GetByBillingAccount method.

type SavingsPlansClientGetByBillingAccountResponse

type SavingsPlansClientGetByBillingAccountResponse struct {
	// Savings plan
	SavingsPlanModel
}

SavingsPlansClientGetByBillingAccountResponse contains the response from method SavingsPlansClient.GetByBillingAccount.

type SavingsPlansClientListByBillingAccountOptions

type SavingsPlansClientListByBillingAccountOptions struct {
	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// To indicate whether to refresh the roll up counts of the savings plans group by provisioning states
	RefreshSummary *string

	// The selected provisioning state
	SelectedState *string

	// The number of savings plans to skip from the list before returning results
	Skiptoken *float32

	// The number of savings plans to return
	Take *float32
}

SavingsPlansClientListByBillingAccountOptions contains the optional parameters for the SavingsPlansClient.NewListByBillingAccountPager method.

type SavingsPlansClientListByBillingAccountResponse

type SavingsPlansClientListByBillingAccountResponse struct {
	// List of savings plans
	SavingsPlanModelListResult
}

SavingsPlansClientListByBillingAccountResponse contains the response from method SavingsPlansClient.NewListByBillingAccountPager.

type SavingsPlansClientListBySavingsPlanOrderOptions

type SavingsPlansClientListBySavingsPlanOrderOptions struct {
}

SavingsPlansClientListBySavingsPlanOrderOptions contains the optional parameters for the SavingsPlansClient.NewListBySavingsPlanOrderPager method.

type SavingsPlansClientListBySavingsPlanOrderResponse

type SavingsPlansClientListBySavingsPlanOrderResponse struct {
	// List of savings plans
	SavingsPlanModelList
}

SavingsPlansClientListBySavingsPlanOrderResponse contains the response from method SavingsPlansClient.NewListBySavingsPlanOrderPager.

type SavingsPlansClientUpdateByBillingAccountResponse

type SavingsPlansClientUpdateByBillingAccountResponse struct {
	// Savings plan
	SavingsPlanModel
}

SavingsPlansClientUpdateByBillingAccountResponse contains the response from method SavingsPlansClient.BeginUpdateByBillingAccount.

type SavingsPlansClientValidateUpdateByBillingAccountOptions

type SavingsPlansClientValidateUpdateByBillingAccountOptions struct {
}

SavingsPlansClientValidateUpdateByBillingAccountOptions contains the optional parameters for the SavingsPlansClient.ValidateUpdateByBillingAccount method.

type SavingsPlansClientValidateUpdateByBillingAccountResponse

type SavingsPlansClientValidateUpdateByBillingAccountResponse struct {
	// Savings plan update validate response.
	SavingsPlanValidateResponse
}

SavingsPlansClientValidateUpdateByBillingAccountResponse contains the response from method SavingsPlansClient.ValidateUpdateByBillingAccount.

type ServiceDefinedResourceName

type ServiceDefinedResourceName string
const (
	ServiceDefinedResourceNameDefault ServiceDefinedResourceName = "default"
)

func PossibleServiceDefinedResourceNameValues

func PossibleServiceDefinedResourceNameValues() []ServiceDefinedResourceName

PossibleServiceDefinedResourceNameValues returns the possible values for the ServiceDefinedResourceName const type.

type SpecialTaxationType

type SpecialTaxationType string

SpecialTaxationType - Identifies the type of tax calculation used for the invoice. The field is applicable only to invoices with special tax calculation logic.

const (
	SpecialTaxationTypeInvoiceLevel  SpecialTaxationType = "InvoiceLevel"
	SpecialTaxationTypeSubtotalLevel SpecialTaxationType = "SubtotalLevel"
)

func PossibleSpecialTaxationTypeValues

func PossibleSpecialTaxationTypeValues() []SpecialTaxationType

PossibleSpecialTaxationTypeValues returns the possible values for the SpecialTaxationType const type.

type SpendingLimit

type SpendingLimit string

SpendingLimit - The billing profile spending limit.

const (
	SpendingLimitOff SpendingLimit = "Off"
	SpendingLimitOn  SpendingLimit = "On"
)

func PossibleSpendingLimitValues

func PossibleSpendingLimitValues() []SpendingLimit

PossibleSpendingLimitValues returns the possible values for the SpendingLimit const type.

type SpendingLimitDetails

type SpendingLimitDetails struct {
	// The initial amount for the billing profile.
	Amount *float32

	// The currency in which the charges for the billing profile are billed.
	Currency *string

	// The date when this spending limit is no longer in effect.
	EndDate *time.Time

	// The date when this spending limit goes into effect.
	StartDate *time.Time

	// The status of current spending limit.
	Status *SpendingLimitStatus

	// The type of spending limit.
	Type *SpendingLimitType
}

SpendingLimitDetails - The billing profile spending limit.

func (SpendingLimitDetails) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SpendingLimitDetails.

func (*SpendingLimitDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SpendingLimitDetails.

type SpendingLimitStatus

type SpendingLimitStatus string

SpendingLimitStatus - The status of current spending limit.

const (
	SpendingLimitStatusActive       SpendingLimitStatus = "Active"
	SpendingLimitStatusExpired      SpendingLimitStatus = "Expired"
	SpendingLimitStatusLimitReached SpendingLimitStatus = "LimitReached"
	SpendingLimitStatusLimitRemoved SpendingLimitStatus = "LimitRemoved"
	SpendingLimitStatusNone         SpendingLimitStatus = "None"
	SpendingLimitStatusOther        SpendingLimitStatus = "Other"
)

func PossibleSpendingLimitStatusValues

func PossibleSpendingLimitStatusValues() []SpendingLimitStatus

PossibleSpendingLimitStatusValues returns the possible values for the SpendingLimitStatus const type.

type SpendingLimitType

type SpendingLimitType string

SpendingLimitType - The type of spending limit.

const (
	SpendingLimitTypeAcademicSponsorship     SpendingLimitType = "AcademicSponsorship"
	SpendingLimitTypeAzureConsumptionCredit  SpendingLimitType = "AzureConsumptionCredit"
	SpendingLimitTypeAzureForStudents        SpendingLimitType = "AzureForStudents"
	SpendingLimitTypeAzureForStudentsStarter SpendingLimitType = "AzureForStudentsStarter"
	SpendingLimitTypeAzurePassSponsorship    SpendingLimitType = "AzurePassSponsorship"
	SpendingLimitTypeFreeAccount             SpendingLimitType = "FreeAccount"
	SpendingLimitTypeMSDN                    SpendingLimitType = "MSDN"
	SpendingLimitTypeMpnSponsorship          SpendingLimitType = "MpnSponsorship"
	SpendingLimitTypeNonProfitSponsorship    SpendingLimitType = "NonProfitSponsorship"
	SpendingLimitTypeNone                    SpendingLimitType = "None"
	SpendingLimitTypeOther                   SpendingLimitType = "Other"
	SpendingLimitTypeSandbox                 SpendingLimitType = "Sandbox"
	SpendingLimitTypeSponsorship             SpendingLimitType = "Sponsorship"
	SpendingLimitTypeStartupSponsorship      SpendingLimitType = "StartupSponsorship"
	SpendingLimitTypeVisualStudio            SpendingLimitType = "VisualStudio"
)

func PossibleSpendingLimitTypeValues

func PossibleSpendingLimitTypeValues() []SpendingLimitType

PossibleSpendingLimitTypeValues returns the possible values for the SpendingLimitType const type.

type Subscription

type Subscription struct {
	// The properties of a(n) BillingSubscription
	Properties *SubscriptionProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

Subscription - The billing properties of a subscription.

func (Subscription) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type Subscription.

func (*Subscription) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type Subscription.

type SubscriptionAlias

type SubscriptionAlias struct {
	// The properties of a(n) BillingSubscriptionAlias
	Properties *SubscriptionAliasProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

SubscriptionAlias - A billing subscription alias.

func (SubscriptionAlias) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SubscriptionAlias.

func (*SubscriptionAlias) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SubscriptionAlias.

type SubscriptionAliasListResult

type SubscriptionAliasListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*SubscriptionAlias
}

SubscriptionAliasListResult - A container for a list of resources

func (SubscriptionAliasListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SubscriptionAliasListResult.

func (*SubscriptionAliasListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SubscriptionAliasListResult.

type SubscriptionAliasProperties

type SubscriptionAliasProperties struct {
	// Indicates whether auto renewal is turned on or off for a product.
	AutoRenew *AutoRenew

	// The beneficiary of the billing subscription.
	Beneficiary *Beneficiary

	// The provisioning tenant of the subscription.
	BeneficiaryTenantID *string

	// The billing frequency in ISO8601 format of product in the subscription. Example: P1M, P3M, P1Y
	BillingFrequency *string

	// The fully qualified ID that uniquely identifies a billing profile.
	BillingProfileID *string

	// The cost center applied to the subscription. This field is only available for consumption subscriptions of Microsoft Customer
	// Agreement or Enterprise Agreement Type billing accounts.
	ConsumptionCostCenter *string

	// The fully qualified ID that uniquely identifies a customer.
	CustomerID *string

	// The name of the billing subscription.
	DisplayName *string

	// The fully qualified ID that uniquely identifies an invoice section.
	InvoiceSectionID *string

	// Id of the product for which the subscription is purchased.
	ProductTypeID *string

	// The tenant in which the subscription is provisioned.
	ProvisioningTenantID *string

	// The quantity of licenses or fulfillment units for the subscription.
	Quantity *int64

	// The SKU ID of the product for which the subscription is purchased. This field is is only available for Microsoft Customer
	// Agreement billing accounts.
	SKUID *string

	// System imposed policies that regulate behavior of the subscription.
	SystemOverrides *SystemOverrides

	// The duration in ISO8601 format for which you can use the subscription. Example: P1M, P3M, P1Y
	TermDuration *string

	// READ-ONLY; Dictionary of billing policies associated with the subscription.
	BillingPolicies map[string]*string

	// READ-ONLY; The name of the billing profile.
	BillingProfileDisplayName *string

	// READ-ONLY; The ID that uniquely identifies a billing profile.
	BillingProfileName *string

	// READ-ONLY; The ID of the billing subscription with the subscription alias.
	BillingSubscriptionID *string

	// READ-ONLY; The name of the customer.
	CustomerDisplayName *string

	// READ-ONLY; The ID that uniquely identifies a customer.
	CustomerName *string

	// READ-ONLY; The enrollment Account name associated with the subscription. This field is available only for the Enterprise
	// Agreement Type billing accounts.
	EnrollmentAccountDisplayName *string

	// READ-ONLY; The enrollment Account ID associated with the subscription. This field is available only for the Enterprise
	// Agreement Type billing accounts.
	EnrollmentAccountID *string

	// READ-ONLY; Enrollment Account Subscription details. This field is available only for the Enterprise Agreement Type billing
	// accounts.
	EnrollmentAccountSubscriptionDetails *EnrollmentAccountSubscriptionDetails

	// READ-ONLY; The name of the invoice section.
	InvoiceSectionDisplayName *string

	// READ-ONLY; The ID that uniquely identifies an invoice section.
	InvoiceSectionName *string

	// READ-ONLY; The last month's charges. This field is only available for usage based subscriptions of Microsoft Customer Agreement
	// billing accounts.
	LastMonthCharges *Amount

	// READ-ONLY; The current month to date charges. This field is only available for usage based subscriptions of Microsoft Customer
	// Agreement billing accounts.
	MonthToDateCharges *Amount

	// READ-ONLY; Next billing cycle details of the subscription.
	NextBillingCycleDetails *NextBillingCycleDetails

	// READ-ONLY; The offer ID for the subscription. This field is only available for the Microsoft Online Services Program billing
	// accounts.
	OfferID *string

	// READ-ONLY; The status of an operation on the subscription. When None, there is no ongoing operation. When LockedForUpdate,
	// write operations will be blocked on the Billing Subscription. Other is the default value
	// and you may need to refer to the latest API version for more details.
	OperationStatus *BillingSubscriptionOperationStatus

	// READ-ONLY; The category of the product for which the subscription is purchased. Possible values include: AzureSupport,
	// Hardware, ReservationOrder, SaaS, SavingsPlanOrder, Software, UsageBased, Other.
	ProductCategory *string

	// READ-ONLY; Type of the product for which the subscription is purchased.
	ProductType *string

	// READ-ONLY; The provisioning state of the resource during a long-running operation.
	ProvisioningState *ProvisioningState

	// READ-ONLY; Purchase date of the product in UTC time.
	PurchaseDate *time.Time

	// READ-ONLY; Details for the next renewal term of a subscription.
	RenewalTermDetails *RenewalTermDetails

	// READ-ONLY; Reseller for this subscription. The fields is not available for Microsoft Partner Agreement billing accounts.
	Reseller *Reseller

	// READ-ONLY; Unique identifier of the linked resource.
	ResourceURI *string

	// READ-ONLY; The SKU description of the product for which the subscription is purchased. This field is is only available
	// for billing accounts with agreement type Microsoft Customer Agreement and Microsoft Partner
	// Agreement.
	SKUDescription *string

	// READ-ONLY; The status of the subscription. This field is not available for Enterprise Agreement billing accounts
	Status *BillingSubscriptionStatus

	// READ-ONLY; The ID of the subscription.
	SubscriptionID *string

	// READ-ONLY; The suspension details for a subscription. This field is not available for Enterprise Agreement billing accounts.
	SuspensionReasonDetails []*SubscriptionStatusDetails

	// READ-ONLY; The suspension reason for a subscription. This field is not available for Enterprise Agreement billing accounts.
	SuspensionReasons []*string

	// READ-ONLY; End date of the term in UTC time.
	TermEndDate *time.Time

	// READ-ONLY; Start date of the term in UTC time.
	TermStartDate *time.Time
}

SubscriptionAliasProperties - A billing subscription alias.

func (SubscriptionAliasProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SubscriptionAliasProperties.

func (*SubscriptionAliasProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SubscriptionAliasProperties.

type SubscriptionBillingType

type SubscriptionBillingType string

SubscriptionBillingType - The type of billing subscription.

const (
	SubscriptionBillingTypeBenefit SubscriptionBillingType = "Benefit"
	SubscriptionBillingTypeFree    SubscriptionBillingType = "Free"
	SubscriptionBillingTypeNone    SubscriptionBillingType = "None"
	SubscriptionBillingTypePaid    SubscriptionBillingType = "Paid"
	SubscriptionBillingTypePrePaid SubscriptionBillingType = "PrePaid"
)

func PossibleSubscriptionBillingTypeValues

func PossibleSubscriptionBillingTypeValues() []SubscriptionBillingType

PossibleSubscriptionBillingTypeValues returns the possible values for the SubscriptionBillingType const type.

type SubscriptionEnrollmentAccountStatus

type SubscriptionEnrollmentAccountStatus string

SubscriptionEnrollmentAccountStatus - The current enrollment account status of the subscription. This field is available only for the Enterprise Agreement Type.

const (
	SubscriptionEnrollmentAccountStatusActive         SubscriptionEnrollmentAccountStatus = "Active"
	SubscriptionEnrollmentAccountStatusCancelled      SubscriptionEnrollmentAccountStatus = "Cancelled"
	SubscriptionEnrollmentAccountStatusDeleted        SubscriptionEnrollmentAccountStatus = "Deleted"
	SubscriptionEnrollmentAccountStatusExpired        SubscriptionEnrollmentAccountStatus = "Expired"
	SubscriptionEnrollmentAccountStatusInactive       SubscriptionEnrollmentAccountStatus = "Inactive"
	SubscriptionEnrollmentAccountStatusTransferredOut SubscriptionEnrollmentAccountStatus = "TransferredOut"
	SubscriptionEnrollmentAccountStatusTransferring   SubscriptionEnrollmentAccountStatus = "Transferring"
)

func PossibleSubscriptionEnrollmentAccountStatusValues

func PossibleSubscriptionEnrollmentAccountStatusValues() []SubscriptionEnrollmentAccountStatus

PossibleSubscriptionEnrollmentAccountStatusValues returns the possible values for the SubscriptionEnrollmentAccountStatus const type.

type SubscriptionEnrollmentDetails

type SubscriptionEnrollmentDetails struct {
	// The name of the department
	DepartmentDisplayName *string

	// The ID that uniquely identifies the department.
	DepartmentID *string

	// The name of the enrollment account.
	EnrollmentAccountDisplayName *string

	// The ID that uniquely identifies an enrollment account.
	EnrollmentAccountID *string

	// The status of the enrollment account.
	EnrollmentAccountStatus *string
}

SubscriptionEnrollmentDetails - The enrollment details for the subscription. Available for billing accounts with agreement type Enterprise Agreement.

func (SubscriptionEnrollmentDetails) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SubscriptionEnrollmentDetails.

func (*SubscriptionEnrollmentDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SubscriptionEnrollmentDetails.

type SubscriptionListResult

type SubscriptionListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; Total number of records.
	TotalCount *int32

	// READ-ONLY; The list of resources.
	Value []*Subscription
}

SubscriptionListResult - A container for a list of resources

func (SubscriptionListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SubscriptionListResult.

func (*SubscriptionListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SubscriptionListResult.

type SubscriptionMergeRequest

type SubscriptionMergeRequest struct {
	// The quantity of the source billing subscription that will be merged with the target billing subscription.
	Quantity *int32

	// The ID of the target billing subscription that will be merged with the source subscription provided in the request.
	TargetBillingSubscriptionName *string
}

SubscriptionMergeRequest - Request parameters that are provided to merge the two billing subscriptions.

func (SubscriptionMergeRequest) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SubscriptionMergeRequest.

func (*SubscriptionMergeRequest) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SubscriptionMergeRequest.

type SubscriptionPatch

type SubscriptionPatch struct {
	// The properties of a(n) BillingSubscription
	Properties *SubscriptionProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

SubscriptionPatch - The billing properties of a subscription.

func (SubscriptionPatch) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SubscriptionPatch.

func (*SubscriptionPatch) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SubscriptionPatch.

type SubscriptionPolicy

type SubscriptionPolicy struct {
	// A policy at subscription scope.
	Properties *SubscriptionPolicyProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

SubscriptionPolicy - A policy at subscription scope.

func (SubscriptionPolicy) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SubscriptionPolicy.

func (*SubscriptionPolicy) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SubscriptionPolicy.

type SubscriptionPolicyProperties

type SubscriptionPolicyProperties struct {
	// List of all policies defined at the billing scope.
	Policies []*PolicySummary

	// READ-ONLY; The provisioning state of the resource during a long-running operation.
	ProvisioningState *ProvisioningState
}

SubscriptionPolicyProperties - A policy at subscription scope.

func (SubscriptionPolicyProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SubscriptionPolicyProperties.

func (*SubscriptionPolicyProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SubscriptionPolicyProperties.

type SubscriptionProperties

type SubscriptionProperties struct {
	// Indicates whether auto renewal is turned on or off for a product.
	AutoRenew *AutoRenew

	// The beneficiary of the billing subscription.
	Beneficiary *Beneficiary

	// The provisioning tenant of the subscription.
	BeneficiaryTenantID *string

	// The billing frequency in ISO8601 format of product in the subscription. Example: P1M, P3M, P1Y
	BillingFrequency *string

	// The fully qualified ID that uniquely identifies a billing profile.
	BillingProfileID *string

	// The cost center applied to the subscription. This field is only available for consumption subscriptions of Microsoft Customer
	// Agreement or Enterprise Agreement Type billing accounts.
	ConsumptionCostCenter *string

	// The fully qualified ID that uniquely identifies a customer.
	CustomerID *string

	// The name of the billing subscription.
	DisplayName *string

	// The fully qualified ID that uniquely identifies an invoice section.
	InvoiceSectionID *string

	// Id of the product for which the subscription is purchased.
	ProductTypeID *string

	// The tenant in which the subscription is provisioned.
	ProvisioningTenantID *string

	// The quantity of licenses or fulfillment units for the subscription.
	Quantity *int64

	// The SKU ID of the product for which the subscription is purchased. This field is is only available for Microsoft Customer
	// Agreement billing accounts.
	SKUID *string

	// System imposed policies that regulate behavior of the subscription.
	SystemOverrides *SystemOverrides

	// The duration in ISO8601 format for which you can use the subscription. Example: P1M, P3M, P1Y
	TermDuration *string

	// READ-ONLY; Dictionary of billing policies associated with the subscription.
	BillingPolicies map[string]*string

	// READ-ONLY; The name of the billing profile.
	BillingProfileDisplayName *string

	// READ-ONLY; The ID that uniquely identifies a billing profile.
	BillingProfileName *string

	// READ-ONLY; The name of the customer.
	CustomerDisplayName *string

	// READ-ONLY; The ID that uniquely identifies a customer.
	CustomerName *string

	// READ-ONLY; The enrollment Account name associated with the subscription. This field is available only for the Enterprise
	// Agreement Type billing accounts.
	EnrollmentAccountDisplayName *string

	// READ-ONLY; The enrollment Account ID associated with the subscription. This field is available only for the Enterprise
	// Agreement Type billing accounts.
	EnrollmentAccountID *string

	// READ-ONLY; Enrollment Account Subscription details. This field is available only for the Enterprise Agreement Type billing
	// accounts.
	EnrollmentAccountSubscriptionDetails *EnrollmentAccountSubscriptionDetails

	// READ-ONLY; The name of the invoice section.
	InvoiceSectionDisplayName *string

	// READ-ONLY; The ID that uniquely identifies an invoice section.
	InvoiceSectionName *string

	// READ-ONLY; The last month's charges. This field is only available for usage based subscriptions of Microsoft Customer Agreement
	// billing accounts.
	LastMonthCharges *Amount

	// READ-ONLY; The current month to date charges. This field is only available for usage based subscriptions of Microsoft Customer
	// Agreement billing accounts.
	MonthToDateCharges *Amount

	// READ-ONLY; Next billing cycle details of the subscription.
	NextBillingCycleDetails *NextBillingCycleDetails

	// READ-ONLY; The offer ID for the subscription. This field is only available for the Microsoft Online Services Program billing
	// accounts.
	OfferID *string

	// READ-ONLY; The status of an operation on the subscription. When None, there is no ongoing operation. When LockedForUpdate,
	// write operations will be blocked on the Billing Subscription. Other is the default value
	// and you may need to refer to the latest API version for more details.
	OperationStatus *BillingSubscriptionOperationStatus

	// READ-ONLY; The category of the product for which the subscription is purchased. Possible values include: AzureSupport,
	// Hardware, ReservationOrder, SaaS, SavingsPlanOrder, Software, UsageBased, Other.
	ProductCategory *string

	// READ-ONLY; Type of the product for which the subscription is purchased.
	ProductType *string

	// READ-ONLY; The provisioning state of the resource during a long-running operation.
	ProvisioningState *ProvisioningState

	// READ-ONLY; Purchase date of the product in UTC time.
	PurchaseDate *time.Time

	// READ-ONLY; Details for the next renewal term of a subscription.
	RenewalTermDetails *RenewalTermDetails

	// READ-ONLY; Reseller for this subscription. The fields is not available for Microsoft Partner Agreement billing accounts.
	Reseller *Reseller

	// READ-ONLY; Unique identifier of the linked resource.
	ResourceURI *string

	// READ-ONLY; The SKU description of the product for which the subscription is purchased. This field is is only available
	// for billing accounts with agreement type Microsoft Customer Agreement and Microsoft Partner
	// Agreement.
	SKUDescription *string

	// READ-ONLY; The status of the subscription. This field is not available for Enterprise Agreement billing accounts
	Status *BillingSubscriptionStatus

	// READ-ONLY; The ID of the subscription.
	SubscriptionID *string

	// READ-ONLY; The suspension details for a subscription. This field is not available for Enterprise Agreement billing accounts.
	SuspensionReasonDetails []*SubscriptionStatusDetails

	// READ-ONLY; The suspension reason for a subscription. This field is not available for Enterprise Agreement billing accounts.
	SuspensionReasons []*string

	// READ-ONLY; End date of the term in UTC time.
	TermEndDate *time.Time

	// READ-ONLY; Start date of the term in UTC time.
	TermStartDate *time.Time
}

SubscriptionProperties - The billing properties of a subscription.

func (SubscriptionProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SubscriptionProperties.

func (*SubscriptionProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SubscriptionProperties.

type SubscriptionSplitRequest

type SubscriptionSplitRequest struct {
	// The billing frequency of the target subscription in the ISO8601 format. Example: P1M, P3M, P1Y"
	BillingFrequency *string

	// The quantity of the target product to which the subscription needs to be split into.
	Quantity *int32

	// The ID of the target product to which the subscription needs to be split into. This value is not same as the value returned
	// in Get API call and can be retrieved from Catalog API to know the product id
	// to split into.
	TargetProductTypeID *string

	// The ID of the target product to which the subscription needs to be split into. This value is not same as the value returned
	// in Get API call and can be retrieved from Catalog API to know the sku id to
	// split into.
	TargetSKUID *string

	// The term duration of the target in ISO8601 format product to which the subscription needs to be split into. Example: P1M,
	// P1Y
	TermDuration *string
}

SubscriptionSplitRequest - Request parameters that are provided to split the billing subscription.

func (SubscriptionSplitRequest) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SubscriptionSplitRequest.

func (*SubscriptionSplitRequest) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SubscriptionSplitRequest.

type SubscriptionStatusDetails

type SubscriptionStatusDetails struct {
	// READ-ONLY; The suspension effective date for a subscription. This field is not available for Enterprise Agreement billing
	// accounts.
	EffectiveDate *time.Time

	// READ-ONLY; The suspension reason for a subscription. This field is not available for Enterprise Agreement billing accounts.
	Reason *SubscriptionStatusReason
}

SubscriptionStatusDetails - The suspension details for a subscription. This field is not available for Enterprise Agreement billing accounts.

func (SubscriptionStatusDetails) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SubscriptionStatusDetails.

func (*SubscriptionStatusDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SubscriptionStatusDetails.

type SubscriptionStatusReason

type SubscriptionStatusReason string

SubscriptionStatusReason - The suspension reason for a subscription. This field is not available for Enterprise Agreement billing accounts.

const (
	SubscriptionStatusReasonCancelled            SubscriptionStatusReason = "Cancelled"
	SubscriptionStatusReasonExpired              SubscriptionStatusReason = "Expired"
	SubscriptionStatusReasonNone                 SubscriptionStatusReason = "None"
	SubscriptionStatusReasonOther                SubscriptionStatusReason = "Other"
	SubscriptionStatusReasonPastDue              SubscriptionStatusReason = "PastDue"
	SubscriptionStatusReasonPolicyViolation      SubscriptionStatusReason = "PolicyViolation"
	SubscriptionStatusReasonSpendingLimitReached SubscriptionStatusReason = "SpendingLimitReached"
	SubscriptionStatusReasonSuspiciousActivity   SubscriptionStatusReason = "SuspiciousActivity"
	SubscriptionStatusReasonTransferred          SubscriptionStatusReason = "Transferred"
)

func PossibleSubscriptionStatusReasonValues

func PossibleSubscriptionStatusReasonValues() []SubscriptionStatusReason

PossibleSubscriptionStatusReasonValues returns the possible values for the SubscriptionStatusReason const type.

type SubscriptionTransferValidationErrorCode

type SubscriptionTransferValidationErrorCode string

SubscriptionTransferValidationErrorCode - Error code of the transfer validation response.

const (
	SubscriptionTransferValidationErrorCodeAccountIsLocked                     SubscriptionTransferValidationErrorCode = "AccountIsLocked"
	SubscriptionTransferValidationErrorCodeAssetHasCap                         SubscriptionTransferValidationErrorCode = "AssetHasCap"
	SubscriptionTransferValidationErrorCodeAssetNotActive                      SubscriptionTransferValidationErrorCode = "AssetNotActive"
	SubscriptionTransferValidationErrorCodeBillingAccountInactive              SubscriptionTransferValidationErrorCode = "BillingAccountInactive"
	SubscriptionTransferValidationErrorCodeBillingProfilePastDue               SubscriptionTransferValidationErrorCode = "BillingProfilePastDue"
	SubscriptionTransferValidationErrorCodeCrossBillingAccountNotAllowed       SubscriptionTransferValidationErrorCode = "CrossBillingAccountNotAllowed"
	SubscriptionTransferValidationErrorCodeDestinationBillingProfileInactive   SubscriptionTransferValidationErrorCode = "DestinationBillingProfileInactive"
	SubscriptionTransferValidationErrorCodeDestinationBillingProfileNotFound   SubscriptionTransferValidationErrorCode = "DestinationBillingProfileNotFound"
	SubscriptionTransferValidationErrorCodeDestinationBillingProfilePastDue    SubscriptionTransferValidationErrorCode = "DestinationBillingProfilePastDue"
	SubscriptionTransferValidationErrorCodeDestinationInvoiceSectionInactive   SubscriptionTransferValidationErrorCode = "DestinationInvoiceSectionInactive"
	SubscriptionTransferValidationErrorCodeDestinationInvoiceSectionNotFound   SubscriptionTransferValidationErrorCode = "DestinationInvoiceSectionNotFound"
	SubscriptionTransferValidationErrorCodeInsufficientPermissionOnDestination SubscriptionTransferValidationErrorCode = "InsufficientPermissionOnDestination"
	SubscriptionTransferValidationErrorCodeInsufficientPermissionOnSource      SubscriptionTransferValidationErrorCode = "InsufficientPermissionOnSource"
	SubscriptionTransferValidationErrorCodeInvalidDestination                  SubscriptionTransferValidationErrorCode = "InvalidDestination"
	SubscriptionTransferValidationErrorCodeInvalidSource                       SubscriptionTransferValidationErrorCode = "InvalidSource"
	SubscriptionTransferValidationErrorCodeInvoiceSectionIsRestricted          SubscriptionTransferValidationErrorCode = "InvoiceSectionIsRestricted"
	SubscriptionTransferValidationErrorCodeMarketplaceNotEnabledOnDestination  SubscriptionTransferValidationErrorCode = "MarketplaceNotEnabledOnDestination"
	SubscriptionTransferValidationErrorCodeNoActiveAzurePlan                   SubscriptionTransferValidationErrorCode = "NoActiveAzurePlan"
	SubscriptionTransferValidationErrorCodeNone                                SubscriptionTransferValidationErrorCode = "None"
	SubscriptionTransferValidationErrorCodeOther                               SubscriptionTransferValidationErrorCode = "Other"
	SubscriptionTransferValidationErrorCodeProductInactive                     SubscriptionTransferValidationErrorCode = "ProductInactive"
	SubscriptionTransferValidationErrorCodeProductNotFound                     SubscriptionTransferValidationErrorCode = "ProductNotFound"
	SubscriptionTransferValidationErrorCodeProductTypeNotSupported             SubscriptionTransferValidationErrorCode = "ProductTypeNotSupported"
	SubscriptionTransferValidationErrorCodeSourceBillingProfilePastDue         SubscriptionTransferValidationErrorCode = "SourceBillingProfilePastDue"
	SubscriptionTransferValidationErrorCodeSourceInvoiceSectionInactive        SubscriptionTransferValidationErrorCode = "SourceInvoiceSectionInactive"
	SubscriptionTransferValidationErrorCodeSubscriptionHasReservations         SubscriptionTransferValidationErrorCode = "SubscriptionHasReservations"
	SubscriptionTransferValidationErrorCodeSubscriptionNotActive               SubscriptionTransferValidationErrorCode = "SubscriptionNotActive"
	SubscriptionTransferValidationErrorCodeSubscriptionTypeNotSupported        SubscriptionTransferValidationErrorCode = "SubscriptionTypeNotSupported"
)

func PossibleSubscriptionTransferValidationErrorCodeValues

func PossibleSubscriptionTransferValidationErrorCodeValues() []SubscriptionTransferValidationErrorCode

PossibleSubscriptionTransferValidationErrorCodeValues returns the possible values for the SubscriptionTransferValidationErrorCode const type.

type SubscriptionWorkloadType

type SubscriptionWorkloadType string

SubscriptionWorkloadType - The Azure workload type of the subscription.

const (
	SubscriptionWorkloadTypeDevTest    SubscriptionWorkloadType = "DevTest"
	SubscriptionWorkloadTypeInternal   SubscriptionWorkloadType = "Internal"
	SubscriptionWorkloadTypeNone       SubscriptionWorkloadType = "None"
	SubscriptionWorkloadTypeProduction SubscriptionWorkloadType = "Production"
)

func PossibleSubscriptionWorkloadTypeValues

func PossibleSubscriptionWorkloadTypeValues() []SubscriptionWorkloadType

PossibleSubscriptionWorkloadTypeValues returns the possible values for the SubscriptionWorkloadType const type.

type SubscriptionsAliasesClient

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

SubscriptionsAliasesClient contains the methods for the BillingSubscriptionsAliases group. Don't use this type directly, use NewSubscriptionsAliasesClient() instead.

func NewSubscriptionsAliasesClient

func NewSubscriptionsAliasesClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*SubscriptionsAliasesClient, error)

NewSubscriptionsAliasesClient creates a new instance of SubscriptionsAliasesClient with the specified values.

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

func (*SubscriptionsAliasesClient) BeginCreateOrUpdate

BeginCreateOrUpdate - Creates or updates a billing subscription by its alias ID. The operation is supported for seat based billing subscriptions. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • aliasName - The ID that uniquely identifies a subscription alias.
  • parameters - A billing subscription alias.
  • options - SubscriptionsAliasesClientBeginCreateOrUpdateOptions contains the optional parameters for the SubscriptionsAliasesClient.BeginCreateOrUpdate method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionAliasCreateOrUpdate.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewSubscriptionsAliasesClient().BeginCreateOrUpdate(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "c356b7c7-7545-4686-b843-c1a49cf853fc", armbilling.SubscriptionAlias{
		Properties: &armbilling.SubscriptionAliasProperties{
			BillingFrequency: to.Ptr("P1M"),
			DisplayName:      to.Ptr("Subscription 3"),
			Quantity:         to.Ptr[int64](1),
			SKUID:            to.Ptr("0001"),
			TermDuration:     to.Ptr("P1M"),
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.SubscriptionAlias = armbilling.SubscriptionAlias{
	// 	Name: to.Ptr("c356b7c7-7545-4686-b843-c1a49cf853fc"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptionAliases"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptionAliases/c356b7c7-7545-4686-b843-c1a49cf853fc"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-25T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.SubscriptionAliasProperties{
	// 		AutoRenew: to.Ptr(armbilling.AutoRenewOn),
	// 		BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
	// 		DisplayName: to.Ptr("Billing Subscription Display Name"),
	// 		InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
	// 		InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
	// 		InvoiceSectionName: to.Ptr("yyyy-yyyy-yyy-yyy"),
	// 		ProductCategory: to.Ptr("SeatBased"),
	// 		ProductType: to.Ptr("Seat-Based Product Type"),
	// 		ProductTypeID: to.Ptr("XYZ56789"),
	// 		PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 		Quantity: to.Ptr[int64](1),
	// 		SKUDescription: to.Ptr("SKU Description"),
	// 		SKUID: to.Ptr("0001"),
	// 		Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
	// 		SystemOverrides: &armbilling.SystemOverrides{
	// 			CancellationAllowedEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T22:39:34.260Z"); return t}()),
	// 		},
	// 		TermDuration: to.Ptr("P1M"),
	// 		TermEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-05T22:39:34.260Z"); return t}()),
	// 		TermStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 		BillingSubscriptionID: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 	},
	// }
}

func (*SubscriptionsAliasesClient) Get

Get - Gets a subscription by its alias ID. The operation is supported for seat based billing subscriptions. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • aliasName - The ID that uniquely identifies a subscription alias.
  • options - SubscriptionsAliasesClientGetOptions contains the optional parameters for the SubscriptionsAliasesClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionAliasGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewSubscriptionsAliasesClient().Get(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "c356b7c7-7545-4686-b843-c1a49cf853fc", 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.SubscriptionAlias = armbilling.SubscriptionAlias{
	// 	Name: to.Ptr("c356b7c7-7545-4686-b843-c1a49cf853fc"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptionAliases"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptionAliases/c356b7c7-7545-4686-b843-c1a49cf853fc"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-25T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.SubscriptionAliasProperties{
	// 		AutoRenew: to.Ptr(armbilling.AutoRenewOn),
	// 		BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
	// 		DisplayName: to.Ptr("Billing Subscription Display Name"),
	// 		InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
	// 		InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
	// 		InvoiceSectionName: to.Ptr("yyyy-yyyy-yyy-yyy"),
	// 		ProductCategory: to.Ptr("SeatBased"),
	// 		ProductType: to.Ptr("Seat-Based Product Type"),
	// 		ProductTypeID: to.Ptr("XYZ56789"),
	// 		PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 		Quantity: to.Ptr[int64](1),
	// 		SKUDescription: to.Ptr("SKU Description"),
	// 		SKUID: to.Ptr("0001"),
	// 		Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
	// 		SystemOverrides: &armbilling.SystemOverrides{
	// 			CancellationAllowedEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T22:39:34.260Z"); return t}()),
	// 		},
	// 		TermDuration: to.Ptr("P1M"),
	// 		TermEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-05T22:39:34.260Z"); return t}()),
	// 		TermStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 		BillingSubscriptionID: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 	},
	// }
}

func (*SubscriptionsAliasesClient) NewListByBillingAccountPager

NewListByBillingAccountPager - Lists the subscription aliases for a billing account. The operation is supported for seat based billing subscriptions.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - SubscriptionsAliasesClientListByBillingAccountOptions contains the optional parameters for the SubscriptionsAliasesClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionAliasList.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewSubscriptionsAliasesClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.SubscriptionsAliasesClientListByBillingAccountOptions{IncludeDeleted: nil,
		Filter:  nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.SubscriptionAliasListResult = armbilling.SubscriptionAliasListResult{
		// 	Value: []*armbilling.SubscriptionAlias{
		// 		{
		// 			Name: to.Ptr("90000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptionAliases"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptionAliases/90000000-0000-0000-0000-000000000000"),
		// 			SystemData: &armbilling.SystemData{
		// 				CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
		// 				LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 			},
		// 			Properties: &armbilling.SubscriptionAliasProperties{
		// 				AutoRenew: to.Ptr(armbilling.AutoRenewOn),
		// 				BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("My subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
		// 				InvoiceSectionName: to.Ptr("yyyy-yyyy-yyy-yyy"),
		// 				ProductCategory: to.Ptr("SeatBased"),
		// 				ProductType: to.Ptr("Seat-Based Product Type"),
		// 				ProductTypeID: to.Ptr("XYZ56789"),
		// 				PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
		// 				Quantity: to.Ptr[int64](1),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptionAliases/11111111-1111-1111-1111-111111111111"),
		// 				SKUDescription: to.Ptr("SKU Description"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SystemOverrides: &armbilling.SystemOverrides{
		// 					CancellationAllowedEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T22:39:34.260Z"); return t}()),
		// 				},
		// 				TermDuration: to.Ptr("P1M"),
		// 				TermEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-05T22:39:34.260Z"); return t}()),
		// 				TermStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 				BillingSubscriptionID: to.Ptr("11111111-1111-1111-1111-111111111111"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("90000000-0000-0000-0000-000000000001"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptionAliases"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptionAliases/90000000-0000-0000-0000-000000000001"),
		// 			SystemData: &armbilling.SystemData{
		// 				CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-06T22:39:34.260Z"); return t}()),
		// 				LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-07T22:39:34.260Z"); return t}()),
		// 			},
		// 			Properties: &armbilling.SubscriptionAliasProperties{
		// 				AutoRenew: to.Ptr(armbilling.AutoRenewOn),
		// 				BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("Test subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
		// 				InvoiceSectionName: to.Ptr("yyyy-yyyy-yyy-yyy"),
		// 				ProductCategory: to.Ptr("Software"),
		// 				ProductType: to.Ptr("Software Product Type"),
		// 				ProductTypeID: to.Ptr("EFG456"),
		// 				PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-06T22:39:34.260Z"); return t}()),
		// 				Quantity: to.Ptr[int64](1),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptionAliases/22222222-2222-2222-2222-222222222222"),
		// 				SKUDescription: to.Ptr("SKU Description"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SystemOverrides: &armbilling.SystemOverrides{
		// 					CancellationAllowedEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T22:39:34.260Z"); return t}()),
		// 				},
		// 				TermDuration: to.Ptr("P1M"),
		// 				TermEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-07T22:39:34.260Z"); return t}()),
		// 				TermStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-07T22:39:34.260Z"); return t}()),
		// 				BillingSubscriptionID: to.Ptr("22222222-2222-2222-2222-222222222222"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("90000000-0000-0000-0000-000000000002"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptionAliases"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptionAliases/90000000-0000-0000-0000-000000000002"),
		// 			SystemData: &armbilling.SystemData{
		// 				CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 				LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-25T22:39:34.260Z"); return t}()),
		// 			},
		// 			Properties: &armbilling.SubscriptionAliasProperties{
		// 				AutoRenew: to.Ptr(armbilling.AutoRenewOn),
		// 				BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("Dev subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
		// 				InvoiceSectionName: to.Ptr("yyyy-yyyy-yyy-yyy"),
		// 				ProductCategory: to.Ptr("ReservationOrder"),
		// 				ProductType: to.Ptr("Reservation Product Type"),
		// 				ProductTypeID: to.Ptr("JKL789"),
		// 				PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 				Quantity: to.Ptr[int64](1),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Capacity/reservationOrders/33333333-3333-3333-3333-333333333333"),
		// 				SKUDescription: to.Ptr("SKU Description"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusSuspended),
		// 				SuspensionReasonDetails: []*armbilling.SubscriptionStatusDetails{
		// 					{
		// 						EffectiveDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-15T22:39:34.260Z"); return t}()),
		// 						Reason: to.Ptr(armbilling.SubscriptionStatusReasonCancelled),
		// 				}},
		// 				SuspensionReasons: []*string{
		// 					to.Ptr("Cancelled")},
		// 					SystemOverrides: &armbilling.SystemOverrides{
		// 						CancellationAllowedEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T22:39:34.260Z"); return t}()),
		// 					},
		// 					TermDuration: to.Ptr("P1M"),
		// 					TermEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-05T22:39:34.260Z"); return t}()),
		// 					TermStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 					BillingSubscriptionID: to.Ptr("33333333-3333-3333-3333-333333333333"),
		// 				},
		// 		}},
		// 	}
	}
}

type SubscriptionsAliasesClientBeginCreateOrUpdateOptions

type SubscriptionsAliasesClientBeginCreateOrUpdateOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

SubscriptionsAliasesClientBeginCreateOrUpdateOptions contains the optional parameters for the SubscriptionsAliasesClient.BeginCreateOrUpdate method.

type SubscriptionsAliasesClientCreateOrUpdateResponse

type SubscriptionsAliasesClientCreateOrUpdateResponse struct {
	// A billing subscription alias.
	SubscriptionAlias
}

SubscriptionsAliasesClientCreateOrUpdateResponse contains the response from method SubscriptionsAliasesClient.BeginCreateOrUpdate.

type SubscriptionsAliasesClientGetOptions

type SubscriptionsAliasesClientGetOptions struct {
}

SubscriptionsAliasesClientGetOptions contains the optional parameters for the SubscriptionsAliasesClient.Get method.

type SubscriptionsAliasesClientGetResponse

type SubscriptionsAliasesClientGetResponse struct {
	// A billing subscription alias.
	SubscriptionAlias
}

SubscriptionsAliasesClientGetResponse contains the response from method SubscriptionsAliasesClient.Get.

type SubscriptionsAliasesClientListByBillingAccountOptions

type SubscriptionsAliasesClientListByBillingAccountOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// Can be used to get deleted billing subscriptions.
	IncludeDeleted *bool

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

SubscriptionsAliasesClientListByBillingAccountOptions contains the optional parameters for the SubscriptionsAliasesClient.NewListByBillingAccountPager method.

type SubscriptionsAliasesClientListByBillingAccountResponse

type SubscriptionsAliasesClientListByBillingAccountResponse struct {
	// A container for a list of resources
	SubscriptionAliasListResult
}

SubscriptionsAliasesClientListByBillingAccountResponse contains the response from method SubscriptionsAliasesClient.NewListByBillingAccountPager.

type SubscriptionsClient

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

SubscriptionsClient contains the methods for the BillingSubscriptions group. Don't use this type directly, use NewSubscriptionsClient() instead.

func NewSubscriptionsClient

func NewSubscriptionsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*SubscriptionsClient, error)

NewSubscriptionsClient creates a new instance of SubscriptionsClient with the specified values.

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

func (*SubscriptionsClient) BeginCancel

func (client *SubscriptionsClient) BeginCancel(ctx context.Context, billingAccountName string, billingSubscriptionName string, parameters CancelSubscriptionRequest, options *SubscriptionsClientBeginCancelOptions) (*runtime.Poller[SubscriptionsClientCancelResponse], error)

BeginCancel - Cancels a usage-based subscription. This operation is supported only for billing accounts of type Microsoft Partner Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingSubscriptionName - The ID that uniquely identifies a subscription.
  • parameters - Request parameters for cancel customer subscription.
  • options - SubscriptionsClientBeginCancelOptions contains the optional parameters for the SubscriptionsClient.BeginCancel method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionsCancel.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewSubscriptionsClient().BeginCancel(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", armbilling.CancelSubscriptionRequest{
		CancellationReason: to.Ptr(armbilling.CancellationReasonCompromise),
		CustomerID:         to.Ptr("11111111-1111-1111-1111-111111111111"),
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	_, err = poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %v", err)
	}
}

func (*SubscriptionsClient) BeginDelete

func (client *SubscriptionsClient) BeginDelete(ctx context.Context, billingAccountName string, billingSubscriptionName string, options *SubscriptionsClientBeginDeleteOptions) (*runtime.Poller[SubscriptionsClientDeleteResponse], error)

BeginDelete - Cancels a billing subscription. This operation is supported only for billing accounts of type Microsoft Partner Agreement or Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingSubscriptionName - The ID that uniquely identifies a subscription.
  • options - SubscriptionsClientBeginDeleteOptions contains the optional parameters for the SubscriptionsClient.BeginDelete method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionsDelete.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewSubscriptionsClient().BeginDelete(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	_, err = poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %v", err)
	}
}

func (*SubscriptionsClient) BeginMerge

func (client *SubscriptionsClient) BeginMerge(ctx context.Context, billingAccountName string, billingSubscriptionName string, parameters SubscriptionMergeRequest, options *SubscriptionsClientBeginMergeOptions) (*runtime.Poller[SubscriptionsClientMergeResponse], error)

BeginMerge - Merges the billing subscription provided in the request with a target billing subscription. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingSubscriptionName - The ID that uniquely identifies a subscription.
  • parameters - Request parameters that are provided to merge the two billing subscriptions.
  • options - SubscriptionsClientBeginMergeOptions contains the optional parameters for the SubscriptionsClient.BeginMerge method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionsMerge.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewSubscriptionsClient().BeginMerge(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", armbilling.SubscriptionMergeRequest{
		Quantity:                      to.Ptr[int32](1),
		TargetBillingSubscriptionName: to.Ptr("22222222-2222-2222-2222-222222222222"),
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.Subscription = armbilling.Subscription{
	// 	Name: to.Ptr("22222222-2222-2222-2222-222222222222"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptions/22222222-2222-2222-2222-222222222222"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-25T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.SubscriptionProperties{
	// 		AutoRenew: to.Ptr(armbilling.AutoRenewOn),
	// 		BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
	// 		DisplayName: to.Ptr("Billing Subscription Display Name"),
	// 		InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
	// 		InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
	// 		InvoiceSectionName: to.Ptr("yyyy-yyyy-yyy-yyy"),
	// 		ProductCategory: to.Ptr("SeatBased"),
	// 		ProductType: to.Ptr("Seat-Based Product Type"),
	// 		ProductTypeID: to.Ptr("XYZ56789"),
	// 		PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 		Quantity: to.Ptr[int64](2),
	// 		SKUDescription: to.Ptr("SKU Description"),
	// 		SKUID: to.Ptr("0001"),
	// 		Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
	// 		SystemOverrides: &armbilling.SystemOverrides{
	// 			CancellationAllowedEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T22:39:34.260Z"); return t}()),
	// 		},
	// 		TermDuration: to.Ptr("P1M"),
	// 		TermEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-05T22:39:34.260Z"); return t}()),
	// 		TermStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// }
}

func (*SubscriptionsClient) BeginMove

func (client *SubscriptionsClient) BeginMove(ctx context.Context, billingAccountName string, billingSubscriptionName string, parameters MoveBillingSubscriptionRequest, options *SubscriptionsClientBeginMoveOptions) (*runtime.Poller[SubscriptionsClientMoveResponse], error)

BeginMove - Moves charges for a subscription to a new invoice section. The new invoice section must belong to the same billing profile as the existing invoice section. This operation is supported for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingSubscriptionName - The ID that uniquely identifies a subscription.
  • parameters - Request parameters to transfer billing subscription.
  • options - SubscriptionsClientBeginMoveOptions contains the optional parameters for the SubscriptionsClient.BeginMove method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionMove.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewSubscriptionsClient().BeginMove(ctx, "a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31", "6b96d3f2-9008-4a9d-912f-f87744185aa3", armbilling.MoveBillingSubscriptionRequest{
		DestinationInvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.Subscription = armbilling.Subscription{
	// 	Name: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
	// 	Properties: &armbilling.SubscriptionProperties{
	// 		BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
	// 		ConsumptionCostCenter: to.Ptr("ABC1234"),
	// 		DisplayName: to.Ptr("My Subscription"),
	// 		InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
	// 		InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
	// 		SKUDescription: to.Ptr("Microsoft Azure Plan"),
	// 		SKUID: to.Ptr("0001"),
	// 		Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
	// 		SubscriptionID: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
	// 	},
	// }
}

func (*SubscriptionsClient) BeginSplit

func (client *SubscriptionsClient) BeginSplit(ctx context.Context, billingAccountName string, billingSubscriptionName string, parameters SubscriptionSplitRequest, options *SubscriptionsClientBeginSplitOptions) (*runtime.Poller[SubscriptionsClientSplitResponse], error)

BeginSplit - Splits a subscription into a new subscription with quantity less than current subscription quantity and not equal to 0. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingSubscriptionName - The ID that uniquely identifies a subscription.
  • parameters - Request parameters that are provided to split the billing subscription.
  • options - SubscriptionsClientBeginSplitOptions contains the optional parameters for the SubscriptionsClient.BeginSplit method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionsSplit.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewSubscriptionsClient().BeginSplit(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", armbilling.SubscriptionSplitRequest{
		BillingFrequency:    to.Ptr("P1M"),
		Quantity:            to.Ptr[int32](1),
		TargetProductTypeID: to.Ptr("XYZ56789"),
		TargetSKUID:         to.Ptr("0001"),
		TermDuration:        to.Ptr("P1M"),
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.Subscription = armbilling.Subscription{
	// 	Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptions/11111111-1111-1111-1111-111111111111"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-25T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.SubscriptionProperties{
	// 		AutoRenew: to.Ptr(armbilling.AutoRenewOn),
	// 		BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
	// 		DisplayName: to.Ptr("Billing Subscription Display Name"),
	// 		InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
	// 		InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
	// 		InvoiceSectionName: to.Ptr("yyyy-yyyy-yyy-yyy"),
	// 		ProductCategory: to.Ptr("SeatBased"),
	// 		ProductType: to.Ptr("Seat-Based Product Type"),
	// 		ProductTypeID: to.Ptr("XYZ56789"),
	// 		PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 		Quantity: to.Ptr[int64](1),
	// 		SKUDescription: to.Ptr("SKU Description"),
	// 		SKUID: to.Ptr("0001"),
	// 		Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
	// 		SystemOverrides: &armbilling.SystemOverrides{
	// 			CancellationAllowedEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T22:39:34.260Z"); return t}()),
	// 		},
	// 		TermDuration: to.Ptr("P1M"),
	// 		TermEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-05T22:39:34.260Z"); return t}()),
	// 		TermStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// }
}

func (*SubscriptionsClient) BeginUpdate

func (client *SubscriptionsClient) BeginUpdate(ctx context.Context, billingAccountName string, billingSubscriptionName string, parameters SubscriptionPatch, options *SubscriptionsClientBeginUpdateOptions) (*runtime.Poller[SubscriptionsClientUpdateResponse], error)

BeginUpdate - Updates the properties of a billing subscription. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingSubscriptionName - The ID that uniquely identifies a subscription.
  • parameters - The billing properties of a subscription.
  • options - SubscriptionsClientBeginUpdateOptions contains the optional parameters for the SubscriptionsClient.BeginUpdate method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionsUpdate.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewSubscriptionsClient().BeginUpdate(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", armbilling.SubscriptionPatch{
		Properties: &armbilling.SubscriptionProperties{
			ConsumptionCostCenter: to.Ptr("ABC1234"),
		},
	}, nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.Subscription = armbilling.Subscription{
	// 	Name: to.Ptr("11111111-1111-1111-1111-111111111111"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptions/11111111-1111-1111-1111-111111111111"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-25T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.SubscriptionProperties{
	// 		AutoRenew: to.Ptr(armbilling.AutoRenewOn),
	// 		BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
	// 		DisplayName: to.Ptr("Billing Subscription Display Name"),
	// 		InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
	// 		InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
	// 		InvoiceSectionName: to.Ptr("yyyy-yyyy-yyy-yyy"),
	// 		ProductCategory: to.Ptr("SeatBased"),
	// 		ProductType: to.Ptr("Seat-Based Product Type"),
	// 		ProductTypeID: to.Ptr("XYZ56789"),
	// 		PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 		Quantity: to.Ptr[int64](1),
	// 		SKUDescription: to.Ptr("SKU Description"),
	// 		SKUID: to.Ptr("0001"),
	// 		Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
	// 		SystemOverrides: &armbilling.SystemOverrides{
	// 			CancellationAllowedEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T22:39:34.260Z"); return t}()),
	// 		},
	// 		TermDuration: to.Ptr("P1M"),
	// 		TermEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-05T22:39:34.260Z"); return t}()),
	// 		TermStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// }
}

func (*SubscriptionsClient) Get

func (client *SubscriptionsClient) Get(ctx context.Context, billingAccountName string, billingSubscriptionName string, options *SubscriptionsClientGetOptions) (SubscriptionsClientGetResponse, error)

Get - Gets a subscription by its ID. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement, Microsoft Partner Agreement, and Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingSubscriptionName - The ID that uniquely identifies a subscription.
  • options - SubscriptionsClientGetOptions contains the optional parameters for the SubscriptionsClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionsGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewSubscriptionsClient().Get(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "11111111-1111-1111-1111-111111111111", &armbilling.SubscriptionsClientGetOptions{Expand: 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.Subscription = armbilling.Subscription{
	// 	Name: to.Ptr("90000000-0000-0000-0000-000000000000"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptions/90000000-0000-0000-0000-000000000000"),
	// 	SystemData: &armbilling.SystemData{
	// 		CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// 	Properties: &armbilling.SubscriptionProperties{
	// 		AutoRenew: to.Ptr(armbilling.AutoRenewOn),
	// 		BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
	// 		BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
	// 		DisplayName: to.Ptr("My subscription"),
	// 		InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
	// 		InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
	// 		InvoiceSectionName: to.Ptr("yyyy-yyyy-yyy-yyy"),
	// 		ProductCategory: to.Ptr("SeatBased"),
	// 		ProductType: to.Ptr("Seat-Based Product Type"),
	// 		ProductTypeID: to.Ptr("XYZ56789"),
	// 		PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
	// 		Quantity: to.Ptr[int64](1),
	// 		ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptions/90000000-0000-0000-0000-000000000000"),
	// 		SKUDescription: to.Ptr("SKU Description"),
	// 		SKUID: to.Ptr("0001"),
	// 		Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
	// 		SystemOverrides: &armbilling.SystemOverrides{
	// 			CancellationAllowedEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T22:39:34.260Z"); return t}()),
	// 		},
	// 		TermDuration: to.Ptr("P1M"),
	// 		TermEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-05T22:39:34.260Z"); return t}()),
	// 		TermStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 	},
	// }
}

func (*SubscriptionsClient) GetByBillingProfile

func (client *SubscriptionsClient) GetByBillingProfile(ctx context.Context, billingAccountName string, billingProfileName string, billingSubscriptionName string, options *SubscriptionsClientGetByBillingProfileOptions) (SubscriptionsClientGetByBillingProfileResponse, error)

GetByBillingProfile - Gets a subscription by its billing profile and ID. The operation is supported for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • billingSubscriptionName - The ID that uniquely identifies a subscription.
  • options - SubscriptionsClientGetByBillingProfileOptions contains the optional parameters for the SubscriptionsClient.GetByBillingProfile method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionGetByBillingProfile.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewSubscriptionsClient().GetByBillingProfile(ctx, "pcn.94077792", "6478903", "6b96d3f2-9008-4a9d-912f-f87744185aa3", &armbilling.SubscriptionsClientGetByBillingProfileOptions{Expand: 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.Subscription = armbilling.Subscription{
	// 	Name: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
	// 	Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/billingSubscriptions"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/pcn.94077792/billingProfiles/6478903/billingSubscriptions/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
	// 	Properties: &armbilling.SubscriptionProperties{
	// 		BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/pcn.94077792/billingProfiles/6478903"),
	// 		BillingProfileName: to.Ptr("47268432"),
	// 		DisplayName: to.Ptr("My Subscription"),
	// 		InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
	// 		InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/6564892/billingProfiles/11000000-0000-0000-0000-000000000000/invoiceSections/22000000-0000-0000-0000-000000000000"),
	// 		ProvisioningTenantID: to.Ptr("7d62dbd1-1348-4496-b2f8-df6948c103ee"),
	// 		Quantity: to.Ptr[int64](50),
	// 		SKUDescription: to.Ptr("Microsoft Azure Dev/Test"),
	// 		SKUID: to.Ptr("0001"),
	// 		Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
	// 		SubscriptionID: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
	// 		SystemOverrides: &armbilling.SystemOverrides{
	// 			Cancellation: to.Ptr(armbilling.CancellationAllowed),
	// 			CancellationAllowedEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
	// 		},
	// 	},
	// }
}

func (*SubscriptionsClient) NewListByBillingAccountPager

NewListByBillingAccountPager - Lists the subscriptions for a billing account.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • options - SubscriptionsClientListByBillingAccountOptions contains the optional parameters for the SubscriptionsClient.NewListByBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionsListByBillingAccount.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewSubscriptionsClient().NewListByBillingAccountPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", &armbilling.SubscriptionsClientListByBillingAccountOptions{IncludeDeleted: to.Ptr(false),
		IncludeTenantSubscriptions: to.Ptr(false),
		IncludeFailed:              nil,
		Expand:                     nil,
		Filter:                     nil,
		OrderBy:                    nil,
		Top:                        nil,
		Skip:                       nil,
		Count:                      nil,
		Search:                     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.SubscriptionListResult = armbilling.SubscriptionListResult{
		// 	Value: []*armbilling.Subscription{
		// 		{
		// 			Name: to.Ptr("90000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptions/90000000-0000-0000-0000-000000000000"),
		// 			SystemData: &armbilling.SystemData{
		// 				CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
		// 				LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 			},
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				AutoRenew: to.Ptr(armbilling.AutoRenewOn),
		// 				BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("My subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
		// 				InvoiceSectionName: to.Ptr("yyyy-yyyy-yyy-yyy"),
		// 				ProductCategory: to.Ptr("SeatBased"),
		// 				ProductType: to.Ptr("Seat-Based Product Type"),
		// 				ProductTypeID: to.Ptr("XYZ56789"),
		// 				PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T22:39:34.260Z"); return t}()),
		// 				Quantity: to.Ptr[int64](1),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptions/90000000-0000-0000-0000-000000000000"),
		// 				SKUDescription: to.Ptr("SKU Description"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SystemOverrides: &armbilling.SystemOverrides{
		// 					CancellationAllowedEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T22:39:34.260Z"); return t}()),
		// 				},
		// 				TermDuration: to.Ptr("P1M"),
		// 				TermEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-05T22:39:34.260Z"); return t}()),
		// 				TermStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("90000000-0000-0000-0000-000000000001"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptions/90000000-0000-0000-0000-000000000001"),
		// 			SystemData: &armbilling.SystemData{
		// 				CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-06T22:39:34.260Z"); return t}()),
		// 				LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-07T22:39:34.260Z"); return t}()),
		// 			},
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				AutoRenew: to.Ptr(armbilling.AutoRenewOn),
		// 				BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("Test subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
		// 				InvoiceSectionName: to.Ptr("yyyy-yyyy-yyy-yyy"),
		// 				ProductCategory: to.Ptr("Software"),
		// 				ProductType: to.Ptr("Software Product Type"),
		// 				ProductTypeID: to.Ptr("EFG456"),
		// 				PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-06T22:39:34.260Z"); return t}()),
		// 				Quantity: to.Ptr[int64](1),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptions/90000000-0000-0000-0000-000000000001"),
		// 				SKUDescription: to.Ptr("SKU Description"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SystemOverrides: &armbilling.SystemOverrides{
		// 					CancellationAllowedEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T22:39:34.260Z"); return t}()),
		// 				},
		// 				TermDuration: to.Ptr("P1M"),
		// 				TermEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-07T22:39:34.260Z"); return t}()),
		// 				TermStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-07T22:39:34.260Z"); return t}()),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("90000000-0000-0000-0000-000000000002"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingSubscriptions/90000000-0000-0000-0000-000000000002"),
		// 			SystemData: &armbilling.SystemData{
		// 				CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 				LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-25T22:39:34.260Z"); return t}()),
		// 			},
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				AutoRenew: to.Ptr(armbilling.AutoRenewOn),
		// 				BillingProfileDisplayName: to.Ptr("Billing Profile Display Name"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				BillingProfileName: to.Ptr("xxxx-xxxx-xxx-xxx"),
		// 				DisplayName: to.Ptr("Dev subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Invoice Section Display Name"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy"),
		// 				InvoiceSectionName: to.Ptr("yyyy-yyyy-yyy-yyy"),
		// 				ProductCategory: to.Ptr("ReservationOrder"),
		// 				ProductType: to.Ptr("Reservation Product Type"),
		// 				ProductTypeID: to.Ptr("JKL789"),
		// 				PurchaseDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 				Quantity: to.Ptr[int64](1),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Capacity/reservationOrders/90000000-0000-0000-0000-000000000002"),
		// 				SKUDescription: to.Ptr("SKU Description"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusSuspended),
		// 				SuspensionReasonDetails: []*armbilling.SubscriptionStatusDetails{
		// 					{
		// 						EffectiveDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-15T22:39:34.260Z"); return t}()),
		// 						Reason: to.Ptr(armbilling.SubscriptionStatusReasonCancelled),
		// 				}},
		// 				SuspensionReasons: []*string{
		// 					to.Ptr("Cancelled")},
		// 					SystemOverrides: &armbilling.SystemOverrides{
		// 						CancellationAllowedEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-01T22:39:34.260Z"); return t}()),
		// 					},
		// 					TermDuration: to.Ptr("P1M"),
		// 					TermEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-02-05T22:39:34.260Z"); return t}()),
		// 					TermStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-05T22:39:34.260Z"); return t}()),
		// 				},
		// 		}},
		// 	}
	}
}

func (*SubscriptionsClient) NewListByBillingProfilePager

func (client *SubscriptionsClient) NewListByBillingProfilePager(billingAccountName string, billingProfileName string, options *SubscriptionsClientListByBillingProfileOptions) *runtime.Pager[SubscriptionsClientListByBillingProfileResponse]

NewListByBillingProfilePager - Lists the subscriptions that are billed to a billing profile. The operation is supported for billing accounts with agreement type Microsoft Customer Agreement or Microsoft Partner Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • options - SubscriptionsClientListByBillingProfileOptions contains the optional parameters for the SubscriptionsClient.NewListByBillingProfilePager method.
Example (BillingSubscriptionsListByBillingProfileEa)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionsListByBillingProfileEA.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewSubscriptionsClient().NewListByBillingProfilePager("pcn.94077792", "6478903", &armbilling.SubscriptionsClientListByBillingProfileOptions{IncludeDeleted: nil,
		Expand:  nil,
		Filter:  nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.SubscriptionListResult = armbilling.SubscriptionListResult{
		// 	Value: []*armbilling.Subscription{
		// 		{
		// 			Name: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/pcn.94077792/billingProfiles/6478903/billingSubscriptions/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/pcn.94077792/billingProfiles/6478903"),
		// 				BillingProfileName: to.Ptr("47268432"),
		// 				DisplayName: to.Ptr("My Subscription"),
		// 				EnrollmentAccountDisplayName: to.Ptr("billtest332211@outlook.com"),
		// 				EnrollmentAccountID: to.Ptr("172988"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			},
		// 	}},
		// }
	}
}
Example (BillingSubscriptionsListByBillingProfileMca)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionsListByBillingProfileMCA.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewSubscriptionsClient().NewListByBillingProfilePager("a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31", "ea36e548-1505-41db-bebc-46fff3d37998", &armbilling.SubscriptionsClientListByBillingProfileOptions{IncludeDeleted: nil,
		Expand:  nil,
		Filter:  nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.SubscriptionListResult = armbilling.SubscriptionListResult{
		// 	Value: []*armbilling.Subscription{
		// 		{
		// 			Name: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("My Subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Dev/Test"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("Test Subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Dev/Test"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("90D31600-D46D-4084-84C6-1235CDAFFB56"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/90D31600-D46D-4084-84C6-1235CDAFFB56"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("Dev Subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/90D31600-D46D-4084-84C6-1235CDAFFB56"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Dev/Test"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("90D31600-D46D-4084-84C6-1235CDAFFB56"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("Dev Test Subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Domain/domainSubscriptions/9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 				SKUDescription: to.Ptr("Domain Name Registration ORG"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			},
		// 	}},
		// }
	}
}

func (*SubscriptionsClient) NewListByCustomerAtBillingAccountPager

func (client *SubscriptionsClient) NewListByCustomerAtBillingAccountPager(billingAccountName string, customerName string, options *SubscriptionsClientListByCustomerAtBillingAccountOptions) *runtime.Pager[SubscriptionsClientListByCustomerAtBillingAccountResponse]

NewListByCustomerAtBillingAccountPager - Lists the subscriptions for a customer at billing account level. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • customerName - The ID that uniquely identifies a customer.
  • options - SubscriptionsClientListByCustomerAtBillingAccountOptions contains the optional parameters for the SubscriptionsClient.NewListByCustomerAtBillingAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionsListByCustomerAtBillingAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewSubscriptionsClient().NewListByCustomerAtBillingAccountPager("a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31", "Q7GV-UUVA-PJA-TGB", &armbilling.SubscriptionsClientListByCustomerAtBillingAccountOptions{IncludeDeleted: nil,
		Expand:  nil,
		Filter:  nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.SubscriptionListResult = armbilling.SubscriptionListResult{
		// 	Value: []*armbilling.Subscription{
		// 		{
		// 			Name: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("BillingProfile1"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				BillingProfileName: to.Ptr("ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				CustomerDisplayName: to.Ptr("Customer1"),
		// 				CustomerID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/customers/Q7GV-UUVA-PJA-TGB"),
		// 				DisplayName: to.Ptr("My Subscription"),
		// 				Reseller: &armbilling.Reseller{
		// 					Description: to.Ptr("Reseller1"),
		// 					ResellerID: to.Ptr("89e87bdf-a2a2-4687-925f-4c18b27bccfd"),
		// 				},
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Standard"),
		// 				SKUID: to.Ptr("0002"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("BillingProfile1"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				BillingProfileName: to.Ptr("ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				CustomerDisplayName: to.Ptr("Customer1"),
		// 				CustomerID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/customers/Q7GV-UUVA-PJA-TGB"),
		// 				DisplayName: to.Ptr("Test Subscription"),
		// 				Reseller: &armbilling.Reseller{
		// 					Description: to.Ptr("Reseller3"),
		// 					ResellerID: to.Ptr("3b65b5a8-bd4f-4084-90e9-e1bd667a2b19"),
		// 				},
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Standard"),
		// 				SKUID: to.Ptr("0002"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("BillingProfile1"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				BillingProfileName: to.Ptr("ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				CustomerDisplayName: to.Ptr("Customer1"),
		// 				CustomerID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/customers/Q7GV-UUVA-PJA-TGB"),
		// 				DisplayName: to.Ptr("Dev Test Subscription"),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Domain/domainSubscriptions/9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 				SKUDescription: to.Ptr("Domain Name Registration ORG"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			},
		// 	}},
		// }
	}
}

func (*SubscriptionsClient) NewListByCustomerPager

func (client *SubscriptionsClient) NewListByCustomerPager(billingAccountName string, billingProfileName string, customerName string, options *SubscriptionsClientListByCustomerOptions) *runtime.Pager[SubscriptionsClientListByCustomerResponse]

NewListByCustomerPager - Lists the subscriptions for a customer. The operation is supported only for billing accounts with agreement type Microsoft Partner Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • options - SubscriptionsClientListByCustomerOptions contains the optional parameters for the SubscriptionsClient.NewListByCustomerPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionsListByCustomer.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewSubscriptionsClient().NewListByCustomerPager("a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31", "ea36e548-1505-41db-bebc-46fff3d37998", "Q7GV-UUVA-PJA-TGB", &armbilling.SubscriptionsClientListByCustomerOptions{IncludeDeleted: nil,
		Expand:  nil,
		Filter:  nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.SubscriptionListResult = armbilling.SubscriptionListResult{
		// 	Value: []*armbilling.Subscription{
		// 		{
		// 			Name: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("BillingProfile1"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				BillingProfileName: to.Ptr("ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				CustomerDisplayName: to.Ptr("Customer1"),
		// 				CustomerID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/customers/Q7GV-UUVA-PJA-TGB"),
		// 				DisplayName: to.Ptr("My Subscription"),
		// 				Reseller: &armbilling.Reseller{
		// 					Description: to.Ptr("Reseller1"),
		// 					ResellerID: to.Ptr("89e87bdf-a2a2-4687-925f-4c18b27bccfd"),
		// 				},
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Standard"),
		// 				SKUID: to.Ptr("0002"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("BillingProfile1"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				BillingProfileName: to.Ptr("ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				CustomerDisplayName: to.Ptr("Customer1"),
		// 				CustomerID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/customers/Q7GV-UUVA-PJA-TGB"),
		// 				DisplayName: to.Ptr("Test Subscription"),
		// 				Reseller: &armbilling.Reseller{
		// 					Description: to.Ptr("Reseller3"),
		// 					ResellerID: to.Ptr("3b65b5a8-bd4f-4084-90e9-e1bd667a2b19"),
		// 				},
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Standard"),
		// 				SKUID: to.Ptr("0002"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("BillingProfile1"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				BillingProfileName: to.Ptr("ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				CustomerDisplayName: to.Ptr("Customer1"),
		// 				CustomerID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/customers/Q7GV-UUVA-PJA-TGB"),
		// 				DisplayName: to.Ptr("Dev Test Subscription"),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Domain/domainSubscriptions/9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 				SKUDescription: to.Ptr("Domain Name Registration ORG"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			},
		// 	}},
		// }
	}
}

func (*SubscriptionsClient) NewListByEnrollmentAccountPager

func (client *SubscriptionsClient) NewListByEnrollmentAccountPager(billingAccountName string, enrollmentAccountName string, options *SubscriptionsClientListByEnrollmentAccountOptions) *runtime.Pager[SubscriptionsClientListByEnrollmentAccountResponse]

NewListByEnrollmentAccountPager - Lists the subscriptions for an enrollment account. The operation is supported for billing accounts with agreement type Enterprise Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • enrollmentAccountName - The name of the enrollment account.
  • options - SubscriptionsClientListByEnrollmentAccountOptions contains the optional parameters for the SubscriptionsClient.NewListByEnrollmentAccountPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionsListByEnrollmentAccount.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewSubscriptionsClient().NewListByEnrollmentAccountPager("6564892", "172988", &armbilling.SubscriptionsClientListByEnrollmentAccountOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.SubscriptionListResult = armbilling.SubscriptionListResult{
		// 	Value: []*armbilling.Subscription{
		// 		{
		// 			Name: to.Ptr("90000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/6564892/billingSubscriptions/90000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				ConsumptionCostCenter: to.Ptr("123"),
		// 				DisplayName: to.Ptr("TestSubscription"),
		// 				EnrollmentAccountDisplayName: to.Ptr("billtest332211@outlook.com"),
		// 				EnrollmentAccountID: to.Ptr("172988"),
		// 				EnrollmentAccountSubscriptionDetails: &armbilling.EnrollmentAccountSubscriptionDetails{
		// 					EnrollmentAccountStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T00:00:00.000Z"); return t}()),
		// 				},
		// 				SubscriptionID: to.Ptr("90000000-0000-0000-0000-000000000000"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("90000000-0000-0000-0000-000000000001"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/6564892/billingSubscriptions/90000000-0000-0000-0000-000000000001"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				ConsumptionCostCenter: to.Ptr(""),
		// 				DisplayName: to.Ptr("Microsoft Azure Enterprise-1"),
		// 				EnrollmentAccountDisplayName: to.Ptr("billtest332211@outlook.com"),
		// 				EnrollmentAccountID: to.Ptr("172988"),
		// 				EnrollmentAccountSubscriptionDetails: &armbilling.EnrollmentAccountSubscriptionDetails{
		// 					EnrollmentAccountStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-01-04T00:00:00.000Z"); return t}()),
		// 					SubscriptionEnrollmentAccountStatus: to.Ptr(armbilling.SubscriptionEnrollmentAccountStatusDeleted),
		// 				},
		// 				SubscriptionID: to.Ptr("90000000-0000-0000-0000-000000000001"),
		// 			},
		// 	}},
		// }
	}
}

func (*SubscriptionsClient) NewListByInvoiceSectionPager

func (client *SubscriptionsClient) NewListByInvoiceSectionPager(billingAccountName string, billingProfileName string, invoiceSectionName string, options *SubscriptionsClientListByInvoiceSectionOptions) *runtime.Pager[SubscriptionsClientListByInvoiceSectionResponse]

NewListByInvoiceSectionPager - Lists the subscriptions that are billed to an invoice section. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • options - SubscriptionsClientListByInvoiceSectionOptions contains the optional parameters for the SubscriptionsClient.NewListByInvoiceSectionPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionsListByInvoiceSection.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewSubscriptionsClient().NewListByInvoiceSectionPager("a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31", "ea36e548-1505-41db-bebc-46fff3d37998", "Q7GV-UUVA-PJA-TGB", &armbilling.SubscriptionsClientListByInvoiceSectionOptions{IncludeDeleted: nil,
		Expand:  nil,
		Filter:  nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.SubscriptionListResult = armbilling.SubscriptionListResult{
		// 	Value: []*armbilling.Subscription{
		// 		{
		// 			Name: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("My Subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Dev/Test"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("6b96d3f2-9008-4a9d-912f-f87744185aa3"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("Test Subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Dev/Test"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("CD0BBD7A-461A-4D9A-9C59-EAE51A0D5D12"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("90D31600-D46D-4084-84C6-1235CDAFFB56"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/90D31600-D46D-4084-84C6-1235CDAFFB56"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("Dev Subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/90D31600-D46D-4084-84C6-1235CDAFFB56"),
		// 				SKUDescription: to.Ptr("Microsoft Azure Dev/Test"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("90D31600-D46D-4084-84C6-1235CDAFFB56"),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingSubscriptions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingSubscriptions/9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			Properties: &armbilling.SubscriptionProperties{
		// 				BillingProfileDisplayName: to.Ptr("Contoso operations billing"),
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998"),
		// 				DisplayName: to.Ptr("Dev Test Subscription"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
		// 				ResourceURI: to.Ptr("/providers/Microsoft.Domain/domainSubscriptions/9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 				SKUDescription: to.Ptr("Domain Name Registration ORG"),
		// 				SKUID: to.Ptr("0001"),
		// 				Status: to.Ptr(armbilling.BillingSubscriptionStatusActive),
		// 				SubscriptionID: to.Ptr("9e90f86b-22fc-42f3-bfe2-0ac3e7c01d32"),
		// 			},
		// 	}},
		// }
	}
}

func (*SubscriptionsClient) ValidateMoveEligibility

func (client *SubscriptionsClient) ValidateMoveEligibility(ctx context.Context, billingAccountName string, billingSubscriptionName string, parameters MoveBillingSubscriptionRequest, options *SubscriptionsClientValidateMoveEligibilityOptions) (SubscriptionsClientValidateMoveEligibilityResponse, error)

ValidateMoveEligibility - Validates if charges for a subscription can be moved to a new invoice section. This operation is supported for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingSubscriptionName - The ID that uniquely identifies a subscription.
  • parameters - Request parameters to transfer billing subscription.
  • options - SubscriptionsClientValidateMoveEligibilityOptions contains the optional parameters for the SubscriptionsClient.ValidateMoveEligibility method.
Example (BillingSubscriptionValidateMoveFailure)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionValidateMoveFailure.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewSubscriptionsClient().ValidateMoveEligibility(ctx, "a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31", "6b96d3f2-9008-4a9d-912f-f87744185aa3", armbilling.MoveBillingSubscriptionRequest{
		DestinationInvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
	}, 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.MoveBillingSubscriptionEligibilityResult = armbilling.MoveBillingSubscriptionEligibilityResult{
	// 	ErrorDetails: &armbilling.MoveBillingSubscriptionErrorDetails{
	// 		Code: to.Ptr(armbilling.SubscriptionTransferValidationErrorCodeSubscriptionNotActive),
	// 		Message: to.Ptr("Invoice Sections can only be changed for active subscriptions."),
	// 	},
	// }
}
Example (BillingSubscriptionValidateMoveSuccess)

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/billingSubscriptionValidateMoveSuccess.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewSubscriptionsClient().ValidateMoveEligibility(ctx, "a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31", "6b96d3f2-9008-4a9d-912f-f87744185aa3", armbilling.MoveBillingSubscriptionRequest{
		DestinationInvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/a1a9c77e-4cec-4a6c-a089-867d973a6074:a80d3b1f-c626-4e5e-82ed-1173bd91c838_2019-05-31/billingProfiles/ea36e548-1505-41db-bebc-46fff3d37998/invoiceSections/Q7GV-UUVA-PJA-TGB"),
	}, 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.MoveBillingSubscriptionEligibilityResult = armbilling.MoveBillingSubscriptionEligibilityResult{
	// 	IsMoveEligible: to.Ptr(true),
	// }
}

type SubscriptionsClientBeginCancelOptions

type SubscriptionsClientBeginCancelOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

SubscriptionsClientBeginCancelOptions contains the optional parameters for the SubscriptionsClient.BeginCancel method.

type SubscriptionsClientBeginDeleteOptions

type SubscriptionsClientBeginDeleteOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

SubscriptionsClientBeginDeleteOptions contains the optional parameters for the SubscriptionsClient.BeginDelete method.

type SubscriptionsClientBeginMergeOptions

type SubscriptionsClientBeginMergeOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

SubscriptionsClientBeginMergeOptions contains the optional parameters for the SubscriptionsClient.BeginMerge method.

type SubscriptionsClientBeginMoveOptions

type SubscriptionsClientBeginMoveOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

SubscriptionsClientBeginMoveOptions contains the optional parameters for the SubscriptionsClient.BeginMove method.

type SubscriptionsClientBeginSplitOptions

type SubscriptionsClientBeginSplitOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

SubscriptionsClientBeginSplitOptions contains the optional parameters for the SubscriptionsClient.BeginSplit method.

type SubscriptionsClientBeginUpdateOptions

type SubscriptionsClientBeginUpdateOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

SubscriptionsClientBeginUpdateOptions contains the optional parameters for the SubscriptionsClient.BeginUpdate method.

type SubscriptionsClientCancelResponse

type SubscriptionsClientCancelResponse struct {
}

SubscriptionsClientCancelResponse contains the response from method SubscriptionsClient.BeginCancel.

type SubscriptionsClientDeleteResponse

type SubscriptionsClientDeleteResponse struct {
}

SubscriptionsClientDeleteResponse contains the response from method SubscriptionsClient.BeginDelete.

type SubscriptionsClientGetByBillingProfileOptions

type SubscriptionsClientGetByBillingProfileOptions struct {
	// Can be used to expand Reseller, ConsumptionCostCenter, LastMonthCharges and MonthToDateCharges
	Expand *string
}

SubscriptionsClientGetByBillingProfileOptions contains the optional parameters for the SubscriptionsClient.GetByBillingProfile method.

type SubscriptionsClientGetByBillingProfileResponse

type SubscriptionsClientGetByBillingProfileResponse struct {
	// The billing properties of a subscription.
	Subscription
}

SubscriptionsClientGetByBillingProfileResponse contains the response from method SubscriptionsClient.GetByBillingProfile.

type SubscriptionsClientGetOptions

type SubscriptionsClientGetOptions struct {
	// Can be used to expand Reseller, ConsumptionCostCenter, LastMonthCharges and MonthToDateCharges
	Expand *string
}

SubscriptionsClientGetOptions contains the optional parameters for the SubscriptionsClient.Get method.

type SubscriptionsClientGetResponse

type SubscriptionsClientGetResponse struct {
	// The billing properties of a subscription.
	Subscription
}

SubscriptionsClientGetResponse contains the response from method SubscriptionsClient.Get.

type SubscriptionsClientListByBillingAccountOptions

type SubscriptionsClientListByBillingAccountOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// Can be used to expand Reseller, ConsumptionCostCenter, LastMonthCharges and MonthToDateCharges
	Expand *string

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// Can be used to get deleted billing subscriptions.
	IncludeDeleted *bool

	// Can be used to get failed billing subscriptions.
	IncludeFailed *bool

	// Can be used to get tenant-owned billing subscriptions. This field is only applies to Microsoft Online Services Program
	// billing accounts.
	IncludeTenantSubscriptions *bool

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

SubscriptionsClientListByBillingAccountOptions contains the optional parameters for the SubscriptionsClient.NewListByBillingAccountPager method.

type SubscriptionsClientListByBillingAccountResponse

type SubscriptionsClientListByBillingAccountResponse struct {
	// A container for a list of resources
	SubscriptionListResult
}

SubscriptionsClientListByBillingAccountResponse contains the response from method SubscriptionsClient.NewListByBillingAccountPager.

type SubscriptionsClientListByBillingProfileOptions

type SubscriptionsClientListByBillingProfileOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// Can be used to expand Reseller, ConsumptionCostCenter, LastMonthCharges and MonthToDateCharges
	Expand *string

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// Can be used to get deleted billing subscriptions.
	IncludeDeleted *bool

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

SubscriptionsClientListByBillingProfileOptions contains the optional parameters for the SubscriptionsClient.NewListByBillingProfilePager method.

type SubscriptionsClientListByBillingProfileResponse

type SubscriptionsClientListByBillingProfileResponse struct {
	// A container for a list of resources
	SubscriptionListResult
}

SubscriptionsClientListByBillingProfileResponse contains the response from method SubscriptionsClient.NewListByBillingProfilePager.

type SubscriptionsClientListByCustomerAtBillingAccountOptions

type SubscriptionsClientListByCustomerAtBillingAccountOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// Can be used to expand Reseller, ConsumptionCostCenter, LastMonthCharges and MonthToDateCharges
	Expand *string

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// Can be used to get deleted billing subscriptions.
	IncludeDeleted *bool

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

SubscriptionsClientListByCustomerAtBillingAccountOptions contains the optional parameters for the SubscriptionsClient.NewListByCustomerAtBillingAccountPager method.

type SubscriptionsClientListByCustomerAtBillingAccountResponse

type SubscriptionsClientListByCustomerAtBillingAccountResponse struct {
	// A container for a list of resources
	SubscriptionListResult
}

SubscriptionsClientListByCustomerAtBillingAccountResponse contains the response from method SubscriptionsClient.NewListByCustomerAtBillingAccountPager.

type SubscriptionsClientListByCustomerOptions

type SubscriptionsClientListByCustomerOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// Can be used to expand Reseller, ConsumptionCostCenter, LastMonthCharges and MonthToDateCharges
	Expand *string

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// Can be used to get deleted billing subscriptions.
	IncludeDeleted *bool

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

SubscriptionsClientListByCustomerOptions contains the optional parameters for the SubscriptionsClient.NewListByCustomerPager method.

type SubscriptionsClientListByCustomerResponse

type SubscriptionsClientListByCustomerResponse struct {
	// A container for a list of resources
	SubscriptionListResult
}

SubscriptionsClientListByCustomerResponse contains the response from method SubscriptionsClient.NewListByCustomerPager.

type SubscriptionsClientListByEnrollmentAccountOptions

type SubscriptionsClientListByEnrollmentAccountOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

SubscriptionsClientListByEnrollmentAccountOptions contains the optional parameters for the SubscriptionsClient.NewListByEnrollmentAccountPager method.

type SubscriptionsClientListByEnrollmentAccountResponse

type SubscriptionsClientListByEnrollmentAccountResponse struct {
	// A container for a list of resources
	SubscriptionListResult
}

SubscriptionsClientListByEnrollmentAccountResponse contains the response from method SubscriptionsClient.NewListByEnrollmentAccountPager.

type SubscriptionsClientListByInvoiceSectionOptions

type SubscriptionsClientListByInvoiceSectionOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// Can be used to expand Reseller, ConsumptionCostCenter, LastMonthCharges and MonthToDateCharges
	Expand *string

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// Can be used to get deleted billing subscriptions.
	IncludeDeleted *bool

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

SubscriptionsClientListByInvoiceSectionOptions contains the optional parameters for the SubscriptionsClient.NewListByInvoiceSectionPager method.

type SubscriptionsClientListByInvoiceSectionResponse

type SubscriptionsClientListByInvoiceSectionResponse struct {
	// A container for a list of resources
	SubscriptionListResult
}

SubscriptionsClientListByInvoiceSectionResponse contains the response from method SubscriptionsClient.NewListByInvoiceSectionPager.

type SubscriptionsClientMergeResponse

type SubscriptionsClientMergeResponse struct {
	// The billing properties of a subscription.
	Subscription
}

SubscriptionsClientMergeResponse contains the response from method SubscriptionsClient.BeginMerge.

type SubscriptionsClientMoveResponse

type SubscriptionsClientMoveResponse struct {
	// The billing properties of a subscription.
	Subscription
}

SubscriptionsClientMoveResponse contains the response from method SubscriptionsClient.BeginMove.

type SubscriptionsClientSplitResponse

type SubscriptionsClientSplitResponse struct {
	// The billing properties of a subscription.
	Subscription
}

SubscriptionsClientSplitResponse contains the response from method SubscriptionsClient.BeginSplit.

type SubscriptionsClientUpdateResponse

type SubscriptionsClientUpdateResponse struct {
	// The billing properties of a subscription.
	Subscription
}

SubscriptionsClientUpdateResponse contains the response from method SubscriptionsClient.BeginUpdate.

type SubscriptionsClientValidateMoveEligibilityOptions

type SubscriptionsClientValidateMoveEligibilityOptions struct {
}

SubscriptionsClientValidateMoveEligibilityOptions contains the optional parameters for the SubscriptionsClient.ValidateMoveEligibility method.

type SubscriptionsClientValidateMoveEligibilityResponse

type SubscriptionsClientValidateMoveEligibilityResponse struct {
	// Result of the transfer eligibility validation.
	MoveBillingSubscriptionEligibilityResult
}

SubscriptionsClientValidateMoveEligibilityResponse contains the response from method SubscriptionsClient.ValidateMoveEligibility.

type SupportLevel

type SupportLevel string

SupportLevel - The support level offer associated with an enrollment.

const (
	SupportLevelDeveloper SupportLevel = "Developer"
	SupportLevelOther     SupportLevel = "Other"
	SupportLevelProDirect SupportLevel = "Pro-Direct"
	SupportLevelStandard  SupportLevel = "Standard"
)

func PossibleSupportLevelValues

func PossibleSupportLevelValues() []SupportLevel

PossibleSupportLevelValues returns the possible values for the SupportLevel const type.

type SupportedAccountType

type SupportedAccountType string

SupportedAccountType - The supported account types.

const (
	SupportedAccountTypeEnterprise SupportedAccountType = "Enterprise"
	SupportedAccountTypeIndividual SupportedAccountType = "Individual"
	SupportedAccountTypeNone       SupportedAccountType = "None"
	SupportedAccountTypePartner    SupportedAccountType = "Partner"
)

func PossibleSupportedAccountTypeValues

func PossibleSupportedAccountTypeValues() []SupportedAccountType

PossibleSupportedAccountTypeValues returns the possible values for the SupportedAccountType const type.

type SystemData

type SystemData struct {
	// The timestamp of resource creation (UTC).
	CreatedAt *time.Time

	// The identity that created the resource.
	CreatedBy *string

	// The type of identity that created the resource.
	CreatedByType *CreatedByType

	// The timestamp of resource last modification (UTC)
	LastModifiedAt *time.Time

	// The identity that last modified the resource.
	LastModifiedBy *string

	// The type of identity that last modified the resource.
	LastModifiedByType *CreatedByType
}

SystemData - Metadata pertaining to creation and last modification of the resource.

func (SystemData) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SystemData.

func (*SystemData) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SystemData.

type SystemOverrides

type SystemOverrides struct {
	// READ-ONLY; The policy override for the subscription indicates whether the self-serve cancellation or seat reduction is
	// allowed.
	Cancellation *Cancellation

	// READ-ONLY; The end date in UTC time by when the self-serve cancellation ends.
	CancellationAllowedEndDate *time.Time
}

SystemOverrides - System imposed policies that regulate behavior of the subscription.

func (SystemOverrides) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type SystemOverrides.

func (*SystemOverrides) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type SystemOverrides.

type TaxIdentifier

type TaxIdentifier struct {
	// The country of the tax identifier.
	Country *string

	// The id of the tax identifier.
	ID *string

	// The scope of the tax identifier.
	Scope *string

	// The status of the tax identifier.
	Status *TaxIdentifierStatus

	// The type of the tax identifier.
	Type *TaxIdentifierType
}

TaxIdentifier - A tax identifier for the billing account.

func (TaxIdentifier) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TaxIdentifier.

func (*TaxIdentifier) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TaxIdentifier.

type TaxIdentifierStatus

type TaxIdentifierStatus string

TaxIdentifierStatus - The status of the tax identifier.

const (
	TaxIdentifierStatusInvalid TaxIdentifierStatus = "Invalid"
	TaxIdentifierStatusOther   TaxIdentifierStatus = "Other"
	TaxIdentifierStatusValid   TaxIdentifierStatus = "Valid"
)

func PossibleTaxIdentifierStatusValues

func PossibleTaxIdentifierStatusValues() []TaxIdentifierStatus

PossibleTaxIdentifierStatusValues returns the possible values for the TaxIdentifierStatus const type.

type TaxIdentifierType

type TaxIdentifierType string

TaxIdentifierType - The type of the tax identifier.

const (
	TaxIdentifierTypeBrazilCcmID                  TaxIdentifierType = "BrazilCcmId"
	TaxIdentifierTypeBrazilCnpjID                 TaxIdentifierType = "BrazilCnpjId"
	TaxIdentifierTypeBrazilCpfID                  TaxIdentifierType = "BrazilCpfId"
	TaxIdentifierTypeCanadianFederalExempt        TaxIdentifierType = "CanadianFederalExempt"
	TaxIdentifierTypeCanadianProvinceExempt       TaxIdentifierType = "CanadianProvinceExempt"
	TaxIdentifierTypeExternalTaxation             TaxIdentifierType = "ExternalTaxation"
	TaxIdentifierTypeIndiaFederalServiceTaxID     TaxIdentifierType = "IndiaFederalServiceTaxId"
	TaxIdentifierTypeIndiaFederalTanID            TaxIdentifierType = "IndiaFederalTanId"
	TaxIdentifierTypeIndiaPanID                   TaxIdentifierType = "IndiaPanId"
	TaxIdentifierTypeIndiaStateCstID              TaxIdentifierType = "IndiaStateCstId"
	TaxIdentifierTypeIndiaStateGstINID            TaxIdentifierType = "IndiaStateGstINId"
	TaxIdentifierTypeIndiaStateVatID              TaxIdentifierType = "IndiaStateVatId"
	TaxIdentifierTypeIntlExempt                   TaxIdentifierType = "IntlExempt"
	TaxIdentifierTypeLoveCode                     TaxIdentifierType = "LoveCode"
	TaxIdentifierTypeMobileBarCode                TaxIdentifierType = "MobileBarCode"
	TaxIdentifierTypeNationalIdentificationNumber TaxIdentifierType = "NationalIdentificationNumber"
	TaxIdentifierTypeOther                        TaxIdentifierType = "Other"
	TaxIdentifierTypePublicSectorID               TaxIdentifierType = "PublicSectorId"
	TaxIdentifierTypeUSExempt                     TaxIdentifierType = "USExempt"
	TaxIdentifierTypeVatID                        TaxIdentifierType = "VatId"
)

func PossibleTaxIdentifierTypeValues

func PossibleTaxIdentifierTypeValues() []TaxIdentifierType

PossibleTaxIdentifierTypeValues returns the possible values for the TaxIdentifierType const type.

type Transaction

type Transaction struct {
	// A transaction.
	Properties *TransactionProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

Transaction - A transaction.

func (Transaction) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type Transaction.

func (*Transaction) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type Transaction.

type TransactionKind

type TransactionKind string

TransactionKind - Type of the transaction, billed or unbilled.

const (
	TransactionKindAll         TransactionKind = "All"
	TransactionKindOther       TransactionKind = "Other"
	TransactionKindReservation TransactionKind = "Reservation"
)

func PossibleTransactionKindValues

func PossibleTransactionKindValues() []TransactionKind

PossibleTransactionKindValues returns the possible values for the TransactionKind const type.

type TransactionListResult

type TransactionListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of resources.
	Value []*Transaction
}

TransactionListResult - A container for a list of resources

func (TransactionListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransactionListResult.

func (*TransactionListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransactionListResult.

type TransactionProperties

type TransactionProperties struct {
	// The amount of any Azure credits automatically applied to this transaction.
	AzureCreditApplied *TransactionPropertiesAzureCreditApplied

	// Details of the Azure plan.
	AzurePlan *string

	// The ISO 4217 code for the currency in which this transaction is billed.
	BillingCurrency *string

	// The name of the billing profile.
	BillingProfileDisplayName any

	// The fully qualified ID that uniquely identifies a billing profile.
	BillingProfileID *string

	// The amount of Microsoft Azure Consumption Commitment(MACC) decrement through the transaction.
	ConsumptionCommitmentDecremented *TransactionPropertiesConsumptionCommitmentDecremented

	// The credit type of the transaction. Applies only to credited transactions.
	CreditType *CreditType

	// The name of the customer.
	CustomerDisplayName *string

	// The fully qualified ID that uniquely identifies a customer.
	CustomerID *string

	// The date of transaction.
	Date *time.Time

	// The percentage discount, if any, applied to this transaction.
	Discount *float32

	// The price of the product after applying any discounts.
	EffectivePrice *TransactionPropertiesEffectivePrice

	// The exchange rate used to convert charged amount to billing currency, if applicable.
	ExchangeRate *float32

	// Invoice name on which the transaction was billed or 'Pending' if the transaction is not billed.
	Invoice *string

	// The fully qualified ID of the invoice on which the transaction was billed. This field is only applicable for transactions
	// which are billed.
	InvoiceID *string

	// The name of the invoice section.
	InvoiceSectionDisplayName *string

	// The fully qualified ID that uniquely identifies an invoice section.
	InvoiceSectionID *string

	// Whether or not the transaction is third party.
	IsThirdParty *bool

	// Type of the transaction, billed or unbilled.
	Kind *TransactionKind

	// The retail price of the product.
	MarketPrice *TransactionPropertiesMarketPrice

	// The part number of the product for which the transaction took place. The field is only applicable for Enterprise Agreement
	// invoices.
	PartNumber *string

	// The ISO 4217 code for the currency in which the product is priced.
	PricingCurrency *string

	// The description of the product for which the transaction took place.
	ProductDescription *string

	// The family of the product for which the transaction took place.
	ProductFamily *string

	// The type of the product for which the transaction took place.
	ProductType *string

	// The ID of the product type for which the transaction took place.
	ProductTypeID *string

	// The quantity purchased in the transaction.
	Quantity *int32

	// There reason code for the transaction.
	ReasonCode *string

	// The refund details of a transaction.
	RefundTransactionDetails *TransactionPropertiesRefundTransactionDetails

	// The end date of the product term, or the end date of the month in which usage ended.
	ServicePeriodEndDate *time.Time

	// The date of the purchase of the product, or the start date of the month in which usage started.
	ServicePeriodStartDate *time.Time

	// Identifies the type of tax calculation used for the invoice. The field is applicable only to invoices with special tax
	// calculation logic.
	SpecialTaxationType *SpecialTaxationType

	// The pre-tax charged amount for the transaction.
	SubTotal *TransactionPropertiesSubTotal

	// The tax amount applied to the transaction.
	Tax *TransactionPropertiesTax

	// The charge associated with the transaction.
	TransactionAmount *TransactionPropertiesTransactionAmount

	// The type of transaction.
	TransactionType *string

	// The unit of measure used to bill for the product. For example, compute services are billed per hour.
	UnitOfMeasure *string

	// The description for the unit of measure for a given product.
	UnitType *string

	// The number of units used for a given product.
	Units *float32
}

TransactionProperties - A transaction.

func (TransactionProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransactionProperties.

func (*TransactionProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransactionProperties.

type TransactionPropertiesAzureCreditApplied

type TransactionPropertiesAzureCreditApplied struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

TransactionPropertiesAzureCreditApplied - The amount of any Azure credits automatically applied to this transaction.

func (TransactionPropertiesAzureCreditApplied) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransactionPropertiesAzureCreditApplied.

func (*TransactionPropertiesAzureCreditApplied) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransactionPropertiesAzureCreditApplied.

type TransactionPropertiesConsumptionCommitmentDecremented

type TransactionPropertiesConsumptionCommitmentDecremented struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

TransactionPropertiesConsumptionCommitmentDecremented - The amount of Microsoft Azure Consumption Commitment(MACC) decrement through the transaction.

func (TransactionPropertiesConsumptionCommitmentDecremented) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type TransactionPropertiesConsumptionCommitmentDecremented.

func (*TransactionPropertiesConsumptionCommitmentDecremented) UnmarshalJSON

UnmarshalJSON implements the json.Unmarshaller interface for type TransactionPropertiesConsumptionCommitmentDecremented.

type TransactionPropertiesEffectivePrice

type TransactionPropertiesEffectivePrice struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

TransactionPropertiesEffectivePrice - The price of the product after applying any discounts.

func (TransactionPropertiesEffectivePrice) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransactionPropertiesEffectivePrice.

func (*TransactionPropertiesEffectivePrice) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransactionPropertiesEffectivePrice.

type TransactionPropertiesMarketPrice

type TransactionPropertiesMarketPrice struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

TransactionPropertiesMarketPrice - The retail price of the product.

func (TransactionPropertiesMarketPrice) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransactionPropertiesMarketPrice.

func (*TransactionPropertiesMarketPrice) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransactionPropertiesMarketPrice.

type TransactionPropertiesRefundTransactionDetails

type TransactionPropertiesRefundTransactionDetails struct {
	// The amount refunded.
	AmountRefunded *RefundTransactionDetailsAmountRefunded

	// The amount of refund requested.
	AmountRequested *RefundTransactionDetailsAmountRequested

	// The ID of refund operation.
	RefundOperationID *string
}

TransactionPropertiesRefundTransactionDetails - The refund details of a transaction.

func (TransactionPropertiesRefundTransactionDetails) MarshalJSON

MarshalJSON implements the json.Marshaller interface for type TransactionPropertiesRefundTransactionDetails.

func (*TransactionPropertiesRefundTransactionDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransactionPropertiesRefundTransactionDetails.

type TransactionPropertiesSubTotal

type TransactionPropertiesSubTotal struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

TransactionPropertiesSubTotal - The pre-tax charged amount for the transaction.

func (TransactionPropertiesSubTotal) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransactionPropertiesSubTotal.

func (*TransactionPropertiesSubTotal) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransactionPropertiesSubTotal.

type TransactionPropertiesTax

type TransactionPropertiesTax struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

TransactionPropertiesTax - The tax amount applied to the transaction.

func (TransactionPropertiesTax) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransactionPropertiesTax.

func (*TransactionPropertiesTax) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransactionPropertiesTax.

type TransactionPropertiesTransactionAmount

type TransactionPropertiesTransactionAmount struct {
	// READ-ONLY; The currency for the amount value.
	Currency *string

	// READ-ONLY; The amount value. For example, if the currency is USD, then a value of 600 would be $600.00.
	Value *float32
}

TransactionPropertiesTransactionAmount - The charge associated with the transaction.

func (TransactionPropertiesTransactionAmount) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransactionPropertiesTransactionAmount.

func (*TransactionPropertiesTransactionAmount) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransactionPropertiesTransactionAmount.

type TransactionSummary

type TransactionSummary struct {
	// READ-ONLY; The total amount of any Azure credits applied.
	AzureCreditApplied *float32

	// READ-ONLY; The ISO 4217 code for the currency in which the transactions are billed.
	BillingCurrency *string

	// READ-ONLY; The total Microsoft Azure Consumption Commitment (MACC) decrement through the invoice.
	ConsumptionCommitmentDecremented *float32

	// READ-ONLY; The total pre-tax charged amount.
	SubTotal *float32

	// READ-ONLY; The total tax amount applied.
	Tax *float32

	// READ-ONLY; The total charges.
	Total *float32
}

TransactionSummary - A transaction summary.

func (TransactionSummary) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransactionSummary.

func (*TransactionSummary) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransactionSummary.

type TransactionType

type TransactionType string
const (
	TransactionTypeBilled   TransactionType = "Billed"
	TransactionTypeOther    TransactionType = "Other"
	TransactionTypeUnbilled TransactionType = "Unbilled"
)

func PossibleTransactionTypeValues

func PossibleTransactionTypeValues() []TransactionType

PossibleTransactionTypeValues returns the possible values for the TransactionType const type.

type TransactionsClient

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

TransactionsClient contains the methods for the Transactions group. Don't use this type directly, use NewTransactionsClient() instead.

func NewTransactionsClient

func NewTransactionsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*TransactionsClient, error)

NewTransactionsClient creates a new instance of TransactionsClient with the specified values.

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

func (*TransactionsClient) BeginTransactionsDownloadByInvoice

BeginTransactionsDownloadByInvoice - Gets a URL to download the transactions document for an invoice. The operation is supported for billing accounts with agreement type Enterprise Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • invoiceName - The ID that uniquely identifies an invoice.
  • options - TransactionsClientBeginTransactionsDownloadByInvoiceOptions contains the optional parameters for the TransactionsClient.BeginTransactionsDownloadByInvoice method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/transactionsDownloadByInvoice.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	poller, err := clientFactory.NewTransactionsClient().BeginTransactionsDownloadByInvoice(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "G123456789", nil)
	if err != nil {
		log.Fatalf("failed to finish the request: %v", err)
	}
	res, err := poller.PollUntilDone(ctx, nil)
	if err != nil {
		log.Fatalf("failed to pull the result: %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.DocumentDownloadResult = armbilling.DocumentDownloadResult{
	// 	ExpiryTime: to.Ptr("2023-02-16T17:32:28Z"),
	// 	URL: to.Ptr("https://myaccount.blob.core.windows.net/invoices/1383724_invoice.csv?sv=2019-02-02&sr=b&sp=r"),
	// }
}

func (*TransactionsClient) GetTransactionSummaryByInvoice

GetTransactionSummaryByInvoice - Gets the transaction summary for an invoice. Transactions include purchases, refunds and Azure usage charges. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • invoiceName - The ID that uniquely identifies an invoice.
  • options - TransactionsClientGetTransactionSummaryByInvoiceOptions contains the optional parameters for the TransactionsClient.GetTransactionSummaryByInvoice method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/transactionSummaryGetByInvoice.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewTransactionsClient().GetTransactionSummaryByInvoice(ctx, "00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "G123456789", &armbilling.TransactionsClientGetTransactionSummaryByInvoiceOptions{Filter: nil,
		Search: 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.TransactionSummary = armbilling.TransactionSummary{
	// 	AzureCreditApplied: to.Ptr[float32](100),
	// 	BillingCurrency: to.Ptr("USD"),
	// 	ConsumptionCommitmentDecremented: to.Ptr[float32](1000),
	// 	SubTotal: to.Ptr[float32](1000),
	// 	Tax: to.Ptr[float32](500),
	// 	Total: to.Ptr[float32](5400),
	// }
}

func (*TransactionsClient) NewListByBillingProfilePager

func (client *TransactionsClient) NewListByBillingProfilePager(billingAccountName string, billingProfileName string, periodStartDate time.Time, periodEndDate time.Time, typeParam TransactionType, options *TransactionsClientListByBillingProfileOptions) *runtime.Pager[TransactionsClientListByBillingProfileResponse]

NewListByBillingProfilePager - Lists the billed or unbilled transactions by billing profile name for given start and end date. Transactions include purchases, refunds and Azure usage charges. Unbilled transactions are listed under pending invoice Id and do not include tax. Tax is added to the amount once an invoice is generated.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • periodStartDate - The start date to fetch the transactions. The date should be specified in MM-DD-YYYY format.
  • periodEndDate - The end date to fetch the transactions. The date should be specified in MM-DD-YYYY format.
  • typeParam - The type of transaction.
  • options - TransactionsClientListByBillingProfileOptions contains the optional parameters for the TransactionsClient.NewListByBillingProfilePager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/transactionsListByBillingProfile.json

package main

import (
	"context"
	"log"

	"time"

	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewTransactionsClient().NewListByBillingProfilePager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", func() time.Time { t, _ := time.Parse("2006-01-02", "2024-04-01"); return t }(), func() time.Time { t, _ := time.Parse("2006-01-02", "2023-05-30"); return t }(), armbilling.TransactionTypeBilled, &armbilling.TransactionsClientListByBillingProfileOptions{Filter: to.Ptr("properties/date gt '2020-10-01'"),
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  to.Ptr("storage"),
	})
	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.TransactionListResult = armbilling.TransactionListResult{
		// 	Value: []*armbilling.Transaction{
		// 		{
		// 			Name: to.Ptr("41000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/transactions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/BillingProfiles/xxxx-xxxx-xxx-xxx/transactions/41000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.TransactionProperties{
		// 				AzureCreditApplied: &armbilling.TransactionPropertiesAzureCreditApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](2000),
		// 				},
		// 				BillingCurrency: to.Ptr("USD"),
		// 				BillingProfileDisplayName: "Contoso operations billing",
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				ConsumptionCommitmentDecremented: &armbilling.TransactionPropertiesConsumptionCommitmentDecremented{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](100),
		// 				},
		// 				Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-05-01T00:00:00.000Z"); return t}()),
		// 				Discount: to.Ptr[float32](0.1),
		// 				EffectivePrice: &armbilling.TransactionPropertiesEffectivePrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](10),
		// 				},
		// 				ExchangeRate: to.Ptr[float32](1),
		// 				Invoice: to.Ptr("G123456789"),
		// 				InvoiceID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/G123456789"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				MarketPrice: &armbilling.TransactionPropertiesMarketPrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](20),
		// 				},
		// 				PartNumber: to.Ptr("0001"),
		// 				PricingCurrency: to.Ptr("USD"),
		// 				ProductDescription: to.Ptr("Standard D1, US West 3"),
		// 				ProductFamily: to.Ptr("Storage"),
		// 				ProductType: to.Ptr("VM Instance"),
		// 				ProductTypeID: to.Ptr("A12345"),
		// 				Quantity: to.Ptr[int32](1),
		// 				ServicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-09-30T00:00:00.000Z"); return t}()),
		// 				ServicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-05-01T00:00:00.000Z"); return t}()),
		// 				SubTotal: &armbilling.TransactionPropertiesSubTotal{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](4500),
		// 				},
		// 				Tax: &armbilling.TransactionPropertiesTax{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](500),
		// 				},
		// 				TransactionAmount: &armbilling.TransactionPropertiesTransactionAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](5000),
		// 				},
		// 				TransactionType: to.Ptr("Purchase"),
		// 				UnitOfMeasure: to.Ptr("1 Minute"),
		// 				UnitType: to.Ptr("1 Runtime Minute"),
		// 				Units: to.Ptr[float32](11.25),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("51000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/transactions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/BillingProfiles/xxxx-xxxx-xxx-xxx/transactions/51000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.TransactionProperties{
		// 				AzureCreditApplied: &armbilling.TransactionPropertiesAzureCreditApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](20),
		// 				},
		// 				BillingCurrency: to.Ptr("USD"),
		// 				BillingProfileDisplayName: "Contoso operations billing",
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				ConsumptionCommitmentDecremented: &armbilling.TransactionPropertiesConsumptionCommitmentDecremented{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](50),
		// 				},
		// 				Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T00:00:00.000Z"); return t}()),
		// 				Discount: to.Ptr[float32](0.1),
		// 				EffectivePrice: &armbilling.TransactionPropertiesEffectivePrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](10),
		// 				},
		// 				ExchangeRate: to.Ptr[float32](1),
		// 				Invoice: to.Ptr("pending"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				MarketPrice: &armbilling.TransactionPropertiesMarketPrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](20),
		// 				},
		// 				PartNumber: to.Ptr("0002"),
		// 				PricingCurrency: to.Ptr("USD"),
		// 				ProductDescription: to.Ptr("Standard Support"),
		// 				ProductFamily: to.Ptr("Storage"),
		// 				ProductType: to.Ptr("VM Instance"),
		// 				ProductTypeID: to.Ptr("A12345"),
		// 				Quantity: to.Ptr[int32](1),
		// 				ServicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-09-30T00:00:00.000Z"); return t}()),
		// 				ServicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-05-01T00:00:00.000Z"); return t}()),
		// 				SubTotal: &armbilling.TransactionPropertiesSubTotal{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](45),
		// 				},
		// 				Tax: &armbilling.TransactionPropertiesTax{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](5),
		// 				},
		// 				TransactionAmount: &armbilling.TransactionPropertiesTransactionAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](50),
		// 				},
		// 				TransactionType: to.Ptr("Cancel"),
		// 				UnitOfMeasure: to.Ptr("1 Minute"),
		// 				UnitType: to.Ptr("1 Runtime Minute"),
		// 				Units: to.Ptr[float32](1.25),
		// 			},
		// 	}},
		// }
	}
}

func (*TransactionsClient) NewListByCustomerPager

func (client *TransactionsClient) NewListByCustomerPager(billingAccountName string, billingProfileName string, customerName string, periodStartDate time.Time, periodEndDate time.Time, typeParam TransactionType, options *TransactionsClientListByCustomerOptions) *runtime.Pager[TransactionsClientListByCustomerResponse]

NewListByCustomerPager - Lists the billed or unbilled transactions by customer id for given start date and end date. Transactions include purchases, refunds and Azure usage charges. Unbilled transactions are listed under pending invoice Id and do not include tax. Tax is added to the amount once an invoice is generated.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • customerName - The ID that uniquely identifies a customer.
  • periodStartDate - The start date to fetch the transactions. The date should be specified in MM-DD-YYYY format.
  • periodEndDate - The end date to fetch the transactions. The date should be specified in MM-DD-YYYY format.
  • typeParam - The type of transaction.
  • options - TransactionsClientListByCustomerOptions contains the optional parameters for the TransactionsClient.NewListByCustomerPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/transactionsListByCustomer.json

package main

import (
	"context"
	"log"

	"time"

	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewTransactionsClient().NewListByCustomerPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "22000000-0000-0000-0000-000000000000", func() time.Time { t, _ := time.Parse("2006-01-02", "2024-04-01"); return t }(), func() time.Time { t, _ := time.Parse("2006-01-02", "2023-05-30"); return t }(), armbilling.TransactionTypeBilled, &armbilling.TransactionsClientListByCustomerOptions{Filter: to.Ptr("properties/date gt '2020-10-01'"),
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  to.Ptr("storage"),
	})
	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.TransactionListResult = armbilling.TransactionListResult{
		// 	Value: []*armbilling.Transaction{
		// 		{
		// 			Name: to.Ptr("41000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/transactions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/BillingProfiles/xxxx-xxxx-xxx-xxx/transactions/41000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.TransactionProperties{
		// 				AzureCreditApplied: &armbilling.TransactionPropertiesAzureCreditApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](2000),
		// 				},
		// 				BillingCurrency: to.Ptr("USD"),
		// 				BillingProfileDisplayName: "Contoso operations billing",
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				ConsumptionCommitmentDecremented: &armbilling.TransactionPropertiesConsumptionCommitmentDecremented{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](100),
		// 				},
		// 				CustomerDisplayName: to.Ptr("Contoso operations customer"),
		// 				CustomerID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/22000000-0000-0000-0000-000000000000"),
		// 				Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-05-01T00:00:00.000Z"); return t}()),
		// 				Discount: to.Ptr[float32](0.1),
		// 				EffectivePrice: &armbilling.TransactionPropertiesEffectivePrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](10),
		// 				},
		// 				ExchangeRate: to.Ptr[float32](1),
		// 				Invoice: to.Ptr("G123456789"),
		// 				InvoiceID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/G123456789"),
		// 				MarketPrice: &armbilling.TransactionPropertiesMarketPrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](20),
		// 				},
		// 				PartNumber: to.Ptr("0001"),
		// 				PricingCurrency: to.Ptr("USD"),
		// 				ProductDescription: to.Ptr("Standard D1, US West 3"),
		// 				ProductFamily: to.Ptr("Storage"),
		// 				ProductType: to.Ptr("VM Instance"),
		// 				ProductTypeID: to.Ptr("A12345"),
		// 				Quantity: to.Ptr[int32](1),
		// 				ServicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-09-30T00:00:00.000Z"); return t}()),
		// 				ServicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-05-01T00:00:00.000Z"); return t}()),
		// 				SubTotal: &armbilling.TransactionPropertiesSubTotal{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](4500),
		// 				},
		// 				Tax: &armbilling.TransactionPropertiesTax{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](500),
		// 				},
		// 				TransactionAmount: &armbilling.TransactionPropertiesTransactionAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](5000),
		// 				},
		// 				TransactionType: to.Ptr("Purchase"),
		// 				UnitOfMeasure: to.Ptr("1 Minute"),
		// 				UnitType: to.Ptr("1 Runtime Minute"),
		// 				Units: to.Ptr[float32](11.25),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("51000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/transactions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/BillingProfiles/xxxx-xxxx-xxx-xxx/transactions/51000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.TransactionProperties{
		// 				AzureCreditApplied: &armbilling.TransactionPropertiesAzureCreditApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](20),
		// 				},
		// 				BillingCurrency: to.Ptr("USD"),
		// 				BillingProfileDisplayName: "Contoso operations billing",
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				ConsumptionCommitmentDecremented: &armbilling.TransactionPropertiesConsumptionCommitmentDecremented{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](50),
		// 				},
		// 				CustomerDisplayName: to.Ptr("Contoso operations customer"),
		// 				CustomerID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/customers/22000000-0000-0000-0000-000000000000"),
		// 				Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T00:00:00.000Z"); return t}()),
		// 				Discount: to.Ptr[float32](0.1),
		// 				EffectivePrice: &armbilling.TransactionPropertiesEffectivePrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](10),
		// 				},
		// 				ExchangeRate: to.Ptr[float32](1),
		// 				Invoice: to.Ptr("pending"),
		// 				MarketPrice: &armbilling.TransactionPropertiesMarketPrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](20),
		// 				},
		// 				PartNumber: to.Ptr("0002"),
		// 				PricingCurrency: to.Ptr("USD"),
		// 				ProductDescription: to.Ptr("Standard Support"),
		// 				ProductFamily: to.Ptr("Storage"),
		// 				ProductType: to.Ptr("VM Instance"),
		// 				ProductTypeID: to.Ptr("A12345"),
		// 				Quantity: to.Ptr[int32](1),
		// 				ServicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-09-30T00:00:00.000Z"); return t}()),
		// 				ServicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-05-01T00:00:00.000Z"); return t}()),
		// 				SubTotal: &armbilling.TransactionPropertiesSubTotal{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](45),
		// 				},
		// 				Tax: &armbilling.TransactionPropertiesTax{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](5),
		// 				},
		// 				TransactionAmount: &armbilling.TransactionPropertiesTransactionAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](50),
		// 				},
		// 				TransactionType: to.Ptr("Cancel"),
		// 				UnitOfMeasure: to.Ptr("1 Minute"),
		// 				UnitType: to.Ptr("1 Runtime Minute"),
		// 				Units: to.Ptr[float32](1.25),
		// 			},
		// 	}},
		// }
	}
}

func (*TransactionsClient) NewListByInvoicePager

func (client *TransactionsClient) NewListByInvoicePager(billingAccountName string, invoiceName string, options *TransactionsClientListByInvoiceOptions) *runtime.Pager[TransactionsClientListByInvoiceResponse]

NewListByInvoicePager - Lists the transactions for an invoice. Transactions include purchases, refunds and Azure usage charges.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • invoiceName - The ID that uniquely identifies an invoice.
  • options - TransactionsClientListByInvoiceOptions contains the optional parameters for the TransactionsClient.NewListByInvoicePager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/transactionsListByInvoice.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewTransactionsClient().NewListByInvoicePager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "G123456789", &armbilling.TransactionsClientListByInvoiceOptions{Filter: nil,
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  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.TransactionListResult = armbilling.TransactionListResult{
		// 	Value: []*armbilling.Transaction{
		// 		{
		// 			Name: to.Ptr("41000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/transactions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/BillingProfiles/xxxx-xxxx-xxx-xxx/transactions/41000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.TransactionProperties{
		// 				AzureCreditApplied: &armbilling.TransactionPropertiesAzureCreditApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](2000),
		// 				},
		// 				BillingCurrency: to.Ptr("USD"),
		// 				BillingProfileDisplayName: "Contoso operations billing",
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				ConsumptionCommitmentDecremented: &armbilling.TransactionPropertiesConsumptionCommitmentDecremented{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](100),
		// 				},
		// 				Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-05-01T00:00:00.000Z"); return t}()),
		// 				Discount: to.Ptr[float32](0.1),
		// 				EffectivePrice: &armbilling.TransactionPropertiesEffectivePrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](10),
		// 				},
		// 				ExchangeRate: to.Ptr[float32](1),
		// 				Invoice: to.Ptr("G123456789"),
		// 				InvoiceID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/G123456789"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				MarketPrice: &armbilling.TransactionPropertiesMarketPrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](20),
		// 				},
		// 				PartNumber: to.Ptr("0001"),
		// 				PricingCurrency: to.Ptr("USD"),
		// 				ProductDescription: to.Ptr("Standard D1, US West 3"),
		// 				ProductFamily: to.Ptr("Storage"),
		// 				ProductType: to.Ptr("VM Instance"),
		// 				ProductTypeID: to.Ptr("A12345"),
		// 				Quantity: to.Ptr[int32](1),
		// 				ServicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-09-30T00:00:00.000Z"); return t}()),
		// 				ServicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-05-01T00:00:00.000Z"); return t}()),
		// 				SubTotal: &armbilling.TransactionPropertiesSubTotal{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](4500),
		// 				},
		// 				Tax: &armbilling.TransactionPropertiesTax{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](500),
		// 				},
		// 				TransactionAmount: &armbilling.TransactionPropertiesTransactionAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](5000),
		// 				},
		// 				TransactionType: to.Ptr("Purchase"),
		// 				UnitOfMeasure: to.Ptr("1 Minute"),
		// 				UnitType: to.Ptr("1 Runtime Minute"),
		// 				Units: to.Ptr[float32](11.25),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("51000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/transactions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/BillingProfiles/xxxx-xxxx-xxx-xxx/transactions/51000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.TransactionProperties{
		// 				AzureCreditApplied: &armbilling.TransactionPropertiesAzureCreditApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](20),
		// 				},
		// 				BillingCurrency: to.Ptr("USD"),
		// 				BillingProfileDisplayName: "Contoso operations billing",
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				ConsumptionCommitmentDecremented: &armbilling.TransactionPropertiesConsumptionCommitmentDecremented{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](50),
		// 				},
		// 				Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T00:00:00.000Z"); return t}()),
		// 				Discount: to.Ptr[float32](0.1),
		// 				EffectivePrice: &armbilling.TransactionPropertiesEffectivePrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](10),
		// 				},
		// 				ExchangeRate: to.Ptr[float32](1),
		// 				Invoice: to.Ptr("pending"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				MarketPrice: &armbilling.TransactionPropertiesMarketPrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](20),
		// 				},
		// 				PartNumber: to.Ptr("0002"),
		// 				PricingCurrency: to.Ptr("USD"),
		// 				ProductDescription: to.Ptr("Standard Support"),
		// 				ProductFamily: to.Ptr("Storage"),
		// 				ProductType: to.Ptr("VM Instance"),
		// 				ProductTypeID: to.Ptr("A12345"),
		// 				Quantity: to.Ptr[int32](1),
		// 				ServicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-09-30T00:00:00.000Z"); return t}()),
		// 				ServicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-05-01T00:00:00.000Z"); return t}()),
		// 				SubTotal: &armbilling.TransactionPropertiesSubTotal{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](45),
		// 				},
		// 				Tax: &armbilling.TransactionPropertiesTax{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](5),
		// 				},
		// 				TransactionAmount: &armbilling.TransactionPropertiesTransactionAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](50),
		// 				},
		// 				TransactionType: to.Ptr("Cancel"),
		// 				UnitOfMeasure: to.Ptr("1 Minute"),
		// 				UnitType: to.Ptr("1 Runtime Minute"),
		// 				Units: to.Ptr[float32](1.25),
		// 			},
		// 	}},
		// }
	}
}

func (*TransactionsClient) NewListByInvoiceSectionPager

func (client *TransactionsClient) NewListByInvoiceSectionPager(billingAccountName string, billingProfileName string, invoiceSectionName string, periodStartDate time.Time, periodEndDate time.Time, typeParam TransactionType, options *TransactionsClientListByInvoiceSectionOptions) *runtime.Pager[TransactionsClientListByInvoiceSectionResponse]

NewListByInvoiceSectionPager - Lists the billed or unbilled transactions by invoice section name for given start date and end date. Transactions include purchases, refunds and Azure usage charges. Unbilled transactions are listed under pending invoice Id and do not include tax. Tax is added to the amount once an invoice is generated.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • periodStartDate - The start date to fetch the transactions. The date should be specified in MM-DD-YYYY format.
  • periodEndDate - The end date to fetch the transactions. The date should be specified in MM-DD-YYYY format.
  • typeParam - The type of transaction.
  • options - TransactionsClientListByInvoiceSectionOptions contains the optional parameters for the TransactionsClient.NewListByInvoiceSectionPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/transactionsListByInvoiceSection.json

package main

import (
	"context"
	"log"

	"time"

	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewTransactionsClient().NewListByInvoiceSectionPager("00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "22000000-0000-0000-0000-000000000000", func() time.Time { t, _ := time.Parse("2006-01-02", "2024-04-01"); return t }(), func() time.Time { t, _ := time.Parse("2006-01-02", "2023-05-30"); return t }(), armbilling.TransactionTypeBilled, &armbilling.TransactionsClientListByInvoiceSectionOptions{Filter: to.Ptr("properties/date gt '2020-10-01'"),
		OrderBy: nil,
		Top:     nil,
		Skip:    nil,
		Count:   nil,
		Search:  to.Ptr("storage"),
	})
	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.TransactionListResult = armbilling.TransactionListResult{
		// 	Value: []*armbilling.Transaction{
		// 		{
		// 			Name: to.Ptr("41000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/transactions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/BillingProfiles/xxxx-xxxx-xxx-xxx/transactions/41000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.TransactionProperties{
		// 				AzureCreditApplied: &armbilling.TransactionPropertiesAzureCreditApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](2000),
		// 				},
		// 				BillingCurrency: to.Ptr("USD"),
		// 				BillingProfileDisplayName: "Contoso operations billing",
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				ConsumptionCommitmentDecremented: &armbilling.TransactionPropertiesConsumptionCommitmentDecremented{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](100),
		// 				},
		// 				Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-05-01T00:00:00.000Z"); return t}()),
		// 				Discount: to.Ptr[float32](0.1),
		// 				EffectivePrice: &armbilling.TransactionPropertiesEffectivePrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](10),
		// 				},
		// 				ExchangeRate: to.Ptr[float32](1),
		// 				Invoice: to.Ptr("G123456789"),
		// 				InvoiceID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/invoices/G123456789"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				MarketPrice: &armbilling.TransactionPropertiesMarketPrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](20),
		// 				},
		// 				PartNumber: to.Ptr("0001"),
		// 				PricingCurrency: to.Ptr("USD"),
		// 				ProductDescription: to.Ptr("Standard D1, US West 3"),
		// 				ProductFamily: to.Ptr("Storage"),
		// 				ProductType: to.Ptr("VM Instance"),
		// 				ProductTypeID: to.Ptr("A12345"),
		// 				Quantity: to.Ptr[int32](1),
		// 				ServicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-09-30T00:00:00.000Z"); return t}()),
		// 				ServicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-05-01T00:00:00.000Z"); return t}()),
		// 				SubTotal: &armbilling.TransactionPropertiesSubTotal{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](4500),
		// 				},
		// 				Tax: &armbilling.TransactionPropertiesTax{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](500),
		// 				},
		// 				TransactionAmount: &armbilling.TransactionPropertiesTransactionAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](5000),
		// 				},
		// 				TransactionType: to.Ptr("Purchase"),
		// 				UnitOfMeasure: to.Ptr("1 Minute"),
		// 				UnitType: to.Ptr("1 Runtime Minute"),
		// 				Units: to.Ptr[float32](11.25),
		// 			},
		// 		},
		// 		{
		// 			Name: to.Ptr("51000000-0000-0000-0000-000000000000"),
		// 			Type: to.Ptr("Microsoft.Billing/billingAccounts/billingProfiles/transactions"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/BillingProfiles/xxxx-xxxx-xxx-xxx/transactions/51000000-0000-0000-0000-000000000000"),
		// 			Properties: &armbilling.TransactionProperties{
		// 				AzureCreditApplied: &armbilling.TransactionPropertiesAzureCreditApplied{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](20),
		// 				},
		// 				BillingCurrency: to.Ptr("USD"),
		// 				BillingProfileDisplayName: "Contoso operations billing",
		// 				BillingProfileID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx"),
		// 				ConsumptionCommitmentDecremented: &armbilling.TransactionPropertiesConsumptionCommitmentDecremented{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](50),
		// 				},
		// 				Date: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2024-04-01T00:00:00.000Z"); return t}()),
		// 				Discount: to.Ptr[float32](0.1),
		// 				EffectivePrice: &armbilling.TransactionPropertiesEffectivePrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](10),
		// 				},
		// 				ExchangeRate: to.Ptr[float32](1),
		// 				Invoice: to.Ptr("pending"),
		// 				InvoiceSectionDisplayName: to.Ptr("Contoso operations invoiceSection"),
		// 				InvoiceSectionID: to.Ptr("/providers/Microsoft.Billing/billingAccounts/00000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/22000000-0000-0000-0000-000000000000"),
		// 				MarketPrice: &armbilling.TransactionPropertiesMarketPrice{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](20),
		// 				},
		// 				PartNumber: to.Ptr("0002"),
		// 				PricingCurrency: to.Ptr("USD"),
		// 				ProductDescription: to.Ptr("Standard Support"),
		// 				ProductFamily: to.Ptr("Storage"),
		// 				ProductType: to.Ptr("VM Instance"),
		// 				ProductTypeID: to.Ptr("A12345"),
		// 				Quantity: to.Ptr[int32](1),
		// 				ServicePeriodEndDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-09-30T00:00:00.000Z"); return t}()),
		// 				ServicePeriodStartDate: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-05-01T00:00:00.000Z"); return t}()),
		// 				SubTotal: &armbilling.TransactionPropertiesSubTotal{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](45),
		// 				},
		// 				Tax: &armbilling.TransactionPropertiesTax{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](5),
		// 				},
		// 				TransactionAmount: &armbilling.TransactionPropertiesTransactionAmount{
		// 					Currency: to.Ptr("USD"),
		// 					Value: to.Ptr[float32](50),
		// 				},
		// 				TransactionType: to.Ptr("Cancel"),
		// 				UnitOfMeasure: to.Ptr("1 Minute"),
		// 				UnitType: to.Ptr("1 Runtime Minute"),
		// 				Units: to.Ptr[float32](1.25),
		// 			},
		// 	}},
		// }
	}
}

type TransactionsClientBeginTransactionsDownloadByInvoiceOptions

type TransactionsClientBeginTransactionsDownloadByInvoiceOptions struct {
	// Resumes the LRO from the provided token.
	ResumeToken string
}

TransactionsClientBeginTransactionsDownloadByInvoiceOptions contains the optional parameters for the TransactionsClient.BeginTransactionsDownloadByInvoice method.

type TransactionsClientGetTransactionSummaryByInvoiceOptions

type TransactionsClientGetTransactionSummaryByInvoiceOptions struct {
	// The filter query option allows clients to filter the line items that are aggregated to create the line item summary.
	Filter *string

	// The search query option allows clients to filter the line items that are aggregated to create the line item summary.
	Search *string
}

TransactionsClientGetTransactionSummaryByInvoiceOptions contains the optional parameters for the TransactionsClient.GetTransactionSummaryByInvoice method.

type TransactionsClientGetTransactionSummaryByInvoiceResponse

type TransactionsClientGetTransactionSummaryByInvoiceResponse struct {
	// A transaction summary.
	TransactionSummary
}

TransactionsClientGetTransactionSummaryByInvoiceResponse contains the response from method TransactionsClient.GetTransactionSummaryByInvoice.

type TransactionsClientListByBillingProfileOptions

type TransactionsClientListByBillingProfileOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

TransactionsClientListByBillingProfileOptions contains the optional parameters for the TransactionsClient.NewListByBillingProfilePager method.

type TransactionsClientListByBillingProfileResponse

type TransactionsClientListByBillingProfileResponse struct {
	// A container for a list of resources
	TransactionListResult
}

TransactionsClientListByBillingProfileResponse contains the response from method TransactionsClient.NewListByBillingProfilePager.

type TransactionsClientListByCustomerOptions

type TransactionsClientListByCustomerOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

TransactionsClientListByCustomerOptions contains the optional parameters for the TransactionsClient.NewListByCustomerPager method.

type TransactionsClientListByCustomerResponse

type TransactionsClientListByCustomerResponse struct {
	// A container for a list of resources
	TransactionListResult
}

TransactionsClientListByCustomerResponse contains the response from method TransactionsClient.NewListByCustomerPager.

type TransactionsClientListByInvoiceOptions

type TransactionsClientListByInvoiceOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

TransactionsClientListByInvoiceOptions contains the optional parameters for the TransactionsClient.NewListByInvoicePager method.

type TransactionsClientListByInvoiceResponse

type TransactionsClientListByInvoiceResponse struct {
	// A container for a list of resources
	TransactionListResult
}

TransactionsClientListByInvoiceResponse contains the response from method TransactionsClient.NewListByInvoicePager.

type TransactionsClientListByInvoiceSectionOptions

type TransactionsClientListByInvoiceSectionOptions struct {
	// The count query option allows clients to request a count of the matching resources included with the resources in the response.
	Count *bool

	// The filter query option allows clients to filter a collection of resources that are addressed by a request URL.
	Filter *string

	// The orderby query option allows clients to request resources in a particular order.
	OrderBy *string

	// The search query option allows clients to request items within a collection matching a free-text search expression. search
	// is only supported for string fields.
	Search *string

	// The skip query option requests the number of items in the queried collection that are to be skipped and not included in
	// the result.
	Skip *int64

	// The top query option requests the number of items in the queried collection to be included in the result. The maximum supported
	// value for top is 50.
	Top *int64
}

TransactionsClientListByInvoiceSectionOptions contains the optional parameters for the TransactionsClient.NewListByInvoiceSectionPager method.

type TransactionsClientListByInvoiceSectionResponse

type TransactionsClientListByInvoiceSectionResponse struct {
	// A container for a list of resources
	TransactionListResult
}

TransactionsClientListByInvoiceSectionResponse contains the response from method TransactionsClient.NewListByInvoiceSectionPager.

type TransactionsClientTransactionsDownloadByInvoiceResponse

type TransactionsClientTransactionsDownloadByInvoiceResponse struct {
	// A secure URL that can be used to download a an entity until the URL expires.
	DocumentDownloadResult
}

TransactionsClientTransactionsDownloadByInvoiceResponse contains the response from method TransactionsClient.BeginTransactionsDownloadByInvoice.

type TransferDetails

type TransferDetails struct {
	// Details of the transfer.
	Properties *TransferProperties

	// Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value
	// length supported of 256 characters. Keys/value should not empty value nor null.
	// Keys can not contain < > % & \ ? /
	Tags map[string]*string

	// READ-ONLY; Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

TransferDetails - Details of the transfer.

func (TransferDetails) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransferDetails.

func (*TransferDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransferDetails.

type TransferDetailsListResult

type TransferDetailsListResult struct {
	// READ-ONLY; The link (url) to the next page of results.
	NextLink *string

	// READ-ONLY; The list of transfers initiated by caller.
	Value []*TransferDetails
}

TransferDetailsListResult - The list of transfers initiated by caller.

func (TransferDetailsListResult) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransferDetailsListResult.

func (*TransferDetailsListResult) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransferDetailsListResult.

type TransferError

type TransferError struct {
	// READ-ONLY; Error code.
	Code *string

	// READ-ONLY; Error message.
	Message *string
}

TransferError - Error details for transfer execution.

func (TransferError) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransferError.

func (*TransferError) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransferError.

type TransferItemQueryParameter

type TransferItemQueryParameter struct {
	// State of the transfer request query filter.
	State *string
}

TransferItemQueryParameter - Query parameter to enumerate transfer requests.

func (TransferItemQueryParameter) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransferItemQueryParameter.

func (*TransferItemQueryParameter) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransferItemQueryParameter.

type TransferProperties

type TransferProperties struct {
	// READ-ONLY; The email ID of the user who canceled the transfer request.
	CanceledBy *string

	// READ-ONLY; Detailed transfer status.
	DetailedTransferStatus []*DetailedTransferStatus

	// READ-ONLY; The time at which the transfer request expires.
	ExpirationTime *time.Time

	// READ-ONLY; The email ID of the user who sent the transfer request.
	InitiatorEmailID *string

	// READ-ONLY; The email ID of the user to whom the transfer request was sent.
	RecipientEmailID *string

	// READ-ONLY; Overall transfer status.
	TransferStatus *TransferStatus
}

TransferProperties - Transfer details

func (TransferProperties) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransferProperties.

func (*TransferProperties) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransferProperties.

type TransferStatus

type TransferStatus string

TransferStatus - The status of a transfer.

const (
	TransferStatusCanceled            TransferStatus = "Canceled"
	TransferStatusCompleted           TransferStatus = "Completed"
	TransferStatusCompletedWithErrors TransferStatus = "CompletedWithErrors"
	TransferStatusDeclined            TransferStatus = "Declined"
	TransferStatusExpired             TransferStatus = "Expired"
	TransferStatusFailed              TransferStatus = "Failed"
	TransferStatusInProgress          TransferStatus = "InProgress"
	TransferStatusPending             TransferStatus = "Pending"
)

func PossibleTransferStatusValues

func PossibleTransferStatusValues() []TransferStatus

PossibleTransferStatusValues returns the possible values for the TransferStatus const type.

type TransfersClient

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

TransfersClient contains the methods for the Transfers group. Don't use this type directly, use NewTransfersClient() instead.

func NewTransfersClient

func NewTransfersClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*TransfersClient, error)

NewTransfersClient creates a new instance of TransfersClient with the specified values.

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

func (*TransfersClient) Cancel

func (client *TransfersClient) Cancel(ctx context.Context, billingAccountName string, billingProfileName string, invoiceSectionName string, transferName string, options *TransfersClientCancelOptions) (TransfersClientCancelResponse, error)

Cancel - Cancels a transfer request. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • transferName - The ID that uniquely identifies a transfer request.
  • options - TransfersClientCancelOptions contains the optional parameters for the TransfersClient.Cancel method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/transfersCancel.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewTransfersClient().Cancel(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "yyyy-yyyy-yyy-yyy", "aabb123", 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.TransferDetails = armbilling.TransferDetails{
	// 	Name: to.Ptr("aabb123"),
	// 	Type: to.Ptr("Microsoft.Billing/transfers"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy/transfers/aabb123"),
	// 	Properties: &armbilling.TransferProperties{
	// 		CanceledBy: to.Ptr("user@contoso.com"),
	// 		ExpirationTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-05T17:32:28.000Z"); return t}()),
	// 		InitiatorEmailID: to.Ptr("xyz@contoso.com"),
	// 		RecipientEmailID: to.Ptr("user@contoso.com"),
	// 		TransferStatus: to.Ptr(armbilling.TransferStatusPending),
	// 	},
	// }
}

func (*TransfersClient) Get

func (client *TransfersClient) Get(ctx context.Context, billingAccountName string, billingProfileName string, invoiceSectionName string, transferName string, options *TransfersClientGetOptions) (TransfersClientGetResponse, error)

Get - Gets a transfer request by ID. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • transferName - The ID that uniquely identifies a transfer request.
  • options - TransfersClientGetOptions contains the optional parameters for the TransfersClient.Get method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/transfersGet.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewTransfersClient().Get(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "yyyy-yyyy-yyy-yyy", "aabb123", 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.TransferDetails = armbilling.TransferDetails{
	// 	Name: to.Ptr("aabb123"),
	// 	Type: to.Ptr("Microsoft.Billing/transfers"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy/transfers/aabb123"),
	// 	Properties: &armbilling.TransferProperties{
	// 		DetailedTransferStatus: []*armbilling.DetailedTransferStatus{
	// 			{
	// 				ProductID: to.Ptr("subscriptionId"),
	// 				ProductName: to.Ptr("Azure subscription 1"),
	// 				ProductType: to.Ptr(armbilling.ProductTypeAzureSubscription),
	// 				SKUDescription: to.Ptr("MS-AZR-0017G"),
	// 				TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
	// 			},
	// 			{
	// 				ProductID: to.Ptr("reservedInstanceId"),
	// 				ProductName: to.Ptr("Reservation name"),
	// 				ProductType: to.Ptr(armbilling.ProductTypeAzureReservation),
	// 				SKUDescription: to.Ptr("Standard_D2s_v3;VirtualMachines;P1Y"),
	// 				TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
	// 		}},
	// 		ExpirationTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-05T17:32:28.000Z"); return t}()),
	// 		InitiatorEmailID: to.Ptr("xyz@contoso.com"),
	// 		RecipientEmailID: to.Ptr("user@contoso.com"),
	// 		TransferStatus: to.Ptr(armbilling.TransferStatusInProgress),
	// 	},
	// }
}

func (*TransfersClient) Initiate

func (client *TransfersClient) Initiate(ctx context.Context, billingAccountName string, billingProfileName string, invoiceSectionName string, transferName string, parameters InitiateTransferRequest, options *TransfersClientInitiateOptions) (TransfersClientInitiateResponse, error)

Initiate - Sends a request to a user in another billing account to transfer billing ownership of their subscriptions. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement. If the operation fails it returns an *azcore.ResponseError type.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • transferName - The ID that uniquely identifies a transfer request.
  • parameters - Request parameters that are provided to the initiate transfer operation.
  • options - TransfersClientInitiateOptions contains the optional parameters for the TransfersClient.Initiate method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/transfersInitiate.json

package main

import (
	"context"
	"log"

	"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/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	res, err := clientFactory.NewTransfersClient().Initiate(ctx, "10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "yyyy-yyyy-yyy-yyy", "aabb123", armbilling.InitiateTransferRequest{
		Properties: &armbilling.InitiateTransferProperties{
			RecipientEmailID: to.Ptr("user@contoso.com"),
		},
	}, 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.TransferDetails = armbilling.TransferDetails{
	// 	Name: to.Ptr("aabb123"),
	// 	Type: to.Ptr("Microsoft.Billing/transfers"),
	// 	ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy/transfers/aabb123"),
	// 	Properties: &armbilling.TransferProperties{
	// 		ExpirationTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-05T17:32:28.000Z"); return t}()),
	// 		InitiatorEmailID: to.Ptr("xyz@contoso.com"),
	// 		RecipientEmailID: to.Ptr("user@contoso.com"),
	// 		TransferStatus: to.Ptr(armbilling.TransferStatusPending),
	// 	},
	// }
}

func (*TransfersClient) NewListPager

func (client *TransfersClient) NewListPager(billingAccountName string, billingProfileName string, invoiceSectionName string, options *TransfersClientListOptions) *runtime.Pager[TransfersClientListResponse]

NewListPager - Lists the transfer requests for an invoice section. The operation is supported only for billing accounts with agreement type Microsoft Customer Agreement.

Generated from API version 2024-04-01

  • billingAccountName - The ID that uniquely identifies a billing account.
  • billingProfileName - The ID that uniquely identifies a billing profile.
  • invoiceSectionName - The ID that uniquely identifies an invoice section.
  • options - TransfersClientListOptions contains the optional parameters for the TransfersClient.NewListPager method.
Example

Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/c08ac9813477921ad8295b98ced8f82d11b8f913/specification/billing/resource-manager/Microsoft.Billing/stable/2024-04-01/examples/transfersList.json

package main

import (
	"context"
	"log"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/billing/armbilling"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		log.Fatalf("failed to obtain a credential: %v", err)
	}
	ctx := context.Background()
	clientFactory, err := armbilling.NewClientFactory("<subscription-id>", cred, nil)
	if err != nil {
		log.Fatalf("failed to create client: %v", err)
	}
	pager := clientFactory.NewTransfersClient().NewListPager("10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31", "xxxx-xxxx-xxx-xxx", "yyyy-yyyy-yyy-yyy", 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.TransferDetailsListResult = armbilling.TransferDetailsListResult{
		// 	Value: []*armbilling.TransferDetails{
		// 		{
		// 			Name: to.Ptr("aabb123"),
		// 			Type: to.Ptr("Microsoft.Billing/transfers"),
		// 			ID: to.Ptr("/providers/Microsoft.Billing/BillingAccounts/10000000-0000-0000-0000-000000000000:00000000-0000-0000-0000-000000000000_2019-05-31/billingProfiles/xxxx-xxxx-xxx-xxx/invoiceSections/yyyy-yyyy-yyy-yyy/transfers/aabb123"),
		// 			Properties: &armbilling.TransferProperties{
		// 				DetailedTransferStatus: []*armbilling.DetailedTransferStatus{
		// 					{
		// 						ProductID: to.Ptr("subscriptionId"),
		// 						ProductName: to.Ptr("Azure subscription 1"),
		// 						ProductType: to.Ptr(armbilling.ProductTypeAzureSubscription),
		// 						SKUDescription: to.Ptr("MS-AZR-0017G"),
		// 						TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
		// 					},
		// 					{
		// 						ProductID: to.Ptr("reservedInstanceId"),
		// 						ProductName: to.Ptr("Reservation name"),
		// 						ProductType: to.Ptr(armbilling.ProductTypeAzureReservation),
		// 						SKUDescription: to.Ptr("Standard_D2s_v3;VirtualMachines;P1Y"),
		// 						TransferStatus: to.Ptr(armbilling.ProductTransferStatusInProgress),
		// 				}},
		// 				ExpirationTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-11-05T17:32:28.000Z"); return t}()),
		// 				InitiatorEmailID: to.Ptr("xyz@contoso.com"),
		// 				RecipientEmailID: to.Ptr("user@contoso.com"),
		// 				TransferStatus: to.Ptr(armbilling.TransferStatusInProgress),
		// 			},
		// 	}},
		// }
	}
}

type TransfersClientCancelOptions

type TransfersClientCancelOptions struct {
}

TransfersClientCancelOptions contains the optional parameters for the TransfersClient.Cancel method.

type TransfersClientCancelResponse

type TransfersClientCancelResponse struct {
	// Details of the transfer.
	TransferDetails
}

TransfersClientCancelResponse contains the response from method TransfersClient.Cancel.

type TransfersClientGetOptions

type TransfersClientGetOptions struct {
}

TransfersClientGetOptions contains the optional parameters for the TransfersClient.Get method.

type TransfersClientGetResponse

type TransfersClientGetResponse struct {
	// Details of the transfer.
	TransferDetails
}

TransfersClientGetResponse contains the response from method TransfersClient.Get.

type TransfersClientInitiateOptions

type TransfersClientInitiateOptions struct {
}

TransfersClientInitiateOptions contains the optional parameters for the TransfersClient.Initiate method.

type TransfersClientInitiateResponse

type TransfersClientInitiateResponse struct {
	// Details of the transfer.
	TransferDetails
}

TransfersClientInitiateResponse contains the response from method TransfersClient.Initiate.

type TransfersClientListOptions

type TransfersClientListOptions struct {
}

TransfersClientListOptions contains the optional parameters for the TransfersClient.NewListPager method.

type TransfersClientListResponse

type TransfersClientListResponse struct {
	// The list of transfers initiated by caller.
	TransferDetailsListResult
}

TransfersClientListResponse contains the response from method TransfersClient.NewListPager.

type TransitionDetails

type TransitionDetails struct {
	// READ-ONLY; The anniversary day of the pre-transitioned account of type Microsoft Online Services Program.
	AnniversaryDay *int32

	// READ-ONLY; The transition completion date.
	TransitionDate *time.Time
}

TransitionDetails - The details for a billing account transitioned from agreement type Microsoft Online Services Program to agreement type Microsoft Customer Agreement.

func (TransitionDetails) MarshalJSON

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

MarshalJSON implements the json.Marshaller interface for type TransitionDetails.

func (*TransitionDetails) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaller interface for type TransitionDetails.

type Utilization

type Utilization struct {
	// The array of aggregates of a savings plan's utilization
	Aggregates []*UtilizationAggregates

	// READ-ONLY; The trend for a savings plan's utilization
	Trend *string
}

Utilization - Savings plan utilization

func (Utilization) MarshalJSON

func (u Utilization) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type Utilization.

func (*Utilization) UnmarshalJSON

func (u *Utilization) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type Utilization.

type UtilizationAggregates

type UtilizationAggregates struct {
	// READ-ONLY; The grain of the aggregate
	Grain *float32

	// READ-ONLY; The grain unit of the aggregate
	GrainUnit *string

	// READ-ONLY; The aggregate value
	Value *float32

	// READ-ONLY; The aggregate value unit
	ValueUnit *string
}

UtilizationAggregates - The aggregate values of savings plan utilization

func (UtilizationAggregates) MarshalJSON

func (u UtilizationAggregates) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type UtilizationAggregates.

func (*UtilizationAggregates) UnmarshalJSON

func (u *UtilizationAggregates) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type UtilizationAggregates.

type ValidateTransferListResponse

type ValidateTransferListResponse struct {
	// READ-ONLY; The list of transfer validation results.
	Value []*ValidateTransferResponse
}

ValidateTransferListResponse - Result of transfer validation.

func (ValidateTransferListResponse) MarshalJSON

func (v ValidateTransferListResponse) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ValidateTransferListResponse.

func (*ValidateTransferListResponse) UnmarshalJSON

func (v *ValidateTransferListResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ValidateTransferListResponse.

type ValidateTransferResponse

type ValidateTransferResponse struct {
	// The properties of transfer validation response.
	Properties *ValidateTransferResponseProperties
}

ValidateTransferResponse - Transfer validation response.

func (ValidateTransferResponse) MarshalJSON

func (v ValidateTransferResponse) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ValidateTransferResponse.

func (*ValidateTransferResponse) UnmarshalJSON

func (v *ValidateTransferResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ValidateTransferResponse.

type ValidateTransferResponseProperties

type ValidateTransferResponseProperties struct {
	// The array of validation results.
	Results []*ValidationResultProperties

	// READ-ONLY; The product id for which this result applies.
	ProductID *string

	// READ-ONLY; The status of validation
	Status *string
}

ValidateTransferResponseProperties - The properties of transfer validation response.

func (ValidateTransferResponseProperties) MarshalJSON

func (v ValidateTransferResponseProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ValidateTransferResponseProperties.

func (*ValidateTransferResponseProperties) UnmarshalJSON

func (v *ValidateTransferResponseProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ValidateTransferResponseProperties.

type ValidationResultProperties

type ValidationResultProperties struct {
	// READ-ONLY; Result Code.
	Code *string

	// READ-ONLY; Result Level.
	Level *string

	// READ-ONLY; The validation message.
	Message *string
}

ValidationResultProperties - The properties of the validation result.

func (ValidationResultProperties) MarshalJSON

func (v ValidationResultProperties) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface for type ValidationResultProperties.

func (*ValidationResultProperties) UnmarshalJSON

func (v *ValidationResultProperties) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaller interface for type ValidationResultProperties.

type ViewChargesPolicy

type ViewChargesPolicy string

ViewChargesPolicy - The policy that controls whether the users in customer's organization can view charges at pay-as-you-go prices.

const (
	ViewChargesPolicyAllowed    ViewChargesPolicy = "Allowed"
	ViewChargesPolicyNotAllowed ViewChargesPolicy = "NotAllowed"
	ViewChargesPolicyOther      ViewChargesPolicy = "Other"
)

func PossibleViewChargesPolicyValues

func PossibleViewChargesPolicyValues() []ViewChargesPolicy

PossibleViewChargesPolicyValues returns the possible values for the ViewChargesPolicy const type.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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