Class: AWSCDK::FSX::CfnVolume::OpenZFSConfigurationProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
fsx/cfn_volume.rb

Overview

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(parent_volume_id:, copy_tags_to_snapshots: nil, data_compression_type: nil, nfs_exports: nil, options: nil, origin_snapshot: nil, read_only: nil, record_size_kib: nil, storage_capacity_quota_gib: nil, storage_capacity_reservation_gib: nil, user_and_group_quotas: nil) ⇒ OpenZFSConfigurationProperty

Returns a new instance of OpenZFSConfigurationProperty.

Parameters:

  • parent_volume_id (String)

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

  • copy_tags_to_snapshots (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    A Boolean value indicating whether tags for the volume should be copied to snapshots.

  • data_compression_type (String, nil) (defaults to: nil)

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

  • nfs_exports (AWSCDK::IResolvable, Array<AWSCDK::IResolvable, AWSCDK::FSX::CfnVolume::NfsExportsProperty>, nil) (defaults to: nil)

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

  • options (Array<String>, nil) (defaults to: nil)

    To delete the volume's child volumes, snapshots, and clones, use the string DELETE_CHILD_VOLUMES_AND_SNAPSHOTS .

  • origin_snapshot (AWSCDK::IResolvable, AWSCDK::FSX::CfnVolume::OriginSnapshotProperty, nil) (defaults to: nil)

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

  • read_only (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

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

  • record_size_kib (Numeric, nil) (defaults to: nil)

    Specifies the suggested block size for a volume in a ZFS dataset, in kibibytes (KiB).

  • storage_capacity_quota_gib (Numeric, nil) (defaults to: nil)

    Sets the maximum storage size in gibibytes (GiB) for the volume.

  • storage_capacity_reservation_gib (Numeric, nil) (defaults to: nil)

    Specifies the amount of storage in gibibytes (GiB) to reserve from the parent volume.

  • user_and_group_quotas (AWSCDK::IResolvable, Array<AWSCDK::IResolvable, AWSCDK::FSX::CfnVolume::UserAndGroupQuotasProperty>, nil) (defaults to: nil)

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



993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
# File 'fsx/cfn_volume.rb', line 993

def initialize(parent_volume_id:, copy_tags_to_snapshots: nil, data_compression_type: nil, nfs_exports: nil, options: nil, origin_snapshot: nil, read_only: nil, record_size_kib: nil, storage_capacity_quota_gib: nil, storage_capacity_reservation_gib: nil, user_and_group_quotas: nil)
  @parent_volume_id = parent_volume_id
  Jsii::Type.check_type(@parent_volume_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "parentVolumeId")
  @copy_tags_to_snapshots = copy_tags_to_snapshots
  Jsii::Type.check_type(@copy_tags_to_snapshots, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "copyTagsToSnapshots") unless @copy_tags_to_snapshots.nil?
  @data_compression_type = data_compression_type
  Jsii::Type.check_type(@data_compression_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "dataCompressionType") unless @data_compression_type.nil?
  @nfs_exports = nfs_exports
  Jsii::Type.check_type(@nfs_exports, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZnN4LkNmblZvbHVtZS5OZnNFeHBvcnRzUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "nfsExports") unless @nfs_exports.nil?
  @options = options
  Jsii::Type.check_type(@options, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "options") unless @options.nil?
  @origin_snapshot = origin_snapshot.is_a?(Hash) ? ::AWSCDK::FSX::CfnVolume::OriginSnapshotProperty.new(**origin_snapshot.transform_keys(&:to_sym)) : origin_snapshot
  Jsii::Type.check_type(@origin_snapshot, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19mc3guQ2ZuVm9sdW1lLk9yaWdpblNuYXBzaG90UHJvcGVydHkifV19fQ==")), "originSnapshot") unless @origin_snapshot.nil?
  @read_only = read_only
  Jsii::Type.check_type(@read_only, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "readOnly") unless @read_only.nil?
  @record_size_kib = record_size_kib
  Jsii::Type.check_type(@record_size_kib, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "recordSizeKiB") unless @record_size_kib.nil?
  @storage_capacity_quota_gib = storage_capacity_quota_gib
  Jsii::Type.check_type(@storage_capacity_quota_gib, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "storageCapacityQuotaGiB") unless @storage_capacity_quota_gib.nil?
  @storage_capacity_reservation_gib = storage_capacity_reservation_gib
  Jsii::Type.check_type(@storage_capacity_reservation_gib, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "storageCapacityReservationGiB") unless @storage_capacity_reservation_gib.nil?
  @user_and_group_quotas = user_and_group_quotas
  Jsii::Type.check_type(@user_and_group_quotas, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZnN4LkNmblZvbHVtZS5Vc2VyQW5kR3JvdXBRdW90YXNQcm9wZXJ0eSJ9XX19LCJraW5kIjoiYXJyYXkifX1dfX0=")), "userAndGroupQuotas") unless @user_and_group_quotas.nil?
end

Instance Attribute Details

#copy_tags_to_snapshotsBoolean, ... (readonly)

A Boolean value indicating whether tags for the volume should be copied to snapshots.

This value defaults to false . If this value is set to true , and you do not specify any tags, all tags for the original volume are copied over to snapshots. If this value is set to true , and you do specify one or more tags, only the specified tags for the original volume are copied over to snapshots. If you specify one or more tags when creating a new snapshot, no tags are copied over from the original volume, regardless of this value.



1029
1030
1031
# File 'fsx/cfn_volume.rb', line 1029

def copy_tags_to_snapshots
  @copy_tags_to_snapshots
end

#data_compression_typeString? (readonly)

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.


1038
1039
1040
# File 'fsx/cfn_volume.rb', line 1038

def data_compression_type
  @data_compression_type
end

#nfs_exportsAWSCDK::IResolvable, ... (readonly)

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



1043
1044
1045
# File 'fsx/cfn_volume.rb', line 1043

def nfs_exports
  @nfs_exports
end

#optionsArray<String>? (readonly)

To delete the volume's child volumes, snapshots, and clones, use the string DELETE_CHILD_VOLUMES_AND_SNAPSHOTS .



1048
1049
1050
# File 'fsx/cfn_volume.rb', line 1048

def options
  @options
end

#origin_snapshotAWSCDK::IResolvable, ... (readonly)

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



1053
1054
1055
# File 'fsx/cfn_volume.rb', line 1053

def origin_snapshot
  @origin_snapshot
end

#parent_volume_idString (readonly)

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



1022
1023
1024
# File 'fsx/cfn_volume.rb', line 1022

def parent_volume_id
  @parent_volume_id
end

#read_onlyBoolean, ... (readonly)

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



1058
1059
1060
# File 'fsx/cfn_volume.rb', line 1058

def read_only
  @read_only
end

#record_size_kibNumeric? (readonly)

Specifies the suggested block size for a volume in a ZFS dataset, in kibibytes (KiB).

For file systems using the Intelligent-Tiering storage class, valid values are 128, 256, 512, 1024, 2048, or 4096 KiB, with a default of 1024 KiB. For all other file systems, valid values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB, with a default of 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 .



1065
1066
1067
# File 'fsx/cfn_volume.rb', line 1065

def record_size_kib
  @record_size_kib
end

#storage_capacity_quota_gibNumeric? (readonly)

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 .



1074
1075
1076
# File 'fsx/cfn_volume.rb', line 1074

def storage_capacity_quota_gib
  @storage_capacity_quota_gib
end

#storage_capacity_reservation_gibNumeric? (readonly)

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 .



1081
1082
1083
# File 'fsx/cfn_volume.rb', line 1081

def storage_capacity_reservation_gib
  @storage_capacity_reservation_gib
end

#user_and_group_quotasAWSCDK::IResolvable, ... (readonly)

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



1086
1087
1088
# File 'fsx/cfn_volume.rb', line 1086

def user_and_group_quotas
  @user_and_group_quotas
end

Class Method Details

.jsii_propertiesObject



1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
# File 'fsx/cfn_volume.rb', line 1088

def self.jsii_properties
  {
    :parent_volume_id => "parentVolumeId",
    :copy_tags_to_snapshots => "copyTagsToSnapshots",
    :data_compression_type => "dataCompressionType",
    :nfs_exports => "nfsExports",
    :options => "options",
    :origin_snapshot => "originSnapshot",
    :read_only => "readOnly",
    :record_size_kib => "recordSizeKiB",
    :storage_capacity_quota_gib => "storageCapacityQuotaGiB",
    :storage_capacity_reservation_gib => "storageCapacityReservationGiB",
    :user_and_group_quotas => "userAndGroupQuotas",
  }
end

Instance Method Details

#to_jsiiObject



1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
# File 'fsx/cfn_volume.rb', line 1104

def to_jsii
  result = {}
  result.merge!({
    "parentVolumeId" => @parent_volume_id,
    "copyTagsToSnapshots" => @copy_tags_to_snapshots,
    "dataCompressionType" => @data_compression_type,
    "nfsExports" => @nfs_exports,
    "options" => @options,
    "originSnapshot" => @origin_snapshot,
    "readOnly" => @read_only,
    "recordSizeKiB" => @record_size_kib,
    "storageCapacityQuotaGiB" => @storage_capacity_quota_gib,
    "storageCapacityReservationGiB" => @storage_capacity_reservation_gib,
    "userAndGroupQuotas" => @user_and_group_quotas,
  })
  result.compact
end