Class: AWSCDK::Autoscaling::EbsDeviceOptionsBase

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
autoscaling/ebs_device_options_base.rb

Overview

Base block device options for an EBS volume.

Direct Known Subclasses

EbsDeviceOptions, EbsDeviceSnapshotOptions

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(delete_on_termination: nil, iops: nil, throughput: nil, volume_type: nil) ⇒ EbsDeviceOptionsBase

Returns a new instance of EbsDeviceOptionsBase.

Parameters:

  • delete_on_termination (Boolean, nil) (defaults to: nil)

    Indicates whether to delete the volume when the instance is terminated.

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

    The number of I/O operations per second (IOPS) to provision for the volume.

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

    The throughput that the volume supports, in MiB/s Takes a minimum of 125 and maximum of 2000.

  • volume_type (AWSCDK::Autoscaling::EbsDeviceVolumeType, nil) (defaults to: nil)

    The EBS volume type.



11
12
13
14
15
16
17
18
19
20
# File 'autoscaling/ebs_device_options_base.rb', line 11

def initialize(delete_on_termination: nil, iops: nil, throughput: nil, volume_type: nil)
  @delete_on_termination = delete_on_termination
  Jsii::Type.check_type(@delete_on_termination, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "deleteOnTermination") unless @delete_on_termination.nil?
  @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?
  @volume_type = volume_type
  Jsii::Type.check_type(@volume_type, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXV0b3NjYWxpbmcuRWJzRGV2aWNlVm9sdW1lVHlwZSJ9")), "volumeType") unless @volume_type.nil?
end

Instance Attribute Details

#delete_on_terminationBoolean? (readonly)

Note:

Default: - true for Amazon EC2 Auto Scaling, false otherwise (e.g. EBS)

Indicates whether to delete the volume when the instance is terminated.

Returns:

  • (Boolean, nil)


26
27
28
# File 'autoscaling/ebs_device_options_base.rb', line 26

def delete_on_termination
  @delete_on_termination
end

#iopsNumeric? (readonly)

Note:

Default: - none, required for EbsDeviceVolumeType.IO1

The number of I/O operations per second (IOPS) to provision for the volume.

Must only be set for volume_type: EbsDeviceVolumeType.IO1

The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS, you need at least 100 GiB storage on the volume.



37
38
39
# File 'autoscaling/ebs_device_options_base.rb', line 37

def iops
  @iops
end

#throughputNumeric? (readonly)

Note:

Default: - 125 MiB/s. Only valid on gp3 volumes.

The throughput that the volume supports, in MiB/s Takes a minimum of 125 and maximum of 2000.



43
44
45
# File 'autoscaling/ebs_device_options_base.rb', line 43

def throughput
  @throughput
end

#volume_typeAWSCDK::Autoscaling::EbsDeviceVolumeType? (readonly)

Note:

Default: EbsDeviceVolumeType.GP2

The EBS volume type.



49
50
51
# File 'autoscaling/ebs_device_options_base.rb', line 49

def volume_type
  @volume_type
end

Class Method Details

.jsii_propertiesObject



51
52
53
54
55
56
57
58
# File 'autoscaling/ebs_device_options_base.rb', line 51

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

Instance Method Details

#to_jsiiObject



60
61
62
63
64
65
66
67
68
69
# File 'autoscaling/ebs_device_options_base.rb', line 60

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