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