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

IoT Greengrass brings local compute, messaging, data management, sync, and ML * inference capabilities to edge devices. This enables devices to collect and * analyze data closer to the source of information, react autonomously to local * events, and communicate securely with each other on local networks. Local * devices can also communicate securely with Amazon Web Services IoT Core and * export IoT data to the Amazon Web Services Cloud. IoT Greengrass developers can * use Lambda functions and components to create and deploy applications to fleets * of edge devices for local operation.

IoT Greengrass Version 2 provides a * new major version of the IoT Greengrass Core software, new APIs, and a new * console. Use this API reference to learn how to use the IoT Greengrass V2 API * operations to manage components, manage deployments, and core devices.

*

For more information, see What * is IoT Greengrass? in the IoT Greengrass V2 Developer Guide.

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

Associates a Greengrass service role with IoT Greengrass for your Amazon Web * Services account in this Amazon Web Services Region. IoT Greengrass uses this * role to verify the identity of client devices and manage core device * connectivity information. The role must include the AWSGreengrassResourceAccessRolePolicy * managed policy or a custom policy that defines equivalent permissions for the * IoT Greengrass features that you use. For more information, see Greengrass * service role in the IoT Greengrass Version 2 Developer * Guide.

See Also:

AWS * API Reference

*/ virtual Model::AssociateServiceRoleToAccountOutcome AssociateServiceRoleToAccount(const Model::AssociateServiceRoleToAccountRequest& request) const; /** * A Callable wrapper for AssociateServiceRoleToAccount that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AssociateServiceRoleToAccountOutcomeCallable AssociateServiceRoleToAccountCallable(const AssociateServiceRoleToAccountRequestT& request) const { return SubmitCallable(&GreengrassV2Client::AssociateServiceRoleToAccount, request); } /** * An Async wrapper for AssociateServiceRoleToAccount that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AssociateServiceRoleToAccountAsync(const AssociateServiceRoleToAccountRequestT& request, const AssociateServiceRoleToAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::AssociateServiceRoleToAccount, request, handler, context); } /** *

Associates a list of client devices with a core device. Use this API * operation to specify which client devices can discover a core device through * cloud discovery. With cloud discovery, client devices connect to IoT Greengrass * to retrieve associated core devices' connectivity information and certificates. * For more information, see Configure * cloud discovery in the IoT Greengrass V2 Developer Guide.

*

Client devices are local IoT devices that connect to and communicate with an * IoT Greengrass core device over MQTT. You can connect client devices to a core * device to sync MQTT messages and data to Amazon Web Services IoT Core and * interact with client devices in Greengrass components. For more information, see * Interact * with local IoT devices in the IoT Greengrass V2 Developer Guide.

*

See Also:

AWS * API Reference

*/ virtual Model::BatchAssociateClientDeviceWithCoreDeviceOutcome BatchAssociateClientDeviceWithCoreDevice(const Model::BatchAssociateClientDeviceWithCoreDeviceRequest& request) const; /** * A Callable wrapper for BatchAssociateClientDeviceWithCoreDevice that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchAssociateClientDeviceWithCoreDeviceOutcomeCallable BatchAssociateClientDeviceWithCoreDeviceCallable(const BatchAssociateClientDeviceWithCoreDeviceRequestT& request) const { return SubmitCallable(&GreengrassV2Client::BatchAssociateClientDeviceWithCoreDevice, request); } /** * An Async wrapper for BatchAssociateClientDeviceWithCoreDevice that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchAssociateClientDeviceWithCoreDeviceAsync(const BatchAssociateClientDeviceWithCoreDeviceRequestT& request, const BatchAssociateClientDeviceWithCoreDeviceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::BatchAssociateClientDeviceWithCoreDevice, request, handler, context); } /** *

Disassociates a list of client devices from a core device. After you * disassociate a client device from a core device, the client device won't be able * to use cloud discovery to retrieve the core device's connectivity information * and certificates.

See Also:

AWS * API Reference

*/ virtual Model::BatchDisassociateClientDeviceFromCoreDeviceOutcome BatchDisassociateClientDeviceFromCoreDevice(const Model::BatchDisassociateClientDeviceFromCoreDeviceRequest& request) const; /** * A Callable wrapper for BatchDisassociateClientDeviceFromCoreDevice that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchDisassociateClientDeviceFromCoreDeviceOutcomeCallable BatchDisassociateClientDeviceFromCoreDeviceCallable(const BatchDisassociateClientDeviceFromCoreDeviceRequestT& request) const { return SubmitCallable(&GreengrassV2Client::BatchDisassociateClientDeviceFromCoreDevice, request); } /** * An Async wrapper for BatchDisassociateClientDeviceFromCoreDevice that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchDisassociateClientDeviceFromCoreDeviceAsync(const BatchDisassociateClientDeviceFromCoreDeviceRequestT& request, const BatchDisassociateClientDeviceFromCoreDeviceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::BatchDisassociateClientDeviceFromCoreDevice, request, handler, context); } /** *

Cancels a deployment. This operation cancels the deployment for devices that * haven't yet received it. If a device already received the deployment, this * operation doesn't change anything for that device.

See Also:

AWS * API Reference

*/ virtual Model::CancelDeploymentOutcome CancelDeployment(const Model::CancelDeploymentRequest& request) const; /** * A Callable wrapper for CancelDeployment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CancelDeploymentOutcomeCallable CancelDeploymentCallable(const CancelDeploymentRequestT& request) const { return SubmitCallable(&GreengrassV2Client::CancelDeployment, request); } /** * An Async wrapper for CancelDeployment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CancelDeploymentAsync(const CancelDeploymentRequestT& request, const CancelDeploymentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::CancelDeployment, request, handler, context); } /** *

Creates a component. Components are software that run on Greengrass core * devices. After you develop and test a component on your core device, you can use * this operation to upload your component to IoT Greengrass. Then, you can deploy * the component to other core devices.

You can use this operation to do the * following:

  • Create components from recipes

    *

    Create a component from a recipe, which is a file that defines the * component's metadata, parameters, dependencies, lifecycle, artifacts, and * platform capability. For more information, see IoT * Greengrass component recipe reference in the IoT Greengrass V2 Developer * Guide.

    To create a component from a recipe, specify * inlineRecipe when you call this operation.

  • * Create components from Lambda functions

    Create a component from * an Lambda function that runs on IoT Greengrass. This creates a recipe and * artifacts from the Lambda function's deployment package. You can use this * operation to migrate Lambda functions from IoT Greengrass V1 to IoT Greengrass * V2.

    This function only accepts Lambda functions that use the following * runtimes:

    • Python 2.7 – python2.7

    • *

      Python 3.7 – python3.7

    • Python 3.8 – * python3.8

    • Python 3.9 – python3.9 *

    • Java 8 – java8

    • Java 11 – * java11

    • Node.js 10 – nodejs10.x

      *
    • Node.js 12 – nodejs12.x

    • Node.js 14 * – nodejs14.x

    To create a component from a * Lambda function, specify lambdaFunction when you call this * operation.

    IoT Greengrass currently supports Lambda functions on * only Linux core devices.

See Also:

AWS * API Reference

*/ virtual Model::CreateComponentVersionOutcome CreateComponentVersion(const Model::CreateComponentVersionRequest& request) const; /** * A Callable wrapper for CreateComponentVersion that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateComponentVersionOutcomeCallable CreateComponentVersionCallable(const CreateComponentVersionRequestT& request) const { return SubmitCallable(&GreengrassV2Client::CreateComponentVersion, request); } /** * An Async wrapper for CreateComponentVersion that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateComponentVersionAsync(const CreateComponentVersionRequestT& request, const CreateComponentVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::CreateComponentVersion, request, handler, context); } /** *

Creates a continuous deployment for a target, which is a Greengrass core * device or group of core devices. When you add a new core device to a group of * core devices that has a deployment, IoT Greengrass deploys that group's * deployment to the new device.

You can define one deployment for each * target. When you create a new deployment for a target that has an existing * deployment, you replace the previous deployment. IoT Greengrass applies the new * deployment to the target devices.

Every deployment has a revision number * that indicates how many deployment revisions you define for a target. Use this * operation to create a new revision of an existing deployment.

For more * information, see the Create * deployments in the IoT Greengrass V2 Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreateDeploymentOutcome CreateDeployment(const Model::CreateDeploymentRequest& request) const; /** * A Callable wrapper for CreateDeployment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateDeploymentOutcomeCallable CreateDeploymentCallable(const CreateDeploymentRequestT& request) const { return SubmitCallable(&GreengrassV2Client::CreateDeployment, request); } /** * An Async wrapper for CreateDeployment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateDeploymentAsync(const CreateDeploymentRequestT& request, const CreateDeploymentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::CreateDeployment, request, handler, context); } /** *

Deletes a version of a component from IoT Greengrass.

This * operation deletes the component's recipe and artifacts. As a result, deployments * that refer to this component version will fail. If you have deployments that use * this component version, you can remove the component from the deployment or * update the deployment to use a valid version.

See Also:

* AWS * API Reference

*/ virtual Model::DeleteComponentOutcome DeleteComponent(const Model::DeleteComponentRequest& request) const; /** * A Callable wrapper for DeleteComponent that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteComponentOutcomeCallable DeleteComponentCallable(const DeleteComponentRequestT& request) const { return SubmitCallable(&GreengrassV2Client::DeleteComponent, request); } /** * An Async wrapper for DeleteComponent that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteComponentAsync(const DeleteComponentRequestT& request, const DeleteComponentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::DeleteComponent, request, handler, context); } /** *

Deletes a Greengrass core device, which is an IoT thing. This operation * removes the core device from the list of core devices. This operation doesn't * delete the IoT thing. For more information about how to delete the IoT thing, * see DeleteThing * in the IoT API Reference.

See Also:

AWS * API Reference

*/ virtual Model::DeleteCoreDeviceOutcome DeleteCoreDevice(const Model::DeleteCoreDeviceRequest& request) const; /** * A Callable wrapper for DeleteCoreDevice that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteCoreDeviceOutcomeCallable DeleteCoreDeviceCallable(const DeleteCoreDeviceRequestT& request) const { return SubmitCallable(&GreengrassV2Client::DeleteCoreDevice, request); } /** * An Async wrapper for DeleteCoreDevice that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteCoreDeviceAsync(const DeleteCoreDeviceRequestT& request, const DeleteCoreDeviceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::DeleteCoreDevice, request, handler, context); } /** *

Deletes a deployment. To delete an active deployment, you must first cancel * it. For more information, see CancelDeployment.

*

Deleting a deployment doesn't affect core devices that run that deployment, * because core devices store the deployment's configuration on the device. * Additionally, core devices can roll back to a previous deployment that has been * deleted.

See Also:

AWS * API Reference

*/ virtual Model::DeleteDeploymentOutcome DeleteDeployment(const Model::DeleteDeploymentRequest& request) const; /** * A Callable wrapper for DeleteDeployment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteDeploymentOutcomeCallable DeleteDeploymentCallable(const DeleteDeploymentRequestT& request) const { return SubmitCallable(&GreengrassV2Client::DeleteDeployment, request); } /** * An Async wrapper for DeleteDeployment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteDeploymentAsync(const DeleteDeploymentRequestT& request, const DeleteDeploymentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::DeleteDeployment, request, handler, context); } /** *

Retrieves metadata for a version of a component.

See Also:

* AWS * API Reference

*/ virtual Model::DescribeComponentOutcome DescribeComponent(const Model::DescribeComponentRequest& request) const; /** * A Callable wrapper for DescribeComponent that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeComponentOutcomeCallable DescribeComponentCallable(const DescribeComponentRequestT& request) const { return SubmitCallable(&GreengrassV2Client::DescribeComponent, request); } /** * An Async wrapper for DescribeComponent that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeComponentAsync(const DescribeComponentRequestT& request, const DescribeComponentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::DescribeComponent, request, handler, context); } /** *

Disassociates the Greengrass service role from IoT Greengrass for your Amazon * Web Services account in this Amazon Web Services Region. Without a service role, * IoT Greengrass can't verify the identity of client devices or manage core device * connectivity information. For more information, see Greengrass * service role in the IoT Greengrass Version 2 Developer * Guide.

See Also:

AWS * API Reference

*/ virtual Model::DisassociateServiceRoleFromAccountOutcome DisassociateServiceRoleFromAccount(const Model::DisassociateServiceRoleFromAccountRequest& request) const; /** * A Callable wrapper for DisassociateServiceRoleFromAccount that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DisassociateServiceRoleFromAccountOutcomeCallable DisassociateServiceRoleFromAccountCallable(const DisassociateServiceRoleFromAccountRequestT& request) const { return SubmitCallable(&GreengrassV2Client::DisassociateServiceRoleFromAccount, request); } /** * An Async wrapper for DisassociateServiceRoleFromAccount that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DisassociateServiceRoleFromAccountAsync(const DisassociateServiceRoleFromAccountRequestT& request, const DisassociateServiceRoleFromAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::DisassociateServiceRoleFromAccount, request, handler, context); } /** *

Gets the recipe for a version of a component.

See Also:

AWS * API Reference

*/ virtual Model::GetComponentOutcome GetComponent(const Model::GetComponentRequest& request) const; /** * A Callable wrapper for GetComponent that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetComponentOutcomeCallable GetComponentCallable(const GetComponentRequestT& request) const { return SubmitCallable(&GreengrassV2Client::GetComponent, request); } /** * An Async wrapper for GetComponent that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetComponentAsync(const GetComponentRequestT& request, const GetComponentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::GetComponent, request, handler, context); } /** *

Gets the pre-signed URL to download a public or a Lambda component artifact. * Core devices call this operation to identify the URL that they can use to * download an artifact to install.

See Also:

AWS * API Reference

*/ virtual Model::GetComponentVersionArtifactOutcome GetComponentVersionArtifact(const Model::GetComponentVersionArtifactRequest& request) const; /** * A Callable wrapper for GetComponentVersionArtifact that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetComponentVersionArtifactOutcomeCallable GetComponentVersionArtifactCallable(const GetComponentVersionArtifactRequestT& request) const { return SubmitCallable(&GreengrassV2Client::GetComponentVersionArtifact, request); } /** * An Async wrapper for GetComponentVersionArtifact that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetComponentVersionArtifactAsync(const GetComponentVersionArtifactRequestT& request, const GetComponentVersionArtifactResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::GetComponentVersionArtifact, request, handler, context); } /** *

Retrieves connectivity information for a Greengrass core device.

*

Connectivity information includes endpoints and ports where client devices * can connect to an MQTT broker on the core device. When a client device calls the * IoT * Greengrass discovery API, IoT Greengrass returns connectivity information * for all of the core devices where the client device can connect. For more * information, see Connect * client devices to core devices in the IoT Greengrass Version 2 Developer * Guide.

See Also:

AWS * API Reference

*/ virtual Model::GetConnectivityInfoOutcome GetConnectivityInfo(const Model::GetConnectivityInfoRequest& request) const; /** * A Callable wrapper for GetConnectivityInfo that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetConnectivityInfoOutcomeCallable GetConnectivityInfoCallable(const GetConnectivityInfoRequestT& request) const { return SubmitCallable(&GreengrassV2Client::GetConnectivityInfo, request); } /** * An Async wrapper for GetConnectivityInfo that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetConnectivityInfoAsync(const GetConnectivityInfoRequestT& request, const GetConnectivityInfoResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::GetConnectivityInfo, request, handler, context); } /** *

Retrieves metadata for a Greengrass core device.

IoT Greengrass * relies on individual devices to send status updates to the Amazon Web Services * Cloud. If the IoT Greengrass Core software isn't running on the device, or if * device isn't connected to the Amazon Web Services Cloud, then the reported * status of that device might not reflect its current status. The status timestamp * indicates when the device status was last updated.

Core devices send * status updates at the following times:

  • When the IoT Greengrass * Core software starts

  • When the core device receives a * deployment from the Amazon Web Services Cloud

  • When the status * of any component on the core device becomes BROKEN

  • *

    At a regular * interval that you can configure, which defaults to 24 hours

  • *

    For IoT Greengrass Core v2.7.0, the core device sends status updates upon * local deployment and cloud deployment

See * Also:

AWS * API Reference

*/ virtual Model::GetCoreDeviceOutcome GetCoreDevice(const Model::GetCoreDeviceRequest& request) const; /** * A Callable wrapper for GetCoreDevice that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetCoreDeviceOutcomeCallable GetCoreDeviceCallable(const GetCoreDeviceRequestT& request) const { return SubmitCallable(&GreengrassV2Client::GetCoreDevice, request); } /** * An Async wrapper for GetCoreDevice that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetCoreDeviceAsync(const GetCoreDeviceRequestT& request, const GetCoreDeviceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::GetCoreDevice, request, handler, context); } /** *

Gets a deployment. Deployments define the components that run on Greengrass * core devices.

See Also:

AWS * API Reference

*/ virtual Model::GetDeploymentOutcome GetDeployment(const Model::GetDeploymentRequest& request) const; /** * A Callable wrapper for GetDeployment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetDeploymentOutcomeCallable GetDeploymentCallable(const GetDeploymentRequestT& request) const { return SubmitCallable(&GreengrassV2Client::GetDeployment, request); } /** * An Async wrapper for GetDeployment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetDeploymentAsync(const GetDeploymentRequestT& request, const GetDeploymentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::GetDeployment, request, handler, context); } /** *

Gets the service role associated with IoT Greengrass for your Amazon Web * Services account in this Amazon Web Services Region. IoT Greengrass uses this * role to verify the identity of client devices and manage core device * connectivity information. For more information, see Greengrass * service role in the IoT Greengrass Version 2 Developer * Guide.

See Also:

AWS * API Reference

*/ virtual Model::GetServiceRoleForAccountOutcome GetServiceRoleForAccount(const Model::GetServiceRoleForAccountRequest& request) const; /** * A Callable wrapper for GetServiceRoleForAccount that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetServiceRoleForAccountOutcomeCallable GetServiceRoleForAccountCallable(const GetServiceRoleForAccountRequestT& request) const { return SubmitCallable(&GreengrassV2Client::GetServiceRoleForAccount, request); } /** * An Async wrapper for GetServiceRoleForAccount that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetServiceRoleForAccountAsync(const GetServiceRoleForAccountRequestT& request, const GetServiceRoleForAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::GetServiceRoleForAccount, request, handler, context); } /** *

Retrieves a paginated list of client devices that are associated with a core * device.

See Also:

AWS * API Reference

*/ virtual Model::ListClientDevicesAssociatedWithCoreDeviceOutcome ListClientDevicesAssociatedWithCoreDevice(const Model::ListClientDevicesAssociatedWithCoreDeviceRequest& request) const; /** * A Callable wrapper for ListClientDevicesAssociatedWithCoreDevice that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListClientDevicesAssociatedWithCoreDeviceOutcomeCallable ListClientDevicesAssociatedWithCoreDeviceCallable(const ListClientDevicesAssociatedWithCoreDeviceRequestT& request) const { return SubmitCallable(&GreengrassV2Client::ListClientDevicesAssociatedWithCoreDevice, request); } /** * An Async wrapper for ListClientDevicesAssociatedWithCoreDevice that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListClientDevicesAssociatedWithCoreDeviceAsync(const ListClientDevicesAssociatedWithCoreDeviceRequestT& request, const ListClientDevicesAssociatedWithCoreDeviceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::ListClientDevicesAssociatedWithCoreDevice, request, handler, context); } /** *

Retrieves a paginated list of all versions for a component. Greater versions * are listed first.

See Also:

AWS * API Reference

*/ virtual Model::ListComponentVersionsOutcome ListComponentVersions(const Model::ListComponentVersionsRequest& request) const; /** * A Callable wrapper for ListComponentVersions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListComponentVersionsOutcomeCallable ListComponentVersionsCallable(const ListComponentVersionsRequestT& request) const { return SubmitCallable(&GreengrassV2Client::ListComponentVersions, request); } /** * An Async wrapper for ListComponentVersions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListComponentVersionsAsync(const ListComponentVersionsRequestT& request, const ListComponentVersionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::ListComponentVersions, request, handler, context); } /** *

Retrieves a paginated list of component summaries. This list includes * components that you have permission to view.

See Also:

AWS * API Reference

*/ virtual Model::ListComponentsOutcome ListComponents(const Model::ListComponentsRequest& request) const; /** * A Callable wrapper for ListComponents that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListComponentsOutcomeCallable ListComponentsCallable(const ListComponentsRequestT& request) const { return SubmitCallable(&GreengrassV2Client::ListComponents, request); } /** * An Async wrapper for ListComponents that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListComponentsAsync(const ListComponentsRequestT& request, const ListComponentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::ListComponents, request, handler, context); } /** *

Retrieves a paginated list of Greengrass core devices.

IoT * Greengrass relies on individual devices to send status updates to the Amazon Web * Services Cloud. If the IoT Greengrass Core software isn't running on the device, * or if device isn't connected to the Amazon Web Services Cloud, then the reported * status of that device might not reflect its current status. The status timestamp * indicates when the device status was last updated.

Core devices send * status updates at the following times:

  • When the IoT Greengrass * Core software starts

  • When the core device receives a * deployment from the Amazon Web Services Cloud

  • When the status * of any component on the core device becomes BROKEN

  • *

    At a regular * interval that you can configure, which defaults to 24 hours

  • *

    For IoT Greengrass Core v2.7.0, the core device sends status updates upon * local deployment and cloud deployment

See * Also:

AWS * API Reference

*/ virtual Model::ListCoreDevicesOutcome ListCoreDevices(const Model::ListCoreDevicesRequest& request) const; /** * A Callable wrapper for ListCoreDevices that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListCoreDevicesOutcomeCallable ListCoreDevicesCallable(const ListCoreDevicesRequestT& request) const { return SubmitCallable(&GreengrassV2Client::ListCoreDevices, request); } /** * An Async wrapper for ListCoreDevices that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListCoreDevicesAsync(const ListCoreDevicesRequestT& request, const ListCoreDevicesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::ListCoreDevices, request, handler, context); } /** *

Retrieves a paginated list of deployments.

See Also:

AWS * API Reference

*/ virtual Model::ListDeploymentsOutcome ListDeployments(const Model::ListDeploymentsRequest& request) const; /** * A Callable wrapper for ListDeployments that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListDeploymentsOutcomeCallable ListDeploymentsCallable(const ListDeploymentsRequestT& request) const { return SubmitCallable(&GreengrassV2Client::ListDeployments, request); } /** * An Async wrapper for ListDeployments that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListDeploymentsAsync(const ListDeploymentsRequestT& request, const ListDeploymentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::ListDeployments, request, handler, context); } /** *

Retrieves a paginated list of deployment jobs that IoT Greengrass sends to * Greengrass core devices.

See Also:

AWS * API Reference

*/ virtual Model::ListEffectiveDeploymentsOutcome ListEffectiveDeployments(const Model::ListEffectiveDeploymentsRequest& request) const; /** * A Callable wrapper for ListEffectiveDeployments that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListEffectiveDeploymentsOutcomeCallable ListEffectiveDeploymentsCallable(const ListEffectiveDeploymentsRequestT& request) const { return SubmitCallable(&GreengrassV2Client::ListEffectiveDeployments, request); } /** * An Async wrapper for ListEffectiveDeployments that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListEffectiveDeploymentsAsync(const ListEffectiveDeploymentsRequestT& request, const ListEffectiveDeploymentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::ListEffectiveDeployments, request, handler, context); } /** *

Retrieves a paginated list of the components that a Greengrass core device * runs. By default, this list doesn't include components that are deployed as * dependencies of other components. To include dependencies in the response, set * the topologyFilter parameter to ALL.

IoT * Greengrass relies on individual devices to send status updates to the Amazon Web * Services Cloud. If the IoT Greengrass Core software isn't running on the device, * or if device isn't connected to the Amazon Web Services Cloud, then the reported * status of that device might not reflect its current status. The status timestamp * indicates when the device status was last updated.

Core devices send * status updates at the following times:

  • When the IoT Greengrass * Core software starts

  • When the core device receives a * deployment from the Amazon Web Services Cloud

  • When the status * of any component on the core device becomes BROKEN

  • *

    At a regular * interval that you can configure, which defaults to 24 hours

  • *

    For IoT Greengrass Core v2.7.0, the core device sends status updates upon * local deployment and cloud deployment

See * Also:

AWS * API Reference

*/ virtual Model::ListInstalledComponentsOutcome ListInstalledComponents(const Model::ListInstalledComponentsRequest& request) const; /** * A Callable wrapper for ListInstalledComponents that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListInstalledComponentsOutcomeCallable ListInstalledComponentsCallable(const ListInstalledComponentsRequestT& request) const { return SubmitCallable(&GreengrassV2Client::ListInstalledComponents, request); } /** * An Async wrapper for ListInstalledComponents that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListInstalledComponentsAsync(const ListInstalledComponentsRequestT& request, const ListInstalledComponentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::ListInstalledComponents, request, handler, context); } /** *

Retrieves the list of tags for an IoT Greengrass resource.

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

Retrieves a list of components that meet the component, version, and platform * requirements of a deployment. Greengrass core devices call this operation when * they receive a deployment to identify the components to install.

This * operation identifies components that meet all dependency requirements for a * deployment. If the requirements conflict, then this operation returns an error * and the deployment fails. For example, this occurs if component A * requires version >2.0.0 and component B requires * version <2.0.0 of a component dependency.

When you * specify the component candidates to resolve, IoT Greengrass compares each * component's digest from the core device with the component's digest in the * Amazon Web Services Cloud. If the digests don't match, then IoT Greengrass * specifies to use the version from the Amazon Web Services Cloud.

*

To use this operation, you must use the data plane API endpoint and * authenticate with an IoT device certificate. For more information, see IoT * Greengrass endpoints and quotas.

See Also:

AWS * API Reference

*/ virtual Model::ResolveComponentCandidatesOutcome ResolveComponentCandidates(const Model::ResolveComponentCandidatesRequest& request) const; /** * A Callable wrapper for ResolveComponentCandidates that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ResolveComponentCandidatesOutcomeCallable ResolveComponentCandidatesCallable(const ResolveComponentCandidatesRequestT& request) const { return SubmitCallable(&GreengrassV2Client::ResolveComponentCandidates, request); } /** * An Async wrapper for ResolveComponentCandidates that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ResolveComponentCandidatesAsync(const ResolveComponentCandidatesRequestT& request, const ResolveComponentCandidatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::ResolveComponentCandidates, request, handler, context); } /** *

Adds tags to an IoT Greengrass resource. If a tag already exists for the * resource, this operation updates the tag's value.

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

Removes a tag from an IoT Greengrass resource.

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

Updates connectivity information for a Greengrass core device.

*

Connectivity information includes endpoints and ports where client devices * can connect to an MQTT broker on the core device. When a client device calls the * IoT * Greengrass discovery API, IoT Greengrass returns connectivity information * for all of the core devices where the client device can connect. For more * information, see Connect * client devices to core devices in the IoT Greengrass Version 2 Developer * Guide.

See Also:

AWS * API Reference

*/ virtual Model::UpdateConnectivityInfoOutcome UpdateConnectivityInfo(const Model::UpdateConnectivityInfoRequest& request) const; /** * A Callable wrapper for UpdateConnectivityInfo that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateConnectivityInfoOutcomeCallable UpdateConnectivityInfoCallable(const UpdateConnectivityInfoRequestT& request) const { return SubmitCallable(&GreengrassV2Client::UpdateConnectivityInfo, request); } /** * An Async wrapper for UpdateConnectivityInfo that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateConnectivityInfoAsync(const UpdateConnectivityInfoRequestT& request, const UpdateConnectivityInfoResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&GreengrassV2Client::UpdateConnectivityInfo, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const GreengrassV2ClientConfiguration& clientConfiguration); GreengrassV2ClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace GreengrassV2 } // namespace Aws