/** * 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 IoTThingsGraph { /** * AWS IoT Things Graph

AWS IoT Things Graph provides an * integrated set of tools that enable developers to connect devices and services * that use different standards, such as units of measure and communication * protocols. AWS IoT Things Graph makes it possible to build IoT applications with * little to no code by connecting devices and services and defining how they * interact at an abstract level.

For more information about how AWS IoT * Things Graph works, see the User * Guide.

The AWS IoT Things Graph service is discontinued.

*/ class AWS_IOTTHINGSGRAPH_API IoTThingsGraphClient : 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 IoTThingsGraphClientConfiguration ClientConfigurationType; typedef IoTThingsGraphEndpointProvider 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. */ IoTThingsGraphClient(const Aws::IoTThingsGraph::IoTThingsGraphClientConfiguration& clientConfiguration = Aws::IoTThingsGraph::IoTThingsGraphClientConfiguration(), 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. */ IoTThingsGraphClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::IoTThingsGraph::IoTThingsGraphClientConfiguration& clientConfiguration = Aws::IoTThingsGraph::IoTThingsGraphClientConfiguration()); /** * 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 */ IoTThingsGraphClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::IoTThingsGraph::IoTThingsGraphClientConfiguration& clientConfiguration = Aws::IoTThingsGraph::IoTThingsGraphClientConfiguration()); /* 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. */ IoTThingsGraphClient(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. */ IoTThingsGraphClient(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 */ IoTThingsGraphClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~IoTThingsGraphClient(); void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const IoTThingsGraphClientConfiguration& clientConfiguration); IoTThingsGraphClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace IoTThingsGraph } // namespace Aws