/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
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 Mobile
{
namespace Model
{
class CreateProjectRequest;
class DeleteProjectRequest;
class DescribeBundleRequest;
class DescribeProjectRequest;
class ExportBundleRequest;
class ExportProjectRequest;
class ListBundlesRequest;
class ListProjectsRequest;
class UpdateProjectRequest;
typedef Aws::Utils::Outcome CreateProjectOutcome;
typedef Aws::Utils::Outcome DeleteProjectOutcome;
typedef Aws::Utils::Outcome DescribeBundleOutcome;
typedef Aws::Utils::Outcome DescribeProjectOutcome;
typedef Aws::Utils::Outcome ExportBundleOutcome;
typedef Aws::Utils::Outcome ExportProjectOutcome;
typedef Aws::Utils::Outcome ListBundlesOutcome;
typedef Aws::Utils::Outcome ListProjectsOutcome;
typedef Aws::Utils::Outcome UpdateProjectOutcome;
typedef std::future CreateProjectOutcomeCallable;
typedef std::future DeleteProjectOutcomeCallable;
typedef std::future DescribeBundleOutcomeCallable;
typedef std::future DescribeProjectOutcomeCallable;
typedef std::future ExportBundleOutcomeCallable;
typedef std::future ExportProjectOutcomeCallable;
typedef std::future ListBundlesOutcomeCallable;
typedef std::future ListProjectsOutcomeCallable;
typedef std::future UpdateProjectOutcomeCallable;
} // namespace Model
class MobileClient;
typedef std::function&) > CreateProjectResponseReceivedHandler;
typedef std::function&) > DeleteProjectResponseReceivedHandler;
typedef std::function&) > DescribeBundleResponseReceivedHandler;
typedef std::function&) > DescribeProjectResponseReceivedHandler;
typedef std::function&) > ExportBundleResponseReceivedHandler;
typedef std::function&) > ExportProjectResponseReceivedHandler;
typedef std::function&) > ListBundlesResponseReceivedHandler;
typedef std::function&) > ListProjectsResponseReceivedHandler;
typedef std::function&) > UpdateProjectResponseReceivedHandler;
/**
* AWS Mobile Service provides mobile app and website developers with
* capabilities required to configure AWS resources and bootstrap their developer
* desktop projects with the necessary SDKs, constants, tools and samples to make
* use of those resources.
*/
class AWS_MOBILE_API MobileClient : 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.
*/
MobileClient(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.
*/
MobileClient(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
*/
MobileClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
virtual ~MobileClient();
/**
* Creates an AWS Mobile Hub project.
See Also:
AWS
* API Reference
*/
virtual Model::CreateProjectOutcome CreateProject(const Model::CreateProjectRequest& request) const;
/**
* Creates an AWS Mobile Hub project.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::CreateProjectOutcomeCallable CreateProjectCallable(const Model::CreateProjectRequest& request) const;
/**
* Creates an AWS Mobile Hub project.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void CreateProjectAsync(const Model::CreateProjectRequest& request, const CreateProjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Delets a project in AWS Mobile Hub.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteProjectOutcome DeleteProject(const Model::DeleteProjectRequest& request) const;
/**
* Delets a project in AWS Mobile Hub.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::DeleteProjectOutcomeCallable DeleteProjectCallable(const Model::DeleteProjectRequest& request) const;
/**
* Delets a project in AWS Mobile Hub.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void DeleteProjectAsync(const Model::DeleteProjectRequest& request, const DeleteProjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Get the bundle details for the requested bundle id.
See
* Also:
AWS
* API Reference
*/
virtual Model::DescribeBundleOutcome DescribeBundle(const Model::DescribeBundleRequest& request) const;
/**
* Get the bundle details for the requested bundle id.
See
* Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::DescribeBundleOutcomeCallable DescribeBundleCallable(const Model::DescribeBundleRequest& request) const;
/**
* Get the bundle details for the requested bundle id.
See
* Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void DescribeBundleAsync(const Model::DescribeBundleRequest& request, const DescribeBundleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Gets details about a project in AWS Mobile Hub.
See Also:
* AWS
* API Reference
*/
virtual Model::DescribeProjectOutcome DescribeProject(const Model::DescribeProjectRequest& request) const;
/**
* Gets details about a project in AWS Mobile Hub.
See Also:
* AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::DescribeProjectOutcomeCallable DescribeProjectCallable(const Model::DescribeProjectRequest& request) const;
/**
* Gets details about a project in AWS Mobile Hub.
See Also:
* AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void DescribeProjectAsync(const Model::DescribeProjectRequest& request, const DescribeProjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Generates customized software development kit (SDK) and or tool packages
* used to integrate mobile web or mobile app clients with backend AWS resources.
*
See Also:
AWS
* API Reference
*/
virtual Model::ExportBundleOutcome ExportBundle(const Model::ExportBundleRequest& request) const;
/**
* Generates customized software development kit (SDK) and or tool packages
* used to integrate mobile web or mobile app clients with backend AWS resources.
*
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::ExportBundleOutcomeCallable ExportBundleCallable(const Model::ExportBundleRequest& request) const;
/**
* Generates customized software development kit (SDK) and or tool packages
* used to integrate mobile web or mobile app clients with backend AWS resources.
*
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void ExportBundleAsync(const Model::ExportBundleRequest& request, const ExportBundleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Exports project configuration to a snapshot which can be downloaded and
* shared. Note that mobile app push credentials are encrypted in exported
* projects, so they can only be shared successfully within the same AWS account.
*
See Also:
AWS
* API Reference
*/
virtual Model::ExportProjectOutcome ExportProject(const Model::ExportProjectRequest& request) const;
/**
* Exports project configuration to a snapshot which can be downloaded and
* shared. Note that mobile app push credentials are encrypted in exported
* projects, so they can only be shared successfully within the same AWS account.
*
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::ExportProjectOutcomeCallable ExportProjectCallable(const Model::ExportProjectRequest& request) const;
/**
* Exports project configuration to a snapshot which can be downloaded and
* shared. Note that mobile app push credentials are encrypted in exported
* projects, so they can only be shared successfully within the same AWS account.
*
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void ExportProjectAsync(const Model::ExportProjectRequest& request, const ExportProjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* List all available bundles.
See Also:
AWS
* API Reference
*/
virtual Model::ListBundlesOutcome ListBundles(const Model::ListBundlesRequest& request) const;
/**
* List all available bundles.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::ListBundlesOutcomeCallable ListBundlesCallable(const Model::ListBundlesRequest& request) const;
/**
* List all available bundles.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void ListBundlesAsync(const Model::ListBundlesRequest& request, const ListBundlesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Lists projects in AWS Mobile Hub.
See Also:
AWS
* API Reference
*/
virtual Model::ListProjectsOutcome ListProjects(const Model::ListProjectsRequest& request) const;
/**
* Lists projects in AWS Mobile Hub.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::ListProjectsOutcomeCallable ListProjectsCallable(const Model::ListProjectsRequest& request) const;
/**
* Lists projects in AWS Mobile Hub.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void ListProjectsAsync(const Model::ListProjectsRequest& request, const ListProjectsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Update an existing project.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateProjectOutcome UpdateProject(const Model::UpdateProjectRequest& request) const;
/**
* Update an existing project.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::UpdateProjectOutcomeCallable UpdateProjectCallable(const Model::UpdateProjectRequest& request) const;
/**
* Update an existing project.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void UpdateProjectAsync(const Model::UpdateProjectRequest& request, const UpdateProjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
void OverrideEndpoint(const Aws::String& endpoint);
private:
void init(const Aws::Client::ClientConfiguration& clientConfiguration);
void CreateProjectAsyncHelper(const Model::CreateProjectRequest& request, const CreateProjectResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeleteProjectAsyncHelper(const Model::DeleteProjectRequest& request, const DeleteProjectResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DescribeBundleAsyncHelper(const Model::DescribeBundleRequest& request, const DescribeBundleResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DescribeProjectAsyncHelper(const Model::DescribeProjectRequest& request, const DescribeProjectResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void ExportBundleAsyncHelper(const Model::ExportBundleRequest& request, const ExportBundleResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void ExportProjectAsyncHelper(const Model::ExportProjectRequest& request, const ExportProjectResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void ListBundlesAsyncHelper(const Model::ListBundlesRequest& request, const ListBundlesResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void ListProjectsAsyncHelper(const Model::ListProjectsRequest& request, const ListProjectsResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void UpdateProjectAsyncHelper(const Model::UpdateProjectRequest& request, const UpdateProjectResponseReceivedHandler& handler, const std::shared_ptr& context) const;
Aws::String m_uri;
Aws::String m_configScheme;
std::shared_ptr m_executor;
};
} // namespace Mobile
} // namespace Aws