/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Used to specify changes to the OpenZFS configuration for the volume that you
* are updating.See Also:
AWS
* API Reference
The amount of storage in gibibytes (GiB) to reserve from the parent volume.
* You can't reserve more storage than the parent volume has reserved. You can
* specify a value of -1
to unset a volume's storage capacity
* reservation.
The amount of storage in gibibytes (GiB) to reserve from the parent volume.
* You can't reserve more storage than the parent volume has reserved. You can
* specify a value of -1
to unset a volume's storage capacity
* reservation.
The amount of storage in gibibytes (GiB) to reserve from the parent volume.
* You can't reserve more storage than the parent volume has reserved. You can
* specify a value of -1
to unset a volume's storage capacity
* reservation.
The amount of storage in gibibytes (GiB) to reserve from the parent volume.
* You can't reserve more storage than the parent volume has reserved. You can
* specify a value of -1
to unset a volume's storage capacity
* reservation.
The maximum amount of storage in gibibytes (GiB) that the volume can use from
* its parent. You can specify a quota larger than the storage on the parent
* volume. You can specify a value of -1
to unset a volume's storage
* capacity quota.
The maximum amount of storage in gibibytes (GiB) that the volume can use from
* its parent. You can specify a quota larger than the storage on the parent
* volume. You can specify a value of -1
to unset a volume's storage
* capacity quota.
The maximum amount of storage in gibibytes (GiB) that the volume can use from
* its parent. You can specify a quota larger than the storage on the parent
* volume. You can specify a value of -1
to unset a volume's storage
* capacity quota.
The maximum amount of storage in gibibytes (GiB) that the volume can use from
* its parent. You can specify a quota larger than the storage on the parent
* volume. You can specify a value of -1
to unset a volume's storage
* capacity quota.
Specifies the record size of an OpenZFS volume, in kibibytes (KiB). Valid * values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. * Most workloads should use the default record size. Database workflows can * benefit from a smaller record size, while streaming workflows can benefit from a * larger record size. For additional guidance on when to set a custom record size, * see * Tips for maximizing performance in the Amazon FSx for OpenZFS User * Guide.
*/ inline int GetRecordSizeKiB() const{ return m_recordSizeKiB; } /** *Specifies the record size of an OpenZFS volume, in kibibytes (KiB). Valid * values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. * Most workloads should use the default record size. Database workflows can * benefit from a smaller record size, while streaming workflows can benefit from a * larger record size. For additional guidance on when to set a custom record size, * see * Tips for maximizing performance in the Amazon FSx for OpenZFS User * Guide.
*/ inline bool RecordSizeKiBHasBeenSet() const { return m_recordSizeKiBHasBeenSet; } /** *Specifies the record size of an OpenZFS volume, in kibibytes (KiB). Valid * values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. * Most workloads should use the default record size. Database workflows can * benefit from a smaller record size, while streaming workflows can benefit from a * larger record size. For additional guidance on when to set a custom record size, * see * Tips for maximizing performance in the Amazon FSx for OpenZFS User * Guide.
*/ inline void SetRecordSizeKiB(int value) { m_recordSizeKiBHasBeenSet = true; m_recordSizeKiB = value; } /** *Specifies the record size of an OpenZFS volume, in kibibytes (KiB). Valid * values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. * Most workloads should use the default record size. Database workflows can * benefit from a smaller record size, while streaming workflows can benefit from a * larger record size. For additional guidance on when to set a custom record size, * see * Tips for maximizing performance in the Amazon FSx for OpenZFS User * Guide.
*/ inline UpdateOpenZFSVolumeConfiguration& WithRecordSizeKiB(int value) { SetRecordSizeKiB(value); return *this;} /** *Specifies the method used to compress the data on the volume. The compression
* type is NONE
by default.
NONE
-
* Doesn't compress the data on the volume. NONE
is the default.
ZSTD
- Compresses the data in the volume using the
* Zstandard (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a
* better compression ratio to minimize on-disk storage utilization.
LZ4
- Compresses the data in the volume using the LZ4
* compression algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and
* delivers higher write throughput speeds.
Specifies the method used to compress the data on the volume. The compression
* type is NONE
by default.
NONE
-
* Doesn't compress the data on the volume. NONE
is the default.
ZSTD
- Compresses the data in the volume using the
* Zstandard (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a
* better compression ratio to minimize on-disk storage utilization.
LZ4
- Compresses the data in the volume using the LZ4
* compression algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and
* delivers higher write throughput speeds.
Specifies the method used to compress the data on the volume. The compression
* type is NONE
by default.
NONE
-
* Doesn't compress the data on the volume. NONE
is the default.
ZSTD
- Compresses the data in the volume using the
* Zstandard (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a
* better compression ratio to minimize on-disk storage utilization.
LZ4
- Compresses the data in the volume using the LZ4
* compression algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and
* delivers higher write throughput speeds.
Specifies the method used to compress the data on the volume. The compression
* type is NONE
by default.
NONE
-
* Doesn't compress the data on the volume. NONE
is the default.
ZSTD
- Compresses the data in the volume using the
* Zstandard (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a
* better compression ratio to minimize on-disk storage utilization.
LZ4
- Compresses the data in the volume using the LZ4
* compression algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and
* delivers higher write throughput speeds.
Specifies the method used to compress the data on the volume. The compression
* type is NONE
by default.
NONE
-
* Doesn't compress the data on the volume. NONE
is the default.
ZSTD
- Compresses the data in the volume using the
* Zstandard (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a
* better compression ratio to minimize on-disk storage utilization.
LZ4
- Compresses the data in the volume using the LZ4
* compression algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and
* delivers higher write throughput speeds.
Specifies the method used to compress the data on the volume. The compression
* type is NONE
by default.
NONE
-
* Doesn't compress the data on the volume. NONE
is the default.
ZSTD
- Compresses the data in the volume using the
* Zstandard (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a
* better compression ratio to minimize on-disk storage utilization.
LZ4
- Compresses the data in the volume using the LZ4
* compression algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and
* delivers higher write throughput speeds.
The configuration object for mounting a Network File System (NFS) file * system.
*/ inline const Aws::VectorThe configuration object for mounting a Network File System (NFS) file * system.
*/ inline bool NfsExportsHasBeenSet() const { return m_nfsExportsHasBeenSet; } /** *The configuration object for mounting a Network File System (NFS) file * system.
*/ inline void SetNfsExports(const Aws::VectorThe configuration object for mounting a Network File System (NFS) file * system.
*/ inline void SetNfsExports(Aws::VectorThe configuration object for mounting a Network File System (NFS) file * system.
*/ inline UpdateOpenZFSVolumeConfiguration& WithNfsExports(const Aws::VectorThe configuration object for mounting a Network File System (NFS) file * system.
*/ inline UpdateOpenZFSVolumeConfiguration& WithNfsExports(Aws::VectorThe configuration object for mounting a Network File System (NFS) file * system.
*/ inline UpdateOpenZFSVolumeConfiguration& AddNfsExports(const OpenZFSNfsExport& value) { m_nfsExportsHasBeenSet = true; m_nfsExports.push_back(value); return *this; } /** *The configuration object for mounting a Network File System (NFS) file * system.
*/ inline UpdateOpenZFSVolumeConfiguration& AddNfsExports(OpenZFSNfsExport&& value) { m_nfsExportsHasBeenSet = true; m_nfsExports.push_back(std::move(value)); return *this; } /** *An object specifying how much storage users or groups can use on the * volume.
*/ inline const Aws::VectorAn object specifying how much storage users or groups can use on the * volume.
*/ inline bool UserAndGroupQuotasHasBeenSet() const { return m_userAndGroupQuotasHasBeenSet; } /** *An object specifying how much storage users or groups can use on the * volume.
*/ inline void SetUserAndGroupQuotas(const Aws::VectorAn object specifying how much storage users or groups can use on the * volume.
*/ inline void SetUserAndGroupQuotas(Aws::VectorAn object specifying how much storage users or groups can use on the * volume.
*/ inline UpdateOpenZFSVolumeConfiguration& WithUserAndGroupQuotas(const Aws::VectorAn object specifying how much storage users or groups can use on the * volume.
*/ inline UpdateOpenZFSVolumeConfiguration& WithUserAndGroupQuotas(Aws::VectorAn object specifying how much storage users or groups can use on the * volume.
*/ inline UpdateOpenZFSVolumeConfiguration& AddUserAndGroupQuotas(const OpenZFSUserOrGroupQuota& value) { m_userAndGroupQuotasHasBeenSet = true; m_userAndGroupQuotas.push_back(value); return *this; } /** *An object specifying how much storage users or groups can use on the * volume.
*/ inline UpdateOpenZFSVolumeConfiguration& AddUserAndGroupQuotas(OpenZFSUserOrGroupQuota&& value) { m_userAndGroupQuotasHasBeenSet = true; m_userAndGroupQuotas.push_back(std::move(value)); return *this; } /** *A Boolean value indicating whether the volume is read-only.
*/ inline bool GetReadOnly() const{ return m_readOnly; } /** *A Boolean value indicating whether the volume is read-only.
*/ inline bool ReadOnlyHasBeenSet() const { return m_readOnlyHasBeenSet; } /** *A Boolean value indicating whether the volume is read-only.
*/ inline void SetReadOnly(bool value) { m_readOnlyHasBeenSet = true; m_readOnly = value; } /** *A Boolean value indicating whether the volume is read-only.
*/ inline UpdateOpenZFSVolumeConfiguration& WithReadOnly(bool value) { SetReadOnly(value); return *this;} private: int m_storageCapacityReservationGiB; bool m_storageCapacityReservationGiBHasBeenSet = false; int m_storageCapacityQuotaGiB; bool m_storageCapacityQuotaGiBHasBeenSet = false; int m_recordSizeKiB; bool m_recordSizeKiBHasBeenSet = false; OpenZFSDataCompressionType m_dataCompressionType; bool m_dataCompressionTypeHasBeenSet = false; Aws::Vector