/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #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 to deploy.

See Also:

* AWS * API Reference

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

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 ComponentDeploymentSpecification& WithComponentVersion(const Aws::String& value) { SetComponentVersion(value); return *this;} /** *

The version of the component.

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

The version of the component.

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

The configuration updates to deploy for the component. You can define * reset updates and merge updates. A reset updates the keys that you * specify to the default configuration for the component. A merge updates the core * device's component configuration with the keys and values that you specify. The * IoT Greengrass Core software applies reset updates before it applies merge * updates. For more information, see Update * component configurations in the IoT Greengrass V2 Developer * Guide.

*/ inline const ComponentConfigurationUpdate& GetConfigurationUpdate() const{ return m_configurationUpdate; } /** *

The configuration updates to deploy for the component. You can define * reset updates and merge updates. A reset updates the keys that you * specify to the default configuration for the component. A merge updates the core * device's component configuration with the keys and values that you specify. The * IoT Greengrass Core software applies reset updates before it applies merge * updates. For more information, see Update * component configurations in the IoT Greengrass V2 Developer * Guide.

*/ inline bool ConfigurationUpdateHasBeenSet() const { return m_configurationUpdateHasBeenSet; } /** *

The configuration updates to deploy for the component. You can define * reset updates and merge updates. A reset updates the keys that you * specify to the default configuration for the component. A merge updates the core * device's component configuration with the keys and values that you specify. The * IoT Greengrass Core software applies reset updates before it applies merge * updates. For more information, see Update * component configurations in the IoT Greengrass V2 Developer * Guide.

*/ inline void SetConfigurationUpdate(const ComponentConfigurationUpdate& value) { m_configurationUpdateHasBeenSet = true; m_configurationUpdate = value; } /** *

The configuration updates to deploy for the component. You can define * reset updates and merge updates. A reset updates the keys that you * specify to the default configuration for the component. A merge updates the core * device's component configuration with the keys and values that you specify. The * IoT Greengrass Core software applies reset updates before it applies merge * updates. For more information, see Update * component configurations in the IoT Greengrass V2 Developer * Guide.

*/ inline void SetConfigurationUpdate(ComponentConfigurationUpdate&& value) { m_configurationUpdateHasBeenSet = true; m_configurationUpdate = std::move(value); } /** *

The configuration updates to deploy for the component. You can define * reset updates and merge updates. A reset updates the keys that you * specify to the default configuration for the component. A merge updates the core * device's component configuration with the keys and values that you specify. The * IoT Greengrass Core software applies reset updates before it applies merge * updates. For more information, see Update * component configurations in the IoT Greengrass V2 Developer * Guide.

*/ inline ComponentDeploymentSpecification& WithConfigurationUpdate(const ComponentConfigurationUpdate& value) { SetConfigurationUpdate(value); return *this;} /** *

The configuration updates to deploy for the component. You can define * reset updates and merge updates. A reset updates the keys that you * specify to the default configuration for the component. A merge updates the core * device's component configuration with the keys and values that you specify. The * IoT Greengrass Core software applies reset updates before it applies merge * updates. For more information, see Update * component configurations in the IoT Greengrass V2 Developer * Guide.

*/ inline ComponentDeploymentSpecification& WithConfigurationUpdate(ComponentConfigurationUpdate&& value) { SetConfigurationUpdate(std::move(value)); return *this;} /** *

The system user and group that the IoT Greengrass Core software uses to run * component processes on the core device. If you omit this parameter, the IoT * Greengrass Core software uses the system user and group that you configure for * the core device. For more information, see Configure * the user and group that run components in the IoT Greengrass V2 Developer * Guide.

*/ inline const ComponentRunWith& GetRunWith() const{ return m_runWith; } /** *

The system user and group that the IoT Greengrass Core software uses to run * component processes on the core device. If you omit this parameter, the IoT * Greengrass Core software uses the system user and group that you configure for * the core device. For more information, see Configure * the user and group that run components in the IoT Greengrass V2 Developer * Guide.

*/ inline bool RunWithHasBeenSet() const { return m_runWithHasBeenSet; } /** *

The system user and group that the IoT Greengrass Core software uses to run * component processes on the core device. If you omit this parameter, the IoT * Greengrass Core software uses the system user and group that you configure for * the core device. For more information, see Configure * the user and group that run components in the IoT Greengrass V2 Developer * Guide.

*/ inline void SetRunWith(const ComponentRunWith& value) { m_runWithHasBeenSet = true; m_runWith = value; } /** *

The system user and group that the IoT Greengrass Core software uses to run * component processes on the core device. If you omit this parameter, the IoT * Greengrass Core software uses the system user and group that you configure for * the core device. For more information, see Configure * the user and group that run components in the IoT Greengrass V2 Developer * Guide.

*/ inline void SetRunWith(ComponentRunWith&& value) { m_runWithHasBeenSet = true; m_runWith = std::move(value); } /** *

The system user and group that the IoT Greengrass Core software uses to run * component processes on the core device. If you omit this parameter, the IoT * Greengrass Core software uses the system user and group that you configure for * the core device. For more information, see Configure * the user and group that run components in the IoT Greengrass V2 Developer * Guide.

*/ inline ComponentDeploymentSpecification& WithRunWith(const ComponentRunWith& value) { SetRunWith(value); return *this;} /** *

The system user and group that the IoT Greengrass Core software uses to run * component processes on the core device. If you omit this parameter, the IoT * Greengrass Core software uses the system user and group that you configure for * the core device. For more information, see Configure * the user and group that run components in the IoT Greengrass V2 Developer * Guide.

*/ inline ComponentDeploymentSpecification& WithRunWith(ComponentRunWith&& value) { SetRunWith(std::move(value)); return *this;} private: Aws::String m_componentVersion; bool m_componentVersionHasBeenSet = false; ComponentConfigurationUpdate m_configurationUpdate; bool m_configurationUpdateHasBeenSet = false; ComponentRunWith m_runWith; bool m_runWithHasBeenSet = false; }; } // namespace Model } // namespace GreengrassV2 } // namespace Aws