software.amazon.awssdk.services.sfn.DefaultSFNClient Maven / Gradle / Ivy
Show all versions of stepfunctions Show documentation
/*
* Copyright 2013-2018 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 javax.annotation.Generated;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.core.client.ClientExecutionParams;
import software.amazon.awssdk.core.client.ClientHandler;
import software.amazon.awssdk.core.client.SdkClientHandler;
import software.amazon.awssdk.core.config.ClientConfiguration;
import software.amazon.awssdk.core.config.SyncClientConfiguration;
import software.amazon.awssdk.core.exception.SdkClientException;
import software.amazon.awssdk.core.exception.SdkServiceException;
import software.amazon.awssdk.core.http.HttpResponseHandler;
import software.amazon.awssdk.core.protocol.json.JsonClientMetadata;
import software.amazon.awssdk.core.protocol.json.JsonErrorResponseMetadata;
import software.amazon.awssdk.core.protocol.json.JsonErrorShapeMetadata;
import software.amazon.awssdk.core.protocol.json.JsonOperationMetadata;
import software.amazon.awssdk.core.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.DescribeStateMachineForExecutionRequest;
import software.amazon.awssdk.services.sfn.model.DescribeStateMachineForExecutionResponse;
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.MissingRequiredParameterException;
import software.amazon.awssdk.services.sfn.model.SFNException;
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.model.UpdateStateMachineRequest;
import software.amazon.awssdk.services.sfn.model.UpdateStateMachineResponse;
import software.amazon.awssdk.services.sfn.paginators.GetExecutionHistoryPaginator;
import software.amazon.awssdk.services.sfn.paginators.ListActivitiesPaginator;
import software.amazon.awssdk.services.sfn.paginators.ListExecutionsPaginator;
import software.amazon.awssdk.services.sfn.paginators.ListStateMachinesPaginator;
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.DescribeStateMachineForExecutionRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.DescribeStateMachineForExecutionResponseUnmarshaller;
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;
import software.amazon.awssdk.services.sfn.transform.UpdateStateMachineRequestMarshaller;
import software.amazon.awssdk.services.sfn.transform.UpdateStateMachineResponseUnmarshaller;
/**
* Internal implementation of {@link SFNClient}.
*
* @see SFNClient#builder()
*/
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultSFNClient implements SFNClient {
private final ClientHandler clientHandler;
private final SdkJsonProtocolFactory protocolFactory;
private final ClientConfiguration clientConfiguration;
protected DefaultSFNClient(SyncClientConfiguration clientConfiguration) {
this.clientHandler = new SdkClientHandler(clientConfiguration, null);
this.protocolFactory = init();
this.clientConfiguration = clientConfiguration;
}
@Override
public final String serviceName() {
return SERVICE_NAME;
}
/**
*
* Creates an activity. An activity is a task which you write in any programming language and host on any machine
* which has access to AWS Step Functions. Activities must poll Step Functions using the
* GetActivityTask
API action and respond using SendTask*
API actions. This function lets
* Step Functions know the existence of your activity and returns an identifier for use in a state machine and when
* polling from the activity.
*
*
* @param createActivityRequest
* @return Result of the CreateActivity operation returned by the service.
* @throws ActivityLimitExceededException
* The maximum number of activities has been reached. Existing activities must be deleted before a new
* activity can be created.
* @throws InvalidNameException
* The provided name is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.CreateActivity
* @see AWS API
* Documentation
*/
@Override
public CreateActivityResponse createActivity(CreateActivityRequest createActivityRequest)
throws ActivityLimitExceededException, InvalidNameException, SdkServiceException, SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new CreateActivityResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(createActivityRequest).withMarshaller(new CreateActivityRequestMarshaller(protocolFactory)));
}
/**
*
* Creates a state machine. A state machine consists of a collection of states that can do work (Task
* states), determine to which states to transition next (Choice
states), stop an execution with an
* error (Fail
states), and so on. State machines are specified using a JSON-based, structured
* language.
*
*
* @param createStateMachineRequest
* @return Result of the CreateStateMachine operation returned by the service.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws InvalidDefinitionException
* The provided Amazon States Language definition is invalid.
* @throws InvalidNameException
* The provided name is invalid.
* @throws StateMachineAlreadyExistsException
* A state machine with the same name but a different definition or role ARN already exists.
* @throws StateMachineDeletingException
* The specified state machine is being deleted.
* @throws StateMachineLimitExceededException
* The maximum number of state machines has been reached. Existing state machines must be deleted before a
* new state machine can be created.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.CreateStateMachine
* @see AWS API
* Documentation
*/
@Override
public CreateStateMachineResponse createStateMachine(CreateStateMachineRequest createStateMachineRequest)
throws InvalidArnException, InvalidDefinitionException, InvalidNameException, StateMachineAlreadyExistsException,
StateMachineDeletingException, StateMachineLimitExceededException, SdkServiceException, SdkClientException,
SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new CreateStateMachineResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(createStateMachineRequest).withMarshaller(new CreateStateMachineRequestMarshaller(protocolFactory)));
}
/**
*
* Deletes an activity.
*
*
* @param deleteActivityRequest
* @return Result of the DeleteActivity operation returned by the service.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.DeleteActivity
* @see AWS API
* Documentation
*/
@Override
public DeleteActivityResponse deleteActivity(DeleteActivityRequest deleteActivityRequest) throws InvalidArnException,
SdkServiceException, SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DeleteActivityResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(deleteActivityRequest).withMarshaller(new DeleteActivityRequestMarshaller(protocolFactory)));
}
/**
*
* Deletes a state machine. This is an asynchronous operation: It sets the state machine's status to
* DELETING
and begins the deletion process. Each state machine execution is deleted the next time it
* makes a state transition.
*
*
*
* The state machine itself is deleted after all executions are completed or deleted.
*
*
*
* @param deleteStateMachineRequest
* @return Result of the DeleteStateMachine operation returned by the service.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.DeleteStateMachine
* @see AWS API
* Documentation
*/
@Override
public DeleteStateMachineResponse deleteStateMachine(DeleteStateMachineRequest deleteStateMachineRequest)
throws InvalidArnException, SdkServiceException, SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DeleteStateMachineResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(deleteStateMachineRequest).withMarshaller(new DeleteStateMachineRequestMarshaller(protocolFactory)));
}
/**
*
* Describes an activity.
*
*
* @param describeActivityRequest
* @return Result of the DescribeActivity operation returned by the service.
* @throws ActivityDoesNotExistException
* The specified activity does not exist.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.DescribeActivity
* @see AWS API
* Documentation
*/
@Override
public DescribeActivityResponse describeActivity(DescribeActivityRequest describeActivityRequest)
throws ActivityDoesNotExistException, InvalidArnException, SdkServiceException, SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DescribeActivityResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(describeActivityRequest).withMarshaller(new DescribeActivityRequestMarshaller(protocolFactory)));
}
/**
*
* Describes an execution.
*
*
* @param describeExecutionRequest
* @return Result of the DescribeExecution operation returned by the service.
* @throws ExecutionDoesNotExistException
* The specified execution does not exist.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.DescribeExecution
* @see AWS API
* Documentation
*/
@Override
public DescribeExecutionResponse describeExecution(DescribeExecutionRequest describeExecutionRequest)
throws ExecutionDoesNotExistException, InvalidArnException, SdkServiceException, SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DescribeExecutionResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(describeExecutionRequest).withMarshaller(new DescribeExecutionRequestMarshaller(protocolFactory)));
}
/**
*
* Describes a state machine.
*
*
* @param describeStateMachineRequest
* @return Result of the DescribeStateMachine operation returned by the service.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws StateMachineDoesNotExistException
* The specified state machine does not exist.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.DescribeStateMachine
* @see AWS
* API Documentation
*/
@Override
public DescribeStateMachineResponse describeStateMachine(DescribeStateMachineRequest describeStateMachineRequest)
throws InvalidArnException, StateMachineDoesNotExistException, SdkServiceException, SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DescribeStateMachineResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(describeStateMachineRequest)
.withMarshaller(new DescribeStateMachineRequestMarshaller(protocolFactory)));
}
/**
*
* Describes the state machine associated with a specific execution.
*
*
* @param describeStateMachineForExecutionRequest
* @return Result of the DescribeStateMachineForExecution operation returned by the service.
* @throws ExecutionDoesNotExistException
* The specified execution does not exist.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.DescribeStateMachineForExecution
* @see AWS API Documentation
*/
@Override
public DescribeStateMachineForExecutionResponse describeStateMachineForExecution(
DescribeStateMachineForExecutionRequest describeStateMachineForExecutionRequest)
throws ExecutionDoesNotExistException, InvalidArnException, SdkServiceException, SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DescribeStateMachineForExecutionResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler
.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(describeStateMachineForExecutionRequest)
.withMarshaller(new DescribeStateMachineForExecutionRequestMarshaller(protocolFactory)));
}
/**
*
* Used by workers to retrieve a task (with the specified activity ARN) which has been 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 returns a taskToken
with a null 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 Result of the GetActivityTask operation returned by the service.
* @throws ActivityDoesNotExistException
* The specified activity does not exist.
* @throws ActivityWorkerLimitExceededException
* The maximum number of workers concurrently polling for activity tasks has been reached.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.GetActivityTask
* @see AWS API
* Documentation
*/
@Override
public GetActivityTaskResponse getActivityTask(GetActivityTaskRequest getActivityTaskRequest)
throws ActivityDoesNotExistException, ActivityWorkerLimitExceededException, InvalidArnException, SdkServiceException,
SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new GetActivityTaskResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(getActivityTaskRequest).withMarshaller(new GetActivityTaskRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
*
*
* If a nextToken
is returned by a previous call, there are more results available. To retrieve the
* next page of results, make the call again using the returned token in nextToken
. Keep all other
* arguments unchanged.
*
*
* @param getExecutionHistoryRequest
* @return Result of the GetExecutionHistory operation returned by the service.
* @throws ExecutionDoesNotExistException
* The specified execution does not exist.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws InvalidTokenException
* The provided token is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.GetExecutionHistory
* @see AWS API
* Documentation
*/
@Override
public GetExecutionHistoryResponse getExecutionHistory(GetExecutionHistoryRequest getExecutionHistoryRequest)
throws ExecutionDoesNotExistException, InvalidArnException, InvalidTokenException, SdkServiceException,
SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new GetExecutionHistoryResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(getExecutionHistoryRequest).withMarshaller(new GetExecutionHistoryRequestMarshaller(protocolFactory)));
}
/**
*
* 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.
*
*
* If a nextToken
is returned by a previous call, there are more results available. To retrieve the
* next page of results, make the call again using the returned token in nextToken
. Keep all other
* arguments unchanged.
*
*
*
* This is a variant of
* {@link #getExecutionHistory(software.amazon.awssdk.services.sfn.model.GetExecutionHistoryRequest)} operation. The
* return type is a custom iterable that can be used to iterate through all the pages. SDK will internally handle
* making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.sfn.paginators.GetExecutionHistoryPaginator responses = client.getExecutionHistoryIterable(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.sfn.paginators.GetExecutionHistoryPaginator responses = client
* .getExecutionHistoryIterable(request);
* for (software.amazon.awssdk.services.sfn.model.GetExecutionHistoryResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.sfn.paginators.GetExecutionHistoryPaginator responses = client.getExecutionHistoryIterable(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #getExecutionHistory(software.amazon.awssdk.services.sfn.model.GetExecutionHistoryRequest)} operation.
*
*
* @param getExecutionHistoryRequest
* @return Result of the GetExecutionHistory operation returned by the service.
* @throws ExecutionDoesNotExistException
* The specified execution does not exist.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws InvalidTokenException
* The provided token is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.GetExecutionHistory
* @see AWS API
* Documentation
*/
@Override
public GetExecutionHistoryPaginator getExecutionHistoryIterable(GetExecutionHistoryRequest getExecutionHistoryRequest)
throws ExecutionDoesNotExistException, InvalidArnException, InvalidTokenException, SdkServiceException,
SdkClientException, SFNException {
return new GetExecutionHistoryPaginator(this, getExecutionHistoryRequest);
}
/**
*
* Lists the existing activities.
*
*
* If a nextToken
is returned by a previous call, there are more results available. To retrieve the
* next page of results, make the call again using the returned token in nextToken
. Keep all other
* arguments unchanged.
*
*
* @param listActivitiesRequest
* @return Result of the ListActivities operation returned by the service.
* @throws InvalidTokenException
* The provided token is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.ListActivities
* @see AWS API
* Documentation
*/
@Override
public ListActivitiesResponse listActivities(ListActivitiesRequest listActivitiesRequest) throws InvalidTokenException,
SdkServiceException, SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ListActivitiesResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(listActivitiesRequest).withMarshaller(new ListActivitiesRequestMarshaller(protocolFactory)));
}
/**
*
* Lists the existing activities.
*
*
* If a nextToken
is returned by a previous call, there are more results available. To retrieve the
* next page of results, make the call again using the returned token in nextToken
. Keep all other
* arguments unchanged.
*
*
*
* This is a variant of {@link #listActivities(software.amazon.awssdk.services.sfn.model.ListActivitiesRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.sfn.paginators.ListActivitiesPaginator responses = client.listActivitiesIterable(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.sfn.paginators.ListActivitiesPaginator responses = client.listActivitiesIterable(request);
* for (software.amazon.awssdk.services.sfn.model.ListActivitiesResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.sfn.paginators.ListActivitiesPaginator responses = client.listActivitiesIterable(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listActivities(software.amazon.awssdk.services.sfn.model.ListActivitiesRequest)} operation.
*
*
* @param listActivitiesRequest
* @return Result of the ListActivities operation returned by the service.
* @throws InvalidTokenException
* The provided token is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.ListActivities
* @see AWS API
* Documentation
*/
@Override
public ListActivitiesPaginator listActivitiesIterable(ListActivitiesRequest listActivitiesRequest)
throws InvalidTokenException, SdkServiceException, SdkClientException, SFNException {
return new ListActivitiesPaginator(this, listActivitiesRequest);
}
/**
*
* Lists the executions of a state machine that meet the filtering criteria.
*
*
* If a nextToken
is returned by a previous call, there are more results available. To retrieve the
* next page of results, make the call again using the returned token in nextToken
. Keep all other
* arguments unchanged.
*
*
* @param listExecutionsRequest
* @return Result of the ListExecutions operation returned by the service.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws InvalidTokenException
* The provided token is invalid.
* @throws StateMachineDoesNotExistException
* The specified state machine does not exist.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.ListExecutions
* @see AWS API
* Documentation
*/
@Override
public ListExecutionsResponse listExecutions(ListExecutionsRequest listExecutionsRequest) throws InvalidArnException,
InvalidTokenException, StateMachineDoesNotExistException, SdkServiceException, SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ListExecutionsResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(listExecutionsRequest).withMarshaller(new ListExecutionsRequestMarshaller(protocolFactory)));
}
/**
*
* Lists the executions of a state machine that meet the filtering criteria.
*
*
* If a nextToken
is returned by a previous call, there are more results available. To retrieve the
* next page of results, make the call again using the returned token in nextToken
. Keep all other
* arguments unchanged.
*
*
*
* This is a variant of {@link #listExecutions(software.amazon.awssdk.services.sfn.model.ListExecutionsRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.sfn.paginators.ListExecutionsPaginator responses = client.listExecutionsIterable(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.sfn.paginators.ListExecutionsPaginator responses = client.listExecutionsIterable(request);
* for (software.amazon.awssdk.services.sfn.model.ListExecutionsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.sfn.paginators.ListExecutionsPaginator responses = client.listExecutionsIterable(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listExecutions(software.amazon.awssdk.services.sfn.model.ListExecutionsRequest)} operation.
*
*
* @param listExecutionsRequest
* @return Result of the ListExecutions operation returned by the service.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws InvalidTokenException
* The provided token is invalid.
* @throws StateMachineDoesNotExistException
* The specified state machine does not exist.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.ListExecutions
* @see AWS API
* Documentation
*/
@Override
public ListExecutionsPaginator listExecutionsIterable(ListExecutionsRequest listExecutionsRequest)
throws InvalidArnException, InvalidTokenException, StateMachineDoesNotExistException, SdkServiceException,
SdkClientException, SFNException {
return new ListExecutionsPaginator(this, listExecutionsRequest);
}
/**
*
* Lists the existing state machines.
*
*
* If a nextToken
is returned by a previous call, there are more results available. To retrieve the
* next page of results, make the call again using the returned token in nextToken
. Keep all other
* arguments unchanged.
*
*
* @param listStateMachinesRequest
* @return Result of the ListStateMachines operation returned by the service.
* @throws InvalidTokenException
* The provided token is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.ListStateMachines
* @see AWS API
* Documentation
*/
@Override
public ListStateMachinesResponse listStateMachines(ListStateMachinesRequest listStateMachinesRequest)
throws InvalidTokenException, SdkServiceException, SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ListStateMachinesResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(listStateMachinesRequest).withMarshaller(new ListStateMachinesRequestMarshaller(protocolFactory)));
}
/**
*
* Lists the existing state machines.
*
*
* If a nextToken
is returned by a previous call, there are more results available. To retrieve the
* next page of results, make the call again using the returned token in nextToken
. Keep all other
* arguments unchanged.
*
*
*
* This is a variant of
* {@link #listStateMachines(software.amazon.awssdk.services.sfn.model.ListStateMachinesRequest)} operation. The
* return type is a custom iterable that can be used to iterate through all the pages. SDK will internally handle
* making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.sfn.paginators.ListStateMachinesPaginator responses = client.listStateMachinesIterable(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.sfn.paginators.ListStateMachinesPaginator responses = client
* .listStateMachinesIterable(request);
* for (software.amazon.awssdk.services.sfn.model.ListStateMachinesResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.sfn.paginators.ListStateMachinesPaginator responses = client.listStateMachinesIterable(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listStateMachines(software.amazon.awssdk.services.sfn.model.ListStateMachinesRequest)} operation.
*
*
* @param listStateMachinesRequest
* @return Result of the ListStateMachines operation returned by the service.
* @throws InvalidTokenException
* The provided token is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.ListStateMachines
* @see AWS API
* Documentation
*/
@Override
public ListStateMachinesPaginator listStateMachinesIterable(ListStateMachinesRequest listStateMachinesRequest)
throws InvalidTokenException, SdkServiceException, SdkClientException, SFNException {
return new ListStateMachinesPaginator(this, listStateMachinesRequest);
}
/**
*
* Used by workers to report that the task identified by the taskToken
failed.
*
*
* @param sendTaskFailureRequest
* @return Result of the SendTaskFailure operation returned by the service.
* @throws TaskDoesNotExistException
* @throws InvalidTokenException
* The provided token is invalid.
* @throws TaskTimedOutException
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.SendTaskFailure
* @see AWS API
* Documentation
*/
@Override
public SendTaskFailureResponse sendTaskFailure(SendTaskFailureRequest sendTaskFailureRequest)
throws TaskDoesNotExistException, InvalidTokenException, TaskTimedOutException, SdkServiceException,
SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new SendTaskFailureResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(sendTaskFailureRequest).withMarshaller(new SendTaskFailureRequestMarshaller(protocolFactory)));
}
/**
*
* 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 contains 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 Result of the SendTaskHeartbeat operation returned by the service.
* @throws TaskDoesNotExistException
* @throws InvalidTokenException
* The provided token is invalid.
* @throws TaskTimedOutException
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.SendTaskHeartbeat
* @see AWS API
* Documentation
*/
@Override
public SendTaskHeartbeatResponse sendTaskHeartbeat(SendTaskHeartbeatRequest sendTaskHeartbeatRequest)
throws TaskDoesNotExistException, InvalidTokenException, TaskTimedOutException, SdkServiceException,
SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new SendTaskHeartbeatResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(sendTaskHeartbeatRequest).withMarshaller(new SendTaskHeartbeatRequestMarshaller(protocolFactory)));
}
/**
*
* Used by workers to report that the task identified by the taskToken
completed successfully.
*
*
* @param sendTaskSuccessRequest
* @return Result of the SendTaskSuccess operation returned by the service.
* @throws TaskDoesNotExistException
* @throws InvalidOutputException
* The provided JSON output data is invalid.
* @throws InvalidTokenException
* The provided token is invalid.
* @throws TaskTimedOutException
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.SendTaskSuccess
* @see AWS API
* Documentation
*/
@Override
public SendTaskSuccessResponse sendTaskSuccess(SendTaskSuccessRequest sendTaskSuccessRequest)
throws TaskDoesNotExistException, InvalidOutputException, InvalidTokenException, TaskTimedOutException,
SdkServiceException, SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new SendTaskSuccessResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(sendTaskSuccessRequest).withMarshaller(new SendTaskSuccessRequestMarshaller(protocolFactory)));
}
/**
*
* Starts a state machine execution.
*
*
* @param startExecutionRequest
* @return Result of the StartExecution operation returned by the service.
* @throws ExecutionLimitExceededException
* The maximum number of running executions has been reached. Running executions must end or be stopped
* before a new execution can be started.
* @throws ExecutionAlreadyExistsException
* The execution has the same name
as another execution (but a different input
* ).
*
* Executions with the same name
and input
are considered idempotent.
*
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws InvalidExecutionInputException
* The provided JSON input data is invalid.
* @throws InvalidNameException
* The provided name is invalid.
* @throws StateMachineDoesNotExistException
* The specified state machine does not exist.
* @throws StateMachineDeletingException
* The specified state machine is being deleted.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.StartExecution
* @see AWS API
* Documentation
*/
@Override
public StartExecutionResponse startExecution(StartExecutionRequest startExecutionRequest)
throws ExecutionLimitExceededException, ExecutionAlreadyExistsException, InvalidArnException,
InvalidExecutionInputException, InvalidNameException, StateMachineDoesNotExistException,
StateMachineDeletingException, SdkServiceException, SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new StartExecutionResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(startExecutionRequest).withMarshaller(new StartExecutionRequestMarshaller(protocolFactory)));
}
/**
*
* Stops an execution.
*
*
* @param stopExecutionRequest
* @return Result of the StopExecution operation returned by the service.
* @throws ExecutionDoesNotExistException
* The specified execution does not exist.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.StopExecution
* @see AWS API
* Documentation
*/
@Override
public StopExecutionResponse stopExecution(StopExecutionRequest stopExecutionRequest) throws ExecutionDoesNotExistException,
InvalidArnException, SdkServiceException, SdkClientException, SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new StopExecutionResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(stopExecutionRequest).withMarshaller(new StopExecutionRequestMarshaller(protocolFactory)));
}
/**
*
* Updates an existing state machine by modifying its definition
and/or roleArn
. Running
* executions will continue to use the previous definition
and roleArn
.
*
*
*
* All StartExecution
calls within a few seconds will use the updated definition
and
* roleArn
. Executions started immediately after calling UpdateStateMachine
may use the
* previous state machine definition
and roleArn
. You must include at least one of
* definition
or roleArn
or you will receive a MissingRequiredParameter
* error.
*
*
*
* @param updateStateMachineRequest
* @return Result of the UpdateStateMachine operation returned by the service.
* @throws InvalidArnException
* The provided Amazon Resource Name (ARN) is invalid.
* @throws InvalidDefinitionException
* The provided Amazon States Language definition is invalid.
* @throws MissingRequiredParameterException
* Request is missing a required parameter. This error occurs if both definition
and
* roleArn
are not specified.
* @throws StateMachineDeletingException
* The specified state machine is being deleted.
* @throws StateMachineDoesNotExistException
* The specified state machine does not exist.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws SFNException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SFNClient.UpdateStateMachine
* @see AWS API
* Documentation
*/
@Override
public UpdateStateMachineResponse updateStateMachine(UpdateStateMachineRequest updateStateMachineRequest)
throws InvalidArnException, InvalidDefinitionException, MissingRequiredParameterException,
StateMachineDeletingException, StateMachineDoesNotExistException, SdkServiceException, SdkClientException,
SFNException {
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new UpdateStateMachineResponseUnmarshaller());
HttpResponseHandler errorResponseHandler = createErrorResponseHandler();
return clientHandler.execute(new ClientExecutionParams()
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withInput(updateStateMachineRequest).withMarshaller(new UpdateStateMachineRequestMarshaller(protocolFactory)));
}
private HttpResponseHandler createErrorResponseHandler() {
return protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata());
}
private software.amazon.awssdk.core.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("MissingRequiredParameter").withModeledClass(
MissingRequiredParameterException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("StateMachineDoesNotExist").withModeledClass(
StateMachineDoesNotExistException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("ExecutionDoesNotExist").withModeledClass(
ExecutionDoesNotExistException.class)));
}
@Override
public void close() {
clientHandler.close();
}
}