com.amazonaws.services.forecast.AmazonForecastClient Maven / Gradle / Ivy
Show all versions of aws-java-sdk-forecast Show documentation
/*
* Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package com.amazonaws.services.forecast;
import org.w3c.dom.*;
import java.net.*;
import java.util.*;
import javax.annotation.Generated;
import org.apache.commons.logging.*;
import com.amazonaws.*;
import com.amazonaws.annotation.SdkInternalApi;
import com.amazonaws.auth.*;
import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
import com.amazonaws.internal.auth.*;
import com.amazonaws.metrics.*;
import com.amazonaws.regions.*;
import com.amazonaws.transform.*;
import com.amazonaws.util.*;
import com.amazonaws.protocol.json.*;
import com.amazonaws.util.AWSRequestMetrics.Field;
import com.amazonaws.annotation.ThreadSafe;
import com.amazonaws.client.AwsSyncClientParams;
import com.amazonaws.client.builder.AdvancedConfig;
import com.amazonaws.services.forecast.AmazonForecastClientBuilder;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.services.forecast.model.*;
import com.amazonaws.services.forecast.model.transform.*;
/**
* Client for accessing Amazon Forecast Service. All service calls made using this client are blocking, and will not
* return until the service call completes.
*
*
* Provides APIs for creating and managing Amazon Forecast resources.
*
*/
@ThreadSafe
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class AmazonForecastClient extends AmazonWebServiceClient implements AmazonForecast {
/** Provider for AWS credentials. */
private final AWSCredentialsProvider awsCredentialsProvider;
private static final Log log = LogFactory.getLog(AmazonForecast.class);
/** Default signing name for the service. */
private static final String DEFAULT_SIGNING_NAME = "forecast";
/** Client configuration factory providing ClientConfigurations tailored to this client */
protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory();
private final AdvancedConfig advancedConfig;
private static final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory(
new JsonClientMetadata()
.withProtocolVersion("1.1")
.withSupportsCbor(false)
.withSupportsIon(false)
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ResourceInUseException").withExceptionUnmarshaller(
com.amazonaws.services.forecast.model.transform.ResourceInUseExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidNextTokenException").withExceptionUnmarshaller(
com.amazonaws.services.forecast.model.transform.InvalidNextTokenExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("LimitExceededException").withExceptionUnmarshaller(
com.amazonaws.services.forecast.model.transform.LimitExceededExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ResourceNotFoundException").withExceptionUnmarshaller(
com.amazonaws.services.forecast.model.transform.ResourceNotFoundExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidInputException").withExceptionUnmarshaller(
com.amazonaws.services.forecast.model.transform.InvalidInputExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ResourceAlreadyExistsException").withExceptionUnmarshaller(
com.amazonaws.services.forecast.model.transform.ResourceAlreadyExistsExceptionUnmarshaller.getInstance()))
.withBaseServiceExceptionClass(com.amazonaws.services.forecast.model.AmazonForecastException.class));
public static AmazonForecastClientBuilder builder() {
return AmazonForecastClientBuilder.standard();
}
/**
* Constructs a new client to invoke service methods on Amazon Forecast Service using the specified parameters.
*
*
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param clientParams
* Object providing client parameters.
*/
AmazonForecastClient(AwsSyncClientParams clientParams) {
this(clientParams, false);
}
/**
* Constructs a new client to invoke service methods on Amazon Forecast Service using the specified parameters.
*
*
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param clientParams
* Object providing client parameters.
*/
AmazonForecastClient(AwsSyncClientParams clientParams, boolean endpointDiscoveryEnabled) {
super(clientParams);
this.awsCredentialsProvider = clientParams.getCredentialsProvider();
this.advancedConfig = clientParams.getAdvancedConfig();
init();
}
private void init() {
setServiceNameIntern(DEFAULT_SIGNING_NAME);
setEndpointPrefix(ENDPOINT_PREFIX);
// calling this.setEndPoint(...) will also modify the signer accordingly
setEndpoint("forecast.us-east-1.amazonaws.com");
HandlerChainFactory chainFactory = new HandlerChainFactory();
requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/forecast/request.handlers"));
requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/forecast/request.handler2s"));
requestHandler2s.addAll(chainFactory.getGlobalHandlers());
}
/**
*
* Creates an Amazon Forecast dataset. The information about the dataset that you provide helps Forecast understand
* how to consume the data for model training. This includes the following:
*
*
* -
*
* DataFrequency
- How frequently your historical time-series data is collected.
*
*
* -
*
* Domain
and DatasetType
- Each dataset has an associated dataset
* domain and a type within the domain. Amazon Forecast provides a list of predefined domains and types within each
* domain. For each unique dataset domain and type within the domain, Amazon Forecast requires your data to include
* a minimum set of predefined fields.
*
*
* -
*
* Schema
- A schema specifies the fields in the dataset, including the field name and data
* type.
*
*
*
*
* After creating a dataset, you import your training data into it and add the dataset to a dataset group. You use
* the dataset group to create a predictor. For more information, see howitworks-datasets-groups.
*
*
* To get a list of all your datasets, use the ListDatasets operation.
*
*
* For example Forecast datasets, see the Amazon Forecast Sample GitHub
* repository.
*
*
*
* The Status
of a dataset must be ACTIVE
before you can import training data. Use the
* DescribeDataset operation to get the status.
*
*
*
* @param createDatasetRequest
* @return Result of the CreateDataset operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceAlreadyExistsException
* There is already a resource with this name. Try again with a different name.
* @throws LimitExceededException
* The limit on the number of resources per account has been exceeded.
* @sample AmazonForecast.CreateDataset
* @see AWS API
* Documentation
*/
@Override
public CreateDatasetResult createDataset(CreateDatasetRequest request) {
request = beforeClientExecution(request);
return executeCreateDataset(request);
}
@SdkInternalApi
final CreateDatasetResult executeCreateDataset(CreateDatasetRequest createDatasetRequest) {
ExecutionContext executionContext = createExecutionContext(createDatasetRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateDatasetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createDatasetRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateDataset");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateDatasetResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a dataset group, which holds a collection of related datasets. You can add datasets to the dataset group
* when you create the dataset group, or later by using the UpdateDatasetGroup operation.
*
*
* After creating a dataset group and adding datasets, you use the dataset group when you create a predictor. For
* more information, see howitworks-datasets-groups.
*
*
* To get a list of all your datasets groups, use the ListDatasetGroups operation.
*
*
*
* The Status
of a dataset group must be ACTIVE
before you can create use the dataset
* group to create a predictor. To get the status, use the DescribeDatasetGroup operation.
*
*
*
* @param createDatasetGroupRequest
* @return Result of the CreateDatasetGroup operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceAlreadyExistsException
* There is already a resource with this name. Try again with a different name.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @throws ResourceInUseException
* The specified resource is in use.
* @throws LimitExceededException
* The limit on the number of resources per account has been exceeded.
* @sample AmazonForecast.CreateDatasetGroup
* @see AWS
* API Documentation
*/
@Override
public CreateDatasetGroupResult createDatasetGroup(CreateDatasetGroupRequest request) {
request = beforeClientExecution(request);
return executeCreateDatasetGroup(request);
}
@SdkInternalApi
final CreateDatasetGroupResult executeCreateDatasetGroup(CreateDatasetGroupRequest createDatasetGroupRequest) {
ExecutionContext executionContext = createExecutionContext(createDatasetGroupRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateDatasetGroupRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createDatasetGroupRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateDatasetGroup");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateDatasetGroupResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Imports your training data to an Amazon Forecast dataset. You provide the location of your training data in an
* Amazon Simple Storage Service (Amazon S3) bucket and the Amazon Resource Name (ARN) of the dataset that you want
* to import the data to.
*
*
* You must specify a DataSource object that includes an AWS Identity and Access Management (IAM) role that
* Amazon Forecast can assume to access the data. For more information, see aws-forecast-iam-roles.
*
*
* The training data must be in CSV format. The delimiter must be a comma (,).
*
*
* You can specify the path to a specific CSV file, the S3 bucket, or to a folder in the S3 bucket. For the latter
* two cases, Amazon Forecast imports all files up to the limit of 10,000 files.
*
*
* To get a list of all your dataset import jobs, filtered by specified criteria, use the
* ListDatasetImportJobs operation.
*
*
* @param createDatasetImportJobRequest
* @return Result of the CreateDatasetImportJob operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceAlreadyExistsException
* There is already a resource with this name. Try again with a different name.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @throws ResourceInUseException
* The specified resource is in use.
* @throws LimitExceededException
* The limit on the number of resources per account has been exceeded.
* @sample AmazonForecast.CreateDatasetImportJob
* @see AWS API Documentation
*/
@Override
public CreateDatasetImportJobResult createDatasetImportJob(CreateDatasetImportJobRequest request) {
request = beforeClientExecution(request);
return executeCreateDatasetImportJob(request);
}
@SdkInternalApi
final CreateDatasetImportJobResult executeCreateDatasetImportJob(CreateDatasetImportJobRequest createDatasetImportJobRequest) {
ExecutionContext executionContext = createExecutionContext(createDatasetImportJobRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateDatasetImportJobRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createDatasetImportJobRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateDatasetImportJob");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new CreateDatasetImportJobResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a forecast for each item in the TARGET_TIME_SERIES
dataset that was used to train the
* predictor. This is known as inference. To retrieve the forecast for a single item at low latency, use the
* operation. To export the complete forecast into your Amazon Simple Storage Service (Amazon S3) bucket, use the
* CreateForecastExportJob operation.
*
*
* The range of the forecast is determined by the ForecastHorizon
value, which you specify in the
* CreatePredictor request, multiplied by the DataFrequency
value, which you specify in the
* CreateDataset request. When you query a forecast, you can request a specific date range within the
* forecast.
*
*
* To get a list of all your forecasts, use the ListForecasts operation.
*
*
*
* The forecasts generated by Amazon Forecast are in the same time zone as the dataset that was used to create the
* predictor.
*
*
*
* For more information, see howitworks-forecast.
*
*
*
* The Status
of the forecast must be ACTIVE
before you can query or export the forecast.
* Use the DescribeForecast operation to get the status.
*
*
*
* @param createForecastRequest
* @return Result of the CreateForecast operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceAlreadyExistsException
* There is already a resource with this name. Try again with a different name.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @throws ResourceInUseException
* The specified resource is in use.
* @throws LimitExceededException
* The limit on the number of resources per account has been exceeded.
* @sample AmazonForecast.CreateForecast
* @see AWS API
* Documentation
*/
@Override
public CreateForecastResult createForecast(CreateForecastRequest request) {
request = beforeClientExecution(request);
return executeCreateForecast(request);
}
@SdkInternalApi
final CreateForecastResult executeCreateForecast(CreateForecastRequest createForecastRequest) {
ExecutionContext executionContext = createExecutionContext(createForecastRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateForecastRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createForecastRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateForecast");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateForecastResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Exports a forecast created by the CreateForecast operation to your Amazon Simple Storage Service (Amazon
* S3) bucket. The forecast file name will match the following conventions:
*
*
* <ForecastExportJobName>_<ExportTimestamp>_<PageNumber>
*
*
* where the <ExportTimestamp> component is in Java SimpleDateFormat (yyyy-MM-ddTHH-mm-ssZ).
*
*
* You must specify a DataDestination object that includes an AWS Identity and Access Management (IAM) role
* that Amazon Forecast can assume to access the Amazon S3 bucket. For more information, see
* aws-forecast-iam-roles.
*
*
* For more information, see howitworks-forecast.
*
*
* To get a list of all your forecast export jobs, use the ListForecastExportJobs operation.
*
*
*
* The Status
of the forecast export job must be ACTIVE
before you can access the forecast
* in your Amazon S3 bucket. To get the status, use the DescribeForecastExportJob operation.
*
*
*
* @param createForecastExportJobRequest
* @return Result of the CreateForecastExportJob operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceAlreadyExistsException
* There is already a resource with this name. Try again with a different name.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @throws ResourceInUseException
* The specified resource is in use.
* @throws LimitExceededException
* The limit on the number of resources per account has been exceeded.
* @sample AmazonForecast.CreateForecastExportJob
* @see AWS API Documentation
*/
@Override
public CreateForecastExportJobResult createForecastExportJob(CreateForecastExportJobRequest request) {
request = beforeClientExecution(request);
return executeCreateForecastExportJob(request);
}
@SdkInternalApi
final CreateForecastExportJobResult executeCreateForecastExportJob(CreateForecastExportJobRequest createForecastExportJobRequest) {
ExecutionContext executionContext = createExecutionContext(createForecastExportJobRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateForecastExportJobRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(createForecastExportJobRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateForecastExportJob");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new CreateForecastExportJobResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates an Amazon Forecast predictor.
*
*
* In the request, you provide a dataset group and either specify an algorithm or let Amazon Forecast choose the
* algorithm for you using AutoML. If you specify an algorithm, you also can override algorithm-specific
* hyperparameters.
*
*
* Amazon Forecast uses the chosen algorithm to train a model using the latest version of the datasets in the
* specified dataset group. The result is called a predictor. You then generate a forecast using the
* CreateForecast operation.
*
*
* After training a model, the CreatePredictor
operation also evaluates it. To see the evaluation
* metrics, use the GetAccuracyMetrics operation. Always review the evaluation metrics before deciding to use
* the predictor to generate a forecast.
*
*
* Optionally, you can specify a featurization configuration to fill and aggregate the data fields in the
* TARGET_TIME_SERIES
dataset to improve model training. For more information, see
* FeaturizationConfig.
*
*
* For RELATED_TIME_SERIES datasets, CreatePredictor
verifies that the DataFrequency
* specified when the dataset was created matches the ForecastFrequency
. TARGET_TIME_SERIES datasets
* don't have this restriction. Amazon Forecast also verifies the delimiter and timestamp format. For more
* information, see howitworks-datasets-groups.
*
*
* AutoML
*
*
* If you want Amazon Forecast to evaluate each algorithm and choose the one that minimizes the
* objective function
, set PerformAutoML
to true
. The
* objective function
is defined as the mean of the weighted p10, p50, and p90 quantile losses. For
* more information, see EvaluationResult.
*
*
* When AutoML is enabled, the following properties are disallowed:
*
*
* -
*
* AlgorithmArn
*
*
* -
*
* HPOConfig
*
*
* -
*
* PerformHPO
*
*
* -
*
* TrainingParameters
*
*
*
*
* To get a list of all of your predictors, use the ListPredictors operation.
*
*
*
* Before you can use the predictor to create a forecast, the Status
of the predictor must be
* ACTIVE
, signifying that training has completed. To get the status, use the DescribePredictor
* operation.
*
*
*
* @param createPredictorRequest
* @return Result of the CreatePredictor operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceAlreadyExistsException
* There is already a resource with this name. Try again with a different name.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @throws ResourceInUseException
* The specified resource is in use.
* @throws LimitExceededException
* The limit on the number of resources per account has been exceeded.
* @sample AmazonForecast.CreatePredictor
* @see AWS API
* Documentation
*/
@Override
public CreatePredictorResult createPredictor(CreatePredictorRequest request) {
request = beforeClientExecution(request);
return executeCreatePredictor(request);
}
@SdkInternalApi
final CreatePredictorResult executeCreatePredictor(CreatePredictorRequest createPredictorRequest) {
ExecutionContext executionContext = createExecutionContext(createPredictorRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreatePredictorRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createPredictorRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreatePredictor");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreatePredictorResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes an Amazon Forecast dataset that was created using the CreateDataset operation. You can only delete
* datasets that have a status of ACTIVE
or CREATE_FAILED
. To get the status use the
* DescribeDataset operation.
*
*
* @param deleteDatasetRequest
* @return Result of the DeleteDataset operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @throws ResourceInUseException
* The specified resource is in use.
* @sample AmazonForecast.DeleteDataset
* @see AWS API
* Documentation
*/
@Override
public DeleteDatasetResult deleteDataset(DeleteDatasetRequest request) {
request = beforeClientExecution(request);
return executeDeleteDataset(request);
}
@SdkInternalApi
final DeleteDatasetResult executeDeleteDataset(DeleteDatasetRequest deleteDatasetRequest) {
ExecutionContext executionContext = createExecutionContext(deleteDatasetRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteDatasetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteDatasetRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteDataset");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteDatasetResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a dataset group created using the CreateDatasetGroup operation. You can only delete dataset groups
* that have a status of ACTIVE
, CREATE_FAILED
, or UPDATE_FAILED
. To get the
* status, use the DescribeDatasetGroup operation.
*
*
* This operation deletes only the dataset group, not the datasets in the group.
*
*
* @param deleteDatasetGroupRequest
* @return Result of the DeleteDatasetGroup operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @throws ResourceInUseException
* The specified resource is in use.
* @sample AmazonForecast.DeleteDatasetGroup
* @see AWS
* API Documentation
*/
@Override
public DeleteDatasetGroupResult deleteDatasetGroup(DeleteDatasetGroupRequest request) {
request = beforeClientExecution(request);
return executeDeleteDatasetGroup(request);
}
@SdkInternalApi
final DeleteDatasetGroupResult executeDeleteDatasetGroup(DeleteDatasetGroupRequest deleteDatasetGroupRequest) {
ExecutionContext executionContext = createExecutionContext(deleteDatasetGroupRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteDatasetGroupRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteDatasetGroupRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteDatasetGroup");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteDatasetGroupResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a dataset import job created using the CreateDatasetImportJob operation. You can delete only
* dataset import jobs that have a status of ACTIVE
or CREATE_FAILED
. To get the status,
* use the DescribeDatasetImportJob operation.
*
*
* @param deleteDatasetImportJobRequest
* @return Result of the DeleteDatasetImportJob operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @throws ResourceInUseException
* The specified resource is in use.
* @sample AmazonForecast.DeleteDatasetImportJob
* @see AWS API Documentation
*/
@Override
public DeleteDatasetImportJobResult deleteDatasetImportJob(DeleteDatasetImportJobRequest request) {
request = beforeClientExecution(request);
return executeDeleteDatasetImportJob(request);
}
@SdkInternalApi
final DeleteDatasetImportJobResult executeDeleteDatasetImportJob(DeleteDatasetImportJobRequest deleteDatasetImportJobRequest) {
ExecutionContext executionContext = createExecutionContext(deleteDatasetImportJobRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteDatasetImportJobRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteDatasetImportJobRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteDatasetImportJob");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DeleteDatasetImportJobResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a forecast created using the CreateForecast operation. You can delete only forecasts that have a
* status of ACTIVE
or CREATE_FAILED
. To get the status, use the DescribeForecast
* operation.
*
*
* You can't delete a forecast while it is being exported. After a forecast is deleted, you can no longer query the
* forecast.
*
*
* @param deleteForecastRequest
* @return Result of the DeleteForecast operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @throws ResourceInUseException
* The specified resource is in use.
* @sample AmazonForecast.DeleteForecast
* @see AWS API
* Documentation
*/
@Override
public DeleteForecastResult deleteForecast(DeleteForecastRequest request) {
request = beforeClientExecution(request);
return executeDeleteForecast(request);
}
@SdkInternalApi
final DeleteForecastResult executeDeleteForecast(DeleteForecastRequest deleteForecastRequest) {
ExecutionContext executionContext = createExecutionContext(deleteForecastRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteForecastRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteForecastRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteForecast");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteForecastResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a forecast export job created using the CreateForecastExportJob operation. You can delete only
* export jobs that have a status of ACTIVE
or CREATE_FAILED
. To get the status, use the
* DescribeForecastExportJob operation.
*
*
* @param deleteForecastExportJobRequest
* @return Result of the DeleteForecastExportJob operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @throws ResourceInUseException
* The specified resource is in use.
* @sample AmazonForecast.DeleteForecastExportJob
* @see AWS API Documentation
*/
@Override
public DeleteForecastExportJobResult deleteForecastExportJob(DeleteForecastExportJobRequest request) {
request = beforeClientExecution(request);
return executeDeleteForecastExportJob(request);
}
@SdkInternalApi
final DeleteForecastExportJobResult executeDeleteForecastExportJob(DeleteForecastExportJobRequest deleteForecastExportJobRequest) {
ExecutionContext executionContext = createExecutionContext(deleteForecastExportJobRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteForecastExportJobRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(deleteForecastExportJobRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteForecastExportJob");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DeleteForecastExportJobResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a predictor created using the CreatePredictor operation. You can delete only predictor that have a
* status of ACTIVE
or CREATE_FAILED
. To get the status, use the DescribePredictor
* operation.
*
*
* @param deletePredictorRequest
* @return Result of the DeletePredictor operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @throws ResourceInUseException
* The specified resource is in use.
* @sample AmazonForecast.DeletePredictor
* @see AWS API
* Documentation
*/
@Override
public DeletePredictorResult deletePredictor(DeletePredictorRequest request) {
request = beforeClientExecution(request);
return executeDeletePredictor(request);
}
@SdkInternalApi
final DeletePredictorResult executeDeletePredictor(DeletePredictorRequest deletePredictorRequest) {
ExecutionContext executionContext = createExecutionContext(deletePredictorRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeletePredictorRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deletePredictorRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeletePredictor");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeletePredictorResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Describes an Amazon Forecast dataset created using the CreateDataset operation.
*
*
* In addition to listing the parameters specified in the CreateDataset
request, this operation
* includes the following dataset properties:
*
*
* -
*
* CreationTime
*
*
* -
*
* LastModificationTime
*
*
* -
*
* Status
*
*
*
*
* @param describeDatasetRequest
* @return Result of the DescribeDataset operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @sample AmazonForecast.DescribeDataset
* @see AWS API
* Documentation
*/
@Override
public DescribeDatasetResult describeDataset(DescribeDatasetRequest request) {
request = beforeClientExecution(request);
return executeDescribeDataset(request);
}
@SdkInternalApi
final DescribeDatasetResult executeDescribeDataset(DescribeDatasetRequest describeDatasetRequest) {
ExecutionContext executionContext = createExecutionContext(describeDatasetRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeDatasetRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeDatasetRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeDataset");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeDatasetResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Describes a dataset group created using the CreateDatasetGroup operation.
*
*
* In addition to listing the parameters provided in the CreateDatasetGroup
request, this operation
* includes the following properties:
*
*
* -
*
* DatasetArns
- The datasets belonging to the group.
*
*
* -
*
* CreationTime
*
*
* -
*
* LastModificationTime
*
*
* -
*
* Status
*
*
*
*
* @param describeDatasetGroupRequest
* @return Result of the DescribeDatasetGroup operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @sample AmazonForecast.DescribeDatasetGroup
* @see AWS
* API Documentation
*/
@Override
public DescribeDatasetGroupResult describeDatasetGroup(DescribeDatasetGroupRequest request) {
request = beforeClientExecution(request);
return executeDescribeDatasetGroup(request);
}
@SdkInternalApi
final DescribeDatasetGroupResult executeDescribeDatasetGroup(DescribeDatasetGroupRequest describeDatasetGroupRequest) {
ExecutionContext executionContext = createExecutionContext(describeDatasetGroupRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeDatasetGroupRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeDatasetGroupRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeDatasetGroup");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeDatasetGroupResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Describes a dataset import job created using the CreateDatasetImportJob operation.
*
*
* In addition to listing the parameters provided in the CreateDatasetImportJob
request, this operation
* includes the following properties:
*
*
* -
*
* CreationTime
*
*
* -
*
* LastModificationTime
*
*
* -
*
* DataSize
*
*
* -
*
* FieldStatistics
*
*
* -
*
* Status
*
*
* -
*
* Message
- If an error occurred, information about the error.
*
*
*
*
* @param describeDatasetImportJobRequest
* @return Result of the DescribeDatasetImportJob operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @sample AmazonForecast.DescribeDatasetImportJob
* @see AWS API Documentation
*/
@Override
public DescribeDatasetImportJobResult describeDatasetImportJob(DescribeDatasetImportJobRequest request) {
request = beforeClientExecution(request);
return executeDescribeDatasetImportJob(request);
}
@SdkInternalApi
final DescribeDatasetImportJobResult executeDescribeDatasetImportJob(DescribeDatasetImportJobRequest describeDatasetImportJobRequest) {
ExecutionContext executionContext = createExecutionContext(describeDatasetImportJobRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeDatasetImportJobRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(describeDatasetImportJobRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeDatasetImportJob");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DescribeDatasetImportJobResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Describes a forecast created using the CreateForecast operation.
*
*
* In addition to listing the properties provided in the CreateForecast
request, this operation lists
* the following properties:
*
*
* -
*
* DatasetGroupArn
- The dataset group that provided the training data.
*
*
* -
*
* CreationTime
*
*
* -
*
* LastModificationTime
*
*
* -
*
* Status
*
*
* -
*
* Message
- If an error occurred, information about the error.
*
*
*
*
* @param describeForecastRequest
* @return Result of the DescribeForecast operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @sample AmazonForecast.DescribeForecast
* @see AWS API
* Documentation
*/
@Override
public DescribeForecastResult describeForecast(DescribeForecastRequest request) {
request = beforeClientExecution(request);
return executeDescribeForecast(request);
}
@SdkInternalApi
final DescribeForecastResult executeDescribeForecast(DescribeForecastRequest describeForecastRequest) {
ExecutionContext executionContext = createExecutionContext(describeForecastRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeForecastRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeForecastRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeForecast");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeForecastResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Describes a forecast export job created using the CreateForecastExportJob operation.
*
*
* In addition to listing the properties provided by the user in the CreateForecastExportJob
request,
* this operation lists the following properties:
*
*
* -
*
* CreationTime
*
*
* -
*
* LastModificationTime
*
*
* -
*
* Status
*
*
* -
*
* Message
- If an error occurred, information about the error.
*
*
*
*
* @param describeForecastExportJobRequest
* @return Result of the DescribeForecastExportJob operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @sample AmazonForecast.DescribeForecastExportJob
* @see AWS API Documentation
*/
@Override
public DescribeForecastExportJobResult describeForecastExportJob(DescribeForecastExportJobRequest request) {
request = beforeClientExecution(request);
return executeDescribeForecastExportJob(request);
}
@SdkInternalApi
final DescribeForecastExportJobResult executeDescribeForecastExportJob(DescribeForecastExportJobRequest describeForecastExportJobRequest) {
ExecutionContext executionContext = createExecutionContext(describeForecastExportJobRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeForecastExportJobRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(describeForecastExportJobRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeForecastExportJob");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DescribeForecastExportJobResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Describes a predictor created using the CreatePredictor operation.
*
*
* In addition to listing the properties provided in the CreatePredictor
request, this operation lists
* the following properties:
*
*
* -
*
* DatasetImportJobArns
- The dataset import jobs used to import training data.
*
*
* -
*
* AutoMLAlgorithmArns
- If AutoML is performed, the algorithms that were evaluated.
*
*
* -
*
* CreationTime
*
*
* -
*
* LastModificationTime
*
*
* -
*
* Status
*
*
* -
*
* Message
- If an error occurred, information about the error.
*
*
*
*
* @param describePredictorRequest
* @return Result of the DescribePredictor operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @sample AmazonForecast.DescribePredictor
* @see AWS API
* Documentation
*/
@Override
public DescribePredictorResult describePredictor(DescribePredictorRequest request) {
request = beforeClientExecution(request);
return executeDescribePredictor(request);
}
@SdkInternalApi
final DescribePredictorResult executeDescribePredictor(DescribePredictorRequest describePredictorRequest) {
ExecutionContext executionContext = createExecutionContext(describePredictorRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribePredictorRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describePredictorRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribePredictor");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribePredictorResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Provides metrics on the accuracy of the models that were trained by the CreatePredictor operation. Use
* metrics to see how well the model performed and to decide whether to use the predictor to generate a forecast.
* For more information, see metrics.
*
*
* This operation generates metrics for each backtest window that was evaluated. The number of backtest windows (
* NumberOfBacktestWindows
) is specified using the EvaluationParameters object, which is
* optionally included in the CreatePredictor
request. If NumberOfBacktestWindows
isn't
* specified, the number defaults to one.
*
*
* The parameters of the filling
method determine which items contribute to the metrics. If you want
* all items to contribute, specify zero
. If you want only those items that have complete data in the
* range being evaluated to contribute, specify nan
. For more information, see
* FeaturizationMethod.
*
*
*
* Before you can get accuracy metrics, the Status
of the predictor must be ACTIVE
,
* signifying that training has completed. To get the status, use the DescribePredictor operation.
*
*
*
* @param getAccuracyMetricsRequest
* @return Result of the GetAccuracyMetrics operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @throws ResourceInUseException
* The specified resource is in use.
* @sample AmazonForecast.GetAccuracyMetrics
* @see AWS
* API Documentation
*/
@Override
public GetAccuracyMetricsResult getAccuracyMetrics(GetAccuracyMetricsRequest request) {
request = beforeClientExecution(request);
return executeGetAccuracyMetrics(request);
}
@SdkInternalApi
final GetAccuracyMetricsResult executeGetAccuracyMetrics(GetAccuracyMetricsRequest getAccuracyMetricsRequest) {
ExecutionContext executionContext = createExecutionContext(getAccuracyMetricsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetAccuracyMetricsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getAccuracyMetricsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetAccuracyMetrics");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetAccuracyMetricsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns a list of dataset groups created using the CreateDatasetGroup operation. For each dataset group,
* this operation returns a summary of its properties, including its Amazon Resource Name (ARN). You can retrieve
* the complete set of properties by using the dataset group ARN with the DescribeDatasetGroup operation.
*
*
* @param listDatasetGroupsRequest
* @return Result of the ListDatasetGroups operation returned by the service.
* @throws InvalidNextTokenException
* The token is not valid. Tokens expire after 24 hours.
* @sample AmazonForecast.ListDatasetGroups
* @see AWS API
* Documentation
*/
@Override
public ListDatasetGroupsResult listDatasetGroups(ListDatasetGroupsRequest request) {
request = beforeClientExecution(request);
return executeListDatasetGroups(request);
}
@SdkInternalApi
final ListDatasetGroupsResult executeListDatasetGroups(ListDatasetGroupsRequest listDatasetGroupsRequest) {
ExecutionContext executionContext = createExecutionContext(listDatasetGroupsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListDatasetGroupsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listDatasetGroupsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListDatasetGroups");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListDatasetGroupsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns a list of dataset import jobs created using the CreateDatasetImportJob operation. For each import
* job, this operation returns a summary of its properties, including its Amazon Resource Name (ARN). You can
* retrieve the complete set of properties by using the ARN with the DescribeDatasetImportJob operation. You
* can filter the list by providing an array of Filter objects.
*
*
* @param listDatasetImportJobsRequest
* @return Result of the ListDatasetImportJobs operation returned by the service.
* @throws InvalidNextTokenException
* The token is not valid. Tokens expire after 24 hours.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @sample AmazonForecast.ListDatasetImportJobs
* @see AWS
* API Documentation
*/
@Override
public ListDatasetImportJobsResult listDatasetImportJobs(ListDatasetImportJobsRequest request) {
request = beforeClientExecution(request);
return executeListDatasetImportJobs(request);
}
@SdkInternalApi
final ListDatasetImportJobsResult executeListDatasetImportJobs(ListDatasetImportJobsRequest listDatasetImportJobsRequest) {
ExecutionContext executionContext = createExecutionContext(listDatasetImportJobsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListDatasetImportJobsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listDatasetImportJobsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListDatasetImportJobs");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ListDatasetImportJobsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns a list of datasets created using the CreateDataset operation. For each dataset, a summary of its
* properties, including its Amazon Resource Name (ARN), is returned. To retrieve the complete set of properties,
* use the ARN with the DescribeDataset operation.
*
*
* @param listDatasetsRequest
* @return Result of the ListDatasets operation returned by the service.
* @throws InvalidNextTokenException
* The token is not valid. Tokens expire after 24 hours.
* @sample AmazonForecast.ListDatasets
* @see AWS API
* Documentation
*/
@Override
public ListDatasetsResult listDatasets(ListDatasetsRequest request) {
request = beforeClientExecution(request);
return executeListDatasets(request);
}
@SdkInternalApi
final ListDatasetsResult executeListDatasets(ListDatasetsRequest listDatasetsRequest) {
ExecutionContext executionContext = createExecutionContext(listDatasetsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListDatasetsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listDatasetsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListDatasets");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListDatasetsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns a list of forecast export jobs created using the CreateForecastExportJob operation. For each
* forecast export job, this operation returns a summary of its properties, including its Amazon Resource Name
* (ARN). To retrieve the complete set of properties, use the ARN with the DescribeForecastExportJob
* operation. You can filter the list using an array of Filter objects.
*
*
* @param listForecastExportJobsRequest
* @return Result of the ListForecastExportJobs operation returned by the service.
* @throws InvalidNextTokenException
* The token is not valid. Tokens expire after 24 hours.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @sample AmazonForecast.ListForecastExportJobs
* @see AWS API Documentation
*/
@Override
public ListForecastExportJobsResult listForecastExportJobs(ListForecastExportJobsRequest request) {
request = beforeClientExecution(request);
return executeListForecastExportJobs(request);
}
@SdkInternalApi
final ListForecastExportJobsResult executeListForecastExportJobs(ListForecastExportJobsRequest listForecastExportJobsRequest) {
ExecutionContext executionContext = createExecutionContext(listForecastExportJobsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListForecastExportJobsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listForecastExportJobsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListForecastExportJobs");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ListForecastExportJobsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns a list of forecasts created using the CreateForecast operation. For each forecast, this operation
* returns a summary of its properties, including its Amazon Resource Name (ARN). To retrieve the complete set of
* properties, specify the ARN with the DescribeForecast operation. You can filter the list using an array of
* Filter objects.
*
*
* @param listForecastsRequest
* @return Result of the ListForecasts operation returned by the service.
* @throws InvalidNextTokenException
* The token is not valid. Tokens expire after 24 hours.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @sample AmazonForecast.ListForecasts
* @see AWS API
* Documentation
*/
@Override
public ListForecastsResult listForecasts(ListForecastsRequest request) {
request = beforeClientExecution(request);
return executeListForecasts(request);
}
@SdkInternalApi
final ListForecastsResult executeListForecasts(ListForecastsRequest listForecastsRequest) {
ExecutionContext executionContext = createExecutionContext(listForecastsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListForecastsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listForecastsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListForecasts");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListForecastsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns a list of predictors created using the CreatePredictor operation. For each predictor, this
* operation returns a summary of its properties, including its Amazon Resource Name (ARN). You can retrieve the
* complete set of properties by using the ARN with the DescribePredictor operation. You can filter the list
* using an array of Filter objects.
*
*
* @param listPredictorsRequest
* @return Result of the ListPredictors operation returned by the service.
* @throws InvalidNextTokenException
* The token is not valid. Tokens expire after 24 hours.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @sample AmazonForecast.ListPredictors
* @see AWS API
* Documentation
*/
@Override
public ListPredictorsResult listPredictors(ListPredictorsRequest request) {
request = beforeClientExecution(request);
return executeListPredictors(request);
}
@SdkInternalApi
final ListPredictorsResult executeListPredictors(ListPredictorsRequest listPredictorsRequest) {
ExecutionContext executionContext = createExecutionContext(listPredictorsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListPredictorsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listPredictorsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListPredictors");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListPredictorsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Replaces the datasets in a dataset group with the specified datasets.
*
*
*
* The Status
of the dataset group must be ACTIVE
before you can use the dataset group to
* create a predictor. Use the DescribeDatasetGroup operation to get the status.
*
*
*
* @param updateDatasetGroupRequest
* @return Result of the UpdateDatasetGroup operation returned by the service.
* @throws InvalidInputException
* We can't process the request because it includes an invalid value or a value that exceeds the valid
* range.
* @throws ResourceNotFoundException
* We can't find a resource with that Amazon Resource Name (ARN). Check the ARN and try again.
* @throws ResourceInUseException
* The specified resource is in use.
* @sample AmazonForecast.UpdateDatasetGroup
* @see AWS
* API Documentation
*/
@Override
public UpdateDatasetGroupResult updateDatasetGroup(UpdateDatasetGroupRequest request) {
request = beforeClientExecution(request);
return executeUpdateDatasetGroup(request);
}
@SdkInternalApi
final UpdateDatasetGroupResult executeUpdateDatasetGroup(UpdateDatasetGroupRequest updateDatasetGroupRequest) {
ExecutionContext executionContext = createExecutionContext(updateDatasetGroupRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UpdateDatasetGroupRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateDatasetGroupRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "forecast");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateDatasetGroup");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateDatasetGroupResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* Returns additional metadata for a previously executed successful, request, typically used for debugging issues
* where a service isn't acting as expected. This data isn't considered part of the result data returned by an
* operation, so it's available through this separate, diagnostic interface.
*
* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic
* information for an executed request, you should use this method to retrieve it as soon as possible after
* executing the request.
*
* @param request
* The originally executed request
*
* @return The response metadata for the specified request, or null if none is available.
*/
public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) {
return client.getResponseMetadataForRequest(request);
}
/**
* Normal invoke with authentication. Credentials are required and may be overriden at the request level.
**/
private Response invoke(Request request, HttpResponseHandler> responseHandler,
ExecutionContext executionContext) {
return invoke(request, responseHandler, executionContext, null, null);
}
/**
* Normal invoke with authentication. Credentials are required and may be overriden at the request level.
**/
private Response invoke(Request request, HttpResponseHandler> responseHandler,
ExecutionContext executionContext, URI cachedEndpoint, URI uriFromEndpointTrait) {
executionContext.setCredentialsProvider(CredentialUtils.getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider));
return doInvoke(request, responseHandler, executionContext, cachedEndpoint, uriFromEndpointTrait);
}
/**
* Invoke with no authentication. Credentials are not required and any credentials set on the client or request will
* be ignored for this operation.
**/
private Response anonymousInvoke(Request request,
HttpResponseHandler> responseHandler, ExecutionContext executionContext) {
return doInvoke(request, responseHandler, executionContext, null, null);
}
/**
* Invoke the request using the http client. Assumes credentials (or lack thereof) have been configured in the
* ExecutionContext beforehand.
**/
private Response doInvoke(Request request, HttpResponseHandler> responseHandler,
ExecutionContext executionContext, URI discoveredEndpoint, URI uriFromEndpointTrait) {
if (discoveredEndpoint != null) {
request.setEndpoint(discoveredEndpoint);
request.getOriginalRequest().getRequestClientOptions().appendUserAgent("endpoint-discovery");
} else if (uriFromEndpointTrait != null) {
request.setEndpoint(uriFromEndpointTrait);
} else {
request.setEndpoint(endpoint);
}
request.setTimeOffset(timeOffset);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata());
return client.execute(request, responseHandler, errorResponseHandler, executionContext);
}
@com.amazonaws.annotation.SdkInternalApi
static com.amazonaws.protocol.json.SdkJsonProtocolFactory getProtocolFactory() {
return protocolFactory;
}
}