diff --git a/sdk/consumption/arm-consumption/CHANGELOG.md b/sdk/consumption/arm-consumption/CHANGELOG.md index 43a5baa7ac8c..192aafd50ed4 100644 --- a/sdk/consumption/arm-consumption/CHANGELOG.md +++ b/sdk/consumption/arm-consumption/CHANGELOG.md @@ -1,15 +1,29 @@ # Release History + +## 10.0.0 (2022-10-25) + +**Features** -## 9.1.1 (Unreleased) - -### Features Added - -### Breaking Changes - -### Bugs Fixed + - Added operation LotsOperations.listByCustomer + - Added Interface LotsListByCustomerNextOptionalParams + - Added Interface LotsListByCustomerOptionalParams + - Added Type Alias LotsListByCustomerNextResponse + - Added Type Alias LotsListByCustomerResponse + - Interface CreditSummary has a new optional parameter eTagPropertiesETag + - Interface LegacyChargeSummary has a new optional parameter azureMarketplaceCharges + - Interface LegacyUsageDetail has a new optional parameter benefitId + - Interface LegacyUsageDetail has a new optional parameter benefitName + - Interface ModernReservationRecommendation has a new optional parameter resourceType + - Interface ModernReservationRecommendation has a new optional parameter subscriptionId + - Enum KnownEventType has a new value CreditExpired -### Other Changes +**Breaking Changes** + - Operation ReservationRecommendationDetails.get has a new signature + - Interface BudgetFilter no longer has parameter not + - Interface LegacyChargeSummary no longer has parameter marketplaceCharges + + ## 9.1.0 (2022-09-05) **Features** diff --git a/sdk/consumption/arm-consumption/_meta.json b/sdk/consumption/arm-consumption/_meta.json index 90307a6f115e..5a745097a12d 100644 --- a/sdk/consumption/arm-consumption/_meta.json +++ b/sdk/consumption/arm-consumption/_meta.json @@ -1,8 +1,8 @@ { - "commit": "d600759c3516b61a7c353bc8682bccbab85a6f65", - "readme": "specification\\consumption\\resource-manager\\readme.md", - "autorest_command": "autorest --version=3.8.4 --typescript --modelerfour.lenient-model-deduplication --azure-arm --head-as-boolean=true --license-header=MICROSOFT_MIT_NO_VERSION --generate-test --typescript-sdks-folder=D:\\Git\\azure-sdk-for-js ..\\azure-rest-api-specs\\specification\\consumption\\resource-manager\\readme.md --use=@autorest/typescript@6.0.0-rc.1.20220727.1 --generate-sample=true", + "commit": "f88d099ee57dd5ef88377b77b1c10c9b4027fa01", + "readme": "specification/consumption/resource-manager/readme.md", + "autorest_command": "autorest --version=3.8.4 --typescript --modelerfour.lenient-model-deduplication --azure-arm --head-as-boolean=true --license-header=MICROSOFT_MIT_NO_VERSION --generate-test --typescript-sdks-folder=/mnt/vss/_work/1/s/azure-sdk-for-js ../azure-rest-api-specs/specification/consumption/resource-manager/readme.md --use=@autorest/typescript@6.0.0-rc.2", "repository_url": "https://github.com/Azure/azure-rest-api-specs.git", - "release_tool": "@azure-tools/js-sdk-release-tools@2.4.2", - "use": "@autorest/typescript@6.0.0-rc.1.20220727.1" + "release_tool": "@azure-tools/js-sdk-release-tools@2.4.4", + "use": "@autorest/typescript@6.0.0-rc.2" } \ No newline at end of file diff --git a/sdk/consumption/arm-consumption/package.json b/sdk/consumption/arm-consumption/package.json index 1d8609aea758..27f0801dc2af 100644 --- a/sdk/consumption/arm-consumption/package.json +++ b/sdk/consumption/arm-consumption/package.json @@ -3,7 +3,7 @@ "sdk-type": "mgmt", "author": "Microsoft Corporation", "description": "A generated SDK for ConsumptionManagementClient.", - "version": "9.1.1", + "version": "10.0.0", "engines": { "node": ">=14.0.0" }, @@ -107,13 +107,5 @@ } ] }, - "autoPublish": true, - "//sampleConfiguration": { - "productName": "", - "productSlugs": [ - "azure" - ], - "disableDocsMs": true, - "apiRefLink": "https://docs.microsoft.com/javascript/api/@azure/arm-consumption?view=azure-node-preview" - } -} + "autoPublish": true +} \ No newline at end of file diff --git a/sdk/consumption/arm-consumption/review/arm-consumption.api.md b/sdk/consumption/arm-consumption/review/arm-consumption.api.md index 44af54fc4496..d37a9003320e 100644 --- a/sdk/consumption/arm-consumption/review/arm-consumption.api.md +++ b/sdk/consumption/arm-consumption/review/arm-consumption.api.md @@ -120,7 +120,6 @@ export interface BudgetComparisonExpression { export interface BudgetFilter { and?: BudgetFilterProperties[]; dimensions?: BudgetComparisonExpression; - not?: BudgetFilterProperties; tags?: BudgetComparisonExpression; } @@ -210,7 +209,7 @@ export interface ChargesListResult { } // @public -export interface ChargeSummary extends ProxyResource { +export interface ChargeSummary extends Resource { kind: ChargeSummaryKind; } @@ -292,11 +291,11 @@ export interface CreditsGetOptionalParams extends coreClient.OperationOptions { export type CreditsGetResponse = CreditSummary; // @public -export interface CreditSummary extends Resource { +export interface CreditSummary extends ProxyResource { readonly balanceSummary?: CreditBalanceSummary; readonly billingCurrency?: string; readonly creditCurrency?: string; - readonly eTag?: string; + readonly eTagPropertiesETag?: string; readonly expiredCredit?: Amount; readonly pendingCreditAdjustments?: Amount; readonly pendingEligibleCharges?: Amount; @@ -477,6 +476,7 @@ export enum KnownDatagrain { // @public export enum KnownEventType { + CreditExpired = "CreditExpired", NewCredit = "NewCredit", PendingAdjustments = "PendingAdjustments", PendingCharges = "PendingCharges", @@ -574,11 +574,11 @@ export enum KnownUsageDetailsKind { // @public export interface LegacyChargeSummary extends ChargeSummary { readonly azureCharges?: number; + readonly azureMarketplaceCharges?: number; readonly billingPeriodId?: string; readonly chargesBilledSeparately?: number; readonly currency?: string; kind: "legacy"; - readonly marketplaceCharges?: number; readonly usageEnd?: string; readonly usageStart?: string; } @@ -645,6 +645,8 @@ export interface LegacyUsageDetail extends UsageDetail { readonly accountName?: string; readonly accountOwnerId?: string; readonly additionalInfo?: string; + readonly benefitId?: string; + readonly benefitName?: string; readonly billingAccountId?: string; readonly billingAccountName?: string; readonly billingCurrency?: string; @@ -728,10 +730,27 @@ export interface LotsListByBillingProfileOptionalParams extends coreClient.Opera // @public export type LotsListByBillingProfileResponse = Lots; +// @public +export interface LotsListByCustomerNextOptionalParams extends coreClient.OperationOptions { + filter?: string; +} + +// @public +export type LotsListByCustomerNextResponse = Lots; + +// @public +export interface LotsListByCustomerOptionalParams extends coreClient.OperationOptions { + filter?: string; +} + +// @public +export type LotsListByCustomerResponse = Lots; + // @public export interface LotsOperations { listByBillingAccount(billingAccountId: string, options?: LotsListByBillingAccountOptionalParams): PagedAsyncIterableIterator; listByBillingProfile(billingAccountId: string, billingProfileId: string, options?: LotsListByBillingProfileOptionalParams): PagedAsyncIterableIterator; + listByCustomer(billingAccountId: string, customerId: string, options?: LotsListByCustomerOptionalParams): PagedAsyncIterableIterator; } // @public @@ -885,9 +904,11 @@ export interface ModernReservationRecommendation extends ReservationRecommendati readonly normalizedSize?: string; readonly recommendedQuantity?: number; readonly recommendedQuantityNormalized?: number; + readonly resourceType?: string; readonly scope?: string; readonly skuName?: string; readonly skuProperties?: SkuProperty[]; + readonly subscriptionId?: string; readonly term?: string; readonly totalCostWithReservedInstances?: Amount; } @@ -1146,7 +1167,7 @@ export interface ReservationRecommendation extends Resource, ResourceAttributes // @public export interface ReservationRecommendationDetails { - get(scope: string, region: string, term: Term, lookBackPeriod: LookBackPeriod, product: string, options?: ReservationRecommendationDetailsGetOptionalParams): Promise; + get(resourceScope: string, scope: Scope, region: string, term: Term, lookBackPeriod: LookBackPeriod, product: string, options?: ReservationRecommendationDetailsGetOptionalParams): Promise; } // @public @@ -1213,7 +1234,7 @@ export type ReservationRecommendationKind = string; // @public export interface ReservationRecommendations { - list(scope: string, options?: ReservationRecommendationsListOptionalParams): PagedAsyncIterableIterator; + list(resourceScope: string, options?: ReservationRecommendationsListOptionalParams): PagedAsyncIterableIterator; } // @public @@ -1244,7 +1265,7 @@ export type ReservationRecommendationUnion = ReservationRecommendation | LegacyR // @public export interface ReservationsDetails { - list(scope: string, options?: ReservationsDetailsListOptionalParams): PagedAsyncIterableIterator; + list(resourceScope: string, options?: ReservationsDetailsListOptionalParams): PagedAsyncIterableIterator; listByReservationOrder(reservationOrderId: string, filter: string, options?: ReservationsDetailsListByReservationOrderOptionalParams): PagedAsyncIterableIterator; listByReservationOrderAndReservation(reservationOrderId: string, reservationId: string, filter: string, options?: ReservationsDetailsListByReservationOrderAndReservationOptionalParams): PagedAsyncIterableIterator; } @@ -1303,7 +1324,7 @@ export type ReservationsDetailsListResponse = ReservationDetailsListResult; // @public export interface ReservationsSummaries { - list(scope: string, grain: Datagrain, options?: ReservationsSummariesListOptionalParams): PagedAsyncIterableIterator; + list(resourceScope: string, grain: Datagrain, options?: ReservationsSummariesListOptionalParams): PagedAsyncIterableIterator; listByReservationOrder(reservationOrderId: string, grain: Datagrain, options?: ReservationsSummariesListByReservationOrderOptionalParams): PagedAsyncIterableIterator; listByReservationOrderAndReservation(reservationOrderId: string, reservationId: string, grain: Datagrain, options?: ReservationsSummariesListByReservationOrderAndReservationOptionalParams): PagedAsyncIterableIterator; } diff --git a/sdk/consumption/arm-consumption/src/consumptionManagementClient.ts b/sdk/consumption/arm-consumption/src/consumptionManagementClient.ts index 96b9166c4775..ec7686e3c264 100644 --- a/sdk/consumption/arm-consumption/src/consumptionManagementClient.ts +++ b/sdk/consumption/arm-consumption/src/consumptionManagementClient.ts @@ -86,7 +86,7 @@ export class ConsumptionManagementClient extends coreClient.ServiceClient { credential: credentials }; - const packageDetails = `azsdk-js-arm-consumption/9.1.1`; + const packageDetails = `azsdk-js-arm-consumption/10.0.0`; const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}` diff --git a/sdk/consumption/arm-consumption/src/models/index.ts b/sdk/consumption/arm-consumption/src/models/index.ts index 7b6de1c5aa5b..f901977c9d93 100644 --- a/sdk/consumption/arm-consumption/src/models/index.ts +++ b/sdk/consumption/arm-consumption/src/models/index.ts @@ -16,14 +16,14 @@ export type UsageDetailUnion = | UsageDetail | LegacyUsageDetail | ModernUsageDetail; -export type ReservationRecommendationUnion = - | ReservationRecommendation - | LegacyReservationRecommendation - | ModernReservationRecommendation; export type ChargeSummaryUnion = | ChargeSummary | LegacyChargeSummary | ModernChargeSummary; +export type ReservationRecommendationUnion = + | ReservationRecommendation + | LegacyReservationRecommendation + | ModernReservationRecommendation; /** Result of listing usage details. It contains a list of available usage details in reverse chronological order by billing period. */ export interface UsageDetailsListResult { @@ -136,8 +136,6 @@ export interface BudgetTimePeriod { export interface BudgetFilter { /** The logical "AND" expression. Must have at least 2 items. */ and?: BudgetFilterProperties[]; - /** The logical "NOT" expression. */ - not?: BudgetFilterProperties; /** Has comparison expression for a dimension */ dimensions?: BudgetComparisonExpression; /** Has comparison expression for a tag */ @@ -343,7 +341,7 @@ export interface ReservationRecommendationDetailsResourceProperties { */ readonly appliedScopes?: string[]; /** - * On demand rate of the resource. + * Hourly on-demand rate of the resource. Includes only hardware rate i.e, software rate is not included. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly onDemandRate?: number; @@ -358,7 +356,7 @@ export interface ReservationRecommendationDetailsResourceProperties { */ readonly region?: string; /** - * Reservation rate of the resource. + * Hourly reservation rate of the resource. Varies based on the term. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly reservationRate?: number; @@ -400,15 +398,15 @@ export interface ReservationRecommendationDetailsSavingsProperties { readonly unitOfMeasure?: string; } -/** Details of estimated savings. */ +/** Details of estimated savings. The costs and savings are estimated for the term. */ export interface ReservationRecommendationDetailsCalculatedSavingsProperties { /** - * The cost without reservation. + * The cost without reservation. Includes hardware and software cost. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly onDemandCost?: number; /** - * The difference between total reservation cost and reservation cost. + * Hardware and software cost of the resources not covered by the reservation. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly overageCost?: number; @@ -418,19 +416,19 @@ export interface ReservationRecommendationDetailsCalculatedSavingsProperties { */ readonly quantity?: number; /** - * The exact cost of the estimated usage using reservation. + * Hardware cost of the resources covered by the reservation. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly reservationCost?: number; /** - * The cost of the suggested quantity. + * Reservation cost + software cost of the resources covered by the reservation + overage cost. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly totalReservationCost?: number; /** The number of reserved units used to calculate savings. Always 1 for virtual machines. */ reservedUnitCount?: number; /** - * The amount saved by purchasing the recommended quantity of reservation. + * The amount saved by purchasing the recommended quantity of reservation. This is equal to onDemandCost - totalReservationCost. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly savings?: number; @@ -1045,6 +1043,12 @@ export interface Marketplace extends Resource { readonly isRecurringCharge?: boolean; } +/** A charge summary resource. */ +export interface ChargeSummary extends Resource { + /** Specifies the kind of charge summary. */ + kind: ChargeSummaryKind; +} + /** A balance resource. */ export interface Balance extends Resource { /** @@ -1369,50 +1373,6 @@ export interface ManagementGroupAggregatedCostResult extends Resource { excludedSubscriptions?: string[]; } -/** A credit summary resource. */ -export interface CreditSummary extends Resource { - /** - * Summary of balances associated with this credit summary. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly balanceSummary?: CreditBalanceSummary; - /** - * Pending credit adjustments. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly pendingCreditAdjustments?: Amount; - /** - * Expired credit. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly expiredCredit?: Amount; - /** - * Pending eligible charges. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly pendingEligibleCharges?: Amount; - /** - * The credit currency. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly creditCurrency?: string; - /** - * The billing currency. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly billingCurrency?: string; - /** - * Credit's reseller. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly reseller?: Reseller; - /** - * The eTag for the resource. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly eTag?: string; -} - /** A budget resource. */ export interface Budget extends ProxyResource { /** The category of the budget, whether the budget tracks cost or usage. */ @@ -1455,12 +1415,6 @@ export interface TagsResult extends ProxyResource { readonly previousLink?: string; } -/** A charge summary resource. */ -export interface ChargeSummary extends ProxyResource { - /** Specifies the kind of charge summary. */ - kind: ChargeSummaryKind; -} - /** An event summary resource. */ export interface EventSummary extends ProxyResource { /** @@ -1651,6 +1605,50 @@ export interface LotSummary extends ProxyResource { readonly eTagPropertiesETag?: string; } +/** A credit summary resource. */ +export interface CreditSummary extends ProxyResource { + /** + * Summary of balances associated with this credit summary. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly balanceSummary?: CreditBalanceSummary; + /** + * Pending credit adjustments. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly pendingCreditAdjustments?: Amount; + /** + * Expired credit. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly expiredCredit?: Amount; + /** + * Pending eligible charges. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly pendingEligibleCharges?: Amount; + /** + * The credit currency. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly creditCurrency?: string; + /** + * The billing currency. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly billingCurrency?: string; + /** + * Credit's reseller. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly reseller?: Reseller; + /** + * The eTag for the resource. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly eTagPropertiesETag?: string; +} + /** Reservation transaction resource. */ export interface ReservationTransaction extends ReservationTransactionResource { /** @@ -1669,7 +1667,7 @@ export interface ReservationTransaction extends ReservationTransactionResource { */ readonly description?: string; /** - * The type of the transaction (Purchase, Cancel, etc.) + * The type of the transaction (Purchase, Cancel or Refund). * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly eventType?: string; @@ -1814,7 +1812,7 @@ export interface ModernReservationTransaction */ readonly eventDate?: Date; /** - * The type of the transaction (Purchase, Cancel, etc.) + * The type of the transaction (Purchase, Cancel or Refund). * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly eventType?: string; @@ -2127,6 +2125,16 @@ export interface LegacyUsageDetail extends UsageDetail { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly payGPrice?: number; + /** + * Unique identifier for the applicable benefit. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly benefitId?: string; + /** + * Name of the applicable benefit. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly benefitName?: string; /** * Identifier that indicates how the meter is priced. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -2500,6 +2508,108 @@ export interface ModernUsageDetail extends UsageDetail { readonly costAllocationRuleName?: string; } +/** Legacy charge summary. */ +export interface LegacyChargeSummary extends ChargeSummary { + /** Polymorphic discriminator, which specifies the different types this object can be */ + kind: "legacy"; + /** + * The id of the billing period resource that the charge belongs to. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly billingPeriodId?: string; + /** + * Usage start date. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly usageStart?: string; + /** + * Usage end date. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly usageEnd?: string; + /** + * Azure Charges. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly azureCharges?: number; + /** + * Charges Billed separately. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly chargesBilledSeparately?: number; + /** + * Marketplace Charges. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly azureMarketplaceCharges?: number; + /** + * Currency Code + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly currency?: string; +} + +/** Modern charge summary. */ +export interface ModernChargeSummary extends ChargeSummary { + /** Polymorphic discriminator, which specifies the different types this object can be */ + kind: "modern"; + /** + * The id of the billing period resource that the charge belongs to. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly billingPeriodId?: string; + /** + * Usage start date. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly usageStart?: string; + /** + * Usage end date. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly usageEnd?: string; + /** + * Azure Charges. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly azureCharges?: Amount; + /** + * Charges Billed separately. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly chargesBilledSeparately?: Amount; + /** + * Marketplace Charges. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly marketplaceCharges?: Amount; + /** + * Billing Account Id + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly billingAccountId?: string; + /** + * Billing Profile Id + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly billingProfileId?: string; + /** + * Invoice Section Id + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly invoiceSectionId?: string; + /** + * Customer Id + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly customerId?: string; + /** + * Is charge Invoiced + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly isInvoiced?: boolean; +} + /** Legacy reservation recommendation. */ export interface LegacyReservationRecommendation extends ReservationRecommendation { @@ -2634,6 +2744,11 @@ export interface ModernReservationRecommendation * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly recommendedQuantity?: number; + /** + * Resource type. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly resourceType?: string; /** * The total amount of cost with reserved instances. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -2664,108 +2779,11 @@ export interface ModernReservationRecommendation * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly skuName?: string; -} - -/** Legacy charge summary. */ -export interface LegacyChargeSummary extends ChargeSummary { - /** Polymorphic discriminator, which specifies the different types this object can be */ - kind: "legacy"; - /** - * The id of the billing period resource that the charge belongs to. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly billingPeriodId?: string; /** - * Usage start date. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly usageStart?: string; - /** - * Usage end date. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly usageEnd?: string; - /** - * Azure Charges. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly azureCharges?: number; - /** - * Charges Billed separately. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly chargesBilledSeparately?: number; - /** - * Marketplace Charges. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly marketplaceCharges?: number; - /** - * Currency Code + * Subscription ID * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly currency?: string; -} - -/** Modern charge summary. */ -export interface ModernChargeSummary extends ChargeSummary { - /** Polymorphic discriminator, which specifies the different types this object can be */ - kind: "modern"; - /** - * The id of the billing period resource that the charge belongs to. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly billingPeriodId?: string; - /** - * Usage start date. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly usageStart?: string; - /** - * Usage end date. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly usageEnd?: string; - /** - * Azure Charges. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly azureCharges?: Amount; - /** - * Charges Billed separately. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly chargesBilledSeparately?: Amount; - /** - * Marketplace Charges. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly marketplaceCharges?: Amount; - /** - * Billing Account Id - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly billingAccountId?: string; - /** - * Billing Profile Id - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly billingProfileId?: string; - /** - * Invoice Section Id - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly invoiceSectionId?: string; - /** - * Customer Id - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly customerId?: string; - /** - * Is charge Invoiced - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly isInvoiced?: boolean; + readonly subscriptionId?: string; } /** Legacy Reservation transaction resource. */ @@ -2872,11 +2890,11 @@ export type BudgetOperatorType = string; /** Known values of {@link OperatorType} that the service accepts. */ export enum KnownOperatorType { - /** EqualTo */ + /** Alert will be triggered if the evaluated cost is the same as threshold value. Note: It’s not recommended to use this OperatorType as there’s low chance of cost being exactly the same as threshold value, leading to missing of your alert. This OperatorType will be deprecated in future. */ EqualTo = "EqualTo", - /** GreaterThan */ + /** Alert will be triggered if the evaluated cost is greater than the threshold value. Note: This is the recommended OperatorType while configuring Budget Alert. */ GreaterThan = "GreaterThan", - /** GreaterThanOrEqualTo */ + /** Alert will be triggered if the evaluated cost is greater than or equal to the threshold value. */ GreaterThanOrEqualTo = "GreaterThanOrEqualTo" } @@ -2885,17 +2903,17 @@ export enum KnownOperatorType { * {@link KnownOperatorType} can be used interchangeably with OperatorType, * this enum contains the known values that the service supports. * ### Known values supported by the service - * **EqualTo** \ - * **GreaterThan** \ - * **GreaterThanOrEqualTo** + * **EqualTo**: Alert will be triggered if the evaluated cost is the same as threshold value. Note: It’s not recommended to use this OperatorType as there’s low chance of cost being exactly the same as threshold value, leading to missing of your alert. This OperatorType will be deprecated in future. \ + * **GreaterThan**: Alert will be triggered if the evaluated cost is greater than the threshold value. Note: This is the recommended OperatorType while configuring Budget Alert. \ + * **GreaterThanOrEqualTo**: Alert will be triggered if the evaluated cost is greater than or equal to the threshold value. */ export type OperatorType = string; /** Known values of {@link ThresholdType} that the service accepts. */ export enum KnownThresholdType { - /** Actual */ + /** Actual costs budget alerts notify when the actual accrued cost exceeds the allocated budget . */ Actual = "Actual", - /** Forecasted */ + /** Forecasted costs budget alerts provide advanced notification that your spending trends are likely to exceed your allocated budget, as it relies on forecasted cost predictions. */ Forecasted = "Forecasted" } @@ -2904,8 +2922,8 @@ export enum KnownThresholdType { * {@link KnownThresholdType} can be used interchangeably with ThresholdType, * this enum contains the known values that the service supports. * ### Known values supported by the service - * **Actual** \ - * **Forecasted** + * **Actual**: Actual costs budget alerts notify when the actual accrued cost exceeds the allocated budget . \ + * **Forecasted**: Forecasted costs budget alerts provide advanced notification that your spending trends are likely to exceed your allocated budget, as it relies on forecasted cost predictions. */ export type ThresholdType = string; @@ -3059,6 +3077,24 @@ export enum KnownReservationRecommendationKind { */ export type ReservationRecommendationKind = string; +/** Known values of {@link Scope} that the service accepts. */ +export enum KnownScope { + /** Single */ + Single = "Single", + /** Shared */ + Shared = "Shared" +} + +/** + * Defines values for Scope. \ + * {@link KnownScope} can be used interchangeably with Scope, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Single** \ + * **Shared** + */ +export type Scope = string; + /** Known values of {@link Term} that the service accepts. */ export enum KnownTerm { /** 1 year reservation term */ @@ -3113,7 +3149,9 @@ export enum KnownEventType { /** UnKnown */ UnKnown = "UnKnown", /** NewCredit */ - NewCredit = "NewCredit" + NewCredit = "NewCredit", + /** CreditExpired */ + CreditExpired = "CreditExpired" } /** @@ -3127,7 +3165,8 @@ export enum KnownEventType { * **PendingNewCredit** \ * **PendingExpiredCredit** \ * **UnKnown** \ - * **NewCredit** + * **NewCredit** \ + * **CreditExpired** */ export type EventType = string; @@ -3203,24 +3242,6 @@ export enum KnownPricingModelType { */ export type PricingModelType = string; -/** Known values of {@link Scope} that the service accepts. */ -export enum KnownScope { - /** Single */ - Single = "Single", - /** Shared */ - Shared = "Shared" -} - -/** - * Defines values for Scope. \ - * {@link KnownScope} can be used interchangeably with Scope, - * this enum contains the known values that the service supports. - * ### Known values supported by the service - * **Single** \ - * **Shared** - */ -export type Scope = string; - /** Optional parameters. */ export interface UsageDetailsListOptionalParams extends coreClient.OperationOptions { @@ -3521,7 +3542,7 @@ export type ReservationRecommendationDetailsGetResponse = ReservationRecommendat /** Optional parameters. */ export interface ReservationTransactionsListOptionalParams extends coreClient.OperationOptions { - /** Filter reservation transactions by date range. The properties/EventDate for start date and end date. The filter supports 'le' and 'ge' */ + /** Filter reservation transactions by date range. The properties/EventDate for start date and end date. The filter supports 'le' and 'ge'. Note: API returns data for the entire start date's and end date's billing month. For example, filter properties/eventDate+ge+2020-01-01+AND+properties/eventDate+le+2020-12-29 will include data for the entire December 2020 month (i.e. will contain records for dates December 30 and 31) */ filter?: string; } @@ -3531,7 +3552,7 @@ export type ReservationTransactionsListResponse = ReservationTransactionsListRes /** Optional parameters. */ export interface ReservationTransactionsListByBillingProfileOptionalParams extends coreClient.OperationOptions { - /** Filter reservation transactions by date range. The properties/EventDate for start date and end date. The filter supports 'le' and 'ge' */ + /** Filter reservation transactions by date range. The properties/EventDate for start date and end date. The filter supports 'le' and 'ge'. Note: API returns data for the entire start date's and end date's billing month. For example, filter properties/eventDate+ge+2020-01-01+AND+properties/eventDate+le+2020-12-29 will include data for entire December 2020 month (i.e. will contain records for dates December 30 and 31) */ filter?: string; } @@ -3541,7 +3562,7 @@ export type ReservationTransactionsListByBillingProfileResponse = ModernReservat /** Optional parameters. */ export interface ReservationTransactionsListNextOptionalParams extends coreClient.OperationOptions { - /** Filter reservation transactions by date range. The properties/EventDate for start date and end date. The filter supports 'le' and 'ge' */ + /** Filter reservation transactions by date range. The properties/EventDate for start date and end date. The filter supports 'le' and 'ge'. Note: API returns data for the entire start date's and end date's billing month. For example, filter properties/eventDate+ge+2020-01-01+AND+properties/eventDate+le+2020-12-29 will include data for the entire December 2020 month (i.e. will contain records for dates December 30 and 31) */ filter?: string; } @@ -3551,7 +3572,7 @@ export type ReservationTransactionsListNextResponse = ReservationTransactionsLis /** Optional parameters. */ export interface ReservationTransactionsListByBillingProfileNextOptionalParams extends coreClient.OperationOptions { - /** Filter reservation transactions by date range. The properties/EventDate for start date and end date. The filter supports 'le' and 'ge' */ + /** Filter reservation transactions by date range. The properties/EventDate for start date and end date. The filter supports 'le' and 'ge'. Note: API returns data for the entire start date's and end date's billing month. For example, filter properties/eventDate+ge+2020-01-01+AND+properties/eventDate+le+2020-12-29 will include data for entire December 2020 month (i.e. will contain records for dates December 30 and 31) */ filter?: string; } @@ -3668,6 +3689,16 @@ export interface LotsListByBillingAccountOptionalParams /** Contains response data for the listByBillingAccount operation. */ export type LotsListByBillingAccountResponse = Lots; +/** Optional parameters. */ +export interface LotsListByCustomerOptionalParams + extends coreClient.OperationOptions { + /** May be used to filter the lots by Status, Source etc. The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. Tag filter is a key value pair string where key and value is separated by a colon (:). */ + filter?: string; +} + +/** Contains response data for the listByCustomer operation. */ +export type LotsListByCustomerResponse = Lots; + /** Optional parameters. */ export interface LotsListByBillingProfileNextOptionalParams extends coreClient.OperationOptions {} @@ -3685,6 +3716,16 @@ export interface LotsListByBillingAccountNextOptionalParams /** Contains response data for the listByBillingAccountNext operation. */ export type LotsListByBillingAccountNextResponse = Lots; +/** Optional parameters. */ +export interface LotsListByCustomerNextOptionalParams + extends coreClient.OperationOptions { + /** May be used to filter the lots by Status, Source etc. The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. Tag filter is a key value pair string where key and value is separated by a colon (:). */ + filter?: string; +} + +/** Contains response data for the listByCustomerNext operation. */ +export type LotsListByCustomerNextResponse = Lots; + /** Optional parameters. */ export interface CreditsGetOptionalParams extends coreClient.OperationOptions {} diff --git a/sdk/consumption/arm-consumption/src/models/mappers.ts b/sdk/consumption/arm-consumption/src/models/mappers.ts index bd98dc2dad1b..3ab84b19b2cb 100644 --- a/sdk/consumption/arm-consumption/src/models/mappers.ts +++ b/sdk/consumption/arm-consumption/src/models/mappers.ts @@ -218,13 +218,6 @@ export const BudgetFilter: coreClient.CompositeMapper = { } } }, - not: { - serializedName: "not", - type: { - name: "Composite", - className: "BudgetFilterProperties" - } - }, dimensions: { serializedName: "dimensions", type: { @@ -1839,6 +1832,29 @@ export const Marketplace: coreClient.CompositeMapper = { } }; +export const ChargeSummary: coreClient.CompositeMapper = { + serializedName: "ChargeSummary", + type: { + name: "Composite", + className: "ChargeSummary", + uberParent: "Resource", + polymorphicDiscriminator: { + serializedName: "kind", + clientName: "kind" + }, + modelProperties: { + ...Resource.type.modelProperties, + kind: { + serializedName: "kind", + required: true, + type: { + name: "String" + } + } + } + } +}; + export const Balance: coreClient.CompositeMapper = { type: { name: "Composite", @@ -2385,72 +2401,6 @@ export const ManagementGroupAggregatedCostResult: coreClient.CompositeMapper = { } }; -export const CreditSummary: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "CreditSummary", - modelProperties: { - ...Resource.type.modelProperties, - balanceSummary: { - serializedName: "properties.balanceSummary", - type: { - name: "Composite", - className: "CreditBalanceSummary" - } - }, - pendingCreditAdjustments: { - serializedName: "properties.pendingCreditAdjustments", - type: { - name: "Composite", - className: "Amount" - } - }, - expiredCredit: { - serializedName: "properties.expiredCredit", - type: { - name: "Composite", - className: "Amount" - } - }, - pendingEligibleCharges: { - serializedName: "properties.pendingEligibleCharges", - type: { - name: "Composite", - className: "Amount" - } - }, - creditCurrency: { - serializedName: "properties.creditCurrency", - readOnly: true, - type: { - name: "String" - } - }, - billingCurrency: { - serializedName: "properties.billingCurrency", - readOnly: true, - type: { - name: "String" - } - }, - reseller: { - serializedName: "properties.reseller", - type: { - name: "Composite", - className: "Reseller" - } - }, - eTag: { - serializedName: "properties.eTag", - readOnly: true, - type: { - name: "String" - } - } - } - } -}; - export const Budget: coreClient.CompositeMapper = { type: { name: "Composite", @@ -2550,29 +2500,6 @@ export const TagsResult: coreClient.CompositeMapper = { } }; -export const ChargeSummary: coreClient.CompositeMapper = { - serializedName: "ChargeSummary", - type: { - name: "Composite", - className: "ChargeSummary", - uberParent: "ProxyResource", - polymorphicDiscriminator: { - serializedName: "kind", - clientName: "kind" - }, - modelProperties: { - ...ProxyResource.type.modelProperties, - kind: { - serializedName: "kind", - required: true, - type: { - name: "String" - } - } - } - } -}; - export const EventSummary: coreClient.CompositeMapper = { type: { name: "Composite", @@ -2851,6 +2778,72 @@ export const LotSummary: coreClient.CompositeMapper = { } }; +export const CreditSummary: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "CreditSummary", + modelProperties: { + ...ProxyResource.type.modelProperties, + balanceSummary: { + serializedName: "properties.balanceSummary", + type: { + name: "Composite", + className: "CreditBalanceSummary" + } + }, + pendingCreditAdjustments: { + serializedName: "properties.pendingCreditAdjustments", + type: { + name: "Composite", + className: "Amount" + } + }, + expiredCredit: { + serializedName: "properties.expiredCredit", + type: { + name: "Composite", + className: "Amount" + } + }, + pendingEligibleCharges: { + serializedName: "properties.pendingEligibleCharges", + type: { + name: "Composite", + className: "Amount" + } + }, + creditCurrency: { + serializedName: "properties.creditCurrency", + readOnly: true, + type: { + name: "String" + } + }, + billingCurrency: { + serializedName: "properties.billingCurrency", + readOnly: true, + type: { + name: "String" + } + }, + reseller: { + serializedName: "properties.reseller", + type: { + name: "Composite", + className: "Reseller" + } + }, + eTagPropertiesETag: { + serializedName: "properties.eTag", + readOnly: true, + type: { + name: "String" + } + } + } + } +}; + export const ReservationTransaction: coreClient.CompositeMapper = { type: { name: "Composite", @@ -3023,7 +3016,6 @@ export const ReservationTransaction: coreClient.CompositeMapper = { }; export const ModernReservationTransaction: coreClient.CompositeMapper = { - serializedName: "Modern", type: { name: "Composite", className: "ModernReservationTransaction", @@ -3542,6 +3534,20 @@ export const LegacyUsageDetail: coreClient.CompositeMapper = { name: "Number" } }, + benefitId: { + serializedName: "properties.benefitId", + readOnly: true, + type: { + name: "String" + } + }, + benefitName: { + serializedName: "properties.benefitName", + readOnly: true, + type: { + name: "String" + } + }, pricingModel: { serializedName: "properties.pricingModel", readOnly: true, @@ -4070,153 +4076,173 @@ export const ModernUsageDetail: coreClient.CompositeMapper = { } }; -export const LegacyReservationRecommendation: coreClient.CompositeMapper = { +export const LegacyChargeSummary: coreClient.CompositeMapper = { serializedName: "legacy", type: { name: "Composite", - className: "LegacyReservationRecommendation", - uberParent: "ReservationRecommendation", - polymorphicDiscriminator: - ReservationRecommendation.type.polymorphicDiscriminator, + className: "LegacyChargeSummary", + uberParent: "ChargeSummary", + polymorphicDiscriminator: ChargeSummary.type.polymorphicDiscriminator, modelProperties: { - ...ReservationRecommendation.type.modelProperties, - lookBackPeriod: { - serializedName: "properties.lookBackPeriod", + ...ChargeSummary.type.modelProperties, + billingPeriodId: { + serializedName: "properties.billingPeriodId", readOnly: true, type: { name: "String" } }, - instanceFlexibilityRatio: { - serializedName: "properties.instanceFlexibilityRatio", + usageStart: { + serializedName: "properties.usageStart", readOnly: true, type: { - name: "Number" + name: "String" } }, - instanceFlexibilityGroup: { - serializedName: "properties.instanceFlexibilityGroup", + usageEnd: { + serializedName: "properties.usageEnd", readOnly: true, type: { name: "String" } }, - normalizedSize: { - serializedName: "properties.normalizedSize", + azureCharges: { + serializedName: "properties.azureCharges", readOnly: true, type: { - name: "String" + name: "Number" } }, - recommendedQuantityNormalized: { - serializedName: "properties.recommendedQuantityNormalized", + chargesBilledSeparately: { + serializedName: "properties.chargesBilledSeparately", readOnly: true, type: { name: "Number" } }, - meterId: { - serializedName: "properties.meterId", + azureMarketplaceCharges: { + serializedName: "properties.azureMarketplaceCharges", readOnly: true, type: { - name: "Uuid" + name: "Number" } }, - resourceType: { - serializedName: "properties.resourceType", + currency: { + serializedName: "properties.currency", readOnly: true, type: { name: "String" } - }, - term: { - serializedName: "properties.term", + } + } + } +}; + +export const ModernChargeSummary: coreClient.CompositeMapper = { + serializedName: "modern", + type: { + name: "Composite", + className: "ModernChargeSummary", + uberParent: "ChargeSummary", + polymorphicDiscriminator: ChargeSummary.type.polymorphicDiscriminator, + modelProperties: { + ...ChargeSummary.type.modelProperties, + billingPeriodId: { + serializedName: "properties.billingPeriodId", readOnly: true, type: { name: "String" } }, - costWithNoReservedInstances: { - serializedName: "properties.costWithNoReservedInstances", + usageStart: { + serializedName: "properties.usageStart", readOnly: true, type: { - name: "Number" + name: "String" } }, - recommendedQuantity: { - serializedName: "properties.recommendedQuantity", + usageEnd: { + serializedName: "properties.usageEnd", readOnly: true, type: { - name: "Number" + name: "String" } }, - totalCostWithReservedInstances: { - serializedName: "properties.totalCostWithReservedInstances", + azureCharges: { + serializedName: "properties.azureCharges", + type: { + name: "Composite", + className: "Amount" + } + }, + chargesBilledSeparately: { + serializedName: "properties.chargesBilledSeparately", + type: { + name: "Composite", + className: "Amount" + } + }, + marketplaceCharges: { + serializedName: "properties.marketplaceCharges", + type: { + name: "Composite", + className: "Amount" + } + }, + billingAccountId: { + serializedName: "properties.billingAccountId", readOnly: true, type: { - name: "Number" + name: "String" } }, - netSavings: { - serializedName: "properties.netSavings", + billingProfileId: { + serializedName: "properties.billingProfileId", readOnly: true, type: { - name: "Number" + name: "String" } }, - firstUsageDate: { - serializedName: "properties.firstUsageDate", + invoiceSectionId: { + serializedName: "properties.invoiceSectionId", readOnly: true, type: { - name: "DateTime" + name: "String" } }, - scope: { - serializedName: "properties.scope", - required: true, + customerId: { + serializedName: "properties.customerId", + readOnly: true, type: { name: "String" } }, - skuProperties: { - serializedName: "properties.skuProperties", + isInvoiced: { + serializedName: "properties.isInvoiced", readOnly: true, type: { - name: "Sequence", - element: { - type: { - name: "Composite", - className: "SkuProperty" - } - } + name: "Boolean" } } } } }; -export const ModernReservationRecommendation: coreClient.CompositeMapper = { - serializedName: "modern", +export const LegacyReservationRecommendation: coreClient.CompositeMapper = { + serializedName: "legacy", type: { name: "Composite", - className: "ModernReservationRecommendation", + className: "LegacyReservationRecommendation", uberParent: "ReservationRecommendation", polymorphicDiscriminator: ReservationRecommendation.type.polymorphicDiscriminator, modelProperties: { ...ReservationRecommendation.type.modelProperties, - locationPropertiesLocation: { - serializedName: "properties.location", - readOnly: true, - type: { - name: "String" - } - }, lookBackPeriod: { serializedName: "properties.lookBackPeriod", readOnly: true, type: { - name: "Number" + name: "String" } }, instanceFlexibilityRatio: { @@ -4254,6 +4280,13 @@ export const ModernReservationRecommendation: coreClient.CompositeMapper = { name: "Uuid" } }, + resourceType: { + serializedName: "properties.resourceType", + readOnly: true, + type: { + name: "String" + } + }, term: { serializedName: "properties.term", readOnly: true, @@ -4263,9 +4296,9 @@ export const ModernReservationRecommendation: coreClient.CompositeMapper = { }, costWithNoReservedInstances: { serializedName: "properties.costWithNoReservedInstances", + readOnly: true, type: { - name: "Composite", - className: "Amount" + name: "Number" } }, recommendedQuantity: { @@ -4277,16 +4310,16 @@ export const ModernReservationRecommendation: coreClient.CompositeMapper = { }, totalCostWithReservedInstances: { serializedName: "properties.totalCostWithReservedInstances", + readOnly: true, type: { - name: "Composite", - className: "Amount" + name: "Number" } }, netSavings: { serializedName: "properties.netSavings", + readOnly: true, type: { - name: "Composite", - className: "Amount" + name: "Number" } }, firstUsageDate: { @@ -4298,7 +4331,7 @@ export const ModernReservationRecommendation: coreClient.CompositeMapper = { }, scope: { serializedName: "properties.scope", - readOnly: true, + required: true, type: { name: "String" } @@ -4315,164 +4348,151 @@ export const ModernReservationRecommendation: coreClient.CompositeMapper = { } } } - }, - skuName: { - serializedName: "properties.skuName", - readOnly: true, - type: { - name: "String" - } } } } }; -export const LegacyChargeSummary: coreClient.CompositeMapper = { - serializedName: "legacy", +export const ModernReservationRecommendation: coreClient.CompositeMapper = { + serializedName: "modern", type: { name: "Composite", - className: "LegacyChargeSummary", - uberParent: "ChargeSummary", - polymorphicDiscriminator: ChargeSummary.type.polymorphicDiscriminator, + className: "ModernReservationRecommendation", + uberParent: "ReservationRecommendation", + polymorphicDiscriminator: + ReservationRecommendation.type.polymorphicDiscriminator, modelProperties: { - ...ChargeSummary.type.modelProperties, - billingPeriodId: { - serializedName: "properties.billingPeriodId", + ...ReservationRecommendation.type.modelProperties, + locationPropertiesLocation: { + serializedName: "properties.location", readOnly: true, type: { name: "String" } }, - usageStart: { - serializedName: "properties.usageStart", + lookBackPeriod: { + serializedName: "properties.lookBackPeriod", readOnly: true, type: { - name: "String" + name: "Number" } }, - usageEnd: { - serializedName: "properties.usageEnd", + instanceFlexibilityRatio: { + serializedName: "properties.instanceFlexibilityRatio", readOnly: true, type: { - name: "String" + name: "Number" } }, - azureCharges: { - serializedName: "properties.azureCharges", + instanceFlexibilityGroup: { + serializedName: "properties.instanceFlexibilityGroup", readOnly: true, type: { - name: "Number" + name: "String" } }, - chargesBilledSeparately: { - serializedName: "properties.chargesBilledSeparately", + normalizedSize: { + serializedName: "properties.normalizedSize", readOnly: true, type: { - name: "Number" + name: "String" } }, - marketplaceCharges: { - serializedName: "properties.marketplaceCharges", + recommendedQuantityNormalized: { + serializedName: "properties.recommendedQuantityNormalized", readOnly: true, type: { name: "Number" } }, - currency: { - serializedName: "properties.currency", + meterId: { + serializedName: "properties.meterId", readOnly: true, type: { - name: "String" + name: "Uuid" } - } - } - } -}; - -export const ModernChargeSummary: coreClient.CompositeMapper = { - serializedName: "modern", - type: { - name: "Composite", - className: "ModernChargeSummary", - uberParent: "ChargeSummary", - polymorphicDiscriminator: ChargeSummary.type.polymorphicDiscriminator, - modelProperties: { - ...ChargeSummary.type.modelProperties, - billingPeriodId: { - serializedName: "properties.billingPeriodId", + }, + term: { + serializedName: "properties.term", readOnly: true, type: { name: "String" } }, - usageStart: { - serializedName: "properties.usageStart", - readOnly: true, + costWithNoReservedInstances: { + serializedName: "properties.costWithNoReservedInstances", type: { - name: "String" + name: "Composite", + className: "Amount" } }, - usageEnd: { - serializedName: "properties.usageEnd", + recommendedQuantity: { + serializedName: "properties.recommendedQuantity", readOnly: true, type: { - name: "String" + name: "Number" } }, - azureCharges: { - serializedName: "properties.azureCharges", + resourceType: { + serializedName: "properties.resourceType", + readOnly: true, type: { - name: "Composite", - className: "Amount" + name: "String" } }, - chargesBilledSeparately: { - serializedName: "properties.chargesBilledSeparately", + totalCostWithReservedInstances: { + serializedName: "properties.totalCostWithReservedInstances", type: { name: "Composite", className: "Amount" } }, - marketplaceCharges: { - serializedName: "properties.marketplaceCharges", + netSavings: { + serializedName: "properties.netSavings", type: { name: "Composite", className: "Amount" } }, - billingAccountId: { - serializedName: "properties.billingAccountId", + firstUsageDate: { + serializedName: "properties.firstUsageDate", readOnly: true, type: { - name: "String" + name: "DateTime" } }, - billingProfileId: { - serializedName: "properties.billingProfileId", + scope: { + serializedName: "properties.scope", readOnly: true, type: { name: "String" } }, - invoiceSectionId: { - serializedName: "properties.invoiceSectionId", + skuProperties: { + serializedName: "properties.skuProperties", readOnly: true, type: { - name: "String" + name: "Sequence", + element: { + type: { + name: "Composite", + className: "SkuProperty" + } + } } }, - customerId: { - serializedName: "properties.customerId", + skuName: { + serializedName: "properties.skuName", readOnly: true, type: { name: "String" } }, - isInvoiced: { - serializedName: "properties.isInvoiced", + subscriptionId: { + serializedName: "properties.subscriptionId", readOnly: true, type: { - name: "Boolean" + name: "Uuid" } } } @@ -4492,14 +4512,14 @@ export const LegacyReservationTransaction: coreClient.CompositeMapper = { export let discriminators = { LegacyReservationRecommendationProperties: LegacyReservationRecommendationProperties, "Resource.UsageDetail": UsageDetail, + "Resource.ChargeSummary": ChargeSummary, "Resource.ReservationRecommendation": ReservationRecommendation, - "ProxyResource.ChargeSummary": ChargeSummary, "LegacyReservationRecommendationProperties.Single": LegacySingleScopeReservationRecommendationProperties, "LegacyReservationRecommendationProperties.Shared": LegacySharedScopeReservationRecommendationProperties, "UsageDetail.legacy": LegacyUsageDetail, "UsageDetail.modern": ModernUsageDetail, - "ReservationRecommendation.legacy": LegacyReservationRecommendation, - "ReservationRecommendation.modern": ModernReservationRecommendation, "ChargeSummary.legacy": LegacyChargeSummary, - "ChargeSummary.modern": ModernChargeSummary + "ChargeSummary.modern": ModernChargeSummary, + "ReservationRecommendation.legacy": LegacyReservationRecommendation, + "ReservationRecommendation.modern": ModernReservationRecommendation }; diff --git a/sdk/consumption/arm-consumption/src/models/parameters.ts b/sdk/consumption/arm-consumption/src/models/parameters.ts index d3cccb1067c2..62d6743b26f3 100644 --- a/sdk/consumption/arm-consumption/src/models/parameters.ts +++ b/sdk/consumption/arm-consumption/src/models/parameters.ts @@ -240,6 +240,18 @@ export const reservationId: OperationURLParameter = { } }; +export const resourceScope: OperationURLParameter = { + parameterPath: "resourceScope", + mapper: { + serializedName: "resourceScope", + required: true, + type: { + name: "String" + } + }, + skipEncoding: true +}; + export const reservationId1: OperationQueryParameter = { parameterPath: ["options", "reservationId"], mapper: { @@ -271,6 +283,17 @@ export const filter1: OperationQueryParameter = { } }; +export const scope1: OperationQueryParameter = { + parameterPath: "scope", + mapper: { + serializedName: "scope", + required: true, + type: { + name: "String" + } + } +}; + export const region: OperationQueryParameter = { parameterPath: "region", mapper: { @@ -369,3 +392,14 @@ export const endDate1: OperationQueryParameter = { } } }; + +export const customerId: OperationURLParameter = { + parameterPath: "customerId", + mapper: { + serializedName: "customerId", + required: true, + type: { + name: "String" + } + } +}; diff --git a/sdk/consumption/arm-consumption/src/operations/lotsOperations.ts b/sdk/consumption/arm-consumption/src/operations/lotsOperations.ts index cedd214243ff..1da8f7c3ddd6 100644 --- a/sdk/consumption/arm-consumption/src/operations/lotsOperations.ts +++ b/sdk/consumption/arm-consumption/src/operations/lotsOperations.ts @@ -18,10 +18,14 @@ import { LotsListByBillingProfileOptionalParams, LotsListByBillingAccountNextOptionalParams, LotsListByBillingAccountOptionalParams, + LotsListByCustomerNextOptionalParams, + LotsListByCustomerOptionalParams, LotsListByBillingProfileResponse, LotsListByBillingAccountResponse, + LotsListByCustomerResponse, LotsListByBillingProfileNextResponse, - LotsListByBillingAccountNextResponse + LotsListByBillingAccountNextResponse, + LotsListByCustomerNextResponse } from "../models"; /// @@ -38,9 +42,8 @@ export class LotsOperationsImpl implements LotsOperations { } /** - * Lists all Azure credits and Microsoft Azure consumption commitments for a billing account or a - * billing profile. Microsoft Azure consumption commitments are only supported for the billing account - * scope. + * Lists all Azure credits for a billing account or a billing profile. The API is only supported for + * Microsoft Customer Agreements (MCA) billing accounts. * @param billingAccountId BillingAccount ID * @param billingProfileId Azure Billing Profile ID. * @param options The options parameters. @@ -111,9 +114,8 @@ export class LotsOperationsImpl implements LotsOperations { } /** - * Lists all Azure credits and Microsoft Azure consumption commitments for a billing account or a - * billing profile. Microsoft Azure consumption commitments are only supported for the billing account - * scope. + * Lists all Microsoft Azure consumption commitments for a billing account. The API is only supported + * for Microsoft Customer Agreements (MCA) and Direct Enterprise Agreement (EA) billing accounts. * @param billingAccountId BillingAccount ID * @param options The options parameters. */ @@ -166,9 +168,80 @@ export class LotsOperationsImpl implements LotsOperations { } /** - * Lists all Azure credits and Microsoft Azure consumption commitments for a billing account or a - * billing profile. Microsoft Azure consumption commitments are only supported for the billing account - * scope. + * Lists all Azure credits for a customer. The API is only supported for Microsoft Partner Agreements + * (MPA) billing accounts. + * @param billingAccountId BillingAccount ID + * @param customerId Customer ID + * @param options The options parameters. + */ + public listByCustomer( + billingAccountId: string, + customerId: string, + options?: LotsListByCustomerOptionalParams + ): PagedAsyncIterableIterator { + const iter = this.listByCustomerPagingAll( + billingAccountId, + customerId, + options + ); + return { + next() { + return iter.next(); + }, + [Symbol.asyncIterator]() { + return this; + }, + byPage: () => { + return this.listByCustomerPagingPage( + billingAccountId, + customerId, + options + ); + } + }; + } + + private async *listByCustomerPagingPage( + billingAccountId: string, + customerId: string, + options?: LotsListByCustomerOptionalParams + ): AsyncIterableIterator { + let result = await this._listByCustomer( + billingAccountId, + customerId, + options + ); + yield result.value || []; + let continuationToken = result.nextLink; + while (continuationToken) { + result = await this._listByCustomerNext( + billingAccountId, + customerId, + continuationToken, + options + ); + continuationToken = result.nextLink; + yield result.value || []; + } + } + + private async *listByCustomerPagingAll( + billingAccountId: string, + customerId: string, + options?: LotsListByCustomerOptionalParams + ): AsyncIterableIterator { + for await (const page of this.listByCustomerPagingPage( + billingAccountId, + customerId, + options + )) { + yield* page; + } + } + + /** + * Lists all Azure credits for a billing account or a billing profile. The API is only supported for + * Microsoft Customer Agreements (MCA) billing accounts. * @param billingAccountId BillingAccount ID * @param billingProfileId Azure Billing Profile ID. * @param options The options parameters. @@ -185,9 +258,8 @@ export class LotsOperationsImpl implements LotsOperations { } /** - * Lists all Azure credits and Microsoft Azure consumption commitments for a billing account or a - * billing profile. Microsoft Azure consumption commitments are only supported for the billing account - * scope. + * Lists all Microsoft Azure consumption commitments for a billing account. The API is only supported + * for Microsoft Customer Agreements (MCA) and Direct Enterprise Agreement (EA) billing accounts. * @param billingAccountId BillingAccount ID * @param options The options parameters. */ @@ -201,6 +273,24 @@ export class LotsOperationsImpl implements LotsOperations { ); } + /** + * Lists all Azure credits for a customer. The API is only supported for Microsoft Partner Agreements + * (MPA) billing accounts. + * @param billingAccountId BillingAccount ID + * @param customerId Customer ID + * @param options The options parameters. + */ + private _listByCustomer( + billingAccountId: string, + customerId: string, + options?: LotsListByCustomerOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { billingAccountId, customerId, options }, + listByCustomerOperationSpec + ); + } + /** * ListByBillingProfileNext * @param billingAccountId BillingAccount ID @@ -236,6 +326,25 @@ export class LotsOperationsImpl implements LotsOperations { listByBillingAccountNextOperationSpec ); } + + /** + * ListByCustomerNext + * @param billingAccountId BillingAccount ID + * @param customerId Customer ID + * @param nextLink The nextLink from the previous successful call to the ListByCustomer method. + * @param options The options parameters. + */ + private _listByCustomerNext( + billingAccountId: string, + customerId: string, + nextLink: string, + options?: LotsListByCustomerNextOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { billingAccountId, customerId, nextLink, options }, + listByCustomerNextOperationSpec + ); + } } // Operation Specifications const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); @@ -278,6 +387,27 @@ const listByBillingAccountOperationSpec: coreClient.OperationSpec = { headerParameters: [Parameters.accept], serializer }; +const listByCustomerOperationSpec: coreClient.OperationSpec = { + path: + "/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}/providers/Microsoft.Consumption/lots", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.Lots + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + queryParameters: [Parameters.filter, Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.billingAccountId, + Parameters.customerId + ], + headerParameters: [Parameters.accept], + serializer +}; const listByBillingProfileNextOperationSpec: coreClient.OperationSpec = { path: "{nextLink}", httpMethod: "GET", @@ -319,3 +449,24 @@ const listByBillingAccountNextOperationSpec: coreClient.OperationSpec = { headerParameters: [Parameters.accept], serializer }; +const listByCustomerNextOperationSpec: coreClient.OperationSpec = { + path: "{nextLink}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.Lots + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + queryParameters: [Parameters.filter, Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.nextLink, + Parameters.billingAccountId, + Parameters.customerId + ], + headerParameters: [Parameters.accept], + serializer +}; diff --git a/sdk/consumption/arm-consumption/src/operations/marketplaces.ts b/sdk/consumption/arm-consumption/src/operations/marketplaces.ts index 45219696eb9b..c2846304e0ce 100644 --- a/sdk/consumption/arm-consumption/src/operations/marketplaces.ts +++ b/sdk/consumption/arm-consumption/src/operations/marketplaces.ts @@ -153,6 +153,7 @@ const listOperationSpec: coreClient.OperationSpec = { 200: { bodyMapper: Mappers.MarketplacesListResult }, + 204: {}, default: { bodyMapper: Mappers.ErrorResponse } @@ -174,6 +175,7 @@ const listNextOperationSpec: coreClient.OperationSpec = { 200: { bodyMapper: Mappers.MarketplacesListResult }, + 204: {}, default: { bodyMapper: Mappers.ErrorResponse } diff --git a/sdk/consumption/arm-consumption/src/operations/reservationRecommendationDetails.ts b/sdk/consumption/arm-consumption/src/operations/reservationRecommendationDetails.ts index c3bf7a979b7b..504c909de02f 100644 --- a/sdk/consumption/arm-consumption/src/operations/reservationRecommendationDetails.ts +++ b/sdk/consumption/arm-consumption/src/operations/reservationRecommendationDetails.ts @@ -12,6 +12,7 @@ import * as Mappers from "../models/mappers"; import * as Parameters from "../models/parameters"; import { ConsumptionManagementClient } from "../consumptionManagementClient"; import { + Scope, Term, LookBackPeriod, ReservationRecommendationDetailsGetOptionalParams, @@ -33,12 +34,13 @@ export class ReservationRecommendationDetailsImpl /** * Details of a reservation recommendation for what-if analysis of reserved instances. - * @param scope The scope associated with reservation recommendation details operations. This includes - * '/subscriptions/{subscriptionId}/' for subscription scope, - * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resource group scope, - * /providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope, and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for billingProfile scope + * @param resourceScope The scope associated with reservation recommendation details operations. This + * includes '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resource group scope, + * /providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope + * @param scope Scope of the reservation. * @param region Used to select the region the recommendation should be generated for. * @param term Specify length of reservation recommendation term. * @param lookBackPeriod Filter the time period on which reservation recommendation results are based. @@ -47,7 +49,8 @@ export class ReservationRecommendationDetailsImpl * @param options The options parameters. */ get( - scope: string, + resourceScope: string, + scope: Scope, region: string, term: Term, lookBackPeriod: LookBackPeriod, @@ -55,7 +58,7 @@ export class ReservationRecommendationDetailsImpl options?: ReservationRecommendationDetailsGetOptionalParams ): Promise { return this.client.sendOperationRequest( - { scope, region, term, lookBackPeriod, product, options }, + { resourceScope, scope, region, term, lookBackPeriod, product, options }, getOperationSpec ); } @@ -65,7 +68,7 @@ const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); const getOperationSpec: coreClient.OperationSpec = { path: - "/{scope}/providers/Microsoft.Consumption/reservationRecommendationDetails", + "/{resourceScope}/providers/Microsoft.Consumption/reservationRecommendationDetails", httpMethod: "GET", responses: { 200: { @@ -78,12 +81,13 @@ const getOperationSpec: coreClient.OperationSpec = { }, queryParameters: [ Parameters.apiVersion, + Parameters.scope1, Parameters.region, Parameters.term, Parameters.lookBackPeriod, Parameters.product ], - urlParameters: [Parameters.$host, Parameters.scope], + urlParameters: [Parameters.$host, Parameters.resourceScope], headerParameters: [Parameters.accept], serializer }; diff --git a/sdk/consumption/arm-consumption/src/operations/reservationRecommendations.ts b/sdk/consumption/arm-consumption/src/operations/reservationRecommendations.ts index 91e81411e61b..e223053d6e35 100644 --- a/sdk/consumption/arm-consumption/src/operations/reservationRecommendations.ts +++ b/sdk/consumption/arm-consumption/src/operations/reservationRecommendations.ts @@ -36,19 +36,19 @@ export class ReservationRecommendationsImpl /** * List of recommendations for purchasing reserved instances. - * @param scope The scope associated with reservation recommendations operations. This includes - * '/subscriptions/{subscriptionId}/' for subscription scope, - * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resource group scope, - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope, and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for billingProfile scope + * @param resourceScope The scope associated with reservation recommendations operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resource group scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope * @param options The options parameters. */ public list( - scope: string, + resourceScope: string, options?: ReservationRecommendationsListOptionalParams ): PagedAsyncIterableIterator { - const iter = this.listPagingAll(scope, options); + const iter = this.listPagingAll(resourceScope, options); return { next() { return iter.next(); @@ -57,72 +57,72 @@ export class ReservationRecommendationsImpl return this; }, byPage: () => { - return this.listPagingPage(scope, options); + return this.listPagingPage(resourceScope, options); } }; } private async *listPagingPage( - scope: string, + resourceScope: string, options?: ReservationRecommendationsListOptionalParams ): AsyncIterableIterator { - let result = await this._list(scope, options); + let result = await this._list(resourceScope, options); yield result.value || []; let continuationToken = result.nextLink; while (continuationToken) { - result = await this._listNext(scope, continuationToken, options); + result = await this._listNext(resourceScope, continuationToken, options); continuationToken = result.nextLink; yield result.value || []; } } private async *listPagingAll( - scope: string, + resourceScope: string, options?: ReservationRecommendationsListOptionalParams ): AsyncIterableIterator { - for await (const page of this.listPagingPage(scope, options)) { + for await (const page of this.listPagingPage(resourceScope, options)) { yield* page; } } /** * List of recommendations for purchasing reserved instances. - * @param scope The scope associated with reservation recommendations operations. This includes - * '/subscriptions/{subscriptionId}/' for subscription scope, - * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resource group scope, - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope, and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for billingProfile scope + * @param resourceScope The scope associated with reservation recommendations operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resource group scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope * @param options The options parameters. */ private _list( - scope: string, + resourceScope: string, options?: ReservationRecommendationsListOptionalParams ): Promise { return this.client.sendOperationRequest( - { scope, options }, + { resourceScope, options }, listOperationSpec ); } /** * ListNext - * @param scope The scope associated with reservation recommendations operations. This includes - * '/subscriptions/{subscriptionId}/' for subscription scope, - * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resource group scope, - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope, and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for billingProfile scope + * @param resourceScope The scope associated with reservation recommendations operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resource group scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope * @param nextLink The nextLink from the previous successful call to the List method. * @param options The options parameters. */ private _listNext( - scope: string, + resourceScope: string, nextLink: string, options?: ReservationRecommendationsListNextOptionalParams ): Promise { return this.client.sendOperationRequest( - { scope, nextLink, options }, + { resourceScope, nextLink, options }, listNextOperationSpec ); } @@ -131,7 +131,8 @@ export class ReservationRecommendationsImpl const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); const listOperationSpec: coreClient.OperationSpec = { - path: "/{scope}/providers/Microsoft.Consumption/reservationRecommendations", + path: + "/{resourceScope}/providers/Microsoft.Consumption/reservationRecommendations", httpMethod: "GET", responses: { 200: { @@ -143,7 +144,7 @@ const listOperationSpec: coreClient.OperationSpec = { } }, queryParameters: [Parameters.filter, Parameters.apiVersion], - urlParameters: [Parameters.$host, Parameters.scope], + urlParameters: [Parameters.$host, Parameters.resourceScope], headerParameters: [Parameters.accept], serializer }; @@ -160,7 +161,11 @@ const listNextOperationSpec: coreClient.OperationSpec = { } }, queryParameters: [Parameters.filter, Parameters.apiVersion], - urlParameters: [Parameters.$host, Parameters.scope, Parameters.nextLink], + urlParameters: [ + Parameters.$host, + Parameters.nextLink, + Parameters.resourceScope + ], headerParameters: [Parameters.accept], serializer }; diff --git a/sdk/consumption/arm-consumption/src/operations/reservationTransactions.ts b/sdk/consumption/arm-consumption/src/operations/reservationTransactions.ts index 1331e4507515..bde3dace4862 100644 --- a/sdk/consumption/arm-consumption/src/operations/reservationTransactions.ts +++ b/sdk/consumption/arm-consumption/src/operations/reservationTransactions.ts @@ -39,7 +39,10 @@ export class ReservationTransactionsImpl implements ReservationTransactions { } /** - * List of transactions for reserved instances on billing account scope + * List of transactions for reserved instances on billing account scope. Note: The refund transactions + * are posted along with its purchase transaction (i.e. in the purchase billing month). For example, + * The refund is requested in May 2021. This refund transaction will have event date as May 2021 but + * the billing month as April 2020 when the reservation purchase was made. * @param billingAccountId BillingAccount ID * @param options The options parameters. */ @@ -89,7 +92,10 @@ export class ReservationTransactionsImpl implements ReservationTransactions { } /** - * List of transactions for reserved instances on billing account scope + * List of transactions for reserved instances on billing profile scope. The refund transactions are + * posted along with its purchase transaction (i.e. in the purchase billing month). For example, The + * refund is requested in May 2021. This refund transaction will have event date as May 2021 but the + * billing month as April 2020 when the reservation purchase was made. * @param billingAccountId BillingAccount ID * @param billingProfileId Azure Billing Profile ID. * @param options The options parameters. @@ -160,7 +166,10 @@ export class ReservationTransactionsImpl implements ReservationTransactions { } /** - * List of transactions for reserved instances on billing account scope + * List of transactions for reserved instances on billing account scope. Note: The refund transactions + * are posted along with its purchase transaction (i.e. in the purchase billing month). For example, + * The refund is requested in May 2021. This refund transaction will have event date as May 2021 but + * the billing month as April 2020 when the reservation purchase was made. * @param billingAccountId BillingAccount ID * @param options The options parameters. */ @@ -175,7 +184,10 @@ export class ReservationTransactionsImpl implements ReservationTransactions { } /** - * List of transactions for reserved instances on billing account scope + * List of transactions for reserved instances on billing profile scope. The refund transactions are + * posted along with its purchase transaction (i.e. in the purchase billing month). For example, The + * refund is requested in May 2021. This refund transaction will have event date as May 2021 but the + * billing month as April 2020 when the reservation purchase was made. * @param billingAccountId BillingAccount ID * @param billingProfileId Azure Billing Profile ID. * @param options The options parameters. diff --git a/sdk/consumption/arm-consumption/src/operations/reservationsDetails.ts b/sdk/consumption/arm-consumption/src/operations/reservationsDetails.ts index 559f5c455263..e188eb3755c9 100644 --- a/sdk/consumption/arm-consumption/src/operations/reservationsDetails.ts +++ b/sdk/consumption/arm-consumption/src/operations/reservationsDetails.ts @@ -42,7 +42,9 @@ export class ReservationsDetailsImpl implements ReservationsDetails { } /** - * Lists the reservations details for provided date range. + * Lists the reservations details for provided date range. Note: ARM has a payload size limit of 12MB, + * so currently callers get 502 when the response size exceeds the ARM limit. In such cases, API call + * should be made with smaller date ranges. * @param reservationOrderId Order Id of the reservation * @param filter Filter reservation details by date range. The properties/UsageDate for start date and * end date. The filter supports 'le' and 'ge' @@ -114,7 +116,9 @@ export class ReservationsDetailsImpl implements ReservationsDetails { } /** - * Lists the reservations details for provided date range. + * Lists the reservations details for provided date range. Note: ARM has a payload size limit of 12MB, + * so currently callers get 502 when the response size exceeds the ARM limit. In such cases, API call + * should be made with smaller date ranges. * @param reservationOrderId Order Id of the reservation * @param reservationId Id of the reservation * @param filter Filter reservation details by date range. The properties/UsageDate for start date and @@ -195,19 +199,21 @@ export class ReservationsDetailsImpl implements ReservationsDetails { } /** - * Lists the reservations details for the defined scope and provided date range. - * @param scope The scope associated with reservations details operations. This includes - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), - * and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for BillingProfile scope (modern). + * Lists the reservations details for the defined scope and provided date range. Note: ARM has a + * payload size limit of 12MB, so currently callers get 502 when the response size exceeds the ARM + * limit. In such cases, API call should be made with smaller date ranges. + * @param resourceScope The scope associated with reservations details operations. This includes + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), + * and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope (modern). * @param options The options parameters. */ public list( - scope: string, + resourceScope: string, options?: ReservationsDetailsListOptionalParams ): PagedAsyncIterableIterator { - const iter = this.listPagingAll(scope, options); + const iter = this.listPagingAll(resourceScope, options); return { next() { return iter.next(); @@ -216,36 +222,38 @@ export class ReservationsDetailsImpl implements ReservationsDetails { return this; }, byPage: () => { - return this.listPagingPage(scope, options); + return this.listPagingPage(resourceScope, options); } }; } private async *listPagingPage( - scope: string, + resourceScope: string, options?: ReservationsDetailsListOptionalParams ): AsyncIterableIterator { - let result = await this._list(scope, options); + let result = await this._list(resourceScope, options); yield result.value || []; let continuationToken = result.nextLink; while (continuationToken) { - result = await this._listNext(scope, continuationToken, options); + result = await this._listNext(resourceScope, continuationToken, options); continuationToken = result.nextLink; yield result.value || []; } } private async *listPagingAll( - scope: string, + resourceScope: string, options?: ReservationsDetailsListOptionalParams ): AsyncIterableIterator { - for await (const page of this.listPagingPage(scope, options)) { + for await (const page of this.listPagingPage(resourceScope, options)) { yield* page; } } /** - * Lists the reservations details for provided date range. + * Lists the reservations details for provided date range. Note: ARM has a payload size limit of 12MB, + * so currently callers get 502 when the response size exceeds the ARM limit. In such cases, API call + * should be made with smaller date ranges. * @param reservationOrderId Order Id of the reservation * @param filter Filter reservation details by date range. The properties/UsageDate for start date and * end date. The filter supports 'le' and 'ge' @@ -263,7 +271,9 @@ export class ReservationsDetailsImpl implements ReservationsDetails { } /** - * Lists the reservations details for provided date range. + * Lists the reservations details for provided date range. Note: ARM has a payload size limit of 12MB, + * so currently callers get 502 when the response size exceeds the ARM limit. In such cases, API call + * should be made with smaller date ranges. * @param reservationOrderId Order Id of the reservation * @param reservationId Id of the reservation * @param filter Filter reservation details by date range. The properties/UsageDate for start date and @@ -283,20 +293,22 @@ export class ReservationsDetailsImpl implements ReservationsDetails { } /** - * Lists the reservations details for the defined scope and provided date range. - * @param scope The scope associated with reservations details operations. This includes - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), - * and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for BillingProfile scope (modern). + * Lists the reservations details for the defined scope and provided date range. Note: ARM has a + * payload size limit of 12MB, so currently callers get 502 when the response size exceeds the ARM + * limit. In such cases, API call should be made with smaller date ranges. + * @param resourceScope The scope associated with reservations details operations. This includes + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), + * and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope (modern). * @param options The options parameters. */ private _list( - scope: string, + resourceScope: string, options?: ReservationsDetailsListOptionalParams ): Promise { return this.client.sendOperationRequest( - { scope, options }, + { resourceScope, options }, listOperationSpec ); } @@ -348,21 +360,21 @@ export class ReservationsDetailsImpl implements ReservationsDetails { /** * ListNext - * @param scope The scope associated with reservations details operations. This includes - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), - * and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for BillingProfile scope (modern). + * @param resourceScope The scope associated with reservations details operations. This includes + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), + * and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope (modern). * @param nextLink The nextLink from the previous successful call to the List method. * @param options The options parameters. */ private _listNext( - scope: string, + resourceScope: string, nextLink: string, options?: ReservationsDetailsListNextOptionalParams ): Promise { return this.client.sendOperationRequest( - { scope, nextLink, options }, + { resourceScope, nextLink, options }, listNextOperationSpec ); } @@ -409,7 +421,7 @@ const listByReservationOrderAndReservationOperationSpec: coreClient.OperationSpe serializer }; const listOperationSpec: coreClient.OperationSpec = { - path: "/{scope}/providers/Microsoft.Consumption/reservationDetails", + path: "/{resourceScope}/providers/Microsoft.Consumption/reservationDetails", httpMethod: "GET", responses: { 200: { @@ -427,7 +439,7 @@ const listOperationSpec: coreClient.OperationSpec = { Parameters.reservationId1, Parameters.reservationOrderId1 ], - urlParameters: [Parameters.$host, Parameters.scope], + urlParameters: [Parameters.$host, Parameters.resourceScope], headerParameters: [Parameters.accept], serializer }; @@ -491,7 +503,11 @@ const listNextOperationSpec: coreClient.OperationSpec = { Parameters.reservationId1, Parameters.reservationOrderId1 ], - urlParameters: [Parameters.$host, Parameters.scope, Parameters.nextLink], + urlParameters: [ + Parameters.$host, + Parameters.nextLink, + Parameters.resourceScope + ], headerParameters: [Parameters.accept], serializer }; diff --git a/sdk/consumption/arm-consumption/src/operations/reservationsSummaries.ts b/sdk/consumption/arm-consumption/src/operations/reservationsSummaries.ts index 8fc6c0110bb8..51a77c3884e8 100644 --- a/sdk/consumption/arm-consumption/src/operations/reservationsSummaries.ts +++ b/sdk/consumption/arm-consumption/src/operations/reservationsSummaries.ts @@ -195,20 +195,20 @@ export class ReservationsSummariesImpl implements ReservationsSummaries { /** * Lists the reservations summaries for the defined scope daily or monthly grain. - * @param scope The scope associated with reservations summaries operations. This includes - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), - * and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for BillingProfile scope (modern). + * @param resourceScope The scope associated with reservations summaries operations. This includes + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), + * and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope (modern). * @param grain Can be daily or monthly * @param options The options parameters. */ public list( - scope: string, + resourceScope: string, grain: Datagrain, options?: ReservationsSummariesListOptionalParams ): PagedAsyncIterableIterator { - const iter = this.listPagingAll(scope, grain, options); + const iter = this.listPagingAll(resourceScope, grain, options); return { next() { return iter.next(); @@ -217,32 +217,41 @@ export class ReservationsSummariesImpl implements ReservationsSummaries { return this; }, byPage: () => { - return this.listPagingPage(scope, grain, options); + return this.listPagingPage(resourceScope, grain, options); } }; } private async *listPagingPage( - scope: string, + resourceScope: string, grain: Datagrain, options?: ReservationsSummariesListOptionalParams ): AsyncIterableIterator { - let result = await this._list(scope, grain, options); + let result = await this._list(resourceScope, grain, options); yield result.value || []; let continuationToken = result.nextLink; while (continuationToken) { - result = await this._listNext(scope, grain, continuationToken, options); + result = await this._listNext( + resourceScope, + grain, + continuationToken, + options + ); continuationToken = result.nextLink; yield result.value || []; } } private async *listPagingAll( - scope: string, + resourceScope: string, grain: Datagrain, options?: ReservationsSummariesListOptionalParams ): AsyncIterableIterator { - for await (const page of this.listPagingPage(scope, grain, options)) { + for await (const page of this.listPagingPage( + resourceScope, + grain, + options + )) { yield* page; } } @@ -287,21 +296,21 @@ export class ReservationsSummariesImpl implements ReservationsSummaries { /** * Lists the reservations summaries for the defined scope daily or monthly grain. - * @param scope The scope associated with reservations summaries operations. This includes - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), - * and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for BillingProfile scope (modern). + * @param resourceScope The scope associated with reservations summaries operations. This includes + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), + * and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope (modern). * @param grain Can be daily or monthly * @param options The options parameters. */ private _list( - scope: string, + resourceScope: string, grain: Datagrain, options?: ReservationsSummariesListOptionalParams ): Promise { return this.client.sendOperationRequest( - { scope, grain, options }, + { resourceScope, grain, options }, listOperationSpec ); } @@ -351,23 +360,23 @@ export class ReservationsSummariesImpl implements ReservationsSummaries { /** * ListNext - * @param scope The scope associated with reservations summaries operations. This includes - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), - * and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for BillingProfile scope (modern). + * @param resourceScope The scope associated with reservations summaries operations. This includes + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), + * and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope (modern). * @param grain Can be daily or monthly * @param nextLink The nextLink from the previous successful call to the List method. * @param options The options parameters. */ private _listNext( - scope: string, + resourceScope: string, grain: Datagrain, nextLink: string, options?: ReservationsSummariesListNextOptionalParams ): Promise { return this.client.sendOperationRequest( - { scope, grain, nextLink, options }, + { resourceScope, grain, nextLink, options }, listNextOperationSpec ); } @@ -414,7 +423,7 @@ const listByReservationOrderAndReservationOperationSpec: coreClient.OperationSpe serializer }; const listOperationSpec: coreClient.OperationSpec = { - path: "/{scope}/providers/Microsoft.Consumption/reservationSummaries", + path: "/{resourceScope}/providers/Microsoft.Consumption/reservationSummaries", httpMethod: "GET", responses: { 200: { @@ -433,7 +442,7 @@ const listOperationSpec: coreClient.OperationSpec = { Parameters.reservationId1, Parameters.reservationOrderId1 ], - urlParameters: [Parameters.$host, Parameters.scope], + urlParameters: [Parameters.$host, Parameters.resourceScope], headerParameters: [Parameters.accept], serializer }; @@ -498,7 +507,11 @@ const listNextOperationSpec: coreClient.OperationSpec = { Parameters.reservationId1, Parameters.reservationOrderId1 ], - urlParameters: [Parameters.$host, Parameters.scope, Parameters.nextLink], + urlParameters: [ + Parameters.$host, + Parameters.nextLink, + Parameters.resourceScope + ], headerParameters: [Parameters.accept], serializer }; diff --git a/sdk/consumption/arm-consumption/src/operations/usageDetails.ts b/sdk/consumption/arm-consumption/src/operations/usageDetails.ts index dcde2c7c829d..2836e80fc7a3 100644 --- a/sdk/consumption/arm-consumption/src/operations/usageDetails.ts +++ b/sdk/consumption/arm-consumption/src/operations/usageDetails.ts @@ -177,6 +177,7 @@ const listOperationSpec: coreClient.OperationSpec = { 200: { bodyMapper: Mappers.UsageDetailsListResult }, + 204: {}, default: { bodyMapper: Mappers.ErrorResponse } @@ -200,6 +201,7 @@ const listNextOperationSpec: coreClient.OperationSpec = { 200: { bodyMapper: Mappers.UsageDetailsListResult }, + 204: {}, default: { bodyMapper: Mappers.ErrorResponse } diff --git a/sdk/consumption/arm-consumption/src/operationsInterfaces/lotsOperations.ts b/sdk/consumption/arm-consumption/src/operationsInterfaces/lotsOperations.ts index cee7524cb172..3be08764527e 100644 --- a/sdk/consumption/arm-consumption/src/operationsInterfaces/lotsOperations.ts +++ b/sdk/consumption/arm-consumption/src/operationsInterfaces/lotsOperations.ts @@ -10,16 +10,16 @@ import { PagedAsyncIterableIterator } from "@azure/core-paging"; import { LotSummary, LotsListByBillingProfileOptionalParams, - LotsListByBillingAccountOptionalParams + LotsListByBillingAccountOptionalParams, + LotsListByCustomerOptionalParams } from "../models"; /// /** Interface representing a LotsOperations. */ export interface LotsOperations { /** - * Lists all Azure credits and Microsoft Azure consumption commitments for a billing account or a - * billing profile. Microsoft Azure consumption commitments are only supported for the billing account - * scope. + * Lists all Azure credits for a billing account or a billing profile. The API is only supported for + * Microsoft Customer Agreements (MCA) billing accounts. * @param billingAccountId BillingAccount ID * @param billingProfileId Azure Billing Profile ID. * @param options The options parameters. @@ -30,9 +30,8 @@ export interface LotsOperations { options?: LotsListByBillingProfileOptionalParams ): PagedAsyncIterableIterator; /** - * Lists all Azure credits and Microsoft Azure consumption commitments for a billing account or a - * billing profile. Microsoft Azure consumption commitments are only supported for the billing account - * scope. + * Lists all Microsoft Azure consumption commitments for a billing account. The API is only supported + * for Microsoft Customer Agreements (MCA) and Direct Enterprise Agreement (EA) billing accounts. * @param billingAccountId BillingAccount ID * @param options The options parameters. */ @@ -40,4 +39,16 @@ export interface LotsOperations { billingAccountId: string, options?: LotsListByBillingAccountOptionalParams ): PagedAsyncIterableIterator; + /** + * Lists all Azure credits for a customer. The API is only supported for Microsoft Partner Agreements + * (MPA) billing accounts. + * @param billingAccountId BillingAccount ID + * @param customerId Customer ID + * @param options The options parameters. + */ + listByCustomer( + billingAccountId: string, + customerId: string, + options?: LotsListByCustomerOptionalParams + ): PagedAsyncIterableIterator; } diff --git a/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationRecommendationDetails.ts b/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationRecommendationDetails.ts index 563830545ff9..5733c252df79 100644 --- a/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationRecommendationDetails.ts +++ b/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationRecommendationDetails.ts @@ -7,6 +7,7 @@ */ import { + Scope, Term, LookBackPeriod, ReservationRecommendationDetailsGetOptionalParams, @@ -17,12 +18,13 @@ import { export interface ReservationRecommendationDetails { /** * Details of a reservation recommendation for what-if analysis of reserved instances. - * @param scope The scope associated with reservation recommendation details operations. This includes - * '/subscriptions/{subscriptionId}/' for subscription scope, - * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resource group scope, - * /providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope, and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for billingProfile scope + * @param resourceScope The scope associated with reservation recommendation details operations. This + * includes '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resource group scope, + * /providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope + * @param scope Scope of the reservation. * @param region Used to select the region the recommendation should be generated for. * @param term Specify length of reservation recommendation term. * @param lookBackPeriod Filter the time period on which reservation recommendation results are based. @@ -31,7 +33,8 @@ export interface ReservationRecommendationDetails { * @param options The options parameters. */ get( - scope: string, + resourceScope: string, + scope: Scope, region: string, term: Term, lookBackPeriod: LookBackPeriod, diff --git a/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationRecommendations.ts b/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationRecommendations.ts index e4df3b2a4d35..826ea6fcc729 100644 --- a/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationRecommendations.ts +++ b/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationRecommendations.ts @@ -17,16 +17,16 @@ import { export interface ReservationRecommendations { /** * List of recommendations for purchasing reserved instances. - * @param scope The scope associated with reservation recommendations operations. This includes - * '/subscriptions/{subscriptionId}/' for subscription scope, - * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resource group scope, - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope, and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for billingProfile scope + * @param resourceScope The scope associated with reservation recommendations operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resource group scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope * @param options The options parameters. */ list( - scope: string, + resourceScope: string, options?: ReservationRecommendationsListOptionalParams ): PagedAsyncIterableIterator; } diff --git a/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationTransactions.ts b/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationTransactions.ts index bc3dd77c5727..482594557f75 100644 --- a/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationTransactions.ts +++ b/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationTransactions.ts @@ -18,7 +18,10 @@ import { /** Interface representing a ReservationTransactions. */ export interface ReservationTransactions { /** - * List of transactions for reserved instances on billing account scope + * List of transactions for reserved instances on billing account scope. Note: The refund transactions + * are posted along with its purchase transaction (i.e. in the purchase billing month). For example, + * The refund is requested in May 2021. This refund transaction will have event date as May 2021 but + * the billing month as April 2020 when the reservation purchase was made. * @param billingAccountId BillingAccount ID * @param options The options parameters. */ @@ -27,7 +30,10 @@ export interface ReservationTransactions { options?: ReservationTransactionsListOptionalParams ): PagedAsyncIterableIterator; /** - * List of transactions for reserved instances on billing account scope + * List of transactions for reserved instances on billing profile scope. The refund transactions are + * posted along with its purchase transaction (i.e. in the purchase billing month). For example, The + * refund is requested in May 2021. This refund transaction will have event date as May 2021 but the + * billing month as April 2020 when the reservation purchase was made. * @param billingAccountId BillingAccount ID * @param billingProfileId Azure Billing Profile ID. * @param options The options parameters. diff --git a/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationsDetails.ts b/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationsDetails.ts index 771aedbfc513..e1295f1f79eb 100644 --- a/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationsDetails.ts +++ b/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationsDetails.ts @@ -18,7 +18,9 @@ import { /** Interface representing a ReservationsDetails. */ export interface ReservationsDetails { /** - * Lists the reservations details for provided date range. + * Lists the reservations details for provided date range. Note: ARM has a payload size limit of 12MB, + * so currently callers get 502 when the response size exceeds the ARM limit. In such cases, API call + * should be made with smaller date ranges. * @param reservationOrderId Order Id of the reservation * @param filter Filter reservation details by date range. The properties/UsageDate for start date and * end date. The filter supports 'le' and 'ge' @@ -30,7 +32,9 @@ export interface ReservationsDetails { options?: ReservationsDetailsListByReservationOrderOptionalParams ): PagedAsyncIterableIterator; /** - * Lists the reservations details for provided date range. + * Lists the reservations details for provided date range. Note: ARM has a payload size limit of 12MB, + * so currently callers get 502 when the response size exceeds the ARM limit. In such cases, API call + * should be made with smaller date ranges. * @param reservationOrderId Order Id of the reservation * @param reservationId Id of the reservation * @param filter Filter reservation details by date range. The properties/UsageDate for start date and @@ -44,16 +48,18 @@ export interface ReservationsDetails { options?: ReservationsDetailsListByReservationOrderAndReservationOptionalParams ): PagedAsyncIterableIterator; /** - * Lists the reservations details for the defined scope and provided date range. - * @param scope The scope associated with reservations details operations. This includes - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), - * and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for BillingProfile scope (modern). + * Lists the reservations details for the defined scope and provided date range. Note: ARM has a + * payload size limit of 12MB, so currently callers get 502 when the response size exceeds the ARM + * limit. In such cases, API call should be made with smaller date ranges. + * @param resourceScope The scope associated with reservations details operations. This includes + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), + * and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope (modern). * @param options The options parameters. */ list( - scope: string, + resourceScope: string, options?: ReservationsDetailsListOptionalParams ): PagedAsyncIterableIterator; } diff --git a/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationsSummaries.ts b/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationsSummaries.ts index 935d9eeaef13..2870f5366039 100644 --- a/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationsSummaries.ts +++ b/sdk/consumption/arm-consumption/src/operationsInterfaces/reservationsSummaries.ts @@ -44,16 +44,16 @@ export interface ReservationsSummaries { ): PagedAsyncIterableIterator; /** * Lists the reservations summaries for the defined scope daily or monthly grain. - * @param scope The scope associated with reservations summaries operations. This includes - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), - * and - * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' - * for BillingProfile scope (modern). + * @param resourceScope The scope associated with reservations summaries operations. This includes + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for BillingAccount scope (legacy), + * and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope (modern). * @param grain Can be daily or monthly * @param options The options parameters. */ list( - scope: string, + resourceScope: string, grain: Datagrain, options?: ReservationsSummariesListOptionalParams ): PagedAsyncIterableIterator; diff --git a/sdk/consumption/arm-consumption/test/sampleTest.ts b/sdk/consumption/arm-consumption/test/sampleTest.ts new file mode 100644 index 000000000000..25aeb3ebcc36 --- /dev/null +++ b/sdk/consumption/arm-consumption/test/sampleTest.ts @@ -0,0 +1,43 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +import { + Recorder, + RecorderStartOptions, + env +} from "@azure-tools/test-recorder"; +import { assert } from "chai"; +import { Context } from "mocha"; + +const replaceableVariables: Record = { + AZURE_CLIENT_ID: "azure_client_id", + AZURE_CLIENT_SECRET: "azure_client_secret", + AZURE_TENANT_ID: "88888888-8888-8888-8888-888888888888", + SUBSCRIPTION_ID: "azure_subscription_id" +}; + +const recorderOptions: RecorderStartOptions = { + envSetupForPlayback: replaceableVariables +}; + +describe("My test", () => { + let recorder: Recorder; + + beforeEach(async function(this: Context) { + recorder = new Recorder(this.currentTest); + await recorder.start(recorderOptions); + }); + + afterEach(async function() { + await recorder.stop(); + }); + + it("sample test", async function() { + console.log("Hi, I'm a test!"); + }); +}); diff --git a/sdk/consumption/arm-consumption/tsconfig.json b/sdk/consumption/arm-consumption/tsconfig.json index 6e8ad365181f..3e6ae96443f3 100644 --- a/sdk/consumption/arm-consumption/tsconfig.json +++ b/sdk/consumption/arm-consumption/tsconfig.json @@ -15,17 +15,11 @@ ], "declaration": true, "outDir": "./dist-esm", - "importHelpers": true, - "paths": { - "@azure/arm-consumption": [ - "./src/index" - ] - } + "importHelpers": true }, "include": [ "./src/**/*.ts", - "./test/**/*.ts", - "samples-dev/**/*.ts" + "./test/**/*.ts" ], "exclude": [ "node_modules"