/**
* 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 IoTDeviceAdvisor
{
/**
* Amazon Web Services IoT Core Device Advisor is a cloud-based, fully managed
* test capability for validating IoT devices during device software development.
* Device Advisor provides pre-built tests that you can use to validate IoT devices
* for reliable and secure connectivity with Amazon Web Services IoT Core before
* deploying devices to production. By using Device Advisor, you can confirm that
* your devices can connect to Amazon Web Services IoT Core, follow security best
* practices and, if applicable, receive software updates from IoT Device
* Management. You can also download signed qualification reports to submit to the
* Amazon Web Services Partner Network to get your device qualified for the Amazon
* Web Services Partner Device Catalog without the need to send your device in and
* wait for it to be tested.
*/
class AWS_IOTDEVICEADVISOR_API IoTDeviceAdvisorClient : 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 IoTDeviceAdvisorClientConfiguration ClientConfigurationType;
typedef IoTDeviceAdvisorEndpointProvider 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.
*/
IoTDeviceAdvisorClient(const Aws::IoTDeviceAdvisor::IoTDeviceAdvisorClientConfiguration& clientConfiguration = Aws::IoTDeviceAdvisor::IoTDeviceAdvisorClientConfiguration(),
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.
*/
IoTDeviceAdvisorClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::IoTDeviceAdvisor::IoTDeviceAdvisorClientConfiguration& clientConfiguration = Aws::IoTDeviceAdvisor::IoTDeviceAdvisorClientConfiguration());
/**
* 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
*/
IoTDeviceAdvisorClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::IoTDeviceAdvisor::IoTDeviceAdvisorClientConfiguration& clientConfiguration = Aws::IoTDeviceAdvisor::IoTDeviceAdvisorClientConfiguration());
/* 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.
*/
IoTDeviceAdvisorClient(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.
*/
IoTDeviceAdvisorClient(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
*/
IoTDeviceAdvisorClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~IoTDeviceAdvisorClient();
/**
* Creates a Device Advisor test suite.
Requires permission to access the
* CreateSuiteDefinition
* action.
See Also:
AWS
* API Reference
*/
virtual Model::CreateSuiteDefinitionOutcome CreateSuiteDefinition(const Model::CreateSuiteDefinitionRequest& request) const;
/**
* A Callable wrapper for CreateSuiteDefinition that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateSuiteDefinitionOutcomeCallable CreateSuiteDefinitionCallable(const CreateSuiteDefinitionRequestT& request) const
{
return SubmitCallable(&IoTDeviceAdvisorClient::CreateSuiteDefinition, request);
}
/**
* An Async wrapper for CreateSuiteDefinition that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateSuiteDefinitionAsync(const CreateSuiteDefinitionRequestT& request, const CreateSuiteDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTDeviceAdvisorClient::CreateSuiteDefinition, request, handler, context);
}
/**
* Deletes a Device Advisor test suite.
Requires permission to access the
* DeleteSuiteDefinition
* action.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteSuiteDefinitionOutcome DeleteSuiteDefinition(const Model::DeleteSuiteDefinitionRequest& request) const;
/**
* A Callable wrapper for DeleteSuiteDefinition that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteSuiteDefinitionOutcomeCallable DeleteSuiteDefinitionCallable(const DeleteSuiteDefinitionRequestT& request) const
{
return SubmitCallable(&IoTDeviceAdvisorClient::DeleteSuiteDefinition, request);
}
/**
* An Async wrapper for DeleteSuiteDefinition that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteSuiteDefinitionAsync(const DeleteSuiteDefinitionRequestT& request, const DeleteSuiteDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTDeviceAdvisorClient::DeleteSuiteDefinition, request, handler, context);
}
/**
* Gets information about an Device Advisor endpoint.
See Also:
* AWS
* API Reference
*/
virtual Model::GetEndpointOutcome GetEndpoint(const Model::GetEndpointRequest& request) const;
/**
* A Callable wrapper for GetEndpoint that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetEndpointOutcomeCallable GetEndpointCallable(const GetEndpointRequestT& request) const
{
return SubmitCallable(&IoTDeviceAdvisorClient::GetEndpoint, request);
}
/**
* An Async wrapper for GetEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetEndpointAsync(const GetEndpointRequestT& request, const GetEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTDeviceAdvisorClient::GetEndpoint, request, handler, context);
}
/**
* Gets information about a Device Advisor test suite.
Requires
* permission to access the GetSuiteDefinition
* action.
See Also:
AWS
* API Reference
*/
virtual Model::GetSuiteDefinitionOutcome GetSuiteDefinition(const Model::GetSuiteDefinitionRequest& request) const;
/**
* A Callable wrapper for GetSuiteDefinition that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetSuiteDefinitionOutcomeCallable GetSuiteDefinitionCallable(const GetSuiteDefinitionRequestT& request) const
{
return SubmitCallable(&IoTDeviceAdvisorClient::GetSuiteDefinition, request);
}
/**
* An Async wrapper for GetSuiteDefinition that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetSuiteDefinitionAsync(const GetSuiteDefinitionRequestT& request, const GetSuiteDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTDeviceAdvisorClient::GetSuiteDefinition, request, handler, context);
}
/**
* Gets information about a Device Advisor test suite run.
Requires
* permission to access the GetSuiteRun
* action.
See Also:
AWS
* API Reference
*/
virtual Model::GetSuiteRunOutcome GetSuiteRun(const Model::GetSuiteRunRequest& request) const;
/**
* A Callable wrapper for GetSuiteRun that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetSuiteRunOutcomeCallable GetSuiteRunCallable(const GetSuiteRunRequestT& request) const
{
return SubmitCallable(&IoTDeviceAdvisorClient::GetSuiteRun, request);
}
/**
* An Async wrapper for GetSuiteRun that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetSuiteRunAsync(const GetSuiteRunRequestT& request, const GetSuiteRunResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTDeviceAdvisorClient::GetSuiteRun, request, handler, context);
}
/**
* Gets a report download link for a successful Device Advisor qualifying test
* suite run.
Requires permission to access the GetSuiteRunReport
* action.
See Also:
AWS
* API Reference
*/
virtual Model::GetSuiteRunReportOutcome GetSuiteRunReport(const Model::GetSuiteRunReportRequest& request) const;
/**
* A Callable wrapper for GetSuiteRunReport that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetSuiteRunReportOutcomeCallable GetSuiteRunReportCallable(const GetSuiteRunReportRequestT& request) const
{
return SubmitCallable(&IoTDeviceAdvisorClient::GetSuiteRunReport, request);
}
/**
* An Async wrapper for GetSuiteRunReport that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetSuiteRunReportAsync(const GetSuiteRunReportRequestT& request, const GetSuiteRunReportResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTDeviceAdvisorClient::GetSuiteRunReport, request, handler, context);
}
/**
* Lists the Device Advisor test suites you have created.
Requires
* permission to access the ListSuiteDefinitions
* action.
See Also:
AWS
* API Reference
*/
virtual Model::ListSuiteDefinitionsOutcome ListSuiteDefinitions(const Model::ListSuiteDefinitionsRequest& request) const;
/**
* A Callable wrapper for ListSuiteDefinitions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListSuiteDefinitionsOutcomeCallable ListSuiteDefinitionsCallable(const ListSuiteDefinitionsRequestT& request) const
{
return SubmitCallable(&IoTDeviceAdvisorClient::ListSuiteDefinitions, request);
}
/**
* An Async wrapper for ListSuiteDefinitions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListSuiteDefinitionsAsync(const ListSuiteDefinitionsRequestT& request, const ListSuiteDefinitionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTDeviceAdvisorClient::ListSuiteDefinitions, request, handler, context);
}
/**
* Lists runs of the specified Device Advisor test suite. You can list all runs
* of the test suite, or the runs of a specific version of the test suite.
* Requires permission to access the ListSuiteRuns
* action.
See Also:
AWS
* API Reference
*/
virtual Model::ListSuiteRunsOutcome ListSuiteRuns(const Model::ListSuiteRunsRequest& request) const;
/**
* A Callable wrapper for ListSuiteRuns that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListSuiteRunsOutcomeCallable ListSuiteRunsCallable(const ListSuiteRunsRequestT& request) const
{
return SubmitCallable(&IoTDeviceAdvisorClient::ListSuiteRuns, request);
}
/**
* An Async wrapper for ListSuiteRuns that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListSuiteRunsAsync(const ListSuiteRunsRequestT& request, const ListSuiteRunsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTDeviceAdvisorClient::ListSuiteRuns, request, handler, context);
}
/**
* Lists the tags attached to an IoT Device Advisor resource.
Requires
* permission to access the ListTagsForResource
* action.
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(&IoTDeviceAdvisorClient::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(&IoTDeviceAdvisorClient::ListTagsForResource, request, handler, context);
}
/**
* Starts a Device Advisor test suite run.
Requires permission to access
* the StartSuiteRun
* action.
See Also:
AWS
* API Reference
*/
virtual Model::StartSuiteRunOutcome StartSuiteRun(const Model::StartSuiteRunRequest& request) const;
/**
* A Callable wrapper for StartSuiteRun that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::StartSuiteRunOutcomeCallable StartSuiteRunCallable(const StartSuiteRunRequestT& request) const
{
return SubmitCallable(&IoTDeviceAdvisorClient::StartSuiteRun, request);
}
/**
* An Async wrapper for StartSuiteRun that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void StartSuiteRunAsync(const StartSuiteRunRequestT& request, const StartSuiteRunResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTDeviceAdvisorClient::StartSuiteRun, request, handler, context);
}
/**
* Stops a Device Advisor test suite run that is currently running.
* Requires permission to access the StopSuiteRun
* action.
See Also:
AWS
* API Reference
*/
virtual Model::StopSuiteRunOutcome StopSuiteRun(const Model::StopSuiteRunRequest& request) const;
/**
* A Callable wrapper for StopSuiteRun that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::StopSuiteRunOutcomeCallable StopSuiteRunCallable(const StopSuiteRunRequestT& request) const
{
return SubmitCallable(&IoTDeviceAdvisorClient::StopSuiteRun, request);
}
/**
* An Async wrapper for StopSuiteRun that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void StopSuiteRunAsync(const StopSuiteRunRequestT& request, const StopSuiteRunResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTDeviceAdvisorClient::StopSuiteRun, request, handler, context);
}
/**
* Adds to and modifies existing tags of an IoT Device Advisor resource.
* Requires permission to access the TagResource
* action.
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(&IoTDeviceAdvisorClient::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(&IoTDeviceAdvisorClient::TagResource, request, handler, context);
}
/**
* Removes tags from an IoT Device Advisor resource.
Requires permission
* to access the UntagResource
* action.
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(&IoTDeviceAdvisorClient::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(&IoTDeviceAdvisorClient::UntagResource, request, handler, context);
}
/**
* Updates a Device Advisor test suite.
Requires permission to access the
* UpdateSuiteDefinition
* action.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateSuiteDefinitionOutcome UpdateSuiteDefinition(const Model::UpdateSuiteDefinitionRequest& request) const;
/**
* A Callable wrapper for UpdateSuiteDefinition that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateSuiteDefinitionOutcomeCallable UpdateSuiteDefinitionCallable(const UpdateSuiteDefinitionRequestT& request) const
{
return SubmitCallable(&IoTDeviceAdvisorClient::UpdateSuiteDefinition, request);
}
/**
* An Async wrapper for UpdateSuiteDefinition that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateSuiteDefinitionAsync(const UpdateSuiteDefinitionRequestT& request, const UpdateSuiteDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&IoTDeviceAdvisorClient::UpdateSuiteDefinition, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const IoTDeviceAdvisorClientConfiguration& clientConfiguration);
IoTDeviceAdvisorClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace IoTDeviceAdvisor
} // namespace Aws