identity/include/aws/iotidentity/IotIdentityClientV2.h (85 lines of code) (raw):

#pragma once /* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. * * This file is generated */ #include <aws/iotidentity/Exports.h> #include <aws/crt/StlAllocator.h> #include <aws/crt/Types.h> #include <aws/iot/MqttRequestResponseClient.h> #include <functional> namespace Aws { namespace Crt { namespace Mqtt { class MqttConnection; } namespace Mqtt5 { class Mqtt5Client; } } // namespace Crt } // namespace Aws namespace Aws { namespace Iotidentity { template <typename E> class ServiceErrorV2 { public: ServiceErrorV2() = delete; ServiceErrorV2(const ServiceErrorV2<E> &rhs) = default; ServiceErrorV2(ServiceErrorV2<E> &&rhs) = default; explicit ServiceErrorV2(int errorCode) : m_errorCode(errorCode), m_modeledError() {} ServiceErrorV2(int errorCode, E &&modeledError) : m_errorCode(errorCode), m_modeledError(std::move(modeledError)) { } ~ServiceErrorV2() = default; ServiceErrorV2<E> &operator=(const ServiceErrorV2<E> &rhs) = default; ServiceErrorV2<E> &operator=(ServiceErrorV2<E> &&rhs) = default; int GetErrorCode() const { return m_errorCode; } bool HasModeledError() const { return m_modeledError.has_value(); } const E &GetModeledError() const { return m_modeledError.value(); } private: int m_errorCode; Aws::Crt::Optional<E> m_modeledError; }; class CreateCertificateFromCsrRequest; class CreateCertificateFromCsrResponse; class CreateKeysAndCertificateRequest; class CreateKeysAndCertificateResponse; class RegisterThingRequest; class RegisterThingResponse; class V2ErrorResponse; using CreateCertificateFromCsrResult = Aws::Iot::RequestResponse::Result<CreateCertificateFromCsrResponse, ServiceErrorV2<V2ErrorResponse>>; using CreateCertificateFromCsrResultHandler = std::function<void(CreateCertificateFromCsrResult &&)>; using CreateKeysAndCertificateResult = Aws::Iot::RequestResponse::Result<CreateKeysAndCertificateResponse, ServiceErrorV2<V2ErrorResponse>>; using CreateKeysAndCertificateResultHandler = std::function<void(CreateKeysAndCertificateResult &&)>; using RegisterThingResult = Aws::Iot::RequestResponse::Result<RegisterThingResponse, ServiceErrorV2<V2ErrorResponse>>; using RegisterThingResultHandler = std::function<void(RegisterThingResult &&)>; /** * An AWS IoT service that assists with provisioning a device and installing unique client certificates on it * * https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html * */ class AWS_IOTIDENTITY_API IClientV2 { public: virtual ~IClientV2() = default; /** * Creates a certificate from a certificate signing request (CSR). AWS IoT provides client certificates that * are signed by the Amazon Root certificate authority (CA). The new certificate has a PENDING_ACTIVATION * status. When you call RegisterThing to provision a thing with this certificate, the certificate status * changes to ACTIVE or INACTIVE as described in the template. * * * AWS documentation: * https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#fleet-provision-api * * @param request operation to perform * @param handler function object to invoke upon operation completion * * @return success/failure */ virtual bool CreateCertificateFromCsr( const CreateCertificateFromCsrRequest &request, const CreateCertificateFromCsrResultHandler &handler) = 0; /** * Creates new keys and a certificate. AWS IoT provides client certificates that are signed by the Amazon * Root certificate authority (CA). The new certificate has a PENDING_ACTIVATION status. When you call * RegisterThing to provision a thing with this certificate, the certificate status changes to ACTIVE or * INACTIVE as described in the template. * * * AWS documentation: * https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#fleet-provision-api * * @param request operation to perform * @param handler function object to invoke upon operation completion * * @return success/failure */ virtual bool CreateKeysAndCertificate( const CreateKeysAndCertificateRequest &request, const CreateKeysAndCertificateResultHandler &handler) = 0; /** * Provisions an AWS IoT thing using a pre-defined template. * * * AWS documentation: * https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#fleet-provision-api * * @param request operation to perform * @param handler function object to invoke upon operation completion * * @return success/failure */ virtual bool RegisterThing( const RegisterThingRequest &request, const RegisterThingResultHandler &handler) = 0; }; /** * Creates a new service client that uses an SDK MQTT5 client for transport. * * @param protocolClient MQTT client to use as transport * @param options request-response MQTT client configuration options * @param allocator memory allocator to use for all client functionality * * @return a new service client */ AWS_IOTIDENTITY_API std::shared_ptr<IClientV2> NewClientFrom5( const Aws::Crt::Mqtt5::Mqtt5Client &protocolClient, const Aws::Iot::RequestResponse::RequestResponseClientOptions &options, Aws::Crt::Allocator *allocator = Aws::Crt::ApiAllocator()); /** * Creates a new service client that uses an SDK MQTT311 client for transport. * * @param protocolClient MQTT client to use as transport * @param options request-response MQTT client configuration options * @param allocator memory allocator to use for all client functionality * * @return a new service client */ AWS_IOTIDENTITY_API std::shared_ptr<IClientV2> NewClientFrom311( const Aws::Crt::Mqtt::MqttConnection &protocolClient, const Aws::Iot::RequestResponse::RequestResponseClientOptions &options, Aws::Crt::Allocator *allocator = Aws::Crt::ApiAllocator()); } // namespace Iotidentity } // namespace Aws