/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.fsx.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *

* The configuration of an Amazon FSx for OpenZFS volume. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class OpenZFSVolumeConfiguration implements Serializable, Cloneable, StructuredPojo { /** *

* The ID of the parent volume. *

*/ private String parentVolumeId; /** *

* The path to the volume from the root volume. For example, fsx/parentVolume/volume1. *

*/ private String volumePath; /** *

* 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. *

*/ private Integer storageCapacityReservationGiB; /** *

* The maximum amount of storage in gibibtyes (GiB) that the volume can use from its parent. You can specify a quota * larger than the storage on the parent volume. *

*/ private Integer storageCapacityQuotaGiB; /** *

* 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. For guidance on when to set * a custom record size, see the Amazon FSx for OpenZFS User Guide. *

*/ private Integer recordSizeKiB; /** *

* Specifies the method used to compress the data on the volume. The compression type is NONE by * default. *

* */ private String dataCompressionType; /** *

* A Boolean value indicating whether tags for the volume should be copied to snapshots. This value defaults to * false. If it's set to true, all tags for the volume are copied to snapshots where the * user doesn't specify tags. If this value is true and you specify one or more tags, only the * specified tags are copied to snapshots. If you specify one or more tags when creating the snapshot, no tags are * copied from the volume, regardless of this value. *

*/ private Boolean copyTagsToSnapshots; /** *

* The configuration object that specifies the snapshot to use as the origin of the data for the volume. *

*/ private OpenZFSOriginSnapshotConfiguration originSnapshot; /** *

* A Boolean value indicating whether the volume is read-only. *

*/ private Boolean readOnly; /** *

* The configuration object for mounting a Network File System (NFS) file system. *

*/ private java.util.List nfsExports; /** *

* An object specifying how much storage users or groups can use on the volume. *

*/ private java.util.List userAndGroupQuotas; /** *

* Specifies the ID of the snapshot to which the volume was restored. *

*/ private String restoreToSnapshot; /** *

* A Boolean value indicating whether snapshots between the current state and the specified snapshot should be * deleted when a volume is restored from snapshot. *

*/ private Boolean deleteIntermediateSnaphots; /** *

* A Boolean value indicating whether dependent clone volumes created from intermediate snapshots should be deleted * when a volume is restored from snapshot. *

*/ private Boolean deleteClonedVolumes; /** *

* The ID of the parent volume. *

* * @param parentVolumeId * The ID of the parent volume. */ public void setParentVolumeId(String parentVolumeId) { this.parentVolumeId = parentVolumeId; } /** *

* The ID of the parent volume. *

* * @return The ID of the parent volume. */ public String getParentVolumeId() { return this.parentVolumeId; } /** *

* The ID of the parent volume. *

* * @param parentVolumeId * The ID of the parent volume. * @return Returns a reference to this object so that method calls can be chained together. */ public OpenZFSVolumeConfiguration withParentVolumeId(String parentVolumeId) { setParentVolumeId(parentVolumeId); return this; } /** *

* The path to the volume from the root volume. For example, fsx/parentVolume/volume1. *

* * @param volumePath * The path to the volume from the root volume. For example, fsx/parentVolume/volume1. */ public void setVolumePath(String volumePath) { this.volumePath = volumePath; } /** *

* The path to the volume from the root volume. For example, fsx/parentVolume/volume1. *

* * @return The path to the volume from the root volume. For example, fsx/parentVolume/volume1. */ public String getVolumePath() { return this.volumePath; } /** *

* The path to the volume from the root volume. For example, fsx/parentVolume/volume1. *

* * @param volumePath * The path to the volume from the root volume. For example, fsx/parentVolume/volume1. * @return Returns a reference to this object so that method calls can be chained together. */ public OpenZFSVolumeConfiguration withVolumePath(String volumePath) { setVolumePath(volumePath); return this; } /** *

* 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. *

* * @param storageCapacityReservationGiB * 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. */ public void setStorageCapacityReservationGiB(Integer storageCapacityReservationGiB) { this.storageCapacityReservationGiB = storageCapacityReservationGiB; } /** *

* 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. *

* * @return 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. */ public Integer getStorageCapacityReservationGiB() { return this.storageCapacityReservationGiB; } /** *

* 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. *

* * @param storageCapacityReservationGiB * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public OpenZFSVolumeConfiguration withStorageCapacityReservationGiB(Integer storageCapacityReservationGiB) { setStorageCapacityReservationGiB(storageCapacityReservationGiB); return this; } /** *

* The maximum amount of storage in gibibtyes (GiB) that the volume can use from its parent. You can specify a quota * larger than the storage on the parent volume. *

* * @param storageCapacityQuotaGiB * The maximum amount of storage in gibibtyes (GiB) that the volume can use from its parent. You can specify * a quota larger than the storage on the parent volume. */ public void setStorageCapacityQuotaGiB(Integer storageCapacityQuotaGiB) { this.storageCapacityQuotaGiB = storageCapacityQuotaGiB; } /** *

* The maximum amount of storage in gibibtyes (GiB) that the volume can use from its parent. You can specify a quota * larger than the storage on the parent volume. *

* * @return The maximum amount of storage in gibibtyes (GiB) that the volume can use from its parent. You can specify * a quota larger than the storage on the parent volume. */ public Integer getStorageCapacityQuotaGiB() { return this.storageCapacityQuotaGiB; } /** *

* The maximum amount of storage in gibibtyes (GiB) that the volume can use from its parent. You can specify a quota * larger than the storage on the parent volume. *

* * @param storageCapacityQuotaGiB * The maximum amount of storage in gibibtyes (GiB) that the volume can use from its parent. You can specify * a quota larger than the storage on the parent volume. * @return Returns a reference to this object so that method calls can be chained together. */ public OpenZFSVolumeConfiguration withStorageCapacityQuotaGiB(Integer storageCapacityQuotaGiB) { setStorageCapacityQuotaGiB(storageCapacityQuotaGiB); return this; } /** *

* 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. For guidance on when to set * a custom record size, see the Amazon FSx for OpenZFS User Guide. *

* * @param recordSizeKiB * 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. For guidance * on when to set a custom record size, see the Amazon FSx for OpenZFS User Guide. */ public void setRecordSizeKiB(Integer recordSizeKiB) { this.recordSizeKiB = recordSizeKiB; } /** *

* 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. For guidance on when to set * a custom record size, see the Amazon FSx for OpenZFS User Guide. *

* * @return 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. For guidance * on when to set a custom record size, see the Amazon FSx for OpenZFS User Guide. */ public Integer getRecordSizeKiB() { return this.recordSizeKiB; } /** *

* 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. For guidance on when to set * a custom record size, see the Amazon FSx for OpenZFS User Guide. *

* * @param recordSizeKiB * 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. For guidance * on when to set a custom record size, see the Amazon FSx for OpenZFS User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public OpenZFSVolumeConfiguration withRecordSizeKiB(Integer recordSizeKiB) { setRecordSizeKiB(recordSizeKiB); return this; } /** *

* Specifies the method used to compress the data on the volume. The compression type is NONE by * default. *

* * * @param dataCompressionType * Specifies the method used to compress the data on the volume. The compression type is NONE by * default.

*