getReservationUtilization method
- required DateInterval timePeriod,
- Expression? filter,
- Granularity? granularity,
- List<
GroupDefinition> ? groupBy, - String? nextPageToken,
Retrieves the reservation utilization for your account. Management account
in an organization have access to member accounts. You can filter data by
dimensions in a time period. You can use GetDimensionValues
to determine the possible dimension values. Currently, you can group only
by SUBSCRIPTION_ID
.
May throw LimitExceededException. May throw DataUnavailableException. May throw InvalidNextTokenException.
Parameter timePeriod
:
Sets the start and end dates for retrieving 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
, 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
.
Parameter filter
:
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
- SCOPE
- TENANCY
GetReservationUtilization
uses the same Expression
object as the other operations, but only AND
is supported
among each dimension, and nesting is supported up to only one level deep.
If there are multiple values for a dimension, they are OR'd together.
Parameter granularity
:
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,
GetReservationUtilization
defaults to DAILY
.
The GetReservationUtilization
operation supports only
DAILY
and MONTHLY
granularities.
Parameter groupBy
:
Groups only by SUBSCRIPTION_ID
. Metadata is included.
Parameter nextPageToken
:
The token to retrieve the next set of results. AWS provides the token when
the response from a previous call has more results than the maximum page
size.
Implementation
Future<GetReservationUtilizationResponse> getReservationUtilization({
required DateInterval timePeriod,
Expression? filter,
Granularity? granularity,
List<GroupDefinition>? groupBy,
String? nextPageToken,
}) async {
ArgumentError.checkNotNull(timePeriod, 'timePeriod');
_s.validateStringLength(
'nextPageToken',
nextPageToken,
0,
8192,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AWSInsightsIndexService.GetReservationUtilization'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'TimePeriod': timePeriod,
if (filter != null) 'Filter': filter,
if (granularity != null) 'Granularity': granularity.toValue(),
if (groupBy != null) 'GroupBy': groupBy,
if (nextPageToken != null) 'NextPageToken': nextPageToken,
},
);
return GetReservationUtilizationResponse.fromJson(jsonResponse.body);
}