getReservationUtilization method
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 DataUnavailableException.
May throw InvalidNextTokenException.
May throw LimitExceededException.
Parameter timePeriod :
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, 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 maxResults :
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.
Parameter nextPageToken :
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.
Parameter sortBy :
The value that you want to sort the data by.
The following values are supported for Key:
-
UtilizationPercentage -
UtilizationPercentageInUnits -
PurchasedHours -
PurchasedUnits -
TotalActualHours -
TotalActualUnits -
UnusedHours -
UnusedUnits -
OnDemandCostOfRIHoursUsed -
NetRISavings -
TotalPotentialRISavings -
AmortizedUpfrontFee -
AmortizedRecurringFee -
TotalAmortizedFee -
RICostForUnusedHours -
RealizedSavings -
UnrealizedSavings
SortOrder are ASCENDING
and DESCENDING.
Implementation
Future<GetReservationUtilizationResponse> getReservationUtilization({
required DateInterval timePeriod,
Expression? filter,
Granularity? granularity,
List<GroupDefinition>? groupBy,
int? maxResults,
String? nextPageToken,
SortDefinition? sortBy,
}) async {
_s.validateNumRange(
'maxResults',
maxResults,
1,
1152921504606846976,
);
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.value,
if (groupBy != null) 'GroupBy': groupBy,
if (maxResults != null) 'MaxResults': maxResults,
if (nextPageToken != null) 'NextPageToken': nextPageToken,
if (sortBy != null) 'SortBy': sortBy,
},
);
return GetReservationUtilizationResponse.fromJson(jsonResponse.body);
}