/** * 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 SFN { /** * Step Functions

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 Amazon Web * Services, your own servers, or any system that has access to Amazon Web * Services. You can access and use Step Functions using the console, the Amazon * Web Services SDKs, or an HTTP API. For more information about Step Functions, * see the Step * Functions Developer Guide .

*/ class AWS_SFN_API SFNClient : 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 SFNClientConfiguration ClientConfigurationType; typedef SFNEndpointProvider 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. */ SFNClient(const Aws::SFN::SFNClientConfiguration& clientConfiguration = Aws::SFN::SFNClientConfiguration(), 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. */ SFNClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::SFN::SFNClientConfiguration& clientConfiguration = Aws::SFN::SFNClientConfiguration()); /** * 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, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::SFN::SFNClientConfiguration& clientConfiguration = Aws::SFN::SFNClientConfiguration()); /* 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. */ SFNClient(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. */ SFNClient(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 */ SFNClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ 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 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; /** * A Callable wrapper for CreateActivity that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateActivityOutcomeCallable CreateActivityCallable(const CreateActivityRequestT& request) const { return SubmitCallable(&SFNClient::CreateActivity, request); } /** * An Async wrapper for CreateActivity that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateActivityAsync(const CreateActivityRequestT& request, const CreateActivityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::CreateActivity, request, handler, context); } /** *

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 Step Functions User Guide.

If you set the * publish parameter of this API action to true, it * publishes version 1 as the first revision of the state machine.

*

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, * LoggingConfiguration, and TracingConfiguration. The * check is also based on the publish and * versionDescription parameters. 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; /** * A Callable wrapper for CreateStateMachine that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateStateMachineOutcomeCallable CreateStateMachineCallable(const CreateStateMachineRequestT& request) const { return SubmitCallable(&SFNClient::CreateStateMachine, request); } /** * An Async wrapper for CreateStateMachine that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateStateMachineAsync(const CreateStateMachineRequestT& request, const CreateStateMachineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::CreateStateMachine, request, handler, context); } /** *

Creates an alias * for a state machine that points to one or two versions * of the same state machine. You can set your application to call * StartExecution with an alias and update the version the alias uses * without changing the client's code.

You can also map an alias to split * StartExecution requests between two versions of a state machine. To do * this, add a second RoutingConfig object in the * routingConfiguration parameter. You must also specify the * percentage of execution run requests each version should receive in both * RoutingConfig objects. Step Functions randomly chooses which * version runs a given execution based on the percentage you specify.

To * create an alias that points to a single version, specify a single * RoutingConfig object with a weight set to 100.

*

You can create up to 100 aliases for each state machine. You must delete * unused aliases using the DeleteStateMachineAlias API action.

* CreateStateMachineAlias is an idempotent API. Step Functions bases * the idempotency check on the stateMachineArn, * description, name, and * routingConfiguration parameters. Requests that contain the same * values for these parameters return a successful idempotent response without * creating a duplicate resource.

Related operations:

See Also:

AWS * API Reference

*/ virtual Model::CreateStateMachineAliasOutcome CreateStateMachineAlias(const Model::CreateStateMachineAliasRequest& request) const; /** * A Callable wrapper for CreateStateMachineAlias that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateStateMachineAliasOutcomeCallable CreateStateMachineAliasCallable(const CreateStateMachineAliasRequestT& request) const { return SubmitCallable(&SFNClient::CreateStateMachineAlias, request); } /** * An Async wrapper for CreateStateMachineAlias that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateStateMachineAliasAsync(const CreateStateMachineAliasRequestT& request, const CreateStateMachineAliasResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::CreateStateMachineAlias, request, handler, context); } /** *

Deletes an activity.

See Also:

AWS * API Reference

*/ virtual Model::DeleteActivityOutcome DeleteActivity(const Model::DeleteActivityRequest& request) const; /** * A Callable wrapper for DeleteActivity that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteActivityOutcomeCallable DeleteActivityCallable(const DeleteActivityRequestT& request) const { return SubmitCallable(&SFNClient::DeleteActivity, request); } /** * An Async wrapper for DeleteActivity that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteActivityAsync(const DeleteActivityRequestT& request, const DeleteActivityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::DeleteActivity, request, handler, context); } /** *

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

*

A qualified state machine ARN can either refer to a Distributed Map * state defined within a state machine, a version ARN, or an alias ARN.

*

The following are some examples of qualified and unqualified state machine * ARNs:

  • The following qualified state machine ARN refers to a * Distributed Map state with a label mapStateLabel in a state * machine named myStateMachine.

    * arn:partition:states:region:account-id:stateMachine:myStateMachine/mapStateLabel *

    If you provide a qualified state machine ARN that refers to a * Distributed Map state, the request fails with * ValidationException.

  • The following * unqualified state machine ARN refers to a state machine named * myStateMachine.

    * arn:partition:states:region:account-id:stateMachine:myStateMachine *

This API action also deletes all versions * and aliases * associated with a state machine.

For EXPRESS state * machines, the deletion happens eventually (usually in 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; /** * A Callable wrapper for DeleteStateMachine that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteStateMachineOutcomeCallable DeleteStateMachineCallable(const DeleteStateMachineRequestT& request) const { return SubmitCallable(&SFNClient::DeleteStateMachine, request); } /** * An Async wrapper for DeleteStateMachine that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteStateMachineAsync(const DeleteStateMachineRequestT& request, const DeleteStateMachineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::DeleteStateMachine, request, handler, context); } /** *

Deletes a state machine alias.

*

After you delete a state machine alias, you can't use it to start executions. * When you delete a state machine alias, Step Functions doesn't delete the state * machine versions that alias references.

Related operations:

*

See Also:

AWS * API Reference

*/ virtual Model::DeleteStateMachineAliasOutcome DeleteStateMachineAlias(const Model::DeleteStateMachineAliasRequest& request) const; /** * A Callable wrapper for DeleteStateMachineAlias that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteStateMachineAliasOutcomeCallable DeleteStateMachineAliasCallable(const DeleteStateMachineAliasRequestT& request) const { return SubmitCallable(&SFNClient::DeleteStateMachineAlias, request); } /** * An Async wrapper for DeleteStateMachineAlias that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteStateMachineAliasAsync(const DeleteStateMachineAliasRequestT& request, const DeleteStateMachineAliasResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::DeleteStateMachineAlias, request, handler, context); } /** *

Deletes a state machine version. * After you delete a version, you can't call StartExecution using that * version's ARN or use the version with a state machine alias.

*

Deleting a state machine version won't terminate its in-progress * executions.

You can't delete a state machine version * currently referenced by one or more aliases. Before you delete a version, you * must either delete the aliases or update them to point to another state machine * version.

Related operations:

See Also:

AWS * API Reference

*/ virtual Model::DeleteStateMachineVersionOutcome DeleteStateMachineVersion(const Model::DeleteStateMachineVersionRequest& request) const; /** * A Callable wrapper for DeleteStateMachineVersion that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteStateMachineVersionOutcomeCallable DeleteStateMachineVersionCallable(const DeleteStateMachineVersionRequestT& request) const { return SubmitCallable(&SFNClient::DeleteStateMachineVersion, request); } /** * An Async wrapper for DeleteStateMachineVersion that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteStateMachineVersionAsync(const DeleteStateMachineVersionRequestT& request, const DeleteStateMachineVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::DeleteStateMachineVersion, request, handler, context); } /** *

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; /** * A Callable wrapper for DescribeActivity that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeActivityOutcomeCallable DescribeActivityCallable(const DescribeActivityRequestT& request) const { return SubmitCallable(&SFNClient::DescribeActivity, request); } /** * An Async wrapper for DescribeActivity that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeActivityAsync(const DescribeActivityRequestT& request, const DescribeActivityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::DescribeActivity, request, handler, context); } /** *

Provides information about a state machine execution, such as the state * machine associated with the execution, the execution input and output, and * relevant execution metadata. Use this API action to return the Map Run Amazon * Resource Name (ARN) if the execution was dispatched by a Map Run.

If you * specify a version or alias ARN when you call the StartExecution API * action, DescribeExecution returns that ARN.

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

Executions of an * EXPRESS state machinearen't supported by * DescribeExecution unless a Map Run dispatched them.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeExecutionOutcome DescribeExecution(const Model::DescribeExecutionRequest& request) const; /** * A Callable wrapper for DescribeExecution that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeExecutionOutcomeCallable DescribeExecutionCallable(const DescribeExecutionRequestT& request) const { return SubmitCallable(&SFNClient::DescribeExecution, request); } /** * An Async wrapper for DescribeExecution that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeExecutionAsync(const DescribeExecutionRequestT& request, const DescribeExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::DescribeExecution, request, handler, context); } /** *

Provides information about a Map Run's configuration, progress, and results. * For more information, see Examining * Map Run in the Step Functions Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeMapRunOutcome DescribeMapRun(const Model::DescribeMapRunRequest& request) const; /** * A Callable wrapper for DescribeMapRun that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeMapRunOutcomeCallable DescribeMapRunCallable(const DescribeMapRunRequestT& request) const { return SubmitCallable(&SFNClient::DescribeMapRun, request); } /** * An Async wrapper for DescribeMapRun that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeMapRunAsync(const DescribeMapRunRequestT& request, const DescribeMapRunResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::DescribeMapRun, request, handler, context); } /** *

Provides information about a state machine's definition, its IAM role Amazon * Resource Name (ARN), and configuration.

A qualified state machine ARN can * either refer to a Distributed Map state defined within a state machine, a * version ARN, or an alias ARN.

The following are some examples of * qualified and unqualified state machine ARNs:

  • The following * qualified state machine ARN refers to a Distributed Map state with a * label mapStateLabel in a state machine named * myStateMachine.

    * arn:partition:states:region:account-id:stateMachine:myStateMachine/mapStateLabel *

    If you provide a qualified state machine ARN that refers to a * Distributed Map state, the request fails with * ValidationException.

  • The following * qualified state machine ARN refers to an alias named PROD.

    * arn:<partition>:states:<region>:<account-id>:stateMachine:<myStateMachine:PROD> *

    If you provide a qualified state machine ARN that refers to a * version ARN or an alias ARN, the request starts execution for that version or * alias.

  • The following unqualified state machine ARN * refers to a state machine named myStateMachine.

    * arn:<partition>:states:<region>:<account-id>:stateMachine:<myStateMachine> *

This API action returns the details for a state machine * version if the stateMachineArn you specify is a state machine * version ARN.

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; /** * A Callable wrapper for DescribeStateMachine that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeStateMachineOutcomeCallable DescribeStateMachineCallable(const DescribeStateMachineRequestT& request) const { return SubmitCallable(&SFNClient::DescribeStateMachine, request); } /** * An Async wrapper for DescribeStateMachine that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeStateMachineAsync(const DescribeStateMachineRequestT& request, const DescribeStateMachineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::DescribeStateMachine, request, handler, context); } /** *

Returns details about a state machine alias.

*

Related operations:

See Also:

AWS * API Reference

*/ virtual Model::DescribeStateMachineAliasOutcome DescribeStateMachineAlias(const Model::DescribeStateMachineAliasRequest& request) const; /** * A Callable wrapper for DescribeStateMachineAlias that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeStateMachineAliasOutcomeCallable DescribeStateMachineAliasCallable(const DescribeStateMachineAliasRequestT& request) const { return SubmitCallable(&SFNClient::DescribeStateMachineAlias, request); } /** * An Async wrapper for DescribeStateMachineAlias that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeStateMachineAliasAsync(const DescribeStateMachineAliasRequestT& request, const DescribeStateMachineAliasResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::DescribeStateMachineAlias, request, handler, context); } /** *

Provides information about a state machine's definition, its execution role * ARN, and configuration. If a Map Run dispatched the execution, this action * returns the Map Run Amazon Resource Name (ARN) in the response. The state * machine returned is the state machine associated with the Map Run.

*

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; /** * A Callable wrapper for DescribeStateMachineForExecution that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeStateMachineForExecutionOutcomeCallable DescribeStateMachineForExecutionCallable(const DescribeStateMachineForExecutionRequestT& request) const { return SubmitCallable(&SFNClient::DescribeStateMachineForExecution, request); } /** * An Async wrapper for DescribeStateMachineForExecution that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeStateMachineForExecutionAsync(const DescribeStateMachineForExecutionRequestT& request, const DescribeStateMachineForExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::DescribeStateMachineForExecution, request, handler, context); } /** *

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.

This API action isn't * logged in CloudTrail.

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; /** * A Callable wrapper for GetActivityTask that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetActivityTaskOutcomeCallable GetActivityTaskCallable(const GetActivityTaskRequestT& request) const { return SubmitCallable(&SFNClient::GetActivityTask, request); } /** * An Async wrapper for GetActivityTask that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetActivityTaskAsync(const GetActivityTaskRequestT& request, const GetActivityTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::GetActivityTask, request, handler, context); } /** *

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; /** * A Callable wrapper for GetExecutionHistory that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetExecutionHistoryOutcomeCallable GetExecutionHistoryCallable(const GetExecutionHistoryRequestT& request) const { return SubmitCallable(&SFNClient::GetExecutionHistory, request); } /** * An Async wrapper for GetExecutionHistory that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetExecutionHistoryAsync(const GetExecutionHistoryRequestT& request, const GetExecutionHistoryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::GetExecutionHistory, request, handler, context); } /** *

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; /** * A Callable wrapper for ListActivities that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListActivitiesOutcomeCallable ListActivitiesCallable(const ListActivitiesRequestT& request) const { return SubmitCallable(&SFNClient::ListActivities, request); } /** * An Async wrapper for ListActivities that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListActivitiesAsync(const ListActivitiesRequestT& request, const ListActivitiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::ListActivities, request, handler, context); } /** *

Lists all executions of a state machine or a Map Run. You can list all * executions related to a state machine by specifying a state machine Amazon * Resource Name (ARN), or those related to a Map Run by specifying a Map Run * ARN.

You can also provide a state machine alias * ARN or version * ARN to list the executions associated with a specific alias or version.

*

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; /** * A Callable wrapper for ListExecutions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListExecutionsOutcomeCallable ListExecutionsCallable(const ListExecutionsRequestT& request) const { return SubmitCallable(&SFNClient::ListExecutions, request); } /** * An Async wrapper for ListExecutions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListExecutionsAsync(const ListExecutionsRequestT& request, const ListExecutionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::ListExecutions, request, handler, context); } /** *

Lists all Map Runs that were started by a given state machine execution. Use * this API action to obtain Map Run ARNs, and then call * DescribeMapRun to obtain more information, if needed.

See * Also:

AWS * API Reference

*/ virtual Model::ListMapRunsOutcome ListMapRuns(const Model::ListMapRunsRequest& request) const; /** * A Callable wrapper for ListMapRuns that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListMapRunsOutcomeCallable ListMapRunsCallable(const ListMapRunsRequestT& request) const { return SubmitCallable(&SFNClient::ListMapRuns, request); } /** * An Async wrapper for ListMapRuns that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListMapRunsAsync(const ListMapRunsRequestT& request, const ListMapRunsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::ListMapRuns, request, handler, context); } /** *

Lists aliases * for a specified state machine ARN. Results are sorted by time, with the most * recently created aliases listed first.

To list aliases that reference a * state machine version, * you can specify the version ARN in the stateMachineArn * parameter.

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.

Related operations:

See Also:

AWS * API Reference

*/ virtual Model::ListStateMachineAliasesOutcome ListStateMachineAliases(const Model::ListStateMachineAliasesRequest& request) const; /** * A Callable wrapper for ListStateMachineAliases that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListStateMachineAliasesOutcomeCallable ListStateMachineAliasesCallable(const ListStateMachineAliasesRequestT& request) const { return SubmitCallable(&SFNClient::ListStateMachineAliases, request); } /** * An Async wrapper for ListStateMachineAliases that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListStateMachineAliasesAsync(const ListStateMachineAliasesRequestT& request, const ListStateMachineAliasesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::ListStateMachineAliases, request, handler, context); } /** *

Lists versions * for the specified state machine Amazon Resource Name (ARN).

The results * are sorted in descending order of the version creation time.

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.

*

Related operations:

See Also:

AWS * API Reference

*/ virtual Model::ListStateMachineVersionsOutcome ListStateMachineVersions(const Model::ListStateMachineVersionsRequest& request) const; /** * A Callable wrapper for ListStateMachineVersions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListStateMachineVersionsOutcomeCallable ListStateMachineVersionsCallable(const ListStateMachineVersionsRequestT& request) const { return SubmitCallable(&SFNClient::ListStateMachineVersions, request); } /** * An Async wrapper for ListStateMachineVersions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListStateMachineVersionsAsync(const ListStateMachineVersionsRequestT& request, const ListStateMachineVersionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::ListStateMachineVersions, request, handler, context); } /** *

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; /** * A Callable wrapper for ListStateMachines that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListStateMachinesOutcomeCallable ListStateMachinesCallable(const ListStateMachinesRequestT& request) const { return SubmitCallable(&SFNClient::ListStateMachines, request); } /** * An Async wrapper for ListStateMachines that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListStateMachinesAsync(const ListStateMachinesRequestT& request, const ListStateMachinesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::ListStateMachines, request, handler, context); } /** *

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; /** * 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(&SFNClient::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(&SFNClient::ListTagsForResource, request, handler, context); } /** *

Creates a version * from the current revision of a state machine. Use versions to create immutable * snapshots of your state machine. You can start executions from versions either * directly or with an alias. To create an alias, use * CreateStateMachineAlias.

You can publish up to 1000 versions for * each state machine. You must manually delete unused versions using the * DeleteStateMachineVersion API action.

* PublishStateMachineVersion is an idempotent API. It doesn't create * a duplicate state machine version if it already exists for the current revision. * Step Functions bases PublishStateMachineVersion's idempotency check * on the stateMachineArn, name, and * revisionId parameters. Requests with the same parameters return a * successful idempotent response. If you don't specify a revisionId, * Step Functions checks for a previously published version of the state machine's * current revision.

Related operations:

See Also:

AWS * API Reference

*/ virtual Model::PublishStateMachineVersionOutcome PublishStateMachineVersion(const Model::PublishStateMachineVersionRequest& request) const; /** * A Callable wrapper for PublishStateMachineVersion that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PublishStateMachineVersionOutcomeCallable PublishStateMachineVersionCallable(const PublishStateMachineVersionRequestT& request) const { return SubmitCallable(&SFNClient::PublishStateMachineVersion, request); } /** * An Async wrapper for PublishStateMachineVersion that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PublishStateMachineVersionAsync(const PublishStateMachineVersionRequestT& request, const PublishStateMachineVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::PublishStateMachineVersion, request, handler, context); } /** *

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; /** * A Callable wrapper for SendTaskFailure that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SendTaskFailureOutcomeCallable SendTaskFailureCallable(const SendTaskFailureRequestT& request) const { return SubmitCallable(&SFNClient::SendTaskFailure, request); } /** * An Async wrapper for SendTaskFailure that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SendTaskFailureAsync(const SendTaskFailureRequestT& request, const SendTaskFailureResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::SendTaskFailure, request, handler, context); } /** *

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; /** * A Callable wrapper for SendTaskHeartbeat that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SendTaskHeartbeatOutcomeCallable SendTaskHeartbeatCallable(const SendTaskHeartbeatRequestT& request) const { return SubmitCallable(&SFNClient::SendTaskHeartbeat, request); } /** * An Async wrapper for SendTaskHeartbeat that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SendTaskHeartbeatAsync(const SendTaskHeartbeatRequestT& request, const SendTaskHeartbeatResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::SendTaskHeartbeat, request, handler, context); } /** *

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; /** * A Callable wrapper for SendTaskSuccess that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SendTaskSuccessOutcomeCallable SendTaskSuccessCallable(const SendTaskSuccessRequestT& request) const { return SubmitCallable(&SFNClient::SendTaskSuccess, request); } /** * An Async wrapper for SendTaskSuccess that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SendTaskSuccessAsync(const SendTaskSuccessRequestT& request, const SendTaskSuccessResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::SendTaskSuccess, request, handler, context); } /** *

Starts a state machine execution.

A qualified state machine ARN can * either refer to a Distributed Map state defined within a state machine, a * version ARN, or an alias ARN.

The following are some examples of * qualified and unqualified state machine ARNs:

  • The following * qualified state machine ARN refers to a Distributed Map state with a * label mapStateLabel in a state machine named * myStateMachine.

    * arn:partition:states:region:account-id:stateMachine:myStateMachine/mapStateLabel *

    If you provide a qualified state machine ARN that refers to a * Distributed Map state, the request fails with * ValidationException.

  • The following * qualified state machine ARN refers to an alias named PROD.

    * arn:<partition>:states:<region>:<account-id>:stateMachine:<myStateMachine:PROD> *

    If you provide a qualified state machine ARN that refers to a * version ARN or an alias ARN, the request starts execution for that version or * alias.

  • The following unqualified state machine ARN * refers to a state machine named myStateMachine.

    * arn:<partition>:states:<region>:<account-id>:stateMachine:<myStateMachine> *

If you start an execution with an unqualified state machine * ARN, Step Functions uses the latest revision of the state machine for the * execution.

To start executions of a state machine version, * call StartExecution and provide the version ARN or the ARN of an alias * that points to the version.

StartExecution is * idempotent for STANDARD workflows. For a STANDARD * workflow, if you call StartExecution with the same name and input * as a running execution, the call succeeds and return the same response as the * original request. If the execution is closed or if the input is different, it * returns a 400 ExecutionAlreadyExists error. You can reuse names * after 90 days.

StartExecution isn't idempotent for * EXPRESS workflows.

See Also:

AWS * API Reference

*/ virtual Model::StartExecutionOutcome StartExecution(const Model::StartExecutionRequest& request) const; /** * A Callable wrapper for StartExecution that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartExecutionOutcomeCallable StartExecutionCallable(const StartExecutionRequestT& request) const { return SubmitCallable(&SFNClient::StartExecution, request); } /** * An Async wrapper for StartExecution that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartExecutionAsync(const StartExecutionRequestT& request, const StartExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::StartExecution, request, handler, context); } /** *

Starts a Synchronous Express state machine execution. * StartSyncExecution is not available for STANDARD * workflows.

StartSyncExecution will return a * 200 OK response, even if your execution fails, because the status * code in the API response doesn't reflect function errors. Error codes are * reserved for errors that prevent your execution from running, such as * permissions errors, limit errors, or issues with your state machine code and * configuration.

This API action isn't logged in * CloudTrail.

See Also:

AWS * API Reference

*/ virtual Model::StartSyncExecutionOutcome StartSyncExecution(const Model::StartSyncExecutionRequest& request) const; /** * A Callable wrapper for StartSyncExecution that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartSyncExecutionOutcomeCallable StartSyncExecutionCallable(const StartSyncExecutionRequestT& request) const { return SubmitCallable(&SFNClient::StartSyncExecution, request); } /** * An Async wrapper for StartSyncExecution that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartSyncExecutionAsync(const StartSyncExecutionRequestT& request, const StartSyncExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::StartSyncExecution, request, handler, context); } /** *

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; /** * A Callable wrapper for StopExecution that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StopExecutionOutcomeCallable StopExecutionCallable(const StopExecutionRequestT& request) const { return SubmitCallable(&SFNClient::StopExecution, request); } /** * An Async wrapper for StopExecution that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StopExecutionAsync(const StopExecutionRequestT& request, const StopExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::StopExecution, request, handler, context); } /** *

Add a tag to a Step Functions resource.

An array of key-value pairs. * For more information, see Using * Cost Allocation Tags in the Amazon Web Services 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; /** * 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(&SFNClient::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(&SFNClient::TagResource, request, handler, context); } /** *

Remove a tag from a Step Functions resource

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(&SFNClient::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(&SFNClient::UntagResource, request, handler, context); } /** *

Updates an in-progress Map Run's configuration to include changes to the * settings that control maximum concurrency and Map Run failure.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateMapRunOutcome UpdateMapRun(const Model::UpdateMapRunRequest& request) const; /** * A Callable wrapper for UpdateMapRun that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateMapRunOutcomeCallable UpdateMapRunCallable(const UpdateMapRunRequestT& request) const { return SubmitCallable(&SFNClient::UpdateMapRun, request); } /** * An Async wrapper for UpdateMapRun that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateMapRunAsync(const UpdateMapRunRequestT& request, const UpdateMapRunResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::UpdateMapRun, request, handler, context); } /** *

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.

A qualified state machine * ARN refers to a Distributed Map state defined within a state machine. For * example, the qualified state machine ARN * arn:partition:states:region:account-id:stateMachine:stateMachineName/mapStateLabel * refers to a Distributed Map state with a label mapStateLabel * in the state machine named stateMachineName.

A qualified * state machine ARN can either refer to a Distributed Map state defined * within a state machine, a version ARN, or an alias ARN.

The following are * some examples of qualified and unqualified state machine ARNs:

  • *

    The following qualified state machine ARN refers to a Distributed Map * state with a label mapStateLabel in a state machine named * myStateMachine.

    * arn:partition:states:region:account-id:stateMachine:myStateMachine/mapStateLabel *

    If you provide a qualified state machine ARN that refers to a * Distributed Map state, the request fails with * ValidationException.

  • The following * qualified state machine ARN refers to an alias named PROD.

    * arn:<partition>:states:<region>:<account-id>:stateMachine:<myStateMachine:PROD> *

    If you provide a qualified state machine ARN that refers to a * version ARN or an alias ARN, the request starts execution for that version or * alias.

  • The following unqualified state machine ARN * refers to a state machine named myStateMachine.

    * arn:<partition>:states:<region>:<account-id>:stateMachine:<myStateMachine> *

After you update your state machine, you can set the * publish parameter to true in the same action to * publish a new version. * This way, you can opt-in to strict versioning of your state machine.

*

Step Functions assigns monotonically increasing integers for state machine * versions, starting at version number 1.

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

See * Also:

AWS * API Reference

*/ virtual Model::UpdateStateMachineOutcome UpdateStateMachine(const Model::UpdateStateMachineRequest& request) const; /** * A Callable wrapper for UpdateStateMachine that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateStateMachineOutcomeCallable UpdateStateMachineCallable(const UpdateStateMachineRequestT& request) const { return SubmitCallable(&SFNClient::UpdateStateMachine, request); } /** * An Async wrapper for UpdateStateMachine that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateStateMachineAsync(const UpdateStateMachineRequestT& request, const UpdateStateMachineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::UpdateStateMachine, request, handler, context); } /** *

Updates the configuration of an existing state machine alias * by modifying its description or * routingConfiguration.

You must specify at least one of the * description or routingConfiguration parameters to * update a state machine alias.

* UpdateStateMachineAlias is an idempotent API. Step Functions bases * the idempotency check on the stateMachineAliasArn, * description, and routingConfiguration parameters. * Requests with the same parameters return an idempotent response.

*

This operation is eventually consistent. All StartExecution * requests made within a few seconds use the latest alias configuration. * Executions started immediately after calling * UpdateStateMachineAlias may use the previous routing * configuration.

Related operations:

See Also:

AWS * API Reference

*/ virtual Model::UpdateStateMachineAliasOutcome UpdateStateMachineAlias(const Model::UpdateStateMachineAliasRequest& request) const; /** * A Callable wrapper for UpdateStateMachineAlias that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateStateMachineAliasOutcomeCallable UpdateStateMachineAliasCallable(const UpdateStateMachineAliasRequestT& request) const { return SubmitCallable(&SFNClient::UpdateStateMachineAlias, request); } /** * An Async wrapper for UpdateStateMachineAlias that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateStateMachineAliasAsync(const UpdateStateMachineAliasRequestT& request, const UpdateStateMachineAliasResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SFNClient::UpdateStateMachineAlias, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const SFNClientConfiguration& clientConfiguration); SFNClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace SFN } // namespace Aws