All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.fsx.model.CreateOpenZFSVolumeConfiguration Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon FSx module holds the client classes that are used for communicating with Amazon FSx Service

There is a newer version: 1.12.780
Show newest version
/*
 * Copyright 2019-2024 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;

/**
 * 

* Specifies the configuration of the Amazon FSx for OpenZFS volume that you are creating. *

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

* The ID of the volume to use as the parent volume of the volume that you are creating. *

*/ private String parentVolumeId; /** *

* Specifies the amount of storage in gibibytes (GiB) to reserve from the parent volume. Setting * StorageCapacityReservationGiB guarantees that the specified amount of storage space on the parent * volume will always be available for the volume. You can't reserve more storage than the parent volume has. To * not specify a storage capacity reservation, set this to 0 or -1. For more * information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. *

*/ private Integer storageCapacityReservationGiB; /** *

* Sets the maximum storage size in gibibytes (GiB) for the volume. You can specify a quota that is larger than the * storage on the parent volume. A volume quota limits the amount of storage that the volume can consume to the * configured amount, but does not guarantee the space will be available on the parent volume. To guarantee quota * space, you must also set StorageCapacityReservationGiB. To not specify a storage capacity * quota, set this to -1. *

*

* For more information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. *

*/ private Integer storageCapacityQuotaGiB; /** *

* Specifies the suggested block size for a volume in a ZFS dataset, in kibibytes (KiB). Valid values are 4, 8, 16, * 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. We recommend using the default setting for the * majority of use cases. Generally, workloads that write in fixed small or large record sizes may benefit from * setting a custom record size, like database workloads (small record size) or media streaming workloads (large * record size). For additional guidance on when to set a custom record size, see ZFS Record * size in 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. *

*
    *
  • *

    * 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. ZSTD * compression provides a higher level of data compression and higher read throughput performance than LZ4 * compression. *

    *
  • *
  • *

    * LZ4 - Compresses the data in the volume using the LZ4 compression algorithm. LZ4 compression * provides a lower level of compression and higher write throughput performance than ZSTD compression. *

    *
  • *
*

* For more information about volume compression types and the performance of your Amazon FSx for OpenZFS file * system, see * Tips for maximizing performance File system and volume settings in the Amazon FSx for OpenZFS User * Guide. *

*/ 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 CreateOpenZFSOriginSnapshotConfiguration 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; /** *

* Configures how much storage users and groups can use on the volume. *

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

* The ID of the volume to use as the parent volume of the volume that you are creating. *

* * @param parentVolumeId * The ID of the volume to use as the parent volume of the volume that you are creating. */ public void setParentVolumeId(String parentVolumeId) { this.parentVolumeId = parentVolumeId; } /** *

* The ID of the volume to use as the parent volume of the volume that you are creating. *

* * @return The ID of the volume to use as the parent volume of the volume that you are creating. */ public String getParentVolumeId() { return this.parentVolumeId; } /** *

* The ID of the volume to use as the parent volume of the volume that you are creating. *

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

* Specifies the amount of storage in gibibytes (GiB) to reserve from the parent volume. Setting * StorageCapacityReservationGiB guarantees that the specified amount of storage space on the parent * volume will always be available for the volume. You can't reserve more storage than the parent volume has. To * not specify a storage capacity reservation, set this to 0 or -1. For more * information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. *

* * @param storageCapacityReservationGiB * Specifies the amount of storage in gibibytes (GiB) to reserve from the parent volume. Setting * StorageCapacityReservationGiB guarantees that the specified amount of storage space on the * parent volume will always be available for the volume. You can't reserve more storage than the parent * volume has. To not specify a storage capacity reservation, set this to 0 or * -1. For more information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. */ public void setStorageCapacityReservationGiB(Integer storageCapacityReservationGiB) { this.storageCapacityReservationGiB = storageCapacityReservationGiB; } /** *

* Specifies the amount of storage in gibibytes (GiB) to reserve from the parent volume. Setting * StorageCapacityReservationGiB guarantees that the specified amount of storage space on the parent * volume will always be available for the volume. You can't reserve more storage than the parent volume has. To * not specify a storage capacity reservation, set this to 0 or -1. For more * information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. *

* * @return Specifies the amount of storage in gibibytes (GiB) to reserve from the parent volume. Setting * StorageCapacityReservationGiB guarantees that the specified amount of storage space on the * parent volume will always be available for the volume. You can't reserve more storage than the parent * volume has. To not specify a storage capacity reservation, set this to 0 or * -1. For more information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. */ public Integer getStorageCapacityReservationGiB() { return this.storageCapacityReservationGiB; } /** *

* Specifies the amount of storage in gibibytes (GiB) to reserve from the parent volume. Setting * StorageCapacityReservationGiB guarantees that the specified amount of storage space on the parent * volume will always be available for the volume. You can't reserve more storage than the parent volume has. To * not specify a storage capacity reservation, set this to 0 or -1. For more * information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. *

* * @param storageCapacityReservationGiB * Specifies the amount of storage in gibibytes (GiB) to reserve from the parent volume. Setting * StorageCapacityReservationGiB guarantees that the specified amount of storage space on the * parent volume will always be available for the volume. You can't reserve more storage than the parent * volume has. To not specify a storage capacity reservation, set this to 0 or * -1. For more information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateOpenZFSVolumeConfiguration withStorageCapacityReservationGiB(Integer storageCapacityReservationGiB) { setStorageCapacityReservationGiB(storageCapacityReservationGiB); return this; } /** *

* Sets the maximum storage size in gibibytes (GiB) for the volume. You can specify a quota that is larger than the * storage on the parent volume. A volume quota limits the amount of storage that the volume can consume to the * configured amount, but does not guarantee the space will be available on the parent volume. To guarantee quota * space, you must also set StorageCapacityReservationGiB. To not specify a storage capacity * quota, set this to -1. *

*

* For more information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. *

* * @param storageCapacityQuotaGiB * Sets the maximum storage size in gibibytes (GiB) for the volume. You can specify a quota that is larger * than the storage on the parent volume. A volume quota limits the amount of storage that the volume can * consume to the configured amount, but does not guarantee the space will be available on the parent volume. * To guarantee quota space, you must also set StorageCapacityReservationGiB. To not * specify a storage capacity quota, set this to -1.

*

* For more information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. */ public void setStorageCapacityQuotaGiB(Integer storageCapacityQuotaGiB) { this.storageCapacityQuotaGiB = storageCapacityQuotaGiB; } /** *

* Sets the maximum storage size in gibibytes (GiB) for the volume. You can specify a quota that is larger than the * storage on the parent volume. A volume quota limits the amount of storage that the volume can consume to the * configured amount, but does not guarantee the space will be available on the parent volume. To guarantee quota * space, you must also set StorageCapacityReservationGiB. To not specify a storage capacity * quota, set this to -1. *

*

* For more information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. *

* * @return Sets the maximum storage size in gibibytes (GiB) for the volume. You can specify a quota that is larger * than the storage on the parent volume. A volume quota limits the amount of storage that the volume can * consume to the configured amount, but does not guarantee the space will be available on the parent * volume. To guarantee quota space, you must also set StorageCapacityReservationGiB. To * not specify a storage capacity quota, set this to -1.

*

* For more information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. */ public Integer getStorageCapacityQuotaGiB() { return this.storageCapacityQuotaGiB; } /** *

* Sets the maximum storage size in gibibytes (GiB) for the volume. You can specify a quota that is larger than the * storage on the parent volume. A volume quota limits the amount of storage that the volume can consume to the * configured amount, but does not guarantee the space will be available on the parent volume. To guarantee quota * space, you must also set StorageCapacityReservationGiB. To not specify a storage capacity * quota, set this to -1. *

*

* For more information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. *

* * @param storageCapacityQuotaGiB * Sets the maximum storage size in gibibytes (GiB) for the volume. You can specify a quota that is larger * than the storage on the parent volume. A volume quota limits the amount of storage that the volume can * consume to the configured amount, but does not guarantee the space will be available on the parent volume. * To guarantee quota space, you must also set StorageCapacityReservationGiB. To not * specify a storage capacity quota, set this to -1.

*

* For more information, see Volume * properties in the Amazon FSx for OpenZFS User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateOpenZFSVolumeConfiguration withStorageCapacityQuotaGiB(Integer storageCapacityQuotaGiB) { setStorageCapacityQuotaGiB(storageCapacityQuotaGiB); return this; } /** *

* Specifies the suggested block size for a volume in a ZFS dataset, in kibibytes (KiB). Valid values are 4, 8, 16, * 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. We recommend using the default setting for the * majority of use cases. Generally, workloads that write in fixed small or large record sizes may benefit from * setting a custom record size, like database workloads (small record size) or media streaming workloads (large * record size). For additional guidance on when to set a custom record size, see ZFS Record * size in the Amazon FSx for OpenZFS User Guide. *

* * @param recordSizeKiB * Specifies the suggested block size for a volume in a ZFS dataset, in kibibytes (KiB). Valid values are 4, * 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. We recommend using the default setting * for the majority of use cases. Generally, workloads that write in fixed small or large record sizes may * benefit from setting a custom record size, like database workloads (small record size) or media streaming * workloads (large record size). For additional guidance on when to set a custom record size, see ZFS * Record size in the Amazon FSx for OpenZFS User Guide. */ public void setRecordSizeKiB(Integer recordSizeKiB) { this.recordSizeKiB = recordSizeKiB; } /** *

* Specifies the suggested block size for a volume in a ZFS dataset, in kibibytes (KiB). Valid values are 4, 8, 16, * 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. We recommend using the default setting for the * majority of use cases. Generally, workloads that write in fixed small or large record sizes may benefit from * setting a custom record size, like database workloads (small record size) or media streaming workloads (large * record size). For additional guidance on when to set a custom record size, see ZFS Record * size in the Amazon FSx for OpenZFS User Guide. *

* * @return Specifies the suggested block size for a volume in a ZFS dataset, in kibibytes (KiB). Valid values are 4, * 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. We recommend using the default setting * for the majority of use cases. Generally, workloads that write in fixed small or large record sizes may * benefit from setting a custom record size, like database workloads (small record size) or media streaming * workloads (large record size). For additional guidance on when to set a custom record size, see ZFS * Record size in the Amazon FSx for OpenZFS User Guide. */ public Integer getRecordSizeKiB() { return this.recordSizeKiB; } /** *

* Specifies the suggested block size for a volume in a ZFS dataset, in kibibytes (KiB). Valid values are 4, 8, 16, * 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. We recommend using the default setting for the * majority of use cases. Generally, workloads that write in fixed small or large record sizes may benefit from * setting a custom record size, like database workloads (small record size) or media streaming workloads (large * record size). For additional guidance on when to set a custom record size, see ZFS Record * size in the Amazon FSx for OpenZFS User Guide. *

* * @param recordSizeKiB * Specifies the suggested block size for a volume in a ZFS dataset, in kibibytes (KiB). Valid values are 4, * 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. We recommend using the default setting * for the majority of use cases. Generally, workloads that write in fixed small or large record sizes may * benefit from setting a custom record size, like database workloads (small record size) or media streaming * workloads (large record size). For additional guidance on when to set a custom record size, see ZFS * Record size in the Amazon FSx for OpenZFS User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateOpenZFSVolumeConfiguration 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. *

*
    *
  • *

    * 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. ZSTD * compression provides a higher level of data compression and higher read throughput performance than LZ4 * compression. *

    *
  • *
  • *

    * LZ4 - Compresses the data in the volume using the LZ4 compression algorithm. LZ4 compression * provides a lower level of compression and higher write throughput performance than ZSTD compression. *

    *
  • *
*

* For more information about volume compression types and the performance of your Amazon FSx for OpenZFS file * system, see * Tips for maximizing performance File system and volume settings in the Amazon FSx for OpenZFS User * Guide. *

* * @param dataCompressionType * 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. * ZSTD compression provides a higher level of data compression and higher read throughput performance than * LZ4 compression. *

    *
  • *
  • *

    * LZ4 - Compresses the data in the volume using the LZ4 compression algorithm. LZ4 compression * provides a lower level of compression and higher write throughput performance than ZSTD compression. *

    *
  • *
*

* For more information about volume compression types and the performance of your Amazon FSx for OpenZFS * file system, see Tips for * maximizing performance File system and volume settings in the Amazon FSx for OpenZFS User * Guide. * @see OpenZFSDataCompressionType */ public void setDataCompressionType(String dataCompressionType) { this.dataCompressionType = dataCompressionType; } /** *

* 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. ZSTD * compression provides a higher level of data compression and higher read throughput performance than LZ4 * compression. *

    *
  • *
  • *

    * LZ4 - Compresses the data in the volume using the LZ4 compression algorithm. LZ4 compression * provides a lower level of compression and higher write throughput performance than ZSTD compression. *

    *
  • *
*

* For more information about volume compression types and the performance of your Amazon FSx for OpenZFS file * system, see * Tips for maximizing performance File system and volume settings in the Amazon FSx for OpenZFS User * Guide. *

* * @return 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. * ZSTD compression provides a higher level of data compression and higher read throughput performance than * LZ4 compression. *

    *
  • *
  • *

    * LZ4 - Compresses the data in the volume using the LZ4 compression algorithm. LZ4 compression * provides a lower level of compression and higher write throughput performance than ZSTD compression. *

    *
  • *
*

* For more information about volume compression types and the performance of your Amazon FSx for OpenZFS * file system, see Tips * for maximizing performance File system and volume settings in the Amazon FSx for OpenZFS User * Guide. * @see OpenZFSDataCompressionType */ public String getDataCompressionType() { return this.dataCompressionType; } /** *

* 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. ZSTD * compression provides a higher level of data compression and higher read throughput performance than LZ4 * compression. *

    *
  • *
  • *

    * LZ4 - Compresses the data in the volume using the LZ4 compression algorithm. LZ4 compression * provides a lower level of compression and higher write throughput performance than ZSTD compression. *

    *
  • *
*

* For more information about volume compression types and the performance of your Amazon FSx for OpenZFS file * system, see * Tips for maximizing performance File system and volume settings in the Amazon FSx for OpenZFS User * Guide. *

* * @param dataCompressionType * 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. * ZSTD compression provides a higher level of data compression and higher read throughput performance than * LZ4 compression. *

    *
  • *
  • *

    * LZ4 - Compresses the data in the volume using the LZ4 compression algorithm. LZ4 compression * provides a lower level of compression and higher write throughput performance than ZSTD compression. *

    *
  • *
*

* For more information about volume compression types and the performance of your Amazon FSx for OpenZFS * file system, see Tips for * maximizing performance File system and volume settings in the Amazon FSx for OpenZFS User * Guide. * @return Returns a reference to this object so that method calls can be chained together. * @see OpenZFSDataCompressionType */ public CreateOpenZFSVolumeConfiguration withDataCompressionType(String dataCompressionType) { setDataCompressionType(dataCompressionType); 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. ZSTD * compression provides a higher level of data compression and higher read throughput performance than LZ4 * compression. *

    *
  • *
  • *

    * LZ4 - Compresses the data in the volume using the LZ4 compression algorithm. LZ4 compression * provides a lower level of compression and higher write throughput performance than ZSTD compression. *

    *
  • *
*

* For more information about volume compression types and the performance of your Amazon FSx for OpenZFS file * system, see * Tips for maximizing performance File system and volume settings in the Amazon FSx for OpenZFS User * Guide. *

* * @param dataCompressionType * 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. * ZSTD compression provides a higher level of data compression and higher read throughput performance than * LZ4 compression. *

    *
  • *
  • *

    * LZ4 - Compresses the data in the volume using the LZ4 compression algorithm. LZ4 compression * provides a lower level of compression and higher write throughput performance than ZSTD compression. *

    *
  • *
*

* For more information about volume compression types and the performance of your Amazon FSx for OpenZFS * file system, see Tips for * maximizing performance File system and volume settings in the Amazon FSx for OpenZFS User * Guide. * @return Returns a reference to this object so that method calls can be chained together. * @see OpenZFSDataCompressionType */ public CreateOpenZFSVolumeConfiguration withDataCompressionType(OpenZFSDataCompressionType dataCompressionType) { this.dataCompressionType = dataCompressionType.toString(); return this; } /** *

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

* * @param copyTagsToSnapshots * 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. */ public void setCopyTagsToSnapshots(Boolean copyTagsToSnapshots) { this.copyTagsToSnapshots = copyTagsToSnapshots; } /** *

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

* * @return 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. */ public Boolean getCopyTagsToSnapshots() { return this.copyTagsToSnapshots; } /** *

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

* * @param copyTagsToSnapshots * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateOpenZFSVolumeConfiguration withCopyTagsToSnapshots(Boolean copyTagsToSnapshots) { setCopyTagsToSnapshots(copyTagsToSnapshots); return this; } /** *

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

* * @return 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. */ public Boolean isCopyTagsToSnapshots() { return this.copyTagsToSnapshots; } /** *

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

* * @param originSnapshot * The configuration object that specifies the snapshot to use as the origin of the data for the volume. */ public void setOriginSnapshot(CreateOpenZFSOriginSnapshotConfiguration originSnapshot) { this.originSnapshot = originSnapshot; } /** *

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

* * @return The configuration object that specifies the snapshot to use as the origin of the data for the volume. */ public CreateOpenZFSOriginSnapshotConfiguration getOriginSnapshot() { return this.originSnapshot; } /** *

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

* * @param originSnapshot * The configuration object that specifies the snapshot to use as the origin of the data for the volume. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateOpenZFSVolumeConfiguration withOriginSnapshot(CreateOpenZFSOriginSnapshotConfiguration originSnapshot) { setOriginSnapshot(originSnapshot); return this; } /** *

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

* * @param readOnly * A Boolean value indicating whether the volume is read-only. */ public void setReadOnly(Boolean readOnly) { this.readOnly = readOnly; } /** *

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

* * @return A Boolean value indicating whether the volume is read-only. */ public Boolean getReadOnly() { return this.readOnly; } /** *

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

* * @param readOnly * A Boolean value indicating whether the volume is read-only. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateOpenZFSVolumeConfiguration withReadOnly(Boolean readOnly) { setReadOnly(readOnly); return this; } /** *

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

* * @return A Boolean value indicating whether the volume is read-only. */ public Boolean isReadOnly() { return this.readOnly; } /** *

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

* * @return The configuration object for mounting a Network File System (NFS) file system. */ public java.util.List getNfsExports() { return nfsExports; } /** *

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

* * @param nfsExports * The configuration object for mounting a Network File System (NFS) file system. */ public void setNfsExports(java.util.Collection nfsExports) { if (nfsExports == null) { this.nfsExports = null; return; } this.nfsExports = new java.util.ArrayList(nfsExports); } /** *

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

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setNfsExports(java.util.Collection)} or {@link #withNfsExports(java.util.Collection)} if you want to * override the existing values. *

* * @param nfsExports * The configuration object for mounting a Network File System (NFS) file system. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateOpenZFSVolumeConfiguration withNfsExports(OpenZFSNfsExport... nfsExports) { if (this.nfsExports == null) { setNfsExports(new java.util.ArrayList(nfsExports.length)); } for (OpenZFSNfsExport ele : nfsExports) { this.nfsExports.add(ele); } return this; } /** *

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

* * @param nfsExports * The configuration object for mounting a Network File System (NFS) file system. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateOpenZFSVolumeConfiguration withNfsExports(java.util.Collection nfsExports) { setNfsExports(nfsExports); return this; } /** *

* Configures how much storage users and groups can use on the volume. *

* * @return Configures how much storage users and groups can use on the volume. */ public java.util.List getUserAndGroupQuotas() { return userAndGroupQuotas; } /** *

* Configures how much storage users and groups can use on the volume. *

* * @param userAndGroupQuotas * Configures how much storage users and groups can use on the volume. */ public void setUserAndGroupQuotas(java.util.Collection userAndGroupQuotas) { if (userAndGroupQuotas == null) { this.userAndGroupQuotas = null; return; } this.userAndGroupQuotas = new java.util.ArrayList(userAndGroupQuotas); } /** *

* Configures how much storage users and groups can use on the volume. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setUserAndGroupQuotas(java.util.Collection)} or {@link #withUserAndGroupQuotas(java.util.Collection)} if * you want to override the existing values. *

* * @param userAndGroupQuotas * Configures how much storage users and groups can use on the volume. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateOpenZFSVolumeConfiguration withUserAndGroupQuotas(OpenZFSUserOrGroupQuota... userAndGroupQuotas) { if (this.userAndGroupQuotas == null) { setUserAndGroupQuotas(new java.util.ArrayList(userAndGroupQuotas.length)); } for (OpenZFSUserOrGroupQuota ele : userAndGroupQuotas) { this.userAndGroupQuotas.add(ele); } return this; } /** *

* Configures how much storage users and groups can use on the volume. *

* * @param userAndGroupQuotas * Configures how much storage users and groups can use on the volume. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateOpenZFSVolumeConfiguration withUserAndGroupQuotas(java.util.Collection userAndGroupQuotas) { setUserAndGroupQuotas(userAndGroupQuotas); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getParentVolumeId() != null) sb.append("ParentVolumeId: ").append(getParentVolumeId()).append(","); if (getStorageCapacityReservationGiB() != null) sb.append("StorageCapacityReservationGiB: ").append(getStorageCapacityReservationGiB()).append(","); if (getStorageCapacityQuotaGiB() != null) sb.append("StorageCapacityQuotaGiB: ").append(getStorageCapacityQuotaGiB()).append(","); if (getRecordSizeKiB() != null) sb.append("RecordSizeKiB: ").append(getRecordSizeKiB()).append(","); if (getDataCompressionType() != null) sb.append("DataCompressionType: ").append(getDataCompressionType()).append(","); if (getCopyTagsToSnapshots() != null) sb.append("CopyTagsToSnapshots: ").append(getCopyTagsToSnapshots()).append(","); if (getOriginSnapshot() != null) sb.append("OriginSnapshot: ").append(getOriginSnapshot()).append(","); if (getReadOnly() != null) sb.append("ReadOnly: ").append(getReadOnly()).append(","); if (getNfsExports() != null) sb.append("NfsExports: ").append(getNfsExports()).append(","); if (getUserAndGroupQuotas() != null) sb.append("UserAndGroupQuotas: ").append(getUserAndGroupQuotas()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CreateOpenZFSVolumeConfiguration == false) return false; CreateOpenZFSVolumeConfiguration other = (CreateOpenZFSVolumeConfiguration) obj; if (other.getParentVolumeId() == null ^ this.getParentVolumeId() == null) return false; if (other.getParentVolumeId() != null && other.getParentVolumeId().equals(this.getParentVolumeId()) == false) return false; if (other.getStorageCapacityReservationGiB() == null ^ this.getStorageCapacityReservationGiB() == null) return false; if (other.getStorageCapacityReservationGiB() != null && other.getStorageCapacityReservationGiB().equals(this.getStorageCapacityReservationGiB()) == false) return false; if (other.getStorageCapacityQuotaGiB() == null ^ this.getStorageCapacityQuotaGiB() == null) return false; if (other.getStorageCapacityQuotaGiB() != null && other.getStorageCapacityQuotaGiB().equals(this.getStorageCapacityQuotaGiB()) == false) return false; if (other.getRecordSizeKiB() == null ^ this.getRecordSizeKiB() == null) return false; if (other.getRecordSizeKiB() != null && other.getRecordSizeKiB().equals(this.getRecordSizeKiB()) == false) return false; if (other.getDataCompressionType() == null ^ this.getDataCompressionType() == null) return false; if (other.getDataCompressionType() != null && other.getDataCompressionType().equals(this.getDataCompressionType()) == false) return false; if (other.getCopyTagsToSnapshots() == null ^ this.getCopyTagsToSnapshots() == null) return false; if (other.getCopyTagsToSnapshots() != null && other.getCopyTagsToSnapshots().equals(this.getCopyTagsToSnapshots()) == false) return false; if (other.getOriginSnapshot() == null ^ this.getOriginSnapshot() == null) return false; if (other.getOriginSnapshot() != null && other.getOriginSnapshot().equals(this.getOriginSnapshot()) == false) return false; if (other.getReadOnly() == null ^ this.getReadOnly() == null) return false; if (other.getReadOnly() != null && other.getReadOnly().equals(this.getReadOnly()) == false) return false; if (other.getNfsExports() == null ^ this.getNfsExports() == null) return false; if (other.getNfsExports() != null && other.getNfsExports().equals(this.getNfsExports()) == false) return false; if (other.getUserAndGroupQuotas() == null ^ this.getUserAndGroupQuotas() == null) return false; if (other.getUserAndGroupQuotas() != null && other.getUserAndGroupQuotas().equals(this.getUserAndGroupQuotas()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getParentVolumeId() == null) ? 0 : getParentVolumeId().hashCode()); hashCode = prime * hashCode + ((getStorageCapacityReservationGiB() == null) ? 0 : getStorageCapacityReservationGiB().hashCode()); hashCode = prime * hashCode + ((getStorageCapacityQuotaGiB() == null) ? 0 : getStorageCapacityQuotaGiB().hashCode()); hashCode = prime * hashCode + ((getRecordSizeKiB() == null) ? 0 : getRecordSizeKiB().hashCode()); hashCode = prime * hashCode + ((getDataCompressionType() == null) ? 0 : getDataCompressionType().hashCode()); hashCode = prime * hashCode + ((getCopyTagsToSnapshots() == null) ? 0 : getCopyTagsToSnapshots().hashCode()); hashCode = prime * hashCode + ((getOriginSnapshot() == null) ? 0 : getOriginSnapshot().hashCode()); hashCode = prime * hashCode + ((getReadOnly() == null) ? 0 : getReadOnly().hashCode()); hashCode = prime * hashCode + ((getNfsExports() == null) ? 0 : getNfsExports().hashCode()); hashCode = prime * hashCode + ((getUserAndGroupQuotas() == null) ? 0 : getUserAndGroupQuotas().hashCode()); return hashCode; } @Override public CreateOpenZFSVolumeConfiguration clone() { try { return (CreateOpenZFSVolumeConfiguration) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.fsx.model.transform.CreateOpenZFSVolumeConfigurationMarshaller.getInstance().marshall(this, protocolMarshaller); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy