queryForecast method

Future<QueryForecastResponse> queryForecast({
  1. required Map<String, String> filters,
  2. required String forecastArn,
  3. String? endDate,
  4. String? nextToken,
  5. String? startDate,
})

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);
}