## API Report File for "@azure/arm-consumption"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

import * as coreAuth from '@azure/core-auth';
import * as coreClient from '@azure/core-client';
import { PagedAsyncIterableIterator } from '@azure/core-paging';

// @public
export interface AggregatedCost {
    getByManagementGroup(managementGroupId: string, options?: AggregatedCostGetByManagementGroupOptionalParams): Promise<AggregatedCostGetByManagementGroupResponse>;
    getForBillingPeriodByManagementGroup(managementGroupId: string, billingPeriodName: string, options?: AggregatedCostGetForBillingPeriodByManagementGroupOptionalParams): Promise<AggregatedCostGetForBillingPeriodByManagementGroupResponse>;
}

// @public
export interface AggregatedCostGetByManagementGroupOptionalParams extends coreClient.OperationOptions {
    filter?: string;
}

// @public
export type AggregatedCostGetByManagementGroupResponse = ManagementGroupAggregatedCostResult;

// @public
export interface AggregatedCostGetForBillingPeriodByManagementGroupOptionalParams extends coreClient.OperationOptions {
}

// @public
export type AggregatedCostGetForBillingPeriodByManagementGroupResponse = ManagementGroupAggregatedCostResult;

// @public
export interface Amount {
    readonly currency?: string;
    readonly value?: number;
}

// @public
export interface AmountWithExchangeRate extends Amount {
    readonly exchangeRate?: number;
    readonly exchangeRateMonth?: number;
}

// @public
export interface Balance extends Resource {
    readonly adjustmentDetails?: BalancePropertiesAdjustmentDetailsItem[];
    readonly adjustments?: number;
    readonly azureMarketplaceServiceCharges?: number;
    readonly beginningBalance?: number;
    billingFrequency?: BillingFrequency;
    readonly chargesBilledSeparately?: number;
    readonly currency?: string;
    readonly endingBalance?: number;
    readonly newPurchases?: number;
    readonly newPurchasesDetails?: BalancePropertiesNewPurchasesDetailsItem[];
    readonly priceHidden?: boolean;
    readonly serviceOverage?: number;
    readonly totalOverage?: number;
    readonly totalUsage?: number;
    readonly utilized?: number;
}

// @public (undocumented)
export interface BalancePropertiesAdjustmentDetailsItem {
    readonly name?: string;
    readonly value?: number;
}

// @public (undocumented)
export interface BalancePropertiesNewPurchasesDetailsItem {
    readonly name?: string;
    readonly value?: number;
}

// @public
export interface Balances {
    getByBillingAccount(billingAccountId: string, options?: BalancesGetByBillingAccountOptionalParams): Promise<BalancesGetByBillingAccountResponse>;
    getForBillingPeriodByBillingAccount(billingAccountId: string, billingPeriodName: string, options?: BalancesGetForBillingPeriodByBillingAccountOptionalParams): Promise<BalancesGetForBillingPeriodByBillingAccountResponse>;
}

// @public
export interface BalancesGetByBillingAccountOptionalParams extends coreClient.OperationOptions {
}

// @public
export type BalancesGetByBillingAccountResponse = Balance;

// @public
export interface BalancesGetForBillingPeriodByBillingAccountOptionalParams extends coreClient.OperationOptions {
}

// @public
export type BalancesGetForBillingPeriodByBillingAccountResponse = Balance;

// @public
export type BillingFrequency = string;

// @public
export interface Budget extends ProxyResource {
    amount?: number;
    category?: CategoryType;
    readonly currentSpend?: CurrentSpend;
    filter?: BudgetFilter;
    readonly forecastSpend?: ForecastSpend;
    notifications?: {
        [propertyName: string]: Notification_2;
    };
    timeGrain?: TimeGrainType;
    timePeriod?: BudgetTimePeriod;
}

// @public
export interface BudgetComparisonExpression {
    name: string;
    operator: BudgetOperatorType;
    values: string[];
}

// @public
export interface BudgetFilter {
    and?: BudgetFilterProperties[];
    dimensions?: BudgetComparisonExpression;
    not?: BudgetFilterProperties;
    tags?: BudgetComparisonExpression;
}

// @public
export interface BudgetFilterProperties {
    dimensions?: BudgetComparisonExpression;
    tags?: BudgetComparisonExpression;
}

// @public
export type BudgetOperatorType = string;

// @public
export interface Budgets {
    createOrUpdate(scope: string, budgetName: string, parameters: Budget, options?: BudgetsCreateOrUpdateOptionalParams): Promise<BudgetsCreateOrUpdateResponse>;
    delete(scope: string, budgetName: string, options?: BudgetsDeleteOptionalParams): Promise<void>;
    get(scope: string, budgetName: string, options?: BudgetsGetOptionalParams): Promise<BudgetsGetResponse>;
    list(scope: string, options?: BudgetsListOptionalParams): PagedAsyncIterableIterator<Budget>;
}

// @public
export interface BudgetsCreateOrUpdateOptionalParams extends coreClient.OperationOptions {
}

// @public
export type BudgetsCreateOrUpdateResponse = Budget;

// @public
export interface BudgetsDeleteOptionalParams extends coreClient.OperationOptions {
}

// @public
export interface BudgetsGetOptionalParams extends coreClient.OperationOptions {
}

// @public
export type BudgetsGetResponse = Budget;

// @public
export interface BudgetsListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type BudgetsListNextResponse = BudgetsListResult;

// @public
export interface BudgetsListOptionalParams extends coreClient.OperationOptions {
}

// @public
export type BudgetsListResponse = BudgetsListResult;

// @public
export interface BudgetsListResult {
    readonly nextLink?: string;
    readonly value?: Budget[];
}

// @public
export interface BudgetTimePeriod {
    endDate?: Date;
    startDate: Date;
}

// @public
export type CategoryType = string;

// @public
export interface Charges {
    list(scope: string, options?: ChargesListOptionalParams): Promise<ChargesListResponse>;
}

// @public
export interface ChargesListOptionalParams extends coreClient.OperationOptions {
    apply?: string;
    endDate?: string;
    filter?: string;
    startDate?: string;
}

// @public
export type ChargesListResponse = ChargesListResult;

// @public
export interface ChargesListResult {
    readonly value?: ChargeSummaryUnion[];
}

// @public
export interface ChargeSummary extends ProxyResource {
    kind: ChargeSummaryKind;
}

// @public
export type ChargeSummaryKind = string;

// @public (undocumented)
export type ChargeSummaryUnion = ChargeSummary | LegacyChargeSummary | ModernChargeSummary;

// @public (undocumented)
export class ConsumptionManagementClient extends coreClient.ServiceClient {
    // (undocumented)
    $host: string;
    constructor(credentials: coreAuth.TokenCredential, subscriptionId: string, options?: ConsumptionManagementClientOptionalParams);
    // (undocumented)
    aggregatedCost: AggregatedCost;
    // (undocumented)
    apiVersion: string;
    // (undocumented)
    balances: Balances;
    // (undocumented)
    budgets: Budgets;
    // (undocumented)
    charges: Charges;
    // (undocumented)
    credits: Credits;
    // (undocumented)
    eventsOperations: EventsOperations;
    // (undocumented)
    lotsOperations: LotsOperations;
    // (undocumented)
    marketplaces: Marketplaces;
    // (undocumented)
    operations: Operations;
    // (undocumented)
    priceSheet: PriceSheet;
    // (undocumented)
    reservationRecommendationDetails: ReservationRecommendationDetails;
    // (undocumented)
    reservationRecommendations: ReservationRecommendations;
    // (undocumented)
    reservationsDetails: ReservationsDetails;
    // (undocumented)
    reservationsSummaries: ReservationsSummaries;
    // (undocumented)
    reservationTransactions: ReservationTransactions;
    // (undocumented)
    subscriptionId: string;
    // (undocumented)
    tags: Tags;
    // (undocumented)
    usageDetails: UsageDetails;
}

// @public
export interface ConsumptionManagementClientOptionalParams extends coreClient.ServiceClientOptions {
    $host?: string;
    apiVersion?: string;
    endpoint?: string;
}

// @public
export interface CreditBalanceSummary {
    readonly currentBalance?: Amount;
    readonly estimatedBalance?: Amount;
    readonly estimatedBalanceInBillingCurrency?: AmountWithExchangeRate;
}

// @public
export interface Credits {
    get(billingAccountId: string, billingProfileId: string, options?: CreditsGetOptionalParams): Promise<CreditsGetResponse>;
}

// @public
export interface CreditsGetOptionalParams extends coreClient.OperationOptions {
}

// @public
export type CreditsGetResponse = CreditSummary;

// @public
export interface CreditSummary extends Resource {
    readonly balanceSummary?: CreditBalanceSummary;
    readonly billingCurrency?: string;
    readonly creditCurrency?: string;
    readonly eTag?: string;
    readonly expiredCredit?: Amount;
    readonly pendingCreditAdjustments?: Amount;
    readonly pendingEligibleCharges?: Amount;
    readonly reseller?: Reseller;
}

// @public
export type CultureCode = string;

// @public
export interface CurrentSpend {
    readonly amount?: number;
    readonly unit?: string;
}

// @public
export type Datagrain = string;

// @public
export interface DownloadProperties {
    readonly downloadUrl?: string;
    readonly validTill?: string;
}

// @public
export interface ErrorDetails {
    readonly code?: string;
    readonly message?: string;
}

// @public
export interface ErrorResponse {
    error?: ErrorDetails;
}

// @public
export interface Events {
    readonly nextLink?: string;
    readonly value?: EventSummary[];
}

// @public
export interface EventsListByBillingAccountNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type EventsListByBillingAccountNextResponse = Events;

// @public
export interface EventsListByBillingAccountOptionalParams extends coreClient.OperationOptions {
    filter?: string;
}

// @public
export type EventsListByBillingAccountResponse = Events;

// @public
export interface EventsListByBillingProfileNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type EventsListByBillingProfileNextResponse = Events;

// @public
export interface EventsListByBillingProfileOptionalParams extends coreClient.OperationOptions {
}

// @public
export type EventsListByBillingProfileResponse = Events;

// @public
export interface EventsOperations {
    listByBillingAccount(billingAccountId: string, options?: EventsListByBillingAccountOptionalParams): PagedAsyncIterableIterator<EventSummary>;
    listByBillingProfile(billingAccountId: string, billingProfileId: string, startDate: string, endDate: string, options?: EventsListByBillingProfileOptionalParams): PagedAsyncIterableIterator<EventSummary>;
}

// @public
export interface EventSummary extends ProxyResource {
    readonly adjustments?: Amount;
    readonly adjustmentsInBillingCurrency?: AmountWithExchangeRate;
    readonly billingCurrency?: string;
    readonly billingProfileDisplayName?: string;
    readonly billingProfileId?: string;
    readonly canceledCredit?: Amount;
    readonly charges?: Amount;
    readonly chargesInBillingCurrency?: AmountWithExchangeRate;
    readonly closedBalance?: Amount;
    readonly closedBalanceInBillingCurrency?: AmountWithExchangeRate;
    readonly creditCurrency?: string;
    readonly creditExpired?: Amount;
    readonly creditExpiredInBillingCurrency?: AmountWithExchangeRate;
    readonly description?: string;
    readonly eTagPropertiesETag?: string;
    eventType?: EventType;
    readonly invoiceNumber?: string;
    readonly lotId?: string;
    readonly lotSource?: string;
    readonly newCredit?: Amount;
    readonly newCreditInBillingCurrency?: AmountWithExchangeRate;
    readonly reseller?: Reseller;
    readonly transactionDate?: Date;
}

// @public
export type EventType = string;

// @public
export interface ForecastSpend {
    readonly amount?: number;
    readonly unit?: string;
}

// @public
export function getContinuationToken(page: unknown): string | undefined;

// @public
export interface HighCasedErrorDetails {
    readonly code?: string;
    readonly message?: string;
}

// @public
export interface HighCasedErrorResponse {
    error?: HighCasedErrorDetails;
}

// @public
export enum KnownBillingFrequency {
    Month = "Month",
    Quarter = "Quarter",
    Year = "Year"
}

// @public
export enum KnownBudgetOperatorType {
    In = "In"
}

// @public
export enum KnownCategoryType {
    Cost = "Cost"
}

// @public
export enum KnownChargeSummaryKind {
    Legacy = "legacy",
    Modern = "modern"
}

// @public
export enum KnownCultureCode {
    CsCz = "cs-cz",
    DaDk = "da-dk",
    DeDe = "de-de",
    EnGb = "en-gb",
    EnUs = "en-us",
    EsEs = "es-es",
    FrFr = "fr-fr",
    HuHu = "hu-hu",
    ItIt = "it-it",
    JaJp = "ja-jp",
    KoKr = "ko-kr",
    NbNo = "nb-no",
    NlNl = "nl-nl",
    PlPl = "pl-pl",
    PtBr = "pt-br",
    PtPt = "pt-pt",
    RuRu = "ru-ru",
    SvSe = "sv-se",
    TrTr = "tr-tr",
    ZhCn = "zh-cn",
    ZhTw = "zh-tw"
}

// @public
export enum KnownDatagrain {
    DailyGrain = "daily",
    MonthlyGrain = "monthly"
}

// @public
export enum KnownEventType {
    NewCredit = "NewCredit",
    PendingAdjustments = "PendingAdjustments",
    PendingCharges = "PendingCharges",
    PendingExpiredCredit = "PendingExpiredCredit",
    PendingNewCredit = "PendingNewCredit",
    SettledCharges = "SettledCharges",
    UnKnown = "UnKnown"
}

// @public
export enum KnownLookBackPeriod {
    Last07Days = "Last7Days",
    Last30Days = "Last30Days",
    Last60Days = "Last60Days"
}

// @public
export enum KnownLotSource {
    ConsumptionCommitment = "ConsumptionCommitment",
    PromotionalCredit = "PromotionalCredit",
    PurchasedCredit = "PurchasedCredit"
}

// @public
export enum KnownMetrictype {
    ActualCostMetricType = "actualcost",
    AmortizedCostMetricType = "amortizedcost",
    UsageMetricType = "usage"
}

// @public
export enum KnownOperatorType {
    EqualTo = "EqualTo",
    GreaterThan = "GreaterThan",
    GreaterThanOrEqualTo = "GreaterThanOrEqualTo"
}

// @public
export enum KnownPricingModelType {
    OnDemand = "On Demand",
    Reservation = "Reservation",
    Spot = "Spot"
}

// @public
export enum KnownReservationRecommendationKind {
    Legacy = "legacy",
    Modern = "modern"
}

// @public
export enum KnownScope {
    Shared = "Shared",
    Single = "Single"
}

// @public
export enum KnownStatus {
    Active = "Active",
    Canceled = "Canceled",
    Complete = "Complete",
    Expired = "Expired",
    Inactive = "Inactive",
    None = "None"
}

// @public
export enum KnownTerm {
    P1Y = "P1Y",
    P3Y = "P3Y"
}

// @public
export enum KnownThresholdType {
    Actual = "Actual",
    Forecasted = "Forecasted"
}

// @public
export enum KnownTimeGrainType {
    Annually = "Annually",
    BillingAnnual = "BillingAnnual",
    BillingMonth = "BillingMonth",
    BillingQuarter = "BillingQuarter",
    Monthly = "Monthly",
    Quarterly = "Quarterly"
}

// @public
export enum KnownUsageDetailsKind {
    Legacy = "legacy",
    Modern = "modern"
}

// @public
export interface LegacyChargeSummary extends ChargeSummary {
    readonly azureCharges?: number;
    readonly billingPeriodId?: string;
    readonly chargesBilledSeparately?: number;
    readonly currency?: string;
    kind: "legacy";
    readonly marketplaceCharges?: number;
    readonly usageEnd?: string;
    readonly usageStart?: string;
}

// @public
export interface LegacyReservationRecommendation extends ReservationRecommendation {
    readonly costWithNoReservedInstances?: number;
    readonly firstUsageDate?: Date;
    readonly instanceFlexibilityGroup?: string;
    readonly instanceFlexibilityRatio?: number;
    kind: "legacy";
    readonly lookBackPeriod?: string;
    readonly meterId?: string;
    readonly netSavings?: number;
    readonly normalizedSize?: string;
    readonly recommendedQuantity?: number;
    readonly recommendedQuantityNormalized?: number;
    readonly resourceType?: string;
    scope: string;
    readonly skuProperties?: SkuProperty[];
    readonly term?: string;
    readonly totalCostWithReservedInstances?: number;
}

// @public
export interface LegacyReservationRecommendationProperties {
    readonly costWithNoReservedInstances?: number;
    readonly firstUsageDate?: Date;
    readonly instanceFlexibilityGroup?: string;
    readonly instanceFlexibilityRatio?: number;
    readonly lookBackPeriod?: string;
    readonly meterId?: string;
    readonly netSavings?: number;
    readonly normalizedSize?: string;
    readonly recommendedQuantity?: number;
    readonly recommendedQuantityNormalized?: number;
    readonly resourceType?: string;
    scope: "Single" | "Shared";
    readonly skuProperties?: SkuProperty[];
    readonly term?: string;
    readonly totalCostWithReservedInstances?: number;
}

// @public (undocumented)
export type LegacyReservationRecommendationPropertiesUnion = LegacyReservationRecommendationProperties | LegacySingleScopeReservationRecommendationProperties | LegacySharedScopeReservationRecommendationProperties;

// @public
export interface LegacyReservationTransaction extends ReservationTransaction {
}

// @public
export interface LegacySharedScopeReservationRecommendationProperties extends LegacyReservationRecommendationProperties {
    scope: "Shared";
}

// @public
export interface LegacySingleScopeReservationRecommendationProperties extends LegacyReservationRecommendationProperties {
    scope: "Single";
    readonly subscriptionId?: string;
}

// @public
export interface LegacyUsageDetail extends UsageDetail {
    readonly accountName?: string;
    readonly accountOwnerId?: string;
    readonly additionalInfo?: string;
    readonly billingAccountId?: string;
    readonly billingAccountName?: string;
    readonly billingCurrency?: string;
    readonly billingPeriodEndDate?: Date;
    readonly billingPeriodStartDate?: Date;
    readonly billingProfileId?: string;
    readonly billingProfileName?: string;
    readonly chargeType?: string;
    readonly consumedService?: string;
    readonly cost?: number;
    readonly costCenter?: string;
    readonly date?: Date;
    readonly effectivePrice?: number;
    readonly frequency?: string;
    readonly invoiceSection?: string;
    readonly isAzureCreditEligible?: boolean;
    kind: "legacy";
    readonly meterDetails?: MeterDetailsResponse;
    readonly meterId?: string;
    readonly offerId?: string;
    readonly partNumber?: string;
    readonly payGPrice?: number;
    readonly planName?: string;
    readonly pricingModel?: PricingModelType;
    readonly product?: string;
    readonly productOrderId?: string;
    readonly productOrderName?: string;
    readonly publisherName?: string;
    readonly publisherType?: string;
    readonly quantity?: number;
    readonly reservationId?: string;
    readonly reservationName?: string;
    readonly resourceGroup?: string;
    readonly resourceId?: string;
    readonly resourceLocation?: string;
    readonly resourceName?: string;
    readonly serviceInfo1?: string;
    readonly serviceInfo2?: string;
    readonly subscriptionId?: string;
    readonly subscriptionName?: string;
    readonly term?: string;
    readonly unitPrice?: number;
}

// @public
export type LookBackPeriod = string;

// @public
export interface Lots {
    readonly nextLink?: string;
    readonly value?: LotSummary[];
}

// @public
export interface LotsListByBillingAccountNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type LotsListByBillingAccountNextResponse = Lots;

// @public
export interface LotsListByBillingAccountOptionalParams extends coreClient.OperationOptions {
    filter?: string;
}

// @public
export type LotsListByBillingAccountResponse = Lots;

// @public
export interface LotsListByBillingProfileNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type LotsListByBillingProfileNextResponse = Lots;

// @public
export interface LotsListByBillingProfileOptionalParams extends coreClient.OperationOptions {
}

// @public
export type LotsListByBillingProfileResponse = Lots;

// @public
export interface LotsOperations {
    listByBillingAccount(billingAccountId: string, options?: LotsListByBillingAccountOptionalParams): PagedAsyncIterableIterator<LotSummary>;
    listByBillingProfile(billingAccountId: string, billingProfileId: string, options?: LotsListByBillingProfileOptionalParams): PagedAsyncIterableIterator<LotSummary>;
}

// @public
export type LotSource = string;

// @public
export interface LotSummary extends ProxyResource {
    readonly billingCurrency?: string;
    readonly closedBalance?: Amount;
    readonly closedBalanceInBillingCurrency?: AmountWithExchangeRate;
    readonly creditCurrency?: string;
    readonly eTagPropertiesETag?: string;
    readonly expirationDate?: Date;
    readonly originalAmount?: Amount;
    readonly originalAmountInBillingCurrency?: AmountWithExchangeRate;
    readonly poNumber?: string;
    readonly purchasedDate?: Date;
    readonly reseller?: Reseller;
    readonly source?: LotSource;
    readonly startDate?: Date;
    readonly status?: Status;
}

// @public
export interface ManagementGroupAggregatedCostResult extends Resource {
    readonly azureCharges?: number;
    readonly billingPeriodId?: string;
    readonly chargesBilledSeparately?: number;
    children?: ManagementGroupAggregatedCostResult[];
    readonly currency?: string;
    excludedSubscriptions?: string[];
    includedSubscriptions?: string[];
    readonly marketplaceCharges?: number;
    readonly usageEnd?: Date;
    readonly usageStart?: Date;
}

// @public
export interface Marketplace extends Resource {
    readonly accountName?: string;
    readonly additionalInfo?: string;
    readonly additionalProperties?: string;
    readonly billingPeriodId?: string;
    readonly consumedQuantity?: number;
    readonly consumedService?: string;
    readonly costCenter?: string;
    readonly currency?: string;
    readonly departmentName?: string;
    readonly instanceId?: string;
    readonly instanceName?: string;
    readonly isEstimated?: boolean;
    readonly isRecurringCharge?: boolean;
    readonly meterId?: string;
    readonly offerName?: string;
    readonly orderNumber?: string;
    readonly planName?: string;
    readonly pretaxCost?: number;
    readonly publisherName?: string;
    readonly resourceGroup?: string;
    readonly resourceRate?: number;
    readonly subscriptionGuid?: string;
    readonly subscriptionName?: string;
    readonly unitOfMeasure?: string;
    readonly usageEnd?: Date;
    readonly usageStart?: Date;
}

// @public
export interface Marketplaces {
    list(scope: string, options?: MarketplacesListOptionalParams): PagedAsyncIterableIterator<Marketplace>;
}

// @public
export interface MarketplacesListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type MarketplacesListNextResponse = MarketplacesListResult;

// @public
export interface MarketplacesListOptionalParams extends coreClient.OperationOptions {
    filter?: string;
    skiptoken?: string;
    top?: number;
}

// @public
export type MarketplacesListResponse = MarketplacesListResult;

// @public
export interface MarketplacesListResult {
    readonly nextLink?: string;
    readonly value?: Marketplace[];
}

// @public
export interface MeterDetails {
    readonly meterCategory?: string;
    readonly meterLocation?: string;
    readonly meterName?: string;
    readonly meterSubCategory?: string;
    readonly pretaxStandardRate?: number;
    readonly serviceName?: string;
    readonly serviceTier?: string;
    readonly totalIncludedQuantity?: number;
    readonly unit?: string;
}

// @public
export interface MeterDetailsResponse {
    readonly meterCategory?: string;
    readonly meterName?: string;
    readonly meterSubCategory?: string;
    readonly serviceFamily?: string;
    readonly unitOfMeasure?: string;
}

// @public
export type Metrictype = string;

// @public
export interface ModernChargeSummary extends ChargeSummary {
    readonly azureCharges?: Amount;
    readonly billingAccountId?: string;
    readonly billingPeriodId?: string;
    readonly billingProfileId?: string;
    readonly chargesBilledSeparately?: Amount;
    readonly customerId?: string;
    readonly invoiceSectionId?: string;
    readonly isInvoiced?: boolean;
    kind: "modern";
    readonly marketplaceCharges?: Amount;
    readonly usageEnd?: string;
    readonly usageStart?: string;
}

// @public
export interface ModernReservationRecommendation extends ReservationRecommendation {
    readonly costWithNoReservedInstances?: Amount;
    readonly firstUsageDate?: Date;
    readonly instanceFlexibilityGroup?: string;
    readonly instanceFlexibilityRatio?: number;
    kind: "modern";
    readonly locationPropertiesLocation?: string;
    readonly lookBackPeriod?: number;
    readonly meterId?: string;
    readonly netSavings?: Amount;
    readonly normalizedSize?: string;
    readonly recommendedQuantity?: number;
    readonly recommendedQuantityNormalized?: number;
    readonly scope?: string;
    readonly skuName?: string;
    readonly skuProperties?: SkuProperty[];
    readonly term?: string;
    readonly totalCostWithReservedInstances?: Amount;
}

// @public
export interface ModernReservationTransaction extends ReservationTransactionResource {
    readonly amount?: number;
    readonly armSkuName?: string;
    readonly billingFrequency?: string;
    readonly billingProfileId?: string;
    readonly billingProfileName?: string;
    readonly currency?: string;
    readonly description?: string;
    readonly eventDate?: Date;
    readonly eventType?: string;
    readonly invoice?: string;
    readonly invoiceId?: string;
    readonly invoiceSectionId?: string;
    readonly invoiceSectionName?: string;
    readonly purchasingSubscriptionGuid?: string;
    readonly purchasingSubscriptionName?: string;
    readonly quantity?: number;
    readonly region?: string;
    readonly reservationOrderId?: string;
    readonly reservationOrderName?: string;
    readonly term?: string;
}

// @public
export interface ModernReservationTransactionsListResult {
    readonly nextLink?: string;
    readonly value?: ModernReservationTransaction[];
}

// @public
export interface ModernUsageDetail extends UsageDetail {
    readonly additionalInfo?: string;
    readonly benefitId?: string;
    readonly benefitName?: string;
    readonly billingAccountId?: string;
    readonly billingAccountName?: string;
    readonly billingCurrencyCode?: string;
    readonly billingPeriodEndDate?: Date;
    readonly billingPeriodStartDate?: Date;
    readonly billingProfileId?: string;
    readonly billingProfileName?: string;
    readonly chargeType?: string;
    readonly consumedService?: string;
    readonly costAllocationRuleName?: string;
    readonly costCenter?: string;
    readonly costInBillingCurrency?: number;
    readonly costInPricingCurrency?: number;
    readonly costInUSD?: number;
    readonly customerName?: string;
    readonly customerTenantId?: string;
    readonly date?: Date;
    readonly effectivePrice?: number;
    readonly exchangeRate?: string;
    readonly exchangeRateDate?: Date;
    readonly exchangeRatePricingToBilling?: number;
    readonly frequency?: string;
    readonly instanceName?: string;
    readonly invoiceId?: string;
    readonly invoiceSectionId?: string;
    readonly invoiceSectionName?: string;
    readonly isAzureCreditEligible?: boolean;
    kind: "modern";
    readonly marketPrice?: number;
    readonly meterCategory?: string;
    readonly meterId?: string;
    readonly meterName?: string;
    readonly meterRegion?: string;
    readonly meterSubCategory?: string;
    readonly partnerEarnedCreditApplied?: string;
    readonly partnerEarnedCreditRate?: number;
    readonly partnerName?: string;
    readonly partnerTenantId?: string;
    readonly paygCostInBillingCurrency?: number;
    readonly paygCostInUSD?: number;
    readonly payGPrice?: number;
    readonly previousInvoiceId?: string;
    readonly pricingCurrencyCode?: string;
    readonly pricingModel?: PricingModelType;
    readonly product?: string;
    readonly productIdentifier?: string;
    readonly productOrderId?: string;
    readonly productOrderName?: string;
    readonly provider?: string;
    readonly publisherId?: string;
    readonly publisherName?: string;
    readonly publisherType?: string;
    readonly quantity?: number;
    readonly resellerMpnId?: string;
    readonly resellerName?: string;
    readonly reservationId?: string;
    readonly reservationName?: string;
    readonly resourceGroup?: string;
    readonly resourceLocation?: string;
    readonly resourceLocationNormalized?: string;
    readonly serviceFamily?: string;
    readonly serviceInfo1?: string;
    readonly serviceInfo2?: string;
    readonly servicePeriodEndDate?: Date;
    readonly servicePeriodStartDate?: Date;
    readonly subscriptionGuid?: string;
    readonly subscriptionName?: string;
    readonly term?: string;
    readonly unitOfMeasure?: string;
    readonly unitPrice?: number;
}

// @public
interface Notification_2 {
    contactEmails: string[];
    contactGroups?: string[];
    contactRoles?: string[];
    enabled: boolean;
    locale?: CultureCode;
    operator: OperatorType;
    threshold: number;
    thresholdType?: ThresholdType;
}
export { Notification_2 as Notification }

// @public
export interface Operation {
    display?: OperationDisplay;
    readonly id?: string;
    readonly name?: string;
}

// @public
export interface OperationDisplay {
    readonly description?: string;
    readonly operation?: string;
    readonly provider?: string;
    readonly resource?: string;
}

// @public
export interface OperationListResult {
    readonly nextLink?: string;
    readonly value?: Operation[];
}

// @public
export interface Operations {
    list(options?: OperationsListOptionalParams): PagedAsyncIterableIterator<Operation>;
}

// @public
export interface OperationsListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type OperationsListNextResponse = OperationListResult;

// @public
export interface OperationsListOptionalParams extends coreClient.OperationOptions {
}

// @public
export type OperationsListResponse = OperationListResult;

// @public
export type OperatorType = string;

// @public
export interface PriceSheet {
    get(options?: PriceSheetGetOptionalParams): Promise<PriceSheetGetResponse>;
    getByBillingPeriod(billingPeriodName: string, options?: PriceSheetGetByBillingPeriodOptionalParams): Promise<PriceSheetGetByBillingPeriodResponse>;
}

// @public
export interface PriceSheetGetByBillingPeriodOptionalParams extends coreClient.OperationOptions {
    expand?: string;
    skiptoken?: string;
    top?: number;
}

// @public
export type PriceSheetGetByBillingPeriodResponse = PriceSheetResult;

// @public
export interface PriceSheetGetOptionalParams extends coreClient.OperationOptions {
    expand?: string;
    skiptoken?: string;
    top?: number;
}

// @public
export type PriceSheetGetResponse = PriceSheetResult;

// @public
export interface PriceSheetProperties {
    readonly billingPeriodId?: string;
    readonly currencyCode?: string;
    readonly includedQuantity?: number;
    readonly meterDetails?: MeterDetails;
    readonly meterId?: string;
    readonly offerId?: string;
    readonly partNumber?: string;
    readonly unitOfMeasure?: string;
    readonly unitPrice?: number;
}

// @public
export interface PriceSheetResult extends Resource {
    readonly download?: MeterDetails;
    readonly nextLink?: string;
    readonly pricesheets?: PriceSheetProperties[];
}

// @public
export type PricingModelType = string;

// @public
export interface ProxyResource {
    eTag?: string;
    readonly id?: string;
    readonly name?: string;
    readonly type?: string;
}

// @public
export interface Reseller {
    readonly resellerDescription?: string;
    readonly resellerId?: string;
}

// @public
export interface ReservationDetail extends Resource {
    readonly instanceFlexibilityGroup?: string;
    readonly instanceFlexibilityRatio?: string;
    readonly instanceId?: string;
    readonly kind?: string;
    readonly reservationId?: string;
    readonly reservationOrderId?: string;
    readonly reservedHours?: number;
    readonly skuName?: string;
    readonly totalReservedQuantity?: number;
    readonly usageDate?: Date;
    readonly usedHours?: number;
}

// @public
export interface ReservationDetailsListResult {
    readonly nextLink?: string;
    readonly value?: ReservationDetail[];
}

// @public
export interface ReservationRecommendation extends Resource, ResourceAttributes {
    kind: ReservationRecommendationKind;
}

// @public
export interface ReservationRecommendationDetails {
    get(scope: string, region: string, term: Term, lookBackPeriod: LookBackPeriod, product: string, options?: ReservationRecommendationDetailsGetOptionalParams): Promise<ReservationRecommendationDetailsGetResponse>;
}

// @public
export interface ReservationRecommendationDetailsCalculatedSavingsProperties {
    readonly onDemandCost?: number;
    readonly overageCost?: number;
    readonly quantity?: number;
    readonly reservationCost?: number;
    reservedUnitCount?: number;
    readonly savings?: number;
    readonly totalReservationCost?: number;
}

// @public
export interface ReservationRecommendationDetailsGetOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ReservationRecommendationDetailsGetResponse = ReservationRecommendationDetailsModel;

// @public
export interface ReservationRecommendationDetailsModel extends Resource {
    readonly currency?: string;
    location?: string;
    readonly resource?: ReservationRecommendationDetailsResourceProperties;
    readonly resourceGroup?: string;
    readonly savings?: ReservationRecommendationDetailsSavingsProperties;
    readonly scope?: string;
    sku?: string;
    readonly usage?: ReservationRecommendationDetailsUsageProperties;
}

// @public
export interface ReservationRecommendationDetailsResourceProperties {
    readonly appliedScopes?: string[];
    readonly onDemandRate?: number;
    readonly product?: string;
    readonly region?: string;
    readonly reservationRate?: number;
    readonly resourceType?: string;
}

// @public
export interface ReservationRecommendationDetailsSavingsProperties {
    calculatedSavings?: ReservationRecommendationDetailsCalculatedSavingsProperties[];
    readonly lookBackPeriod?: number;
    readonly recommendedQuantity?: number;
    readonly reservationOrderTerm?: string;
    readonly savingsType?: string;
    readonly unitOfMeasure?: string;
}

// @public
export interface ReservationRecommendationDetailsUsageProperties {
    readonly firstConsumptionDate?: string;
    readonly lastConsumptionDate?: string;
    readonly lookBackUnitType?: string;
    readonly usageData?: number[];
    readonly usageGrain?: string;
}

// @public
export type ReservationRecommendationKind = string;

// @public
export interface ReservationRecommendations {
    list(scope: string, options?: ReservationRecommendationsListOptionalParams): PagedAsyncIterableIterator<ReservationRecommendationUnion>;
}

// @public
export interface ReservationRecommendationsListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ReservationRecommendationsListNextResponse = ReservationRecommendationsListResult;

// @public
export interface ReservationRecommendationsListOptionalParams extends coreClient.OperationOptions {
    filter?: string;
}

// @public
export type ReservationRecommendationsListResponse = ReservationRecommendationsListResult;

// @public
export interface ReservationRecommendationsListResult {
    readonly nextLink?: string;
    readonly previousLink?: string;
    readonly value?: ReservationRecommendationUnion[];
}

// @public (undocumented)
export type ReservationRecommendationUnion = ReservationRecommendation | LegacyReservationRecommendation | ModernReservationRecommendation;

// @public
export interface ReservationsDetails {
    list(scope: string, options?: ReservationsDetailsListOptionalParams): PagedAsyncIterableIterator<ReservationDetail>;
    listByReservationOrder(reservationOrderId: string, filter: string, options?: ReservationsDetailsListByReservationOrderOptionalParams): PagedAsyncIterableIterator<ReservationDetail>;
    listByReservationOrderAndReservation(reservationOrderId: string, reservationId: string, filter: string, options?: ReservationsDetailsListByReservationOrderAndReservationOptionalParams): PagedAsyncIterableIterator<ReservationDetail>;
}

// @public
export interface ReservationsDetailsListByReservationOrderAndReservationNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ReservationsDetailsListByReservationOrderAndReservationNextResponse = ReservationDetailsListResult;

// @public
export interface ReservationsDetailsListByReservationOrderAndReservationOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ReservationsDetailsListByReservationOrderAndReservationResponse = ReservationDetailsListResult;

// @public
export interface ReservationsDetailsListByReservationOrderNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ReservationsDetailsListByReservationOrderNextResponse = ReservationDetailsListResult;

// @public
export interface ReservationsDetailsListByReservationOrderOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ReservationsDetailsListByReservationOrderResponse = ReservationDetailsListResult;

// @public
export interface ReservationsDetailsListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ReservationsDetailsListNextResponse = ReservationDetailsListResult;

// @public
export interface ReservationsDetailsListOptionalParams extends coreClient.OperationOptions {
    endDate?: string;
    filter?: string;
    reservationId?: string;
    reservationOrderId?: string;
    startDate?: string;
}

// @public
export type ReservationsDetailsListResponse = ReservationDetailsListResult;

// @public
export interface ReservationsSummaries {
    list(scope: string, grain: Datagrain, options?: ReservationsSummariesListOptionalParams): PagedAsyncIterableIterator<ReservationSummary>;
    listByReservationOrder(reservationOrderId: string, grain: Datagrain, options?: ReservationsSummariesListByReservationOrderOptionalParams): PagedAsyncIterableIterator<ReservationSummary>;
    listByReservationOrderAndReservation(reservationOrderId: string, reservationId: string, grain: Datagrain, options?: ReservationsSummariesListByReservationOrderAndReservationOptionalParams): PagedAsyncIterableIterator<ReservationSummary>;
}

// @public
export interface ReservationsSummariesListByReservationOrderAndReservationNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ReservationsSummariesListByReservationOrderAndReservationNextResponse = ReservationSummariesListResult;

// @public
export interface ReservationsSummariesListByReservationOrderAndReservationOptionalParams extends coreClient.OperationOptions {
    filter?: string;
}

// @public
export type ReservationsSummariesListByReservationOrderAndReservationResponse = ReservationSummariesListResult;

// @public
export interface ReservationsSummariesListByReservationOrderNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ReservationsSummariesListByReservationOrderNextResponse = ReservationSummariesListResult;

// @public
export interface ReservationsSummariesListByReservationOrderOptionalParams extends coreClient.OperationOptions {
    filter?: string;
}

// @public
export type ReservationsSummariesListByReservationOrderResponse = ReservationSummariesListResult;

// @public
export interface ReservationsSummariesListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ReservationsSummariesListNextResponse = ReservationSummariesListResult;

// @public
export interface ReservationsSummariesListOptionalParams extends coreClient.OperationOptions {
    endDate?: string;
    filter?: string;
    reservationId?: string;
    reservationOrderId?: string;
    startDate?: string;
}

// @public
export type ReservationsSummariesListResponse = ReservationSummariesListResult;

// @public
export interface ReservationSummariesListResult {
    readonly nextLink?: string;
    readonly value?: ReservationSummary[];
}

// @public
export interface ReservationSummary extends Resource {
    readonly avgUtilizationPercentage?: number;
    readonly kind?: string;
    readonly maxUtilizationPercentage?: number;
    readonly minUtilizationPercentage?: number;
    readonly purchasedQuantity?: number;
    readonly remainingQuantity?: number;
    readonly reservationId?: string;
    readonly reservationOrderId?: string;
    readonly reservedHours?: number;
    readonly skuName?: string;
    readonly totalReservedQuantity?: number;
    readonly usageDate?: Date;
    readonly usedHours?: number;
    readonly usedQuantity?: number;
    readonly utilizedPercentage?: number;
}

// @public
export interface ReservationTransaction extends ReservationTransactionResource {
    readonly accountName?: string;
    readonly accountOwnerEmail?: string;
    readonly amount?: number;
    readonly armSkuName?: string;
    readonly billingFrequency?: string;
    readonly billingMonth?: number;
    readonly costCenter?: string;
    readonly currency?: string;
    readonly currentEnrollment?: string;
    readonly departmentName?: string;
    readonly description?: string;
    readonly eventDate?: Date;
    readonly eventType?: string;
    readonly monetaryCommitment?: number;
    readonly overage?: number;
    readonly purchasingEnrollment?: string;
    readonly purchasingSubscriptionGuid?: string;
    readonly purchasingSubscriptionName?: string;
    readonly quantity?: number;
    readonly region?: string;
    readonly reservationOrderId?: string;
    readonly reservationOrderName?: string;
    readonly term?: string;
}

// @public
export interface ReservationTransactionResource {
    readonly id?: string;
    readonly name?: string;
    readonly tags?: string[];
    readonly type?: string;
}

// @public
export interface ReservationTransactions {
    list(billingAccountId: string, options?: ReservationTransactionsListOptionalParams): PagedAsyncIterableIterator<ReservationTransaction>;
    listByBillingProfile(billingAccountId: string, billingProfileId: string, options?: ReservationTransactionsListByBillingProfileOptionalParams): PagedAsyncIterableIterator<ModernReservationTransaction>;
}

// @public
export interface ReservationTransactionsListByBillingProfileNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ReservationTransactionsListByBillingProfileNextResponse = ModernReservationTransactionsListResult;

// @public
export interface ReservationTransactionsListByBillingProfileOptionalParams extends coreClient.OperationOptions {
    filter?: string;
}

// @public
export type ReservationTransactionsListByBillingProfileResponse = ModernReservationTransactionsListResult;

// @public
export interface ReservationTransactionsListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ReservationTransactionsListNextResponse = ReservationTransactionsListResult;

// @public
export interface ReservationTransactionsListOptionalParams extends coreClient.OperationOptions {
    filter?: string;
}

// @public
export type ReservationTransactionsListResponse = ReservationTransactionsListResult;

// @public
export interface ReservationTransactionsListResult {
    readonly nextLink?: string;
    readonly value?: ReservationTransaction[];
}

// @public
export interface Resource {
    readonly etag?: string;
    readonly id?: string;
    readonly name?: string;
    readonly tags?: {
        [propertyName: string]: string;
    };
    readonly type?: string;
}

// @public
export interface ResourceAttributes {
    readonly location?: string;
    readonly sku?: string;
}

// @public
export type Scope = string;

// @public
export interface SkuProperty {
    readonly name?: string;
    readonly value?: string;
}

// @public
export type Status = string;

// @public
export interface Tag {
    key?: string;
    value?: string[];
}

// @public
export interface Tags {
    get(scope: string, options?: TagsGetOptionalParams): Promise<TagsGetResponse>;
}

// @public
export interface TagsGetOptionalParams extends coreClient.OperationOptions {
}

// @public
export type TagsGetResponse = TagsResult;

// @public
export interface TagsResult extends ProxyResource {
    readonly nextLink?: string;
    readonly previousLink?: string;
    tags?: Tag[];
}

// @public
export type Term = string;

// @public
export type ThresholdType = string;

// @public
export type TimeGrainType = string;

// @public
export interface UsageDetail extends Resource {
    kind: UsageDetailsKind;
}

// @public
export interface UsageDetails {
    list(scope: string, options?: UsageDetailsListOptionalParams): PagedAsyncIterableIterator<UsageDetailUnion>;
}

// @public
export type UsageDetailsKind = string;

// @public
export interface UsageDetailsListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type UsageDetailsListNextResponse = UsageDetailsListResult;

// @public
export interface UsageDetailsListOptionalParams extends coreClient.OperationOptions {
    expand?: string;
    filter?: string;
    metric?: Metrictype;
    skiptoken?: string;
    top?: number;
}

// @public
export type UsageDetailsListResponse = UsageDetailsListResult;

// @public
export interface UsageDetailsListResult {
    readonly nextLink?: string;
    readonly value?: UsageDetailUnion[];
}

// @public (undocumented)
export type UsageDetailUnion = UsageDetail | LegacyUsageDetail | ModernUsageDetail;

// (No @packageDocumentation comment for this package)

```
