/** * 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 #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 IoTEvents { namespace Model { class CreateDetectorModelRequest; class CreateInputRequest; class DeleteDetectorModelRequest; class DeleteInputRequest; class DescribeDetectorModelRequest; class DescribeInputRequest; class DescribeLoggingOptionsRequest; class ListDetectorModelVersionsRequest; class ListDetectorModelsRequest; class ListInputsRequest; class ListTagsForResourceRequest; class PutLoggingOptionsRequest; class TagResourceRequest; class UntagResourceRequest; class UpdateDetectorModelRequest; class UpdateInputRequest; typedef Aws::Utils::Outcome CreateDetectorModelOutcome; typedef Aws::Utils::Outcome CreateInputOutcome; typedef Aws::Utils::Outcome DeleteDetectorModelOutcome; typedef Aws::Utils::Outcome DeleteInputOutcome; typedef Aws::Utils::Outcome DescribeDetectorModelOutcome; typedef Aws::Utils::Outcome DescribeInputOutcome; typedef Aws::Utils::Outcome DescribeLoggingOptionsOutcome; typedef Aws::Utils::Outcome ListDetectorModelVersionsOutcome; typedef Aws::Utils::Outcome ListDetectorModelsOutcome; typedef Aws::Utils::Outcome ListInputsOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome PutLoggingOptionsOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef Aws::Utils::Outcome UpdateDetectorModelOutcome; typedef Aws::Utils::Outcome UpdateInputOutcome; typedef std::future CreateDetectorModelOutcomeCallable; typedef std::future CreateInputOutcomeCallable; typedef std::future DeleteDetectorModelOutcomeCallable; typedef std::future DeleteInputOutcomeCallable; typedef std::future DescribeDetectorModelOutcomeCallable; typedef std::future DescribeInputOutcomeCallable; typedef std::future DescribeLoggingOptionsOutcomeCallable; typedef std::future ListDetectorModelVersionsOutcomeCallable; typedef std::future ListDetectorModelsOutcomeCallable; typedef std::future ListInputsOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future PutLoggingOptionsOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; typedef std::future UpdateDetectorModelOutcomeCallable; typedef std::future UpdateInputOutcomeCallable; } // namespace Model class IoTEventsClient; typedef std::function&) > CreateDetectorModelResponseReceivedHandler; typedef std::function&) > CreateInputResponseReceivedHandler; typedef std::function&) > DeleteDetectorModelResponseReceivedHandler; typedef std::function&) > DeleteInputResponseReceivedHandler; typedef std::function&) > DescribeDetectorModelResponseReceivedHandler; typedef std::function&) > DescribeInputResponseReceivedHandler; typedef std::function&) > DescribeLoggingOptionsResponseReceivedHandler; typedef std::function&) > ListDetectorModelVersionsResponseReceivedHandler; typedef std::function&) > ListDetectorModelsResponseReceivedHandler; typedef std::function&) > ListInputsResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > PutLoggingOptionsResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; typedef std::function&) > UpdateDetectorModelResponseReceivedHandler; typedef std::function&) > UpdateInputResponseReceivedHandler; /** *

AWS IoT Events monitors your equipment or device fleets for failures or * changes in operation, and triggers actions when such events occur. You can use * AWS IoT Events API operations to create, read, update, and delete inputs and * detector models, and to list their versions.

*/ class AWS_IOTEVENTS_API IoTEventsClient : 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. */ IoTEventsClient(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. */ IoTEventsClient(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 */ IoTEventsClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~IoTEventsClient(); /** *

Creates a detector model.

See Also:

AWS * API Reference

*/ virtual Model::CreateDetectorModelOutcome CreateDetectorModel(const Model::CreateDetectorModelRequest& request) const; /** *

Creates a detector model.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateDetectorModelOutcomeCallable CreateDetectorModelCallable(const Model::CreateDetectorModelRequest& request) const; /** *

Creates a detector model.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateDetectorModelAsync(const Model::CreateDetectorModelRequest& request, const CreateDetectorModelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates an input.

See Also:

AWS * API Reference

*/ virtual Model::CreateInputOutcome CreateInput(const Model::CreateInputRequest& request) const; /** *

Creates an input.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateInputOutcomeCallable CreateInputCallable(const Model::CreateInputRequest& request) const; /** *

Creates an input.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateInputAsync(const Model::CreateInputRequest& request, const CreateInputResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes a detector model. Any active instances of the detector model are also * deleted.

See Also:

AWS * API Reference

*/ virtual Model::DeleteDetectorModelOutcome DeleteDetectorModel(const Model::DeleteDetectorModelRequest& request) const; /** *

Deletes a detector model. Any active instances of the detector model are also * deleted.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteDetectorModelOutcomeCallable DeleteDetectorModelCallable(const Model::DeleteDetectorModelRequest& request) const; /** *

Deletes a detector model. Any active instances of the detector model are also * deleted.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteDetectorModelAsync(const Model::DeleteDetectorModelRequest& request, const DeleteDetectorModelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes an input.

See Also:

AWS * API Reference

*/ virtual Model::DeleteInputOutcome DeleteInput(const Model::DeleteInputRequest& request) const; /** *

Deletes an input.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteInputOutcomeCallable DeleteInputCallable(const Model::DeleteInputRequest& request) const; /** *

Deletes an input.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteInputAsync(const Model::DeleteInputRequest& request, const DeleteInputResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes a detector model. If the version parameter is not * specified, information about the latest version is returned.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeDetectorModelOutcome DescribeDetectorModel(const Model::DescribeDetectorModelRequest& request) const; /** *

Describes a detector model. If the version parameter is not * specified, information about the latest version is returned.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeDetectorModelOutcomeCallable DescribeDetectorModelCallable(const Model::DescribeDetectorModelRequest& request) const; /** *

Describes a detector model. If the version parameter is not * specified, information about the latest version is returned.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeDetectorModelAsync(const Model::DescribeDetectorModelRequest& request, const DescribeDetectorModelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes an input.

See Also:

AWS * API Reference

*/ virtual Model::DescribeInputOutcome DescribeInput(const Model::DescribeInputRequest& request) const; /** *

Describes an input.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeInputOutcomeCallable DescribeInputCallable(const Model::DescribeInputRequest& request) const; /** *

Describes an input.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeInputAsync(const Model::DescribeInputRequest& request, const DescribeInputResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the current settings of the AWS IoT Events logging * options.

See Also:

AWS * API Reference

*/ virtual Model::DescribeLoggingOptionsOutcome DescribeLoggingOptions(const Model::DescribeLoggingOptionsRequest& request) const; /** *

Retrieves the current settings of the AWS IoT Events logging * options.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeLoggingOptionsOutcomeCallable DescribeLoggingOptionsCallable(const Model::DescribeLoggingOptionsRequest& request) const; /** *

Retrieves the current settings of the AWS IoT Events logging * options.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeLoggingOptionsAsync(const Model::DescribeLoggingOptionsRequest& request, const DescribeLoggingOptionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists all the versions of a detector model. Only the metadata associated with * each detector model version is returned.

See Also:

AWS * API Reference

*/ virtual Model::ListDetectorModelVersionsOutcome ListDetectorModelVersions(const Model::ListDetectorModelVersionsRequest& request) const; /** *

Lists all the versions of a detector model. Only the metadata associated with * each detector model version is returned.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListDetectorModelVersionsOutcomeCallable ListDetectorModelVersionsCallable(const Model::ListDetectorModelVersionsRequest& request) const; /** *

Lists all the versions of a detector model. Only the metadata associated with * each detector model version is returned.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListDetectorModelVersionsAsync(const Model::ListDetectorModelVersionsRequest& request, const ListDetectorModelVersionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the detector models you have created. Only the metadata associated with * each detector model is returned.

See Also:

AWS * API Reference

*/ virtual Model::ListDetectorModelsOutcome ListDetectorModels(const Model::ListDetectorModelsRequest& request) const; /** *

Lists the detector models you have created. Only the metadata associated with * each detector model is returned.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListDetectorModelsOutcomeCallable ListDetectorModelsCallable(const Model::ListDetectorModelsRequest& request) const; /** *

Lists the detector models you have created. Only the metadata associated with * each detector model is returned.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListDetectorModelsAsync(const Model::ListDetectorModelsRequest& request, const ListDetectorModelsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the inputs you have created.

See Also:

AWS * API Reference

*/ virtual Model::ListInputsOutcome ListInputs(const Model::ListInputsRequest& request) const; /** *

Lists the inputs you have created.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListInputsOutcomeCallable ListInputsCallable(const Model::ListInputsRequest& request) const; /** *

Lists the inputs you have created.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListInputsAsync(const Model::ListInputsRequest& request, const ListInputsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the tags (metadata) you have assigned to the resource.

See * Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** *

Lists the tags (metadata) you have assigned to the resource.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const; /** *

Lists the tags (metadata) you have assigned to the resource.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Sets or updates the AWS IoT Events logging options.

If you update the * value of any loggingOptions field, it takes up to one minute for * the change to take effect. If you change the policy attached to the role you * specified in the roleArn field (for example, to correct an invalid * policy), it takes up to five minutes for that change to take * effect.

See Also:

AWS * API Reference

*/ virtual Model::PutLoggingOptionsOutcome PutLoggingOptions(const Model::PutLoggingOptionsRequest& request) const; /** *

Sets or updates the AWS IoT Events logging options.

If you update the * value of any loggingOptions field, it takes up to one minute for * the change to take effect. If you change the policy attached to the role you * specified in the roleArn field (for example, to correct an invalid * policy), it takes up to five minutes for that change to take * effect.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutLoggingOptionsOutcomeCallable PutLoggingOptionsCallable(const Model::PutLoggingOptionsRequest& request) const; /** *

Sets or updates the AWS IoT Events logging options.

If you update the * value of any loggingOptions field, it takes up to one minute for * the change to take effect. If you change the policy attached to the role you * specified in the roleArn field (for example, to correct an invalid * policy), it takes up to five minutes for that change to take * effect.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutLoggingOptionsAsync(const Model::PutLoggingOptionsRequest& request, const PutLoggingOptionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds to or modifies the tags of the given resource. Tags are metadata that * can be used to manage a resource.

See Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** *

Adds to or modifies the tags of the given resource. Tags are metadata that * can be used to manage a resource.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const; /** *

Adds to or modifies the tags of the given resource. Tags are metadata that * can be used to manage a resource.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes the given tags (metadata) from the resource.

See Also:

* AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** *

Removes the given tags (metadata) from the resource.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const; /** *

Removes the given tags (metadata) from the resource.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates a detector model. Detectors (instances) spawned by the previous * version are deleted and then re-created as new inputs arrive.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateDetectorModelOutcome UpdateDetectorModel(const Model::UpdateDetectorModelRequest& request) const; /** *

Updates a detector model. Detectors (instances) spawned by the previous * version are deleted and then re-created as new inputs arrive.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateDetectorModelOutcomeCallable UpdateDetectorModelCallable(const Model::UpdateDetectorModelRequest& request) const; /** *

Updates a detector model. Detectors (instances) spawned by the previous * version are deleted and then re-created as new inputs arrive.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateDetectorModelAsync(const Model::UpdateDetectorModelRequest& request, const UpdateDetectorModelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates an input.

See Also:

AWS * API Reference

*/ virtual Model::UpdateInputOutcome UpdateInput(const Model::UpdateInputRequest& request) const; /** *

Updates an input.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateInputOutcomeCallable UpdateInputCallable(const Model::UpdateInputRequest& request) const; /** *

Updates an input.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateInputAsync(const Model::UpdateInputRequest& request, const UpdateInputResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void CreateDetectorModelAsyncHelper(const Model::CreateDetectorModelRequest& request, const CreateDetectorModelResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateInputAsyncHelper(const Model::CreateInputRequest& request, const CreateInputResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteDetectorModelAsyncHelper(const Model::DeleteDetectorModelRequest& request, const DeleteDetectorModelResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteInputAsyncHelper(const Model::DeleteInputRequest& request, const DeleteInputResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeDetectorModelAsyncHelper(const Model::DescribeDetectorModelRequest& request, const DescribeDetectorModelResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeInputAsyncHelper(const Model::DescribeInputRequest& request, const DescribeInputResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeLoggingOptionsAsyncHelper(const Model::DescribeLoggingOptionsRequest& request, const DescribeLoggingOptionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListDetectorModelVersionsAsyncHelper(const Model::ListDetectorModelVersionsRequest& request, const ListDetectorModelVersionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListDetectorModelsAsyncHelper(const Model::ListDetectorModelsRequest& request, const ListDetectorModelsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListInputsAsyncHelper(const Model::ListInputsRequest& request, const ListInputsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutLoggingOptionsAsyncHelper(const Model::PutLoggingOptionsRequest& request, const PutLoggingOptionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateDetectorModelAsyncHelper(const Model::UpdateDetectorModelRequest& request, const UpdateDetectorModelResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateInputAsyncHelper(const Model::UpdateInputRequest& request, const UpdateInputResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace IoTEvents } // namespace Aws