export interface Expression {
    /** Return results that match either Dimension object. */
    Or?: any[];
    /** Return results that match both Dimension objects. */
    And?: any[];
    /** Return results that don't match a Dimension object. */
    Not?: any;
    /** The specific Dimension to use for Expression. */
    Dimensions?: any;
    /** The specific Tag to use for Expression. */
    Tags?: any;
    /** The filter that's based on CostCategory values. */
    CostCategories?: any;
}
export interface AnomalyMonitor {
    /** The Amazon Resource Name (ARN) value. */
    MonitorArn?: string;
    /** The name of the monitor. */
    MonitorName: string;
    /** The date when the monitor was created. */
    CreationDate?: string;
    /** The date when the monitor was last updated. */
    LastUpdatedDate?: string;
    /** The date when the monitor last evaluated for anomalies. */
    LastEvaluatedDate?: string;
    /** The type of the monitor. Set this to DIMENSIONAL for an Amazon Web Services managed monitor. Amazon Web Services managed monitors automatically track up to the top 5,000 values by cost within a dimens */
    MonitorType: 'DIMENSIONAL' | 'CUSTOM';
    /** For customer managed monitors, do not specify this field. For Amazon Web Services managed monitors, this field controls which cost dimension is automatically analyzed by the monitor. For TAG and COST_ */
    MonitorDimension?: 'SERVICE' | 'LINKED_ACCOUNT' | 'TAG' | 'COST_CATEGORY';
    /** An Expression object used to control what costs the monitor analyzes for anomalies. For Amazon Web Services managed monitors: If MonitorDimension is SERVICE or LINKED_ACCOUNT, do not specify this fiel */
    MonitorSpecification?: Expression;
    /** The value for evaluated dimensions. */
    DimensionalValueCount?: number;
}
export interface ResourceTag {
    /** The key that's associated with the tag. */
    Key: string;
    /** The value that's associated with the tag. */
    Value: string;
}
export interface AnomalySubscription {
    /** The AnomalySubscription Amazon Resource Name (ARN). */
    SubscriptionArn?: string;
    /** Your unique account identifier. */
    AccountId?: string;
    /** A list of cost anomaly monitors. */
    MonitorArnList: string[];
    /** A list of subscribers to notify. */
    Subscribers: any[];
    /** (deprecated) An absolute dollar value that must be exceeded by the anomaly's total impact (see Impact for more details) for an anomaly notification to be generated. This field has been deprecated. To  */
    Threshold?: number;
    /** The frequency that anomaly notifications are sent. Notifications are sent either over email (for DAILY and WEEKLY frequencies) or SNS (for IMMEDIATE frequency). For more information, see Creating an A */
    Frequency: 'DAILY' | 'IMMEDIATE' | 'WEEKLY';
    /** The name for the subscription. */
    SubscriptionName: string;
    /** An Expression object used to specify the anomalies that you want to generate alerts for. This supports dimensions and nested expressions. The supported dimensions are ANOMALY_TOTAL_IMPACT_ABSOLUTE and */
    ThresholdExpression?: Expression;
}
export interface CostCategoryRule {
    Value?: string;
    /** An Expression object used to categorize costs. This supports dimensions, tags, and nested expressions. Currently the only dimensions supported are LINKED_ACCOUNT, SERVICE_CODE, RECORD_TYPE, LINKED_ACC */
    Rule?: any;
    /** The value the line item is categorized as if the line item contains the matched dimension. */
    InheritedValue?: any;
    /** You can define the CostCategoryRule rule type as either REGULAR or INHERITED_VALUE. The INHERITED_VALUE rule type adds the flexibility to define a rule that dynamically inherits the cost category valu */
    Type?: 'REGULAR' | 'INHERITED_VALUE';
}
export interface CostCategorySplitChargeRule {
    /** The cost category value that you want to split. That value can't be used as a source or a target in other split charge rules. To indicate uncategorized costs, you can use an empty string as the source */
    Source: string;
    /** The cost category values that you want to split costs across. These values can't be used as a source in other split charge rules. */
    Targets: any[];
    /** The method that's used to define how to split your source costs across your targets. Proportional - Allocates charges across your targets based on the proportional weighted cost of each target. Fixed  */
    Method: 'FIXED' | 'PROPORTIONAL' | 'EVEN';
    /** The parameters for a split charge method. This is only required for the FIXED method. */
    Parameters?: any[];
}
export interface AnomalyDateInterval {
    /** The first date an anomaly was observed. */
    StartDate: string;
    /** The last date an anomaly was observed. */
    EndDate?: string;
}
export interface TotalImpactFilter {
    /** The comparing value that's used in the filter. */
    NumericOperator: 'EQUAL' | 'GREATER_THAN_OR_EQUAL' | 'LESS_THAN_OR_EQUAL' | 'GREATER_THAN' | 'LESS_THAN' | 'BETWEEN';
    /** The lower bound dollar value that's used in the filter. */
    StartValue: number;
    /** The upper bound dollar value that's used in the filter. */
    EndValue?: number;
}
export interface DateInterval {
    /** The beginning of the time period. The start date is inclusive. For example, if start is 2017-01-01, Amazon Web Services retrieves cost and usage data starting at 2017-01-01 up to the end date. The sta */
    Start: string;
    /** The end of the time period. The end date is exclusive. For example, if end is 2017-05-01, Amazon Web Services retrieves cost and usage data from the start date up to, but not including, 2017-05-01. */
    End: string;
}
export interface GroupDefinition {
    /** The string that represents the type of group. */
    Type?: 'DIMENSION' | 'TAG' | 'COST_CATEGORY';
    /** The string that represents a key for a specified group. */
    Key?: string;
}
export interface SortDefinition {
    /** The key that's used to sort the data. */
    Key: string;
    /** The order that's used to sort the data. */
    SortOrder?: 'ASCENDING' | 'DESCENDING';
}
export interface EC2Specification {
    /** Indicates whether you want a recommendation for standard or convertible reservations. */
    OfferingClass?: 'STANDARD' | 'CONVERTIBLE';
}
export interface ServiceSpecification {
    /** The Amazon EC2 hardware specifications that you want Amazon Web Services to provide recommendations for. */
    EC2Specification?: EC2Specification;
}
export interface RightsizingRecommendationConfiguration {
    /** The option to see recommendations within the same instance family or recommendations for instances across other families. The default value is SAME_INSTANCE_FAMILY. */
    RecommendationTarget: 'SAME_INSTANCE_FAMILY' | 'CROSS_INSTANCE_FAMILY';
    /** The option to consider RI or Savings Plans discount benefits in your savings calculation. The default value is TRUE. */
    BenefitsConsidered: boolean;
}
export interface SavingsPlansPurchaseAnalysisConfiguration {
    /** The account scope that you want your analysis for. */
    AccountScope?: 'PAYER' | 'LINKED';
    /** The account that the analysis is for. */
    AccountId?: string;
    /** The type of analysis. */
    AnalysisType: 'MAX_SAVINGS' | 'CUSTOM_COMMITMENT';
    /** Savings Plans to include in the analysis. */
    SavingsPlansToAdd: any[];
    /** Savings Plans to exclude from the analysis. */
    SavingsPlansToExclude?: any[];
    /** The time period associated with the analysis. */
    LookBackTimePeriod: any;
}
export interface CommitmentPurchaseAnalysisConfiguration {
    /** The configuration for the Savings Plans purchase analysis. */
    SavingsPlansPurchaseAnalysisConfiguration?: SavingsPlansPurchaseAnalysisConfiguration;
}
export interface Subscriber {
    /** The email address or SNS Amazon Resource Name (ARN). This depends on the Type. */
    Address?: string;
    /** The notification delivery channel. */
    Type?: 'EMAIL' | 'SNS';
    /** Indicates if the subscriber accepts the notifications. */
    Status?: 'CONFIRMED' | 'DECLINED';
}
export interface CostAllocationTagStatusEntry {
    /** The key for the cost allocation tag. */
    TagKey: string;
    /** The status of a cost allocation tag. */
    Status: 'Active' | 'Inactive';
}
export interface CreateAnomalyMonitorInput {
    /** The cost anomaly detection monitor object that you want to create. */
    AnomalyMonitor: AnomalyMonitor;
    /** An optional list of tags to associate with the specified AnomalyMonitor . You can use resource tags to control access to your monitor using IAM policies. Each tag consists of a key and a value, and ea */
    ResourceTags?: ResourceTag[];
}
export interface CreateAnomalySubscriptionInput {
    /** The cost anomaly subscription object that you want to create. */
    AnomalySubscription: AnomalySubscription;
    /** An optional list of tags to associate with the specified AnomalySubscription . You can use resource tags to control access to your subscription using IAM policies. Each tag consists of a key and a val */
    ResourceTags?: ResourceTag[];
}
export interface CreateCostCategoryDefinitionInput {
    Name: string;
    /** The cost category rules used to categorize costs. For more information, see CostCategoryRule. */
    Rules: CostCategoryRule[];
    RuleVersion: 'CostCategoryExpression.v1';
    DefaultValue?: string;
    /** The cost category's effective start date. It can only be a billing start date (first day of the month). If the date isn't provided, it's the first day of the current month. Dates can't be before the p */
    EffectiveStart?: string;
    /** An optional list of tags to associate with the specified CostCategory . You can use resource tags to control access to your cost category using IAM policies. Each tag consists of a key and a value, an */
    ResourceTags?: ResourceTag[];
    /** The split charge rules used to allocate your charges between your cost category values. */
    SplitChargeRules?: CostCategorySplitChargeRule[];
}
export interface DeleteAnomalyMonitorInput {
    /** The unique identifier of the cost anomaly monitor that you want to delete. */
    MonitorArn: string;
}
export interface DeleteAnomalySubscriptionInput {
    /** The unique identifier of the cost anomaly subscription that you want to delete. */
    SubscriptionArn: string;
}
export interface DeleteCostCategoryDefinitionInput {
    /** The unique identifier for your cost category. */
    CostCategoryArn: string;
}
export interface DescribeCostCategoryDefinitionInput {
    /** The unique identifier for your cost category. */
    CostCategoryArn: string;
    /** The date when the cost category was effective. */
    EffectiveOn?: string;
}
export interface GetAnomaliesInput {
    /** Assigns the start and end dates for retrieving cost anomalies. The returned anomaly object will have an AnomalyEndDate in the specified time range. */
    DateInterval: AnomalyDateInterval;
    /** Filters anomaly results by the feedback field on the anomaly object. */
    Feedback?: 'YES' | 'NO' | 'PLANNED_ACTIVITY';
    /** The number of entries a paginated response contains. */
    MaxResults?: number;
    /** Retrieves all of the cost anomalies detected for a specific cost anomaly monitor Amazon Resource Name (ARN). */
    MonitorArn?: string;
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextPageToken?: string;
    /** Filters anomaly results by the total impact field on the anomaly object. For example, you can filter anomalies GREATER_THAN 200.00 to retrieve anomalies, with an estimated dollar impact greater than 2 */
    TotalImpact?: TotalImpactFilter;
}
export interface GetAnomalyMonitorsInput {
    /** The number of entries that a paginated response contains. */
    MaxResults?: number;
    /** A list of cost anomaly monitor ARNs. */
    MonitorArnList?: string[];
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextPageToken?: string;
}
export interface GetAnomalySubscriptionsInput {
    /** The number of entries a paginated response contains. */
    MaxResults?: number;
    /** Cost anomaly monitor ARNs. */
    MonitorArn?: string;
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextPageToken?: string;
    /** A list of cost anomaly subscription ARNs. */
    SubscriptionArnList?: string[];
}
export interface GetApproximateUsageRecordsInput {
    /** The service to evaluate for the usage records. You can choose resource-level data at daily granularity, or hourly granularity with or without resource-level data. */
    ApproximationDimension: 'SERVICE' | 'RESOURCE';
    /** How granular you want the data to be. You can enable data at hourly or daily granularity. */
    Granularity: 'DAILY' | 'MONTHLY' | 'HOURLY';
    /** The service metadata for the service or services you want to query. If not specified, all elements are returned. */
    Services?: string[];
}
export interface GetCommitmentPurchaseAnalysisInput {
    /** The analysis ID that's associated with the commitment purchase analysis. */
    AnalysisId: string;
}
export interface GetCostAndUsageInput {
    /** Sets the Amazon Web Services cost granularity to MONTHLY or DAILY, or HOURLY. If Granularity isn't set, the response object doesn't include the Granularity, either MONTHLY or DAILY, or HOURLY. */
    Granularity: 'DAILY' | 'MONTHLY' | 'HOURLY';
    /** Which metrics are returned in the query. For more information about blended and unblended rates, see Why does the "blended" annotation appear on some line items in my bill?. Valid values are Amortized */
    Metrics: string[];
    /** Sets the start date and end date for retrieving Amazon Web Services costs. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then t */
    TimePeriod: DateInterval;
    /** The Amazon Resource Name (ARN) that uniquely identifies a specific billing view. The ARN is used to specify which particular billing view you want to interact with or retrieve information from when ma */
    BillingViewArn?: string;
    /** Filters Amazon Web Services costs by different dimensions. For example, you can specify SERVICE and LINKED_ACCOUNT and get the costs that are associated with that account's usage of that service. You  */
    Filter?: Expression;
    /** You can group Amazon Web Services costs using up to two different groups, either dimensions, tag keys, cost categories, or any two group by types. Valid values for the DIMENSION type are AZ, INSTANCE_ */
    GroupBy?: GroupDefinition[];
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextPageToken?: string;
}
export interface GetCostAndUsageComparisonsInput {
    /** The reference time period for comparison. This time period serves as the baseline against which other cost and usage data will be compared. The interval must start and end on the first day of a month, */
    BaselineTimePeriod: DateInterval;
    /** The comparison time period for analysis. This time period's cost and usage data will be compared against the baseline time period. The interval must start and end on the first day of a month, with a d */
    ComparisonTimePeriod: DateInterval;
    /** The cost and usage metric to compare. Valid values are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, NormalizedUsageAmount, UnblendedCost, and UsageQuantity. */
    MetricForComparison: string;
    /** The Amazon Resource Name (ARN) that uniquely identifies a specific billing view. The ARN is used to specify which particular billing view you want to interact with or retrieve information from when ma */
    BillingViewArn?: string;
    Filter?: Expression;
    /** You can group results using the attributes DIMENSION, TAG, and COST_CATEGORY. */
    GroupBy?: GroupDefinition[];
    /** The maximum number of results that are returned for the request. */
    MaxResults?: number;
    /** The token to retrieve the next set of paginated results. */
    NextPageToken?: string;
}
export interface GetCostAndUsageWithResourcesInput {
    /** Filters Amazon Web Services costs by different dimensions. For example, you can specify SERVICE and LINKED_ACCOUNT and get the costs that are associated with that account's usage of that service. You  */
    Filter: Expression;
    /** Sets the Amazon Web Services cost granularity to MONTHLY, DAILY, or HOURLY. If Granularity isn't set, the response object doesn't include the Granularity, MONTHLY, DAILY, or HOURLY. */
    Granularity: 'DAILY' | 'MONTHLY' | 'HOURLY';
    /** Sets the start and end dates for retrieving Amazon Web Services costs. The range must be within the last 14 days (the start date cannot be earlier than 14 days ago). The start date is inclusive, but t */
    TimePeriod: DateInterval;
    /** The Amazon Resource Name (ARN) that uniquely identifies a specific billing view. The ARN is used to specify which particular billing view you want to interact with or retrieve information from when ma */
    BillingViewArn?: string;
    /** You can group Amazon Web Services costs using up to two different groups: DIMENSION, TAG, COST_CATEGORY. */
    GroupBy?: GroupDefinition[];
    /** Which metrics are returned in the query. For more information about blended and unblended rates, see Why does the "blended" annotation appear on some line items in my bill?. Valid values are Amortized */
    Metrics?: string[];
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextPageToken?: string;
}
export interface GetCostCategoriesInput {
    TimePeriod: DateInterval;
    /** The Amazon Resource Name (ARN) that uniquely identifies a specific billing view. The ARN is used to specify which particular billing view you want to interact with or retrieve information from when ma */
    BillingViewArn?: string;
    CostCategoryName?: string;
    Filter?: Expression;
    /** This field is only used when the SortBy value is provided in the request. The maximum number of objects that are returned for this request. If MaxResults isn't specified with the SortBy value, the req */
    MaxResults?: number;
    /** If the number of objects that are still available for retrieval exceeds the quota, Amazon Web Services returns a NextPageToken value in the response. To retrieve the next batch of objects, provide the */
    NextPageToken?: string;
    /** The value that you want to search the filter values for. If you don't specify a CostCategoryName, SearchString is used to filter cost category names that match the SearchString pattern. If you specify */
    SearchString?: string;
    /** The value that you sort the data by. The key represents the cost and usage metrics. The following values are supported: BlendedCost UnblendedCost AmortizedCost NetAmortizedCost NetUnblendedCost UsageQ */
    SortBy?: SortDefinition[];
}
export interface GetCostComparisonDriversInput {
    /** The reference time period for comparison. This time period serves as the baseline against which other cost and usage data will be compared. The interval must start and end on the first day of a month, */
    BaselineTimePeriod: DateInterval;
    /** The comparison time period for analysis. This time period's cost and usage data will be compared against the baseline time period. The interval must start and end on the first day of a month, with a d */
    ComparisonTimePeriod: DateInterval;
    /** The cost and usage metric to compare. Valid values are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, NormalizedUsageAmount, UnblendedCost, and UsageQuantity. */
    MetricForComparison: string;
    /** The Amazon Resource Name (ARN) that uniquely identifies a specific billing view. The ARN is used to specify which particular billing view you want to interact with or retrieve information from when ma */
    BillingViewArn?: string;
    Filter?: Expression;
    /** You can group results using the attributes DIMENSION, TAG, and COST_CATEGORY. Note that SERVICE and USAGE_TYPE dimensions are automatically included in the cost comparison drivers analysis. */
    GroupBy?: GroupDefinition[];
    /** The maximum number of results that are returned for the request. */
    MaxResults?: number;
    /** The token to retrieve the next set of paginated results. */
    NextPageToken?: string;
}
export interface GetCostForecastInput {
    /** How granular you want the forecast to be. You can get 3 months of DAILY forecasts or 18 months of MONTHLY forecasts. The GetCostForecast operation supports only DAILY and MONTHLY granularities. */
    Granularity: 'DAILY' | 'MONTHLY' | 'HOURLY';
    /** Which metric Cost Explorer uses to create your forecast. For more information about blended and unblended rates, see Why does the "blended" annotation appear on some line items in my bill?. Valid valu */
    Metric: 'BLENDED_COST' | 'UNBLENDED_COST' | 'AMORTIZED_COST' | 'NET_UNBLENDED_COST' | 'NET_AMORTIZED_COST' | 'USAGE_QUANTITY' | 'NORMALIZED_USAGE_AMOUNT';
    /** The period of time that you want the forecast to cover. The start date must be equal to or no later than the current date to avoid a validation error. */
    TimePeriod: DateInterval;
    /** The Amazon Resource Name (ARN) that uniquely identifies a specific billing view. The ARN is used to specify which particular billing view you want to interact with or retrieve information from when ma */
    BillingViewArn?: string;
    /** The filters that you want to use to filter your forecast. The GetCostForecast API supports filtering by the following dimensions: AZ INSTANCE_TYPE LINKED_ACCOUNT OPERATION PURCHASE_TYPE REGION SERVICE */
    Filter?: Expression;
    /** Cost Explorer always returns the mean forecast as a single point. You can request a prediction interval around the mean by specifying a confidence level. The higher the confidence level, the more conf */
    PredictionIntervalLevel?: number;
}
export interface GetDimensionValuesInput {
    /** The name of the dimension. Each Dimension is available for a different Context. For more information, see Context. LINK_ACCOUNT_NAME and SERVICE_CODE can only be used in CostCategoryRule. */
    Dimension: 'AZ' | 'INSTANCE_TYPE' | 'LINKED_ACCOUNT' | 'PAYER_ACCOUNT' | 'LINKED_ACCOUNT_NAME' | 'OPERATION' | 'PURCHASE_TYPE' | 'REGION' | 'SERVICE' | 'SERVICE_CODE' | 'USAGE_TYPE' | 'USAGE_TYPE_GROUP' | 'RECORD_TYPE' | 'OPERATING_SYSTEM' | 'TENANCY' | 'SCOPE' | 'PLATFORM' | 'SUBSCRIPTION_ID' | 'LEGAL_ENTITY_NAME' | 'DEPLOYMENT_OPTION' | 'DATABASE_ENGINE' | 'CACHE_ENGINE' | 'INSTANCE_TYPE_FAMILY' | 'BILLING_ENTITY' | 'RESERVATION_ID' | 'RESOURCE_ID' | 'RIGHTSIZING_TYPE' | 'SAVINGS_PLANS_TYPE' | 'SAVINGS_PLAN_ARN' | 'PAYMENT_OPTION' | 'AGREEMENT_END_DATE_TIME_AFTER' | 'AGREEMENT_END_DATE_TIME_BEFORE' | 'INVOICING_ENTITY' | 'ANOMALY_TOTAL_IMPACT_ABSOLUTE' | 'ANOMALY_TOTAL_IMPACT_PERCENTAGE';
    /** The start date and end date for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost an */
    TimePeriod: DateInterval;
    /** The Amazon Resource Name (ARN) that uniquely identifies a specific billing view. The ARN is used to specify which particular billing view you want to interact with or retrieve information from when ma */
    BillingViewArn?: string;
    /** The context for the call to GetDimensionValues. This can be RESERVATIONS or COST_AND_USAGE. The default value is COST_AND_USAGE. If the context is set to RESERVATIONS, the resulting dimension values c */
    Context?: 'COST_AND_USAGE' | 'RESERVATIONS' | 'SAVINGS_PLANS';
    Filter?: Expression;
    /** This field is only used when SortBy is provided in the request. The maximum number of objects that are returned for this request. If MaxResults isn't specified with SortBy, the request returns 1000 re */
    MaxResults?: number;
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextPageToken?: string;
    /** The value that you want to search the filter values for. */
    SearchString?: string;
    /** The value that you want to sort the data by. The key represents cost and usage metrics. The following values are supported: BlendedCost UnblendedCost AmortizedCost NetAmortizedCost NetUnblendedCost Us */
    SortBy?: SortDefinition[];
}
/** You can use the following request parameters to query for how much of your instance usage a reservation covered. */
export interface GetReservationCoverageInput {
    /** The start and end dates of the period that you want to retrieve data about reservation coverage for. You can retrieve data for a maximum of 13 months: the last 12 months and the current month. The sta */
    TimePeriod: DateInterval;
    /** Filters utilization data by dimensions. You can filter by the following dimensions: AZ CACHE_ENGINE DATABASE_ENGINE DEPLOYMENT_OPTION INSTANCE_TYPE LINKED_ACCOUNT OPERATING_SYSTEM PLATFORM REGION SERV */
    Filter?: Expression;
    /** The granularity of the Amazon Web Services cost data for the reservation. Valid values are MONTHLY and DAILY. If GroupBy is set, Granularity can't be set. If Granularity isn't set, the response object */
    Granularity?: 'DAILY' | 'MONTHLY' | 'HOURLY';
    /** You can group the data by the following attributes: AZ CACHE_ENGINE DATABASE_ENGINE DEPLOYMENT_OPTION INSTANCE_TYPE INVOICING_ENTITY LINKED_ACCOUNT OPERATING_SYSTEM PLATFORM REGION TENANCY */
    GroupBy?: GroupDefinition[];
    /** The maximum number of objects that you returned for this request. If more objects are available, in the response, Amazon Web Services provides a NextPageToken value that you can use in a subsequent ca */
    MaxResults?: number;
    /** The measurement that you want your reservation coverage reported in. Valid values are Hour, Unit, and Cost. You can use multiple values in a request. */
    Metrics?: string[];
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextPageToken?: string;
    /** The value by which you want to sort the data. The following values are supported for Key: OnDemandCost CoverageHoursPercentage OnDemandHours ReservedHours TotalRunningHours CoverageNormalizedUnitsPerc */
    SortBy?: SortDefinition;
}
export interface GetReservationPurchaseRecommendationInput {
    /** The specific service that you want recommendations for. */
    Service: string;
    /** The account ID that's associated with the recommendation. */
    AccountId?: string;
    /** The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the management account and member accounts if the value is set to PAYER. If the value */
    AccountScope?: 'PAYER' | 'LINKED';
    Filter?: Expression;
    /** The number of previous days that you want Amazon Web Services to consider when it calculates your recommendations. */
    LookbackPeriodInDays?: 'SEVEN_DAYS' | 'THIRTY_DAYS' | 'SIXTY_DAYS';
    /** The pagination token that indicates the next set of results that you want to retrieve. */
    NextPageToken?: string;
    /** The number of recommendations that you want returned in a single response object. */
    PageSize?: number;
    /** The reservation purchase option that you want recommendations for. */
    PaymentOption?: 'NO_UPFRONT' | 'PARTIAL_UPFRONT' | 'ALL_UPFRONT' | 'LIGHT_UTILIZATION' | 'MEDIUM_UTILIZATION' | 'HEAVY_UTILIZATION';
    /** The hardware specifications for the service instances that you want recommendations for, such as standard or convertible Amazon EC2 instances. */
    ServiceSpecification?: ServiceSpecification;
    /** The reservation term that you want recommendations for. */
    TermInYears?: 'ONE_YEAR' | 'THREE_YEARS';
}
export interface GetReservationUtilizationInput {
    /** Sets the start and end dates for retrieving Reserved Instance (RI) utilization. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, t */
    TimePeriod: DateInterval;
    /** Filters utilization data by dimensions. You can filter by the following dimensions: AZ CACHE_ENGINE DEPLOYMENT_OPTION INSTANCE_TYPE LINKED_ACCOUNT OPERATING_SYSTEM PLATFORM REGION SERVICE If not speci */
    Filter?: Expression;
    /** If GroupBy is set, Granularity can't be set. If Granularity isn't set, the response object doesn't include Granularity, either MONTHLY or DAILY. If both GroupBy and Granularity aren't set, GetReservat */
    Granularity?: 'DAILY' | 'MONTHLY' | 'HOURLY';
    /** Groups only by SUBSCRIPTION_ID. Metadata is included. */
    GroupBy?: GroupDefinition[];
    /** The maximum number of objects that you returned for this request. If more objects are available, in the response, Amazon Web Services provides a NextPageToken value that you can use in a subsequent ca */
    MaxResults?: number;
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextPageToken?: string;
    /** The value that you want to sort the data by. The following values are supported for Key: UtilizationPercentage UtilizationPercentageInUnits PurchasedHours PurchasedUnits TotalActualHours TotalActualUn */
    SortBy?: SortDefinition;
}
export interface GetRightsizingRecommendationInput {
    /** The specific service that you want recommendations for. The only valid value for GetRightsizingRecommendation is "AmazonEC2". */
    Service: string;
    /** You can use Configuration to customize recommendations across two attributes. You can choose to view recommendations for instances within the same instance families or across different instance famili */
    Configuration?: RightsizingRecommendationConfiguration;
    Filter?: Expression;
    /** The pagination token that indicates the next set of results that you want to retrieve. */
    NextPageToken?: string;
    /** The number of recommendations that you want returned in a single response object. */
    PageSize?: number;
}
export interface GetSavingsPlanPurchaseRecommendationDetailsInput {
    /** The ID that is associated with the Savings Plan recommendation. */
    RecommendationDetailId: string;
}
export interface GetSavingsPlansCoverageInput {
    /** The time period that you want the usage and costs for. The Start date must be within 13 months. The End date must be after the Start date, and before the current date. Future dates can't be used as an */
    TimePeriod: DateInterval;
    /** Filters Savings Plans coverage data by dimensions. You can filter data for Savings Plans usage with the following dimensions: LINKED_ACCOUNT REGION SERVICE INSTANCE_FAMILY GetSavingsPlansCoverage uses */
    Filter?: Expression;
    /** The granularity of the Amazon Web Services cost data for your Savings Plans. Granularity can't be set if GroupBy is set. The GetSavingsPlansCoverage operation supports only DAILY and MONTHLY granulari */
    Granularity?: 'DAILY' | 'MONTHLY' | 'HOURLY';
    /** You can group the data using the attributes INSTANCE_FAMILY, REGION, or SERVICE. */
    GroupBy?: GroupDefinition[];
    /** The number of items to be returned in a response. The default is 20, with a minimum value of 1. */
    MaxResults?: number;
    /** The measurement that you want your Savings Plans coverage reported in. The only valid value is SpendCoveredBySavingsPlans. */
    Metrics?: string[];
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextToken?: string;
    /** The value that you want to sort the data by. The following values are supported for Key: SpendCoveredBySavingsPlan OnDemandCost CoveragePercentage TotalCost InstanceFamily Region Service The supported */
    SortBy?: SortDefinition;
}
export interface GetSavingsPlansPurchaseRecommendationInput {
    /** The lookback period that's used to generate the recommendation. */
    LookbackPeriodInDays: 'SEVEN_DAYS' | 'THIRTY_DAYS' | 'SIXTY_DAYS';
    /** The payment option that's used to generate these recommendations. */
    PaymentOption: 'NO_UPFRONT' | 'PARTIAL_UPFRONT' | 'ALL_UPFRONT' | 'LIGHT_UTILIZATION' | 'MEDIUM_UTILIZATION' | 'HEAVY_UTILIZATION';
    /** The Savings Plans recommendation type that's requested. */
    SavingsPlansType: 'COMPUTE_SP' | 'EC2_INSTANCE_SP' | 'SAGEMAKER_SP' | 'DATABASE_SP';
    /** The savings plan recommendation term that's used to generate these recommendations. */
    TermInYears: 'ONE_YEAR' | 'THREE_YEARS';
    /** The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the management account and member accounts if the value is set to PAYER. If the value */
    AccountScope?: 'PAYER' | 'LINKED';
    /** You can filter your recommendations by Account ID with the LINKED_ACCOUNT dimension. To filter your recommendations by Account ID, specify Key as LINKED_ACCOUNT and Value as the comma-separated Acount */
    Filter?: Expression;
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextPageToken?: string;
    /** The number of recommendations that you want returned in a single response object. */
    PageSize?: number;
}
export interface GetSavingsPlansUtilizationInput {
    /** The time period that you want the usage and costs for. The Start date must be within 13 months. The End date must be after the Start date, and before the current date. Future dates can't be used as an */
    TimePeriod: DateInterval;
    /** Filters Savings Plans utilization coverage data for active Savings Plans dimensions. You can filter data with the following dimensions: LINKED_ACCOUNT SAVINGS_PLAN_ARN SAVINGS_PLANS_TYPE REGION PAYMEN */
    Filter?: Expression;
    /** The granularity of the Amazon Web Services utillization data for your Savings Plans. The GetSavingsPlansUtilization operation supports only DAILY and MONTHLY granularities. */
    Granularity?: 'DAILY' | 'MONTHLY' | 'HOURLY';
    /** The value that you want to sort the data by. The following values are supported for Key: UtilizationPercentage TotalCommitment UsedCommitment UnusedCommitment NetSavings The supported values for SortO */
    SortBy?: SortDefinition;
}
export interface GetSavingsPlansUtilizationDetailsInput {
    /** The time period that you want the usage and costs for. The Start date must be within 13 months. The End date must be after the Start date, and before the current date. Future dates can't be used as an */
    TimePeriod: DateInterval;
    /** The data type. */
    DataType?: 'ATTRIBUTES' | 'UTILIZATION' | 'AMORTIZED_COMMITMENT' | 'SAVINGS'[];
    /** Filters Savings Plans utilization coverage data for active Savings Plans dimensions. You can filter data with the following dimensions: LINKED_ACCOUNT SAVINGS_PLAN_ARN REGION PAYMENT_OPTION INSTANCE_T */
    Filter?: Expression;
    /** The number of items to be returned in a response. The default is 20, with a minimum value of 1. */
    MaxResults?: number;
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextToken?: string;
    /** The value that you want to sort the data by. The following values are supported for Key: UtilizationPercentage TotalCommitment UsedCommitment UnusedCommitment NetSavings AmortizedRecurringCommitment A */
    SortBy?: SortDefinition;
}
export interface GetTagsInput {
    /** The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and us */
    TimePeriod: DateInterval;
    /** The Amazon Resource Name (ARN) that uniquely identifies a specific billing view. The ARN is used to specify which particular billing view you want to interact with or retrieve information from when ma */
    BillingViewArn?: string;
    Filter?: Expression;
    /** This field is only used when SortBy is provided in the request. The maximum number of objects that are returned for this request. If MaxResults isn't specified with SortBy, the request returns 1000 re */
    MaxResults?: number;
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextPageToken?: string;
    /** The value that you want to search for. */
    SearchString?: string;
    /** The value that you want to sort the data by. The key represents cost and usage metrics. The following values are supported: BlendedCost UnblendedCost AmortizedCost NetAmortizedCost NetUnblendedCost Us */
    SortBy?: SortDefinition[];
    /** The key of the tag that you want to return values for. */
    TagKey?: string;
}
export interface GetUsageForecastInput {
    /** How granular you want the forecast to be. You can get 3 months of DAILY forecasts or 18 months of MONTHLY forecasts. The GetUsageForecast operation supports only DAILY and MONTHLY granularities. */
    Granularity: 'DAILY' | 'MONTHLY' | 'HOURLY';
    /** Which metric Cost Explorer uses to create your forecast. Valid values for a GetUsageForecast call are the following: USAGE_QUANTITY NORMALIZED_USAGE_AMOUNT */
    Metric: 'BLENDED_COST' | 'UNBLENDED_COST' | 'AMORTIZED_COST' | 'NET_UNBLENDED_COST' | 'NET_AMORTIZED_COST' | 'USAGE_QUANTITY' | 'NORMALIZED_USAGE_AMOUNT';
    /** The start and end dates of the period that you want to retrieve usage forecast for. The start date is included in the period, but the end date isn't included in the period. For example, if start is 20 */
    TimePeriod: DateInterval;
    /** The Amazon Resource Name (ARN) that uniquely identifies a specific billing view. The ARN is used to specify which particular billing view you want to interact with or retrieve information from when ma */
    BillingViewArn?: string;
    /** The filters that you want to use to filter your forecast. The GetUsageForecast API supports filtering by the following dimensions: AZ INSTANCE_TYPE LINKED_ACCOUNT LINKED_ACCOUNT_NAME OPERATION PURCHAS */
    Filter?: Expression;
    /** Amazon Web Services Cost Explorer always returns the mean forecast as a single point. You can request a prediction interval around the mean by specifying a confidence level. The higher the confidence  */
    PredictionIntervalLevel?: number;
}
export interface ListCommitmentPurchaseAnalysesInput {
    /** The analysis IDs associated with the commitment purchase analyses. */
    AnalysisIds?: string[];
    /** The status of the analysis. */
    AnalysisStatus?: 'SUCCEEDED' | 'PROCESSING' | 'FAILED';
    /** The token to retrieve the next set of results. */
    NextPageToken?: string;
    /** The number of analyses that you want returned in a single response object. */
    PageSize?: number;
}
export interface ListCostAllocationTagBackfillHistoryInput {
    /** The maximum number of objects that are returned for this request. */
    MaxResults?: number;
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextToken?: string;
}
export interface ListCostAllocationTagsInput {
    /** The maximum number of objects that are returned for this request. By default, the request returns 100 results. */
    MaxResults?: number;
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextToken?: string;
    /** The status of cost allocation tag keys that are returned for this request. */
    Status?: 'Active' | 'Inactive';
    /** The list of cost allocation tag keys that are returned for this request. */
    TagKeys?: string[];
    /** The type of CostAllocationTag object that are returned for this request. The AWSGenerated type tags are tags that Amazon Web Services defines and applies to support Amazon Web Services resources for c */
    Type?: 'AWSGenerated' | 'UserDefined';
}
export interface ListCostCategoryDefinitionsInput {
    /** The date when the cost category was effective. */
    EffectiveOn?: string;
    /** The number of entries a paginated response contains. */
    MaxResults?: number;
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextToken?: string;
    /** Filter cost category definitions that are supported by given resource types based on the latest version. If the filter is present, the result only includes Cost Categories that supports input resource */
    SupportedResourceTypes?: string[];
}
export interface ListCostCategoryResourceAssociationsInput {
    /** The unique identifier for your cost category. */
    CostCategoryArn?: string;
    /** The number of entries a paginated response contains. */
    MaxResults?: number;
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextToken?: string;
}
export interface ListSavingsPlansPurchaseRecommendationGenerationInput {
    /** The status of the recommendation generation. */
    GenerationStatus?: 'SUCCEEDED' | 'PROCESSING' | 'FAILED';
    /** The token to retrieve the next set of results. */
    NextPageToken?: string;
    /** The number of recommendations that you want returned in a single response object. */
    PageSize?: number;
    /** The IDs for each specific recommendation. */
    RecommendationIds?: string[];
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. For a list of supported resources, see ResourceTag. */
    ResourceArn: string;
}
export interface ProvideAnomalyFeedbackInput {
    /** A cost anomaly ID. */
    AnomalyId: string;
    /** Describes whether the cost anomaly was a planned activity or you considered it an anomaly. */
    Feedback: 'YES' | 'NO' | 'PLANNED_ACTIVITY';
}
export interface StartCommitmentPurchaseAnalysisInput {
    /** The configuration for the commitment purchase analysis. */
    CommitmentPurchaseAnalysisConfiguration: CommitmentPurchaseAnalysisConfiguration;
}
export interface StartCostAllocationTagBackfillInput {
    /** The date you want the backfill to start from. The date can only be a first day of the month (a billing start date). Dates can't precede the previous twelve months, or in the future. */
    BackfillFrom: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. For a list of supported resources, see ResourceTag. */
    ResourceArn: string;
    /** A list of tag key-value pairs to be added to the resource. Each tag consists of a key and a value, and each key must be unique for the resource. The following restrictions apply to resource tags: Alth */
    ResourceTags: ResourceTag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. For a list of supported resources, see ResourceTag. */
    ResourceArn: string;
    /** A list of tag keys associated with tags that need to be removed from the resource. If you specify a tag key that doesn't exist, it's ignored. Although the maximum number of array members is 200, user- */
    ResourceTagKeys: string[];
}
export interface UpdateAnomalyMonitorInput {
    /** Cost anomaly monitor Amazon Resource Names (ARNs). */
    MonitorArn: string;
    /** The new name for the cost anomaly monitor. */
    MonitorName?: string;
}
export interface UpdateAnomalySubscriptionInput {
    /** A cost anomaly subscription Amazon Resource Name (ARN). */
    SubscriptionArn: string;
    /** The update to the frequency value that subscribers receive notifications. */
    Frequency?: 'DAILY' | 'IMMEDIATE' | 'WEEKLY';
    /** A list of cost anomaly monitor ARNs. */
    MonitorArnList?: string[];
    /** The update to the subscriber list. */
    Subscribers?: Subscriber[];
    /** The new name of the subscription. */
    SubscriptionName?: string;
    /** (deprecated) The update to the threshold value for receiving notifications. This field has been deprecated. To update a threshold, use ThresholdExpression. Continued use of Threshold will be treated a */
    Threshold?: number;
    /** The update to the Expression object used to specify the anomalies that you want to generate alerts for. This supports dimensions and nested expressions. The supported dimensions are ANOMALY_TOTAL_IMPA */
    ThresholdExpression?: Expression;
}
export interface UpdateCostAllocationTagsStatusInput {
    /** The list of CostAllocationTagStatusEntry objects that are used to update cost allocation tags status for this request. */
    CostAllocationTagsStatus: CostAllocationTagStatusEntry[];
}
export interface UpdateCostCategoryDefinitionInput {
    /** The unique identifier for your cost category. */
    CostCategoryArn: string;
    /** The Expression object used to categorize costs. For more information, see CostCategoryRule . */
    Rules: CostCategoryRule[];
    RuleVersion: 'CostCategoryExpression.v1';
    DefaultValue?: string;
    /** The cost category's effective start date. It can only be a billing start date (first day of the month). If the date isn't provided, it's the first day of the current month. Dates can't be before the p */
    EffectiveStart?: string;
    /** The split charge rules used to allocate your charges between your cost category values. */
    SplitChargeRules?: CostCategorySplitChargeRule[];
}
/** Cost Explorer service binding for Step Functions SDK integrations. */
export declare class CostExplorer {
    constructor();
    createAnomalyMonitor<T>(params: CreateAnomalyMonitorInput): Promise<T>;
    createAnomalySubscription<T>(params: CreateAnomalySubscriptionInput): Promise<T>;
    createCostCategoryDefinition<T>(params: CreateCostCategoryDefinitionInput): Promise<T>;
    deleteAnomalyMonitor<T>(params: DeleteAnomalyMonitorInput): Promise<T>;
    deleteAnomalySubscription<T>(params: DeleteAnomalySubscriptionInput): Promise<T>;
    deleteCostCategoryDefinition<T>(params: DeleteCostCategoryDefinitionInput): Promise<T>;
    describeCostCategoryDefinition<T>(params: DescribeCostCategoryDefinitionInput): Promise<T>;
    getAnomalies<T>(params: GetAnomaliesInput): Promise<T>;
    getAnomalyMonitors<T>(params: GetAnomalyMonitorsInput): Promise<T>;
    getAnomalySubscriptions<T>(params: GetAnomalySubscriptionsInput): Promise<T>;
    getApproximateUsageRecords<T>(params: GetApproximateUsageRecordsInput): Promise<T>;
    getCommitmentPurchaseAnalysis<T>(params: GetCommitmentPurchaseAnalysisInput): Promise<T>;
    getCostAndUsage<T>(params: GetCostAndUsageInput): Promise<T>;
    getCostAndUsageComparisons<T>(params: GetCostAndUsageComparisonsInput): Promise<T>;
    getCostAndUsageWithResources<T>(params: GetCostAndUsageWithResourcesInput): Promise<T>;
    getCostCategories<T>(params: GetCostCategoriesInput): Promise<T>;
    getCostComparisonDrivers<T>(params: GetCostComparisonDriversInput): Promise<T>;
    getCostForecast<T>(params: GetCostForecastInput): Promise<T>;
    getDimensionValues<T>(params: GetDimensionValuesInput): Promise<T>;
    getReservationCoverage<T>(params: GetReservationCoverageInput): Promise<T>;
    getReservationPurchaseRecommendation<T>(params: GetReservationPurchaseRecommendationInput): Promise<T>;
    getReservationUtilization<T>(params: GetReservationUtilizationInput): Promise<T>;
    getRightsizingRecommendation<T>(params: GetRightsizingRecommendationInput): Promise<T>;
    getSavingsPlanPurchaseRecommendationDetails<T>(params: GetSavingsPlanPurchaseRecommendationDetailsInput): Promise<T>;
    getSavingsPlansCoverage<T>(params: GetSavingsPlansCoverageInput): Promise<T>;
    getSavingsPlansPurchaseRecommendation<T>(params: GetSavingsPlansPurchaseRecommendationInput): Promise<T>;
    getSavingsPlansUtilization<T>(params: GetSavingsPlansUtilizationInput): Promise<T>;
    getSavingsPlansUtilizationDetails<T>(params: GetSavingsPlansUtilizationDetailsInput): Promise<T>;
    getTags<T>(params: GetTagsInput): Promise<T>;
    getUsageForecast<T>(params: GetUsageForecastInput): Promise<T>;
    listCommitmentPurchaseAnalyses<T>(params: ListCommitmentPurchaseAnalysesInput): Promise<T>;
    listCostAllocationTagBackfillHistory<T>(params: ListCostAllocationTagBackfillHistoryInput): Promise<T>;
    listCostAllocationTags<T>(params: ListCostAllocationTagsInput): Promise<T>;
    listCostCategoryDefinitions<T>(params: ListCostCategoryDefinitionsInput): Promise<T>;
    listCostCategoryResourceAssociations<T>(params: ListCostCategoryResourceAssociationsInput): Promise<T>;
    listSavingsPlansPurchaseRecommendationGeneration<T>(params: ListSavingsPlansPurchaseRecommendationGenerationInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    provideAnomalyFeedback<T>(params: ProvideAnomalyFeedbackInput): Promise<T>;
    startCommitmentPurchaseAnalysis<T>(params: StartCommitmentPurchaseAnalysisInput): Promise<T>;
    startCostAllocationTagBackfill<T>(params: StartCostAllocationTagBackfillInput): Promise<T>;
    startSavingsPlansPurchaseRecommendationGeneration<T>(params: Record<string, any>): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateAnomalyMonitor<T>(params: UpdateAnomalyMonitorInput): Promise<T>;
    updateAnomalySubscription<T>(params: UpdateAnomalySubscriptionInput): Promise<T>;
    updateCostAllocationTagsStatus<T>(params: UpdateCostAllocationTagsStatusInput): Promise<T>;
    updateCostCategoryDefinition<T>(params: UpdateCostCategoryDefinitionInput): Promise<T>;
}
//# sourceMappingURL=CostExplorer.d.ts.map