/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
namespace Aws
{
namespace Http
{
class HttpClient;
class HttpClientFactory;
} // namespace Http
namespace Utils
{
template< typename R, typename E> class Outcome;
namespace Threading
{
class Executor;
} // namespace Threading
} // namespace Utils
namespace Auth
{
class AWSCredentials;
class AWSCredentialsProvider;
} // namespace Auth
namespace Client
{
class RetryStrategy;
} // namespace Client
namespace Braket
{
namespace Model
{
class CancelQuantumTaskRequest;
class CreateQuantumTaskRequest;
class GetDeviceRequest;
class GetQuantumTaskRequest;
class SearchDevicesRequest;
class SearchQuantumTasksRequest;
typedef Aws::Utils::Outcome CancelQuantumTaskOutcome;
typedef Aws::Utils::Outcome CreateQuantumTaskOutcome;
typedef Aws::Utils::Outcome GetDeviceOutcome;
typedef Aws::Utils::Outcome GetQuantumTaskOutcome;
typedef Aws::Utils::Outcome SearchDevicesOutcome;
typedef Aws::Utils::Outcome SearchQuantumTasksOutcome;
typedef std::future CancelQuantumTaskOutcomeCallable;
typedef std::future CreateQuantumTaskOutcomeCallable;
typedef std::future GetDeviceOutcomeCallable;
typedef std::future GetQuantumTaskOutcomeCallable;
typedef std::future SearchDevicesOutcomeCallable;
typedef std::future SearchQuantumTasksOutcomeCallable;
} // namespace Model
class BraketClient;
typedef std::function&) > CancelQuantumTaskResponseReceivedHandler;
typedef std::function&) > CreateQuantumTaskResponseReceivedHandler;
typedef std::function&) > GetDeviceResponseReceivedHandler;
typedef std::function&) > GetQuantumTaskResponseReceivedHandler;
typedef std::function&) > SearchDevicesResponseReceivedHandler;
typedef std::function&) > SearchQuantumTasksResponseReceivedHandler;
/**
* The Amazon Braket API Reference provides information about the operations and
* structures supported in Amazon Braket.
*/
class AWS_BRAKET_API BraketClient : public Aws::Client::AWSJsonClient
{
public:
typedef Aws::Client::AWSJsonClient BASECLASS;
/**
* Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
BraketClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
/**
* Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
BraketClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
/**
* Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
* the default http client factory will be used
*/
BraketClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
virtual ~BraketClient();
/**
* Cancels the specified task.
See Also:
AWS
* API Reference
*/
virtual Model::CancelQuantumTaskOutcome CancelQuantumTask(const Model::CancelQuantumTaskRequest& request) const;
/**
* Cancels the specified task.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::CancelQuantumTaskOutcomeCallable CancelQuantumTaskCallable(const Model::CancelQuantumTaskRequest& request) const;
/**
* Cancels the specified task.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void CancelQuantumTaskAsync(const Model::CancelQuantumTaskRequest& request, const CancelQuantumTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Creates a quantum task.
See Also:
AWS
* API Reference
*/
virtual Model::CreateQuantumTaskOutcome CreateQuantumTask(const Model::CreateQuantumTaskRequest& request) const;
/**
* Creates a quantum task.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::CreateQuantumTaskOutcomeCallable CreateQuantumTaskCallable(const Model::CreateQuantumTaskRequest& request) const;
/**
* Creates a quantum task.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void CreateQuantumTaskAsync(const Model::CreateQuantumTaskRequest& request, const CreateQuantumTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Retrieves the devices available in Amazon Braket.
See Also:
* AWS
* API Reference
*/
virtual Model::GetDeviceOutcome GetDevice(const Model::GetDeviceRequest& request) const;
/**
* Retrieves the devices available in Amazon Braket.
See Also:
* AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::GetDeviceOutcomeCallable GetDeviceCallable(const Model::GetDeviceRequest& request) const;
/**
* Retrieves the devices available in Amazon Braket.
See Also:
* AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void GetDeviceAsync(const Model::GetDeviceRequest& request, const GetDeviceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Retrieves the specified quantum task.
See Also:
AWS
* API Reference
*/
virtual Model::GetQuantumTaskOutcome GetQuantumTask(const Model::GetQuantumTaskRequest& request) const;
/**
* Retrieves the specified quantum task.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::GetQuantumTaskOutcomeCallable GetQuantumTaskCallable(const Model::GetQuantumTaskRequest& request) const;
/**
* Retrieves the specified quantum task.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void GetQuantumTaskAsync(const Model::GetQuantumTaskRequest& request, const GetQuantumTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Searches for devices using the specified filters.
See Also:
* AWS
* API Reference
*/
virtual Model::SearchDevicesOutcome SearchDevices(const Model::SearchDevicesRequest& request) const;
/**
* Searches for devices using the specified filters.
See Also:
* AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::SearchDevicesOutcomeCallable SearchDevicesCallable(const Model::SearchDevicesRequest& request) const;
/**
* Searches for devices using the specified filters.
See Also:
* AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void SearchDevicesAsync(const Model::SearchDevicesRequest& request, const SearchDevicesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Searches for tasks that match the specified filter values.
See
* Also:
AWS
* API Reference
*/
virtual Model::SearchQuantumTasksOutcome SearchQuantumTasks(const Model::SearchQuantumTasksRequest& request) const;
/**
* Searches for tasks that match the specified filter values.
See
* Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::SearchQuantumTasksOutcomeCallable SearchQuantumTasksCallable(const Model::SearchQuantumTasksRequest& request) const;
/**
* Searches for tasks that match the specified filter values.
See
* Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void SearchQuantumTasksAsync(const Model::SearchQuantumTasksRequest& request, const SearchQuantumTasksResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
void OverrideEndpoint(const Aws::String& endpoint);
private:
void init(const Aws::Client::ClientConfiguration& clientConfiguration);
void CancelQuantumTaskAsyncHelper(const Model::CancelQuantumTaskRequest& request, const CancelQuantumTaskResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void CreateQuantumTaskAsyncHelper(const Model::CreateQuantumTaskRequest& request, const CreateQuantumTaskResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void GetDeviceAsyncHelper(const Model::GetDeviceRequest& request, const GetDeviceResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void GetQuantumTaskAsyncHelper(const Model::GetQuantumTaskRequest& request, const GetQuantumTaskResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void SearchDevicesAsyncHelper(const Model::SearchDevicesRequest& request, const SearchDevicesResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void SearchQuantumTasksAsyncHelper(const Model::SearchQuantumTasksRequest& request, const SearchQuantumTasksResponseReceivedHandler& handler, const std::shared_ptr& context) const;
Aws::String m_uri;
Aws::String m_configScheme;
std::shared_ptr m_executor;
};
} // namespace Braket
} // namespace Aws