/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace GreengrassV2 { namespace Model { /** *

Contains information system user and group that the IoT Greengrass Core * software uses to run component processes on the core device. For more * information, see Configure * the user and group that run components in the IoT Greengrass V2 Developer * Guide.

See Also:

AWS * API Reference

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

The POSIX system user and, optionally, group to use to run this component on * Linux core devices. The user, and group if specified, must exist on each Linux * core device. Specify the user and group separated by a colon (:) in * the following format: user:group. The group is optional. If you * don't specify a group, the IoT Greengrass Core software uses the primary user * for the group.

If you omit this parameter, the IoT Greengrass Core * software uses the default system user and group that you configure on the * Greengrass nucleus component. For more information, see Configure * the user and group that run components.

*/ inline const Aws::String& GetPosixUser() const{ return m_posixUser; } /** *

The POSIX system user and, optionally, group to use to run this component on * Linux core devices. The user, and group if specified, must exist on each Linux * core device. Specify the user and group separated by a colon (:) in * the following format: user:group. The group is optional. If you * don't specify a group, the IoT Greengrass Core software uses the primary user * for the group.

If you omit this parameter, the IoT Greengrass Core * software uses the default system user and group that you configure on the * Greengrass nucleus component. For more information, see Configure * the user and group that run components.

*/ inline bool PosixUserHasBeenSet() const { return m_posixUserHasBeenSet; } /** *

The POSIX system user and, optionally, group to use to run this component on * Linux core devices. The user, and group if specified, must exist on each Linux * core device. Specify the user and group separated by a colon (:) in * the following format: user:group. The group is optional. If you * don't specify a group, the IoT Greengrass Core software uses the primary user * for the group.

If you omit this parameter, the IoT Greengrass Core * software uses the default system user and group that you configure on the * Greengrass nucleus component. For more information, see Configure * the user and group that run components.

*/ inline void SetPosixUser(const Aws::String& value) { m_posixUserHasBeenSet = true; m_posixUser = value; } /** *

The POSIX system user and, optionally, group to use to run this component on * Linux core devices. The user, and group if specified, must exist on each Linux * core device. Specify the user and group separated by a colon (:) in * the following format: user:group. The group is optional. If you * don't specify a group, the IoT Greengrass Core software uses the primary user * for the group.

If you omit this parameter, the IoT Greengrass Core * software uses the default system user and group that you configure on the * Greengrass nucleus component. For more information, see Configure * the user and group that run components.

*/ inline void SetPosixUser(Aws::String&& value) { m_posixUserHasBeenSet = true; m_posixUser = std::move(value); } /** *

The POSIX system user and, optionally, group to use to run this component on * Linux core devices. The user, and group if specified, must exist on each Linux * core device. Specify the user and group separated by a colon (:) in * the following format: user:group. The group is optional. If you * don't specify a group, the IoT Greengrass Core software uses the primary user * for the group.

If you omit this parameter, the IoT Greengrass Core * software uses the default system user and group that you configure on the * Greengrass nucleus component. For more information, see Configure * the user and group that run components.

*/ inline void SetPosixUser(const char* value) { m_posixUserHasBeenSet = true; m_posixUser.assign(value); } /** *

The POSIX system user and, optionally, group to use to run this component on * Linux core devices. The user, and group if specified, must exist on each Linux * core device. Specify the user and group separated by a colon (:) in * the following format: user:group. The group is optional. If you * don't specify a group, the IoT Greengrass Core software uses the primary user * for the group.

If you omit this parameter, the IoT Greengrass Core * software uses the default system user and group that you configure on the * Greengrass nucleus component. For more information, see Configure * the user and group that run components.

*/ inline ComponentRunWith& WithPosixUser(const Aws::String& value) { SetPosixUser(value); return *this;} /** *

The POSIX system user and, optionally, group to use to run this component on * Linux core devices. The user, and group if specified, must exist on each Linux * core device. Specify the user and group separated by a colon (:) in * the following format: user:group. The group is optional. If you * don't specify a group, the IoT Greengrass Core software uses the primary user * for the group.

If you omit this parameter, the IoT Greengrass Core * software uses the default system user and group that you configure on the * Greengrass nucleus component. For more information, see Configure * the user and group that run components.

*/ inline ComponentRunWith& WithPosixUser(Aws::String&& value) { SetPosixUser(std::move(value)); return *this;} /** *

The POSIX system user and, optionally, group to use to run this component on * Linux core devices. The user, and group if specified, must exist on each Linux * core device. Specify the user and group separated by a colon (:) in * the following format: user:group. The group is optional. If you * don't specify a group, the IoT Greengrass Core software uses the primary user * for the group.

If you omit this parameter, the IoT Greengrass Core * software uses the default system user and group that you configure on the * Greengrass nucleus component. For more information, see Configure * the user and group that run components.

*/ inline ComponentRunWith& WithPosixUser(const char* value) { SetPosixUser(value); return *this;} /** *

The system resource limits to apply to this component's process on the core * device. IoT Greengrass currently supports this feature on only Linux core * devices.

If you omit this parameter, the IoT Greengrass Core software * uses the default system resource limits that you configure on the Greengrass * nucleus component. For more information, see Configure * system resource limits for components.

*/ inline const SystemResourceLimits& GetSystemResourceLimits() const{ return m_systemResourceLimits; } /** *

The system resource limits to apply to this component's process on the core * device. IoT Greengrass currently supports this feature on only Linux core * devices.

If you omit this parameter, the IoT Greengrass Core software * uses the default system resource limits that you configure on the Greengrass * nucleus component. For more information, see Configure * system resource limits for components.

*/ inline bool SystemResourceLimitsHasBeenSet() const { return m_systemResourceLimitsHasBeenSet; } /** *

The system resource limits to apply to this component's process on the core * device. IoT Greengrass currently supports this feature on only Linux core * devices.

If you omit this parameter, the IoT Greengrass Core software * uses the default system resource limits that you configure on the Greengrass * nucleus component. For more information, see Configure * system resource limits for components.

*/ inline void SetSystemResourceLimits(const SystemResourceLimits& value) { m_systemResourceLimitsHasBeenSet = true; m_systemResourceLimits = value; } /** *

The system resource limits to apply to this component's process on the core * device. IoT Greengrass currently supports this feature on only Linux core * devices.

If you omit this parameter, the IoT Greengrass Core software * uses the default system resource limits that you configure on the Greengrass * nucleus component. For more information, see Configure * system resource limits for components.

*/ inline void SetSystemResourceLimits(SystemResourceLimits&& value) { m_systemResourceLimitsHasBeenSet = true; m_systemResourceLimits = std::move(value); } /** *

The system resource limits to apply to this component's process on the core * device. IoT Greengrass currently supports this feature on only Linux core * devices.

If you omit this parameter, the IoT Greengrass Core software * uses the default system resource limits that you configure on the Greengrass * nucleus component. For more information, see Configure * system resource limits for components.

*/ inline ComponentRunWith& WithSystemResourceLimits(const SystemResourceLimits& value) { SetSystemResourceLimits(value); return *this;} /** *

The system resource limits to apply to this component's process on the core * device. IoT Greengrass currently supports this feature on only Linux core * devices.

If you omit this parameter, the IoT Greengrass Core software * uses the default system resource limits that you configure on the Greengrass * nucleus component. For more information, see Configure * system resource limits for components.

*/ inline ComponentRunWith& WithSystemResourceLimits(SystemResourceLimits&& value) { SetSystemResourceLimits(std::move(value)); return *this;} /** *

The Windows user to use to run this component on Windows core devices. The * user must exist on each Windows core device, and its name and password must be * in the LocalSystem account's Credentials Manager instance.

If you omit * this parameter, the IoT Greengrass Core software uses the default Windows user * that you configure on the Greengrass nucleus component. For more information, * see Configure * the user and group that run components.

*/ inline const Aws::String& GetWindowsUser() const{ return m_windowsUser; } /** *

The Windows user to use to run this component on Windows core devices. The * user must exist on each Windows core device, and its name and password must be * in the LocalSystem account's Credentials Manager instance.

If you omit * this parameter, the IoT Greengrass Core software uses the default Windows user * that you configure on the Greengrass nucleus component. For more information, * see Configure * the user and group that run components.

*/ inline bool WindowsUserHasBeenSet() const { return m_windowsUserHasBeenSet; } /** *

The Windows user to use to run this component on Windows core devices. The * user must exist on each Windows core device, and its name and password must be * in the LocalSystem account's Credentials Manager instance.

If you omit * this parameter, the IoT Greengrass Core software uses the default Windows user * that you configure on the Greengrass nucleus component. For more information, * see Configure * the user and group that run components.

*/ inline void SetWindowsUser(const Aws::String& value) { m_windowsUserHasBeenSet = true; m_windowsUser = value; } /** *

The Windows user to use to run this component on Windows core devices. The * user must exist on each Windows core device, and its name and password must be * in the LocalSystem account's Credentials Manager instance.

If you omit * this parameter, the IoT Greengrass Core software uses the default Windows user * that you configure on the Greengrass nucleus component. For more information, * see Configure * the user and group that run components.

*/ inline void SetWindowsUser(Aws::String&& value) { m_windowsUserHasBeenSet = true; m_windowsUser = std::move(value); } /** *

The Windows user to use to run this component on Windows core devices. The * user must exist on each Windows core device, and its name and password must be * in the LocalSystem account's Credentials Manager instance.

If you omit * this parameter, the IoT Greengrass Core software uses the default Windows user * that you configure on the Greengrass nucleus component. For more information, * see Configure * the user and group that run components.

*/ inline void SetWindowsUser(const char* value) { m_windowsUserHasBeenSet = true; m_windowsUser.assign(value); } /** *

The Windows user to use to run this component on Windows core devices. The * user must exist on each Windows core device, and its name and password must be * in the LocalSystem account's Credentials Manager instance.

If you omit * this parameter, the IoT Greengrass Core software uses the default Windows user * that you configure on the Greengrass nucleus component. For more information, * see Configure * the user and group that run components.

*/ inline ComponentRunWith& WithWindowsUser(const Aws::String& value) { SetWindowsUser(value); return *this;} /** *

The Windows user to use to run this component on Windows core devices. The * user must exist on each Windows core device, and its name and password must be * in the LocalSystem account's Credentials Manager instance.

If you omit * this parameter, the IoT Greengrass Core software uses the default Windows user * that you configure on the Greengrass nucleus component. For more information, * see Configure * the user and group that run components.

*/ inline ComponentRunWith& WithWindowsUser(Aws::String&& value) { SetWindowsUser(std::move(value)); return *this;} /** *

The Windows user to use to run this component on Windows core devices. The * user must exist on each Windows core device, and its name and password must be * in the LocalSystem account's Credentials Manager instance.

If you omit * this parameter, the IoT Greengrass Core software uses the default Windows user * that you configure on the Greengrass nucleus component. For more information, * see Configure * the user and group that run components.

*/ inline ComponentRunWith& WithWindowsUser(const char* value) { SetWindowsUser(value); return *this;} private: Aws::String m_posixUser; bool m_posixUserHasBeenSet = false; SystemResourceLimits m_systemResourceLimits; bool m_systemResourceLimitsHasBeenSet = false; Aws::String m_windowsUser; bool m_windowsUserHasBeenSet = false; }; } // namespace Model } // namespace GreengrassV2 } // namespace Aws