class Aws::CostExplorer::Types::CostCategoryRule

Rules are processed in order. If there are multiple rules that match the line item, then the first rule to match is used to determine that Cost Category value.

@note When making an API call, you may pass CostCategoryRule

data as a hash:

    {
      value: "CostCategoryValue",
      rule: {
        or: [
          {
            # recursive Expression
          },
        ],
        and: [
          {
            # recursive Expression
          },
        ],
        not: {
          # recursive Expression
        },
        dimensions: {
          key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_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
          values: ["Value"],
          match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
        },
        tags: {
          key: "TagKey",
          values: ["Value"],
          match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
        },
        cost_categories: {
          key: "CostCategoryName",
          values: ["Value"],
          match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
        },
      },
      inherited_value: {
        dimension_name: "LINKED_ACCOUNT_NAME", # accepts LINKED_ACCOUNT_NAME, TAG
        dimension_key: "GenericString",
      },
      type: "REGULAR", # accepts REGULAR, INHERITED_VALUE
    }

@!attribute [rw] value

The default value for the cost category.
@return [String]

@!attribute [rw] rule

An [Expression][1] object used to categorize costs. This supports
dimensions, tags, and nested expressions. Currently the only
dimensions supported are `LINKED_ACCOUNT`, `SERVICE_CODE`,
`RECORD_TYPE`, and `LINKED_ACCOUNT_NAME`.

Root level `OR` isn't supported. We recommend that you create a
separate rule instead.

`RECORD_TYPE` is a dimension used for Cost Explorer APIs, and is
also supported for Cost Category expressions. This dimension uses
different terms, depending on whether you're using the console or
API/JSON editor. For a detailed comparison, see [Term
Comparisons][2] in the *Billing and Cost Management User Guide*.

[1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
[2]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html#cost-categories-terms
@return [Types::Expression]

@!attribute [rw] inherited_value

The value the line item is categorized as if the line item contains
the matched dimension.
@return [Types::CostCategoryInheritedValueDimension]

@!attribute [rw] type

You can define the `CostCategoryRule` rule type as either `REGULAR`
or `INHERITED_VALUE`. The `INHERITED_VALUE` rule type adds the
flexibility of defining a rule that dynamically inherits the cost
category value from the dimension value defined by
`CostCategoryInheritedValueDimension`. For example, if you want to
dynamically group costs based on the value of a specific tag key,
first choose an inherited value rule type, then choose the tag
dimension and specify the tag key to use.
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategoryRule AWS API Documentation

Constants

SENSITIVE