Class: AWSCDK::Autoscaling::EbsDeviceOptions

Inherits:
EbsDeviceOptionsBase
  • Object
show all
Defined in:
autoscaling/ebs_device_options.rb

Overview

Block device options for an EBS volume.

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, encrypted: nil) ⇒ EbsDeviceOptions

Returns a new instance of EbsDeviceOptions.

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.

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

    Specifies whether the EBS volume is encrypted.



12
13
14
15
16
17
18
19
20
21
22
23
# File 'autoscaling/ebs_device_options.rb', line 12

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


29
30
31
# File 'autoscaling/ebs_device_options.rb', line 29

def delete_on_termination
  @delete_on_termination
end

#encryptedBoolean? (readonly)

Note:

Default: false

Specifies whether the EBS volume is encrypted.

Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption



60
61
62
# File 'autoscaling/ebs_device_options.rb', line 60

def encrypted
  @encrypted
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.



40
41
42
# File 'autoscaling/ebs_device_options.rb', line 40

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.



46
47
48
# File 'autoscaling/ebs_device_options.rb', line 46

def throughput
  @throughput
end

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

Note:

Default: EbsDeviceVolumeType.GP2

The EBS volume type.



52
53
54
# File 'autoscaling/ebs_device_options.rb', line 52

def volume_type
  @volume_type
end

Class Method Details

.jsii_propertiesObject



62
63
64
65
66
67
68
69
70
# File 'autoscaling/ebs_device_options.rb', line 62

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

Instance Method Details

#to_jsiiObject



72
73
74
75
76
77
78
79
80
81
82
83
# File 'autoscaling/ebs_device_options.rb', line 72

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