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

Describes all of the AWS IoT 1-Click device-related API operations for the * service. Also provides sample requests, responses, and errors for the supported * web services protocols.

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

Adds device(s) to your account (i.e., claim one or more devices) if and only * if you received a claim code with the device(s).

See Also:

AWS * API Reference

*/ virtual Model::ClaimDevicesByClaimCodeOutcome ClaimDevicesByClaimCode(const Model::ClaimDevicesByClaimCodeRequest& request) const; /** * A Callable wrapper for ClaimDevicesByClaimCode that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ClaimDevicesByClaimCodeOutcomeCallable ClaimDevicesByClaimCodeCallable(const ClaimDevicesByClaimCodeRequestT& request) const { return SubmitCallable(&IoT1ClickDevicesServiceClient::ClaimDevicesByClaimCode, request); } /** * An Async wrapper for ClaimDevicesByClaimCode that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ClaimDevicesByClaimCodeAsync(const ClaimDevicesByClaimCodeRequestT& request, const ClaimDevicesByClaimCodeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickDevicesServiceClient::ClaimDevicesByClaimCode, request, handler, context); } /** *

Given a device ID, returns a DescribeDeviceResponse object describing the * details of the device.

See Also:

AWS * API Reference

*/ virtual Model::DescribeDeviceOutcome DescribeDevice(const Model::DescribeDeviceRequest& request) const; /** * A Callable wrapper for DescribeDevice that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeDeviceOutcomeCallable DescribeDeviceCallable(const DescribeDeviceRequestT& request) const { return SubmitCallable(&IoT1ClickDevicesServiceClient::DescribeDevice, request); } /** * An Async wrapper for DescribeDevice that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeDeviceAsync(const DescribeDeviceRequestT& request, const DescribeDeviceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickDevicesServiceClient::DescribeDevice, request, handler, context); } /** *

Given a device ID, finalizes the claim request for the associated * device.

Claiming a device consists of initiating a claim, then * publishing a device event, and finalizing the claim. For a device of type * button, a device event can be published by simply clicking the device.

*

See Also:

AWS * API Reference

*/ virtual Model::FinalizeDeviceClaimOutcome FinalizeDeviceClaim(const Model::FinalizeDeviceClaimRequest& request) const; /** * A Callable wrapper for FinalizeDeviceClaim that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::FinalizeDeviceClaimOutcomeCallable FinalizeDeviceClaimCallable(const FinalizeDeviceClaimRequestT& request) const { return SubmitCallable(&IoT1ClickDevicesServiceClient::FinalizeDeviceClaim, request); } /** * An Async wrapper for FinalizeDeviceClaim that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void FinalizeDeviceClaimAsync(const FinalizeDeviceClaimRequestT& request, const FinalizeDeviceClaimResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickDevicesServiceClient::FinalizeDeviceClaim, request, handler, context); } /** *

Given a device ID, returns the invokable methods associated with the * device.

See Also:

AWS * API Reference

*/ virtual Model::GetDeviceMethodsOutcome GetDeviceMethods(const Model::GetDeviceMethodsRequest& request) const; /** * A Callable wrapper for GetDeviceMethods that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetDeviceMethodsOutcomeCallable GetDeviceMethodsCallable(const GetDeviceMethodsRequestT& request) const { return SubmitCallable(&IoT1ClickDevicesServiceClient::GetDeviceMethods, request); } /** * An Async wrapper for GetDeviceMethods that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetDeviceMethodsAsync(const GetDeviceMethodsRequestT& request, const GetDeviceMethodsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickDevicesServiceClient::GetDeviceMethods, request, handler, context); } /** *

Given a device ID, initiates a claim request for the associated * device.

Claiming a device consists of initiating a claim, then * publishing a device event, and finalizing the claim. For a device of type * button, a device event can be published by simply clicking the device.

*

See Also:

AWS * API Reference

*/ virtual Model::InitiateDeviceClaimOutcome InitiateDeviceClaim(const Model::InitiateDeviceClaimRequest& request) const; /** * A Callable wrapper for InitiateDeviceClaim that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::InitiateDeviceClaimOutcomeCallable InitiateDeviceClaimCallable(const InitiateDeviceClaimRequestT& request) const { return SubmitCallable(&IoT1ClickDevicesServiceClient::InitiateDeviceClaim, request); } /** * An Async wrapper for InitiateDeviceClaim that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void InitiateDeviceClaimAsync(const InitiateDeviceClaimRequestT& request, const InitiateDeviceClaimResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickDevicesServiceClient::InitiateDeviceClaim, request, handler, context); } /** *

Given a device ID, issues a request to invoke a named device method (with * possible parameters). See the "Example POST" code snippet below.

See * Also:

AWS * API Reference

*/ virtual Model::InvokeDeviceMethodOutcome InvokeDeviceMethod(const Model::InvokeDeviceMethodRequest& request) const; /** * A Callable wrapper for InvokeDeviceMethod that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::InvokeDeviceMethodOutcomeCallable InvokeDeviceMethodCallable(const InvokeDeviceMethodRequestT& request) const { return SubmitCallable(&IoT1ClickDevicesServiceClient::InvokeDeviceMethod, request); } /** * An Async wrapper for InvokeDeviceMethod that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void InvokeDeviceMethodAsync(const InvokeDeviceMethodRequestT& request, const InvokeDeviceMethodResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickDevicesServiceClient::InvokeDeviceMethod, request, handler, context); } /** *

Using a device ID, returns a DeviceEventsResponse object containing an array * of events for the device.

See Also:

AWS * API Reference

*/ virtual Model::ListDeviceEventsOutcome ListDeviceEvents(const Model::ListDeviceEventsRequest& request) const; /** * A Callable wrapper for ListDeviceEvents that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListDeviceEventsOutcomeCallable ListDeviceEventsCallable(const ListDeviceEventsRequestT& request) const { return SubmitCallable(&IoT1ClickDevicesServiceClient::ListDeviceEvents, request); } /** * An Async wrapper for ListDeviceEvents that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListDeviceEventsAsync(const ListDeviceEventsRequestT& request, const ListDeviceEventsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickDevicesServiceClient::ListDeviceEvents, request, handler, context); } /** *

Lists the 1-Click compatible devices associated with your AWS * account.

See Also:

AWS * API Reference

*/ virtual Model::ListDevicesOutcome ListDevices(const Model::ListDevicesRequest& request) const; /** * A Callable wrapper for ListDevices that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListDevicesOutcomeCallable ListDevicesCallable(const ListDevicesRequestT& request) const { return SubmitCallable(&IoT1ClickDevicesServiceClient::ListDevices, request); } /** * An Async wrapper for ListDevices that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListDevicesAsync(const ListDevicesRequestT& request, const ListDevicesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickDevicesServiceClient::ListDevices, request, handler, context); } /** *

Lists the tags associated with the specified resource ARN.

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

Adds or updates the tags associated with the resource ARN. See AWS * IoT 1-Click Service Limits for the maximum number of tags allowed per * resource.

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

Disassociates a device from your AWS account using its device * ID.

See Also:

AWS * API Reference

*/ virtual Model::UnclaimDeviceOutcome UnclaimDevice(const Model::UnclaimDeviceRequest& request) const; /** * A Callable wrapper for UnclaimDevice that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UnclaimDeviceOutcomeCallable UnclaimDeviceCallable(const UnclaimDeviceRequestT& request) const { return SubmitCallable(&IoT1ClickDevicesServiceClient::UnclaimDevice, request); } /** * An Async wrapper for UnclaimDevice that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UnclaimDeviceAsync(const UnclaimDeviceRequestT& request, const UnclaimDeviceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickDevicesServiceClient::UnclaimDevice, request, handler, context); } /** *

Using tag keys, deletes the tags (key/value pairs) associated with the * specified resource ARN.

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

Using a Boolean value (true or false), this operation enables or disables * the device given a device ID.

See Also:

AWS * API Reference

*/ virtual Model::UpdateDeviceStateOutcome UpdateDeviceState(const Model::UpdateDeviceStateRequest& request) const; /** * A Callable wrapper for UpdateDeviceState that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateDeviceStateOutcomeCallable UpdateDeviceStateCallable(const UpdateDeviceStateRequestT& request) const { return SubmitCallable(&IoT1ClickDevicesServiceClient::UpdateDeviceState, request); } /** * An Async wrapper for UpdateDeviceState that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateDeviceStateAsync(const UpdateDeviceStateRequestT& request, const UpdateDeviceStateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&IoT1ClickDevicesServiceClient::UpdateDeviceState, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const IoT1ClickDevicesServiceClientConfiguration& clientConfiguration); IoT1ClickDevicesServiceClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace IoT1ClickDevicesService } // namespace Aws