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

This is used when you're using an Amazon Elastic File System file system for * job storage. For more information, see Amazon * EFS Volumes in the Batch User Guide.

See Also:

AWS * API Reference

*/ class EFSVolumeConfiguration { public: AWS_BATCH_API EFSVolumeConfiguration(); AWS_BATCH_API EFSVolumeConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_BATCH_API EFSVolumeConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_BATCH_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 is used instead. Specifying / has the same effect as * omitting this parameter. The maximum length is 4,096 characters.

*

If an EFS access point is specified in the authorizationConfig, * the root directory parameter must either be omitted or set to /, * which enforces the path set on the Amazon 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 is used instead. Specifying / has the same effect as * omitting this parameter. The maximum length is 4,096 characters.

*

If an EFS access point is specified in the authorizationConfig, * the root directory parameter must either be omitted or set to /, * which enforces the path set on the Amazon 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 is used instead. Specifying / has the same effect as * omitting this parameter. The maximum length is 4,096 characters.

*

If an EFS access point is specified in the authorizationConfig, * the root directory parameter must either be omitted or set to /, * which enforces the path set on the Amazon 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 is used instead. Specifying / has the same effect as * omitting this parameter. The maximum length is 4,096 characters.

*

If an EFS access point is specified in the authorizationConfig, * the root directory parameter must either be omitted or set to /, * which enforces the path set on the Amazon 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 is used instead. Specifying / has the same effect as * omitting this parameter. The maximum length is 4,096 characters.

*

If an EFS access point is specified in the authorizationConfig, * the root directory parameter must either be omitted or set to /, * which enforces the path set on the Amazon 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 is used instead. Specifying / has the same effect as * omitting this parameter. The maximum length is 4,096 characters.

*

If an EFS access point is specified in the authorizationConfig, * the root directory parameter must either be omitted or set to /, * which enforces the path set on the Amazon 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 is used instead. Specifying / has the same effect as * omitting this parameter. The maximum length is 4,096 characters.

*

If an EFS access point is specified in the authorizationConfig, * the root directory parameter must either be omitted or set to /, * which enforces the path set on the Amazon 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 is used instead. Specifying / has the same effect as * omitting this parameter. The maximum length is 4,096 characters.

*

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

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

Determines whether to enable encryption for Amazon EFS data in transit * between the Amazon ECS host and the Amazon EFS server. Transit encryption must * be enabled 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 enable encryption for Amazon EFS data in transit * between the Amazon ECS host and the Amazon EFS server. Transit encryption must * be enabled 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 enable encryption for Amazon EFS data in transit * between the Amazon ECS host and the Amazon EFS server. Transit encryption must * be enabled 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 enable encryption for Amazon EFS data in transit * between the Amazon ECS host and the Amazon EFS server. Transit encryption must * be enabled 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 enable encryption for Amazon EFS data in transit * between the Amazon ECS host and the Amazon EFS server. Transit encryption must * be enabled 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 enable encryption for Amazon EFS data in transit * between the Amazon ECS host and the Amazon EFS server. Transit encryption must * be enabled 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 don't specify a transit encryption port, it uses * the port selection strategy that the Amazon EFS mount helper uses. The value * must be between 0 and 65,535. 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 don't specify a transit encryption port, it uses * the port selection strategy that the Amazon EFS mount helper uses. The value * must be between 0 and 65,535. 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 don't specify a transit encryption port, it uses * the port selection strategy that the Amazon EFS mount helper uses. The value * must be between 0 and 65,535. 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 don't specify a transit encryption port, it uses * the port selection strategy that the Amazon EFS mount helper uses. The value * must be between 0 and 65,535. 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 Batch } // namespace Aws