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

The AWS IoT 1-Click Projects API Reference

*/ class AWS_IOT1CLICKPROJECTS_API IoT1ClickProjectsClient : 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 IoT1ClickProjectsClientConfiguration ClientConfigurationType; typedef IoT1ClickProjectsEndpointProvider 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. */ IoT1ClickProjectsClient(const Aws::IoT1ClickProjects::IoT1ClickProjectsClientConfiguration& clientConfiguration = Aws::IoT1ClickProjects::IoT1ClickProjectsClientConfiguration(), 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. */ IoT1ClickProjectsClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::IoT1ClickProjects::IoT1ClickProjectsClientConfiguration& clientConfiguration = Aws::IoT1ClickProjects::IoT1ClickProjectsClientConfiguration()); /** * 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 */ IoT1ClickProjectsClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::IoT1ClickProjects::IoT1ClickProjectsClientConfiguration& clientConfiguration = Aws::IoT1ClickProjects::IoT1ClickProjectsClientConfiguration()); /* 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. */ IoT1ClickProjectsClient(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. */ IoT1ClickProjectsClient(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 */ IoT1ClickProjectsClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~IoT1ClickProjectsClient(); /** *

Associates a physical device with a placement.

See Also:

AWS * API Reference

*/ virtual Model::AssociateDeviceWithPlacementOutcome AssociateDeviceWithPlacement(const Model::AssociateDeviceWithPlacementRequest& request) const; /** * A Callable wrapper for AssociateDeviceWithPlacement that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AssociateDeviceWithPlacementOutcomeCallable AssociateDeviceWithPlacementCallable(const AssociateDeviceWithPlacementRequestT& request) const { return SubmitCallable(&IoT1ClickProjectsClient::AssociateDeviceWithPlacement, request); } /** * An Async wrapper for AssociateDeviceWithPlacement that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AssociateDeviceWithPlacementAsync(const AssociateDeviceWithPlacementRequestT& request, const AssociateDeviceWithPlacementResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickProjectsClient::AssociateDeviceWithPlacement, request, handler, context); } /** *

Creates an empty placement.

See Also:

AWS * API Reference

*/ virtual Model::CreatePlacementOutcome CreatePlacement(const Model::CreatePlacementRequest& request) const; /** * A Callable wrapper for CreatePlacement that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreatePlacementOutcomeCallable CreatePlacementCallable(const CreatePlacementRequestT& request) const { return SubmitCallable(&IoT1ClickProjectsClient::CreatePlacement, request); } /** * An Async wrapper for CreatePlacement that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreatePlacementAsync(const CreatePlacementRequestT& request, const CreatePlacementResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickProjectsClient::CreatePlacement, request, handler, context); } /** *

Creates an empty project with a placement template. A project contains zero * or more placements that adhere to the placement template defined in the * project.

See Also:

AWS * API Reference

*/ virtual Model::CreateProjectOutcome CreateProject(const Model::CreateProjectRequest& request) const; /** * A Callable wrapper for CreateProject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateProjectOutcomeCallable CreateProjectCallable(const CreateProjectRequestT& request) const { return SubmitCallable(&IoT1ClickProjectsClient::CreateProject, request); } /** * An Async wrapper for CreateProject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateProjectAsync(const CreateProjectRequestT& request, const CreateProjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickProjectsClient::CreateProject, request, handler, context); } /** *

Deletes a placement. To delete a placement, it must not have any devices * associated with it.

When you delete a placement, all associated * data becomes irretrievable.

See Also:

AWS * API Reference

*/ virtual Model::DeletePlacementOutcome DeletePlacement(const Model::DeletePlacementRequest& request) const; /** * A Callable wrapper for DeletePlacement that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeletePlacementOutcomeCallable DeletePlacementCallable(const DeletePlacementRequestT& request) const { return SubmitCallable(&IoT1ClickProjectsClient::DeletePlacement, request); } /** * An Async wrapper for DeletePlacement that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeletePlacementAsync(const DeletePlacementRequestT& request, const DeletePlacementResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickProjectsClient::DeletePlacement, request, handler, context); } /** *

Deletes a project. To delete a project, it must not have any placements * associated with it.

When you delete a project, all associated data * becomes irretrievable.

See Also:

AWS * API Reference

*/ virtual Model::DeleteProjectOutcome DeleteProject(const Model::DeleteProjectRequest& request) const; /** * A Callable wrapper for DeleteProject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteProjectOutcomeCallable DeleteProjectCallable(const DeleteProjectRequestT& request) const { return SubmitCallable(&IoT1ClickProjectsClient::DeleteProject, request); } /** * An Async wrapper for DeleteProject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteProjectAsync(const DeleteProjectRequestT& request, const DeleteProjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickProjectsClient::DeleteProject, request, handler, context); } /** *

Describes a placement in a project.

See Also:

AWS * API Reference

*/ virtual Model::DescribePlacementOutcome DescribePlacement(const Model::DescribePlacementRequest& request) const; /** * A Callable wrapper for DescribePlacement that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribePlacementOutcomeCallable DescribePlacementCallable(const DescribePlacementRequestT& request) const { return SubmitCallable(&IoT1ClickProjectsClient::DescribePlacement, request); } /** * An Async wrapper for DescribePlacement that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribePlacementAsync(const DescribePlacementRequestT& request, const DescribePlacementResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickProjectsClient::DescribePlacement, request, handler, context); } /** *

Returns an object describing a project.

See Also:

AWS * API Reference

*/ virtual Model::DescribeProjectOutcome DescribeProject(const Model::DescribeProjectRequest& request) const; /** * A Callable wrapper for DescribeProject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeProjectOutcomeCallable DescribeProjectCallable(const DescribeProjectRequestT& request) const { return SubmitCallable(&IoT1ClickProjectsClient::DescribeProject, request); } /** * An Async wrapper for DescribeProject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeProjectAsync(const DescribeProjectRequestT& request, const DescribeProjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickProjectsClient::DescribeProject, request, handler, context); } /** *

Removes a physical device from a placement.

See Also:

AWS * API Reference

*/ virtual Model::DisassociateDeviceFromPlacementOutcome DisassociateDeviceFromPlacement(const Model::DisassociateDeviceFromPlacementRequest& request) const; /** * A Callable wrapper for DisassociateDeviceFromPlacement that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DisassociateDeviceFromPlacementOutcomeCallable DisassociateDeviceFromPlacementCallable(const DisassociateDeviceFromPlacementRequestT& request) const { return SubmitCallable(&IoT1ClickProjectsClient::DisassociateDeviceFromPlacement, request); } /** * An Async wrapper for DisassociateDeviceFromPlacement that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DisassociateDeviceFromPlacementAsync(const DisassociateDeviceFromPlacementRequestT& request, const DisassociateDeviceFromPlacementResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickProjectsClient::DisassociateDeviceFromPlacement, request, handler, context); } /** *

Returns an object enumerating the devices in a placement.

See * Also:

AWS * API Reference

*/ virtual Model::GetDevicesInPlacementOutcome GetDevicesInPlacement(const Model::GetDevicesInPlacementRequest& request) const; /** * A Callable wrapper for GetDevicesInPlacement that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetDevicesInPlacementOutcomeCallable GetDevicesInPlacementCallable(const GetDevicesInPlacementRequestT& request) const { return SubmitCallable(&IoT1ClickProjectsClient::GetDevicesInPlacement, request); } /** * An Async wrapper for GetDevicesInPlacement that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetDevicesInPlacementAsync(const GetDevicesInPlacementRequestT& request, const GetDevicesInPlacementResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickProjectsClient::GetDevicesInPlacement, request, handler, context); } /** *

Lists the placement(s) of a project.

See Also:

AWS * API Reference

*/ virtual Model::ListPlacementsOutcome ListPlacements(const Model::ListPlacementsRequest& request) const; /** * A Callable wrapper for ListPlacements that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListPlacementsOutcomeCallable ListPlacementsCallable(const ListPlacementsRequestT& request) const { return SubmitCallable(&IoT1ClickProjectsClient::ListPlacements, request); } /** * An Async wrapper for ListPlacements that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListPlacementsAsync(const ListPlacementsRequestT& request, const ListPlacementsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickProjectsClient::ListPlacements, request, handler, context); } /** *

Lists the AWS IoT 1-Click project(s) associated with your AWS account and * region.

See Also:

AWS * API Reference

*/ virtual Model::ListProjectsOutcome ListProjects(const Model::ListProjectsRequest& request) const; /** * A Callable wrapper for ListProjects that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListProjectsOutcomeCallable ListProjectsCallable(const ListProjectsRequestT& request) const { return SubmitCallable(&IoT1ClickProjectsClient::ListProjects, request); } /** * An Async wrapper for ListProjects that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListProjectsAsync(const ListProjectsRequestT& request, const ListProjectsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickProjectsClient::ListProjects, request, handler, context); } /** *

Lists the tags (metadata key/value pairs) which you have assigned to the * 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(&IoT1ClickProjectsClient::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(&IoT1ClickProjectsClient::ListTagsForResource, request, handler, context); } /** *

Creates or modifies tags for a resource. Tags are key/value pairs (metadata) * that can be used to manage a resource. For more information, see AWS * Tagging Strategies.

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(&IoT1ClickProjectsClient::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(&IoT1ClickProjectsClient::TagResource, request, handler, context); } /** *

Removes one or more tags (metadata key/value pairs) from a * resource.

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(&IoT1ClickProjectsClient::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(&IoT1ClickProjectsClient::UntagResource, request, handler, context); } /** *

Updates a placement with the given attributes. To clear an attribute, pass an * empty value (i.e., "").

See Also:

AWS * API Reference

*/ virtual Model::UpdatePlacementOutcome UpdatePlacement(const Model::UpdatePlacementRequest& request) const; /** * A Callable wrapper for UpdatePlacement that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdatePlacementOutcomeCallable UpdatePlacementCallable(const UpdatePlacementRequestT& request) const { return SubmitCallable(&IoT1ClickProjectsClient::UpdatePlacement, request); } /** * An Async wrapper for UpdatePlacement that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdatePlacementAsync(const UpdatePlacementRequestT& request, const UpdatePlacementResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickProjectsClient::UpdatePlacement, request, handler, context); } /** *

Updates a project associated with your AWS account and region. With the * exception of device template names, you can pass just the values that need to be * updated because the update request will change only the values that are * provided. To clear a value, pass the empty string (i.e., * "").

See Also:

AWS * API Reference

*/ virtual Model::UpdateProjectOutcome UpdateProject(const Model::UpdateProjectRequest& request) const; /** * A Callable wrapper for UpdateProject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateProjectOutcomeCallable UpdateProjectCallable(const UpdateProjectRequestT& request) const { return SubmitCallable(&IoT1ClickProjectsClient::UpdateProject, request); } /** * An Async wrapper for UpdateProject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateProjectAsync(const UpdateProjectRequestT& request, const UpdateProjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickProjectsClient::UpdateProject, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const IoT1ClickProjectsClientConfiguration& clientConfiguration); IoT1ClickProjectsClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace IoT1ClickProjects } // namespace Aws