getCostForecast method
Retrieves a forecast for how much Amazon Web Services predicts that you will spend over the forecast time period that you select, based on your past costs.
May throw BillingViewHealthStatusException.
May throw DataUnavailableException.
May throw LimitExceededException.
May throw ResourceNotFoundException.
Parameter granularity :
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.
Parameter metric :
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 values for a GetCostForecast call are the following:
- AMORTIZED_COST
- BLENDED_COST
- NET_AMORTIZED_COST
- NET_UNBLENDED_COST
- UNBLENDED_COST
Parameter timePeriod :
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.
Parameter billingViewArn :
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 making API calls related
to Amazon Web Services Billing and Cost Management features. The
BillingViewArn can be retrieved by calling the ListBillingViews API.
Parameter filter :
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 -
USAGE_TYPE -
USAGE_TYPE_GROUP -
RECORD_TYPE -
OPERATING_SYSTEM -
TENANCY -
SCOPE -
PLATFORM -
SUBSCRIPTION_ID -
LEGAL_ENTITY_NAME -
DEPLOYMENT_OPTION -
DATABASE_ENGINE -
INSTANCE_TYPE_FAMILY -
BILLING_ENTITY -
RESERVATION_ID -
SAVINGS_PLAN_ARN
Parameter predictionIntervalLevel :
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 confident Cost Explorer
is about the actual value falling in the prediction interval. Higher
confidence levels result in wider prediction intervals.
Implementation
Future<GetCostForecastResponse> getCostForecast({
required Granularity granularity,
required Metric metric,
required DateInterval timePeriod,
String? billingViewArn,
Expression? filter,
int? predictionIntervalLevel,
}) async {
_s.validateNumRange(
'predictionIntervalLevel',
predictionIntervalLevel,
51,
99,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AWSInsightsIndexService.GetCostForecast'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'Granularity': granularity.value,
'Metric': metric.value,
'TimePeriod': timePeriod,
if (billingViewArn != null) 'BillingViewArn': billingViewArn,
if (filter != null) 'Filter': filter,
if (predictionIntervalLevel != null)
'PredictionIntervalLevel': predictionIntervalLevel,
},
);
return GetCostForecastResponse.fromJson(jsonResponse.body);
}