/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace SFN { namespace Model { class CreateActivityRequest; class CreateStateMachineRequest; class DeleteActivityRequest; class DeleteStateMachineRequest; class DescribeActivityRequest; class DescribeExecutionRequest; class DescribeStateMachineRequest; class DescribeStateMachineForExecutionRequest; class GetActivityTaskRequest; class GetExecutionHistoryRequest; class ListActivitiesRequest; class ListExecutionsRequest; class ListStateMachinesRequest; class ListTagsForResourceRequest; class SendTaskFailureRequest; class SendTaskHeartbeatRequest; class SendTaskSuccessRequest; class StartExecutionRequest; class StopExecutionRequest; class TagResourceRequest; class UntagResourceRequest; class UpdateStateMachineRequest; typedef Aws::Utils::Outcome CreateActivityOutcome; typedef Aws::Utils::Outcome CreateStateMachineOutcome; typedef Aws::Utils::Outcome DeleteActivityOutcome; typedef Aws::Utils::Outcome DeleteStateMachineOutcome; typedef Aws::Utils::Outcome DescribeActivityOutcome; typedef Aws::Utils::Outcome DescribeExecutionOutcome; typedef Aws::Utils::Outcome DescribeStateMachineOutcome; typedef Aws::Utils::Outcome DescribeStateMachineForExecutionOutcome; typedef Aws::Utils::Outcome GetActivityTaskOutcome; typedef Aws::Utils::Outcome GetExecutionHistoryOutcome; typedef Aws::Utils::Outcome ListActivitiesOutcome; typedef Aws::Utils::Outcome ListExecutionsOutcome; typedef Aws::Utils::Outcome ListStateMachinesOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome SendTaskFailureOutcome; typedef Aws::Utils::Outcome SendTaskHeartbeatOutcome; typedef Aws::Utils::Outcome SendTaskSuccessOutcome; typedef Aws::Utils::Outcome StartExecutionOutcome; typedef Aws::Utils::Outcome StopExecutionOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef Aws::Utils::Outcome UpdateStateMachineOutcome; typedef std::future CreateActivityOutcomeCallable; typedef std::future CreateStateMachineOutcomeCallable; typedef std::future DeleteActivityOutcomeCallable; typedef std::future DeleteStateMachineOutcomeCallable; typedef std::future DescribeActivityOutcomeCallable; typedef std::future DescribeExecutionOutcomeCallable; typedef std::future DescribeStateMachineOutcomeCallable; typedef std::future DescribeStateMachineForExecutionOutcomeCallable; typedef std::future GetActivityTaskOutcomeCallable; typedef std::future GetExecutionHistoryOutcomeCallable; typedef std::future ListActivitiesOutcomeCallable; typedef std::future ListExecutionsOutcomeCallable; typedef std::future ListStateMachinesOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future SendTaskFailureOutcomeCallable; typedef std::future SendTaskHeartbeatOutcomeCallable; typedef std::future SendTaskSuccessOutcomeCallable; typedef std::future StartExecutionOutcomeCallable; typedef std::future StopExecutionOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; typedef std::future UpdateStateMachineOutcomeCallable; } // namespace Model class SFNClient; typedef std::function&) > CreateActivityResponseReceivedHandler; typedef std::function&) > CreateStateMachineResponseReceivedHandler; typedef std::function&) > DeleteActivityResponseReceivedHandler; typedef std::function&) > DeleteStateMachineResponseReceivedHandler; typedef std::function&) > DescribeActivityResponseReceivedHandler; typedef std::function&) > DescribeExecutionResponseReceivedHandler; typedef std::function&) > DescribeStateMachineResponseReceivedHandler; typedef std::function&) > DescribeStateMachineForExecutionResponseReceivedHandler; typedef std::function&) > GetActivityTaskResponseReceivedHandler; typedef std::function&) > GetExecutionHistoryResponseReceivedHandler; typedef std::function&) > ListActivitiesResponseReceivedHandler; typedef std::function&) > ListExecutionsResponseReceivedHandler; typedef std::function&) > ListStateMachinesResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > SendTaskFailureResponseReceivedHandler; typedef std::function&) > SendTaskHeartbeatResponseReceivedHandler; typedef std::function&) > SendTaskSuccessResponseReceivedHandler; typedef std::function&) > StartExecutionResponseReceivedHandler; typedef std::function&) > StopExecutionResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; typedef std::function&) > UpdateStateMachineResponseReceivedHandler; /** * AWS Step Functions

AWS Step Functions is a service that * lets you coordinate the components of distributed applications and microservices * using visual workflows.

You can use Step Functions to build applications * from individual components, each of which performs a discrete function, or * task, allowing you to scale and change applications quickly. Step * Functions provides a console that helps visualize the components of your * application as a series of steps. Step Functions automatically triggers and * tracks each step, and retries steps when there are errors, so your application * executes predictably and in the right order every time. Step Functions logs the * state of each step, so you can quickly diagnose and debug any issues.

*

Step Functions manages operations and underlying infrastructure to ensure * your application is available at any scale. You can run tasks on AWS, your own * servers, or any system that has access to AWS. You can access and use Step * Functions using the console, the AWS SDKs, or an HTTP API. For more information * about Step Functions, see the AWS * Step Functions Developer Guide .

*/ class AWS_SFN_API SFNClient : public Aws::Client::AWSJsonClient { public: typedef Aws::Client::AWSJsonClient BASECLASS; /** * 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. */ SFNClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::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. */ SFNClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::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 */ SFNClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~SFNClient(); /** *

Creates an activity. An activity is a task that you write in any programming * language and host on any machine that has access to AWS Step Functions. * Activities must poll Step Functions using the GetActivityTask API * action and respond using SendTask* API actions. This function lets * Step Functions know the existence of your activity and returns an identifier for * use in a state machine and when polling from the activity.

This * operation is eventually consistent. The results are best effort and may not * reflect very recent updates and changes.

* CreateActivity is an idempotent API. Subsequent requests won’t * create a duplicate resource if it was already created. * CreateActivity's idempotency check is based on the activity * name. If a following request has different tags * values, Step Functions will ignore these differences and treat it as an * idempotent request of the previous. In this case, tags will not be * updated, even if they are different.

See Also:

AWS * API Reference

*/ virtual Model::CreateActivityOutcome CreateActivity(const Model::CreateActivityRequest& request) const; /** *

Creates an activity. An activity is a task that you write in any programming * language and host on any machine that has access to AWS Step Functions. * Activities must poll Step Functions using the GetActivityTask API * action and respond using SendTask* API actions. This function lets * Step Functions know the existence of your activity and returns an identifier for * use in a state machine and when polling from the activity.

This * operation is eventually consistent. The results are best effort and may not * reflect very recent updates and changes.

* CreateActivity is an idempotent API. Subsequent requests won’t * create a duplicate resource if it was already created. * CreateActivity's idempotency check is based on the activity * name. If a following request has different tags * values, Step Functions will ignore these differences and treat it as an * idempotent request of the previous. In this case, tags will not be * updated, even if they are different.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateActivityOutcomeCallable CreateActivityCallable(const Model::CreateActivityRequest& request) const; /** *

Creates an activity. An activity is a task that you write in any programming * language and host on any machine that has access to AWS Step Functions. * Activities must poll Step Functions using the GetActivityTask API * action and respond using SendTask* API actions. This function lets * Step Functions know the existence of your activity and returns an identifier for * use in a state machine and when polling from the activity.

This * operation is eventually consistent. The results are best effort and may not * reflect very recent updates and changes.

* CreateActivity is an idempotent API. Subsequent requests won’t * create a duplicate resource if it was already created. * CreateActivity's idempotency check is based on the activity * name. If a following request has different tags * values, Step Functions will ignore these differences and treat it as an * idempotent request of the previous. In this case, tags will not be * updated, even if they are different.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateActivityAsync(const Model::CreateActivityRequest& request, const CreateActivityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a state machine. A state machine consists of a collection of states * that can do work (Task states), determine to which states to * transition next (Choice states), stop an execution with an error * (Fail states), and so on. State machines are specified using a * JSON-based, structured language. For more information, see Amazon * States Language in the AWS Step Functions User Guide.

This * operation is eventually consistent. The results are best effort and may not * reflect very recent updates and changes.

* CreateStateMachine is an idempotent API. Subsequent requests won’t * create a duplicate resource if it was already created. * CreateStateMachine's idempotency check is based on the state * machine name, definition, type, and * LoggingConfiguration. If a following request has a different * roleArn or tags, Step Functions will ignore these * differences and treat it as an idempotent request of the previous. In this case, * roleArn and tags will not be updated, even if they are * different.

See Also:

AWS * API Reference

*/ virtual Model::CreateStateMachineOutcome CreateStateMachine(const Model::CreateStateMachineRequest& request) const; /** *

Creates a state machine. A state machine consists of a collection of states * that can do work (Task states), determine to which states to * transition next (Choice states), stop an execution with an error * (Fail states), and so on. State machines are specified using a * JSON-based, structured language. For more information, see Amazon * States Language in the AWS Step Functions User Guide.

This * operation is eventually consistent. The results are best effort and may not * reflect very recent updates and changes.

* CreateStateMachine is an idempotent API. Subsequent requests won’t * create a duplicate resource if it was already created. * CreateStateMachine's idempotency check is based on the state * machine name, definition, type, and * LoggingConfiguration. If a following request has a different * roleArn or tags, Step Functions will ignore these * differences and treat it as an idempotent request of the previous. In this case, * roleArn and tags will not be updated, even if they are * different.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateStateMachineOutcomeCallable CreateStateMachineCallable(const Model::CreateStateMachineRequest& request) const; /** *

Creates a state machine. A state machine consists of a collection of states * that can do work (Task states), determine to which states to * transition next (Choice states), stop an execution with an error * (Fail states), and so on. State machines are specified using a * JSON-based, structured language. For more information, see Amazon * States Language in the AWS Step Functions User Guide.

This * operation is eventually consistent. The results are best effort and may not * reflect very recent updates and changes.

* CreateStateMachine is an idempotent API. Subsequent requests won’t * create a duplicate resource if it was already created. * CreateStateMachine's idempotency check is based on the state * machine name, definition, type, and * LoggingConfiguration. If a following request has a different * roleArn or tags, Step Functions will ignore these * differences and treat it as an idempotent request of the previous. In this case, * roleArn and tags will not be updated, even if they are * different.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateStateMachineAsync(const Model::CreateStateMachineRequest& request, const CreateStateMachineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes an activity.

See Also:

AWS * API Reference

*/ virtual Model::DeleteActivityOutcome DeleteActivity(const Model::DeleteActivityRequest& request) const; /** *

Deletes an activity.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteActivityOutcomeCallable DeleteActivityCallable(const Model::DeleteActivityRequest& request) const; /** *

Deletes an activity.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteActivityAsync(const Model::DeleteActivityRequest& request, const DeleteActivityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes a state machine. This is an asynchronous operation: It sets the state * machine's status to DELETING and begins the deletion process.

*

For EXPRESSstate machines, the deletion will happen * eventually (usually less than a minute). Running executions may emit logs after * DeleteStateMachine API is called.

See Also:

* AWS * API Reference

*/ virtual Model::DeleteStateMachineOutcome DeleteStateMachine(const Model::DeleteStateMachineRequest& request) const; /** *

Deletes a state machine. This is an asynchronous operation: It sets the state * machine's status to DELETING and begins the deletion process.

*

For EXPRESSstate machines, the deletion will happen * eventually (usually less than a minute). Running executions may emit logs after * DeleteStateMachine API is called.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteStateMachineOutcomeCallable DeleteStateMachineCallable(const Model::DeleteStateMachineRequest& request) const; /** *

Deletes a state machine. This is an asynchronous operation: It sets the state * machine's status to DELETING and begins the deletion process.

*

For EXPRESSstate machines, the deletion will happen * eventually (usually less than a minute). Running executions may emit logs after * DeleteStateMachine API is called.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteStateMachineAsync(const Model::DeleteStateMachineRequest& request, const DeleteStateMachineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes an activity.

This operation is eventually consistent. * The results are best effort and may not reflect very recent updates and * changes.

See Also:

AWS * API Reference

*/ virtual Model::DescribeActivityOutcome DescribeActivity(const Model::DescribeActivityRequest& request) const; /** *

Describes an activity.

This operation is eventually consistent. * The results are best effort and may not reflect very recent updates and * changes.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeActivityOutcomeCallable DescribeActivityCallable(const Model::DescribeActivityRequest& request) const; /** *

Describes an activity.

This operation is eventually consistent. * The results are best effort and may not reflect very recent updates and * changes.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeActivityAsync(const Model::DescribeActivityRequest& request, const DescribeActivityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes an execution.

This operation is eventually * consistent. The results are best effort and may not reflect very recent updates * and changes.

This API action is not supported by * EXPRESS state machines.

See Also:

AWS * API Reference

*/ virtual Model::DescribeExecutionOutcome DescribeExecution(const Model::DescribeExecutionRequest& request) const; /** *

Describes an execution.

This operation is eventually * consistent. The results are best effort and may not reflect very recent updates * and changes.

This API action is not supported by * EXPRESS state machines.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeExecutionOutcomeCallable DescribeExecutionCallable(const Model::DescribeExecutionRequest& request) const; /** *

Describes an execution.

This operation is eventually * consistent. The results are best effort and may not reflect very recent updates * and changes.

This API action is not supported by * EXPRESS state machines.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeExecutionAsync(const Model::DescribeExecutionRequest& request, const DescribeExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes a state machine.

This operation is eventually * consistent. The results are best effort and may not reflect very recent updates * and changes.

See Also:

AWS * API Reference

*/ virtual Model::DescribeStateMachineOutcome DescribeStateMachine(const Model::DescribeStateMachineRequest& request) const; /** *

Describes a state machine.

This operation is eventually * consistent. The results are best effort and may not reflect very recent updates * and changes.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeStateMachineOutcomeCallable DescribeStateMachineCallable(const Model::DescribeStateMachineRequest& request) const; /** *

Describes a state machine.

This operation is eventually * consistent. The results are best effort and may not reflect very recent updates * and changes.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeStateMachineAsync(const Model::DescribeStateMachineRequest& request, const DescribeStateMachineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the state machine associated with a specific execution.

*

This operation is eventually consistent. The results are best effort and may * not reflect very recent updates and changes.

This API action is * not supported by EXPRESS state machines.

See Also:

* AWS * API Reference

*/ virtual Model::DescribeStateMachineForExecutionOutcome DescribeStateMachineForExecution(const Model::DescribeStateMachineForExecutionRequest& request) const; /** *

Describes the state machine associated with a specific execution.

*

This operation is eventually consistent. The results are best effort and may * not reflect very recent updates and changes.

This API action is * not supported by EXPRESS state machines.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeStateMachineForExecutionOutcomeCallable DescribeStateMachineForExecutionCallable(const Model::DescribeStateMachineForExecutionRequest& request) const; /** *

Describes the state machine associated with a specific execution.

*

This operation is eventually consistent. The results are best effort and may * not reflect very recent updates and changes.

This API action is * not supported by EXPRESS state machines.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeStateMachineForExecutionAsync(const Model::DescribeStateMachineForExecutionRequest& request, const DescribeStateMachineForExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Used by workers to retrieve a task (with the specified activity ARN) which * has been scheduled for execution by a running state machine. This initiates a * long poll, where the service holds the HTTP connection open and responds as soon * as a task becomes available (i.e. an execution of a task of this type is * needed.) The maximum time the service holds on to the request before responding * is 60 seconds. If no task is available within 60 seconds, the poll returns a * taskToken with a null string.

Workers should set * their client side socket timeout to at least 65 seconds (5 seconds higher than * the maximum time the service may hold the poll request).

Polling with * GetActivityTask can cause latency in some implementations. See Avoid * Latency When Polling for Activity Tasks in the Step Functions Developer * Guide.

See Also:

AWS * API Reference

*/ virtual Model::GetActivityTaskOutcome GetActivityTask(const Model::GetActivityTaskRequest& request) const; /** *

Used by workers to retrieve a task (with the specified activity ARN) which * has been scheduled for execution by a running state machine. This initiates a * long poll, where the service holds the HTTP connection open and responds as soon * as a task becomes available (i.e. an execution of a task of this type is * needed.) The maximum time the service holds on to the request before responding * is 60 seconds. If no task is available within 60 seconds, the poll returns a * taskToken with a null string.

Workers should set * their client side socket timeout to at least 65 seconds (5 seconds higher than * the maximum time the service may hold the poll request).

Polling with * GetActivityTask can cause latency in some implementations. See Avoid * Latency When Polling for Activity Tasks in the Step Functions Developer * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetActivityTaskOutcomeCallable GetActivityTaskCallable(const Model::GetActivityTaskRequest& request) const; /** *

Used by workers to retrieve a task (with the specified activity ARN) which * has been scheduled for execution by a running state machine. This initiates a * long poll, where the service holds the HTTP connection open and responds as soon * as a task becomes available (i.e. an execution of a task of this type is * needed.) The maximum time the service holds on to the request before responding * is 60 seconds. If no task is available within 60 seconds, the poll returns a * taskToken with a null string.

Workers should set * their client side socket timeout to at least 65 seconds (5 seconds higher than * the maximum time the service may hold the poll request).

Polling with * GetActivityTask can cause latency in some implementations. See Avoid * Latency When Polling for Activity Tasks in the Step Functions Developer * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetActivityTaskAsync(const Model::GetActivityTaskRequest& request, const GetActivityTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns the history of the specified execution as a list of events. By * default, the results are returned in ascending order of the * timeStamp of the events. Use the reverseOrder * parameter to get the latest events first.

If nextToken is * returned, there are more results available. The value of nextToken * is a unique pagination token for each page. Make the call again using the * returned token to retrieve the next page. Keep all other arguments unchanged. * Each pagination token expires after 24 hours. Using an expired pagination token * will return an HTTP 400 InvalidToken error.

This API action is not * supported by EXPRESS state machines.

See Also:

AWS * API Reference

*/ virtual Model::GetExecutionHistoryOutcome GetExecutionHistory(const Model::GetExecutionHistoryRequest& request) const; /** *

Returns the history of the specified execution as a list of events. By * default, the results are returned in ascending order of the * timeStamp of the events. Use the reverseOrder * parameter to get the latest events first.

If nextToken is * returned, there are more results available. The value of nextToken * is a unique pagination token for each page. Make the call again using the * returned token to retrieve the next page. Keep all other arguments unchanged. * Each pagination token expires after 24 hours. Using an expired pagination token * will return an HTTP 400 InvalidToken error.

This API action is not * supported by EXPRESS state machines.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetExecutionHistoryOutcomeCallable GetExecutionHistoryCallable(const Model::GetExecutionHistoryRequest& request) const; /** *

Returns the history of the specified execution as a list of events. By * default, the results are returned in ascending order of the * timeStamp of the events. Use the reverseOrder * parameter to get the latest events first.

If nextToken is * returned, there are more results available. The value of nextToken * is a unique pagination token for each page. Make the call again using the * returned token to retrieve the next page. Keep all other arguments unchanged. * Each pagination token expires after 24 hours. Using an expired pagination token * will return an HTTP 400 InvalidToken error.

This API action is not * supported by EXPRESS state machines.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetExecutionHistoryAsync(const Model::GetExecutionHistoryRequest& request, const GetExecutionHistoryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the existing activities.

If nextToken is returned, * there are more results available. The value of nextToken is a * unique pagination token for each page. Make the call again using the returned * token to retrieve the next page. Keep all other arguments unchanged. Each * pagination token expires after 24 hours. Using an expired pagination token will * return an HTTP 400 InvalidToken error.

This operation is * eventually consistent. The results are best effort and may not reflect very * recent updates and changes.

See Also:

AWS * API Reference

*/ virtual Model::ListActivitiesOutcome ListActivities(const Model::ListActivitiesRequest& request) const; /** *

Lists the existing activities.

If nextToken is returned, * there are more results available. The value of nextToken is a * unique pagination token for each page. Make the call again using the returned * token to retrieve the next page. Keep all other arguments unchanged. Each * pagination token expires after 24 hours. Using an expired pagination token will * return an HTTP 400 InvalidToken error.

This operation is * eventually consistent. The results are best effort and may not reflect very * recent updates and changes.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListActivitiesOutcomeCallable ListActivitiesCallable(const Model::ListActivitiesRequest& request) const; /** *

Lists the existing activities.

If nextToken is returned, * there are more results available. The value of nextToken is a * unique pagination token for each page. Make the call again using the returned * token to retrieve the next page. Keep all other arguments unchanged. Each * pagination token expires after 24 hours. Using an expired pagination token will * return an HTTP 400 InvalidToken error.

This operation is * eventually consistent. The results are best effort and may not reflect very * recent updates and changes.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListActivitiesAsync(const Model::ListActivitiesRequest& request, const ListActivitiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the executions of a state machine that meet the filtering criteria. * Results are sorted by time, with the most recent execution first.

If * nextToken is returned, there are more results available. The value * of nextToken is a unique pagination token for each page. Make the * call again using the returned token to retrieve the next page. Keep all other * arguments unchanged. Each pagination token expires after 24 hours. Using an * expired pagination token will return an HTTP 400 InvalidToken error.

*

This operation is eventually consistent. The results are best effort * and may not reflect very recent updates and changes.

This API * action is not supported by EXPRESS state machines.

See * Also:

AWS * API Reference

*/ virtual Model::ListExecutionsOutcome ListExecutions(const Model::ListExecutionsRequest& request) const; /** *

Lists the executions of a state machine that meet the filtering criteria. * Results are sorted by time, with the most recent execution first.

If * nextToken is returned, there are more results available. The value * of nextToken is a unique pagination token for each page. Make the * call again using the returned token to retrieve the next page. Keep all other * arguments unchanged. Each pagination token expires after 24 hours. Using an * expired pagination token will return an HTTP 400 InvalidToken error.

*

This operation is eventually consistent. The results are best effort * and may not reflect very recent updates and changes.

This API * action is not supported by EXPRESS state machines.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListExecutionsOutcomeCallable ListExecutionsCallable(const Model::ListExecutionsRequest& request) const; /** *

Lists the executions of a state machine that meet the filtering criteria. * Results are sorted by time, with the most recent execution first.

If * nextToken is returned, there are more results available. The value * of nextToken is a unique pagination token for each page. Make the * call again using the returned token to retrieve the next page. Keep all other * arguments unchanged. Each pagination token expires after 24 hours. Using an * expired pagination token will return an HTTP 400 InvalidToken error.

*

This operation is eventually consistent. The results are best effort * and may not reflect very recent updates and changes.

This API * action is not supported by EXPRESS state machines.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListExecutionsAsync(const Model::ListExecutionsRequest& request, const ListExecutionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the existing state machines.

If nextToken is * returned, there are more results available. The value of nextToken * is a unique pagination token for each page. Make the call again using the * returned token to retrieve the next page. Keep all other arguments unchanged. * Each pagination token expires after 24 hours. Using an expired pagination token * will return an HTTP 400 InvalidToken error.

This operation * is eventually consistent. The results are best effort and may not reflect very * recent updates and changes.

See Also:

AWS * API Reference

*/ virtual Model::ListStateMachinesOutcome ListStateMachines(const Model::ListStateMachinesRequest& request) const; /** *

Lists the existing state machines.

If nextToken is * returned, there are more results available. The value of nextToken * is a unique pagination token for each page. Make the call again using the * returned token to retrieve the next page. Keep all other arguments unchanged. * Each pagination token expires after 24 hours. Using an expired pagination token * will return an HTTP 400 InvalidToken error.

This operation * is eventually consistent. The results are best effort and may not reflect very * recent updates and changes.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListStateMachinesOutcomeCallable ListStateMachinesCallable(const Model::ListStateMachinesRequest& request) const; /** *

Lists the existing state machines.

If nextToken is * returned, there are more results available. The value of nextToken * is a unique pagination token for each page. Make the call again using the * returned token to retrieve the next page. Keep all other arguments unchanged. * Each pagination token expires after 24 hours. Using an expired pagination token * will return an HTTP 400 InvalidToken error.

This operation * is eventually consistent. The results are best effort and may not reflect very * recent updates and changes.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListStateMachinesAsync(const Model::ListStateMachinesRequest& request, const ListStateMachinesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

List tags for a given resource.

Tags may only contain Unicode letters, * digits, white space, or these symbols: _ . : / = + - * @.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** *

List tags for a given resource.

Tags may only contain Unicode letters, * digits, white space, or these symbols: _ . : / = + - * @.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const; /** *

List tags for a given resource.

Tags may only contain Unicode letters, * digits, white space, or these symbols: _ . : / = + - * @.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Used by activity workers and task states using the callback * pattern to report that the task identified by the taskToken * failed.

See Also:

AWS * API Reference

*/ virtual Model::SendTaskFailureOutcome SendTaskFailure(const Model::SendTaskFailureRequest& request) const; /** *

Used by activity workers and task states using the callback * pattern to report that the task identified by the taskToken * failed.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SendTaskFailureOutcomeCallable SendTaskFailureCallable(const Model::SendTaskFailureRequest& request) const; /** *

Used by activity workers and task states using the callback * pattern to report that the task identified by the taskToken * failed.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SendTaskFailureAsync(const Model::SendTaskFailureRequest& request, const SendTaskFailureResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Used by activity workers and task states using the callback * pattern to report to Step Functions that the task represented by the specified * taskToken is still making progress. This action resets the * Heartbeat clock. The Heartbeat threshold is specified * in the state machine's Amazon States Language definition * (HeartbeatSeconds). This action does not in itself create an event * in the execution history. However, if the task times out, the execution history * contains an ActivityTimedOut entry for activities, or a * TaskTimedOut entry for for tasks using the job * run or callback * pattern.

The Timeout of a task, defined in the state * machine's Amazon States Language definition, is its maximum allowed duration, * regardless of the number of SendTaskHeartbeat requests received. Use * HeartbeatSeconds to configure the timeout interval for * heartbeats.

See Also:

AWS * API Reference

*/ virtual Model::SendTaskHeartbeatOutcome SendTaskHeartbeat(const Model::SendTaskHeartbeatRequest& request) const; /** *

Used by activity workers and task states using the callback * pattern to report to Step Functions that the task represented by the specified * taskToken is still making progress. This action resets the * Heartbeat clock. The Heartbeat threshold is specified * in the state machine's Amazon States Language definition * (HeartbeatSeconds). This action does not in itself create an event * in the execution history. However, if the task times out, the execution history * contains an ActivityTimedOut entry for activities, or a * TaskTimedOut entry for for tasks using the job * run or callback * pattern.

The Timeout of a task, defined in the state * machine's Amazon States Language definition, is its maximum allowed duration, * regardless of the number of SendTaskHeartbeat requests received. Use * HeartbeatSeconds to configure the timeout interval for * heartbeats.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SendTaskHeartbeatOutcomeCallable SendTaskHeartbeatCallable(const Model::SendTaskHeartbeatRequest& request) const; /** *

Used by activity workers and task states using the callback * pattern to report to Step Functions that the task represented by the specified * taskToken is still making progress. This action resets the * Heartbeat clock. The Heartbeat threshold is specified * in the state machine's Amazon States Language definition * (HeartbeatSeconds). This action does not in itself create an event * in the execution history. However, if the task times out, the execution history * contains an ActivityTimedOut entry for activities, or a * TaskTimedOut entry for for tasks using the job * run or callback * pattern.

The Timeout of a task, defined in the state * machine's Amazon States Language definition, is its maximum allowed duration, * regardless of the number of SendTaskHeartbeat requests received. Use * HeartbeatSeconds to configure the timeout interval for * heartbeats.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SendTaskHeartbeatAsync(const Model::SendTaskHeartbeatRequest& request, const SendTaskHeartbeatResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Used by activity workers and task states using the callback * pattern to report that the task identified by the taskToken * completed successfully.

See Also:

AWS * API Reference

*/ virtual Model::SendTaskSuccessOutcome SendTaskSuccess(const Model::SendTaskSuccessRequest& request) const; /** *

Used by activity workers and task states using the callback * pattern to report that the task identified by the taskToken * completed successfully.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SendTaskSuccessOutcomeCallable SendTaskSuccessCallable(const Model::SendTaskSuccessRequest& request) const; /** *

Used by activity workers and task states using the callback * pattern to report that the task identified by the taskToken * completed successfully.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SendTaskSuccessAsync(const Model::SendTaskSuccessRequest& request, const SendTaskSuccessResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Starts a state machine execution.

StartExecution * is idempotent. If StartExecution is called with the same name and * input as a running execution, the call will succeed and return the same response * as the original request. If the execution is closed or if the input is * different, it will return a 400 ExecutionAlreadyExists error. Names * can be reused after 90 days.

See Also:

AWS * API Reference

*/ virtual Model::StartExecutionOutcome StartExecution(const Model::StartExecutionRequest& request) const; /** *

Starts a state machine execution.

StartExecution * is idempotent. If StartExecution is called with the same name and * input as a running execution, the call will succeed and return the same response * as the original request. If the execution is closed or if the input is * different, it will return a 400 ExecutionAlreadyExists error. Names * can be reused after 90 days.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::StartExecutionOutcomeCallable StartExecutionCallable(const Model::StartExecutionRequest& request) const; /** *

Starts a state machine execution.

StartExecution * is idempotent. If StartExecution is called with the same name and * input as a running execution, the call will succeed and return the same response * as the original request. If the execution is closed or if the input is * different, it will return a 400 ExecutionAlreadyExists error. Names * can be reused after 90 days.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void StartExecutionAsync(const Model::StartExecutionRequest& request, const StartExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Stops an execution.

This API action is not supported by * EXPRESS state machines.

See Also:

AWS * API Reference

*/ virtual Model::StopExecutionOutcome StopExecution(const Model::StopExecutionRequest& request) const; /** *

Stops an execution.

This API action is not supported by * EXPRESS state machines.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::StopExecutionOutcomeCallable StopExecutionCallable(const Model::StopExecutionRequest& request) const; /** *

Stops an execution.

This API action is not supported by * EXPRESS state machines.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void StopExecutionAsync(const Model::StopExecutionRequest& request, const StopExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Add a tag to a Step Functions resource.

An array of key-value pairs. * For more information, see Using * Cost Allocation Tags in the AWS Billing and Cost Management User * Guide, and Controlling * Access Using IAM Tags.

Tags may only contain Unicode letters, digits, * white space, or these symbols: _ . : / = + - @.

See * Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** *

Add a tag to a Step Functions resource.

An array of key-value pairs. * For more information, see Using * Cost Allocation Tags in the AWS Billing and Cost Management User * Guide, and Controlling * Access Using IAM Tags.

Tags may only contain Unicode letters, digits, * white space, or these symbols: _ . : / = + - @.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const; /** *

Add a tag to a Step Functions resource.

An array of key-value pairs. * For more information, see Using * Cost Allocation Tags in the AWS Billing and Cost Management User * Guide, and Controlling * Access Using IAM Tags.

Tags may only contain Unicode letters, digits, * white space, or these symbols: _ . : / = + - @.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Remove a tag from a Step Functions resource

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** *

Remove a tag from a Step Functions resource

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const; /** *

Remove a tag from a Step Functions resource

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates an existing state machine by modifying its definition, * roleArn, or loggingConfiguration. Running executions * will continue to use the previous definition and * roleArn. You must include at least one of definition * or roleArn or you will receive a * MissingRequiredParameter error.

All * StartExecution calls within a few seconds will use the updated * definition and roleArn. Executions started immediately * after calling UpdateStateMachine may use the previous state machine * definition and roleArn.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateStateMachineOutcome UpdateStateMachine(const Model::UpdateStateMachineRequest& request) const; /** *

Updates an existing state machine by modifying its definition, * roleArn, or loggingConfiguration. Running executions * will continue to use the previous definition and * roleArn. You must include at least one of definition * or roleArn or you will receive a * MissingRequiredParameter error.

All * StartExecution calls within a few seconds will use the updated * definition and roleArn. Executions started immediately * after calling UpdateStateMachine may use the previous state machine * definition and roleArn.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateStateMachineOutcomeCallable UpdateStateMachineCallable(const Model::UpdateStateMachineRequest& request) const; /** *

Updates an existing state machine by modifying its definition, * roleArn, or loggingConfiguration. Running executions * will continue to use the previous definition and * roleArn. You must include at least one of definition * or roleArn or you will receive a * MissingRequiredParameter error.

All * StartExecution calls within a few seconds will use the updated * definition and roleArn. Executions started immediately * after calling UpdateStateMachine may use the previous state machine * definition and roleArn.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateStateMachineAsync(const Model::UpdateStateMachineRequest& request, const UpdateStateMachineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void CreateActivityAsyncHelper(const Model::CreateActivityRequest& request, const CreateActivityResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateStateMachineAsyncHelper(const Model::CreateStateMachineRequest& request, const CreateStateMachineResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteActivityAsyncHelper(const Model::DeleteActivityRequest& request, const DeleteActivityResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteStateMachineAsyncHelper(const Model::DeleteStateMachineRequest& request, const DeleteStateMachineResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeActivityAsyncHelper(const Model::DescribeActivityRequest& request, const DescribeActivityResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeExecutionAsyncHelper(const Model::DescribeExecutionRequest& request, const DescribeExecutionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeStateMachineAsyncHelper(const Model::DescribeStateMachineRequest& request, const DescribeStateMachineResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeStateMachineForExecutionAsyncHelper(const Model::DescribeStateMachineForExecutionRequest& request, const DescribeStateMachineForExecutionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetActivityTaskAsyncHelper(const Model::GetActivityTaskRequest& request, const GetActivityTaskResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetExecutionHistoryAsyncHelper(const Model::GetExecutionHistoryRequest& request, const GetExecutionHistoryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListActivitiesAsyncHelper(const Model::ListActivitiesRequest& request, const ListActivitiesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListExecutionsAsyncHelper(const Model::ListExecutionsRequest& request, const ListExecutionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListStateMachinesAsyncHelper(const Model::ListStateMachinesRequest& request, const ListStateMachinesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SendTaskFailureAsyncHelper(const Model::SendTaskFailureRequest& request, const SendTaskFailureResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SendTaskHeartbeatAsyncHelper(const Model::SendTaskHeartbeatRequest& request, const SendTaskHeartbeatResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SendTaskSuccessAsyncHelper(const Model::SendTaskSuccessRequest& request, const SendTaskSuccessResponseReceivedHandler& handler, const std::shared_ptr& context) const; void StartExecutionAsyncHelper(const Model::StartExecutionRequest& request, const StartExecutionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void StopExecutionAsyncHelper(const Model::StopExecutionRequest& request, const StopExecutionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateStateMachineAsyncHelper(const Model::UpdateStateMachineRequest& request, const UpdateStateMachineResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace SFN } // namespace Aws