/**
* 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 IoTFleetHub
{
/**
* With Fleet Hub for AWS IoT Device Management you can build stand-alone web
* applications for monitoring the health of your device fleets.
* Fleet Hub for AWS IoT Device Management is in public preview and is subject
* to change.
*/
class AWS_IOTFLEETHUB_API IoTFleetHubClient : 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 IoTFleetHubClientConfiguration ClientConfigurationType;
typedef IoTFleetHubEndpointProvider 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.
*/
IoTFleetHubClient(const Aws::IoTFleetHub::IoTFleetHubClientConfiguration& clientConfiguration = Aws::IoTFleetHub::IoTFleetHubClientConfiguration(),
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.
*/
IoTFleetHubClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::IoTFleetHub::IoTFleetHubClientConfiguration& clientConfiguration = Aws::IoTFleetHub::IoTFleetHubClientConfiguration());
/**
* 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
*/
IoTFleetHubClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::IoTFleetHub::IoTFleetHubClientConfiguration& clientConfiguration = Aws::IoTFleetHub::IoTFleetHubClientConfiguration());
/* 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.
*/
IoTFleetHubClient(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.
*/
IoTFleetHubClient(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
*/
IoTFleetHubClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~IoTFleetHubClient();
/**
* Creates a Fleet Hub for AWS IoT Device Management web application.
* Fleet Hub for AWS IoT Device Management is in public preview and is subject
* to change.
See Also:
AWS
* API Reference
*/
virtual Model::CreateApplicationOutcome CreateApplication(const Model::CreateApplicationRequest& request) const;
/**
* A Callable wrapper for CreateApplication that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateApplicationOutcomeCallable CreateApplicationCallable(const CreateApplicationRequestT& request) const
{
return SubmitCallable(&IoTFleetHubClient::CreateApplication, request);
}
/**
* An Async wrapper for CreateApplication that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateApplicationAsync(const CreateApplicationRequestT& request, const CreateApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTFleetHubClient::CreateApplication, request, handler, context);
}
/**
* Deletes a Fleet Hub for AWS IoT Device Management web application.
* Fleet Hub for AWS IoT Device Management is in public preview and is subject
* to change.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteApplicationOutcome DeleteApplication(const Model::DeleteApplicationRequest& request) const;
/**
* A Callable wrapper for DeleteApplication that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteApplicationOutcomeCallable DeleteApplicationCallable(const DeleteApplicationRequestT& request) const
{
return SubmitCallable(&IoTFleetHubClient::DeleteApplication, request);
}
/**
* An Async wrapper for DeleteApplication that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteApplicationAsync(const DeleteApplicationRequestT& request, const DeleteApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTFleetHubClient::DeleteApplication, request, handler, context);
}
/**
* Gets information about a Fleet Hub for AWS IoT Device Management web
* application.
Fleet Hub for AWS IoT Device Management is in public
* preview and is subject to change.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeApplicationOutcome DescribeApplication(const Model::DescribeApplicationRequest& request) const;
/**
* A Callable wrapper for DescribeApplication that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeApplicationOutcomeCallable DescribeApplicationCallable(const DescribeApplicationRequestT& request) const
{
return SubmitCallable(&IoTFleetHubClient::DescribeApplication, request);
}
/**
* An Async wrapper for DescribeApplication that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeApplicationAsync(const DescribeApplicationRequestT& request, const DescribeApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTFleetHubClient::DescribeApplication, request, handler, context);
}
/**
* Gets a list of Fleet Hub for AWS IoT Device Management web applications for
* the current account.
Fleet Hub for AWS IoT Device Management is in
* public preview and is subject to change.
See Also:
AWS
* API Reference
*/
virtual Model::ListApplicationsOutcome ListApplications(const Model::ListApplicationsRequest& request) const;
/**
* A Callable wrapper for ListApplications that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListApplicationsOutcomeCallable ListApplicationsCallable(const ListApplicationsRequestT& request) const
{
return SubmitCallable(&IoTFleetHubClient::ListApplications, request);
}
/**
* An Async wrapper for ListApplications that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListApplicationsAsync(const ListApplicationsRequestT& request, const ListApplicationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTFleetHubClient::ListApplications, request, handler, context);
}
/**
* Lists the tags for the specified resource.
Fleet Hub for AWS
* IoT Device Management is in public preview and is subject to change.
* 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(&IoTFleetHubClient::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(&IoTFleetHubClient::ListTagsForResource, request, handler, context);
}
/**
* Adds to or modifies the tags of the specified resource. Tags are metadata
* which can be used to manage a resource.
Fleet Hub for AWS IoT
* Device Management is in public preview and is subject to change.
* 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(&IoTFleetHubClient::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(&IoTFleetHubClient::TagResource, request, handler, context);
}
/**
* Removes the specified tags (metadata) from the resource.
Fleet
* Hub for AWS IoT Device Management is in public preview and is subject to
* change.
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(&IoTFleetHubClient::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(&IoTFleetHubClient::UntagResource, request, handler, context);
}
/**
* Updates information about a Fleet Hub for a AWS IoT Device Management web
* application.
Fleet Hub for AWS IoT Device Management is in public
* preview and is subject to change.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateApplicationOutcome UpdateApplication(const Model::UpdateApplicationRequest& request) const;
/**
* A Callable wrapper for UpdateApplication that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateApplicationOutcomeCallable UpdateApplicationCallable(const UpdateApplicationRequestT& request) const
{
return SubmitCallable(&IoTFleetHubClient::UpdateApplication, request);
}
/**
* An Async wrapper for UpdateApplication that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateApplicationAsync(const UpdateApplicationRequestT& request, const UpdateApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTFleetHubClient::UpdateApplication, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const IoTFleetHubClientConfiguration& clientConfiguration);
IoTFleetHubClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace IoTFleetHub
} // namespace Aws