queryForecast method
Retrieves a forecast for a single item, filtered by the supplied criteria.
The criteria is a key-value pair. The key is either item_id
(or the equivalent non-timestamp, non-target field) from the
TARGET_TIME_SERIES
dataset, or one of the forecast dimensions
specified as part of the FeaturizationConfig
object.
By default, QueryForecast
returns the complete date range for
the filtered forecast. You can request a specific date range.
To get the full forecast, use the CreateForecastExportJob operation.
May throw ResourceNotFoundException. May throw ResourceInUseException. May throw InvalidInputException. May throw LimitExceededException. May throw InvalidNextTokenException.
Parameter filters
:
The filtering criteria to apply when retrieving the forecast. For example,
to get the forecast for client_21
in the electricity usage
dataset, specify the following:
{"item_id" : "client_21"}
To get the full forecast, use the CreateForecastExportJob operation.
Parameter forecastArn
:
The Amazon Resource Name (ARN) of the forecast to query.
Parameter endDate
:
The end date for the forecast. Specify the date using this format:
yyyy-MM-dd'T'HH:mm:ss (ISO 8601 format). For example, 2015-01-01T20:00:00.
Parameter nextToken
:
If the result of the previous request was truncated, the response includes
a NextToken
. To retrieve the next set of results, use the
token in the next request. Tokens expire after 24 hours.
Parameter startDate
:
The start date for the forecast. Specify the date using this format:
yyyy-MM-dd'T'HH:mm:ss (ISO 8601 format). For example, 2015-01-01T08:00:00.
Implementation
Future<QueryForecastResponse> queryForecast({
required Map<String, String> filters,
required String forecastArn,
String? endDate,
String? nextToken,
String? startDate,
}) async {
ArgumentError.checkNotNull(filters, 'filters');
ArgumentError.checkNotNull(forecastArn, 'forecastArn');
_s.validateStringLength(
'forecastArn',
forecastArn,
0,
256,
isRequired: true,
);
_s.validateStringLength(
'nextToken',
nextToken,
1,
3000,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AmazonForecastRuntime.QueryForecast'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'Filters': filters,
'ForecastArn': forecastArn,
if (endDate != null) 'EndDate': endDate,
if (nextToken != null) 'NextToken': nextToken,
if (startDate != null) 'StartDate': startDate,
},
);
return QueryForecastResponse.fromJson(jsonResponse.body);
}