
software.amazon.awssdk.services.swf.DefaultSwfClient Maven / Gradle / Ivy
/*
* Copyright 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.swf;
import java.util.Collections;
import java.util.List;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.core.RequestOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientOption;
import software.amazon.awssdk.core.client.handler.ClientExecutionParams;
import software.amazon.awssdk.core.client.handler.SyncClientHandler;
import software.amazon.awssdk.core.exception.SdkClientException;
import software.amazon.awssdk.core.http.HttpResponseHandler;
import software.amazon.awssdk.core.metrics.CoreMetric;
import software.amazon.awssdk.metrics.MetricCollector;
import software.amazon.awssdk.metrics.MetricPublisher;
import software.amazon.awssdk.metrics.NoOpMetricCollector;
import software.amazon.awssdk.protocols.core.ExceptionMetadata;
import software.amazon.awssdk.protocols.json.AwsJsonProtocol;
import software.amazon.awssdk.protocols.json.AwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.BaseAwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.JsonOperationMetadata;
import software.amazon.awssdk.services.swf.model.CountClosedWorkflowExecutionsRequest;
import software.amazon.awssdk.services.swf.model.CountClosedWorkflowExecutionsResponse;
import software.amazon.awssdk.services.swf.model.CountOpenWorkflowExecutionsRequest;
import software.amazon.awssdk.services.swf.model.CountOpenWorkflowExecutionsResponse;
import software.amazon.awssdk.services.swf.model.CountPendingActivityTasksRequest;
import software.amazon.awssdk.services.swf.model.CountPendingActivityTasksResponse;
import software.amazon.awssdk.services.swf.model.CountPendingDecisionTasksRequest;
import software.amazon.awssdk.services.swf.model.CountPendingDecisionTasksResponse;
import software.amazon.awssdk.services.swf.model.DefaultUndefinedException;
import software.amazon.awssdk.services.swf.model.DeprecateActivityTypeRequest;
import software.amazon.awssdk.services.swf.model.DeprecateActivityTypeResponse;
import software.amazon.awssdk.services.swf.model.DeprecateDomainRequest;
import software.amazon.awssdk.services.swf.model.DeprecateDomainResponse;
import software.amazon.awssdk.services.swf.model.DeprecateWorkflowTypeRequest;
import software.amazon.awssdk.services.swf.model.DeprecateWorkflowTypeResponse;
import software.amazon.awssdk.services.swf.model.DescribeActivityTypeRequest;
import software.amazon.awssdk.services.swf.model.DescribeActivityTypeResponse;
import software.amazon.awssdk.services.swf.model.DescribeDomainRequest;
import software.amazon.awssdk.services.swf.model.DescribeDomainResponse;
import software.amazon.awssdk.services.swf.model.DescribeWorkflowExecutionRequest;
import software.amazon.awssdk.services.swf.model.DescribeWorkflowExecutionResponse;
import software.amazon.awssdk.services.swf.model.DescribeWorkflowTypeRequest;
import software.amazon.awssdk.services.swf.model.DescribeWorkflowTypeResponse;
import software.amazon.awssdk.services.swf.model.DomainAlreadyExistsException;
import software.amazon.awssdk.services.swf.model.DomainDeprecatedException;
import software.amazon.awssdk.services.swf.model.GetWorkflowExecutionHistoryRequest;
import software.amazon.awssdk.services.swf.model.GetWorkflowExecutionHistoryResponse;
import software.amazon.awssdk.services.swf.model.LimitExceededException;
import software.amazon.awssdk.services.swf.model.ListActivityTypesRequest;
import software.amazon.awssdk.services.swf.model.ListActivityTypesResponse;
import software.amazon.awssdk.services.swf.model.ListClosedWorkflowExecutionsRequest;
import software.amazon.awssdk.services.swf.model.ListClosedWorkflowExecutionsResponse;
import software.amazon.awssdk.services.swf.model.ListDomainsRequest;
import software.amazon.awssdk.services.swf.model.ListDomainsResponse;
import software.amazon.awssdk.services.swf.model.ListOpenWorkflowExecutionsRequest;
import software.amazon.awssdk.services.swf.model.ListOpenWorkflowExecutionsResponse;
import software.amazon.awssdk.services.swf.model.ListTagsForResourceRequest;
import software.amazon.awssdk.services.swf.model.ListTagsForResourceResponse;
import software.amazon.awssdk.services.swf.model.ListWorkflowTypesRequest;
import software.amazon.awssdk.services.swf.model.ListWorkflowTypesResponse;
import software.amazon.awssdk.services.swf.model.OperationNotPermittedException;
import software.amazon.awssdk.services.swf.model.PollForActivityTaskRequest;
import software.amazon.awssdk.services.swf.model.PollForActivityTaskResponse;
import software.amazon.awssdk.services.swf.model.PollForDecisionTaskRequest;
import software.amazon.awssdk.services.swf.model.PollForDecisionTaskResponse;
import software.amazon.awssdk.services.swf.model.RecordActivityTaskHeartbeatRequest;
import software.amazon.awssdk.services.swf.model.RecordActivityTaskHeartbeatResponse;
import software.amazon.awssdk.services.swf.model.RegisterActivityTypeRequest;
import software.amazon.awssdk.services.swf.model.RegisterActivityTypeResponse;
import software.amazon.awssdk.services.swf.model.RegisterDomainRequest;
import software.amazon.awssdk.services.swf.model.RegisterDomainResponse;
import software.amazon.awssdk.services.swf.model.RegisterWorkflowTypeRequest;
import software.amazon.awssdk.services.swf.model.RegisterWorkflowTypeResponse;
import software.amazon.awssdk.services.swf.model.RequestCancelWorkflowExecutionRequest;
import software.amazon.awssdk.services.swf.model.RequestCancelWorkflowExecutionResponse;
import software.amazon.awssdk.services.swf.model.RespondActivityTaskCanceledRequest;
import software.amazon.awssdk.services.swf.model.RespondActivityTaskCanceledResponse;
import software.amazon.awssdk.services.swf.model.RespondActivityTaskCompletedRequest;
import software.amazon.awssdk.services.swf.model.RespondActivityTaskCompletedResponse;
import software.amazon.awssdk.services.swf.model.RespondActivityTaskFailedRequest;
import software.amazon.awssdk.services.swf.model.RespondActivityTaskFailedResponse;
import software.amazon.awssdk.services.swf.model.RespondDecisionTaskCompletedRequest;
import software.amazon.awssdk.services.swf.model.RespondDecisionTaskCompletedResponse;
import software.amazon.awssdk.services.swf.model.SignalWorkflowExecutionRequest;
import software.amazon.awssdk.services.swf.model.SignalWorkflowExecutionResponse;
import software.amazon.awssdk.services.swf.model.StartWorkflowExecutionRequest;
import software.amazon.awssdk.services.swf.model.StartWorkflowExecutionResponse;
import software.amazon.awssdk.services.swf.model.SwfException;
import software.amazon.awssdk.services.swf.model.TagResourceRequest;
import software.amazon.awssdk.services.swf.model.TagResourceResponse;
import software.amazon.awssdk.services.swf.model.TerminateWorkflowExecutionRequest;
import software.amazon.awssdk.services.swf.model.TerminateWorkflowExecutionResponse;
import software.amazon.awssdk.services.swf.model.TooManyTagsException;
import software.amazon.awssdk.services.swf.model.TypeAlreadyExistsException;
import software.amazon.awssdk.services.swf.model.TypeDeprecatedException;
import software.amazon.awssdk.services.swf.model.UndeprecateActivityTypeRequest;
import software.amazon.awssdk.services.swf.model.UndeprecateActivityTypeResponse;
import software.amazon.awssdk.services.swf.model.UndeprecateDomainRequest;
import software.amazon.awssdk.services.swf.model.UndeprecateDomainResponse;
import software.amazon.awssdk.services.swf.model.UndeprecateWorkflowTypeRequest;
import software.amazon.awssdk.services.swf.model.UndeprecateWorkflowTypeResponse;
import software.amazon.awssdk.services.swf.model.UnknownResourceException;
import software.amazon.awssdk.services.swf.model.UntagResourceRequest;
import software.amazon.awssdk.services.swf.model.UntagResourceResponse;
import software.amazon.awssdk.services.swf.model.WorkflowExecutionAlreadyStartedException;
import software.amazon.awssdk.services.swf.transform.CountClosedWorkflowExecutionsRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.CountOpenWorkflowExecutionsRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.CountPendingActivityTasksRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.CountPendingDecisionTasksRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.DeprecateActivityTypeRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.DeprecateDomainRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.DeprecateWorkflowTypeRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.DescribeActivityTypeRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.DescribeDomainRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.DescribeWorkflowExecutionRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.DescribeWorkflowTypeRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.GetWorkflowExecutionHistoryRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.ListActivityTypesRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.ListClosedWorkflowExecutionsRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.ListDomainsRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.ListOpenWorkflowExecutionsRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.ListTagsForResourceRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.ListWorkflowTypesRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.PollForActivityTaskRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.PollForDecisionTaskRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.RecordActivityTaskHeartbeatRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.RegisterActivityTypeRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.RegisterDomainRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.RegisterWorkflowTypeRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.RequestCancelWorkflowExecutionRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.RespondActivityTaskCanceledRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.RespondActivityTaskCompletedRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.RespondActivityTaskFailedRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.RespondDecisionTaskCompletedRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.SignalWorkflowExecutionRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.StartWorkflowExecutionRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.TagResourceRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.TerminateWorkflowExecutionRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.UndeprecateActivityTypeRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.UndeprecateDomainRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.UndeprecateWorkflowTypeRequestMarshaller;
import software.amazon.awssdk.services.swf.transform.UntagResourceRequestMarshaller;
import software.amazon.awssdk.utils.Logger;
/**
* Internal implementation of {@link SwfClient}.
*
* @see SwfClient#builder()
*/
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultSwfClient implements SwfClient {
private static final Logger log = Logger.loggerFor(DefaultSwfClient.class);
private final SyncClientHandler clientHandler;
private final AwsJsonProtocolFactory protocolFactory;
private final SdkClientConfiguration clientConfiguration;
private final SwfServiceClientConfiguration serviceClientConfiguration;
protected DefaultSwfClient(SwfServiceClientConfiguration serviceClientConfiguration,
SdkClientConfiguration clientConfiguration) {
this.clientHandler = new AwsSyncClientHandler(clientConfiguration);
this.clientConfiguration = clientConfiguration;
this.serviceClientConfiguration = serviceClientConfiguration;
this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build();
}
/**
*
* Returns the number of closed workflow executions within the given domain that meet the specified filtering
* criteria.
*
*
*
* This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates
* and changes.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the following parameters by using a Condition
element with the appropriate keys.
*
*
* -
*
* tagFilter.tag
: String constraint. The key is swf:tagFilter.tag
.
*
*
* -
*
* typeFilter.name
: String constraint. The key is swf:typeFilter.name
.
*
*
* -
*
* typeFilter.version
: String constraint. The key is swf:typeFilter.version
.
*
*
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param countClosedWorkflowExecutionsRequest
* @return Result of the CountClosedWorkflowExecutions operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.CountClosedWorkflowExecutions
*/
@Override
public CountClosedWorkflowExecutionsResponse countClosedWorkflowExecutions(
CountClosedWorkflowExecutionsRequest countClosedWorkflowExecutionsRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CountClosedWorkflowExecutionsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
countClosedWorkflowExecutionsRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CountClosedWorkflowExecutions");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CountClosedWorkflowExecutions").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(countClosedWorkflowExecutionsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CountClosedWorkflowExecutionsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns the number of open workflow executions within the given domain that meet the specified filtering
* criteria.
*
*
*
* This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates
* and changes.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the following parameters by using a Condition
element with the appropriate keys.
*
*
* -
*
* tagFilter.tag
: String constraint. The key is swf:tagFilter.tag
.
*
*
* -
*
* typeFilter.name
: String constraint. The key is swf:typeFilter.name
.
*
*
* -
*
* typeFilter.version
: String constraint. The key is swf:typeFilter.version
.
*
*
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param countOpenWorkflowExecutionsRequest
* @return Result of the CountOpenWorkflowExecutions operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.CountOpenWorkflowExecutions
*/
@Override
public CountOpenWorkflowExecutionsResponse countOpenWorkflowExecutions(
CountOpenWorkflowExecutionsRequest countOpenWorkflowExecutionsRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CountOpenWorkflowExecutionsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, countOpenWorkflowExecutionsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CountOpenWorkflowExecutions");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CountOpenWorkflowExecutions").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(countOpenWorkflowExecutionsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CountOpenWorkflowExecutionsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns the estimated number of activity tasks in the specified task list. The count returned is an approximation
* and isn't guaranteed to be exact. If you specify a task list that no activity task was ever scheduled in then
* 0
is returned.
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the taskList.name
parameter by using a Condition
element with the
* swf:taskList.name
key to allow the action to access only certain task lists.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param countPendingActivityTasksRequest
* @return Result of the CountPendingActivityTasks operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.CountPendingActivityTasks
*/
@Override
public CountPendingActivityTasksResponse countPendingActivityTasks(
CountPendingActivityTasksRequest countPendingActivityTasksRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CountPendingActivityTasksResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, countPendingActivityTasksRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CountPendingActivityTasks");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CountPendingActivityTasks").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(countPendingActivityTasksRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CountPendingActivityTasksRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns the estimated number of decision tasks in the specified task list. The count returned is an approximation
* and isn't guaranteed to be exact. If you specify a task list that no decision task was ever scheduled in then
* 0
is returned.
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the taskList.name
parameter by using a Condition
element with the
* swf:taskList.name
key to allow the action to access only certain task lists.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param countPendingDecisionTasksRequest
* @return Result of the CountPendingDecisionTasks operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.CountPendingDecisionTasks
*/
@Override
public CountPendingDecisionTasksResponse countPendingDecisionTasks(
CountPendingDecisionTasksRequest countPendingDecisionTasksRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CountPendingDecisionTasksResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, countPendingDecisionTasksRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CountPendingDecisionTasks");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CountPendingDecisionTasks").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(countPendingDecisionTasksRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CountPendingDecisionTasksRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Deprecates the specified activity type. After an activity type has been deprecated, you cannot create new
* tasks of that activity type. Tasks of this type that were scheduled before the type was deprecated continue to
* run.
*
*
*
* This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates
* and changes.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the following parameters by using a Condition
element with the appropriate keys.
*
*
* -
*
* activityType.name
: String constraint. The key is swf:activityType.name
.
*
*
* -
*
* activityType.version
: String constraint. The key is swf:activityType.version
.
*
*
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param deprecateActivityTypeRequest
* @return Result of the DeprecateActivityType operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws TypeDeprecatedException
* Returned when the specified activity or workflow type was already deprecated.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.DeprecateActivityType
*/
@Override
public DeprecateActivityTypeResponse deprecateActivityType(DeprecateActivityTypeRequest deprecateActivityTypeRequest)
throws UnknownResourceException, TypeDeprecatedException, OperationNotPermittedException, AwsServiceException,
SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeprecateActivityTypeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deprecateActivityTypeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeprecateActivityType");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeprecateActivityType").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deprecateActivityTypeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeprecateActivityTypeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Deprecates the specified domain. After a domain has been deprecated it cannot be used to create new workflow
* executions or register new types. However, you can still use visibility actions on this domain. Deprecating a
* domain also deprecates all activity and workflow types registered in the domain. Executions that were started
* before the domain was deprecated continues to run.
*
*
*
* This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates
* and changes.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param deprecateDomainRequest
* @return Result of the DeprecateDomain operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws DomainDeprecatedException
* Returned when the specified domain has been deprecated.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.DeprecateDomain
*/
@Override
public DeprecateDomainResponse deprecateDomain(DeprecateDomainRequest deprecateDomainRequest)
throws UnknownResourceException, DomainDeprecatedException, OperationNotPermittedException, AwsServiceException,
SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeprecateDomainResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deprecateDomainRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeprecateDomain");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeprecateDomain").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deprecateDomainRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeprecateDomainRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Deprecates the specified workflow type. After a workflow type has been deprecated, you cannot create new
* executions of that type. Executions that were started before the type was deprecated continues to run. A
* deprecated workflow type may still be used when calling visibility actions.
*
*
*
* This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates
* and changes.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the following parameters by using a Condition
element with the appropriate keys.
*
*
* -
*
* workflowType.name
: String constraint. The key is swf:workflowType.name
.
*
*
* -
*
* workflowType.version
: String constraint. The key is swf:workflowType.version
.
*
*
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param deprecateWorkflowTypeRequest
* @return Result of the DeprecateWorkflowType operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws TypeDeprecatedException
* Returned when the specified activity or workflow type was already deprecated.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.DeprecateWorkflowType
*/
@Override
public DeprecateWorkflowTypeResponse deprecateWorkflowType(DeprecateWorkflowTypeRequest deprecateWorkflowTypeRequest)
throws UnknownResourceException, TypeDeprecatedException, OperationNotPermittedException, AwsServiceException,
SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeprecateWorkflowTypeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deprecateWorkflowTypeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeprecateWorkflowType");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeprecateWorkflowType").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deprecateWorkflowTypeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeprecateWorkflowTypeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns information about the specified activity type. This includes configuration settings provided when the
* type was registered and other general information about the type.
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the following parameters by using a Condition
element with the appropriate keys.
*
*
* -
*
* activityType.name
: String constraint. The key is swf:activityType.name
.
*
*
* -
*
* activityType.version
: String constraint. The key is swf:activityType.version
.
*
*
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param describeActivityTypeRequest
* @return Result of the DescribeActivityType operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.DescribeActivityType
*/
@Override
public DescribeActivityTypeResponse describeActivityType(DescribeActivityTypeRequest describeActivityTypeRequest)
throws UnknownResourceException, OperationNotPermittedException, AwsServiceException, SdkClientException,
SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeActivityTypeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeActivityTypeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeActivityType");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeActivityType").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeActivityTypeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeActivityTypeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns information about the specified domain, including description and status.
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param describeDomainRequest
* @return Result of the DescribeDomain operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.DescribeDomain
*/
@Override
public DescribeDomainResponse describeDomain(DescribeDomainRequest describeDomainRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DescribeDomainResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeDomainRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeDomain");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeDomain").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeDomainRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeDomainRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns information about the specified workflow execution including its type and some statistics.
*
*
*
* This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates
* and changes.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param describeWorkflowExecutionRequest
* @return Result of the DescribeWorkflowExecution operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.DescribeWorkflowExecution
*/
@Override
public DescribeWorkflowExecutionResponse describeWorkflowExecution(
DescribeWorkflowExecutionRequest describeWorkflowExecutionRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeWorkflowExecutionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeWorkflowExecutionRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeWorkflowExecution");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeWorkflowExecution").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeWorkflowExecutionRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeWorkflowExecutionRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns information about the specified workflow type. This includes configuration settings specified when
* the type was registered and other information such as creation date, current status, etc.
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the following parameters by using a Condition
element with the appropriate keys.
*
*
* -
*
* workflowType.name
: String constraint. The key is swf:workflowType.name
.
*
*
* -
*
* workflowType.version
: String constraint. The key is swf:workflowType.version
.
*
*
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param describeWorkflowTypeRequest
* @return Result of the DescribeWorkflowType operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.DescribeWorkflowType
*/
@Override
public DescribeWorkflowTypeResponse describeWorkflowType(DescribeWorkflowTypeRequest describeWorkflowTypeRequest)
throws UnknownResourceException, OperationNotPermittedException, AwsServiceException, SdkClientException,
SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeWorkflowTypeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeWorkflowTypeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeWorkflowType");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeWorkflowType").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeWorkflowTypeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeWorkflowTypeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns the history of the specified workflow execution. The results may be split into multiple pages. To
* retrieve subsequent pages, make the call again using the nextPageToken
returned by the initial call.
*
*
*
* This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates
* and changes.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param getWorkflowExecutionHistoryRequest
* @return Result of the GetWorkflowExecutionHistory operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.GetWorkflowExecutionHistory
*/
@Override
public GetWorkflowExecutionHistoryResponse getWorkflowExecutionHistory(
GetWorkflowExecutionHistoryRequest getWorkflowExecutionHistoryRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, GetWorkflowExecutionHistoryResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, getWorkflowExecutionHistoryRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetWorkflowExecutionHistory");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("GetWorkflowExecutionHistory").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(getWorkflowExecutionHistoryRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new GetWorkflowExecutionHistoryRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns information about all activities registered in the specified domain that match the specified name and
* registration status. The result includes information like creation date, current status of the activity, etc. The
* results may be split into multiple pages. To retrieve subsequent pages, make the call again using the
* nextPageToken
returned by the initial call.
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param listActivityTypesRequest
* @return Result of the ListActivityTypes operation returned by the service.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.ListActivityTypes
*/
@Override
public ListActivityTypesResponse listActivityTypes(ListActivityTypesRequest listActivityTypesRequest)
throws OperationNotPermittedException, UnknownResourceException, AwsServiceException, SdkClientException,
SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
ListActivityTypesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listActivityTypesRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListActivityTypes");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListActivityTypes").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listActivityTypesRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListActivityTypesRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns a list of closed workflow executions in the specified domain that meet the filtering criteria. The
* results may be split into multiple pages. To retrieve subsequent pages, make the call again using the
* nextPageToken returned by the initial call.
*
*
*
* This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates
* and changes.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the following parameters by using a Condition
element with the appropriate keys.
*
*
* -
*
* tagFilter.tag
: String constraint. The key is swf:tagFilter.tag
.
*
*
* -
*
* typeFilter.name
: String constraint. The key is swf:typeFilter.name
.
*
*
* -
*
* typeFilter.version
: String constraint. The key is swf:typeFilter.version
.
*
*
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param listClosedWorkflowExecutionsRequest
* @return Result of the ListClosedWorkflowExecutions operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.ListClosedWorkflowExecutions
*/
@Override
public ListClosedWorkflowExecutionsResponse listClosedWorkflowExecutions(
ListClosedWorkflowExecutionsRequest listClosedWorkflowExecutionsRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListClosedWorkflowExecutionsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listClosedWorkflowExecutionsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListClosedWorkflowExecutions");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListClosedWorkflowExecutions").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listClosedWorkflowExecutionsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListClosedWorkflowExecutionsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns the list of domains registered in the account. The results may be split into multiple pages. To retrieve
* subsequent pages, make the call again using the nextPageToken returned by the initial call.
*
*
*
* This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates
* and changes.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains. The
* element must be set to arn:aws:swf::AccountID:domain/*
, where AccountID is the account ID,
* with no dashes.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param listDomainsRequest
* @return Result of the ListDomains operation returned by the service.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.ListDomains
*/
@Override
public ListDomainsResponse listDomains(ListDomainsRequest listDomainsRequest) throws OperationNotPermittedException,
AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
ListDomainsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listDomainsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListDomains");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListDomains").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listDomainsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListDomainsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns a list of open workflow executions in the specified domain that meet the filtering criteria. The results
* may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken
* returned by the initial call.
*
*
*
* This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates
* and changes.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the following parameters by using a Condition
element with the appropriate keys.
*
*
* -
*
* tagFilter.tag
: String constraint. The key is swf:tagFilter.tag
.
*
*
* -
*
* typeFilter.name
: String constraint. The key is swf:typeFilter.name
.
*
*
* -
*
* typeFilter.version
: String constraint. The key is swf:typeFilter.version
.
*
*
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param listOpenWorkflowExecutionsRequest
* @return Result of the ListOpenWorkflowExecutions operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.ListOpenWorkflowExecutions
*/
@Override
public ListOpenWorkflowExecutionsResponse listOpenWorkflowExecutions(
ListOpenWorkflowExecutionsRequest listOpenWorkflowExecutionsRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListOpenWorkflowExecutionsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listOpenWorkflowExecutionsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListOpenWorkflowExecutions");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListOpenWorkflowExecutions").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listOpenWorkflowExecutionsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListOpenWorkflowExecutionsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List tags for a given domain.
*
*
* @param listTagsForResourceRequest
* @return Result of the ListTagsForResource operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws LimitExceededException
* Returned by any operation if a system imposed limitation has been reached. To address this fault you
* should either clean up unused resources or increase the limit by contacting AWS.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.ListTagsForResource
*/
@Override
public ListTagsForResourceResponse listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest)
throws UnknownResourceException, LimitExceededException, OperationNotPermittedException, AwsServiceException,
SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListTagsForResourceResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listTagsForResourceRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTagsForResource");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListTagsForResource").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listTagsForResourceRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListTagsForResourceRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns information about workflow types in the specified domain. The results may be split into multiple pages
* that can be retrieved by making the call repeatedly.
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param listWorkflowTypesRequest
* @return Result of the ListWorkflowTypes operation returned by the service.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.ListWorkflowTypes
*/
@Override
public ListWorkflowTypesResponse listWorkflowTypes(ListWorkflowTypesRequest listWorkflowTypesRequest)
throws OperationNotPermittedException, UnknownResourceException, AwsServiceException, SdkClientException,
SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
ListWorkflowTypesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listWorkflowTypesRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListWorkflowTypes");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListWorkflowTypes").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listWorkflowTypesRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListWorkflowTypesRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Used by workers to get an ActivityTask from the specified activity taskList
. This initiates a
* long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available. 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 an empty result. An empty result, in this context, means that an ActivityTask is
* returned, but that the value of taskToken is an empty string. If a task is returned, the worker should use its
* type to identify and process it correctly.
*
*
*
* Workers should set their client side socket timeout to at least 70 seconds (10 seconds higher than the maximum
* time service may hold the poll request).
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the taskList.name
parameter by using a Condition
element with the
* swf:taskList.name
key to allow the action to access only certain task lists.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param pollForActivityTaskRequest
* @return Result of the PollForActivityTask operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @throws LimitExceededException
* Returned by any operation if a system imposed limitation has been reached. To address this fault you
* should either clean up unused resources or increase the limit by contacting AWS.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.PollForActivityTask
*/
@Override
public PollForActivityTaskResponse pollForActivityTask(PollForActivityTaskRequest pollForActivityTaskRequest)
throws UnknownResourceException, OperationNotPermittedException, LimitExceededException, AwsServiceException,
SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, PollForActivityTaskResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, pollForActivityTaskRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "PollForActivityTask");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("PollForActivityTask").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(pollForActivityTaskRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new PollForActivityTaskRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Used by deciders to get a DecisionTask from the specified decision taskList
. A decision task
* may be returned for any open workflow execution that is using the specified task list. The task includes a
* paginated view of the history of the workflow execution. The decider should use the workflow type and the history
* to determine how to properly handle the task.
*
*
* This action initiates a long poll, where the service holds the HTTP connection open and responds as soon a task
* becomes available. If no decision task is available in the specified task list before the timeout of 60 seconds
* expires, an empty result is returned. An empty result, in this context, means that a DecisionTask is returned,
* but that the value of taskToken is an empty string.
*
*
*
* Deciders should set their client side socket timeout to at least 70 seconds (10 seconds higher than the timeout).
*
*
*
* Because the number of workflow history events for a single workflow execution might be very large, the result
* returned might be split up across a number of pages. To retrieve subsequent pages, make additional calls to
* PollForDecisionTask
using the nextPageToken
returned by the initial call. Note that you
* do not call GetWorkflowExecutionHistory
with this nextPageToken
. Instead, call
* PollForDecisionTask
again.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the taskList.name
parameter by using a Condition
element with the
* swf:taskList.name
key to allow the action to access only certain task lists.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param pollForDecisionTaskRequest
* @return Result of the PollForDecisionTask operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @throws LimitExceededException
* Returned by any operation if a system imposed limitation has been reached. To address this fault you
* should either clean up unused resources or increase the limit by contacting AWS.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.PollForDecisionTask
*/
@Override
public PollForDecisionTaskResponse pollForDecisionTask(PollForDecisionTaskRequest pollForDecisionTaskRequest)
throws UnknownResourceException, OperationNotPermittedException, LimitExceededException, AwsServiceException,
SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, PollForDecisionTaskResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, pollForDecisionTaskRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "PollForDecisionTask");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("PollForDecisionTask").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(pollForDecisionTaskRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new PollForDecisionTaskRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Used by activity workers to report to the service that the ActivityTask represented by the specified
* taskToken
is still making progress. The worker can also specify details of the progress, for example
* percent complete, using the details
parameter. This action can also be used by the worker as a
* mechanism to check if cancellation is being requested for the activity task. If a cancellation is being attempted
* for the specified task, then the boolean cancelRequested
flag returned by the service is set to
* true
.
*
*
* This action resets the taskHeartbeatTimeout
clock. The taskHeartbeatTimeout
is
* specified in RegisterActivityType.
*
*
* This action doesn't in itself create an event in the workflow execution history. However, if the task times out,
* the workflow execution history contains a ActivityTaskTimedOut
event that contains the information
* from the last heartbeat generated by the activity worker.
*
*
*
* The taskStartToCloseTimeout
of an activity type is the maximum duration of an activity task,
* regardless of the number of RecordActivityTaskHeartbeat requests received. The
* taskStartToCloseTimeout
is also specified in RegisterActivityType.
*
*
*
* This operation is only useful for long-lived activities to report liveliness of the task and to determine if a
* cancellation is being attempted.
*
*
*
* If the cancelRequested
flag returns true
, a cancellation is being attempted. If the
* worker can cancel the activity, it should respond with RespondActivityTaskCanceled. Otherwise, it should
* ignore the cancellation request.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param recordActivityTaskHeartbeatRequest
* @return Result of the RecordActivityTaskHeartbeat operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.RecordActivityTaskHeartbeat
*/
@Override
public RecordActivityTaskHeartbeatResponse recordActivityTaskHeartbeat(
RecordActivityTaskHeartbeatRequest recordActivityTaskHeartbeatRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, RecordActivityTaskHeartbeatResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, recordActivityTaskHeartbeatRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RecordActivityTaskHeartbeat");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("RecordActivityTaskHeartbeat").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(recordActivityTaskHeartbeatRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new RecordActivityTaskHeartbeatRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Registers a new activity type along with its configuration settings in the specified domain.
*
*
*
* A TypeAlreadyExists
fault is returned if the type already exists in the domain. You cannot change
* any configuration settings of the type after its registration, and it must be registered as a new version.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the following parameters by using a Condition
element with the appropriate keys.
*
*
* -
*
* defaultTaskList.name
: String constraint. The key is swf:defaultTaskList.name
.
*
*
* -
*
* name
: String constraint. The key is swf:name
.
*
*
* -
*
* version
: String constraint. The key is swf:version
.
*
*
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param registerActivityTypeRequest
* @return Result of the RegisterActivityType operation returned by the service.
* @throws TypeAlreadyExistsException
* Returned if the type already exists in the specified domain. You may get this fault if you are
* registering a type that is either already registered or deprecated, or if you undeprecate a type that is
* currently registered.
* @throws LimitExceededException
* Returned by any operation if a system imposed limitation has been reached. To address this fault you
* should either clean up unused resources or increase the limit by contacting AWS.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.RegisterActivityType
*/
@Override
public RegisterActivityTypeResponse registerActivityType(RegisterActivityTypeRequest registerActivityTypeRequest)
throws TypeAlreadyExistsException, LimitExceededException, UnknownResourceException, OperationNotPermittedException,
AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, RegisterActivityTypeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, registerActivityTypeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RegisterActivityType");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("RegisterActivityType").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(registerActivityTypeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new RegisterActivityTypeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Registers a new domain.
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* You cannot use an IAM policy to control domain access for this action. The name of the domain being registered is
* available as the resource of this action.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param registerDomainRequest
* @return Result of the RegisterDomain operation returned by the service.
* @throws DomainAlreadyExistsException
* Returned if the domain already exists. You may get this fault if you are registering a domain that is
* either already registered or deprecated, or if you undeprecate a domain that is currently registered.
* @throws LimitExceededException
* Returned by any operation if a system imposed limitation has been reached. To address this fault you
* should either clean up unused resources or increase the limit by contacting AWS.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @throws TooManyTagsException
* You've exceeded the number of tags allowed for a domain.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.RegisterDomain
*/
@Override
public RegisterDomainResponse registerDomain(RegisterDomainRequest registerDomainRequest)
throws DomainAlreadyExistsException, LimitExceededException, OperationNotPermittedException, TooManyTagsException,
AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
RegisterDomainResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, registerDomainRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RegisterDomain");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("RegisterDomain").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(registerDomainRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new RegisterDomainRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Registers a new workflow type and its configuration settings in the specified domain.
*
*
* The retention period for the workflow history is set by the RegisterDomain action.
*
*
*
* If the type already exists, then a TypeAlreadyExists
fault is returned. You cannot change the
* configuration settings of a workflow type once it is registered and it must be registered as a new version.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the following parameters by using a Condition
element with the appropriate keys.
*
*
* -
*
* defaultTaskList.name
: String constraint. The key is swf:defaultTaskList.name
.
*
*
* -
*
* name
: String constraint. The key is swf:name
.
*
*
* -
*
* version
: String constraint. The key is swf:version
.
*
*
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param registerWorkflowTypeRequest
* @return Result of the RegisterWorkflowType operation returned by the service.
* @throws TypeAlreadyExistsException
* Returned if the type already exists in the specified domain. You may get this fault if you are
* registering a type that is either already registered or deprecated, or if you undeprecate a type that is
* currently registered.
* @throws LimitExceededException
* Returned by any operation if a system imposed limitation has been reached. To address this fault you
* should either clean up unused resources or increase the limit by contacting AWS.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.RegisterWorkflowType
*/
@Override
public RegisterWorkflowTypeResponse registerWorkflowType(RegisterWorkflowTypeRequest registerWorkflowTypeRequest)
throws TypeAlreadyExistsException, LimitExceededException, UnknownResourceException, OperationNotPermittedException,
AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, RegisterWorkflowTypeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, registerWorkflowTypeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RegisterWorkflowType");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("RegisterWorkflowType").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(registerWorkflowTypeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new RegisterWorkflowTypeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Records a WorkflowExecutionCancelRequested
event in the currently running workflow execution
* identified by the given domain, workflowId, and runId. This logically requests the cancellation of the workflow
* execution as a whole. It is up to the decider to take appropriate actions when it receives an execution history
* with this event.
*
*
*
* If the runId isn't specified, the WorkflowExecutionCancelRequested
event is recorded in the history
* of the current open workflow execution with the specified workflowId in the domain.
*
*
*
* Because this action allows the workflow to properly clean up and gracefully close, it should be used instead of
* TerminateWorkflowExecution when possible.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param requestCancelWorkflowExecutionRequest
* @return Result of the RequestCancelWorkflowExecution operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.RequestCancelWorkflowExecution
*/
@Override
public RequestCancelWorkflowExecutionResponse requestCancelWorkflowExecution(
RequestCancelWorkflowExecutionRequest requestCancelWorkflowExecutionRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, RequestCancelWorkflowExecutionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
requestCancelWorkflowExecutionRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RequestCancelWorkflowExecution");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("RequestCancelWorkflowExecution").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(requestCancelWorkflowExecutionRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new RequestCancelWorkflowExecutionRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Used by workers to tell the service that the ActivityTask identified by the taskToken
was
* successfully canceled. Additional details
can be provided using the details
argument.
*
*
* These details
(if provided) appear in the ActivityTaskCanceled
event added to the
* workflow history.
*
*
*
* Only use this operation if the canceled
flag of a RecordActivityTaskHeartbeat request returns
* true
and if the activity can be safely undone or abandoned.
*
*
*
* A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as
* open while a worker is processing it. A task is closed after it has been specified in a call to
* RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task
* has timed
* out.
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param respondActivityTaskCanceledRequest
* @return Result of the RespondActivityTaskCanceled operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.RespondActivityTaskCanceled
*/
@Override
public RespondActivityTaskCanceledResponse respondActivityTaskCanceled(
RespondActivityTaskCanceledRequest respondActivityTaskCanceledRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, RespondActivityTaskCanceledResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, respondActivityTaskCanceledRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RespondActivityTaskCanceled");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("RespondActivityTaskCanceled").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(respondActivityTaskCanceledRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new RespondActivityTaskCanceledRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Used by workers to tell the service that the ActivityTask identified by the taskToken
* completed successfully with a result
(if provided). The result
appears in the
* ActivityTaskCompleted
event in the workflow history.
*
*
*
* If the requested task doesn't complete successfully, use RespondActivityTaskFailed instead. If the worker
* finds that the task is canceled through the canceled
flag returned by
* RecordActivityTaskHeartbeat, it should cancel the task, clean up and then call
* RespondActivityTaskCanceled.
*
*
*
* A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as
* open while a worker is processing it. A task is closed after it has been specified in a call to
* RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task
* has timed
* out.
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param respondActivityTaskCompletedRequest
* @return Result of the RespondActivityTaskCompleted operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.RespondActivityTaskCompleted
*/
@Override
public RespondActivityTaskCompletedResponse respondActivityTaskCompleted(
RespondActivityTaskCompletedRequest respondActivityTaskCompletedRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, RespondActivityTaskCompletedResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, respondActivityTaskCompletedRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RespondActivityTaskCompleted");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("RespondActivityTaskCompleted").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(respondActivityTaskCompletedRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new RespondActivityTaskCompletedRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Used by workers to tell the service that the ActivityTask identified by the taskToken
has
* failed with reason
(if specified). The reason
and details
appear in the
* ActivityTaskFailed
event added to the workflow history.
*
*
* A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as
* open while a worker is processing it. A task is closed after it has been specified in a call to
* RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task
* has timed
* out.
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param respondActivityTaskFailedRequest
* @return Result of the RespondActivityTaskFailed operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.RespondActivityTaskFailed
*/
@Override
public RespondActivityTaskFailedResponse respondActivityTaskFailed(
RespondActivityTaskFailedRequest respondActivityTaskFailedRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, RespondActivityTaskFailedResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, respondActivityTaskFailedRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RespondActivityTaskFailed");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("RespondActivityTaskFailed").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(respondActivityTaskFailedRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new RespondActivityTaskFailedRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Used by deciders to tell the service that the DecisionTask identified by the taskToken
has
* successfully completed. The decisions
argument specifies the list of decisions made while processing
* the task.
*
*
* A DecisionTaskCompleted
event is added to the workflow history. The executionContext
* specified is attached to the event in the workflow execution history.
*
*
* Access Control
*
*
* If an IAM policy grants permission to use RespondDecisionTaskCompleted
, it can express permissions
* for the list of decisions in the decisions
parameter. Each of the decisions has one or more
* parameters, much like a regular API call. To allow for policies to be as readable as possible, you can express
* permissions on decisions as if they were actual API calls, including applying conditions to some parameters. For
* more information, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param respondDecisionTaskCompletedRequest
* Input data for a TaskCompleted response to a decision task.
* @return Result of the RespondDecisionTaskCompleted operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.RespondDecisionTaskCompleted
*/
@Override
public RespondDecisionTaskCompletedResponse respondDecisionTaskCompleted(
RespondDecisionTaskCompletedRequest respondDecisionTaskCompletedRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, RespondDecisionTaskCompletedResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, respondDecisionTaskCompletedRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RespondDecisionTaskCompleted");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("RespondDecisionTaskCompleted").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(respondDecisionTaskCompletedRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new RespondDecisionTaskCompletedRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Records a WorkflowExecutionSignaled
event in the workflow execution history and creates a decision
* task for the workflow execution identified by the given domain, workflowId and runId. The event is recorded with
* the specified user defined signalName and input (if provided).
*
*
*
* If a runId isn't specified, then the WorkflowExecutionSignaled
event is recorded in the history of
* the current open workflow with the matching workflowId in the domain.
*
*
*
* If the specified workflow execution isn't open, this method fails with UnknownResource
.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param signalWorkflowExecutionRequest
* @return Result of the SignalWorkflowExecution operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.SignalWorkflowExecution
*/
@Override
public SignalWorkflowExecutionResponse signalWorkflowExecution(SignalWorkflowExecutionRequest signalWorkflowExecutionRequest)
throws UnknownResourceException, OperationNotPermittedException, AwsServiceException, SdkClientException,
SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, SignalWorkflowExecutionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, signalWorkflowExecutionRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "SignalWorkflowExecution");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("SignalWorkflowExecution").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(signalWorkflowExecutionRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new SignalWorkflowExecutionRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Starts an execution of the workflow type in the specified domain using the provided workflowId
and
* input data.
*
*
* This action returns the newly started workflow execution.
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the following parameters by using a Condition
element with the appropriate keys.
*
*
* -
*
* tagList.member.0
: The key is swf:tagList.member.0
.
*
*
* -
*
* tagList.member.1
: The key is swf:tagList.member.1
.
*
*
* -
*
* tagList.member.2
: The key is swf:tagList.member.2
.
*
*
* -
*
* tagList.member.3
: The key is swf:tagList.member.3
.
*
*
* -
*
* tagList.member.4
: The key is swf:tagList.member.4
.
*
*
* -
*
* taskList
: String constraint. The key is swf:taskList.name
.
*
*
* -
*
* workflowType.name
: String constraint. The key is swf:workflowType.name
.
*
*
* -
*
* workflowType.version
: String constraint. The key is swf:workflowType.version
.
*
*
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param startWorkflowExecutionRequest
* @return Result of the StartWorkflowExecution operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws TypeDeprecatedException
* Returned when the specified activity or workflow type was already deprecated.
* @throws WorkflowExecutionAlreadyStartedException
* Returned by StartWorkflowExecution when an open execution with the same workflowId is already
* running in the specified domain.
* @throws LimitExceededException
* Returned by any operation if a system imposed limitation has been reached. To address this fault you
* should either clean up unused resources or increase the limit by contacting AWS.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @throws DefaultUndefinedException
* The StartWorkflowExecution
API action was called without the required parameters set.
*
* Some workflow execution parameters, such as the decision taskList
, must be set to start the
* execution. However, these parameters might have been set as defaults when the workflow type was
* registered. In this case, you can omit these parameters from the StartWorkflowExecution
call
* and Amazon SWF uses the values defined in the workflow type.
*
*
*
* If these parameters aren't set and no default parameters were defined in the workflow type, this error is
* displayed.
*
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.StartWorkflowExecution
*/
@Override
public StartWorkflowExecutionResponse startWorkflowExecution(StartWorkflowExecutionRequest startWorkflowExecutionRequest)
throws UnknownResourceException, TypeDeprecatedException, WorkflowExecutionAlreadyStartedException,
LimitExceededException, OperationNotPermittedException, DefaultUndefinedException, AwsServiceException,
SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, StartWorkflowExecutionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, startWorkflowExecutionRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "StartWorkflowExecution");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("StartWorkflowExecution").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(startWorkflowExecutionRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new StartWorkflowExecutionRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Add a tag to a Amazon SWF domain.
*
*
*
* Amazon SWF supports a maximum of 50 tags per resource.
*
*
*
* @param tagResourceRequest
* @return Result of the TagResource operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws TooManyTagsException
* You've exceeded the number of tags allowed for a domain.
* @throws LimitExceededException
* Returned by any operation if a system imposed limitation has been reached. To address this fault you
* should either clean up unused resources or increase the limit by contacting AWS.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.TagResource
*/
@Override
public TagResourceResponse tagResource(TagResourceRequest tagResourceRequest) throws UnknownResourceException,
TooManyTagsException, LimitExceededException, OperationNotPermittedException, AwsServiceException,
SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
TagResourceResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, tagResourceRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TagResource");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("TagResource").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(tagResourceRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new TagResourceRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Records a WorkflowExecutionTerminated
event and forces closure of the workflow execution identified
* by the given domain, runId, and workflowId. The child policy, registered with the workflow type or specified when
* starting this execution, is applied to any open child workflow executions of this workflow execution.
*
*
*
* If the identified workflow execution was in progress, it is terminated immediately.
*
*
*
* If a runId isn't specified, then the WorkflowExecutionTerminated
event is recorded in the history of
* the current open workflow with the matching workflowId in the domain.
*
*
*
* You should consider using RequestCancelWorkflowExecution action instead because it allows the workflow to
* gracefully close while TerminateWorkflowExecution doesn't.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param terminateWorkflowExecutionRequest
* @return Result of the TerminateWorkflowExecution operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.TerminateWorkflowExecution
*/
@Override
public TerminateWorkflowExecutionResponse terminateWorkflowExecution(
TerminateWorkflowExecutionRequest terminateWorkflowExecutionRequest) throws UnknownResourceException,
OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, TerminateWorkflowExecutionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, terminateWorkflowExecutionRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TerminateWorkflowExecution");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("TerminateWorkflowExecution").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(terminateWorkflowExecutionRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new TerminateWorkflowExecutionRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Undeprecates a previously deprecated activity type. After an activity type has been undeprecated, you can
* create new tasks of that activity type.
*
*
*
* This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates
* and changes.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the following parameters by using a Condition
element with the appropriate keys.
*
*
* -
*
* activityType.name
: String constraint. The key is swf:activityType.name
.
*
*
* -
*
* activityType.version
: String constraint. The key is swf:activityType.version
.
*
*
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param undeprecateActivityTypeRequest
* @return Result of the UndeprecateActivityType operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws TypeAlreadyExistsException
* Returned if the type already exists in the specified domain. You may get this fault if you are
* registering a type that is either already registered or deprecated, or if you undeprecate a type that is
* currently registered.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.UndeprecateActivityType
*/
@Override
public UndeprecateActivityTypeResponse undeprecateActivityType(UndeprecateActivityTypeRequest undeprecateActivityTypeRequest)
throws UnknownResourceException, TypeAlreadyExistsException, OperationNotPermittedException, AwsServiceException,
SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, UndeprecateActivityTypeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, undeprecateActivityTypeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UndeprecateActivityType");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("UndeprecateActivityType").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(undeprecateActivityTypeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UndeprecateActivityTypeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Undeprecates a previously deprecated domain. After a domain has been undeprecated it can be used to create new
* workflow executions or register new types.
*
*
*
* This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates
* and changes.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* You cannot use an IAM policy to constrain this action's parameters.
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param undeprecateDomainRequest
* @return Result of the UndeprecateDomain operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws DomainAlreadyExistsException
* Returned if the domain already exists. You may get this fault if you are registering a domain that is
* either already registered or deprecated, or if you undeprecate a domain that is currently registered.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.UndeprecateDomain
*/
@Override
public UndeprecateDomainResponse undeprecateDomain(UndeprecateDomainRequest undeprecateDomainRequest)
throws UnknownResourceException, DomainAlreadyExistsException, OperationNotPermittedException, AwsServiceException,
SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
UndeprecateDomainResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, undeprecateDomainRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UndeprecateDomain");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("UndeprecateDomain").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(undeprecateDomainRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UndeprecateDomainRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Undeprecates a previously deprecated workflow type. After a workflow type has been undeprecated, you can
* create new executions of that type.
*
*
*
* This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates
* and changes.
*
*
*
* Access Control
*
*
* You can use IAM policies to control this action's access to Amazon SWF resources as follows:
*
*
* -
*
* Use a Resource
element with the domain name to limit the action to only specified domains.
*
*
* -
*
* Use an Action
element to allow or deny permission to call this action.
*
*
* -
*
* Constrain the following parameters by using a Condition
element with the appropriate keys.
*
*
* -
*
* workflowType.name
: String constraint. The key is swf:workflowType.name
.
*
*
* -
*
* workflowType.version
: String constraint. The key is swf:workflowType.version
.
*
*
*
*
*
*
* If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the
* specified constraints, the action fails. The associated event attribute's cause
parameter is set to
* OPERATION_NOT_PERMITTED
. For details and example IAM policies, see Using IAM to Manage Access to
* Amazon SWF Workflows in the Amazon SWF Developer Guide.
*
*
* @param undeprecateWorkflowTypeRequest
* @return Result of the UndeprecateWorkflowType operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws TypeAlreadyExistsException
* Returned if the type already exists in the specified domain. You may get this fault if you are
* registering a type that is either already registered or deprecated, or if you undeprecate a type that is
* currently registered.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.UndeprecateWorkflowType
*/
@Override
public UndeprecateWorkflowTypeResponse undeprecateWorkflowType(UndeprecateWorkflowTypeRequest undeprecateWorkflowTypeRequest)
throws UnknownResourceException, TypeAlreadyExistsException, OperationNotPermittedException, AwsServiceException,
SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, UndeprecateWorkflowTypeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, undeprecateWorkflowTypeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UndeprecateWorkflowType");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("UndeprecateWorkflowType").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(undeprecateWorkflowTypeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UndeprecateWorkflowTypeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Remove a tag from a Amazon SWF domain.
*
*
* @param untagResourceRequest
* @return Result of the UntagResource operation returned by the service.
* @throws UnknownResourceException
* Returned when the named resource cannot be found with in the scope of this operation (region or domain).
* This could happen if the named resource was never created or is no longer available for this operation.
* @throws LimitExceededException
* Returned by any operation if a system imposed limitation has been reached. To address this fault you
* should either clean up unused resources or increase the limit by contacting AWS.
* @throws OperationNotPermittedException
* Returned when the caller doesn't have sufficient permissions to invoke the action.
* @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 SwfException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample SwfClient.UntagResource
*/
@Override
public UntagResourceResponse untagResource(UntagResourceRequest untagResourceRequest) throws UnknownResourceException,
LimitExceededException, OperationNotPermittedException, AwsServiceException, SdkClientException, SwfException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
UntagResourceResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
List metricPublishers = resolveMetricPublishers(clientConfiguration, untagResourceRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "SWF");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UntagResource");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("UntagResource").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(untagResourceRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UntagResourceRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
@Override
public final String serviceName() {
return SERVICE_NAME;
}
private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration,
RequestOverrideConfiguration requestOverrideConfiguration) {
List publishers = null;
if (requestOverrideConfiguration != null) {
publishers = requestOverrideConfiguration.metricPublishers();
}
if (publishers == null || publishers.isEmpty()) {
publishers = clientConfiguration.option(SdkClientOption.METRIC_PUBLISHERS);
}
if (publishers == null) {
publishers = Collections.emptyList();
}
return publishers;
}
private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory,
JsonOperationMetadata operationMetadata) {
return protocolFactory.createErrorResponseHandler(operationMetadata);
}
private > T init(T builder) {
return builder
.clientConfiguration(clientConfiguration)
.defaultServiceExceptionSupplier(SwfException::builder)
.protocol(AwsJsonProtocol.AWS_JSON)
.protocolVersion("1.0")
.registerModeledException(
ExceptionMetadata.builder().errorCode("TypeAlreadyExistsFault")
.exceptionBuilderSupplier(TypeAlreadyExistsException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("TypeDeprecatedFault")
.exceptionBuilderSupplier(TypeDeprecatedException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("LimitExceededFault")
.exceptionBuilderSupplier(LimitExceededException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("DomainDeprecatedFault")
.exceptionBuilderSupplier(DomainDeprecatedException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("DefaultUndefinedFault")
.exceptionBuilderSupplier(DefaultUndefinedException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("DomainAlreadyExistsFault")
.exceptionBuilderSupplier(DomainAlreadyExistsException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("OperationNotPermittedFault")
.exceptionBuilderSupplier(OperationNotPermittedException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("WorkflowExecutionAlreadyStartedFault")
.exceptionBuilderSupplier(WorkflowExecutionAlreadyStartedException::builder).httpStatusCode(400)
.build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("TooManyTagsFault")
.exceptionBuilderSupplier(TooManyTagsException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("UnknownResourceFault")
.exceptionBuilderSupplier(UnknownResourceException::builder).httpStatusCode(400).build());
}
@Override
public final SwfServiceClientConfiguration serviceClientConfiguration() {
return this.serviceClientConfiguration;
}
@Override
public void close() {
clientHandler.close();
}
}