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