/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace SWF { /** * Amazon Simple Workflow Service

The Amazon Simple * Workflow Service (Amazon SWF) makes it easy to build applications that use * Amazon's cloud to coordinate work across distributed components. In Amazon SWF, * a task represents a logical unit of work that is performed by a component * of your workflow. Coordinating tasks in a workflow involves managing intertask * dependencies, scheduling, and concurrency in accordance with the logical flow of * the application.

Amazon SWF gives you full control over implementing * tasks and coordinating them without worrying about underlying complexities such * as tracking their progress and maintaining their state.

This * documentation serves as reference only. For a broader overview of the Amazon SWF * programming model, see the Amazon SWF * Developer Guide .

*/ class AWS_SWF_API SWFClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef SWFClientConfiguration ClientConfigurationType; typedef SWFEndpointProvider EndpointProviderType; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SWFClient(const Aws::SWF::SWFClientConfiguration& clientConfiguration = Aws::SWF::SWFClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SWFClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::SWF::SWFClientConfiguration& clientConfiguration = Aws::SWF::SWFClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ SWFClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::SWF::SWFClientConfiguration& clientConfiguration = Aws::SWF::SWFClientConfiguration()); /* Legacy constructors due deprecation */ /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SWFClient(const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SWFClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ SWFClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~SWFClient(); /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::CountClosedWorkflowExecutionsOutcome CountClosedWorkflowExecutions(const Model::CountClosedWorkflowExecutionsRequest& request) const; /** * A Callable wrapper for CountClosedWorkflowExecutions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CountClosedWorkflowExecutionsOutcomeCallable CountClosedWorkflowExecutionsCallable(const CountClosedWorkflowExecutionsRequestT& request) const { return SubmitCallable(&SWFClient::CountClosedWorkflowExecutions, request); } /** * An Async wrapper for CountClosedWorkflowExecutions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CountClosedWorkflowExecutionsAsync(const CountClosedWorkflowExecutionsRequestT& request, const CountClosedWorkflowExecutionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::CountClosedWorkflowExecutions, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::CountOpenWorkflowExecutionsOutcome CountOpenWorkflowExecutions(const Model::CountOpenWorkflowExecutionsRequest& request) const; /** * A Callable wrapper for CountOpenWorkflowExecutions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CountOpenWorkflowExecutionsOutcomeCallable CountOpenWorkflowExecutionsCallable(const CountOpenWorkflowExecutionsRequestT& request) const { return SubmitCallable(&SWFClient::CountOpenWorkflowExecutions, request); } /** * An Async wrapper for CountOpenWorkflowExecutions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CountOpenWorkflowExecutionsAsync(const CountOpenWorkflowExecutionsRequestT& request, const CountOpenWorkflowExecutionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::CountOpenWorkflowExecutions, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::CountPendingActivityTasksOutcome CountPendingActivityTasks(const Model::CountPendingActivityTasksRequest& request) const; /** * A Callable wrapper for CountPendingActivityTasks that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CountPendingActivityTasksOutcomeCallable CountPendingActivityTasksCallable(const CountPendingActivityTasksRequestT& request) const { return SubmitCallable(&SWFClient::CountPendingActivityTasks, request); } /** * An Async wrapper for CountPendingActivityTasks that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CountPendingActivityTasksAsync(const CountPendingActivityTasksRequestT& request, const CountPendingActivityTasksResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::CountPendingActivityTasks, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::CountPendingDecisionTasksOutcome CountPendingDecisionTasks(const Model::CountPendingDecisionTasksRequest& request) const; /** * A Callable wrapper for CountPendingDecisionTasks that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CountPendingDecisionTasksOutcomeCallable CountPendingDecisionTasksCallable(const CountPendingDecisionTasksRequestT& request) const { return SubmitCallable(&SWFClient::CountPendingDecisionTasks, request); } /** * An Async wrapper for CountPendingDecisionTasks that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CountPendingDecisionTasksAsync(const CountPendingDecisionTasksRequestT& request, const CountPendingDecisionTasksResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::CountPendingDecisionTasks, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DeprecateActivityTypeOutcome DeprecateActivityType(const Model::DeprecateActivityTypeRequest& request) const; /** * A Callable wrapper for DeprecateActivityType that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeprecateActivityTypeOutcomeCallable DeprecateActivityTypeCallable(const DeprecateActivityTypeRequestT& request) const { return SubmitCallable(&SWFClient::DeprecateActivityType, request); } /** * An Async wrapper for DeprecateActivityType that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeprecateActivityTypeAsync(const DeprecateActivityTypeRequestT& request, const DeprecateActivityTypeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::DeprecateActivityType, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DeprecateDomainOutcome DeprecateDomain(const Model::DeprecateDomainRequest& request) const; /** * A Callable wrapper for DeprecateDomain that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeprecateDomainOutcomeCallable DeprecateDomainCallable(const DeprecateDomainRequestT& request) const { return SubmitCallable(&SWFClient::DeprecateDomain, request); } /** * An Async wrapper for DeprecateDomain that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeprecateDomainAsync(const DeprecateDomainRequestT& request, const DeprecateDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::DeprecateDomain, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DeprecateWorkflowTypeOutcome DeprecateWorkflowType(const Model::DeprecateWorkflowTypeRequest& request) const; /** * A Callable wrapper for DeprecateWorkflowType that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeprecateWorkflowTypeOutcomeCallable DeprecateWorkflowTypeCallable(const DeprecateWorkflowTypeRequestT& request) const { return SubmitCallable(&SWFClient::DeprecateWorkflowType, request); } /** * An Async wrapper for DeprecateWorkflowType that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeprecateWorkflowTypeAsync(const DeprecateWorkflowTypeRequestT& request, const DeprecateWorkflowTypeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::DeprecateWorkflowType, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DescribeActivityTypeOutcome DescribeActivityType(const Model::DescribeActivityTypeRequest& request) const; /** * A Callable wrapper for DescribeActivityType that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeActivityTypeOutcomeCallable DescribeActivityTypeCallable(const DescribeActivityTypeRequestT& request) const { return SubmitCallable(&SWFClient::DescribeActivityType, request); } /** * An Async wrapper for DescribeActivityType that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeActivityTypeAsync(const DescribeActivityTypeRequestT& request, const DescribeActivityTypeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::DescribeActivityType, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DescribeDomainOutcome DescribeDomain(const Model::DescribeDomainRequest& request) const; /** * A Callable wrapper for DescribeDomain that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeDomainOutcomeCallable DescribeDomainCallable(const DescribeDomainRequestT& request) const { return SubmitCallable(&SWFClient::DescribeDomain, request); } /** * An Async wrapper for DescribeDomain that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeDomainAsync(const DescribeDomainRequestT& request, const DescribeDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::DescribeDomain, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DescribeWorkflowExecutionOutcome DescribeWorkflowExecution(const Model::DescribeWorkflowExecutionRequest& request) const; /** * A Callable wrapper for DescribeWorkflowExecution that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeWorkflowExecutionOutcomeCallable DescribeWorkflowExecutionCallable(const DescribeWorkflowExecutionRequestT& request) const { return SubmitCallable(&SWFClient::DescribeWorkflowExecution, request); } /** * An Async wrapper for DescribeWorkflowExecution that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeWorkflowExecutionAsync(const DescribeWorkflowExecutionRequestT& request, const DescribeWorkflowExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::DescribeWorkflowExecution, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DescribeWorkflowTypeOutcome DescribeWorkflowType(const Model::DescribeWorkflowTypeRequest& request) const; /** * A Callable wrapper for DescribeWorkflowType that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeWorkflowTypeOutcomeCallable DescribeWorkflowTypeCallable(const DescribeWorkflowTypeRequestT& request) const { return SubmitCallable(&SWFClient::DescribeWorkflowType, request); } /** * An Async wrapper for DescribeWorkflowType that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeWorkflowTypeAsync(const DescribeWorkflowTypeRequestT& request, const DescribeWorkflowTypeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::DescribeWorkflowType, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::GetWorkflowExecutionHistoryOutcome GetWorkflowExecutionHistory(const Model::GetWorkflowExecutionHistoryRequest& request) const; /** * A Callable wrapper for GetWorkflowExecutionHistory that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetWorkflowExecutionHistoryOutcomeCallable GetWorkflowExecutionHistoryCallable(const GetWorkflowExecutionHistoryRequestT& request) const { return SubmitCallable(&SWFClient::GetWorkflowExecutionHistory, request); } /** * An Async wrapper for GetWorkflowExecutionHistory that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetWorkflowExecutionHistoryAsync(const GetWorkflowExecutionHistoryRequestT& request, const GetWorkflowExecutionHistoryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::GetWorkflowExecutionHistory, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::ListActivityTypesOutcome ListActivityTypes(const Model::ListActivityTypesRequest& request) const; /** * A Callable wrapper for ListActivityTypes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListActivityTypesOutcomeCallable ListActivityTypesCallable(const ListActivityTypesRequestT& request) const { return SubmitCallable(&SWFClient::ListActivityTypes, request); } /** * An Async wrapper for ListActivityTypes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListActivityTypesAsync(const ListActivityTypesRequestT& request, const ListActivityTypesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::ListActivityTypes, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::ListClosedWorkflowExecutionsOutcome ListClosedWorkflowExecutions(const Model::ListClosedWorkflowExecutionsRequest& request) const; /** * A Callable wrapper for ListClosedWorkflowExecutions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListClosedWorkflowExecutionsOutcomeCallable ListClosedWorkflowExecutionsCallable(const ListClosedWorkflowExecutionsRequestT& request) const { return SubmitCallable(&SWFClient::ListClosedWorkflowExecutions, request); } /** * An Async wrapper for ListClosedWorkflowExecutions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListClosedWorkflowExecutionsAsync(const ListClosedWorkflowExecutionsRequestT& request, const ListClosedWorkflowExecutionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::ListClosedWorkflowExecutions, request, handler, context); } /** *

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.

See Also:

AWS API * Reference

*/ virtual Model::ListDomainsOutcome ListDomains(const Model::ListDomainsRequest& request) const; /** * A Callable wrapper for ListDomains that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListDomainsOutcomeCallable ListDomainsCallable(const ListDomainsRequestT& request) const { return SubmitCallable(&SWFClient::ListDomains, request); } /** * An Async wrapper for ListDomains that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListDomainsAsync(const ListDomainsRequestT& request, const ListDomainsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::ListDomains, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::ListOpenWorkflowExecutionsOutcome ListOpenWorkflowExecutions(const Model::ListOpenWorkflowExecutionsRequest& request) const; /** * A Callable wrapper for ListOpenWorkflowExecutions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListOpenWorkflowExecutionsOutcomeCallable ListOpenWorkflowExecutionsCallable(const ListOpenWorkflowExecutionsRequestT& request) const { return SubmitCallable(&SWFClient::ListOpenWorkflowExecutions, request); } /** * An Async wrapper for ListOpenWorkflowExecutions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListOpenWorkflowExecutionsAsync(const ListOpenWorkflowExecutionsRequestT& request, const ListOpenWorkflowExecutionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::ListOpenWorkflowExecutions, request, handler, context); } /** *

List tags for a given domain.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&SWFClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::ListTagsForResource, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::ListWorkflowTypesOutcome ListWorkflowTypes(const Model::ListWorkflowTypesRequest& request) const; /** * A Callable wrapper for ListWorkflowTypes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListWorkflowTypesOutcomeCallable ListWorkflowTypesCallable(const ListWorkflowTypesRequestT& request) const { return SubmitCallable(&SWFClient::ListWorkflowTypes, request); } /** * An Async wrapper for ListWorkflowTypes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListWorkflowTypesAsync(const ListWorkflowTypesRequestT& request, const ListWorkflowTypesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::ListWorkflowTypes, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::PollForActivityTaskOutcome PollForActivityTask(const Model::PollForActivityTaskRequest& request) const; /** * A Callable wrapper for PollForActivityTask that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PollForActivityTaskOutcomeCallable PollForActivityTaskCallable(const PollForActivityTaskRequestT& request) const { return SubmitCallable(&SWFClient::PollForActivityTask, request); } /** * An Async wrapper for PollForActivityTask that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PollForActivityTaskAsync(const PollForActivityTaskRequestT& request, const PollForActivityTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::PollForActivityTask, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::PollForDecisionTaskOutcome PollForDecisionTask(const Model::PollForDecisionTaskRequest& request) const; /** * A Callable wrapper for PollForDecisionTask that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PollForDecisionTaskOutcomeCallable PollForDecisionTaskCallable(const PollForDecisionTaskRequestT& request) const { return SubmitCallable(&SWFClient::PollForDecisionTask, request); } /** * An Async wrapper for PollForDecisionTask that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PollForDecisionTaskAsync(const PollForDecisionTaskRequestT& request, const PollForDecisionTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::PollForDecisionTask, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::RecordActivityTaskHeartbeatOutcome RecordActivityTaskHeartbeat(const Model::RecordActivityTaskHeartbeatRequest& request) const; /** * A Callable wrapper for RecordActivityTaskHeartbeat that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RecordActivityTaskHeartbeatOutcomeCallable RecordActivityTaskHeartbeatCallable(const RecordActivityTaskHeartbeatRequestT& request) const { return SubmitCallable(&SWFClient::RecordActivityTaskHeartbeat, request); } /** * An Async wrapper for RecordActivityTaskHeartbeat that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RecordActivityTaskHeartbeatAsync(const RecordActivityTaskHeartbeatRequestT& request, const RecordActivityTaskHeartbeatResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::RecordActivityTaskHeartbeat, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::RegisterActivityTypeOutcome RegisterActivityType(const Model::RegisterActivityTypeRequest& request) const; /** * A Callable wrapper for RegisterActivityType that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RegisterActivityTypeOutcomeCallable RegisterActivityTypeCallable(const RegisterActivityTypeRequestT& request) const { return SubmitCallable(&SWFClient::RegisterActivityType, request); } /** * An Async wrapper for RegisterActivityType that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RegisterActivityTypeAsync(const RegisterActivityTypeRequestT& request, const RegisterActivityTypeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::RegisterActivityType, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::RegisterDomainOutcome RegisterDomain(const Model::RegisterDomainRequest& request) const; /** * A Callable wrapper for RegisterDomain that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RegisterDomainOutcomeCallable RegisterDomainCallable(const RegisterDomainRequestT& request) const { return SubmitCallable(&SWFClient::RegisterDomain, request); } /** * An Async wrapper for RegisterDomain that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RegisterDomainAsync(const RegisterDomainRequestT& request, const RegisterDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::RegisterDomain, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::RegisterWorkflowTypeOutcome RegisterWorkflowType(const Model::RegisterWorkflowTypeRequest& request) const; /** * A Callable wrapper for RegisterWorkflowType that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RegisterWorkflowTypeOutcomeCallable RegisterWorkflowTypeCallable(const RegisterWorkflowTypeRequestT& request) const { return SubmitCallable(&SWFClient::RegisterWorkflowType, request); } /** * An Async wrapper for RegisterWorkflowType that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RegisterWorkflowTypeAsync(const RegisterWorkflowTypeRequestT& request, const RegisterWorkflowTypeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::RegisterWorkflowType, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::RequestCancelWorkflowExecutionOutcome RequestCancelWorkflowExecution(const Model::RequestCancelWorkflowExecutionRequest& request) const; /** * A Callable wrapper for RequestCancelWorkflowExecution that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RequestCancelWorkflowExecutionOutcomeCallable RequestCancelWorkflowExecutionCallable(const RequestCancelWorkflowExecutionRequestT& request) const { return SubmitCallable(&SWFClient::RequestCancelWorkflowExecution, request); } /** * An Async wrapper for RequestCancelWorkflowExecution that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RequestCancelWorkflowExecutionAsync(const RequestCancelWorkflowExecutionRequestT& request, const RequestCancelWorkflowExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::RequestCancelWorkflowExecution, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::RespondActivityTaskCanceledOutcome RespondActivityTaskCanceled(const Model::RespondActivityTaskCanceledRequest& request) const; /** * A Callable wrapper for RespondActivityTaskCanceled that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RespondActivityTaskCanceledOutcomeCallable RespondActivityTaskCanceledCallable(const RespondActivityTaskCanceledRequestT& request) const { return SubmitCallable(&SWFClient::RespondActivityTaskCanceled, request); } /** * An Async wrapper for RespondActivityTaskCanceled that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RespondActivityTaskCanceledAsync(const RespondActivityTaskCanceledRequestT& request, const RespondActivityTaskCanceledResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::RespondActivityTaskCanceled, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::RespondActivityTaskCompletedOutcome RespondActivityTaskCompleted(const Model::RespondActivityTaskCompletedRequest& request) const; /** * A Callable wrapper for RespondActivityTaskCompleted that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RespondActivityTaskCompletedOutcomeCallable RespondActivityTaskCompletedCallable(const RespondActivityTaskCompletedRequestT& request) const { return SubmitCallable(&SWFClient::RespondActivityTaskCompleted, request); } /** * An Async wrapper for RespondActivityTaskCompleted that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RespondActivityTaskCompletedAsync(const RespondActivityTaskCompletedRequestT& request, const RespondActivityTaskCompletedResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::RespondActivityTaskCompleted, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::RespondActivityTaskFailedOutcome RespondActivityTaskFailed(const Model::RespondActivityTaskFailedRequest& request) const; /** * A Callable wrapper for RespondActivityTaskFailed that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RespondActivityTaskFailedOutcomeCallable RespondActivityTaskFailedCallable(const RespondActivityTaskFailedRequestT& request) const { return SubmitCallable(&SWFClient::RespondActivityTaskFailed, request); } /** * An Async wrapper for RespondActivityTaskFailed that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RespondActivityTaskFailedAsync(const RespondActivityTaskFailedRequestT& request, const RespondActivityTaskFailedResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::RespondActivityTaskFailed, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::RespondDecisionTaskCompletedOutcome RespondDecisionTaskCompleted(const Model::RespondDecisionTaskCompletedRequest& request) const; /** * A Callable wrapper for RespondDecisionTaskCompleted that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RespondDecisionTaskCompletedOutcomeCallable RespondDecisionTaskCompletedCallable(const RespondDecisionTaskCompletedRequestT& request) const { return SubmitCallable(&SWFClient::RespondDecisionTaskCompleted, request); } /** * An Async wrapper for RespondDecisionTaskCompleted that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RespondDecisionTaskCompletedAsync(const RespondDecisionTaskCompletedRequestT& request, const RespondDecisionTaskCompletedResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::RespondDecisionTaskCompleted, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::SignalWorkflowExecutionOutcome SignalWorkflowExecution(const Model::SignalWorkflowExecutionRequest& request) const; /** * A Callable wrapper for SignalWorkflowExecution that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SignalWorkflowExecutionOutcomeCallable SignalWorkflowExecutionCallable(const SignalWorkflowExecutionRequestT& request) const { return SubmitCallable(&SWFClient::SignalWorkflowExecution, request); } /** * An Async wrapper for SignalWorkflowExecution that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SignalWorkflowExecutionAsync(const SignalWorkflowExecutionRequestT& request, const SignalWorkflowExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::SignalWorkflowExecution, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::StartWorkflowExecutionOutcome StartWorkflowExecution(const Model::StartWorkflowExecutionRequest& request) const; /** * A Callable wrapper for StartWorkflowExecution that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartWorkflowExecutionOutcomeCallable StartWorkflowExecutionCallable(const StartWorkflowExecutionRequestT& request) const { return SubmitCallable(&SWFClient::StartWorkflowExecution, request); } /** * An Async wrapper for StartWorkflowExecution that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartWorkflowExecutionAsync(const StartWorkflowExecutionRequestT& request, const StartWorkflowExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::StartWorkflowExecution, request, handler, context); } /** *

Add a tag to a Amazon SWF domain.

Amazon SWF supports a maximum * of 50 tags per resource.

See Also:

AWS API * Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&SWFClient::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::TagResource, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::TerminateWorkflowExecutionOutcome TerminateWorkflowExecution(const Model::TerminateWorkflowExecutionRequest& request) const; /** * A Callable wrapper for TerminateWorkflowExecution that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TerminateWorkflowExecutionOutcomeCallable TerminateWorkflowExecutionCallable(const TerminateWorkflowExecutionRequestT& request) const { return SubmitCallable(&SWFClient::TerminateWorkflowExecution, request); } /** * An Async wrapper for TerminateWorkflowExecution that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TerminateWorkflowExecutionAsync(const TerminateWorkflowExecutionRequestT& request, const TerminateWorkflowExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::TerminateWorkflowExecution, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::UndeprecateActivityTypeOutcome UndeprecateActivityType(const Model::UndeprecateActivityTypeRequest& request) const; /** * A Callable wrapper for UndeprecateActivityType that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UndeprecateActivityTypeOutcomeCallable UndeprecateActivityTypeCallable(const UndeprecateActivityTypeRequestT& request) const { return SubmitCallable(&SWFClient::UndeprecateActivityType, request); } /** * An Async wrapper for UndeprecateActivityType that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UndeprecateActivityTypeAsync(const UndeprecateActivityTypeRequestT& request, const UndeprecateActivityTypeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::UndeprecateActivityType, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::UndeprecateDomainOutcome UndeprecateDomain(const Model::UndeprecateDomainRequest& request) const; /** * A Callable wrapper for UndeprecateDomain that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UndeprecateDomainOutcomeCallable UndeprecateDomainCallable(const UndeprecateDomainRequestT& request) const { return SubmitCallable(&SWFClient::UndeprecateDomain, request); } /** * An Async wrapper for UndeprecateDomain that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UndeprecateDomainAsync(const UndeprecateDomainRequestT& request, const UndeprecateDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::UndeprecateDomain, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::UndeprecateWorkflowTypeOutcome UndeprecateWorkflowType(const Model::UndeprecateWorkflowTypeRequest& request) const; /** * A Callable wrapper for UndeprecateWorkflowType that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UndeprecateWorkflowTypeOutcomeCallable UndeprecateWorkflowTypeCallable(const UndeprecateWorkflowTypeRequestT& request) const { return SubmitCallable(&SWFClient::UndeprecateWorkflowType, request); } /** * An Async wrapper for UndeprecateWorkflowType that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UndeprecateWorkflowTypeAsync(const UndeprecateWorkflowTypeRequestT& request, const UndeprecateWorkflowTypeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::UndeprecateWorkflowType, request, handler, context); } /** *

Remove a tag from a Amazon SWF domain.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&SWFClient::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SWFClient::UntagResource, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const SWFClientConfiguration& clientConfiguration); SWFClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace SWF } // namespace Aws