/** * 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 Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace GreengrassV2 { namespace Model { /** *

Contains information about a component on a Greengrass core * device.

See Also:

AWS * API Reference

*/ class InstalledComponent { public: AWS_GREENGRASSV2_API InstalledComponent(); AWS_GREENGRASSV2_API InstalledComponent(Aws::Utils::Json::JsonView jsonValue); AWS_GREENGRASSV2_API InstalledComponent& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_GREENGRASSV2_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of the component.

*/ inline const Aws::String& GetComponentName() const{ return m_componentName; } /** *

The name of the component.

*/ inline bool ComponentNameHasBeenSet() const { return m_componentNameHasBeenSet; } /** *

The name of the component.

*/ inline void SetComponentName(const Aws::String& value) { m_componentNameHasBeenSet = true; m_componentName = value; } /** *

The name of the component.

*/ inline void SetComponentName(Aws::String&& value) { m_componentNameHasBeenSet = true; m_componentName = std::move(value); } /** *

The name of the component.

*/ inline void SetComponentName(const char* value) { m_componentNameHasBeenSet = true; m_componentName.assign(value); } /** *

The name of the component.

*/ inline InstalledComponent& WithComponentName(const Aws::String& value) { SetComponentName(value); return *this;} /** *

The name of the component.

*/ inline InstalledComponent& WithComponentName(Aws::String&& value) { SetComponentName(std::move(value)); return *this;} /** *

The name of the component.

*/ inline InstalledComponent& WithComponentName(const char* value) { SetComponentName(value); return *this;} /** *

The version of the component.

*/ inline const Aws::String& GetComponentVersion() const{ return m_componentVersion; } /** *

The version of the component.

*/ inline bool ComponentVersionHasBeenSet() const { return m_componentVersionHasBeenSet; } /** *

The version of the component.

*/ inline void SetComponentVersion(const Aws::String& value) { m_componentVersionHasBeenSet = true; m_componentVersion = value; } /** *

The version of the component.

*/ inline void SetComponentVersion(Aws::String&& value) { m_componentVersionHasBeenSet = true; m_componentVersion = std::move(value); } /** *

The version of the component.

*/ inline void SetComponentVersion(const char* value) { m_componentVersionHasBeenSet = true; m_componentVersion.assign(value); } /** *

The version of the component.

*/ inline InstalledComponent& WithComponentVersion(const Aws::String& value) { SetComponentVersion(value); return *this;} /** *

The version of the component.

*/ inline InstalledComponent& WithComponentVersion(Aws::String&& value) { SetComponentVersion(std::move(value)); return *this;} /** *

The version of the component.

*/ inline InstalledComponent& WithComponentVersion(const char* value) { SetComponentVersion(value); return *this;} /** *

The lifecycle state of the component.

*/ inline const InstalledComponentLifecycleState& GetLifecycleState() const{ return m_lifecycleState; } /** *

The lifecycle state of the component.

*/ inline bool LifecycleStateHasBeenSet() const { return m_lifecycleStateHasBeenSet; } /** *

The lifecycle state of the component.

*/ inline void SetLifecycleState(const InstalledComponentLifecycleState& value) { m_lifecycleStateHasBeenSet = true; m_lifecycleState = value; } /** *

The lifecycle state of the component.

*/ inline void SetLifecycleState(InstalledComponentLifecycleState&& value) { m_lifecycleStateHasBeenSet = true; m_lifecycleState = std::move(value); } /** *

The lifecycle state of the component.

*/ inline InstalledComponent& WithLifecycleState(const InstalledComponentLifecycleState& value) { SetLifecycleState(value); return *this;} /** *

The lifecycle state of the component.

*/ inline InstalledComponent& WithLifecycleState(InstalledComponentLifecycleState&& value) { SetLifecycleState(std::move(value)); return *this;} /** *

A detailed response about the lifecycle state of the component that explains * the reason why a component has an error or is broken.

*/ inline const Aws::String& GetLifecycleStateDetails() const{ return m_lifecycleStateDetails; } /** *

A detailed response about the lifecycle state of the component that explains * the reason why a component has an error or is broken.

*/ inline bool LifecycleStateDetailsHasBeenSet() const { return m_lifecycleStateDetailsHasBeenSet; } /** *

A detailed response about the lifecycle state of the component that explains * the reason why a component has an error or is broken.

*/ inline void SetLifecycleStateDetails(const Aws::String& value) { m_lifecycleStateDetailsHasBeenSet = true; m_lifecycleStateDetails = value; } /** *

A detailed response about the lifecycle state of the component that explains * the reason why a component has an error or is broken.

*/ inline void SetLifecycleStateDetails(Aws::String&& value) { m_lifecycleStateDetailsHasBeenSet = true; m_lifecycleStateDetails = std::move(value); } /** *

A detailed response about the lifecycle state of the component that explains * the reason why a component has an error or is broken.

*/ inline void SetLifecycleStateDetails(const char* value) { m_lifecycleStateDetailsHasBeenSet = true; m_lifecycleStateDetails.assign(value); } /** *

A detailed response about the lifecycle state of the component that explains * the reason why a component has an error or is broken.

*/ inline InstalledComponent& WithLifecycleStateDetails(const Aws::String& value) { SetLifecycleStateDetails(value); return *this;} /** *

A detailed response about the lifecycle state of the component that explains * the reason why a component has an error or is broken.

*/ inline InstalledComponent& WithLifecycleStateDetails(Aws::String&& value) { SetLifecycleStateDetails(std::move(value)); return *this;} /** *

A detailed response about the lifecycle state of the component that explains * the reason why a component has an error or is broken.

*/ inline InstalledComponent& WithLifecycleStateDetails(const char* value) { SetLifecycleStateDetails(value); return *this;} /** *

Whether or not the component is a root component.

*/ inline bool GetIsRoot() const{ return m_isRoot; } /** *

Whether or not the component is a root component.

*/ inline bool IsRootHasBeenSet() const { return m_isRootHasBeenSet; } /** *

Whether or not the component is a root component.

*/ inline void SetIsRoot(bool value) { m_isRootHasBeenSet = true; m_isRoot = value; } /** *

Whether or not the component is a root component.

*/ inline InstalledComponent& WithIsRoot(bool value) { SetIsRoot(value); return *this;} /** *

The status of how current the data is.

This response is based off of * component state changes. The status reflects component disruptions and * deployments. If a component only sees a configuration update during a * deployment, it might not undergo a state change and this status would not be * updated.

*/ inline const Aws::Utils::DateTime& GetLastStatusChangeTimestamp() const{ return m_lastStatusChangeTimestamp; } /** *

The status of how current the data is.

This response is based off of * component state changes. The status reflects component disruptions and * deployments. If a component only sees a configuration update during a * deployment, it might not undergo a state change and this status would not be * updated.

*/ inline bool LastStatusChangeTimestampHasBeenSet() const { return m_lastStatusChangeTimestampHasBeenSet; } /** *

The status of how current the data is.

This response is based off of * component state changes. The status reflects component disruptions and * deployments. If a component only sees a configuration update during a * deployment, it might not undergo a state change and this status would not be * updated.

*/ inline void SetLastStatusChangeTimestamp(const Aws::Utils::DateTime& value) { m_lastStatusChangeTimestampHasBeenSet = true; m_lastStatusChangeTimestamp = value; } /** *

The status of how current the data is.

This response is based off of * component state changes. The status reflects component disruptions and * deployments. If a component only sees a configuration update during a * deployment, it might not undergo a state change and this status would not be * updated.

*/ inline void SetLastStatusChangeTimestamp(Aws::Utils::DateTime&& value) { m_lastStatusChangeTimestampHasBeenSet = true; m_lastStatusChangeTimestamp = std::move(value); } /** *

The status of how current the data is.

This response is based off of * component state changes. The status reflects component disruptions and * deployments. If a component only sees a configuration update during a * deployment, it might not undergo a state change and this status would not be * updated.

*/ inline InstalledComponent& WithLastStatusChangeTimestamp(const Aws::Utils::DateTime& value) { SetLastStatusChangeTimestamp(value); return *this;} /** *

The status of how current the data is.

This response is based off of * component state changes. The status reflects component disruptions and * deployments. If a component only sees a configuration update during a * deployment, it might not undergo a state change and this status would not be * updated.

*/ inline InstalledComponent& WithLastStatusChangeTimestamp(Aws::Utils::DateTime&& value) { SetLastStatusChangeTimestamp(std::move(value)); return *this;} /** *

The last time the Greengrass core device sent a message containing a * component's state to the Amazon Web Services Cloud.

A component does not * need to see a state change for this field to update.

*/ inline const Aws::Utils::DateTime& GetLastReportedTimestamp() const{ return m_lastReportedTimestamp; } /** *

The last time the Greengrass core device sent a message containing a * component's state to the Amazon Web Services Cloud.

A component does not * need to see a state change for this field to update.

*/ inline bool LastReportedTimestampHasBeenSet() const { return m_lastReportedTimestampHasBeenSet; } /** *

The last time the Greengrass core device sent a message containing a * component's state to the Amazon Web Services Cloud.

A component does not * need to see a state change for this field to update.

*/ inline void SetLastReportedTimestamp(const Aws::Utils::DateTime& value) { m_lastReportedTimestampHasBeenSet = true; m_lastReportedTimestamp = value; } /** *

The last time the Greengrass core device sent a message containing a * component's state to the Amazon Web Services Cloud.

A component does not * need to see a state change for this field to update.

*/ inline void SetLastReportedTimestamp(Aws::Utils::DateTime&& value) { m_lastReportedTimestampHasBeenSet = true; m_lastReportedTimestamp = std::move(value); } /** *

The last time the Greengrass core device sent a message containing a * component's state to the Amazon Web Services Cloud.

A component does not * need to see a state change for this field to update.

*/ inline InstalledComponent& WithLastReportedTimestamp(const Aws::Utils::DateTime& value) { SetLastReportedTimestamp(value); return *this;} /** *

The last time the Greengrass core device sent a message containing a * component's state to the Amazon Web Services Cloud.

A component does not * need to see a state change for this field to update.

*/ inline InstalledComponent& WithLastReportedTimestamp(Aws::Utils::DateTime&& value) { SetLastReportedTimestamp(std::move(value)); return *this;} /** *

The most recent deployment source that brought the component to the * Greengrass core device. For a thing group deployment or thing deployment, the * source will be the The ID of the deployment. and for local deployments it will * be LOCAL.

Any deployment will attempt to reinstall * currently broken components on the device, which will update the last * installation source.

*/ inline const Aws::String& GetLastInstallationSource() const{ return m_lastInstallationSource; } /** *

The most recent deployment source that brought the component to the * Greengrass core device. For a thing group deployment or thing deployment, the * source will be the The ID of the deployment. and for local deployments it will * be LOCAL.

Any deployment will attempt to reinstall * currently broken components on the device, which will update the last * installation source.

*/ inline bool LastInstallationSourceHasBeenSet() const { return m_lastInstallationSourceHasBeenSet; } /** *

The most recent deployment source that brought the component to the * Greengrass core device. For a thing group deployment or thing deployment, the * source will be the The ID of the deployment. and for local deployments it will * be LOCAL.

Any deployment will attempt to reinstall * currently broken components on the device, which will update the last * installation source.

*/ inline void SetLastInstallationSource(const Aws::String& value) { m_lastInstallationSourceHasBeenSet = true; m_lastInstallationSource = value; } /** *

The most recent deployment source that brought the component to the * Greengrass core device. For a thing group deployment or thing deployment, the * source will be the The ID of the deployment. and for local deployments it will * be LOCAL.

Any deployment will attempt to reinstall * currently broken components on the device, which will update the last * installation source.

*/ inline void SetLastInstallationSource(Aws::String&& value) { m_lastInstallationSourceHasBeenSet = true; m_lastInstallationSource = std::move(value); } /** *

The most recent deployment source that brought the component to the * Greengrass core device. For a thing group deployment or thing deployment, the * source will be the The ID of the deployment. and for local deployments it will * be LOCAL.

Any deployment will attempt to reinstall * currently broken components on the device, which will update the last * installation source.

*/ inline void SetLastInstallationSource(const char* value) { m_lastInstallationSourceHasBeenSet = true; m_lastInstallationSource.assign(value); } /** *

The most recent deployment source that brought the component to the * Greengrass core device. For a thing group deployment or thing deployment, the * source will be the The ID of the deployment. and for local deployments it will * be LOCAL.

Any deployment will attempt to reinstall * currently broken components on the device, which will update the last * installation source.

*/ inline InstalledComponent& WithLastInstallationSource(const Aws::String& value) { SetLastInstallationSource(value); return *this;} /** *

The most recent deployment source that brought the component to the * Greengrass core device. For a thing group deployment or thing deployment, the * source will be the The ID of the deployment. and for local deployments it will * be LOCAL.

Any deployment will attempt to reinstall * currently broken components on the device, which will update the last * installation source.

*/ inline InstalledComponent& WithLastInstallationSource(Aws::String&& value) { SetLastInstallationSource(std::move(value)); return *this;} /** *

The most recent deployment source that brought the component to the * Greengrass core device. For a thing group deployment or thing deployment, the * source will be the The ID of the deployment. and for local deployments it will * be LOCAL.

Any deployment will attempt to reinstall * currently broken components on the device, which will update the last * installation source.

*/ inline InstalledComponent& WithLastInstallationSource(const char* value) { SetLastInstallationSource(value); return *this;} /** *

The status codes that indicate the reason for failure whenever the * lifecycleState has an error or is in a broken state.

*

Greengrass nucleus v2.8.0 or later is required to get an accurate * lifecycleStatusCodes response. This response can be inaccurate in * earlier Greengrass nucleus versions.

*/ inline const Aws::Vector& GetLifecycleStatusCodes() const{ return m_lifecycleStatusCodes; } /** *

The status codes that indicate the reason for failure whenever the * lifecycleState has an error or is in a broken state.

*

Greengrass nucleus v2.8.0 or later is required to get an accurate * lifecycleStatusCodes response. This response can be inaccurate in * earlier Greengrass nucleus versions.

*/ inline bool LifecycleStatusCodesHasBeenSet() const { return m_lifecycleStatusCodesHasBeenSet; } /** *

The status codes that indicate the reason for failure whenever the * lifecycleState has an error or is in a broken state.

*

Greengrass nucleus v2.8.0 or later is required to get an accurate * lifecycleStatusCodes response. This response can be inaccurate in * earlier Greengrass nucleus versions.

*/ inline void SetLifecycleStatusCodes(const Aws::Vector& value) { m_lifecycleStatusCodesHasBeenSet = true; m_lifecycleStatusCodes = value; } /** *

The status codes that indicate the reason for failure whenever the * lifecycleState has an error or is in a broken state.

*

Greengrass nucleus v2.8.0 or later is required to get an accurate * lifecycleStatusCodes response. This response can be inaccurate in * earlier Greengrass nucleus versions.

*/ inline void SetLifecycleStatusCodes(Aws::Vector&& value) { m_lifecycleStatusCodesHasBeenSet = true; m_lifecycleStatusCodes = std::move(value); } /** *

The status codes that indicate the reason for failure whenever the * lifecycleState has an error or is in a broken state.

*

Greengrass nucleus v2.8.0 or later is required to get an accurate * lifecycleStatusCodes response. This response can be inaccurate in * earlier Greengrass nucleus versions.

*/ inline InstalledComponent& WithLifecycleStatusCodes(const Aws::Vector& value) { SetLifecycleStatusCodes(value); return *this;} /** *

The status codes that indicate the reason for failure whenever the * lifecycleState has an error or is in a broken state.

*

Greengrass nucleus v2.8.0 or later is required to get an accurate * lifecycleStatusCodes response. This response can be inaccurate in * earlier Greengrass nucleus versions.

*/ inline InstalledComponent& WithLifecycleStatusCodes(Aws::Vector&& value) { SetLifecycleStatusCodes(std::move(value)); return *this;} /** *

The status codes that indicate the reason for failure whenever the * lifecycleState has an error or is in a broken state.

*

Greengrass nucleus v2.8.0 or later is required to get an accurate * lifecycleStatusCodes response. This response can be inaccurate in * earlier Greengrass nucleus versions.

*/ inline InstalledComponent& AddLifecycleStatusCodes(const Aws::String& value) { m_lifecycleStatusCodesHasBeenSet = true; m_lifecycleStatusCodes.push_back(value); return *this; } /** *

The status codes that indicate the reason for failure whenever the * lifecycleState has an error or is in a broken state.

*

Greengrass nucleus v2.8.0 or later is required to get an accurate * lifecycleStatusCodes response. This response can be inaccurate in * earlier Greengrass nucleus versions.

*/ inline InstalledComponent& AddLifecycleStatusCodes(Aws::String&& value) { m_lifecycleStatusCodesHasBeenSet = true; m_lifecycleStatusCodes.push_back(std::move(value)); return *this; } /** *

The status codes that indicate the reason for failure whenever the * lifecycleState has an error or is in a broken state.

*

Greengrass nucleus v2.8.0 or later is required to get an accurate * lifecycleStatusCodes response. This response can be inaccurate in * earlier Greengrass nucleus versions.

*/ inline InstalledComponent& AddLifecycleStatusCodes(const char* value) { m_lifecycleStatusCodesHasBeenSet = true; m_lifecycleStatusCodes.push_back(value); return *this; } private: Aws::String m_componentName; bool m_componentNameHasBeenSet = false; Aws::String m_componentVersion; bool m_componentVersionHasBeenSet = false; InstalledComponentLifecycleState m_lifecycleState; bool m_lifecycleStateHasBeenSet = false; Aws::String m_lifecycleStateDetails; bool m_lifecycleStateDetailsHasBeenSet = false; bool m_isRoot; bool m_isRootHasBeenSet = false; Aws::Utils::DateTime m_lastStatusChangeTimestamp; bool m_lastStatusChangeTimestampHasBeenSet = false; Aws::Utils::DateTime m_lastReportedTimestamp; bool m_lastReportedTimestampHasBeenSet = false; Aws::String m_lastInstallationSource; bool m_lastInstallationSourceHasBeenSet = false; Aws::Vector m_lifecycleStatusCodes; bool m_lifecycleStatusCodesHasBeenSet = false; }; } // namespace Model } // namespace GreengrassV2 } // namespace Aws