software.amazon.awssdk.services.sfn.DefaultSFNAsyncClient Maven / Gradle / Ivy
Show all versions of stepfunctions Show documentation
/*
* Copyright 2012-2017 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 software.amazon.awssdk.services.sfn;
import java.util.concurrent.CompletableFuture;
import javax.annotation.Generated;
import software.amazon.awssdk.AmazonServiceException;
import software.amazon.awssdk.annotation.SdkInternalApi;
import software.amazon.awssdk.client.AsyncClientHandler;
import software.amazon.awssdk.client.AwsAsyncClientParams;
import software.amazon.awssdk.client.ClientExecutionParams;
import software.amazon.awssdk.client.ClientHandlerParams;
import software.amazon.awssdk.client.SdkAsyncClientHandler;
import software.amazon.awssdk.http.HttpResponseHandler;
import software.amazon.awssdk.protocol.json.JsonClientMetadata;
import software.amazon.awssdk.protocol.json.JsonErrorResponseMetadata;
import software.amazon.awssdk.protocol.json.JsonErrorShapeMetadata;
import software.amazon.awssdk.protocol.json.JsonOperationMetadata;
import software.amazon.awssdk.protocol.json.SdkJsonProtocolFactory;
import software.amazon.awssdk.services.sfn.model.ActivityDoesNotExistException;
import software.amazon.awssdk.services.sfn.model.ActivityLimitExceededException;
import software.amazon.awssdk.services.sfn.model.ActivityWorkerLimitExceededException;
import software.amazon.awssdk.services.sfn.model.CreateActivityRequest;
import software.amazon.awssdk.services.sfn.model.CreateActivityResponse;
import software.amazon.awssdk.services.sfn.model.CreateStateMachineRequest;
import software.amazon.awssdk.services.sfn.model.CreateStateMachineResponse;
import software.amazon.awssdk.services.sfn.model.DeleteActivityRequest;
import software.amazon.awssdk.services.sfn.model.DeleteActivityResponse;
import software.amazon.awssdk.services.sfn.model.DeleteStateMachineRequest;
import software.amazon.awssdk.services.sfn.model.DeleteStateMachineResponse;
import software.amazon.awssdk.services.sfn.model.DescribeActivityRequest;
import software.amazon.awssdk.services.sfn.model.DescribeActivityResponse;
import software.amazon.awssdk.services.sfn.model.DescribeExecutionRequest;
import software.amazon.awssdk.services.sfn.model.DescribeExecutionResponse;
import software.amazon.awssdk.services.sfn.model.DescribeStateMachineRequest;
import software.amazon.awssdk.services.sfn.model.DescribeStateMachineResponse;
import software.amazon.awssdk.services.sfn.model.ExecutionAlreadyExistsException;
import software.amazon.awssdk.services.sfn.model.ExecutionDoesNotExistException;
import software.amazon.awssdk.services.sfn.model.ExecutionLimitExceededException;
import software.amazon.awssdk.services.sfn.model.GetActivityTaskRequest;
import software.amazon.awssdk.services.sfn.model.GetActivityTaskResponse;
import software.amazon.awssdk.services.sfn.model.GetExecutionHistoryRequest;
import software.amazon.awssdk.services.sfn.model.GetExecutionHistoryResponse;
import software.amazon.awssdk.services.sfn.model.InvalidArnException;
import software.amazon.awssdk.services.sfn.model.InvalidDefinitionException;
import software.amazon.awssdk.services.sfn.model.InvalidExecutionInputException;
import software.amazon.awssdk.services.sfn.model.InvalidNameException;
import software.amazon.awssdk.services.sfn.model.InvalidOutputException;
import software.amazon.awssdk.services.sfn.model.InvalidTokenException;
import software.amazon.awssdk.services.sfn.model.ListActivitiesRequest;
import software.amazon.awssdk.services.sfn.model.ListActivitiesResponse;
import software.amazon.awssdk.services.sfn.model.ListExecutionsRequest;
import software.amazon.awssdk.services.sfn.model.ListExecutionsResponse;
import software.amazon.awssdk.services.sfn.model.ListStateMachinesRequest;
import software.amazon.awssdk.services.sfn.model.ListStateMachinesResponse;
import software.amazon.awssdk.services.sfn.model.SendTaskFailureRequest;
import software.amazon.awssdk.services.sfn.model.SendTaskFailureResponse;
import software.amazon.awssdk.services.sfn.model.SendTaskHeartbeatRequest;
import software.amazon.awssdk.services.sfn.model.SendTaskHeartbeatResponse;
import software.amazon.awssdk.services.sfn.model.SendTaskSuccessRequest;
import software.amazon.awssdk.services.sfn.model.SendTaskSuccessResponse;
import software.amazon.awssdk.services.sfn.model.StartExecutionRequest;
import software.amazon.awssdk.services.sfn.model.StartExecutionResponse;
import software.amazon.awssdk.services.sfn.model.StateMachineAlreadyExistsException;
import software.amazon.awssdk.services.sfn.model.StateMachineDeletingException;
import software.amazon.awssdk.services.sfn.model.StateMachineDoesNotExistException;
import software.amazon.awssdk.services.sfn.model.StateMachineLimitExceededException;
import software.amazon.awssdk.services.sfn.model.StopExecutionRequest;
import software.amazon.awssdk.services.sfn.model.StopExecutionResponse;
import software.amazon.awssdk.services.sfn.model.TaskDoesNotExistException;
import software.amazon.awssdk.services.sfn.model.TaskTimedOutException;
import software.amazon.awssdk.services.sfn.transform.CreateActivityRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.CreateActivityResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.CreateStateMachineRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.CreateStateMachineResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.DeleteActivityRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.DeleteActivityResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.DeleteStateMachineRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.DeleteStateMachineResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.DescribeActivityRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.DescribeActivityResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.DescribeExecutionRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.DescribeExecutionResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.DescribeStateMachineRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.DescribeStateMachineResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.GetActivityTaskRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.GetActivityTaskResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.GetExecutionHistoryRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.GetExecutionHistoryResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.ListActivitiesRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.ListActivitiesResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.ListExecutionsRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.ListExecutionsResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.ListStateMachinesRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.ListStateMachinesResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.SendTaskFailureRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.SendTaskFailureResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.SendTaskHeartbeatRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.SendTaskHeartbeatResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.SendTaskSuccessRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.SendTaskSuccessResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.StartExecutionRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.StartExecutionResponseUnmarshaller;
import software.amazon.awssdk.services.sfn.transform.StopExecutionRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.StopExecutionResponseUnmarshaller;
/**
* Internal implementation of {@link SFNAsyncClient}.
*
* @see SFNAsyncClient#builder()
*/
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultSFNAsyncClient implements SFNAsyncClient {
private final AsyncClientHandler clientHandler;
private final SdkJsonProtocolFactory protocolFactory;
protected DefaultSFNAsyncClient(AwsAsyncClientParams clientParams) {
this.clientHandler = new SdkAsyncClientHandler(new ClientHandlerParams().withAsyncClientParams(clientParams)
.withClientParams(clientParams).withCalculateCrc32FromCompressedDataEnabled(false));
this.protocolFactory = init();
}
/**
*
* Creates an activity.
*
*
* @param createActivityRequest
* @return A Java Future containing the result of the CreateActivity operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ActivityLimitExceededException The maximum number of activities has been reached. Existing activities
* must be deleted before a new activity can be created.
* - InvalidNameException The provided name is invalid.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.CreateActivity
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createActivity(CreateActivityRequest createActivityRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new CreateActivityResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new CreateActivityRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(createActivityRequest));
}
/**
*
* Creates a state machine.
*
*
* @param createStateMachineRequest
* @return A Java Future containing the result of the CreateStateMachine operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArnException The provided Amazon Resource Name (ARN) is invalid.
* - InvalidDefinitionException The provided Amazon States Language definition is invalid.
* - InvalidNameException The provided name is invalid.
* - StateMachineAlreadyExistsException A state machine with the same name but a different definition or
* role ARN already exists.
* - StateMachineDeletingException The specified state machine is being deleted.
* - StateMachineLimitExceededException The maximum number of state machines has been reached. Existing
* state machines must be deleted before a new state machine can be created.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.CreateStateMachine
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createStateMachine(CreateStateMachineRequest createStateMachineRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new CreateStateMachineResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new CreateStateMachineRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(createStateMachineRequest));
}
/**
*
* Deletes an activity.
*
*
* @param deleteActivityRequest
* @return A Java Future containing the result of the DeleteActivity operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArnException The provided Amazon Resource Name (ARN) is invalid.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.DeleteActivity
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture deleteActivity(DeleteActivityRequest deleteActivityRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new DeleteActivityResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new DeleteActivityRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteActivityRequest));
}
/**
*
* Deletes a state machine. This is an asynchronous operation-- it sets the state machine's status to "DELETING" and
* begins the delete process.
*
*
* @param deleteStateMachineRequest
* @return A Java Future containing the result of the DeleteStateMachine operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArnException The provided Amazon Resource Name (ARN) is invalid.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.DeleteStateMachine
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture deleteStateMachine(DeleteStateMachineRequest deleteStateMachineRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new DeleteStateMachineResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new DeleteStateMachineRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteStateMachineRequest));
}
/**
*
* Describes an activity.
*
*
* @param describeActivityRequest
* @return A Java Future containing the result of the DescribeActivity operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ActivityDoesNotExistException The specified activity does not exist.
* - InvalidArnException The provided Amazon Resource Name (ARN) is invalid.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.DescribeActivity
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture describeActivity(DescribeActivityRequest describeActivityRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new DescribeActivityResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new DescribeActivityRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeActivityRequest));
}
/**
*
* Describes an execution.
*
*
* @param describeExecutionRequest
* @return A Java Future containing the result of the DescribeExecution operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ExecutionDoesNotExistException The specified execution does not exist.
* - InvalidArnException The provided Amazon Resource Name (ARN) is invalid.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.DescribeExecution
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture describeExecution(DescribeExecutionRequest describeExecutionRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new DescribeExecutionResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new DescribeExecutionRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeExecutionRequest));
}
/**
*
* Describes a state machine.
*
*
* @param describeStateMachineRequest
* @return A Java Future containing the result of the DescribeStateMachine operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArnException The provided Amazon Resource Name (ARN) is invalid.
* - StateMachineDoesNotExistException The specified state machine does not exist.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.DescribeStateMachine
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture describeStateMachine(
DescribeStateMachineRequest describeStateMachineRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new DescribeStateMachineResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new DescribeStateMachineRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeStateMachineRequest));
}
/**
*
* Used by workers to retrieve a task (with the specified activity ARN) scheduled for execution by a running state
* machine. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a
* task becomes available (i.e. an execution of a task of this type is needed.) The maximum time the service holds
* on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll will
* return an empty result, that is, the taskToken
returned is an empty string.
*
*
*
* Workers should set their client side socket timeout to at least 65 seconds (5 seconds higher than the maximum
* time the service may hold the poll request).
*
*
*
* @param getActivityTaskRequest
* @return A Java Future containing the result of the GetActivityTask operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ActivityDoesNotExistException The specified activity does not exist.
* - ActivityWorkerLimitExceededException The maximum number of workers concurrently polling for activity
* tasks has been reached.
* - InvalidArnException The provided Amazon Resource Name (ARN) is invalid.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.GetActivityTask
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture getActivityTask(GetActivityTaskRequest getActivityTaskRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new GetActivityTaskResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new GetActivityTaskRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getActivityTaskRequest));
}
/**
*
* Returns the history of the specified execution as a list of events. By default, the results are returned in
* ascending order of the timeStamp
of the events. Use the reverseOrder
parameter to get
* the latest events first. The results may be split into multiple pages. To retrieve subsequent pages, make the
* call again using the nextToken
returned by the previous call.
*
*
* @param getExecutionHistoryRequest
* @return A Java Future containing the result of the GetExecutionHistory operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ExecutionDoesNotExistException The specified execution does not exist.
* - InvalidArnException The provided Amazon Resource Name (ARN) is invalid.
* - InvalidTokenException The provided token is invalid.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.GetExecutionHistory
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture getExecutionHistory(
GetExecutionHistoryRequest getExecutionHistoryRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new GetExecutionHistoryResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new GetExecutionHistoryRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getExecutionHistoryRequest));
}
/**
*
* Lists the existing activities. The results may be split into multiple pages. To retrieve subsequent pages, make
* the call again using the nextToken
returned by the previous call.
*
*
* @param listActivitiesRequest
* @return A Java Future containing the result of the ListActivities operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidTokenException The provided token is invalid.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.ListActivities
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture listActivities(ListActivitiesRequest listActivitiesRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new ListActivitiesResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new ListActivitiesRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listActivitiesRequest));
}
/**
*
* Lists the executions of a state machine that meet the filtering criteria. The results may be split into multiple
* pages. To retrieve subsequent pages, make the call again using the nextToken
returned by the
* previous call.
*
*
* @param listExecutionsRequest
* @return A Java Future containing the result of the ListExecutions operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArnException The provided Amazon Resource Name (ARN) is invalid.
* - InvalidTokenException The provided token is invalid.
* - StateMachineDoesNotExistException The specified state machine does not exist.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.ListExecutions
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture listExecutions(ListExecutionsRequest listExecutionsRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new ListExecutionsResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new ListExecutionsRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listExecutionsRequest));
}
/**
*
* Lists the existing state machines. The results may be split into multiple pages. To retrieve subsequent pages,
* make the call again using the nextToken
returned by the previous call.
*
*
* @param listStateMachinesRequest
* @return A Java Future containing the result of the ListStateMachines operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidTokenException The provided token is invalid.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.ListStateMachines
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture listStateMachines(ListStateMachinesRequest listStateMachinesRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new ListStateMachinesResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new ListStateMachinesRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listStateMachinesRequest));
}
/**
*
* Used by workers to report that the task identified by the taskToken
failed.
*
*
* @param sendTaskFailureRequest
* @return A Java Future containing the result of the SendTaskFailure operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - TaskDoesNotExistException
* - InvalidTokenException The provided token is invalid.
* - TaskTimedOutException
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.SendTaskFailure
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture sendTaskFailure(SendTaskFailureRequest sendTaskFailureRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new SendTaskFailureResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new SendTaskFailureRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(sendTaskFailureRequest));
}
/**
*
* Used by workers to report to the service that the task represented by the specified taskToken
is
* still making progress. This action resets the Heartbeat
clock. The Heartbeat
threshold
* is specified in the state machine's Amazon States Language definition. This action does not in itself create an
* event in the execution history. However, if the task times out, the execution history will contain an
* ActivityTimedOut
event.
*
*
*
* The Timeout
of a task, defined in the state machine's Amazon States Language definition, is its
* maximum allowed duration, regardless of the number of SendTaskHeartbeat requests received.
*
*
*
* This operation is only useful for long-lived tasks to report the liveliness of the task.
*
*
*
* @param sendTaskHeartbeatRequest
* @return A Java Future containing the result of the SendTaskHeartbeat operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - TaskDoesNotExistException
* - InvalidTokenException The provided token is invalid.
* - TaskTimedOutException
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.SendTaskHeartbeat
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture sendTaskHeartbeat(SendTaskHeartbeatRequest sendTaskHeartbeatRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new SendTaskHeartbeatResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new SendTaskHeartbeatRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(sendTaskHeartbeatRequest));
}
/**
*
* Used by workers to report that the task identified by the taskToken
completed successfully.
*
*
* @param sendTaskSuccessRequest
* @return A Java Future containing the result of the SendTaskSuccess operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - TaskDoesNotExistException
* - InvalidOutputException The provided JSON output data is invalid.
* - InvalidTokenException The provided token is invalid.
* - TaskTimedOutException
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.SendTaskSuccess
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture sendTaskSuccess(SendTaskSuccessRequest sendTaskSuccessRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new SendTaskSuccessResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new SendTaskSuccessRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(sendTaskSuccessRequest));
}
/**
*
* Starts a state machine execution.
*
*
* @param startExecutionRequest
* @return A Java Future containing the result of the StartExecution operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ExecutionLimitExceededException The maximum number of running executions has been reached. Running
* executions must end or be stopped before a new execution can be started.
* - ExecutionAlreadyExistsException An execution with the same name already exists.
* - InvalidArnException The provided Amazon Resource Name (ARN) is invalid.
* - InvalidExecutionInputException The provided JSON input data is invalid.
* - InvalidNameException The provided name is invalid.
* - StateMachineDoesNotExistException The specified state machine does not exist.
* - StateMachineDeletingException The specified state machine is being deleted.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.StartExecution
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture startExecution(StartExecutionRequest startExecutionRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new StartExecutionResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new StartExecutionRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(startExecutionRequest));
}
/**
*
* Stops an execution.
*
*
* @param stopExecutionRequest
* @return A Java Future containing the result of the StopExecution operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ExecutionDoesNotExistException The specified execution does not exist.
* - InvalidArnException The provided Amazon Resource Name (ARN) is invalid.
* - SdkBaseException Base class for all exceptions that can be thrown by the SDK (both service and
* client). Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc
* - SFNException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this
*
* @sample SFNAsyncClient.StopExecution
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture stopExecution(StopExecutionRequest stopExecutionRequest) {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true), new StopExecutionResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withMarshaller(new StopExecutionRequestMarshaller(protocolFactory)).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(stopExecutionRequest));
}
@Override
public void close() throws Exception {
clientHandler.close();
}
private software.amazon.awssdk.protocol.json.SdkJsonProtocolFactory init() {
return new SdkJsonProtocolFactory(new JsonClientMetadata()
.withProtocolVersion("1.0")
.withSupportsCbor(false)
.withSupportsIon(false)
.withBaseServiceExceptionClass(software.amazon.awssdk.services.sfn.model.SFNException.class)
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ActivityDoesNotExist").withModeledClass(
ActivityDoesNotExistException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("StateMachineLimitExceeded").withModeledClass(
StateMachineLimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidToken").withModeledClass(InvalidTokenException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidDefinition").withModeledClass(
InvalidDefinitionException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidName").withModeledClass(InvalidNameException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidOutput")
.withModeledClass(InvalidOutputException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ActivityLimitExceeded").withModeledClass(
ActivityLimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("StateMachineAlreadyExists").withModeledClass(
StateMachineAlreadyExistsException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ExecutionLimitExceeded").withModeledClass(
ExecutionLimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidExecutionInput").withModeledClass(
InvalidExecutionInputException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidArn").withModeledClass(InvalidArnException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("StateMachineDeleting").withModeledClass(
StateMachineDeletingException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ActivityWorkerLimitExceeded").withModeledClass(
ActivityWorkerLimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("TaskDoesNotExist").withModeledClass(
TaskDoesNotExistException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("TaskTimedOut").withModeledClass(TaskTimedOutException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ExecutionAlreadyExists").withModeledClass(
ExecutionAlreadyExistsException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("StateMachineDoesNotExist").withModeledClass(
StateMachineDoesNotExistException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ExecutionDoesNotExist").withModeledClass(
ExecutionDoesNotExistException.class)));
}
private HttpResponseHandler createErrorResponseHandler() {
return protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata());
}
}