/** * 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 SimSpaceWeaver { /** *

SimSpace Weaver (SimSpace Weaver) is a managed service that you can use to * build and operate large-scale spatial simulations in the Amazon Web Services * Cloud. For example, you can create a digital twin of a city, crowd simulations * with millions of people and objects, and massively multiplayer games with * hundreds of thousands of connected players. For more information about SimSpace * Weaver, see the SimSpace * Weaver User Guide .

This API reference describes the API * operations and data types that you can use to communicate directly with SimSpace * Weaver.

SimSpace Weaver also provides the SimSpace Weaver app SDK, which * you use for app development. The SimSpace Weaver app SDK API reference is * included in the SimSpace Weaver app SDK documentation. This documentation is * part of the SimSpace Weaver app SDK distributable package.

*/ class AWS_SIMSPACEWEAVER_API SimSpaceWeaverClient : 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 SimSpaceWeaverClientConfiguration ClientConfigurationType; typedef SimSpaceWeaverEndpointProvider 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. */ SimSpaceWeaverClient(const Aws::SimSpaceWeaver::SimSpaceWeaverClientConfiguration& clientConfiguration = Aws::SimSpaceWeaver::SimSpaceWeaverClientConfiguration(), 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. */ SimSpaceWeaverClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::SimSpaceWeaver::SimSpaceWeaverClientConfiguration& clientConfiguration = Aws::SimSpaceWeaver::SimSpaceWeaverClientConfiguration()); /** * 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 */ SimSpaceWeaverClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::SimSpaceWeaver::SimSpaceWeaverClientConfiguration& clientConfiguration = Aws::SimSpaceWeaver::SimSpaceWeaverClientConfiguration()); /* 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. */ SimSpaceWeaverClient(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. */ SimSpaceWeaverClient(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 */ SimSpaceWeaverClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~SimSpaceWeaverClient(); /** *

Creates a snapshot of the specified simulation. A snapshot is a file that * contains simulation state data at a specific time. The state data saved in a * snapshot includes entity data from the State Fabric, the simulation * configuration specified in the schema, and the clock tick number. You can use * the snapshot to initialize a new simulation. For more information about * snapshots, see Snapshots * in the SimSpace Weaver User Guide.

You specify a * Destination when you create a snapshot. The * Destination is the name of an Amazon S3 bucket and an optional * ObjectKeyPrefix. The ObjectKeyPrefix is usually the * name of a folder in the bucket. SimSpace Weaver creates a snapshot * folder inside the Destination and places the snapshot file * there.

The snapshot file is an Amazon S3 object. It has an object key * with the form: * object-key-prefix/snapshot/simulation-name-YYMMdd-HHmm-ss.zip, * where:

  • YY is the 2-digit year

  • *
  • MM is the 2-digit month

  • * dd is the 2-digit day of the month

  • * HH is the 2-digit hour (24-hour clock)

  • * mm is the 2-digit minutes

  • ss * is the 2-digit seconds

See Also:

AWS * API Reference

*/ virtual Model::CreateSnapshotOutcome CreateSnapshot(const Model::CreateSnapshotRequest& request) const; /** * A Callable wrapper for CreateSnapshot that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateSnapshotOutcomeCallable CreateSnapshotCallable(const CreateSnapshotRequestT& request) const { return SubmitCallable(&SimSpaceWeaverClient::CreateSnapshot, request); } /** * An Async wrapper for CreateSnapshot that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateSnapshotAsync(const CreateSnapshotRequestT& request, const CreateSnapshotResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SimSpaceWeaverClient::CreateSnapshot, request, handler, context); } /** *

Deletes the instance of the given custom app.

See Also:

AWS * API Reference

*/ virtual Model::DeleteAppOutcome DeleteApp(const Model::DeleteAppRequest& request) const; /** * A Callable wrapper for DeleteApp that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteAppOutcomeCallable DeleteAppCallable(const DeleteAppRequestT& request) const { return SubmitCallable(&SimSpaceWeaverClient::DeleteApp, request); } /** * An Async wrapper for DeleteApp that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteAppAsync(const DeleteAppRequestT& request, const DeleteAppResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SimSpaceWeaverClient::DeleteApp, request, handler, context); } /** *

Deletes all SimSpace Weaver resources assigned to the given simulation.

*

Your simulation uses resources in other Amazon Web Services. This API * operation doesn't delete resources in other Amazon Web Services.

*

See Also:

AWS * API Reference

*/ virtual Model::DeleteSimulationOutcome DeleteSimulation(const Model::DeleteSimulationRequest& request) const; /** * A Callable wrapper for DeleteSimulation that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteSimulationOutcomeCallable DeleteSimulationCallable(const DeleteSimulationRequestT& request) const { return SubmitCallable(&SimSpaceWeaverClient::DeleteSimulation, request); } /** * An Async wrapper for DeleteSimulation that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteSimulationAsync(const DeleteSimulationRequestT& request, const DeleteSimulationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SimSpaceWeaverClient::DeleteSimulation, request, handler, context); } /** *

Returns the state of the given custom app.

See Also:

AWS * API Reference

*/ virtual Model::DescribeAppOutcome DescribeApp(const Model::DescribeAppRequest& request) const; /** * A Callable wrapper for DescribeApp that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeAppOutcomeCallable DescribeAppCallable(const DescribeAppRequestT& request) const { return SubmitCallable(&SimSpaceWeaverClient::DescribeApp, request); } /** * An Async wrapper for DescribeApp that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeAppAsync(const DescribeAppRequestT& request, const DescribeAppResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SimSpaceWeaverClient::DescribeApp, request, handler, context); } /** *

Returns the current state of the given simulation.

See Also:

* AWS * API Reference

*/ virtual Model::DescribeSimulationOutcome DescribeSimulation(const Model::DescribeSimulationRequest& request) const; /** * A Callable wrapper for DescribeSimulation that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeSimulationOutcomeCallable DescribeSimulationCallable(const DescribeSimulationRequestT& request) const { return SubmitCallable(&SimSpaceWeaverClient::DescribeSimulation, request); } /** * An Async wrapper for DescribeSimulation that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeSimulationAsync(const DescribeSimulationRequestT& request, const DescribeSimulationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SimSpaceWeaverClient::DescribeSimulation, request, handler, context); } /** *

Lists all custom apps or service apps for the given simulation and * domain.

See Also:

AWS * API Reference

*/ virtual Model::ListAppsOutcome ListApps(const Model::ListAppsRequest& request) const; /** * A Callable wrapper for ListApps that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListAppsOutcomeCallable ListAppsCallable(const ListAppsRequestT& request) const { return SubmitCallable(&SimSpaceWeaverClient::ListApps, request); } /** * An Async wrapper for ListApps that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListAppsAsync(const ListAppsRequestT& request, const ListAppsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SimSpaceWeaverClient::ListApps, request, handler, context); } /** *

Lists the SimSpace Weaver simulations in the Amazon Web Services account used * to make the API call.

See Also:

AWS * API Reference

*/ virtual Model::ListSimulationsOutcome ListSimulations(const Model::ListSimulationsRequest& request) const; /** * A Callable wrapper for ListSimulations that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListSimulationsOutcomeCallable ListSimulationsCallable(const ListSimulationsRequestT& request) const { return SubmitCallable(&SimSpaceWeaverClient::ListSimulations, request); } /** * An Async wrapper for ListSimulations that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListSimulationsAsync(const ListSimulationsRequestT& request, const ListSimulationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SimSpaceWeaverClient::ListSimulations, request, handler, context); } /** *

Lists all tags on a SimSpace Weaver resource.

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

Starts a custom app with the configuration specified in the simulation * schema.

See Also:

AWS * API Reference

*/ virtual Model::StartAppOutcome StartApp(const Model::StartAppRequest& request) const; /** * A Callable wrapper for StartApp that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartAppOutcomeCallable StartAppCallable(const StartAppRequestT& request) const { return SubmitCallable(&SimSpaceWeaverClient::StartApp, request); } /** * An Async wrapper for StartApp that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartAppAsync(const StartAppRequestT& request, const StartAppResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SimSpaceWeaverClient::StartApp, request, handler, context); } /** *

Starts the simulation clock.

See Also:

AWS * API Reference

*/ virtual Model::StartClockOutcome StartClock(const Model::StartClockRequest& request) const; /** * A Callable wrapper for StartClock that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartClockOutcomeCallable StartClockCallable(const StartClockRequestT& request) const { return SubmitCallable(&SimSpaceWeaverClient::StartClock, request); } /** * An Async wrapper for StartClock that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartClockAsync(const StartClockRequestT& request, const StartClockResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SimSpaceWeaverClient::StartClock, request, handler, context); } /** *

Starts a simulation with the given name. You must choose to start your * simulation from a schema or from a snapshot. For more information about the * schema, see the schema * reference in the SimSpace Weaver User Guide. For more information * about snapshots, see Snapshots * in the SimSpace Weaver User Guide.

See Also:

AWS * API Reference

*/ virtual Model::StartSimulationOutcome StartSimulation(const Model::StartSimulationRequest& request) const; /** * A Callable wrapper for StartSimulation that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartSimulationOutcomeCallable StartSimulationCallable(const StartSimulationRequestT& request) const { return SubmitCallable(&SimSpaceWeaverClient::StartSimulation, request); } /** * An Async wrapper for StartSimulation that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartSimulationAsync(const StartSimulationRequestT& request, const StartSimulationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SimSpaceWeaverClient::StartSimulation, request, handler, context); } /** *

Stops the given custom app and shuts down all of its allocated compute * resources.

See Also:

AWS * API Reference

*/ virtual Model::StopAppOutcome StopApp(const Model::StopAppRequest& request) const; /** * A Callable wrapper for StopApp that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StopAppOutcomeCallable StopAppCallable(const StopAppRequestT& request) const { return SubmitCallable(&SimSpaceWeaverClient::StopApp, request); } /** * An Async wrapper for StopApp that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StopAppAsync(const StopAppRequestT& request, const StopAppResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SimSpaceWeaverClient::StopApp, request, handler, context); } /** *

Stops the simulation clock.

See Also:

AWS * API Reference

*/ virtual Model::StopClockOutcome StopClock(const Model::StopClockRequest& request) const; /** * A Callable wrapper for StopClock that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StopClockOutcomeCallable StopClockCallable(const StopClockRequestT& request) const { return SubmitCallable(&SimSpaceWeaverClient::StopClock, request); } /** * An Async wrapper for StopClock that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StopClockAsync(const StopClockRequestT& request, const StopClockResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SimSpaceWeaverClient::StopClock, request, handler, context); } /** *

Stops the given simulation.

You can't restart a simulation * after you stop it. If you want to restart a simulation, then you must stop it, * delete it, and start a new instance of it.

See Also:

* AWS * API Reference

*/ virtual Model::StopSimulationOutcome StopSimulation(const Model::StopSimulationRequest& request) const; /** * A Callable wrapper for StopSimulation that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StopSimulationOutcomeCallable StopSimulationCallable(const StopSimulationRequestT& request) const { return SubmitCallable(&SimSpaceWeaverClient::StopSimulation, request); } /** * An Async wrapper for StopSimulation that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StopSimulationAsync(const StopSimulationRequestT& request, const StopSimulationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SimSpaceWeaverClient::StopSimulation, request, handler, context); } /** *

Adds tags to a SimSpace Weaver resource. For more information about tags, see * Tagging * Amazon Web Services resources in the Amazon Web Services General * Reference.

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

Removes tags from a SimSpace Weaver resource. For more information about * tags, see Tagging * Amazon Web Services resources in the Amazon Web Services General * Reference.

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(&SimSpaceWeaverClient::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(&SimSpaceWeaverClient::UntagResource, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const SimSpaceWeaverClientConfiguration& clientConfiguration); SimSpaceWeaverClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace SimSpaceWeaver } // namespace Aws