class Aws::CostExplorer::Types::GetReservationCoverageRequest

You can use the following request parameters to query for how much of your instance usage a reservation covered.

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

data as a hash:

    {
      time_period: { # required
        start: "YearMonthDay", # required
        end: "YearMonthDay", # required
      },
      group_by: [
        {
          type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
          key: "GroupDefinitionKey",
        },
      ],
      granularity: "DAILY", # accepts DAILY, MONTHLY, HOURLY
      filter: {
        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
        },
      },
      metrics: ["MetricName"],
      next_page_token: "NextPageToken",
      sort_by: {
        key: "SortDefinitionKey", # required
        sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
      },
      max_results: 1,
    }

@!attribute [rw] time_period

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 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
usage data is retrieved from `2017-01-01` up to and including
`2017-04-30` but not including `2017-05-01`.
@return [Types::DateInterval]

@!attribute [rw] group_by

You can group the data by the following attributes:

* AZ

* CACHE\_ENGINE

* DATABASE\_ENGINE

* DEPLOYMENT\_OPTION

* INSTANCE\_TYPE

* LINKED\_ACCOUNT

* OPERATING\_SYSTEM

* PLATFORM

* REGION

* TENANCY
@return [Array<Types::GroupDefinition>]

@!attribute [rw] granularity

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 doesn't include `Granularity`,
either `MONTHLY` or `DAILY`.

The `GetReservationCoverage` operation supports only `DAILY` and
`MONTHLY` granularities.
@return [String]

@!attribute [rw] filter

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

* SERVICE

* TAG

* TENANCY

`GetReservationCoverage` uses the same [Expression][1] object as the
other operations, but only `AND` is supported among each dimension.
You can nest only one level deep. If there are multiple values for a
dimension, they are OR'd together.

If you don't provide a `SERVICE` filter, Cost Explorer defaults to
EC2.

Cost category is also supported.

[1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
@return [Types::Expression]

@!attribute [rw] metrics

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.
@return [Array<String>]

@!attribute [rw] next_page_token

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.
@return [String]

@!attribute [rw] sort_by

The value by which you want to sort the data.

The following values are supported for `Key`\:

* `OnDemandCost`

* `CoverageHoursPercentage`

* `OnDemandHours`

* `ReservedHours`

* `TotalRunningHours`

* `CoverageNormalizedUnitsPercentage`

* `OnDemandNormalizedUnits`

* `ReservedNormalizedUnits`

* `TotalRunningNormalizedUnits`

* `Time`

Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
@return [Types::SortDefinition]

@!attribute [rw] max_results

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 call
to get the next batch of objects.
@return [Integer]

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

Constants

SENSITIVE