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

This parameter is specified when you're using an Amazon Elastic File System * file system for task storage. For more information, see Amazon * EFS volumes in the Amazon Elastic Container Service Developer * Guide.

See Also:

AWS * API Reference

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

The Amazon EFS file system ID to use.

*/ inline const Aws::String& GetFileSystemId() const{ return m_fileSystemId; } /** *

The Amazon EFS file system ID to use.

*/ inline bool FileSystemIdHasBeenSet() const { return m_fileSystemIdHasBeenSet; } /** *

The Amazon EFS file system ID to use.

*/ inline void SetFileSystemId(const Aws::String& value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId = value; } /** *

The Amazon EFS file system ID to use.

*/ inline void SetFileSystemId(Aws::String&& value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId = std::move(value); } /** *

The Amazon EFS file system ID to use.

*/ inline void SetFileSystemId(const char* value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId.assign(value); } /** *

The Amazon EFS file system ID to use.

*/ inline EFSVolumeConfiguration& WithFileSystemId(const Aws::String& value) { SetFileSystemId(value); return *this;} /** *

The Amazon EFS file system ID to use.

*/ inline EFSVolumeConfiguration& WithFileSystemId(Aws::String&& value) { SetFileSystemId(std::move(value)); return *this;} /** *

The Amazon EFS file system ID to use.

*/ inline EFSVolumeConfiguration& WithFileSystemId(const char* value) { SetFileSystemId(value); return *this;} /** *

The directory within the Amazon EFS file system to mount as the root * directory inside the host. If this parameter is omitted, the root of the Amazon * EFS volume will be used. Specifying / will have the same effect as * omitting this parameter.

If an EFS access point is specified * in the authorizationConfig, the root directory parameter must * either be omitted or set to / which will enforce the path set on * the EFS access point.

*/ inline const Aws::String& GetRootDirectory() const{ return m_rootDirectory; } /** *

The directory within the Amazon EFS file system to mount as the root * directory inside the host. If this parameter is omitted, the root of the Amazon * EFS volume will be used. Specifying / will have the same effect as * omitting this parameter.

If an EFS access point is specified * in the authorizationConfig, the root directory parameter must * either be omitted or set to / which will enforce the path set on * the EFS access point.

*/ inline bool RootDirectoryHasBeenSet() const { return m_rootDirectoryHasBeenSet; } /** *

The directory within the Amazon EFS file system to mount as the root * directory inside the host. If this parameter is omitted, the root of the Amazon * EFS volume will be used. Specifying / will have the same effect as * omitting this parameter.

If an EFS access point is specified * in the authorizationConfig, the root directory parameter must * either be omitted or set to / which will enforce the path set on * the EFS access point.

*/ inline void SetRootDirectory(const Aws::String& value) { m_rootDirectoryHasBeenSet = true; m_rootDirectory = value; } /** *

The directory within the Amazon EFS file system to mount as the root * directory inside the host. If this parameter is omitted, the root of the Amazon * EFS volume will be used. Specifying / will have the same effect as * omitting this parameter.

If an EFS access point is specified * in the authorizationConfig, the root directory parameter must * either be omitted or set to / which will enforce the path set on * the EFS access point.

*/ inline void SetRootDirectory(Aws::String&& value) { m_rootDirectoryHasBeenSet = true; m_rootDirectory = std::move(value); } /** *

The directory within the Amazon EFS file system to mount as the root * directory inside the host. If this parameter is omitted, the root of the Amazon * EFS volume will be used. Specifying / will have the same effect as * omitting this parameter.

If an EFS access point is specified * in the authorizationConfig, the root directory parameter must * either be omitted or set to / which will enforce the path set on * the EFS access point.

*/ inline void SetRootDirectory(const char* value) { m_rootDirectoryHasBeenSet = true; m_rootDirectory.assign(value); } /** *

The directory within the Amazon EFS file system to mount as the root * directory inside the host. If this parameter is omitted, the root of the Amazon * EFS volume will be used. Specifying / will have the same effect as * omitting this parameter.

If an EFS access point is specified * in the authorizationConfig, the root directory parameter must * either be omitted or set to / which will enforce the path set on * the EFS access point.

*/ inline EFSVolumeConfiguration& WithRootDirectory(const Aws::String& value) { SetRootDirectory(value); return *this;} /** *

The directory within the Amazon EFS file system to mount as the root * directory inside the host. If this parameter is omitted, the root of the Amazon * EFS volume will be used. Specifying / will have the same effect as * omitting this parameter.

If an EFS access point is specified * in the authorizationConfig, the root directory parameter must * either be omitted or set to / which will enforce the path set on * the EFS access point.

*/ inline EFSVolumeConfiguration& WithRootDirectory(Aws::String&& value) { SetRootDirectory(std::move(value)); return *this;} /** *

The directory within the Amazon EFS file system to mount as the root * directory inside the host. If this parameter is omitted, the root of the Amazon * EFS volume will be used. Specifying / will have the same effect as * omitting this parameter.

If an EFS access point is specified * in the authorizationConfig, the root directory parameter must * either be omitted or set to / which will enforce the path set on * the EFS access point.

*/ inline EFSVolumeConfiguration& WithRootDirectory(const char* value) { SetRootDirectory(value); return *this;} /** *

Determines whether to use encryption for Amazon EFS data in transit between * the Amazon ECS host and the Amazon EFS server. Transit encryption must be turned * on if Amazon EFS IAM authorization is used. If this parameter is omitted, the * default value of DISABLED is used. For more information, see Encrypting * data in transit in the Amazon Elastic File System User Guide.

*/ inline const EFSTransitEncryption& GetTransitEncryption() const{ return m_transitEncryption; } /** *

Determines whether to use encryption for Amazon EFS data in transit between * the Amazon ECS host and the Amazon EFS server. Transit encryption must be turned * on if Amazon EFS IAM authorization is used. If this parameter is omitted, the * default value of DISABLED is used. For more information, see Encrypting * data in transit in the Amazon Elastic File System User Guide.

*/ inline bool TransitEncryptionHasBeenSet() const { return m_transitEncryptionHasBeenSet; } /** *

Determines whether to use encryption for Amazon EFS data in transit between * the Amazon ECS host and the Amazon EFS server. Transit encryption must be turned * on if Amazon EFS IAM authorization is used. If this parameter is omitted, the * default value of DISABLED is used. For more information, see Encrypting * data in transit in the Amazon Elastic File System User Guide.

*/ inline void SetTransitEncryption(const EFSTransitEncryption& value) { m_transitEncryptionHasBeenSet = true; m_transitEncryption = value; } /** *

Determines whether to use encryption for Amazon EFS data in transit between * the Amazon ECS host and the Amazon EFS server. Transit encryption must be turned * on if Amazon EFS IAM authorization is used. If this parameter is omitted, the * default value of DISABLED is used. For more information, see Encrypting * data in transit in the Amazon Elastic File System User Guide.

*/ inline void SetTransitEncryption(EFSTransitEncryption&& value) { m_transitEncryptionHasBeenSet = true; m_transitEncryption = std::move(value); } /** *

Determines whether to use encryption for Amazon EFS data in transit between * the Amazon ECS host and the Amazon EFS server. Transit encryption must be turned * on if Amazon EFS IAM authorization is used. If this parameter is omitted, the * default value of DISABLED is used. For more information, see Encrypting * data in transit in the Amazon Elastic File System User Guide.

*/ inline EFSVolumeConfiguration& WithTransitEncryption(const EFSTransitEncryption& value) { SetTransitEncryption(value); return *this;} /** *

Determines whether to use encryption for Amazon EFS data in transit between * the Amazon ECS host and the Amazon EFS server. Transit encryption must be turned * on if Amazon EFS IAM authorization is used. If this parameter is omitted, the * default value of DISABLED is used. For more information, see Encrypting * data in transit in the Amazon Elastic File System User Guide.

*/ inline EFSVolumeConfiguration& WithTransitEncryption(EFSTransitEncryption&& value) { SetTransitEncryption(std::move(value)); return *this;} /** *

The port to use when sending encrypted data between the Amazon ECS host and * the Amazon EFS server. If you do not specify a transit encryption port, it will * use the port selection strategy that the Amazon EFS mount helper uses. For more * information, see EFS mount * helper in the Amazon Elastic File System User Guide.

*/ inline int GetTransitEncryptionPort() const{ return m_transitEncryptionPort; } /** *

The port to use when sending encrypted data between the Amazon ECS host and * the Amazon EFS server. If you do not specify a transit encryption port, it will * use the port selection strategy that the Amazon EFS mount helper uses. For more * information, see EFS mount * helper in the Amazon Elastic File System User Guide.

*/ inline bool TransitEncryptionPortHasBeenSet() const { return m_transitEncryptionPortHasBeenSet; } /** *

The port to use when sending encrypted data between the Amazon ECS host and * the Amazon EFS server. If you do not specify a transit encryption port, it will * use the port selection strategy that the Amazon EFS mount helper uses. For more * information, see EFS mount * helper in the Amazon Elastic File System User Guide.

*/ inline void SetTransitEncryptionPort(int value) { m_transitEncryptionPortHasBeenSet = true; m_transitEncryptionPort = value; } /** *

The port to use when sending encrypted data between the Amazon ECS host and * the Amazon EFS server. If you do not specify a transit encryption port, it will * use the port selection strategy that the Amazon EFS mount helper uses. For more * information, see EFS mount * helper in the Amazon Elastic File System User Guide.

*/ inline EFSVolumeConfiguration& WithTransitEncryptionPort(int value) { SetTransitEncryptionPort(value); return *this;} /** *

The authorization configuration details for the Amazon EFS file system.

*/ inline const EFSAuthorizationConfig& GetAuthorizationConfig() const{ return m_authorizationConfig; } /** *

The authorization configuration details for the Amazon EFS file system.

*/ inline bool AuthorizationConfigHasBeenSet() const { return m_authorizationConfigHasBeenSet; } /** *

The authorization configuration details for the Amazon EFS file system.

*/ inline void SetAuthorizationConfig(const EFSAuthorizationConfig& value) { m_authorizationConfigHasBeenSet = true; m_authorizationConfig = value; } /** *

The authorization configuration details for the Amazon EFS file system.

*/ inline void SetAuthorizationConfig(EFSAuthorizationConfig&& value) { m_authorizationConfigHasBeenSet = true; m_authorizationConfig = std::move(value); } /** *

The authorization configuration details for the Amazon EFS file system.

*/ inline EFSVolumeConfiguration& WithAuthorizationConfig(const EFSAuthorizationConfig& value) { SetAuthorizationConfig(value); return *this;} /** *

The authorization configuration details for the Amazon EFS file system.

*/ inline EFSVolumeConfiguration& WithAuthorizationConfig(EFSAuthorizationConfig&& value) { SetAuthorizationConfig(std::move(value)); return *this;} private: Aws::String m_fileSystemId; bool m_fileSystemIdHasBeenSet = false; Aws::String m_rootDirectory; bool m_rootDirectoryHasBeenSet = false; EFSTransitEncryption m_transitEncryption; bool m_transitEncryptionHasBeenSet = false; int m_transitEncryptionPort; bool m_transitEncryptionPortHasBeenSet = false; EFSAuthorizationConfig m_authorizationConfig; bool m_authorizationConfigHasBeenSet = false; }; } // namespace Model } // namespace ECS } // namespace Aws