/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace EFS { namespace Model { /** */ class CreateFileSystemRequest : public EFSRequest { public: AWS_EFS_API CreateFileSystemRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateFileSystem"; } AWS_EFS_API Aws::String SerializePayload() const override; /** *

A string of up to 64 ASCII characters. Amazon EFS uses this to ensure * idempotent creation.

*/ inline const Aws::String& GetCreationToken() const{ return m_creationToken; } /** *

A string of up to 64 ASCII characters. Amazon EFS uses this to ensure * idempotent creation.

*/ inline bool CreationTokenHasBeenSet() const { return m_creationTokenHasBeenSet; } /** *

A string of up to 64 ASCII characters. Amazon EFS uses this to ensure * idempotent creation.

*/ inline void SetCreationToken(const Aws::String& value) { m_creationTokenHasBeenSet = true; m_creationToken = value; } /** *

A string of up to 64 ASCII characters. Amazon EFS uses this to ensure * idempotent creation.

*/ inline void SetCreationToken(Aws::String&& value) { m_creationTokenHasBeenSet = true; m_creationToken = std::move(value); } /** *

A string of up to 64 ASCII characters. Amazon EFS uses this to ensure * idempotent creation.

*/ inline void SetCreationToken(const char* value) { m_creationTokenHasBeenSet = true; m_creationToken.assign(value); } /** *

A string of up to 64 ASCII characters. Amazon EFS uses this to ensure * idempotent creation.

*/ inline CreateFileSystemRequest& WithCreationToken(const Aws::String& value) { SetCreationToken(value); return *this;} /** *

A string of up to 64 ASCII characters. Amazon EFS uses this to ensure * idempotent creation.

*/ inline CreateFileSystemRequest& WithCreationToken(Aws::String&& value) { SetCreationToken(std::move(value)); return *this;} /** *

A string of up to 64 ASCII characters. Amazon EFS uses this to ensure * idempotent creation.

*/ inline CreateFileSystemRequest& WithCreationToken(const char* value) { SetCreationToken(value); return *this;} /** *

The performance mode of the file system. We recommend * generalPurpose performance mode for most file systems. File systems * using the maxIO performance mode can scale to higher levels of * aggregate throughput and operations per second with a tradeoff of slightly * higher latencies for most file operations. The performance mode can't be changed * after the file system has been created.

The maxIO * mode is not supported on file systems using One Zone storage classes.

* */ inline const PerformanceMode& GetPerformanceMode() const{ return m_performanceMode; } /** *

The performance mode of the file system. We recommend * generalPurpose performance mode for most file systems. File systems * using the maxIO performance mode can scale to higher levels of * aggregate throughput and operations per second with a tradeoff of slightly * higher latencies for most file operations. The performance mode can't be changed * after the file system has been created.

The maxIO * mode is not supported on file systems using One Zone storage classes.

* */ inline bool PerformanceModeHasBeenSet() const { return m_performanceModeHasBeenSet; } /** *

The performance mode of the file system. We recommend * generalPurpose performance mode for most file systems. File systems * using the maxIO performance mode can scale to higher levels of * aggregate throughput and operations per second with a tradeoff of slightly * higher latencies for most file operations. The performance mode can't be changed * after the file system has been created.

The maxIO * mode is not supported on file systems using One Zone storage classes.

* */ inline void SetPerformanceMode(const PerformanceMode& value) { m_performanceModeHasBeenSet = true; m_performanceMode = value; } /** *

The performance mode of the file system. We recommend * generalPurpose performance mode for most file systems. File systems * using the maxIO performance mode can scale to higher levels of * aggregate throughput and operations per second with a tradeoff of slightly * higher latencies for most file operations. The performance mode can't be changed * after the file system has been created.

The maxIO * mode is not supported on file systems using One Zone storage classes.

* */ inline void SetPerformanceMode(PerformanceMode&& value) { m_performanceModeHasBeenSet = true; m_performanceMode = std::move(value); } /** *

The performance mode of the file system. We recommend * generalPurpose performance mode for most file systems. File systems * using the maxIO performance mode can scale to higher levels of * aggregate throughput and operations per second with a tradeoff of slightly * higher latencies for most file operations. The performance mode can't be changed * after the file system has been created.

The maxIO * mode is not supported on file systems using One Zone storage classes.

* */ inline CreateFileSystemRequest& WithPerformanceMode(const PerformanceMode& value) { SetPerformanceMode(value); return *this;} /** *

The performance mode of the file system. We recommend * generalPurpose performance mode for most file systems. File systems * using the maxIO performance mode can scale to higher levels of * aggregate throughput and operations per second with a tradeoff of slightly * higher latencies for most file operations. The performance mode can't be changed * after the file system has been created.

The maxIO * mode is not supported on file systems using One Zone storage classes.

* */ inline CreateFileSystemRequest& WithPerformanceMode(PerformanceMode&& value) { SetPerformanceMode(std::move(value)); return *this;} /** *

A Boolean value that, if true, creates an encrypted file system. When * creating an encrypted file system, you have the option of specifying an existing * Key Management Service key (KMS key). If you don't specify a KMS key, then the * default KMS key for Amazon EFS, /aws/elasticfilesystem, is used to * protect the encrypted file system.

*/ inline bool GetEncrypted() const{ return m_encrypted; } /** *

A Boolean value that, if true, creates an encrypted file system. When * creating an encrypted file system, you have the option of specifying an existing * Key Management Service key (KMS key). If you don't specify a KMS key, then the * default KMS key for Amazon EFS, /aws/elasticfilesystem, is used to * protect the encrypted file system.

*/ inline bool EncryptedHasBeenSet() const { return m_encryptedHasBeenSet; } /** *

A Boolean value that, if true, creates an encrypted file system. When * creating an encrypted file system, you have the option of specifying an existing * Key Management Service key (KMS key). If you don't specify a KMS key, then the * default KMS key for Amazon EFS, /aws/elasticfilesystem, is used to * protect the encrypted file system.

*/ inline void SetEncrypted(bool value) { m_encryptedHasBeenSet = true; m_encrypted = value; } /** *

A Boolean value that, if true, creates an encrypted file system. When * creating an encrypted file system, you have the option of specifying an existing * Key Management Service key (KMS key). If you don't specify a KMS key, then the * default KMS key for Amazon EFS, /aws/elasticfilesystem, is used to * protect the encrypted file system.

*/ inline CreateFileSystemRequest& WithEncrypted(bool value) { SetEncrypted(value); return *this;} /** *

The ID of the KMS key that you want to use to protect the encrypted file * system. This parameter is required only if you want to use a non-default KMS * key. If this parameter is not specified, the default KMS key for Amazon EFS is * used. You can specify a KMS key ID using the following formats:

  • *

    Key ID - A unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - An * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - An ARN * for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *

If you use KmsKeyId, you must set the * CreateFileSystemRequest$Encrypted parameter to true.

*

EFS accepts only symmetric KMS keys. You cannot use asymmetric KMS keys with * Amazon EFS file systems.

*/ inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } /** *

The ID of the KMS key that you want to use to protect the encrypted file * system. This parameter is required only if you want to use a non-default KMS * key. If this parameter is not specified, the default KMS key for Amazon EFS is * used. You can specify a KMS key ID using the following formats:

  • *

    Key ID - A unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - An * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - An ARN * for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *

If you use KmsKeyId, you must set the * CreateFileSystemRequest$Encrypted parameter to true.

*

EFS accepts only symmetric KMS keys. You cannot use asymmetric KMS keys with * Amazon EFS file systems.

*/ inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } /** *

The ID of the KMS key that you want to use to protect the encrypted file * system. This parameter is required only if you want to use a non-default KMS * key. If this parameter is not specified, the default KMS key for Amazon EFS is * used. You can specify a KMS key ID using the following formats:

  • *

    Key ID - A unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - An * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - An ARN * for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *

If you use KmsKeyId, you must set the * CreateFileSystemRequest$Encrypted parameter to true.

*

EFS accepts only symmetric KMS keys. You cannot use asymmetric KMS keys with * Amazon EFS file systems.

*/ inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } /** *

The ID of the KMS key that you want to use to protect the encrypted file * system. This parameter is required only if you want to use a non-default KMS * key. If this parameter is not specified, the default KMS key for Amazon EFS is * used. You can specify a KMS key ID using the following formats:

  • *

    Key ID - A unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - An * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - An ARN * for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *

If you use KmsKeyId, you must set the * CreateFileSystemRequest$Encrypted parameter to true.

*

EFS accepts only symmetric KMS keys. You cannot use asymmetric KMS keys with * Amazon EFS file systems.

*/ inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } /** *

The ID of the KMS key that you want to use to protect the encrypted file * system. This parameter is required only if you want to use a non-default KMS * key. If this parameter is not specified, the default KMS key for Amazon EFS is * used. You can specify a KMS key ID using the following formats:

  • *

    Key ID - A unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - An * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - An ARN * for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *

If you use KmsKeyId, you must set the * CreateFileSystemRequest$Encrypted parameter to true.

*

EFS accepts only symmetric KMS keys. You cannot use asymmetric KMS keys with * Amazon EFS file systems.

*/ inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } /** *

The ID of the KMS key that you want to use to protect the encrypted file * system. This parameter is required only if you want to use a non-default KMS * key. If this parameter is not specified, the default KMS key for Amazon EFS is * used. You can specify a KMS key ID using the following formats:

  • *

    Key ID - A unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - An * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - An ARN * for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *

If you use KmsKeyId, you must set the * CreateFileSystemRequest$Encrypted parameter to true.

*

EFS accepts only symmetric KMS keys. You cannot use asymmetric KMS keys with * Amazon EFS file systems.

*/ inline CreateFileSystemRequest& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

The ID of the KMS key that you want to use to protect the encrypted file * system. This parameter is required only if you want to use a non-default KMS * key. If this parameter is not specified, the default KMS key for Amazon EFS is * used. You can specify a KMS key ID using the following formats:

  • *

    Key ID - A unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - An * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - An ARN * for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *

If you use KmsKeyId, you must set the * CreateFileSystemRequest$Encrypted parameter to true.

*

EFS accepts only symmetric KMS keys. You cannot use asymmetric KMS keys with * Amazon EFS file systems.

*/ inline CreateFileSystemRequest& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} /** *

The ID of the KMS key that you want to use to protect the encrypted file * system. This parameter is required only if you want to use a non-default KMS * key. If this parameter is not specified, the default KMS key for Amazon EFS is * used. You can specify a KMS key ID using the following formats:

  • *

    Key ID - A unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - An * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - An ARN * for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *

If you use KmsKeyId, you must set the * CreateFileSystemRequest$Encrypted parameter to true.

*

EFS accepts only symmetric KMS keys. You cannot use asymmetric KMS keys with * Amazon EFS file systems.

*/ inline CreateFileSystemRequest& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} /** *

Specifies the throughput mode for the file system. The mode can be * bursting, provisioned, or elastic. If you * set ThroughputMode to provisioned, you must also set a * value for ProvisionedThroughputInMibps. After you create the file * system, you can decrease your file system's throughput in Provisioned Throughput * mode or change between the throughput modes, with certain time restrictions. For * more information, see Specifying * throughput with provisioned mode in the Amazon EFS User Guide.

*

Default is bursting.

*/ inline const ThroughputMode& GetThroughputMode() const{ return m_throughputMode; } /** *

Specifies the throughput mode for the file system. The mode can be * bursting, provisioned, or elastic. If you * set ThroughputMode to provisioned, you must also set a * value for ProvisionedThroughputInMibps. After you create the file * system, you can decrease your file system's throughput in Provisioned Throughput * mode or change between the throughput modes, with certain time restrictions. For * more information, see Specifying * throughput with provisioned mode in the Amazon EFS User Guide.

*

Default is bursting.

*/ inline bool ThroughputModeHasBeenSet() const { return m_throughputModeHasBeenSet; } /** *

Specifies the throughput mode for the file system. The mode can be * bursting, provisioned, or elastic. If you * set ThroughputMode to provisioned, you must also set a * value for ProvisionedThroughputInMibps. After you create the file * system, you can decrease your file system's throughput in Provisioned Throughput * mode or change between the throughput modes, with certain time restrictions. For * more information, see Specifying * throughput with provisioned mode in the Amazon EFS User Guide.

*

Default is bursting.

*/ inline void SetThroughputMode(const ThroughputMode& value) { m_throughputModeHasBeenSet = true; m_throughputMode = value; } /** *

Specifies the throughput mode for the file system. The mode can be * bursting, provisioned, or elastic. If you * set ThroughputMode to provisioned, you must also set a * value for ProvisionedThroughputInMibps. After you create the file * system, you can decrease your file system's throughput in Provisioned Throughput * mode or change between the throughput modes, with certain time restrictions. For * more information, see Specifying * throughput with provisioned mode in the Amazon EFS User Guide.

*

Default is bursting.

*/ inline void SetThroughputMode(ThroughputMode&& value) { m_throughputModeHasBeenSet = true; m_throughputMode = std::move(value); } /** *

Specifies the throughput mode for the file system. The mode can be * bursting, provisioned, or elastic. If you * set ThroughputMode to provisioned, you must also set a * value for ProvisionedThroughputInMibps. After you create the file * system, you can decrease your file system's throughput in Provisioned Throughput * mode or change between the throughput modes, with certain time restrictions. For * more information, see Specifying * throughput with provisioned mode in the Amazon EFS User Guide.

*

Default is bursting.

*/ inline CreateFileSystemRequest& WithThroughputMode(const ThroughputMode& value) { SetThroughputMode(value); return *this;} /** *

Specifies the throughput mode for the file system. The mode can be * bursting, provisioned, or elastic. If you * set ThroughputMode to provisioned, you must also set a * value for ProvisionedThroughputInMibps. After you create the file * system, you can decrease your file system's throughput in Provisioned Throughput * mode or change between the throughput modes, with certain time restrictions. For * more information, see Specifying * throughput with provisioned mode in the Amazon EFS User Guide.

*

Default is bursting.

*/ inline CreateFileSystemRequest& WithThroughputMode(ThroughputMode&& value) { SetThroughputMode(std::move(value)); return *this;} /** *

The throughput, measured in MiB/s, that you want to provision for a file * system that you're creating. Valid values are 1-1024. Required if * ThroughputMode is set to provisioned. The upper limit * for throughput is 1024 MiB/s. To increase this limit, contact Amazon Web * Services Support. For more information, see Amazon * EFS quotas that you can increase in the Amazon EFS User Guide.

*/ inline double GetProvisionedThroughputInMibps() const{ return m_provisionedThroughputInMibps; } /** *

The throughput, measured in MiB/s, that you want to provision for a file * system that you're creating. Valid values are 1-1024. Required if * ThroughputMode is set to provisioned. The upper limit * for throughput is 1024 MiB/s. To increase this limit, contact Amazon Web * Services Support. For more information, see Amazon * EFS quotas that you can increase in the Amazon EFS User Guide.

*/ inline bool ProvisionedThroughputInMibpsHasBeenSet() const { return m_provisionedThroughputInMibpsHasBeenSet; } /** *

The throughput, measured in MiB/s, that you want to provision for a file * system that you're creating. Valid values are 1-1024. Required if * ThroughputMode is set to provisioned. The upper limit * for throughput is 1024 MiB/s. To increase this limit, contact Amazon Web * Services Support. For more information, see Amazon * EFS quotas that you can increase in the Amazon EFS User Guide.

*/ inline void SetProvisionedThroughputInMibps(double value) { m_provisionedThroughputInMibpsHasBeenSet = true; m_provisionedThroughputInMibps = value; } /** *

The throughput, measured in MiB/s, that you want to provision for a file * system that you're creating. Valid values are 1-1024. Required if * ThroughputMode is set to provisioned. The upper limit * for throughput is 1024 MiB/s. To increase this limit, contact Amazon Web * Services Support. For more information, see Amazon * EFS quotas that you can increase in the Amazon EFS User Guide.

*/ inline CreateFileSystemRequest& WithProvisionedThroughputInMibps(double value) { SetProvisionedThroughputInMibps(value); return *this;} /** *

Used to create a file system that uses One Zone storage classes. It specifies * the Amazon Web Services Availability Zone in which to create the file system. * Use the format us-east-1a to specify the Availability Zone. For * more information about One Zone storage classes, see Using EFS * storage classes in the Amazon EFS User Guide.

One Zone * storage classes are not available in all Availability Zones in Amazon Web * Services Regions where Amazon EFS is available.

*/ inline const Aws::String& GetAvailabilityZoneName() const{ return m_availabilityZoneName; } /** *

Used to create a file system that uses One Zone storage classes. It specifies * the Amazon Web Services Availability Zone in which to create the file system. * Use the format us-east-1a to specify the Availability Zone. For * more information about One Zone storage classes, see Using EFS * storage classes in the Amazon EFS User Guide.

One Zone * storage classes are not available in all Availability Zones in Amazon Web * Services Regions where Amazon EFS is available.

*/ inline bool AvailabilityZoneNameHasBeenSet() const { return m_availabilityZoneNameHasBeenSet; } /** *

Used to create a file system that uses One Zone storage classes. It specifies * the Amazon Web Services Availability Zone in which to create the file system. * Use the format us-east-1a to specify the Availability Zone. For * more information about One Zone storage classes, see Using EFS * storage classes in the Amazon EFS User Guide.

One Zone * storage classes are not available in all Availability Zones in Amazon Web * Services Regions where Amazon EFS is available.

*/ inline void SetAvailabilityZoneName(const Aws::String& value) { m_availabilityZoneNameHasBeenSet = true; m_availabilityZoneName = value; } /** *

Used to create a file system that uses One Zone storage classes. It specifies * the Amazon Web Services Availability Zone in which to create the file system. * Use the format us-east-1a to specify the Availability Zone. For * more information about One Zone storage classes, see Using EFS * storage classes in the Amazon EFS User Guide.

One Zone * storage classes are not available in all Availability Zones in Amazon Web * Services Regions where Amazon EFS is available.

*/ inline void SetAvailabilityZoneName(Aws::String&& value) { m_availabilityZoneNameHasBeenSet = true; m_availabilityZoneName = std::move(value); } /** *

Used to create a file system that uses One Zone storage classes. It specifies * the Amazon Web Services Availability Zone in which to create the file system. * Use the format us-east-1a to specify the Availability Zone. For * more information about One Zone storage classes, see Using EFS * storage classes in the Amazon EFS User Guide.

One Zone * storage classes are not available in all Availability Zones in Amazon Web * Services Regions where Amazon EFS is available.

*/ inline void SetAvailabilityZoneName(const char* value) { m_availabilityZoneNameHasBeenSet = true; m_availabilityZoneName.assign(value); } /** *

Used to create a file system that uses One Zone storage classes. It specifies * the Amazon Web Services Availability Zone in which to create the file system. * Use the format us-east-1a to specify the Availability Zone. For * more information about One Zone storage classes, see Using EFS * storage classes in the Amazon EFS User Guide.

One Zone * storage classes are not available in all Availability Zones in Amazon Web * Services Regions where Amazon EFS is available.

*/ inline CreateFileSystemRequest& WithAvailabilityZoneName(const Aws::String& value) { SetAvailabilityZoneName(value); return *this;} /** *

Used to create a file system that uses One Zone storage classes. It specifies * the Amazon Web Services Availability Zone in which to create the file system. * Use the format us-east-1a to specify the Availability Zone. For * more information about One Zone storage classes, see Using EFS * storage classes in the Amazon EFS User Guide.

One Zone * storage classes are not available in all Availability Zones in Amazon Web * Services Regions where Amazon EFS is available.

*/ inline CreateFileSystemRequest& WithAvailabilityZoneName(Aws::String&& value) { SetAvailabilityZoneName(std::move(value)); return *this;} /** *

Used to create a file system that uses One Zone storage classes. It specifies * the Amazon Web Services Availability Zone in which to create the file system. * Use the format us-east-1a to specify the Availability Zone. For * more information about One Zone storage classes, see Using EFS * storage classes in the Amazon EFS User Guide.

One Zone * storage classes are not available in all Availability Zones in Amazon Web * Services Regions where Amazon EFS is available.

*/ inline CreateFileSystemRequest& WithAvailabilityZoneName(const char* value) { SetAvailabilityZoneName(value); return *this;} /** *

Specifies whether automatic backups are enabled on the file system that you * are creating. Set the value to true to enable automatic backups. If * you are creating a file system that uses One Zone storage classes, automatic * backups are enabled by default. For more information, see Automatic * backups in the Amazon EFS User Guide.

Default is * false. However, if you specify an * AvailabilityZoneName, the default is true.

*

Backup is not available in all Amazon Web Services Regions where Amazon EFS * is available.

*/ inline bool GetBackup() const{ return m_backup; } /** *

Specifies whether automatic backups are enabled on the file system that you * are creating. Set the value to true to enable automatic backups. If * you are creating a file system that uses One Zone storage classes, automatic * backups are enabled by default. For more information, see Automatic * backups in the Amazon EFS User Guide.

Default is * false. However, if you specify an * AvailabilityZoneName, the default is true.

*

Backup is not available in all Amazon Web Services Regions where Amazon EFS * is available.

*/ inline bool BackupHasBeenSet() const { return m_backupHasBeenSet; } /** *

Specifies whether automatic backups are enabled on the file system that you * are creating. Set the value to true to enable automatic backups. If * you are creating a file system that uses One Zone storage classes, automatic * backups are enabled by default. For more information, see Automatic * backups in the Amazon EFS User Guide.

Default is * false. However, if you specify an * AvailabilityZoneName, the default is true.

*

Backup is not available in all Amazon Web Services Regions where Amazon EFS * is available.

*/ inline void SetBackup(bool value) { m_backupHasBeenSet = true; m_backup = value; } /** *

Specifies whether automatic backups are enabled on the file system that you * are creating. Set the value to true to enable automatic backups. If * you are creating a file system that uses One Zone storage classes, automatic * backups are enabled by default. For more information, see Automatic * backups in the Amazon EFS User Guide.

Default is * false. However, if you specify an * AvailabilityZoneName, the default is true.

*

Backup is not available in all Amazon Web Services Regions where Amazon EFS * is available.

*/ inline CreateFileSystemRequest& WithBackup(bool value) { SetBackup(value); return *this;} /** *

Use to create one or more tags associated with the file system. Each tag is a * user-defined key-value pair. Name your file system on creation by including a * "Key":"Name","Value":"{value}" key-value pair. Each key must be * unique. For more information, see Tagging * Amazon Web Services resources in the Amazon Web Services General * Reference Guide.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

Use to create one or more tags associated with the file system. Each tag is a * user-defined key-value pair. Name your file system on creation by including a * "Key":"Name","Value":"{value}" key-value pair. Each key must be * unique. For more information, see Tagging * Amazon Web Services resources in the Amazon Web Services General * Reference Guide.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Use to create one or more tags associated with the file system. Each tag is a * user-defined key-value pair. Name your file system on creation by including a * "Key":"Name","Value":"{value}" key-value pair. Each key must be * unique. For more information, see Tagging * Amazon Web Services resources in the Amazon Web Services General * Reference Guide.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Use to create one or more tags associated with the file system. Each tag is a * user-defined key-value pair. Name your file system on creation by including a * "Key":"Name","Value":"{value}" key-value pair. Each key must be * unique. For more information, see Tagging * Amazon Web Services resources in the Amazon Web Services General * Reference Guide.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Use to create one or more tags associated with the file system. Each tag is a * user-defined key-value pair. Name your file system on creation by including a * "Key":"Name","Value":"{value}" key-value pair. Each key must be * unique. For more information, see Tagging * Amazon Web Services resources in the Amazon Web Services General * Reference Guide.

*/ inline CreateFileSystemRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

Use to create one or more tags associated with the file system. Each tag is a * user-defined key-value pair. Name your file system on creation by including a * "Key":"Name","Value":"{value}" key-value pair. Each key must be * unique. For more information, see Tagging * Amazon Web Services resources in the Amazon Web Services General * Reference Guide.

*/ inline CreateFileSystemRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

Use to create one or more tags associated with the file system. Each tag is a * user-defined key-value pair. Name your file system on creation by including a * "Key":"Name","Value":"{value}" key-value pair. Each key must be * unique. For more information, see Tagging * Amazon Web Services resources in the Amazon Web Services General * Reference Guide.

*/ inline CreateFileSystemRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

Use to create one or more tags associated with the file system. Each tag is a * user-defined key-value pair. Name your file system on creation by including a * "Key":"Name","Value":"{value}" key-value pair. Each key must be * unique. For more information, see Tagging * Amazon Web Services resources in the Amazon Web Services General * Reference Guide.

*/ inline CreateFileSystemRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_creationToken; bool m_creationTokenHasBeenSet = false; PerformanceMode m_performanceMode; bool m_performanceModeHasBeenSet = false; bool m_encrypted; bool m_encryptedHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; ThroughputMode m_throughputMode; bool m_throughputModeHasBeenSet = false; double m_provisionedThroughputInMibps; bool m_provisionedThroughputInMibpsHasBeenSet = false; Aws::String m_availabilityZoneName; bool m_availabilityZoneNameHasBeenSet = false; bool m_backup; bool m_backupHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace EFS } // namespace Aws