1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/batch/Batch_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSString.h> 9 #include <aws/batch/model/EFSTransitEncryption.h> 10 #include <aws/batch/model/EFSAuthorizationConfig.h> 11 #include <utility> 12 13 namespace Aws 14 { 15 namespace Utils 16 { 17 namespace Json 18 { 19 class JsonValue; 20 class JsonView; 21 } // namespace Json 22 } // namespace Utils 23 namespace Batch 24 { 25 namespace Model 26 { 27 28 /** 29 * <p>This is used when you're using an Amazon Elastic File System file system for 30 * job storage. For more information, see <a 31 * href="https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html">Amazon 32 * EFS Volumes</a> in the <i>Batch User Guide</i>.</p><p><h3>See Also:</h3> <a 33 * href="http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/EFSVolumeConfiguration">AWS 34 * API Reference</a></p> 35 */ 36 class AWS_BATCH_API EFSVolumeConfiguration 37 { 38 public: 39 EFSVolumeConfiguration(); 40 EFSVolumeConfiguration(Aws::Utils::Json::JsonView jsonValue); 41 EFSVolumeConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); 42 Aws::Utils::Json::JsonValue Jsonize() const; 43 44 45 /** 46 * <p>The Amazon EFS file system ID to use.</p> 47 */ GetFileSystemId()48 inline const Aws::String& GetFileSystemId() const{ return m_fileSystemId; } 49 50 /** 51 * <p>The Amazon EFS file system ID to use.</p> 52 */ FileSystemIdHasBeenSet()53 inline bool FileSystemIdHasBeenSet() const { return m_fileSystemIdHasBeenSet; } 54 55 /** 56 * <p>The Amazon EFS file system ID to use.</p> 57 */ SetFileSystemId(const Aws::String & value)58 inline void SetFileSystemId(const Aws::String& value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId = value; } 59 60 /** 61 * <p>The Amazon EFS file system ID to use.</p> 62 */ SetFileSystemId(Aws::String && value)63 inline void SetFileSystemId(Aws::String&& value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId = std::move(value); } 64 65 /** 66 * <p>The Amazon EFS file system ID to use.</p> 67 */ SetFileSystemId(const char * value)68 inline void SetFileSystemId(const char* value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId.assign(value); } 69 70 /** 71 * <p>The Amazon EFS file system ID to use.</p> 72 */ WithFileSystemId(const Aws::String & value)73 inline EFSVolumeConfiguration& WithFileSystemId(const Aws::String& value) { SetFileSystemId(value); return *this;} 74 75 /** 76 * <p>The Amazon EFS file system ID to use.</p> 77 */ WithFileSystemId(Aws::String && value)78 inline EFSVolumeConfiguration& WithFileSystemId(Aws::String&& value) { SetFileSystemId(std::move(value)); return *this;} 79 80 /** 81 * <p>The Amazon EFS file system ID to use.</p> 82 */ WithFileSystemId(const char * value)83 inline EFSVolumeConfiguration& WithFileSystemId(const char* value) { SetFileSystemId(value); return *this;} 84 85 86 /** 87 * <p>The directory within the Amazon EFS file system to mount as the root 88 * directory inside the host. If this parameter is omitted, the root of the Amazon 89 * EFS volume is used instead. Specifying <code>/</code> has the same effect as 90 * omitting this parameter. The maximum length is 4,096 characters.</p> 91 * <p>If an EFS access point is specified in the <code>authorizationConfig</code>, 92 * the root directory parameter must either be omitted or set to <code>/</code>, 93 * which enforces the path set on the Amazon EFS access point.</p> 94 */ GetRootDirectory()95 inline const Aws::String& GetRootDirectory() const{ return m_rootDirectory; } 96 97 /** 98 * <p>The directory within the Amazon EFS file system to mount as the root 99 * directory inside the host. If this parameter is omitted, the root of the Amazon 100 * EFS volume is used instead. Specifying <code>/</code> has the same effect as 101 * omitting this parameter. The maximum length is 4,096 characters.</p> 102 * <p>If an EFS access point is specified in the <code>authorizationConfig</code>, 103 * the root directory parameter must either be omitted or set to <code>/</code>, 104 * which enforces the path set on the Amazon EFS access point.</p> 105 */ RootDirectoryHasBeenSet()106 inline bool RootDirectoryHasBeenSet() const { return m_rootDirectoryHasBeenSet; } 107 108 /** 109 * <p>The directory within the Amazon EFS file system to mount as the root 110 * directory inside the host. If this parameter is omitted, the root of the Amazon 111 * EFS volume is used instead. Specifying <code>/</code> has the same effect as 112 * omitting this parameter. The maximum length is 4,096 characters.</p> 113 * <p>If an EFS access point is specified in the <code>authorizationConfig</code>, 114 * the root directory parameter must either be omitted or set to <code>/</code>, 115 * which enforces the path set on the Amazon EFS access point.</p> 116 */ SetRootDirectory(const Aws::String & value)117 inline void SetRootDirectory(const Aws::String& value) { m_rootDirectoryHasBeenSet = true; m_rootDirectory = value; } 118 119 /** 120 * <p>The directory within the Amazon EFS file system to mount as the root 121 * directory inside the host. If this parameter is omitted, the root of the Amazon 122 * EFS volume is used instead. Specifying <code>/</code> has the same effect as 123 * omitting this parameter. The maximum length is 4,096 characters.</p> 124 * <p>If an EFS access point is specified in the <code>authorizationConfig</code>, 125 * the root directory parameter must either be omitted or set to <code>/</code>, 126 * which enforces the path set on the Amazon EFS access point.</p> 127 */ SetRootDirectory(Aws::String && value)128 inline void SetRootDirectory(Aws::String&& value) { m_rootDirectoryHasBeenSet = true; m_rootDirectory = std::move(value); } 129 130 /** 131 * <p>The directory within the Amazon EFS file system to mount as the root 132 * directory inside the host. If this parameter is omitted, the root of the Amazon 133 * EFS volume is used instead. Specifying <code>/</code> has the same effect as 134 * omitting this parameter. The maximum length is 4,096 characters.</p> 135 * <p>If an EFS access point is specified in the <code>authorizationConfig</code>, 136 * the root directory parameter must either be omitted or set to <code>/</code>, 137 * which enforces the path set on the Amazon EFS access point.</p> 138 */ SetRootDirectory(const char * value)139 inline void SetRootDirectory(const char* value) { m_rootDirectoryHasBeenSet = true; m_rootDirectory.assign(value); } 140 141 /** 142 * <p>The directory within the Amazon EFS file system to mount as the root 143 * directory inside the host. If this parameter is omitted, the root of the Amazon 144 * EFS volume is used instead. Specifying <code>/</code> has the same effect as 145 * omitting this parameter. The maximum length is 4,096 characters.</p> 146 * <p>If an EFS access point is specified in the <code>authorizationConfig</code>, 147 * the root directory parameter must either be omitted or set to <code>/</code>, 148 * which enforces the path set on the Amazon EFS access point.</p> 149 */ WithRootDirectory(const Aws::String & value)150 inline EFSVolumeConfiguration& WithRootDirectory(const Aws::String& value) { SetRootDirectory(value); return *this;} 151 152 /** 153 * <p>The directory within the Amazon EFS file system to mount as the root 154 * directory inside the host. If this parameter is omitted, the root of the Amazon 155 * EFS volume is used instead. Specifying <code>/</code> has the same effect as 156 * omitting this parameter. The maximum length is 4,096 characters.</p> 157 * <p>If an EFS access point is specified in the <code>authorizationConfig</code>, 158 * the root directory parameter must either be omitted or set to <code>/</code>, 159 * which enforces the path set on the Amazon EFS access point.</p> 160 */ WithRootDirectory(Aws::String && value)161 inline EFSVolumeConfiguration& WithRootDirectory(Aws::String&& value) { SetRootDirectory(std::move(value)); return *this;} 162 163 /** 164 * <p>The directory within the Amazon EFS file system to mount as the root 165 * directory inside the host. If this parameter is omitted, the root of the Amazon 166 * EFS volume is used instead. Specifying <code>/</code> has the same effect as 167 * omitting this parameter. The maximum length is 4,096 characters.</p> 168 * <p>If an EFS access point is specified in the <code>authorizationConfig</code>, 169 * the root directory parameter must either be omitted or set to <code>/</code>, 170 * which enforces the path set on the Amazon EFS access point.</p> 171 */ WithRootDirectory(const char * value)172 inline EFSVolumeConfiguration& WithRootDirectory(const char* value) { SetRootDirectory(value); return *this;} 173 174 175 /** 176 * <p>Determines whether to enable encryption for Amazon EFS data in transit 177 * between the Amazon ECS host and the Amazon EFS server. Transit encryption must 178 * be enabled if Amazon EFS IAM authorization is used. If this parameter is 179 * omitted, the default value of <code>DISABLED</code> is used. For more 180 * information, see <a 181 * href="https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html">Encrypting 182 * data in transit</a> in the <i>Amazon Elastic File System User Guide</i>.</p> 183 */ GetTransitEncryption()184 inline const EFSTransitEncryption& GetTransitEncryption() const{ return m_transitEncryption; } 185 186 /** 187 * <p>Determines whether to enable encryption for Amazon EFS data in transit 188 * between the Amazon ECS host and the Amazon EFS server. Transit encryption must 189 * be enabled if Amazon EFS IAM authorization is used. If this parameter is 190 * omitted, the default value of <code>DISABLED</code> is used. For more 191 * information, see <a 192 * href="https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html">Encrypting 193 * data in transit</a> in the <i>Amazon Elastic File System User Guide</i>.</p> 194 */ TransitEncryptionHasBeenSet()195 inline bool TransitEncryptionHasBeenSet() const { return m_transitEncryptionHasBeenSet; } 196 197 /** 198 * <p>Determines whether to enable encryption for Amazon EFS data in transit 199 * between the Amazon ECS host and the Amazon EFS server. Transit encryption must 200 * be enabled if Amazon EFS IAM authorization is used. If this parameter is 201 * omitted, the default value of <code>DISABLED</code> is used. For more 202 * information, see <a 203 * href="https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html">Encrypting 204 * data in transit</a> in the <i>Amazon Elastic File System User Guide</i>.</p> 205 */ SetTransitEncryption(const EFSTransitEncryption & value)206 inline void SetTransitEncryption(const EFSTransitEncryption& value) { m_transitEncryptionHasBeenSet = true; m_transitEncryption = value; } 207 208 /** 209 * <p>Determines whether to enable encryption for Amazon EFS data in transit 210 * between the Amazon ECS host and the Amazon EFS server. Transit encryption must 211 * be enabled if Amazon EFS IAM authorization is used. If this parameter is 212 * omitted, the default value of <code>DISABLED</code> is used. For more 213 * information, see <a 214 * href="https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html">Encrypting 215 * data in transit</a> in the <i>Amazon Elastic File System User Guide</i>.</p> 216 */ SetTransitEncryption(EFSTransitEncryption && value)217 inline void SetTransitEncryption(EFSTransitEncryption&& value) { m_transitEncryptionHasBeenSet = true; m_transitEncryption = std::move(value); } 218 219 /** 220 * <p>Determines whether to enable encryption for Amazon EFS data in transit 221 * between the Amazon ECS host and the Amazon EFS server. Transit encryption must 222 * be enabled if Amazon EFS IAM authorization is used. If this parameter is 223 * omitted, the default value of <code>DISABLED</code> is used. For more 224 * information, see <a 225 * href="https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html">Encrypting 226 * data in transit</a> in the <i>Amazon Elastic File System User Guide</i>.</p> 227 */ WithTransitEncryption(const EFSTransitEncryption & value)228 inline EFSVolumeConfiguration& WithTransitEncryption(const EFSTransitEncryption& value) { SetTransitEncryption(value); return *this;} 229 230 /** 231 * <p>Determines whether to enable encryption for Amazon EFS data in transit 232 * between the Amazon ECS host and the Amazon EFS server. Transit encryption must 233 * be enabled if Amazon EFS IAM authorization is used. If this parameter is 234 * omitted, the default value of <code>DISABLED</code> is used. For more 235 * information, see <a 236 * href="https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html">Encrypting 237 * data in transit</a> in the <i>Amazon Elastic File System User Guide</i>.</p> 238 */ WithTransitEncryption(EFSTransitEncryption && value)239 inline EFSVolumeConfiguration& WithTransitEncryption(EFSTransitEncryption&& value) { SetTransitEncryption(std::move(value)); return *this;} 240 241 242 /** 243 * <p>The port to use when sending encrypted data between the Amazon ECS host and 244 * the Amazon EFS server. If you don't specify a transit encryption port, it uses 245 * the port selection strategy that the Amazon EFS mount helper uses. The value 246 * must be between 0 and 65,535. For more information, see <a 247 * href="https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html">EFS Mount 248 * Helper</a> in the <i>Amazon Elastic File System User Guide</i>.</p> 249 */ GetTransitEncryptionPort()250 inline int GetTransitEncryptionPort() const{ return m_transitEncryptionPort; } 251 252 /** 253 * <p>The port to use when sending encrypted data between the Amazon ECS host and 254 * the Amazon EFS server. If you don't specify a transit encryption port, it uses 255 * the port selection strategy that the Amazon EFS mount helper uses. The value 256 * must be between 0 and 65,535. For more information, see <a 257 * href="https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html">EFS Mount 258 * Helper</a> in the <i>Amazon Elastic File System User Guide</i>.</p> 259 */ TransitEncryptionPortHasBeenSet()260 inline bool TransitEncryptionPortHasBeenSet() const { return m_transitEncryptionPortHasBeenSet; } 261 262 /** 263 * <p>The port to use when sending encrypted data between the Amazon ECS host and 264 * the Amazon EFS server. If you don't specify a transit encryption port, it uses 265 * the port selection strategy that the Amazon EFS mount helper uses. The value 266 * must be between 0 and 65,535. For more information, see <a 267 * href="https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html">EFS Mount 268 * Helper</a> in the <i>Amazon Elastic File System User Guide</i>.</p> 269 */ SetTransitEncryptionPort(int value)270 inline void SetTransitEncryptionPort(int value) { m_transitEncryptionPortHasBeenSet = true; m_transitEncryptionPort = value; } 271 272 /** 273 * <p>The port to use when sending encrypted data between the Amazon ECS host and 274 * the Amazon EFS server. If you don't specify a transit encryption port, it uses 275 * the port selection strategy that the Amazon EFS mount helper uses. The value 276 * must be between 0 and 65,535. For more information, see <a 277 * href="https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html">EFS Mount 278 * Helper</a> in the <i>Amazon Elastic File System User Guide</i>.</p> 279 */ WithTransitEncryptionPort(int value)280 inline EFSVolumeConfiguration& WithTransitEncryptionPort(int value) { SetTransitEncryptionPort(value); return *this;} 281 282 283 /** 284 * <p>The authorization configuration details for the Amazon EFS file system.</p> 285 */ GetAuthorizationConfig()286 inline const EFSAuthorizationConfig& GetAuthorizationConfig() const{ return m_authorizationConfig; } 287 288 /** 289 * <p>The authorization configuration details for the Amazon EFS file system.</p> 290 */ AuthorizationConfigHasBeenSet()291 inline bool AuthorizationConfigHasBeenSet() const { return m_authorizationConfigHasBeenSet; } 292 293 /** 294 * <p>The authorization configuration details for the Amazon EFS file system.</p> 295 */ SetAuthorizationConfig(const EFSAuthorizationConfig & value)296 inline void SetAuthorizationConfig(const EFSAuthorizationConfig& value) { m_authorizationConfigHasBeenSet = true; m_authorizationConfig = value; } 297 298 /** 299 * <p>The authorization configuration details for the Amazon EFS file system.</p> 300 */ SetAuthorizationConfig(EFSAuthorizationConfig && value)301 inline void SetAuthorizationConfig(EFSAuthorizationConfig&& value) { m_authorizationConfigHasBeenSet = true; m_authorizationConfig = std::move(value); } 302 303 /** 304 * <p>The authorization configuration details for the Amazon EFS file system.</p> 305 */ WithAuthorizationConfig(const EFSAuthorizationConfig & value)306 inline EFSVolumeConfiguration& WithAuthorizationConfig(const EFSAuthorizationConfig& value) { SetAuthorizationConfig(value); return *this;} 307 308 /** 309 * <p>The authorization configuration details for the Amazon EFS file system.</p> 310 */ WithAuthorizationConfig(EFSAuthorizationConfig && value)311 inline EFSVolumeConfiguration& WithAuthorizationConfig(EFSAuthorizationConfig&& value) { SetAuthorizationConfig(std::move(value)); return *this;} 312 313 private: 314 315 Aws::String m_fileSystemId; 316 bool m_fileSystemIdHasBeenSet; 317 318 Aws::String m_rootDirectory; 319 bool m_rootDirectoryHasBeenSet; 320 321 EFSTransitEncryption m_transitEncryption; 322 bool m_transitEncryptionHasBeenSet; 323 324 int m_transitEncryptionPort; 325 bool m_transitEncryptionPortHasBeenSet; 326 327 EFSAuthorizationConfig m_authorizationConfig; 328 bool m_authorizationConfigHasBeenSet; 329 }; 330 331 } // namespace Model 332 } // namespace Batch 333 } // namespace Aws 334