Class: AWSCDK::EMR::CfnInstanceGroupConfig::VolumeSpecificationProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
emr/cfn_instance_group_config.rb

Overview

VolumeSpecification is a subproperty of the EbsBlockDeviceConfig property type.

VolumeSecification determines the volume type, IOPS, and size (GiB) for EBS volumes attached to EC2 instances.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(size_in_gb:, volume_type:, iops: nil, throughput: nil) ⇒ VolumeSpecificationProperty

Returns a new instance of VolumeSpecificationProperty.

Parameters:

  • size_in_gb (Numeric)

    The volume size, in gibibytes (GiB).

  • volume_type (String)

    The volume type.

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

    The number of I/O operations per second (IOPS) that the volume supports.

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

    The throughput, in mebibyte per second (MiB/s).



1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
# File 'emr/cfn_instance_group_config.rb', line 1264

def initialize(size_in_gb:, volume_type:, iops: nil, throughput: nil)
  @size_in_gb = size_in_gb
  Jsii::Type.check_type(@size_in_gb, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "sizeInGb")
  @volume_type = volume_type
  Jsii::Type.check_type(@volume_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "volumeType")
  @iops = iops
  Jsii::Type.check_type(@iops, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "iops") unless @iops.nil?
  @throughput = throughput
  Jsii::Type.check_type(@throughput, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "throughput") unless @throughput.nil?
end

Instance Attribute Details

#iopsNumeric? (readonly)

The number of I/O operations per second (IOPS) that the volume supports.



1293
1294
1295
# File 'emr/cfn_instance_group_config.rb', line 1293

def iops
  @iops
end

#size_in_gbNumeric (readonly)

The volume size, in gibibytes (GiB).

This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.



1281
1282
1283
# File 'emr/cfn_instance_group_config.rb', line 1281

def size_in_gb
  @size_in_gb
end

#throughputNumeric? (readonly)

The throughput, in mebibyte per second (MiB/s).

This optional parameter can be a number from 125 - 1000 and is valid only for gp3 volumes.



1300
1301
1302
# File 'emr/cfn_instance_group_config.rb', line 1300

def throughput
  @throughput
end

#volume_typeString (readonly)

The volume type.

Volume types supported are gp3, gp2, io1, st1, sc1, and standard.



1288
1289
1290
# File 'emr/cfn_instance_group_config.rb', line 1288

def volume_type
  @volume_type
end

Class Method Details

.jsii_propertiesObject



1302
1303
1304
1305
1306
1307
1308
1309
# File 'emr/cfn_instance_group_config.rb', line 1302

def self.jsii_properties
  {
    :size_in_gb => "sizeInGb",
    :volume_type => "volumeType",
    :iops => "iops",
    :throughput => "throughput",
  }
end

Instance Method Details

#to_jsiiObject



1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
# File 'emr/cfn_instance_group_config.rb', line 1311

def to_jsii
  result = {}
  result.merge!({
    "sizeInGb" => @size_in_gb,
    "volumeType" => @volume_type,
    "iops" => @iops,
    "throughput" => @throughput,
  })
  result.compact
end