Class: AWSCDK::EMR::CfnInstanceGroupConfigProps

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

Overview

Properties for defining a CfnInstanceGroupConfig.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(instance_count:, instance_role:, instance_type:, job_flow_id:, auto_scaling_policy: nil, bid_price: nil, configurations: nil, custom_ami_id: nil, ebs_configuration: nil, market: nil, name: nil) ⇒ CfnInstanceGroupConfigProps

Returns a new instance of CfnInstanceGroupConfigProps.

Parameters:

  • instance_count (Numeric)

    Target number of instances for the instance group.

  • instance_role (String)

    The role of the instance group in the cluster.

  • instance_type (String)

    The Amazon EC2 instance type for all instances in the instance group.

  • job_flow_id (String)

    The ID of an Amazon EMR cluster that you want to associate this instance group with.

  • auto_scaling_policy (AWSCDK::IResolvable, AWSCDK::EMR::CfnInstanceGroupConfig::AutoScalingPolicyProperty, nil) (defaults to: nil)

    AutoScalingPolicy is a subproperty of InstanceGroupConfig .

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

    If specified, indicates that the instance group uses Spot Instances.

  • configurations (AWSCDK::IResolvable, Array<AWSCDK::IResolvable, AWSCDK::EMR::CfnInstanceGroupConfig::ConfigurationProperty>, nil) (defaults to: nil)

    Amazon EMR releases 4.x or later.

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

    The custom AMI ID to use for the provisioned instance group.

  • ebs_configuration (AWSCDK::IResolvable, AWSCDK::EMR::CfnInstanceGroupConfig::EbsConfigurationProperty, nil) (defaults to: nil)

    EbsConfiguration determines the EBS volumes to attach to EMR cluster instances.

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

    Market type of the Amazon EC2 instances used to create a cluster node.

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

    Friendly name given to the instance group.



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'emr/cfn_instance_group_config_props.rb', line 20

def initialize(instance_count:, instance_role:, instance_type:, job_flow_id:, auto_scaling_policy: nil, bid_price: nil, configurations: nil, custom_ami_id: nil, ebs_configuration: nil, market: nil, name: nil)
  @instance_count = instance_count
  Jsii::Type.check_type(@instance_count, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "instanceCount")
  @instance_role = instance_role
  Jsii::Type.check_type(@instance_role, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "instanceRole")
  @instance_type = instance_type
  Jsii::Type.check_type(@instance_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "instanceType")
  @job_flow_id = job_flow_id
  Jsii::Type.check_type(@job_flow_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "jobFlowId")
  @auto_scaling_policy = auto_scaling_policy.is_a?(Hash) ? ::AWSCDK::EMR::CfnInstanceGroupConfig::AutoScalingPolicyProperty.new(**auto_scaling_policy.transform_keys(&:to_sym)) : auto_scaling_policy
  Jsii::Type.check_type(@auto_scaling_policy, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbXIuQ2ZuSW5zdGFuY2VHcm91cENvbmZpZy5BdXRvU2NhbGluZ1BvbGljeVByb3BlcnR5In1dfX0=")), "autoScalingPolicy") unless @auto_scaling_policy.nil?
  @bid_price = bid_price
  Jsii::Type.check_type(@bid_price, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "bidPrice") unless @bid_price.nil?
  @configurations = configurations
  Jsii::Type.check_type(@configurations, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZW1yLkNmbkluc3RhbmNlR3JvdXBDb25maWcuQ29uZmlndXJhdGlvblByb3BlcnR5In1dfX0sImtpbmQiOiJhcnJheSJ9fV19fQ==")), "configurations") unless @configurations.nil?
  @custom_ami_id = custom_ami_id
  Jsii::Type.check_type(@custom_ami_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "customAmiId") unless @custom_ami_id.nil?
  @ebs_configuration = ebs_configuration.is_a?(Hash) ? ::AWSCDK::EMR::CfnInstanceGroupConfig::EbsConfigurationProperty.new(**ebs_configuration.transform_keys(&:to_sym)) : ebs_configuration
  Jsii::Type.check_type(@ebs_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbXIuQ2ZuSW5zdGFuY2VHcm91cENvbmZpZy5FYnNDb25maWd1cmF0aW9uUHJvcGVydHkifV19fQ==")), "ebsConfiguration") unless @ebs_configuration.nil?
  @market = market
  Jsii::Type.check_type(@market, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "market") unless @market.nil?
  @name = name
  Jsii::Type.check_type(@name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "name") unless @name.nil?
end

Instance Attribute Details

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

AutoScalingPolicy is a subproperty of InstanceGroupConfig .

AutoScalingPolicy defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric. For more information, see Using Automatic Scaling in Amazon EMR in the Amazon EMR Management Guide .



73
74
75
# File 'emr/cfn_instance_group_config_props.rb', line 73

def auto_scaling_policy
  @auto_scaling_policy
end

#bid_priceString? (readonly)

If specified, indicates that the instance group uses Spot Instances.

This is the maximum price you are willing to pay for Spot Instances. Specify OnDemandPrice to set the amount equal to the On-Demand price, or specify an amount in USD.



80
81
82
# File 'emr/cfn_instance_group_config_props.rb', line 80

def bid_price
  @bid_price
end

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

Amazon EMR releases 4.x or later.

The list of configurations supplied for an Amazon EMR cluster instance group. You can specify a separate configuration for each instance group (master, core, and task).



87
88
89
# File 'emr/cfn_instance_group_config_props.rb', line 87

def configurations
  @configurations
end

#custom_ami_idString? (readonly)

The custom AMI ID to use for the provisioned instance group.



92
93
94
# File 'emr/cfn_instance_group_config_props.rb', line 92

def custom_ami_id
  @custom_ami_id
end

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

EbsConfiguration determines the EBS volumes to attach to EMR cluster instances.



97
98
99
# File 'emr/cfn_instance_group_config_props.rb', line 97

def ebs_configuration
  @ebs_configuration
end

#instance_countNumeric (readonly)

Target number of instances for the instance group.



49
50
51
# File 'emr/cfn_instance_group_config_props.rb', line 49

def instance_count
  @instance_count
end

#instance_roleString (readonly)

The role of the instance group in the cluster.

Allowed Values : TASK



56
57
58
# File 'emr/cfn_instance_group_config_props.rb', line 56

def instance_role
  @instance_role
end

#instance_typeString (readonly)

The Amazon EC2 instance type for all instances in the instance group.



61
62
63
# File 'emr/cfn_instance_group_config_props.rb', line 61

def instance_type
  @instance_type
end

#job_flow_idString (readonly)

The ID of an Amazon EMR cluster that you want to associate this instance group with.



66
67
68
# File 'emr/cfn_instance_group_config_props.rb', line 66

def job_flow_id
  @job_flow_id
end

#marketString? (readonly)

Market type of the Amazon EC2 instances used to create a cluster node.



102
103
104
# File 'emr/cfn_instance_group_config_props.rb', line 102

def market
  @market
end

#nameString? (readonly)

Friendly name given to the instance group.



107
108
109
# File 'emr/cfn_instance_group_config_props.rb', line 107

def name
  @name
end

Class Method Details

.jsii_propertiesObject



109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'emr/cfn_instance_group_config_props.rb', line 109

def self.jsii_properties
  {
    :instance_count => "instanceCount",
    :instance_role => "instanceRole",
    :instance_type => "instanceType",
    :job_flow_id => "jobFlowId",
    :auto_scaling_policy => "autoScalingPolicy",
    :bid_price => "bidPrice",
    :configurations => "configurations",
    :custom_ami_id => "customAmiId",
    :ebs_configuration => "ebsConfiguration",
    :market => "market",
    :name => "name",
  }
end

Instance Method Details

#to_jsiiObject



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'emr/cfn_instance_group_config_props.rb', line 125

def to_jsii
  result = {}
  result.merge!({
    "instanceCount" => @instance_count,
    "instanceRole" => @instance_role,
    "instanceType" => @instance_type,
    "jobFlowId" => @job_flow_id,
    "autoScalingPolicy" => @auto_scaling_policy,
    "bidPrice" => @bid_price,
    "configurations" => @configurations,
    "customAmiId" => @custom_ami_id,
    "ebsConfiguration" => @ebs_configuration,
    "market" => @market,
    "name" => @name,
  })
  result.compact
end