@SdkInternalApi
    final DeleteForecastResult executeDeleteForecast(DeleteForecastRequest deleteForecastRequest) {

        ExecutionContext executionContext = createExecutionContext(deleteForecastRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<DeleteForecastRequest> request = null;
        Response<DeleteForecastResult> 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.CLIENT_ENDPOINT, endpoint);
                request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
                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<AmazonWebServiceResponse<DeleteForecastResult>> responseHandler = protocolFactory.createResponseHandler(
                    new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteForecastResultJsonUnmarshaller());
            response = invoke(request, responseHandler, executionContext);

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Deletes a forecast created using the <a>CreateForecast</a> operation. You can delete only forecasts that have a
status of <code>ACTIVE</code> or <code>CREATE_FAILED</code>. To get the status, use the <a>DescribeForecast</a>
operation.
</p>
<p>
You can't delete a forecast while it is being exported. After a forecast is deleted, you can no longer query the
forecast.
</p>

@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 <a href="http://docs.aws.amazon.com/goto/WebAPI/forecast-2018-06-26/DeleteForecast" target="_top">AWS API
     Documentation</a>
aws-java-sdk-forecast/src/main/java/com/amazonaws/services/forecast/AmazonForecastClient.java