/** * 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 ECS { namespace Model { /** *

An object representing a container instance host device.

See * Also:

AWS API * Reference

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

The path for the device on the host container instance.

*/ inline const Aws::String& GetHostPath() const{ return m_hostPath; } /** *

The path for the device on the host container instance.

*/ inline bool HostPathHasBeenSet() const { return m_hostPathHasBeenSet; } /** *

The path for the device on the host container instance.

*/ inline void SetHostPath(const Aws::String& value) { m_hostPathHasBeenSet = true; m_hostPath = value; } /** *

The path for the device on the host container instance.

*/ inline void SetHostPath(Aws::String&& value) { m_hostPathHasBeenSet = true; m_hostPath = std::move(value); } /** *

The path for the device on the host container instance.

*/ inline void SetHostPath(const char* value) { m_hostPathHasBeenSet = true; m_hostPath.assign(value); } /** *

The path for the device on the host container instance.

*/ inline Device& WithHostPath(const Aws::String& value) { SetHostPath(value); return *this;} /** *

The path for the device on the host container instance.

*/ inline Device& WithHostPath(Aws::String&& value) { SetHostPath(std::move(value)); return *this;} /** *

The path for the device on the host container instance.

*/ inline Device& WithHostPath(const char* value) { SetHostPath(value); return *this;} /** *

The path inside the container at which to expose the host device.

*/ inline const Aws::String& GetContainerPath() const{ return m_containerPath; } /** *

The path inside the container at which to expose the host device.

*/ inline bool ContainerPathHasBeenSet() const { return m_containerPathHasBeenSet; } /** *

The path inside the container at which to expose the host device.

*/ inline void SetContainerPath(const Aws::String& value) { m_containerPathHasBeenSet = true; m_containerPath = value; } /** *

The path inside the container at which to expose the host device.

*/ inline void SetContainerPath(Aws::String&& value) { m_containerPathHasBeenSet = true; m_containerPath = std::move(value); } /** *

The path inside the container at which to expose the host device.

*/ inline void SetContainerPath(const char* value) { m_containerPathHasBeenSet = true; m_containerPath.assign(value); } /** *

The path inside the container at which to expose the host device.

*/ inline Device& WithContainerPath(const Aws::String& value) { SetContainerPath(value); return *this;} /** *

The path inside the container at which to expose the host device.

*/ inline Device& WithContainerPath(Aws::String&& value) { SetContainerPath(std::move(value)); return *this;} /** *

The path inside the container at which to expose the host device.

*/ inline Device& WithContainerPath(const char* value) { SetContainerPath(value); return *this;} /** *

The explicit permissions to provide to the container for the device. By * default, the container has permissions for read, * write, and mknod for the device.

*/ inline const Aws::Vector& GetPermissions() const{ return m_permissions; } /** *

The explicit permissions to provide to the container for the device. By * default, the container has permissions for read, * write, and mknod for the device.

*/ inline bool PermissionsHasBeenSet() const { return m_permissionsHasBeenSet; } /** *

The explicit permissions to provide to the container for the device. By * default, the container has permissions for read, * write, and mknod for the device.

*/ inline void SetPermissions(const Aws::Vector& value) { m_permissionsHasBeenSet = true; m_permissions = value; } /** *

The explicit permissions to provide to the container for the device. By * default, the container has permissions for read, * write, and mknod for the device.

*/ inline void SetPermissions(Aws::Vector&& value) { m_permissionsHasBeenSet = true; m_permissions = std::move(value); } /** *

The explicit permissions to provide to the container for the device. By * default, the container has permissions for read, * write, and mknod for the device.

*/ inline Device& WithPermissions(const Aws::Vector& value) { SetPermissions(value); return *this;} /** *

The explicit permissions to provide to the container for the device. By * default, the container has permissions for read, * write, and mknod for the device.

*/ inline Device& WithPermissions(Aws::Vector&& value) { SetPermissions(std::move(value)); return *this;} /** *

The explicit permissions to provide to the container for the device. By * default, the container has permissions for read, * write, and mknod for the device.

*/ inline Device& AddPermissions(const DeviceCgroupPermission& value) { m_permissionsHasBeenSet = true; m_permissions.push_back(value); return *this; } /** *

The explicit permissions to provide to the container for the device. By * default, the container has permissions for read, * write, and mknod for the device.

*/ inline Device& AddPermissions(DeviceCgroupPermission&& value) { m_permissionsHasBeenSet = true; m_permissions.push_back(std::move(value)); return *this; } private: Aws::String m_hostPath; bool m_hostPathHasBeenSet = false; Aws::String m_containerPath; bool m_containerPathHasBeenSet = false; Aws::Vector m_permissions; bool m_permissionsHasBeenSet = false; }; } // namespace Model } // namespace ECS } // namespace Aws