aws-sdk-emr 1.0.0.rc1 → 1.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e2fe76544a9bc625b192198ce644e0c900dc4d50
4
- data.tar.gz: 68da9a389b12e2ae3156320ecb3d1b0ec2943a90
3
+ metadata.gz: 383787a61bdd2b926d39fe110200cec408675b6c
4
+ data.tar.gz: b7c15ad63a53aecafeda3f879b13b91833cb9f9f
5
5
  SHA512:
6
- metadata.gz: d2945f4213d4c3a05038772aa53adceb1362f66254c1452f642eb144b38253072cf821c51879057efe7ab008bf1c15e445bd9e1a726cc3e015e89a8b80bbe8db
7
- data.tar.gz: d49a41a337f072964020e35120d2831bb802ccb7fb92908fbd5ef23bc56b2d8f6c0640d9216a4b324624b23c4408cda52a9104aedc77ad4232f074c46848c395
6
+ metadata.gz: 43a2bdbc0ea9aca8fd21e745fddba08d317f54ea09ef2f4d91b4f854709bdcfdc04bae6d4300fd57318b256d3fd792e0191ad7cff3bae7ed27ec2439ae6d599a
7
+ data.tar.gz: 3ba9a0bc2746c86cb4c3608c5ec91eb55c2b74d9768bea618f1044ed76307cf5cef5d1da840de4625996464a2f02f504cf60c4c5a3857cf4d8d16d9658571304
data/lib/aws-sdk-emr.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # WARNING ABOUT GENERATED CODE
2
2
  #
3
- # This file is generated. See the contributing for info on making contributions:
3
+ # This file is generated. See the contributing guide for more information:
4
4
  # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
5
  #
6
6
  # WARNING ABOUT GENERATED CODE
@@ -43,6 +43,6 @@ require_relative 'aws-sdk-emr/customizations'
43
43
  # @service
44
44
  module Aws::EMR
45
45
 
46
- GEM_VERSION = '1.0.0.rc1'
46
+ GEM_VERSION = '1.0.0.rc2'
47
47
 
48
48
  end
@@ -1,6 +1,6 @@
1
1
  # WARNING ABOUT GENERATED CODE
2
2
  #
3
- # This file is generated. See the contributing for info on making contributions:
3
+ # This file is generated. See the contributing guide for more information:
4
4
  # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
5
  #
6
6
  # WARNING ABOUT GENERATED CODE
@@ -18,1760 +18,2250 @@ require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
18
  require 'aws-sdk-core/plugins/response_paging.rb'
19
19
  require 'aws-sdk-core/plugins/stub_responses.rb'
20
20
  require 'aws-sdk-core/plugins/idempotency_token.rb'
21
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
21
22
  require 'aws-sdk-core/plugins/signature_v4.rb'
22
23
  require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
23
24
 
24
25
  Aws::Plugins::GlobalConfiguration.add_identifier(:emr)
25
26
 
26
- module Aws
27
- module EMR
28
- class Client < Seahorse::Client::Base
27
+ module Aws::EMR
28
+ class Client < Seahorse::Client::Base
29
29
 
30
- include Aws::ClientStubs
30
+ include Aws::ClientStubs
31
31
 
32
- @identifier = :emr
32
+ @identifier = :emr
33
33
 
34
- set_api(ClientApi::API)
34
+ set_api(ClientApi::API)
35
35
 
36
- add_plugin(Seahorse::Client::Plugins::ContentLength)
37
- add_plugin(Aws::Plugins::CredentialsConfiguration)
38
- add_plugin(Aws::Plugins::Logging)
39
- add_plugin(Aws::Plugins::ParamConverter)
40
- add_plugin(Aws::Plugins::ParamValidator)
41
- add_plugin(Aws::Plugins::UserAgent)
42
- add_plugin(Aws::Plugins::HelpfulSocketErrors)
43
- add_plugin(Aws::Plugins::RetryErrors)
44
- add_plugin(Aws::Plugins::GlobalConfiguration)
45
- add_plugin(Aws::Plugins::RegionalEndpoint)
46
- add_plugin(Aws::Plugins::ResponsePaging)
47
- add_plugin(Aws::Plugins::StubResponses)
48
- add_plugin(Aws::Plugins::IdempotencyToken)
49
- add_plugin(Aws::Plugins::SignatureV4)
50
- add_plugin(Aws::Plugins::Protocols::JsonRpc)
36
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
37
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
38
+ add_plugin(Aws::Plugins::Logging)
39
+ add_plugin(Aws::Plugins::ParamConverter)
40
+ add_plugin(Aws::Plugins::ParamValidator)
41
+ add_plugin(Aws::Plugins::UserAgent)
42
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
43
+ add_plugin(Aws::Plugins::RetryErrors)
44
+ add_plugin(Aws::Plugins::GlobalConfiguration)
45
+ add_plugin(Aws::Plugins::RegionalEndpoint)
46
+ add_plugin(Aws::Plugins::ResponsePaging)
47
+ add_plugin(Aws::Plugins::StubResponses)
48
+ add_plugin(Aws::Plugins::IdempotencyToken)
49
+ add_plugin(Aws::Plugins::JsonvalueConverter)
50
+ add_plugin(Aws::Plugins::SignatureV4)
51
+ add_plugin(Aws::Plugins::Protocols::JsonRpc)
51
52
 
52
- # @option options [required, Aws::CredentialProvider] :credentials
53
- # Your AWS credentials. This can be an instance of any one of the
54
- # following classes:
55
- #
56
- # * `Aws::Credentials` - Used for configuring static, non-refreshing
57
- # credentials.
58
- #
59
- # * `Aws::InstanceProfileCredentials` - Used for loading credentials
60
- # from an EC2 IMDS on an EC2 instance.
61
- #
62
- # * `Aws::SharedCredentials` - Used for loading credentials from a
63
- # shared file, such as `~/.aws/config`.
64
- #
65
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
66
- #
67
- # When `:credentials` are not configured directly, the following
68
- # locations will be searched for credentials:
69
- #
70
- # * `Aws.config[:credentials]`
71
- # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
72
- # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
73
- # * `~/.aws/credentials`
74
- # * `~/.aws/config`
75
- # * EC2 IMDS instance profile - When used by default, the timeouts are
76
- # very aggressive. Construct and pass an instance of
77
- # `Aws::InstanceProfileCredentails` to enable retries and extended
78
- # timeouts.
79
- # @option options [required, String] :region
80
- # The AWS region to connect to. The configured `:region` is
81
- # used to determine the service `:endpoint`. When not passed,
82
- # a default `:region` is search for in the following locations:
83
- #
84
- # * `Aws.config[:region]`
85
- # * `ENV['AWS_REGION']`
86
- # * `ENV['AMAZON_REGION']`
87
- # * `ENV['AWS_DEFAULT_REGION']`
88
- # * `~/.aws/credentials`
89
- # * `~/.aws/config`
90
- # @option options [String] :access_key_id
91
- # @option options [Boolean] :convert_params (true)
92
- # When `true`, an attempt is made to coerce request parameters into
93
- # the required types.
94
- # @option options [String] :endpoint
95
- # The client endpoint is normally constructed from the `:region`
96
- # option. You should only configure an `:endpoint` when connecting
97
- # to test endpoints. This should be avalid HTTP(S) URI.
98
- # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
99
- # The log formatter.
100
- # @option options [Symbol] :log_level (:info)
101
- # The log level to send messages to the `:logger` at.
102
- # @option options [Logger] :logger
103
- # The Logger instance to send log messages to. If this option
104
- # is not set, logging will be disabled.
105
- # @option options [String] :profile ("default")
106
- # Used when loading credentials from the shared credentials file
107
- # at HOME/.aws/credentials. When not specified, 'default' is used.
108
- # @option options [Integer] :retry_limit (3)
109
- # The maximum number of times to retry failed requests. Only
110
- # ~ 500 level server errors and certain ~ 400 level client errors
111
- # are retried. Generally, these are throttling errors, data
112
- # checksum errors, networking errors, timeout errors and auth
113
- # errors from expired credentials.
114
- # @option options [String] :secret_access_key
115
- # @option options [String] :session_token
116
- # @option options [Boolean] :simple_json (false)
117
- # Disables request parameter conversion, validation, and formatting.
118
- # Also disable response data type conversions. This option is useful
119
- # when you want to ensure the highest level of performance by
120
- # avoiding overhead of walking request parameters and response data
121
- # structures.
122
- #
123
- # When `:simple_json` is enabled, the request parameters hash must
124
- # be formatted exactly as the DynamoDB API expects.
125
- # @option options [Boolean] :stub_responses (false)
126
- # Causes the client to return stubbed responses. By default
127
- # fake responses are generated and returned. You can specify
128
- # the response data to return or errors to raise by calling
129
- # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
130
- #
131
- # ** Please note ** When response stubbing is enabled, no HTTP
132
- # requests are made, and retries are disabled.
133
- # @option options [Boolean] :validate_params (true)
134
- # When `true`, request parameters are validated before
135
- # sending the request.
136
- def initialize(*args)
137
- super
138
- end
53
+ # @option options [required, Aws::CredentialProvider] :credentials
54
+ # Your AWS credentials. This can be an instance of any one of the
55
+ # following classes:
56
+ #
57
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
58
+ # credentials.
59
+ #
60
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
61
+ # from an EC2 IMDS on an EC2 instance.
62
+ #
63
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
64
+ # shared file, such as `~/.aws/config`.
65
+ #
66
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
67
+ #
68
+ # When `:credentials` are not configured directly, the following
69
+ # locations will be searched for credentials:
70
+ #
71
+ # * `Aws.config[:credentials]`
72
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
73
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
74
+ # * `~/.aws/credentials`
75
+ # * `~/.aws/config`
76
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
77
+ # very aggressive. Construct and pass an instance of
78
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
79
+ # timeouts.
80
+ #
81
+ # @option options [required, String] :region
82
+ # The AWS region to connect to. The configured `:region` is
83
+ # used to determine the service `:endpoint`. When not passed,
84
+ # a default `:region` is search for in the following locations:
85
+ #
86
+ # * `Aws.config[:region]`
87
+ # * `ENV['AWS_REGION']`
88
+ # * `ENV['AMAZON_REGION']`
89
+ # * `ENV['AWS_DEFAULT_REGION']`
90
+ # * `~/.aws/credentials`
91
+ # * `~/.aws/config`
92
+ #
93
+ # @option options [String] :access_key_id
94
+ #
95
+ # @option options [Boolean] :convert_params (true)
96
+ # When `true`, an attempt is made to coerce request parameters into
97
+ # the required types.
98
+ #
99
+ # @option options [String] :endpoint
100
+ # The client endpoint is normally constructed from the `:region`
101
+ # option. You should only configure an `:endpoint` when connecting
102
+ # to test endpoints. This should be avalid HTTP(S) URI.
103
+ #
104
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
105
+ # The log formatter.
106
+ #
107
+ # @option options [Symbol] :log_level (:info)
108
+ # The log level to send messages to the `:logger` at.
109
+ #
110
+ # @option options [Logger] :logger
111
+ # The Logger instance to send log messages to. If this option
112
+ # is not set, logging will be disabled.
113
+ #
114
+ # @option options [String] :profile ("default")
115
+ # Used when loading credentials from the shared credentials file
116
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
117
+ #
118
+ # @option options [Integer] :retry_limit (3)
119
+ # The maximum number of times to retry failed requests. Only
120
+ # ~ 500 level server errors and certain ~ 400 level client errors
121
+ # are retried. Generally, these are throttling errors, data
122
+ # checksum errors, networking errors, timeout errors and auth
123
+ # errors from expired credentials.
124
+ #
125
+ # @option options [String] :secret_access_key
126
+ #
127
+ # @option options [String] :session_token
128
+ #
129
+ # @option options [Boolean] :simple_json (false)
130
+ # Disables request parameter conversion, validation, and formatting.
131
+ # Also disable response data type conversions. This option is useful
132
+ # when you want to ensure the highest level of performance by
133
+ # avoiding overhead of walking request parameters and response data
134
+ # structures.
135
+ #
136
+ # When `:simple_json` is enabled, the request parameters hash must
137
+ # be formatted exactly as the DynamoDB API expects.
138
+ #
139
+ # @option options [Boolean] :stub_responses (false)
140
+ # Causes the client to return stubbed responses. By default
141
+ # fake responses are generated and returned. You can specify
142
+ # the response data to return or errors to raise by calling
143
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
144
+ #
145
+ # ** Please note ** When response stubbing is enabled, no HTTP
146
+ # requests are made, and retries are disabled.
147
+ #
148
+ # @option options [Boolean] :validate_params (true)
149
+ # When `true`, request parameters are validated before
150
+ # sending the request.
151
+ #
152
+ def initialize(*args)
153
+ super
154
+ end
139
155
 
140
- # @!group API Operations
156
+ # @!group API Operations
141
157
 
142
- # Adds one or more instance groups to a running cluster.
143
- # @option params [required, Array<Types::InstanceGroupConfig>] :instance_groups
144
- # Instance groups to add.
145
- # @option params [required, String] :job_flow_id
146
- # Job flow in which to add the instance groups.
147
- # @return [Types::AddInstanceGroupsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
148
- #
149
- # * {Types::AddInstanceGroupsOutput#job_flow_id #JobFlowId} => String
150
- # * {Types::AddInstanceGroupsOutput#instance_group_ids #InstanceGroupIds} => Array&lt;String&gt;
151
- #
152
- # @example Request syntax with placeholder values
153
- # resp = client.add_instance_groups({
154
- # instance_groups: [ # required
155
- # {
156
- # name: "XmlStringMaxLen256",
157
- # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
158
- # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK
159
- # bid_price: "XmlStringMaxLen256",
160
- # instance_type: "InstanceType", # required
161
- # instance_count: 1, # required
162
- # configurations: [
163
- # {
164
- # classification: "String",
165
- # configurations: {
166
- # # recursive ConfigurationList
167
- # },
168
- # properties: {
169
- # "String" => "String",
170
- # },
171
- # },
172
- # ],
173
- # ebs_configuration: {
174
- # ebs_block_device_configs: [
175
- # {
176
- # volume_specification: { # required
177
- # volume_type: "String", # required
178
- # iops: 1,
179
- # size_in_gb: 1, # required
180
- # },
181
- # volumes_per_instance: 1,
182
- # },
183
- # ],
184
- # ebs_optimized: false,
185
- # },
186
- # auto_scaling_policy: {
187
- # constraints: { # required
188
- # min_capacity: 1, # required
189
- # max_capacity: 1, # required
190
- # },
191
- # rules: [ # required
192
- # {
193
- # name: "String", # required
194
- # description: "String",
195
- # action: { # required
196
- # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
197
- # simple_scaling_policy_configuration: { # required
198
- # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
199
- # scaling_adjustment: 1, # required
200
- # cool_down: 1,
201
- # },
202
- # },
203
- # trigger: { # required
204
- # cloud_watch_alarm_definition: { # required
205
- # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
206
- # evaluation_periods: 1,
207
- # metric_name: "String", # required
208
- # namespace: "String",
209
- # period: 1, # required
210
- # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
211
- # threshold: 1.0, # required
212
- # unit: "NONE", # accepts NONE, SECONDS, MICRO_SECONDS, MILLI_SECONDS, BYTES, KILO_BYTES, MEGA_BYTES, GIGA_BYTES, TERA_BYTES, BITS, KILO_BITS, MEGA_BITS, GIGA_BITS, TERA_BITS, PERCENT, COUNT, BYTES_PER_SECOND, KILO_BYTES_PER_SECOND, MEGA_BYTES_PER_SECOND, GIGA_BYTES_PER_SECOND, TERA_BYTES_PER_SECOND, BITS_PER_SECOND, KILO_BITS_PER_SECOND, MEGA_BITS_PER_SECOND, GIGA_BITS_PER_SECOND, TERA_BITS_PER_SECOND, COUNT_PER_SECOND
213
- # dimensions: [
214
- # {
215
- # key: "String",
216
- # value: "String",
217
- # },
218
- # ],
219
- # },
220
- # },
221
- # },
222
- # ],
223
- # },
224
- # },
225
- # ],
226
- # job_flow_id: "XmlStringMaxLen256", # required
227
- # })
228
- #
229
- # @example Response structure
230
- # resp.job_flow_id #=> String
231
- # resp.instance_group_ids #=> Array
232
- # resp.instance_group_ids[0] #=> String
233
- # @overload add_instance_groups(params = {})
234
- # @param [Hash] params ({})
235
- def add_instance_groups(params = {}, options = {})
236
- req = build_request(:add_instance_groups, params)
237
- req.send_request(options)
238
- end
158
+ # Adds an instance fleet to a running cluster.
159
+ #
160
+ # <note markdown="1"> The instance fleet configuration is available only in Amazon EMR
161
+ # versions 4.8.0 and later, excluding 5.0.x.
162
+ #
163
+ # </note>
164
+ #
165
+ # @option params [required, String] :cluster_id
166
+ # The unique identifier of the cluster.
167
+ #
168
+ # @option params [required, Types::InstanceFleetConfig] :instance_fleet
169
+ # Specifies the configuration of the instance fleet.
170
+ #
171
+ # @return [Types::AddInstanceFleetOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
172
+ #
173
+ # * {Types::AddInstanceFleetOutput#cluster_id #cluster_id} => String
174
+ # * {Types::AddInstanceFleetOutput#instance_fleet_id #instance_fleet_id} => String
175
+ #
176
+ # @example Request syntax with placeholder values
177
+ #
178
+ # resp = client.add_instance_fleet({
179
+ # cluster_id: "XmlStringMaxLen256", # required
180
+ # instance_fleet: { # required
181
+ # name: "XmlStringMaxLen256",
182
+ # instance_fleet_type: "MASTER", # required, accepts MASTER, CORE, TASK
183
+ # target_on_demand_capacity: 1,
184
+ # target_spot_capacity: 1,
185
+ # instance_type_configs: [
186
+ # {
187
+ # instance_type: "InstanceType", # required
188
+ # weighted_capacity: 1,
189
+ # bid_price: "XmlStringMaxLen256",
190
+ # bid_price_as_percentage_of_on_demand_price: 1.0,
191
+ # ebs_configuration: {
192
+ # ebs_block_device_configs: [
193
+ # {
194
+ # volume_specification: { # required
195
+ # volume_type: "String", # required
196
+ # iops: 1,
197
+ # size_in_gb: 1, # required
198
+ # },
199
+ # volumes_per_instance: 1,
200
+ # },
201
+ # ],
202
+ # ebs_optimized: false,
203
+ # },
204
+ # configurations: [
205
+ # {
206
+ # classification: "String",
207
+ # configurations: {
208
+ # # recursive ConfigurationList
209
+ # },
210
+ # properties: {
211
+ # "String" => "String",
212
+ # },
213
+ # },
214
+ # ],
215
+ # },
216
+ # ],
217
+ # launch_specifications: {
218
+ # spot_specification: { # required
219
+ # timeout_duration_minutes: 1, # required
220
+ # timeout_action: "SWITCH_TO_ON_DEMAND", # required, accepts SWITCH_TO_ON_DEMAND, TERMINATE_CLUSTER
221
+ # block_duration_minutes: 1,
222
+ # },
223
+ # },
224
+ # },
225
+ # })
226
+ #
227
+ # @example Response structure
228
+ #
229
+ # resp.cluster_id #=> String
230
+ # resp.instance_fleet_id #=> String
231
+ #
232
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceFleet AWS API Documentation
233
+ #
234
+ # @overload add_instance_fleet(params = {})
235
+ # @param [Hash] params ({})
236
+ def add_instance_fleet(params = {}, options = {})
237
+ req = build_request(:add_instance_fleet, params)
238
+ req.send_request(options)
239
+ end
239
240
 
240
- # AddJobFlowSteps adds new steps to a running job flow. A maximum of 256
241
- # steps are allowed in each job flow.
242
- #
243
- # If your job flow is long-running (such as a Hive data warehouse) or
244
- # complex, you may require more than 256 steps to process your data. You
245
- # can bypass the 256-step limitation in various ways, including using
246
- # the SSH shell to connect to the master node and submitting queries
247
- # directly to the software running on the master node, such as Hive and
248
- # Hadoop. For more information on how to do this, see [Add More than 256
249
- # Steps to a Job Flow][1] in the *Amazon EMR Developer's Guide*.
250
- #
251
- # A step specifies the location of a JAR file stored either on the
252
- # master node of the job flow or in Amazon S3. Each step is performed by
253
- # the main function of the main class of the JAR file. The main class
254
- # can be specified either in the manifest of the JAR or by using the
255
- # MainFunction parameter of the step.
256
- #
257
- # Amazon EMR executes each step in the order listed. For a step to be
258
- # considered complete, the main function must exit with a zero exit code
259
- # and all Hadoop jobs started while the step was running must have
260
- # completed and run successfully.
261
- #
262
- # You can only add steps to a job flow that is in one of the following
263
- # states: STARTING, BOOTSTRAPPING, RUNNING, or WAITING.
264
- #
265
- #
266
- #
267
- # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/AddMoreThan256Steps.html
268
- # @option params [required, String] :job_flow_id
269
- # A string that uniquely identifies the job flow. This identifier is
270
- # returned by RunJobFlow and can also be obtained from ListClusters.
271
- # @option params [required, Array<Types::StepConfig>] :steps
272
- # A list of StepConfig to be executed by the job flow.
273
- # @return [Types::AddJobFlowStepsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
274
- #
275
- # * {Types::AddJobFlowStepsOutput#step_ids #StepIds} => Array&lt;String&gt;
276
- #
277
- # @example Request syntax with placeholder values
278
- # resp = client.add_job_flow_steps({
279
- # job_flow_id: "XmlStringMaxLen256", # required
280
- # steps: [ # required
281
- # {
282
- # name: "XmlStringMaxLen256", # required
283
- # action_on_failure: "TERMINATE_JOB_FLOW", # accepts TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, CONTINUE
284
- # hadoop_jar_step: { # required
285
- # properties: [
286
- # {
287
- # key: "XmlString",
288
- # value: "XmlString",
289
- # },
290
- # ],
291
- # jar: "XmlString", # required
292
- # main_class: "XmlString",
293
- # args: ["XmlString"],
294
- # },
295
- # },
296
- # ],
297
- # })
298
- #
299
- # @example Response structure
300
- # resp.step_ids #=> Array
301
- # resp.step_ids[0] #=> String
302
- # @overload add_job_flow_steps(params = {})
303
- # @param [Hash] params ({})
304
- def add_job_flow_steps(params = {}, options = {})
305
- req = build_request(:add_job_flow_steps, params)
306
- req.send_request(options)
307
- end
241
+ # Adds one or more instance groups to a running cluster.
242
+ #
243
+ # @option params [required, Array<Types::InstanceGroupConfig>] :instance_groups
244
+ # Instance groups to add.
245
+ #
246
+ # @option params [required, String] :job_flow_id
247
+ # Job flow in which to add the instance groups.
248
+ #
249
+ # @return [Types::AddInstanceGroupsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
250
+ #
251
+ # * {Types::AddInstanceGroupsOutput#job_flow_id #job_flow_id} => String
252
+ # * {Types::AddInstanceGroupsOutput#instance_group_ids #instance_group_ids} => Array&lt;String&gt;
253
+ #
254
+ # @example Request syntax with placeholder values
255
+ #
256
+ # resp = client.add_instance_groups({
257
+ # instance_groups: [ # required
258
+ # {
259
+ # name: "XmlStringMaxLen256",
260
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
261
+ # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK
262
+ # bid_price: "XmlStringMaxLen256",
263
+ # instance_type: "InstanceType", # required
264
+ # instance_count: 1, # required
265
+ # configurations: [
266
+ # {
267
+ # classification: "String",
268
+ # configurations: {
269
+ # # recursive ConfigurationList
270
+ # },
271
+ # properties: {
272
+ # "String" => "String",
273
+ # },
274
+ # },
275
+ # ],
276
+ # ebs_configuration: {
277
+ # ebs_block_device_configs: [
278
+ # {
279
+ # volume_specification: { # required
280
+ # volume_type: "String", # required
281
+ # iops: 1,
282
+ # size_in_gb: 1, # required
283
+ # },
284
+ # volumes_per_instance: 1,
285
+ # },
286
+ # ],
287
+ # ebs_optimized: false,
288
+ # },
289
+ # auto_scaling_policy: {
290
+ # constraints: { # required
291
+ # min_capacity: 1, # required
292
+ # max_capacity: 1, # required
293
+ # },
294
+ # rules: [ # required
295
+ # {
296
+ # name: "String", # required
297
+ # description: "String",
298
+ # action: { # required
299
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
300
+ # simple_scaling_policy_configuration: { # required
301
+ # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
302
+ # scaling_adjustment: 1, # required
303
+ # cool_down: 1,
304
+ # },
305
+ # },
306
+ # trigger: { # required
307
+ # cloud_watch_alarm_definition: { # required
308
+ # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
309
+ # evaluation_periods: 1,
310
+ # metric_name: "String", # required
311
+ # namespace: "String",
312
+ # period: 1, # required
313
+ # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
314
+ # threshold: 1.0, # required
315
+ # unit: "NONE", # accepts NONE, SECONDS, MICRO_SECONDS, MILLI_SECONDS, BYTES, KILO_BYTES, MEGA_BYTES, GIGA_BYTES, TERA_BYTES, BITS, KILO_BITS, MEGA_BITS, GIGA_BITS, TERA_BITS, PERCENT, COUNT, BYTES_PER_SECOND, KILO_BYTES_PER_SECOND, MEGA_BYTES_PER_SECOND, GIGA_BYTES_PER_SECOND, TERA_BYTES_PER_SECOND, BITS_PER_SECOND, KILO_BITS_PER_SECOND, MEGA_BITS_PER_SECOND, GIGA_BITS_PER_SECOND, TERA_BITS_PER_SECOND, COUNT_PER_SECOND
316
+ # dimensions: [
317
+ # {
318
+ # key: "String",
319
+ # value: "String",
320
+ # },
321
+ # ],
322
+ # },
323
+ # },
324
+ # },
325
+ # ],
326
+ # },
327
+ # },
328
+ # ],
329
+ # job_flow_id: "XmlStringMaxLen256", # required
330
+ # })
331
+ #
332
+ # @example Response structure
333
+ #
334
+ # resp.job_flow_id #=> String
335
+ # resp.instance_group_ids #=> Array
336
+ # resp.instance_group_ids[0] #=> String
337
+ #
338
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceGroups AWS API Documentation
339
+ #
340
+ # @overload add_instance_groups(params = {})
341
+ # @param [Hash] params ({})
342
+ def add_instance_groups(params = {}, options = {})
343
+ req = build_request(:add_instance_groups, params)
344
+ req.send_request(options)
345
+ end
308
346
 
309
- # Adds tags to an Amazon EMR resource. Tags make it easier to associate
310
- # clusters in various ways, such as grouping clusters to track your
311
- # Amazon EMR resource allocation costs. For more information, see
312
- # [Tagging Amazon EMR Resources][1].
313
- #
314
- #
315
- #
316
- # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-tags.html
317
- # @option params [required, String] :resource_id
318
- # The Amazon EMR resource identifier to which tags will be added. This
319
- # value must be a cluster identifier.
320
- # @option params [required, Array<Types::Tag>] :tags
321
- # A list of tags to associate with a cluster and propagate to EC2
322
- # instances. Tags are user-defined key/value pairs that consist of a
323
- # required key string with a maximum of 128 characters, and an optional
324
- # value string with a maximum of 256 characters.
325
- # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
326
- #
327
- # @example Request syntax with placeholder values
328
- # resp = client.add_tags({
329
- # resource_id: "ResourceId", # required
330
- # tags: [ # required
331
- # {
332
- # key: "String",
333
- # value: "String",
334
- # },
335
- # ],
336
- # })
337
- # @overload add_tags(params = {})
338
- # @param [Hash] params ({})
339
- def add_tags(params = {}, options = {})
340
- req = build_request(:add_tags, params)
341
- req.send_request(options)
342
- end
347
+ # AddJobFlowSteps adds new steps to a running cluster. A maximum of 256
348
+ # steps are allowed in each job flow.
349
+ #
350
+ # If your cluster is long-running (such as a Hive data warehouse) or
351
+ # complex, you may require more than 256 steps to process your data. You
352
+ # can bypass the 256-step limitation in various ways, including using
353
+ # SSH to connect to the master node and submitting queries directly to
354
+ # the software running on the master node, such as Hive and Hadoop. For
355
+ # more information on how to do this, see [Add More than 256 Steps to a
356
+ # Cluster][1] in the *Amazon EMR Management Guide*.
357
+ #
358
+ # A step specifies the location of a JAR file stored either on the
359
+ # master node of the cluster or in Amazon S3. Each step is performed by
360
+ # the main function of the main class of the JAR file. The main class
361
+ # can be specified either in the manifest of the JAR or by using the
362
+ # MainFunction parameter of the step.
363
+ #
364
+ # Amazon EMR executes each step in the order listed. For a step to be
365
+ # considered complete, the main function must exit with a zero exit code
366
+ # and all Hadoop jobs started while the step was running must have
367
+ # completed and run successfully.
368
+ #
369
+ # You can only add steps to a cluster that is in one of the following
370
+ # states: STARTING, BOOTSTRAPPING, RUNNING, or WAITING.
371
+ #
372
+ #
373
+ #
374
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/ManagementGuide/AddMoreThan256Steps.html
375
+ #
376
+ # @option params [required, String] :job_flow_id
377
+ # A string that uniquely identifies the job flow. This identifier is
378
+ # returned by RunJobFlow and can also be obtained from ListClusters.
379
+ #
380
+ # @option params [required, Array<Types::StepConfig>] :steps
381
+ # A list of StepConfig to be executed by the job flow.
382
+ #
383
+ # @return [Types::AddJobFlowStepsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
384
+ #
385
+ # * {Types::AddJobFlowStepsOutput#step_ids #step_ids} => Array&lt;String&gt;
386
+ #
387
+ # @example Request syntax with placeholder values
388
+ #
389
+ # resp = client.add_job_flow_steps({
390
+ # job_flow_id: "XmlStringMaxLen256", # required
391
+ # steps: [ # required
392
+ # {
393
+ # name: "XmlStringMaxLen256", # required
394
+ # action_on_failure: "TERMINATE_JOB_FLOW", # accepts TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, CONTINUE
395
+ # hadoop_jar_step: { # required
396
+ # properties: [
397
+ # {
398
+ # key: "XmlString",
399
+ # value: "XmlString",
400
+ # },
401
+ # ],
402
+ # jar: "XmlString", # required
403
+ # main_class: "XmlString",
404
+ # args: ["XmlString"],
405
+ # },
406
+ # },
407
+ # ],
408
+ # })
409
+ #
410
+ # @example Response structure
411
+ #
412
+ # resp.step_ids #=> Array
413
+ # resp.step_ids[0] #=> String
414
+ #
415
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowSteps AWS API Documentation
416
+ #
417
+ # @overload add_job_flow_steps(params = {})
418
+ # @param [Hash] params ({})
419
+ def add_job_flow_steps(params = {}, options = {})
420
+ req = build_request(:add_job_flow_steps, params)
421
+ req.send_request(options)
422
+ end
343
423
 
344
- # Cancels a pending step or steps in a running cluster. Available only
345
- # in Amazon EMR versions 4.8.0 and later, excluding version 5.0.0. A
346
- # maximum of 256 steps are allowed in each CancelSteps request.
347
- # CancelSteps is idempotent but asynchronous; it does not guarantee a
348
- # step will be canceled, even if the request is successfully submitted.
349
- # You can only cancel steps that are in a `PENDING` state.
350
- # @option params [String] :cluster_id
351
- # The `ClusterID` for which specified steps will be canceled. Use
352
- # RunJobFlow and ListClusters to get ClusterIDs.
353
- # @option params [Array<String>] :step_ids
354
- # The list of `StepIDs` to cancel. Use ListSteps to get steps and their
355
- # states for the specified cluster.
356
- # @return [Types::CancelStepsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
357
- #
358
- # * {Types::CancelStepsOutput#cancel_steps_info_list #CancelStepsInfoList} => Array&lt;Types::CancelStepsInfo&gt;
359
- #
360
- # @example Request syntax with placeholder values
361
- # resp = client.cancel_steps({
362
- # cluster_id: "XmlStringMaxLen256",
363
- # step_ids: ["XmlStringMaxLen256"],
364
- # })
365
- #
366
- # @example Response structure
367
- # resp.cancel_steps_info_list #=> Array
368
- # resp.cancel_steps_info_list[0].step_id #=> String
369
- # resp.cancel_steps_info_list[0].status #=> String, one of "SUBMITTED", "FAILED"
370
- # resp.cancel_steps_info_list[0].reason #=> String
371
- # @overload cancel_steps(params = {})
372
- # @param [Hash] params ({})
373
- def cancel_steps(params = {}, options = {})
374
- req = build_request(:cancel_steps, params)
375
- req.send_request(options)
376
- end
424
+ # Adds tags to an Amazon EMR resource. Tags make it easier to associate
425
+ # clusters in various ways, such as grouping clusters to track your
426
+ # Amazon EMR resource allocation costs. For more information, see
427
+ # [Tagging Amazon EMR Resources][1].
428
+ #
429
+ #
430
+ #
431
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-tags.html
432
+ #
433
+ # @option params [required, String] :resource_id
434
+ # The Amazon EMR resource identifier to which tags will be added. This
435
+ # value must be a cluster identifier.
436
+ #
437
+ # @option params [required, Array<Types::Tag>] :tags
438
+ # A list of tags to associate with a cluster and propagate to EC2
439
+ # instances. Tags are user-defined key/value pairs that consist of a
440
+ # required key string with a maximum of 128 characters, and an optional
441
+ # value string with a maximum of 256 characters.
442
+ #
443
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
444
+ #
445
+ # @example Request syntax with placeholder values
446
+ #
447
+ # resp = client.add_tags({
448
+ # resource_id: "ResourceId", # required
449
+ # tags: [ # required
450
+ # {
451
+ # key: "String",
452
+ # value: "String",
453
+ # },
454
+ # ],
455
+ # })
456
+ #
457
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTags AWS API Documentation
458
+ #
459
+ # @overload add_tags(params = {})
460
+ # @param [Hash] params ({})
461
+ def add_tags(params = {}, options = {})
462
+ req = build_request(:add_tags, params)
463
+ req.send_request(options)
464
+ end
377
465
 
378
- # Creates a security configuration, which is stored in the service and
379
- # can be specified when a cluster is created.
380
- # @option params [required, String] :name
381
- # The name of the security configuration.
382
- # @option params [required, String] :security_configuration
383
- # The security configuration details in JSON format.
384
- # @return [Types::CreateSecurityConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
385
- #
386
- # * {Types::CreateSecurityConfigurationOutput#name #Name} => String
387
- # * {Types::CreateSecurityConfigurationOutput#creation_date_time #CreationDateTime} => Time
388
- #
389
- # @example Request syntax with placeholder values
390
- # resp = client.create_security_configuration({
391
- # name: "XmlString", # required
392
- # security_configuration: "String", # required
393
- # })
394
- #
395
- # @example Response structure
396
- # resp.name #=> String
397
- # resp.creation_date_time #=> Time
398
- # @overload create_security_configuration(params = {})
399
- # @param [Hash] params ({})
400
- def create_security_configuration(params = {}, options = {})
401
- req = build_request(:create_security_configuration, params)
402
- req.send_request(options)
403
- end
466
+ # Cancels a pending step or steps in a running cluster. Available only
467
+ # in Amazon EMR versions 4.8.0 and later, excluding version 5.0.0. A
468
+ # maximum of 256 steps are allowed in each CancelSteps request.
469
+ # CancelSteps is idempotent but asynchronous; it does not guarantee a
470
+ # step will be canceled, even if the request is successfully submitted.
471
+ # You can only cancel steps that are in a `PENDING` state.
472
+ #
473
+ # @option params [String] :cluster_id
474
+ # The `ClusterID` for which specified steps will be canceled. Use
475
+ # RunJobFlow and ListClusters to get ClusterIDs.
476
+ #
477
+ # @option params [Array<String>] :step_ids
478
+ # The list of `StepIDs` to cancel. Use ListSteps to get steps and their
479
+ # states for the specified cluster.
480
+ #
481
+ # @return [Types::CancelStepsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
482
+ #
483
+ # * {Types::CancelStepsOutput#cancel_steps_info_list #cancel_steps_info_list} => Array&lt;Types::CancelStepsInfo&gt;
484
+ #
485
+ # @example Request syntax with placeholder values
486
+ #
487
+ # resp = client.cancel_steps({
488
+ # cluster_id: "XmlStringMaxLen256",
489
+ # step_ids: ["XmlStringMaxLen256"],
490
+ # })
491
+ #
492
+ # @example Response structure
493
+ #
494
+ # resp.cancel_steps_info_list #=> Array
495
+ # resp.cancel_steps_info_list[0].step_id #=> String
496
+ # resp.cancel_steps_info_list[0].status #=> String, one of "SUBMITTED", "FAILED"
497
+ # resp.cancel_steps_info_list[0].reason #=> String
498
+ #
499
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelSteps AWS API Documentation
500
+ #
501
+ # @overload cancel_steps(params = {})
502
+ # @param [Hash] params ({})
503
+ def cancel_steps(params = {}, options = {})
504
+ req = build_request(:cancel_steps, params)
505
+ req.send_request(options)
506
+ end
404
507
 
405
- # Deletes a security configuration.
406
- # @option params [required, String] :name
407
- # The name of the security configuration.
408
- # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
409
- #
410
- # @example Request syntax with placeholder values
411
- # resp = client.delete_security_configuration({
412
- # name: "XmlString", # required
413
- # })
414
- # @overload delete_security_configuration(params = {})
415
- # @param [Hash] params ({})
416
- def delete_security_configuration(params = {}, options = {})
417
- req = build_request(:delete_security_configuration, params)
418
- req.send_request(options)
419
- end
508
+ # Creates a security configuration, which is stored in the service and
509
+ # can be specified when a cluster is created.
510
+ #
511
+ # @option params [required, String] :name
512
+ # The name of the security configuration.
513
+ #
514
+ # @option params [required, String] :security_configuration
515
+ # The security configuration details in JSON format.
516
+ #
517
+ # @return [Types::CreateSecurityConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
518
+ #
519
+ # * {Types::CreateSecurityConfigurationOutput#name #name} => String
520
+ # * {Types::CreateSecurityConfigurationOutput#creation_date_time #creation_date_time} => Time
521
+ #
522
+ # @example Request syntax with placeholder values
523
+ #
524
+ # resp = client.create_security_configuration({
525
+ # name: "XmlString", # required
526
+ # security_configuration: "String", # required
527
+ # })
528
+ #
529
+ # @example Response structure
530
+ #
531
+ # resp.name #=> String
532
+ # resp.creation_date_time #=> Time
533
+ #
534
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfiguration AWS API Documentation
535
+ #
536
+ # @overload create_security_configuration(params = {})
537
+ # @param [Hash] params ({})
538
+ def create_security_configuration(params = {}, options = {})
539
+ req = build_request(:create_security_configuration, params)
540
+ req.send_request(options)
541
+ end
420
542
 
421
- # Provides cluster-level details including status, hardware and software
422
- # configuration, VPC settings, and so on. For information about the
423
- # cluster steps, see ListSteps.
424
- # @option params [required, String] :cluster_id
425
- # The identifier of the cluster to describe.
426
- # @return [Types::DescribeClusterOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
427
- #
428
- # * {Types::DescribeClusterOutput#cluster #Cluster} => Types::Cluster
429
- #
430
- # @example Request syntax with placeholder values
431
- # resp = client.describe_cluster({
432
- # cluster_id: "ClusterId", # required
433
- # })
434
- #
435
- # @example Response structure
436
- # resp.cluster.id #=> String
437
- # resp.cluster.name #=> String
438
- # resp.cluster.status.state #=> String, one of "STARTING", "BOOTSTRAPPING", "RUNNING", "WAITING", "TERMINATING", "TERMINATED", "TERMINATED_WITH_ERRORS"
439
- # resp.cluster.status.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "VALIDATION_ERROR", "INSTANCE_FAILURE", "BOOTSTRAP_FAILURE", "USER_REQUEST", "STEP_FAILURE", "ALL_STEPS_COMPLETED"
440
- # resp.cluster.status.state_change_reason.message #=> String
441
- # resp.cluster.status.timeline.creation_date_time #=> Time
442
- # resp.cluster.status.timeline.ready_date_time #=> Time
443
- # resp.cluster.status.timeline.end_date_time #=> Time
444
- # resp.cluster.ec2_instance_attributes.ec2_key_name #=> String
445
- # resp.cluster.ec2_instance_attributes.ec2_subnet_id #=> String
446
- # resp.cluster.ec2_instance_attributes.ec2_availability_zone #=> String
447
- # resp.cluster.ec2_instance_attributes.iam_instance_profile #=> String
448
- # resp.cluster.ec2_instance_attributes.emr_managed_master_security_group #=> String
449
- # resp.cluster.ec2_instance_attributes.emr_managed_slave_security_group #=> String
450
- # resp.cluster.ec2_instance_attributes.service_access_security_group #=> String
451
- # resp.cluster.ec2_instance_attributes.additional_master_security_groups #=> Array
452
- # resp.cluster.ec2_instance_attributes.additional_master_security_groups[0] #=> String
453
- # resp.cluster.ec2_instance_attributes.additional_slave_security_groups #=> Array
454
- # resp.cluster.ec2_instance_attributes.additional_slave_security_groups[0] #=> String
455
- # resp.cluster.log_uri #=> String
456
- # resp.cluster.requested_ami_version #=> String
457
- # resp.cluster.running_ami_version #=> String
458
- # resp.cluster.release_label #=> String
459
- # resp.cluster.auto_terminate #=> Boolean
460
- # resp.cluster.termination_protected #=> Boolean
461
- # resp.cluster.visible_to_all_users #=> Boolean
462
- # resp.cluster.applications #=> Array
463
- # resp.cluster.applications[0].name #=> String
464
- # resp.cluster.applications[0].version #=> String
465
- # resp.cluster.applications[0].args #=> Array
466
- # resp.cluster.applications[0].args[0] #=> String
467
- # resp.cluster.applications[0].additional_info #=> Hash
468
- # resp.cluster.applications[0].additional_info["String"] #=> String
469
- # resp.cluster.tags #=> Array
470
- # resp.cluster.tags[0].key #=> String
471
- # resp.cluster.tags[0].value #=> String
472
- # resp.cluster.service_role #=> String
473
- # resp.cluster.normalized_instance_hours #=> Integer
474
- # resp.cluster.master_public_dns_name #=> String
475
- # resp.cluster.configurations #=> Array
476
- # resp.cluster.configurations[0].classification #=> String
477
- # resp.cluster.configurations[0].configurations #=> Types::ConfigurationList
478
- # resp.cluster.configurations[0].properties #=> Hash
479
- # resp.cluster.configurations[0].properties["String"] #=> String
480
- # resp.cluster.security_configuration #=> String
481
- # resp.cluster.auto_scaling_role #=> String
482
- # resp.cluster.scale_down_behavior #=> String, one of "TERMINATE_AT_INSTANCE_HOUR", "TERMINATE_AT_TASK_COMPLETION"
483
- # @overload describe_cluster(params = {})
484
- # @param [Hash] params ({})
485
- def describe_cluster(params = {}, options = {})
486
- req = build_request(:describe_cluster, params)
487
- req.send_request(options)
488
- end
543
+ # Deletes a security configuration.
544
+ #
545
+ # @option params [required, String] :name
546
+ # The name of the security configuration.
547
+ #
548
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
549
+ #
550
+ # @example Request syntax with placeholder values
551
+ #
552
+ # resp = client.delete_security_configuration({
553
+ # name: "XmlString", # required
554
+ # })
555
+ #
556
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfiguration AWS API Documentation
557
+ #
558
+ # @overload delete_security_configuration(params = {})
559
+ # @param [Hash] params ({})
560
+ def delete_security_configuration(params = {}, options = {})
561
+ req = build_request(:delete_security_configuration, params)
562
+ req.send_request(options)
563
+ end
489
564
 
490
- # This API is deprecated and will eventually be removed. We recommend
491
- # you use ListClusters, DescribeCluster, ListSteps, ListInstanceGroups
492
- # and ListBootstrapActions instead.
493
- #
494
- # DescribeJobFlows returns a list of job flows that match all of the
495
- # supplied parameters. The parameters can include a list of job flow
496
- # IDs, job flow states, and restrictions on job flow creation date and
497
- # time.
498
- #
499
- # Regardless of supplied parameters, only job flows created within the
500
- # last two months are returned.
501
- #
502
- # If no parameters are supplied, then job flows matching either of the
503
- # following criteria are returned:
504
- #
505
- # * Job flows created and completed in the last two weeks
506
- #
507
- # * Job flows created within the last two months that are in one of the
508
- # following states: `RUNNING`, `WAITING`, `SHUTTING_DOWN`, `STARTING`
509
- #
510
- # Amazon EMR can return a maximum of 512 job flow descriptions.
511
- # @option params [Time,DateTime,Date,Integer,String] :created_after
512
- # Return only job flows created after this date and time.
513
- # @option params [Time,DateTime,Date,Integer,String] :created_before
514
- # Return only job flows created before this date and time.
515
- # @option params [Array<String>] :job_flow_ids
516
- # Return only job flows whose job flow ID is contained in this list.
517
- # @option params [Array<String>] :job_flow_states
518
- # Return only job flows whose state is contained in this list.
519
- # @return [Types::DescribeJobFlowsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
520
- #
521
- # * {Types::DescribeJobFlowsOutput#job_flows #JobFlows} => Array&lt;Types::JobFlowDetail&gt;
522
- #
523
- # @example Request syntax with placeholder values
524
- # resp = client.describe_job_flows({
525
- # created_after: Time.now,
526
- # created_before: Time.now,
527
- # job_flow_ids: ["XmlString"],
528
- # job_flow_states: ["STARTING"], # accepts STARTING, BOOTSTRAPPING, RUNNING, WAITING, SHUTTING_DOWN, TERMINATED, COMPLETED, FAILED
529
- # })
530
- #
531
- # @example Response structure
532
- # resp.job_flows #=> Array
533
- # resp.job_flows[0].job_flow_id #=> String
534
- # resp.job_flows[0].name #=> String
535
- # resp.job_flows[0].log_uri #=> String
536
- # resp.job_flows[0].ami_version #=> String
537
- # resp.job_flows[0].execution_status_detail.state #=> String, one of "STARTING", "BOOTSTRAPPING", "RUNNING", "WAITING", "SHUTTING_DOWN", "TERMINATED", "COMPLETED", "FAILED"
538
- # resp.job_flows[0].execution_status_detail.creation_date_time #=> Time
539
- # resp.job_flows[0].execution_status_detail.start_date_time #=> Time
540
- # resp.job_flows[0].execution_status_detail.ready_date_time #=> Time
541
- # resp.job_flows[0].execution_status_detail.end_date_time #=> Time
542
- # resp.job_flows[0].execution_status_detail.last_state_change_reason #=> String
543
- # resp.job_flows[0].instances.master_instance_type #=> String
544
- # resp.job_flows[0].instances.master_public_dns_name #=> String
545
- # resp.job_flows[0].instances.master_instance_id #=> String
546
- # resp.job_flows[0].instances.slave_instance_type #=> String
547
- # resp.job_flows[0].instances.instance_count #=> Integer
548
- # resp.job_flows[0].instances.instance_groups #=> Array
549
- # resp.job_flows[0].instances.instance_groups[0].instance_group_id #=> String
550
- # resp.job_flows[0].instances.instance_groups[0].name #=> String
551
- # resp.job_flows[0].instances.instance_groups[0].market #=> String, one of "ON_DEMAND", "SPOT"
552
- # resp.job_flows[0].instances.instance_groups[0].instance_role #=> String, one of "MASTER", "CORE", "TASK"
553
- # resp.job_flows[0].instances.instance_groups[0].bid_price #=> String
554
- # resp.job_flows[0].instances.instance_groups[0].instance_type #=> String
555
- # resp.job_flows[0].instances.instance_groups[0].instance_request_count #=> Integer
556
- # resp.job_flows[0].instances.instance_groups[0].instance_running_count #=> Integer
557
- # resp.job_flows[0].instances.instance_groups[0].state #=> String, one of "PROVISIONING", "BOOTSTRAPPING", "RUNNING", "RESIZING", "SUSPENDED", "TERMINATING", "TERMINATED", "ARRESTED", "SHUTTING_DOWN", "ENDED"
558
- # resp.job_flows[0].instances.instance_groups[0].last_state_change_reason #=> String
559
- # resp.job_flows[0].instances.instance_groups[0].creation_date_time #=> Time
560
- # resp.job_flows[0].instances.instance_groups[0].start_date_time #=> Time
561
- # resp.job_flows[0].instances.instance_groups[0].ready_date_time #=> Time
562
- # resp.job_flows[0].instances.instance_groups[0].end_date_time #=> Time
563
- # resp.job_flows[0].instances.normalized_instance_hours #=> Integer
564
- # resp.job_flows[0].instances.ec2_key_name #=> String
565
- # resp.job_flows[0].instances.ec2_subnet_id #=> String
566
- # resp.job_flows[0].instances.placement.availability_zone #=> String
567
- # resp.job_flows[0].instances.keep_job_flow_alive_when_no_steps #=> Boolean
568
- # resp.job_flows[0].instances.termination_protected #=> Boolean
569
- # resp.job_flows[0].instances.hadoop_version #=> String
570
- # resp.job_flows[0].steps #=> Array
571
- # resp.job_flows[0].steps[0].step_config.name #=> String
572
- # resp.job_flows[0].steps[0].step_config.action_on_failure #=> String, one of "TERMINATE_JOB_FLOW", "TERMINATE_CLUSTER", "CANCEL_AND_WAIT", "CONTINUE"
573
- # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.properties #=> Array
574
- # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.properties[0].key #=> String
575
- # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.properties[0].value #=> String
576
- # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.jar #=> String
577
- # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.main_class #=> String
578
- # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.args #=> Array
579
- # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.args[0] #=> String
580
- # resp.job_flows[0].steps[0].execution_status_detail.state #=> String, one of "PENDING", "RUNNING", "CONTINUE", "COMPLETED", "CANCELLED", "FAILED", "INTERRUPTED"
581
- # resp.job_flows[0].steps[0].execution_status_detail.creation_date_time #=> Time
582
- # resp.job_flows[0].steps[0].execution_status_detail.start_date_time #=> Time
583
- # resp.job_flows[0].steps[0].execution_status_detail.end_date_time #=> Time
584
- # resp.job_flows[0].steps[0].execution_status_detail.last_state_change_reason #=> String
585
- # resp.job_flows[0].bootstrap_actions #=> Array
586
- # resp.job_flows[0].bootstrap_actions[0].bootstrap_action_config.name #=> String
587
- # resp.job_flows[0].bootstrap_actions[0].bootstrap_action_config.script_bootstrap_action.path #=> String
588
- # resp.job_flows[0].bootstrap_actions[0].bootstrap_action_config.script_bootstrap_action.args #=> Array
589
- # resp.job_flows[0].bootstrap_actions[0].bootstrap_action_config.script_bootstrap_action.args[0] #=> String
590
- # resp.job_flows[0].supported_products #=> Array
591
- # resp.job_flows[0].supported_products[0] #=> String
592
- # resp.job_flows[0].visible_to_all_users #=> Boolean
593
- # resp.job_flows[0].job_flow_role #=> String
594
- # resp.job_flows[0].service_role #=> String
595
- # resp.job_flows[0].auto_scaling_role #=> String
596
- # resp.job_flows[0].scale_down_behavior #=> String, one of "TERMINATE_AT_INSTANCE_HOUR", "TERMINATE_AT_TASK_COMPLETION"
597
- # @overload describe_job_flows(params = {})
598
- # @param [Hash] params ({})
599
- def describe_job_flows(params = {}, options = {})
600
- req = build_request(:describe_job_flows, params)
601
- req.send_request(options)
602
- end
565
+ # Provides cluster-level details including status, hardware and software
566
+ # configuration, VPC settings, and so on. For information about the
567
+ # cluster steps, see ListSteps.
568
+ #
569
+ # @option params [required, String] :cluster_id
570
+ # The identifier of the cluster to describe.
571
+ #
572
+ # @return [Types::DescribeClusterOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
573
+ #
574
+ # * {Types::DescribeClusterOutput#cluster #cluster} => Types::Cluster
575
+ #
576
+ # @example Request syntax with placeholder values
577
+ #
578
+ # resp = client.describe_cluster({
579
+ # cluster_id: "ClusterId", # required
580
+ # })
581
+ #
582
+ # @example Response structure
583
+ #
584
+ # resp.cluster.id #=> String
585
+ # resp.cluster.name #=> String
586
+ # resp.cluster.status.state #=> String, one of "STARTING", "BOOTSTRAPPING", "RUNNING", "WAITING", "TERMINATING", "TERMINATED", "TERMINATED_WITH_ERRORS"
587
+ # resp.cluster.status.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "VALIDATION_ERROR", "INSTANCE_FAILURE", "BOOTSTRAP_FAILURE", "USER_REQUEST", "STEP_FAILURE", "ALL_STEPS_COMPLETED"
588
+ # resp.cluster.status.state_change_reason.message #=> String
589
+ # resp.cluster.status.timeline.creation_date_time #=> Time
590
+ # resp.cluster.status.timeline.ready_date_time #=> Time
591
+ # resp.cluster.status.timeline.end_date_time #=> Time
592
+ # resp.cluster.ec2_instance_attributes.ec2_key_name #=> String
593
+ # resp.cluster.ec2_instance_attributes.ec2_subnet_id #=> String
594
+ # resp.cluster.ec2_instance_attributes.requested_ec2_subnet_ids #=> Array
595
+ # resp.cluster.ec2_instance_attributes.requested_ec2_subnet_ids[0] #=> String
596
+ # resp.cluster.ec2_instance_attributes.ec2_availability_zone #=> String
597
+ # resp.cluster.ec2_instance_attributes.requested_ec2_availability_zones #=> Array
598
+ # resp.cluster.ec2_instance_attributes.requested_ec2_availability_zones[0] #=> String
599
+ # resp.cluster.ec2_instance_attributes.iam_instance_profile #=> String
600
+ # resp.cluster.ec2_instance_attributes.emr_managed_master_security_group #=> String
601
+ # resp.cluster.ec2_instance_attributes.emr_managed_slave_security_group #=> String
602
+ # resp.cluster.ec2_instance_attributes.service_access_security_group #=> String
603
+ # resp.cluster.ec2_instance_attributes.additional_master_security_groups #=> Array
604
+ # resp.cluster.ec2_instance_attributes.additional_master_security_groups[0] #=> String
605
+ # resp.cluster.ec2_instance_attributes.additional_slave_security_groups #=> Array
606
+ # resp.cluster.ec2_instance_attributes.additional_slave_security_groups[0] #=> String
607
+ # resp.cluster.instance_collection_type #=> String, one of "INSTANCE_FLEET", "INSTANCE_GROUP"
608
+ # resp.cluster.log_uri #=> String
609
+ # resp.cluster.requested_ami_version #=> String
610
+ # resp.cluster.running_ami_version #=> String
611
+ # resp.cluster.release_label #=> String
612
+ # resp.cluster.auto_terminate #=> Boolean
613
+ # resp.cluster.termination_protected #=> Boolean
614
+ # resp.cluster.visible_to_all_users #=> Boolean
615
+ # resp.cluster.applications #=> Array
616
+ # resp.cluster.applications[0].name #=> String
617
+ # resp.cluster.applications[0].version #=> String
618
+ # resp.cluster.applications[0].args #=> Array
619
+ # resp.cluster.applications[0].args[0] #=> String
620
+ # resp.cluster.applications[0].additional_info #=> Hash
621
+ # resp.cluster.applications[0].additional_info["String"] #=> String
622
+ # resp.cluster.tags #=> Array
623
+ # resp.cluster.tags[0].key #=> String
624
+ # resp.cluster.tags[0].value #=> String
625
+ # resp.cluster.service_role #=> String
626
+ # resp.cluster.normalized_instance_hours #=> Integer
627
+ # resp.cluster.master_public_dns_name #=> String
628
+ # resp.cluster.configurations #=> Array
629
+ # resp.cluster.configurations[0].classification #=> String
630
+ # resp.cluster.configurations[0].configurations #=> Types::ConfigurationList
631
+ # resp.cluster.configurations[0].properties #=> Hash
632
+ # resp.cluster.configurations[0].properties["String"] #=> String
633
+ # resp.cluster.security_configuration #=> String
634
+ # resp.cluster.auto_scaling_role #=> String
635
+ # resp.cluster.scale_down_behavior #=> String, one of "TERMINATE_AT_INSTANCE_HOUR", "TERMINATE_AT_TASK_COMPLETION"
636
+ #
637
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster AWS API Documentation
638
+ #
639
+ # @overload describe_cluster(params = {})
640
+ # @param [Hash] params ({})
641
+ def describe_cluster(params = {}, options = {})
642
+ req = build_request(:describe_cluster, params)
643
+ req.send_request(options)
644
+ end
603
645
 
604
- # Provides the details of a security configuration by returning the
605
- # configuration JSON.
606
- # @option params [required, String] :name
607
- # The name of the security configuration.
608
- # @return [Types::DescribeSecurityConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
609
- #
610
- # * {Types::DescribeSecurityConfigurationOutput#name #Name} => String
611
- # * {Types::DescribeSecurityConfigurationOutput#security_configuration #SecurityConfiguration} => String
612
- # * {Types::DescribeSecurityConfigurationOutput#creation_date_time #CreationDateTime} => Time
613
- #
614
- # @example Request syntax with placeholder values
615
- # resp = client.describe_security_configuration({
616
- # name: "XmlString", # required
617
- # })
618
- #
619
- # @example Response structure
620
- # resp.name #=> String
621
- # resp.security_configuration #=> String
622
- # resp.creation_date_time #=> Time
623
- # @overload describe_security_configuration(params = {})
624
- # @param [Hash] params ({})
625
- def describe_security_configuration(params = {}, options = {})
626
- req = build_request(:describe_security_configuration, params)
627
- req.send_request(options)
628
- end
646
+ # This API is deprecated and will eventually be removed. We recommend
647
+ # you use ListClusters, DescribeCluster, ListSteps, ListInstanceGroups
648
+ # and ListBootstrapActions instead.
649
+ #
650
+ # DescribeJobFlows returns a list of job flows that match all of the
651
+ # supplied parameters. The parameters can include a list of job flow
652
+ # IDs, job flow states, and restrictions on job flow creation date and
653
+ # time.
654
+ #
655
+ # Regardless of supplied parameters, only job flows created within the
656
+ # last two months are returned.
657
+ #
658
+ # If no parameters are supplied, then job flows matching either of the
659
+ # following criteria are returned:
660
+ #
661
+ # * Job flows created and completed in the last two weeks
662
+ #
663
+ # * Job flows created within the last two months that are in one of the
664
+ # following states: `RUNNING`, `WAITING`, `SHUTTING_DOWN`, `STARTING`
665
+ #
666
+ # Amazon EMR can return a maximum of 512 job flow descriptions.
667
+ #
668
+ # @option params [Time,DateTime,Date,Integer,String] :created_after
669
+ # Return only job flows created after this date and time.
670
+ #
671
+ # @option params [Time,DateTime,Date,Integer,String] :created_before
672
+ # Return only job flows created before this date and time.
673
+ #
674
+ # @option params [Array<String>] :job_flow_ids
675
+ # Return only job flows whose job flow ID is contained in this list.
676
+ #
677
+ # @option params [Array<String>] :job_flow_states
678
+ # Return only job flows whose state is contained in this list.
679
+ #
680
+ # @return [Types::DescribeJobFlowsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
681
+ #
682
+ # * {Types::DescribeJobFlowsOutput#job_flows #job_flows} => Array&lt;Types::JobFlowDetail&gt;
683
+ #
684
+ # @example Request syntax with placeholder values
685
+ #
686
+ # resp = client.describe_job_flows({
687
+ # created_after: Time.now,
688
+ # created_before: Time.now,
689
+ # job_flow_ids: ["XmlString"],
690
+ # job_flow_states: ["STARTING"], # accepts STARTING, BOOTSTRAPPING, RUNNING, WAITING, SHUTTING_DOWN, TERMINATED, COMPLETED, FAILED
691
+ # })
692
+ #
693
+ # @example Response structure
694
+ #
695
+ # resp.job_flows #=> Array
696
+ # resp.job_flows[0].job_flow_id #=> String
697
+ # resp.job_flows[0].name #=> String
698
+ # resp.job_flows[0].log_uri #=> String
699
+ # resp.job_flows[0].ami_version #=> String
700
+ # resp.job_flows[0].execution_status_detail.state #=> String, one of "STARTING", "BOOTSTRAPPING", "RUNNING", "WAITING", "SHUTTING_DOWN", "TERMINATED", "COMPLETED", "FAILED"
701
+ # resp.job_flows[0].execution_status_detail.creation_date_time #=> Time
702
+ # resp.job_flows[0].execution_status_detail.start_date_time #=> Time
703
+ # resp.job_flows[0].execution_status_detail.ready_date_time #=> Time
704
+ # resp.job_flows[0].execution_status_detail.end_date_time #=> Time
705
+ # resp.job_flows[0].execution_status_detail.last_state_change_reason #=> String
706
+ # resp.job_flows[0].instances.master_instance_type #=> String
707
+ # resp.job_flows[0].instances.master_public_dns_name #=> String
708
+ # resp.job_flows[0].instances.master_instance_id #=> String
709
+ # resp.job_flows[0].instances.slave_instance_type #=> String
710
+ # resp.job_flows[0].instances.instance_count #=> Integer
711
+ # resp.job_flows[0].instances.instance_groups #=> Array
712
+ # resp.job_flows[0].instances.instance_groups[0].instance_group_id #=> String
713
+ # resp.job_flows[0].instances.instance_groups[0].name #=> String
714
+ # resp.job_flows[0].instances.instance_groups[0].market #=> String, one of "ON_DEMAND", "SPOT"
715
+ # resp.job_flows[0].instances.instance_groups[0].instance_role #=> String, one of "MASTER", "CORE", "TASK"
716
+ # resp.job_flows[0].instances.instance_groups[0].bid_price #=> String
717
+ # resp.job_flows[0].instances.instance_groups[0].instance_type #=> String
718
+ # resp.job_flows[0].instances.instance_groups[0].instance_request_count #=> Integer
719
+ # resp.job_flows[0].instances.instance_groups[0].instance_running_count #=> Integer
720
+ # resp.job_flows[0].instances.instance_groups[0].state #=> String, one of "PROVISIONING", "BOOTSTRAPPING", "RUNNING", "RESIZING", "SUSPENDED", "TERMINATING", "TERMINATED", "ARRESTED", "SHUTTING_DOWN", "ENDED"
721
+ # resp.job_flows[0].instances.instance_groups[0].last_state_change_reason #=> String
722
+ # resp.job_flows[0].instances.instance_groups[0].creation_date_time #=> Time
723
+ # resp.job_flows[0].instances.instance_groups[0].start_date_time #=> Time
724
+ # resp.job_flows[0].instances.instance_groups[0].ready_date_time #=> Time
725
+ # resp.job_flows[0].instances.instance_groups[0].end_date_time #=> Time
726
+ # resp.job_flows[0].instances.normalized_instance_hours #=> Integer
727
+ # resp.job_flows[0].instances.ec2_key_name #=> String
728
+ # resp.job_flows[0].instances.ec2_subnet_id #=> String
729
+ # resp.job_flows[0].instances.placement.availability_zone #=> String
730
+ # resp.job_flows[0].instances.placement.availability_zones #=> Array
731
+ # resp.job_flows[0].instances.placement.availability_zones[0] #=> String
732
+ # resp.job_flows[0].instances.keep_job_flow_alive_when_no_steps #=> Boolean
733
+ # resp.job_flows[0].instances.termination_protected #=> Boolean
734
+ # resp.job_flows[0].instances.hadoop_version #=> String
735
+ # resp.job_flows[0].steps #=> Array
736
+ # resp.job_flows[0].steps[0].step_config.name #=> String
737
+ # resp.job_flows[0].steps[0].step_config.action_on_failure #=> String, one of "TERMINATE_JOB_FLOW", "TERMINATE_CLUSTER", "CANCEL_AND_WAIT", "CONTINUE"
738
+ # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.properties #=> Array
739
+ # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.properties[0].key #=> String
740
+ # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.properties[0].value #=> String
741
+ # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.jar #=> String
742
+ # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.main_class #=> String
743
+ # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.args #=> Array
744
+ # resp.job_flows[0].steps[0].step_config.hadoop_jar_step.args[0] #=> String
745
+ # resp.job_flows[0].steps[0].execution_status_detail.state #=> String, one of "PENDING", "RUNNING", "CONTINUE", "COMPLETED", "CANCELLED", "FAILED", "INTERRUPTED"
746
+ # resp.job_flows[0].steps[0].execution_status_detail.creation_date_time #=> Time
747
+ # resp.job_flows[0].steps[0].execution_status_detail.start_date_time #=> Time
748
+ # resp.job_flows[0].steps[0].execution_status_detail.end_date_time #=> Time
749
+ # resp.job_flows[0].steps[0].execution_status_detail.last_state_change_reason #=> String
750
+ # resp.job_flows[0].bootstrap_actions #=> Array
751
+ # resp.job_flows[0].bootstrap_actions[0].bootstrap_action_config.name #=> String
752
+ # resp.job_flows[0].bootstrap_actions[0].bootstrap_action_config.script_bootstrap_action.path #=> String
753
+ # resp.job_flows[0].bootstrap_actions[0].bootstrap_action_config.script_bootstrap_action.args #=> Array
754
+ # resp.job_flows[0].bootstrap_actions[0].bootstrap_action_config.script_bootstrap_action.args[0] #=> String
755
+ # resp.job_flows[0].supported_products #=> Array
756
+ # resp.job_flows[0].supported_products[0] #=> String
757
+ # resp.job_flows[0].visible_to_all_users #=> Boolean
758
+ # resp.job_flows[0].job_flow_role #=> String
759
+ # resp.job_flows[0].service_role #=> String
760
+ # resp.job_flows[0].auto_scaling_role #=> String
761
+ # resp.job_flows[0].scale_down_behavior #=> String, one of "TERMINATE_AT_INSTANCE_HOUR", "TERMINATE_AT_TASK_COMPLETION"
762
+ #
763
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlows AWS API Documentation
764
+ #
765
+ # @overload describe_job_flows(params = {})
766
+ # @param [Hash] params ({})
767
+ def describe_job_flows(params = {}, options = {})
768
+ req = build_request(:describe_job_flows, params)
769
+ req.send_request(options)
770
+ end
629
771
 
630
- # Provides more detail about the cluster step.
631
- # @option params [required, String] :cluster_id
632
- # The identifier of the cluster with steps to describe.
633
- # @option params [required, String] :step_id
634
- # The identifier of the step to describe.
635
- # @return [Types::DescribeStepOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
636
- #
637
- # * {Types::DescribeStepOutput#step #Step} => Types::Step
638
- #
639
- # @example Request syntax with placeholder values
640
- # resp = client.describe_step({
641
- # cluster_id: "ClusterId", # required
642
- # step_id: "StepId", # required
643
- # })
644
- #
645
- # @example Response structure
646
- # resp.step.id #=> String
647
- # resp.step.name #=> String
648
- # resp.step.config.jar #=> String
649
- # resp.step.config.properties #=> Hash
650
- # resp.step.config.properties["String"] #=> String
651
- # resp.step.config.main_class #=> String
652
- # resp.step.config.args #=> Array
653
- # resp.step.config.args[0] #=> String
654
- # resp.step.action_on_failure #=> String, one of "TERMINATE_JOB_FLOW", "TERMINATE_CLUSTER", "CANCEL_AND_WAIT", "CONTINUE"
655
- # resp.step.status.state #=> String, one of "PENDING", "CANCEL_PENDING", "RUNNING", "COMPLETED", "CANCELLED", "FAILED", "INTERRUPTED"
656
- # resp.step.status.state_change_reason.code #=> String, one of "NONE"
657
- # resp.step.status.state_change_reason.message #=> String
658
- # resp.step.status.failure_details.reason #=> String
659
- # resp.step.status.failure_details.message #=> String
660
- # resp.step.status.failure_details.log_file #=> String
661
- # resp.step.status.timeline.creation_date_time #=> Time
662
- # resp.step.status.timeline.start_date_time #=> Time
663
- # resp.step.status.timeline.end_date_time #=> Time
664
- # @overload describe_step(params = {})
665
- # @param [Hash] params ({})
666
- def describe_step(params = {}, options = {})
667
- req = build_request(:describe_step, params)
668
- req.send_request(options)
669
- end
772
+ # Provides the details of a security configuration by returning the
773
+ # configuration JSON.
774
+ #
775
+ # @option params [required, String] :name
776
+ # The name of the security configuration.
777
+ #
778
+ # @return [Types::DescribeSecurityConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
779
+ #
780
+ # * {Types::DescribeSecurityConfigurationOutput#name #name} => String
781
+ # * {Types::DescribeSecurityConfigurationOutput#security_configuration #security_configuration} => String
782
+ # * {Types::DescribeSecurityConfigurationOutput#creation_date_time #creation_date_time} => Time
783
+ #
784
+ # @example Request syntax with placeholder values
785
+ #
786
+ # resp = client.describe_security_configuration({
787
+ # name: "XmlString", # required
788
+ # })
789
+ #
790
+ # @example Response structure
791
+ #
792
+ # resp.name #=> String
793
+ # resp.security_configuration #=> String
794
+ # resp.creation_date_time #=> Time
795
+ #
796
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfiguration AWS API Documentation
797
+ #
798
+ # @overload describe_security_configuration(params = {})
799
+ # @param [Hash] params ({})
800
+ def describe_security_configuration(params = {}, options = {})
801
+ req = build_request(:describe_security_configuration, params)
802
+ req.send_request(options)
803
+ end
670
804
 
671
- # Provides information about the bootstrap actions associated with a
672
- # cluster.
673
- # @option params [required, String] :cluster_id
674
- # The cluster identifier for the bootstrap actions to list.
675
- # @option params [String] :marker
676
- # The pagination token that indicates the next set of results to
677
- # retrieve.
678
- # @return [Types::ListBootstrapActionsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
679
- #
680
- # * {Types::ListBootstrapActionsOutput#bootstrap_actions #BootstrapActions} => Array&lt;Types::Command&gt;
681
- # * {Types::ListBootstrapActionsOutput#marker #Marker} => String
682
- #
683
- # @example Request syntax with placeholder values
684
- # resp = client.list_bootstrap_actions({
685
- # cluster_id: "ClusterId", # required
686
- # marker: "Marker",
687
- # })
688
- #
689
- # @example Response structure
690
- # resp.bootstrap_actions #=> Array
691
- # resp.bootstrap_actions[0].name #=> String
692
- # resp.bootstrap_actions[0].script_path #=> String
693
- # resp.bootstrap_actions[0].args #=> Array
694
- # resp.bootstrap_actions[0].args[0] #=> String
695
- # resp.marker #=> String
696
- # @overload list_bootstrap_actions(params = {})
697
- # @param [Hash] params ({})
698
- def list_bootstrap_actions(params = {}, options = {})
699
- req = build_request(:list_bootstrap_actions, params)
700
- req.send_request(options)
701
- end
805
+ # Provides more detail about the cluster step.
806
+ #
807
+ # @option params [required, String] :cluster_id
808
+ # The identifier of the cluster with steps to describe.
809
+ #
810
+ # @option params [required, String] :step_id
811
+ # The identifier of the step to describe.
812
+ #
813
+ # @return [Types::DescribeStepOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
814
+ #
815
+ # * {Types::DescribeStepOutput#step #step} => Types::Step
816
+ #
817
+ # @example Request syntax with placeholder values
818
+ #
819
+ # resp = client.describe_step({
820
+ # cluster_id: "ClusterId", # required
821
+ # step_id: "StepId", # required
822
+ # })
823
+ #
824
+ # @example Response structure
825
+ #
826
+ # resp.step.id #=> String
827
+ # resp.step.name #=> String
828
+ # resp.step.config.jar #=> String
829
+ # resp.step.config.properties #=> Hash
830
+ # resp.step.config.properties["String"] #=> String
831
+ # resp.step.config.main_class #=> String
832
+ # resp.step.config.args #=> Array
833
+ # resp.step.config.args[0] #=> String
834
+ # resp.step.action_on_failure #=> String, one of "TERMINATE_JOB_FLOW", "TERMINATE_CLUSTER", "CANCEL_AND_WAIT", "CONTINUE"
835
+ # resp.step.status.state #=> String, one of "PENDING", "CANCEL_PENDING", "RUNNING", "COMPLETED", "CANCELLED", "FAILED", "INTERRUPTED"
836
+ # resp.step.status.state_change_reason.code #=> String, one of "NONE"
837
+ # resp.step.status.state_change_reason.message #=> String
838
+ # resp.step.status.failure_details.reason #=> String
839
+ # resp.step.status.failure_details.message #=> String
840
+ # resp.step.status.failure_details.log_file #=> String
841
+ # resp.step.status.timeline.creation_date_time #=> Time
842
+ # resp.step.status.timeline.start_date_time #=> Time
843
+ # resp.step.status.timeline.end_date_time #=> Time
844
+ #
845
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep AWS API Documentation
846
+ #
847
+ # @overload describe_step(params = {})
848
+ # @param [Hash] params ({})
849
+ def describe_step(params = {}, options = {})
850
+ req = build_request(:describe_step, params)
851
+ req.send_request(options)
852
+ end
702
853
 
703
- # Provides the status of all clusters visible to this AWS account.
704
- # Allows you to filter the list of clusters based on certain criteria;
705
- # for example, filtering by cluster creation date and time or by status.
706
- # This call returns a maximum of 50 clusters per call, but returns a
707
- # marker to track the paging of the cluster list across multiple
708
- # ListClusters calls.
709
- # @option params [Time,DateTime,Date,Integer,String] :created_after
710
- # The creation date and time beginning value filter for listing
711
- # clusters.
712
- # @option params [Time,DateTime,Date,Integer,String] :created_before
713
- # The creation date and time end value filter for listing clusters.
714
- # @option params [Array<String>] :cluster_states
715
- # The cluster state filters to apply when listing clusters.
716
- # @option params [String] :marker
717
- # The pagination token that indicates the next set of results to
718
- # retrieve.
719
- # @return [Types::ListClustersOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
720
- #
721
- # * {Types::ListClustersOutput#clusters #Clusters} => Array&lt;Types::ClusterSummary&gt;
722
- # * {Types::ListClustersOutput#marker #Marker} => String
723
- #
724
- # @example Request syntax with placeholder values
725
- # resp = client.list_clusters({
726
- # created_after: Time.now,
727
- # created_before: Time.now,
728
- # cluster_states: ["STARTING"], # accepts STARTING, BOOTSTRAPPING, RUNNING, WAITING, TERMINATING, TERMINATED, TERMINATED_WITH_ERRORS
729
- # marker: "Marker",
730
- # })
731
- #
732
- # @example Response structure
733
- # resp.clusters #=> Array
734
- # resp.clusters[0].id #=> String
735
- # resp.clusters[0].name #=> String
736
- # resp.clusters[0].status.state #=> String, one of "STARTING", "BOOTSTRAPPING", "RUNNING", "WAITING", "TERMINATING", "TERMINATED", "TERMINATED_WITH_ERRORS"
737
- # resp.clusters[0].status.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "VALIDATION_ERROR", "INSTANCE_FAILURE", "BOOTSTRAP_FAILURE", "USER_REQUEST", "STEP_FAILURE", "ALL_STEPS_COMPLETED"
738
- # resp.clusters[0].status.state_change_reason.message #=> String
739
- # resp.clusters[0].status.timeline.creation_date_time #=> Time
740
- # resp.clusters[0].status.timeline.ready_date_time #=> Time
741
- # resp.clusters[0].status.timeline.end_date_time #=> Time
742
- # resp.clusters[0].normalized_instance_hours #=> Integer
743
- # resp.marker #=> String
744
- # @overload list_clusters(params = {})
745
- # @param [Hash] params ({})
746
- def list_clusters(params = {}, options = {})
747
- req = build_request(:list_clusters, params)
748
- req.send_request(options)
749
- end
854
+ # Provides information about the bootstrap actions associated with a
855
+ # cluster.
856
+ #
857
+ # @option params [required, String] :cluster_id
858
+ # The cluster identifier for the bootstrap actions to list.
859
+ #
860
+ # @option params [String] :marker
861
+ # The pagination token that indicates the next set of results to
862
+ # retrieve.
863
+ #
864
+ # @return [Types::ListBootstrapActionsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
865
+ #
866
+ # * {Types::ListBootstrapActionsOutput#bootstrap_actions #bootstrap_actions} => Array&lt;Types::Command&gt;
867
+ # * {Types::ListBootstrapActionsOutput#marker #marker} => String
868
+ #
869
+ # @example Request syntax with placeholder values
870
+ #
871
+ # resp = client.list_bootstrap_actions({
872
+ # cluster_id: "ClusterId", # required
873
+ # marker: "Marker",
874
+ # })
875
+ #
876
+ # @example Response structure
877
+ #
878
+ # resp.bootstrap_actions #=> Array
879
+ # resp.bootstrap_actions[0].name #=> String
880
+ # resp.bootstrap_actions[0].script_path #=> String
881
+ # resp.bootstrap_actions[0].args #=> Array
882
+ # resp.bootstrap_actions[0].args[0] #=> String
883
+ # resp.marker #=> String
884
+ #
885
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActions AWS API Documentation
886
+ #
887
+ # @overload list_bootstrap_actions(params = {})
888
+ # @param [Hash] params ({})
889
+ def list_bootstrap_actions(params = {}, options = {})
890
+ req = build_request(:list_bootstrap_actions, params)
891
+ req.send_request(options)
892
+ end
750
893
 
751
- # Provides all available details about the instance groups in a cluster.
752
- # @option params [required, String] :cluster_id
753
- # The identifier of the cluster for which to list the instance groups.
754
- # @option params [String] :marker
755
- # The pagination token that indicates the next set of results to
756
- # retrieve.
757
- # @return [Types::ListInstanceGroupsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
758
- #
759
- # * {Types::ListInstanceGroupsOutput#instance_groups #InstanceGroups} => Array&lt;Types::InstanceGroup&gt;
760
- # * {Types::ListInstanceGroupsOutput#marker #Marker} => String
761
- #
762
- # @example Request syntax with placeholder values
763
- # resp = client.list_instance_groups({
764
- # cluster_id: "ClusterId", # required
765
- # marker: "Marker",
766
- # })
767
- #
768
- # @example Response structure
769
- # resp.instance_groups #=> Array
770
- # resp.instance_groups[0].id #=> String
771
- # resp.instance_groups[0].name #=> String
772
- # resp.instance_groups[0].market #=> String, one of "ON_DEMAND", "SPOT"
773
- # resp.instance_groups[0].instance_group_type #=> String, one of "MASTER", "CORE", "TASK"
774
- # resp.instance_groups[0].bid_price #=> String
775
- # resp.instance_groups[0].instance_type #=> String
776
- # resp.instance_groups[0].requested_instance_count #=> Integer
777
- # resp.instance_groups[0].running_instance_count #=> Integer
778
- # resp.instance_groups[0].status.state #=> String, one of "PROVISIONING", "BOOTSTRAPPING", "RUNNING", "RESIZING", "SUSPENDED", "TERMINATING", "TERMINATED", "ARRESTED", "SHUTTING_DOWN", "ENDED"
779
- # resp.instance_groups[0].status.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "VALIDATION_ERROR", "INSTANCE_FAILURE", "CLUSTER_TERMINATED"
780
- # resp.instance_groups[0].status.state_change_reason.message #=> String
781
- # resp.instance_groups[0].status.timeline.creation_date_time #=> Time
782
- # resp.instance_groups[0].status.timeline.ready_date_time #=> Time
783
- # resp.instance_groups[0].status.timeline.end_date_time #=> Time
784
- # resp.instance_groups[0].configurations #=> Array
785
- # resp.instance_groups[0].configurations[0].classification #=> String
786
- # resp.instance_groups[0].configurations[0].configurations #=> Types::ConfigurationList
787
- # resp.instance_groups[0].configurations[0].properties #=> Hash
788
- # resp.instance_groups[0].configurations[0].properties["String"] #=> String
789
- # resp.instance_groups[0].ebs_block_devices #=> Array
790
- # resp.instance_groups[0].ebs_block_devices[0].volume_specification.volume_type #=> String
791
- # resp.instance_groups[0].ebs_block_devices[0].volume_specification.iops #=> Integer
792
- # resp.instance_groups[0].ebs_block_devices[0].volume_specification.size_in_gb #=> Integer
793
- # resp.instance_groups[0].ebs_block_devices[0].device #=> String
794
- # resp.instance_groups[0].ebs_optimized #=> Boolean
795
- # resp.instance_groups[0].shrink_policy.decommission_timeout #=> Integer
796
- # resp.instance_groups[0].shrink_policy.instance_resize_policy.instances_to_terminate #=> Array
797
- # resp.instance_groups[0].shrink_policy.instance_resize_policy.instances_to_terminate[0] #=> String
798
- # resp.instance_groups[0].shrink_policy.instance_resize_policy.instances_to_protect #=> Array
799
- # resp.instance_groups[0].shrink_policy.instance_resize_policy.instances_to_protect[0] #=> String
800
- # resp.instance_groups[0].shrink_policy.instance_resize_policy.instance_termination_timeout #=> Integer
801
- # resp.instance_groups[0].auto_scaling_policy.status.state #=> String, one of "PENDING", "ATTACHING", "ATTACHED", "DETACHING", "DETACHED", "FAILED"
802
- # resp.instance_groups[0].auto_scaling_policy.status.state_change_reason.code #=> String, one of "USER_REQUEST", "PROVISION_FAILURE", "CLEANUP_FAILURE"
803
- # resp.instance_groups[0].auto_scaling_policy.status.state_change_reason.message #=> String
804
- # resp.instance_groups[0].auto_scaling_policy.constraints.min_capacity #=> Integer
805
- # resp.instance_groups[0].auto_scaling_policy.constraints.max_capacity #=> Integer
806
- # resp.instance_groups[0].auto_scaling_policy.rules #=> Array
807
- # resp.instance_groups[0].auto_scaling_policy.rules[0].name #=> String
808
- # resp.instance_groups[0].auto_scaling_policy.rules[0].description #=> String
809
- # resp.instance_groups[0].auto_scaling_policy.rules[0].action.market #=> String, one of "ON_DEMAND", "SPOT"
810
- # resp.instance_groups[0].auto_scaling_policy.rules[0].action.simple_scaling_policy_configuration.adjustment_type #=> String, one of "CHANGE_IN_CAPACITY", "PERCENT_CHANGE_IN_CAPACITY", "EXACT_CAPACITY"
811
- # resp.instance_groups[0].auto_scaling_policy.rules[0].action.simple_scaling_policy_configuration.scaling_adjustment #=> Integer
812
- # resp.instance_groups[0].auto_scaling_policy.rules[0].action.simple_scaling_policy_configuration.cool_down #=> Integer
813
- # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.comparison_operator #=> String, one of "GREATER_THAN_OR_EQUAL", "GREATER_THAN", "LESS_THAN", "LESS_THAN_OR_EQUAL"
814
- # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.evaluation_periods #=> Integer
815
- # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.metric_name #=> String
816
- # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.namespace #=> String
817
- # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.period #=> Integer
818
- # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.statistic #=> String, one of "SAMPLE_COUNT", "AVERAGE", "SUM", "MINIMUM", "MAXIMUM"
819
- # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.threshold #=> Float
820
- # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.unit #=> String, one of "NONE", "SECONDS", "MICRO_SECONDS", "MILLI_SECONDS", "BYTES", "KILO_BYTES", "MEGA_BYTES", "GIGA_BYTES", "TERA_BYTES", "BITS", "KILO_BITS", "MEGA_BITS", "GIGA_BITS", "TERA_BITS", "PERCENT", "COUNT", "BYTES_PER_SECOND", "KILO_BYTES_PER_SECOND", "MEGA_BYTES_PER_SECOND", "GIGA_BYTES_PER_SECOND", "TERA_BYTES_PER_SECOND", "BITS_PER_SECOND", "KILO_BITS_PER_SECOND", "MEGA_BITS_PER_SECOND", "GIGA_BITS_PER_SECOND", "TERA_BITS_PER_SECOND", "COUNT_PER_SECOND"
821
- # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.dimensions #=> Array
822
- # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.dimensions[0].key #=> String
823
- # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.dimensions[0].value #=> String
824
- # resp.marker #=> String
825
- # @overload list_instance_groups(params = {})
826
- # @param [Hash] params ({})
827
- def list_instance_groups(params = {}, options = {})
828
- req = build_request(:list_instance_groups, params)
829
- req.send_request(options)
830
- end
894
+ # Provides the status of all clusters visible to this AWS account.
895
+ # Allows you to filter the list of clusters based on certain criteria;
896
+ # for example, filtering by cluster creation date and time or by status.
897
+ # This call returns a maximum of 50 clusters per call, but returns a
898
+ # marker to track the paging of the cluster list across multiple
899
+ # ListClusters calls.
900
+ #
901
+ # @option params [Time,DateTime,Date,Integer,String] :created_after
902
+ # The creation date and time beginning value filter for listing
903
+ # clusters.
904
+ #
905
+ # @option params [Time,DateTime,Date,Integer,String] :created_before
906
+ # The creation date and time end value filter for listing clusters.
907
+ #
908
+ # @option params [Array<String>] :cluster_states
909
+ # The cluster state filters to apply when listing clusters.
910
+ #
911
+ # @option params [String] :marker
912
+ # The pagination token that indicates the next set of results to
913
+ # retrieve.
914
+ #
915
+ # @return [Types::ListClustersOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
916
+ #
917
+ # * {Types::ListClustersOutput#clusters #clusters} => Array&lt;Types::ClusterSummary&gt;
918
+ # * {Types::ListClustersOutput#marker #marker} => String
919
+ #
920
+ # @example Request syntax with placeholder values
921
+ #
922
+ # resp = client.list_clusters({
923
+ # created_after: Time.now,
924
+ # created_before: Time.now,
925
+ # cluster_states: ["STARTING"], # accepts STARTING, BOOTSTRAPPING, RUNNING, WAITING, TERMINATING, TERMINATED, TERMINATED_WITH_ERRORS
926
+ # marker: "Marker",
927
+ # })
928
+ #
929
+ # @example Response structure
930
+ #
931
+ # resp.clusters #=> Array
932
+ # resp.clusters[0].id #=> String
933
+ # resp.clusters[0].name #=> String
934
+ # resp.clusters[0].status.state #=> String, one of "STARTING", "BOOTSTRAPPING", "RUNNING", "WAITING", "TERMINATING", "TERMINATED", "TERMINATED_WITH_ERRORS"
935
+ # resp.clusters[0].status.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "VALIDATION_ERROR", "INSTANCE_FAILURE", "BOOTSTRAP_FAILURE", "USER_REQUEST", "STEP_FAILURE", "ALL_STEPS_COMPLETED"
936
+ # resp.clusters[0].status.state_change_reason.message #=> String
937
+ # resp.clusters[0].status.timeline.creation_date_time #=> Time
938
+ # resp.clusters[0].status.timeline.ready_date_time #=> Time
939
+ # resp.clusters[0].status.timeline.end_date_time #=> Time
940
+ # resp.clusters[0].normalized_instance_hours #=> Integer
941
+ # resp.marker #=> String
942
+ #
943
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClusters AWS API Documentation
944
+ #
945
+ # @overload list_clusters(params = {})
946
+ # @param [Hash] params ({})
947
+ def list_clusters(params = {}, options = {})
948
+ req = build_request(:list_clusters, params)
949
+ req.send_request(options)
950
+ end
831
951
 
832
- # Provides information about the cluster instances that Amazon EMR
833
- # provisions on behalf of a user when it creates the cluster. For
834
- # example, this operation indicates when the EC2 instances reach the
835
- # Ready state, when instances become available to Amazon EMR to use for
836
- # jobs, and the IP addresses for cluster instances, etc.
837
- # @option params [required, String] :cluster_id
838
- # The identifier of the cluster for which to list the instances.
839
- # @option params [String] :instance_group_id
840
- # The identifier of the instance group for which to list the instances.
841
- # @option params [Array<String>] :instance_group_types
842
- # The type of instance group for which to list the instances.
843
- # @option params [Array<String>] :instance_states
844
- # A list of instance states that will filter the instances returned with
845
- # this request.
846
- # @option params [String] :marker
847
- # The pagination token that indicates the next set of results to
848
- # retrieve.
849
- # @return [Types::ListInstancesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
850
- #
851
- # * {Types::ListInstancesOutput#instances #Instances} => Array&lt;Types::Instance&gt;
852
- # * {Types::ListInstancesOutput#marker #Marker} => String
853
- #
854
- # @example Request syntax with placeholder values
855
- # resp = client.list_instances({
856
- # cluster_id: "ClusterId", # required
857
- # instance_group_id: "InstanceGroupId",
858
- # instance_group_types: ["MASTER"], # accepts MASTER, CORE, TASK
859
- # instance_states: ["AWAITING_FULFILLMENT"], # accepts AWAITING_FULFILLMENT, PROVISIONING, BOOTSTRAPPING, RUNNING, TERMINATED
860
- # marker: "Marker",
861
- # })
862
- #
863
- # @example Response structure
864
- # resp.instances #=> Array
865
- # resp.instances[0].id #=> String
866
- # resp.instances[0].ec2_instance_id #=> String
867
- # resp.instances[0].public_dns_name #=> String
868
- # resp.instances[0].public_ip_address #=> String
869
- # resp.instances[0].private_dns_name #=> String
870
- # resp.instances[0].private_ip_address #=> String
871
- # resp.instances[0].status.state #=> String, one of "AWAITING_FULFILLMENT", "PROVISIONING", "BOOTSTRAPPING", "RUNNING", "TERMINATED"
872
- # resp.instances[0].status.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "VALIDATION_ERROR", "INSTANCE_FAILURE", "BOOTSTRAP_FAILURE", "CLUSTER_TERMINATED"
873
- # resp.instances[0].status.state_change_reason.message #=> String
874
- # resp.instances[0].status.timeline.creation_date_time #=> Time
875
- # resp.instances[0].status.timeline.ready_date_time #=> Time
876
- # resp.instances[0].status.timeline.end_date_time #=> Time
877
- # resp.instances[0].instance_group_id #=> String
878
- # resp.instances[0].ebs_volumes #=> Array
879
- # resp.instances[0].ebs_volumes[0].device #=> String
880
- # resp.instances[0].ebs_volumes[0].volume_id #=> String
881
- # resp.marker #=> String
882
- # @overload list_instances(params = {})
883
- # @param [Hash] params ({})
884
- def list_instances(params = {}, options = {})
885
- req = build_request(:list_instances, params)
886
- req.send_request(options)
887
- end
952
+ # Lists all available details about the instance fleets in a cluster.
953
+ #
954
+ # <note markdown="1"> The instance fleet configuration is available only in Amazon EMR
955
+ # versions 4.8.0 and later, excluding 5.0.x versions.
956
+ #
957
+ # </note>
958
+ #
959
+ # @option params [required, String] :cluster_id
960
+ # The unique identifier of the cluster.
961
+ #
962
+ # @option params [String] :marker
963
+ # The pagination token that indicates the next set of results to
964
+ # retrieve.
965
+ #
966
+ # @return [Types::ListInstanceFleetsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
967
+ #
968
+ # * {Types::ListInstanceFleetsOutput#instance_fleets #instance_fleets} => Array&lt;Types::InstanceFleet&gt;
969
+ # * {Types::ListInstanceFleetsOutput#marker #marker} => String
970
+ #
971
+ # @example Request syntax with placeholder values
972
+ #
973
+ # resp = client.list_instance_fleets({
974
+ # cluster_id: "ClusterId", # required
975
+ # marker: "Marker",
976
+ # })
977
+ #
978
+ # @example Response structure
979
+ #
980
+ # resp.instance_fleets #=> Array
981
+ # resp.instance_fleets[0].id #=> String
982
+ # resp.instance_fleets[0].name #=> String
983
+ # resp.instance_fleets[0].status.state #=> String, one of "PROVISIONING", "BOOTSTRAPPING", "RUNNING", "RESIZING", "SUSPENDED", "TERMINATING", "TERMINATED"
984
+ # resp.instance_fleets[0].status.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "VALIDATION_ERROR", "INSTANCE_FAILURE", "CLUSTER_TERMINATED"
985
+ # resp.instance_fleets[0].status.state_change_reason.message #=> String
986
+ # resp.instance_fleets[0].status.timeline.creation_date_time #=> Time
987
+ # resp.instance_fleets[0].status.timeline.ready_date_time #=> Time
988
+ # resp.instance_fleets[0].status.timeline.end_date_time #=> Time
989
+ # resp.instance_fleets[0].instance_fleet_type #=> String, one of "MASTER", "CORE", "TASK"
990
+ # resp.instance_fleets[0].target_on_demand_capacity #=> Integer
991
+ # resp.instance_fleets[0].target_spot_capacity #=> Integer
992
+ # resp.instance_fleets[0].provisioned_on_demand_capacity #=> Integer
993
+ # resp.instance_fleets[0].provisioned_spot_capacity #=> Integer
994
+ # resp.instance_fleets[0].instance_type_specifications #=> Array
995
+ # resp.instance_fleets[0].instance_type_specifications[0].instance_type #=> String
996
+ # resp.instance_fleets[0].instance_type_specifications[0].weighted_capacity #=> Integer
997
+ # resp.instance_fleets[0].instance_type_specifications[0].bid_price #=> String
998
+ # resp.instance_fleets[0].instance_type_specifications[0].bid_price_as_percentage_of_on_demand_price #=> Float
999
+ # resp.instance_fleets[0].instance_type_specifications[0].configurations #=> Array
1000
+ # resp.instance_fleets[0].instance_type_specifications[0].configurations[0].classification #=> String
1001
+ # resp.instance_fleets[0].instance_type_specifications[0].configurations[0].configurations #=> Types::ConfigurationList
1002
+ # resp.instance_fleets[0].instance_type_specifications[0].configurations[0].properties #=> Hash
1003
+ # resp.instance_fleets[0].instance_type_specifications[0].configurations[0].properties["String"] #=> String
1004
+ # resp.instance_fleets[0].instance_type_specifications[0].ebs_block_devices #=> Array
1005
+ # resp.instance_fleets[0].instance_type_specifications[0].ebs_block_devices[0].volume_specification.volume_type #=> String
1006
+ # resp.instance_fleets[0].instance_type_specifications[0].ebs_block_devices[0].volume_specification.iops #=> Integer
1007
+ # resp.instance_fleets[0].instance_type_specifications[0].ebs_block_devices[0].volume_specification.size_in_gb #=> Integer
1008
+ # resp.instance_fleets[0].instance_type_specifications[0].ebs_block_devices[0].device #=> String
1009
+ # resp.instance_fleets[0].instance_type_specifications[0].ebs_optimized #=> Boolean
1010
+ # resp.instance_fleets[0].launch_specifications.spot_specification.timeout_duration_minutes #=> Integer
1011
+ # resp.instance_fleets[0].launch_specifications.spot_specification.timeout_action #=> String, one of "SWITCH_TO_ON_DEMAND", "TERMINATE_CLUSTER"
1012
+ # resp.instance_fleets[0].launch_specifications.spot_specification.block_duration_minutes #=> Integer
1013
+ # resp.marker #=> String
1014
+ #
1015
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleets AWS API Documentation
1016
+ #
1017
+ # @overload list_instance_fleets(params = {})
1018
+ # @param [Hash] params ({})
1019
+ def list_instance_fleets(params = {}, options = {})
1020
+ req = build_request(:list_instance_fleets, params)
1021
+ req.send_request(options)
1022
+ end
888
1023
 
889
- # Lists all the security configurations visible to this account,
890
- # providing their creation dates and times, and their names. This call
891
- # returns a maximum of 50 clusters per call, but returns a marker to
892
- # track the paging of the cluster list across multiple
893
- # ListSecurityConfigurations calls.
894
- # @option params [String] :marker
895
- # The pagination token that indicates the set of results to retrieve.
896
- # @return [Types::ListSecurityConfigurationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
897
- #
898
- # * {Types::ListSecurityConfigurationsOutput#security_configurations #SecurityConfigurations} => Array&lt;Types::SecurityConfigurationSummary&gt;
899
- # * {Types::ListSecurityConfigurationsOutput#marker #Marker} => String
900
- #
901
- # @example Request syntax with placeholder values
902
- # resp = client.list_security_configurations({
903
- # marker: "Marker",
904
- # })
905
- #
906
- # @example Response structure
907
- # resp.security_configurations #=> Array
908
- # resp.security_configurations[0].name #=> String
909
- # resp.security_configurations[0].creation_date_time #=> Time
910
- # resp.marker #=> String
911
- # @overload list_security_configurations(params = {})
912
- # @param [Hash] params ({})
913
- def list_security_configurations(params = {}, options = {})
914
- req = build_request(:list_security_configurations, params)
915
- req.send_request(options)
916
- end
1024
+ # Provides all available details about the instance groups in a cluster.
1025
+ #
1026
+ # @option params [required, String] :cluster_id
1027
+ # The identifier of the cluster for which to list the instance groups.
1028
+ #
1029
+ # @option params [String] :marker
1030
+ # The pagination token that indicates the next set of results to
1031
+ # retrieve.
1032
+ #
1033
+ # @return [Types::ListInstanceGroupsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1034
+ #
1035
+ # * {Types::ListInstanceGroupsOutput#instance_groups #instance_groups} => Array&lt;Types::InstanceGroup&gt;
1036
+ # * {Types::ListInstanceGroupsOutput#marker #marker} => String
1037
+ #
1038
+ # @example Request syntax with placeholder values
1039
+ #
1040
+ # resp = client.list_instance_groups({
1041
+ # cluster_id: "ClusterId", # required
1042
+ # marker: "Marker",
1043
+ # })
1044
+ #
1045
+ # @example Response structure
1046
+ #
1047
+ # resp.instance_groups #=> Array
1048
+ # resp.instance_groups[0].id #=> String
1049
+ # resp.instance_groups[0].name #=> String
1050
+ # resp.instance_groups[0].market #=> String, one of "ON_DEMAND", "SPOT"
1051
+ # resp.instance_groups[0].instance_group_type #=> String, one of "MASTER", "CORE", "TASK"
1052
+ # resp.instance_groups[0].bid_price #=> String
1053
+ # resp.instance_groups[0].instance_type #=> String
1054
+ # resp.instance_groups[0].requested_instance_count #=> Integer
1055
+ # resp.instance_groups[0].running_instance_count #=> Integer
1056
+ # resp.instance_groups[0].status.state #=> String, one of "PROVISIONING", "BOOTSTRAPPING", "RUNNING", "RESIZING", "SUSPENDED", "TERMINATING", "TERMINATED", "ARRESTED", "SHUTTING_DOWN", "ENDED"
1057
+ # resp.instance_groups[0].status.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "VALIDATION_ERROR", "INSTANCE_FAILURE", "CLUSTER_TERMINATED"
1058
+ # resp.instance_groups[0].status.state_change_reason.message #=> String
1059
+ # resp.instance_groups[0].status.timeline.creation_date_time #=> Time
1060
+ # resp.instance_groups[0].status.timeline.ready_date_time #=> Time
1061
+ # resp.instance_groups[0].status.timeline.end_date_time #=> Time
1062
+ # resp.instance_groups[0].configurations #=> Array
1063
+ # resp.instance_groups[0].configurations[0].classification #=> String
1064
+ # resp.instance_groups[0].configurations[0].configurations #=> Types::ConfigurationList
1065
+ # resp.instance_groups[0].configurations[0].properties #=> Hash
1066
+ # resp.instance_groups[0].configurations[0].properties["String"] #=> String
1067
+ # resp.instance_groups[0].ebs_block_devices #=> Array
1068
+ # resp.instance_groups[0].ebs_block_devices[0].volume_specification.volume_type #=> String
1069
+ # resp.instance_groups[0].ebs_block_devices[0].volume_specification.iops #=> Integer
1070
+ # resp.instance_groups[0].ebs_block_devices[0].volume_specification.size_in_gb #=> Integer
1071
+ # resp.instance_groups[0].ebs_block_devices[0].device #=> String
1072
+ # resp.instance_groups[0].ebs_optimized #=> Boolean
1073
+ # resp.instance_groups[0].shrink_policy.decommission_timeout #=> Integer
1074
+ # resp.instance_groups[0].shrink_policy.instance_resize_policy.instances_to_terminate #=> Array
1075
+ # resp.instance_groups[0].shrink_policy.instance_resize_policy.instances_to_terminate[0] #=> String
1076
+ # resp.instance_groups[0].shrink_policy.instance_resize_policy.instances_to_protect #=> Array
1077
+ # resp.instance_groups[0].shrink_policy.instance_resize_policy.instances_to_protect[0] #=> String
1078
+ # resp.instance_groups[0].shrink_policy.instance_resize_policy.instance_termination_timeout #=> Integer
1079
+ # resp.instance_groups[0].auto_scaling_policy.status.state #=> String, one of "PENDING", "ATTACHING", "ATTACHED", "DETACHING", "DETACHED", "FAILED"
1080
+ # resp.instance_groups[0].auto_scaling_policy.status.state_change_reason.code #=> String, one of "USER_REQUEST", "PROVISION_FAILURE", "CLEANUP_FAILURE"
1081
+ # resp.instance_groups[0].auto_scaling_policy.status.state_change_reason.message #=> String
1082
+ # resp.instance_groups[0].auto_scaling_policy.constraints.min_capacity #=> Integer
1083
+ # resp.instance_groups[0].auto_scaling_policy.constraints.max_capacity #=> Integer
1084
+ # resp.instance_groups[0].auto_scaling_policy.rules #=> Array
1085
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].name #=> String
1086
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].description #=> String
1087
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].action.market #=> String, one of "ON_DEMAND", "SPOT"
1088
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].action.simple_scaling_policy_configuration.adjustment_type #=> String, one of "CHANGE_IN_CAPACITY", "PERCENT_CHANGE_IN_CAPACITY", "EXACT_CAPACITY"
1089
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].action.simple_scaling_policy_configuration.scaling_adjustment #=> Integer
1090
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].action.simple_scaling_policy_configuration.cool_down #=> Integer
1091
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.comparison_operator #=> String, one of "GREATER_THAN_OR_EQUAL", "GREATER_THAN", "LESS_THAN", "LESS_THAN_OR_EQUAL"
1092
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.evaluation_periods #=> Integer
1093
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.metric_name #=> String
1094
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.namespace #=> String
1095
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.period #=> Integer
1096
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.statistic #=> String, one of "SAMPLE_COUNT", "AVERAGE", "SUM", "MINIMUM", "MAXIMUM"
1097
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.threshold #=> Float
1098
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.unit #=> String, one of "NONE", "SECONDS", "MICRO_SECONDS", "MILLI_SECONDS", "BYTES", "KILO_BYTES", "MEGA_BYTES", "GIGA_BYTES", "TERA_BYTES", "BITS", "KILO_BITS", "MEGA_BITS", "GIGA_BITS", "TERA_BITS", "PERCENT", "COUNT", "BYTES_PER_SECOND", "KILO_BYTES_PER_SECOND", "MEGA_BYTES_PER_SECOND", "GIGA_BYTES_PER_SECOND", "TERA_BYTES_PER_SECOND", "BITS_PER_SECOND", "KILO_BITS_PER_SECOND", "MEGA_BITS_PER_SECOND", "GIGA_BITS_PER_SECOND", "TERA_BITS_PER_SECOND", "COUNT_PER_SECOND"
1099
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.dimensions #=> Array
1100
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.dimensions[0].key #=> String
1101
+ # resp.instance_groups[0].auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.dimensions[0].value #=> String
1102
+ # resp.marker #=> String
1103
+ #
1104
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroups AWS API Documentation
1105
+ #
1106
+ # @overload list_instance_groups(params = {})
1107
+ # @param [Hash] params ({})
1108
+ def list_instance_groups(params = {}, options = {})
1109
+ req = build_request(:list_instance_groups, params)
1110
+ req.send_request(options)
1111
+ end
917
1112
 
918
- # Provides a list of steps for the cluster in reverse order unless you
919
- # specify stepIds with the request.
920
- # @option params [required, String] :cluster_id
921
- # The identifier of the cluster for which to list the steps.
922
- # @option params [Array<String>] :step_states
923
- # The filter to limit the step list based on certain states.
924
- # @option params [Array<String>] :step_ids
925
- # The filter to limit the step list based on the identifier of the
926
- # steps.
927
- # @option params [String] :marker
928
- # The pagination token that indicates the next set of results to
929
- # retrieve.
930
- # @return [Types::ListStepsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
931
- #
932
- # * {Types::ListStepsOutput#steps #Steps} => Array&lt;Types::StepSummary&gt;
933
- # * {Types::ListStepsOutput#marker #Marker} => String
934
- #
935
- # @example Request syntax with placeholder values
936
- # resp = client.list_steps({
937
- # cluster_id: "ClusterId", # required
938
- # step_states: ["PENDING"], # accepts PENDING, CANCEL_PENDING, RUNNING, COMPLETED, CANCELLED, FAILED, INTERRUPTED
939
- # step_ids: ["XmlString"],
940
- # marker: "Marker",
941
- # })
942
- #
943
- # @example Response structure
944
- # resp.steps #=> Array
945
- # resp.steps[0].id #=> String
946
- # resp.steps[0].name #=> String
947
- # resp.steps[0].config.jar #=> String
948
- # resp.steps[0].config.properties #=> Hash
949
- # resp.steps[0].config.properties["String"] #=> String
950
- # resp.steps[0].config.main_class #=> String
951
- # resp.steps[0].config.args #=> Array
952
- # resp.steps[0].config.args[0] #=> String
953
- # resp.steps[0].action_on_failure #=> String, one of "TERMINATE_JOB_FLOW", "TERMINATE_CLUSTER", "CANCEL_AND_WAIT", "CONTINUE"
954
- # resp.steps[0].status.state #=> String, one of "PENDING", "CANCEL_PENDING", "RUNNING", "COMPLETED", "CANCELLED", "FAILED", "INTERRUPTED"
955
- # resp.steps[0].status.state_change_reason.code #=> String, one of "NONE"
956
- # resp.steps[0].status.state_change_reason.message #=> String
957
- # resp.steps[0].status.failure_details.reason #=> String
958
- # resp.steps[0].status.failure_details.message #=> String
959
- # resp.steps[0].status.failure_details.log_file #=> String
960
- # resp.steps[0].status.timeline.creation_date_time #=> Time
961
- # resp.steps[0].status.timeline.start_date_time #=> Time
962
- # resp.steps[0].status.timeline.end_date_time #=> Time
963
- # resp.marker #=> String
964
- # @overload list_steps(params = {})
965
- # @param [Hash] params ({})
966
- def list_steps(params = {}, options = {})
967
- req = build_request(:list_steps, params)
968
- req.send_request(options)
969
- end
1113
+ # Provides information about the cluster instances that Amazon EMR
1114
+ # provisions on behalf of a user when it creates the cluster. For
1115
+ # example, this operation indicates when the EC2 instances reach the
1116
+ # Ready state, when instances become available to Amazon EMR to use for
1117
+ # jobs, and the IP addresses for cluster instances, etc.
1118
+ #
1119
+ # @option params [required, String] :cluster_id
1120
+ # The identifier of the cluster for which to list the instances.
1121
+ #
1122
+ # @option params [String] :instance_group_id
1123
+ # The identifier of the instance group for which to list the instances.
1124
+ #
1125
+ # @option params [Array<String>] :instance_group_types
1126
+ # The type of instance group for which to list the instances.
1127
+ #
1128
+ # @option params [String] :instance_fleet_id
1129
+ # The unique identifier of the instance fleet.
1130
+ #
1131
+ # @option params [String] :instance_fleet_type
1132
+ # The node type of the instance fleet. For example MASTER, CORE, or
1133
+ # TASK.
1134
+ #
1135
+ # @option params [Array<String>] :instance_states
1136
+ # A list of instance states that will filter the instances returned with
1137
+ # this request.
1138
+ #
1139
+ # @option params [String] :marker
1140
+ # The pagination token that indicates the next set of results to
1141
+ # retrieve.
1142
+ #
1143
+ # @return [Types::ListInstancesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1144
+ #
1145
+ # * {Types::ListInstancesOutput#instances #instances} => Array&lt;Types::Instance&gt;
1146
+ # * {Types::ListInstancesOutput#marker #marker} => String
1147
+ #
1148
+ # @example Request syntax with placeholder values
1149
+ #
1150
+ # resp = client.list_instances({
1151
+ # cluster_id: "ClusterId", # required
1152
+ # instance_group_id: "InstanceGroupId",
1153
+ # instance_group_types: ["MASTER"], # accepts MASTER, CORE, TASK
1154
+ # instance_fleet_id: "InstanceFleetId",
1155
+ # instance_fleet_type: "MASTER", # accepts MASTER, CORE, TASK
1156
+ # instance_states: ["AWAITING_FULFILLMENT"], # accepts AWAITING_FULFILLMENT, PROVISIONING, BOOTSTRAPPING, RUNNING, TERMINATED
1157
+ # marker: "Marker",
1158
+ # })
1159
+ #
1160
+ # @example Response structure
1161
+ #
1162
+ # resp.instances #=> Array
1163
+ # resp.instances[0].id #=> String
1164
+ # resp.instances[0].ec2_instance_id #=> String
1165
+ # resp.instances[0].public_dns_name #=> String
1166
+ # resp.instances[0].public_ip_address #=> String
1167
+ # resp.instances[0].private_dns_name #=> String
1168
+ # resp.instances[0].private_ip_address #=> String
1169
+ # resp.instances[0].status.state #=> String, one of "AWAITING_FULFILLMENT", "PROVISIONING", "BOOTSTRAPPING", "RUNNING", "TERMINATED"
1170
+ # resp.instances[0].status.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "VALIDATION_ERROR", "INSTANCE_FAILURE", "BOOTSTRAP_FAILURE", "CLUSTER_TERMINATED"
1171
+ # resp.instances[0].status.state_change_reason.message #=> String
1172
+ # resp.instances[0].status.timeline.creation_date_time #=> Time
1173
+ # resp.instances[0].status.timeline.ready_date_time #=> Time
1174
+ # resp.instances[0].status.timeline.end_date_time #=> Time
1175
+ # resp.instances[0].instance_group_id #=> String
1176
+ # resp.instances[0].instance_fleet_id #=> String
1177
+ # resp.instances[0].market #=> String, one of "ON_DEMAND", "SPOT"
1178
+ # resp.instances[0].instance_type #=> String
1179
+ # resp.instances[0].ebs_volumes #=> Array
1180
+ # resp.instances[0].ebs_volumes[0].device #=> String
1181
+ # resp.instances[0].ebs_volumes[0].volume_id #=> String
1182
+ # resp.marker #=> String
1183
+ #
1184
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstances AWS API Documentation
1185
+ #
1186
+ # @overload list_instances(params = {})
1187
+ # @param [Hash] params ({})
1188
+ def list_instances(params = {}, options = {})
1189
+ req = build_request(:list_instances, params)
1190
+ req.send_request(options)
1191
+ end
970
1192
 
971
- # ModifyInstanceGroups modifies the number of nodes and configuration
972
- # settings of an instance group. The input parameters include the new
973
- # target instance count for the group and the instance group ID. The
974
- # call will either succeed or fail atomically.
975
- # @option params [String] :cluster_id
976
- # The ID of the cluster to which the instance group belongs.
977
- # @option params [Array<Types::InstanceGroupModifyConfig>] :instance_groups
978
- # Instance groups to change.
979
- # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
980
- #
981
- # @example Request syntax with placeholder values
982
- # resp = client.modify_instance_groups({
983
- # cluster_id: "ClusterId",
984
- # instance_groups: [
985
- # {
986
- # instance_group_id: "XmlStringMaxLen256", # required
987
- # instance_count: 1,
988
- # ec2_instance_ids_to_terminate: ["InstanceId"],
989
- # shrink_policy: {
990
- # decommission_timeout: 1,
991
- # instance_resize_policy: {
992
- # instances_to_terminate: ["InstanceId"],
993
- # instances_to_protect: ["InstanceId"],
994
- # instance_termination_timeout: 1,
995
- # },
996
- # },
997
- # },
998
- # ],
999
- # })
1000
- # @overload modify_instance_groups(params = {})
1001
- # @param [Hash] params ({})
1002
- def modify_instance_groups(params = {}, options = {})
1003
- req = build_request(:modify_instance_groups, params)
1004
- req.send_request(options)
1005
- end
1193
+ # Lists all the security configurations visible to this account,
1194
+ # providing their creation dates and times, and their names. This call
1195
+ # returns a maximum of 50 clusters per call, but returns a marker to
1196
+ # track the paging of the cluster list across multiple
1197
+ # ListSecurityConfigurations calls.
1198
+ #
1199
+ # @option params [String] :marker
1200
+ # The pagination token that indicates the set of results to retrieve.
1201
+ #
1202
+ # @return [Types::ListSecurityConfigurationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1203
+ #
1204
+ # * {Types::ListSecurityConfigurationsOutput#security_configurations #security_configurations} => Array&lt;Types::SecurityConfigurationSummary&gt;
1205
+ # * {Types::ListSecurityConfigurationsOutput#marker #marker} => String
1206
+ #
1207
+ # @example Request syntax with placeholder values
1208
+ #
1209
+ # resp = client.list_security_configurations({
1210
+ # marker: "Marker",
1211
+ # })
1212
+ #
1213
+ # @example Response structure
1214
+ #
1215
+ # resp.security_configurations #=> Array
1216
+ # resp.security_configurations[0].name #=> String
1217
+ # resp.security_configurations[0].creation_date_time #=> Time
1218
+ # resp.marker #=> String
1219
+ #
1220
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurations AWS API Documentation
1221
+ #
1222
+ # @overload list_security_configurations(params = {})
1223
+ # @param [Hash] params ({})
1224
+ def list_security_configurations(params = {}, options = {})
1225
+ req = build_request(:list_security_configurations, params)
1226
+ req.send_request(options)
1227
+ end
1006
1228
 
1007
- # Creates or updates an automatic scaling policy for a core instance
1008
- # group or task instance group in an Amazon EMR cluster. The automatic
1009
- # scaling policy defines how an instance group dynamically adds and
1010
- # terminates EC2 instances in response to the value of a CloudWatch
1011
- # metric.
1012
- # @option params [required, String] :cluster_id
1013
- # Specifies the ID of a cluster. The instance group to which the
1014
- # automatic scaling policy is applied is within this cluster.
1015
- # @option params [required, String] :instance_group_id
1016
- # Specifies the ID of the instance group to which the automatic scaling
1017
- # policy is applied.
1018
- # @option params [required, Types::AutoScalingPolicy] :auto_scaling_policy
1019
- # Specifies the definition of the automatic scaling policy.
1020
- # @return [Types::PutAutoScalingPolicyOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1021
- #
1022
- # * {Types::PutAutoScalingPolicyOutput#cluster_id #ClusterId} => String
1023
- # * {Types::PutAutoScalingPolicyOutput#instance_group_id #InstanceGroupId} => String
1024
- # * {Types::PutAutoScalingPolicyOutput#auto_scaling_policy #AutoScalingPolicy} => Types::AutoScalingPolicyDescription
1025
- #
1026
- # @example Request syntax with placeholder values
1027
- # resp = client.put_auto_scaling_policy({
1028
- # cluster_id: "ClusterId", # required
1029
- # instance_group_id: "InstanceGroupId", # required
1030
- # auto_scaling_policy: { # required
1031
- # constraints: { # required
1032
- # min_capacity: 1, # required
1033
- # max_capacity: 1, # required
1034
- # },
1035
- # rules: [ # required
1036
- # {
1037
- # name: "String", # required
1038
- # description: "String",
1039
- # action: { # required
1040
- # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
1041
- # simple_scaling_policy_configuration: { # required
1042
- # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
1043
- # scaling_adjustment: 1, # required
1044
- # cool_down: 1,
1045
- # },
1046
- # },
1047
- # trigger: { # required
1048
- # cloud_watch_alarm_definition: { # required
1049
- # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
1050
- # evaluation_periods: 1,
1051
- # metric_name: "String", # required
1052
- # namespace: "String",
1053
- # period: 1, # required
1054
- # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
1055
- # threshold: 1.0, # required
1056
- # unit: "NONE", # accepts NONE, SECONDS, MICRO_SECONDS, MILLI_SECONDS, BYTES, KILO_BYTES, MEGA_BYTES, GIGA_BYTES, TERA_BYTES, BITS, KILO_BITS, MEGA_BITS, GIGA_BITS, TERA_BITS, PERCENT, COUNT, BYTES_PER_SECOND, KILO_BYTES_PER_SECOND, MEGA_BYTES_PER_SECOND, GIGA_BYTES_PER_SECOND, TERA_BYTES_PER_SECOND, BITS_PER_SECOND, KILO_BITS_PER_SECOND, MEGA_BITS_PER_SECOND, GIGA_BITS_PER_SECOND, TERA_BITS_PER_SECOND, COUNT_PER_SECOND
1057
- # dimensions: [
1058
- # {
1059
- # key: "String",
1060
- # value: "String",
1061
- # },
1062
- # ],
1063
- # },
1064
- # },
1065
- # },
1066
- # ],
1067
- # },
1068
- # })
1069
- #
1070
- # @example Response structure
1071
- # resp.cluster_id #=> String
1072
- # resp.instance_group_id #=> String
1073
- # resp.auto_scaling_policy.status.state #=> String, one of "PENDING", "ATTACHING", "ATTACHED", "DETACHING", "DETACHED", "FAILED"
1074
- # resp.auto_scaling_policy.status.state_change_reason.code #=> String, one of "USER_REQUEST", "PROVISION_FAILURE", "CLEANUP_FAILURE"
1075
- # resp.auto_scaling_policy.status.state_change_reason.message #=> String
1076
- # resp.auto_scaling_policy.constraints.min_capacity #=> Integer
1077
- # resp.auto_scaling_policy.constraints.max_capacity #=> Integer
1078
- # resp.auto_scaling_policy.rules #=> Array
1079
- # resp.auto_scaling_policy.rules[0].name #=> String
1080
- # resp.auto_scaling_policy.rules[0].description #=> String
1081
- # resp.auto_scaling_policy.rules[0].action.market #=> String, one of "ON_DEMAND", "SPOT"
1082
- # resp.auto_scaling_policy.rules[0].action.simple_scaling_policy_configuration.adjustment_type #=> String, one of "CHANGE_IN_CAPACITY", "PERCENT_CHANGE_IN_CAPACITY", "EXACT_CAPACITY"
1083
- # resp.auto_scaling_policy.rules[0].action.simple_scaling_policy_configuration.scaling_adjustment #=> Integer
1084
- # resp.auto_scaling_policy.rules[0].action.simple_scaling_policy_configuration.cool_down #=> Integer
1085
- # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.comparison_operator #=> String, one of "GREATER_THAN_OR_EQUAL", "GREATER_THAN", "LESS_THAN", "LESS_THAN_OR_EQUAL"
1086
- # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.evaluation_periods #=> Integer
1087
- # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.metric_name #=> String
1088
- # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.namespace #=> String
1089
- # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.period #=> Integer
1090
- # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.statistic #=> String, one of "SAMPLE_COUNT", "AVERAGE", "SUM", "MINIMUM", "MAXIMUM"
1091
- # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.threshold #=> Float
1092
- # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.unit #=> String, one of "NONE", "SECONDS", "MICRO_SECONDS", "MILLI_SECONDS", "BYTES", "KILO_BYTES", "MEGA_BYTES", "GIGA_BYTES", "TERA_BYTES", "BITS", "KILO_BITS", "MEGA_BITS", "GIGA_BITS", "TERA_BITS", "PERCENT", "COUNT", "BYTES_PER_SECOND", "KILO_BYTES_PER_SECOND", "MEGA_BYTES_PER_SECOND", "GIGA_BYTES_PER_SECOND", "TERA_BYTES_PER_SECOND", "BITS_PER_SECOND", "KILO_BITS_PER_SECOND", "MEGA_BITS_PER_SECOND", "GIGA_BITS_PER_SECOND", "TERA_BITS_PER_SECOND", "COUNT_PER_SECOND"
1093
- # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.dimensions #=> Array
1094
- # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.dimensions[0].key #=> String
1095
- # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.dimensions[0].value #=> String
1096
- # @overload put_auto_scaling_policy(params = {})
1097
- # @param [Hash] params ({})
1098
- def put_auto_scaling_policy(params = {}, options = {})
1099
- req = build_request(:put_auto_scaling_policy, params)
1100
- req.send_request(options)
1101
- end
1229
+ # Provides a list of steps for the cluster in reverse order unless you
1230
+ # specify stepIds with the request.
1231
+ #
1232
+ # @option params [required, String] :cluster_id
1233
+ # The identifier of the cluster for which to list the steps.
1234
+ #
1235
+ # @option params [Array<String>] :step_states
1236
+ # The filter to limit the step list based on certain states.
1237
+ #
1238
+ # @option params [Array<String>] :step_ids
1239
+ # The filter to limit the step list based on the identifier of the
1240
+ # steps.
1241
+ #
1242
+ # @option params [String] :marker
1243
+ # The pagination token that indicates the next set of results to
1244
+ # retrieve.
1245
+ #
1246
+ # @return [Types::ListStepsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1247
+ #
1248
+ # * {Types::ListStepsOutput#steps #steps} => Array&lt;Types::StepSummary&gt;
1249
+ # * {Types::ListStepsOutput#marker #marker} => String
1250
+ #
1251
+ # @example Request syntax with placeholder values
1252
+ #
1253
+ # resp = client.list_steps({
1254
+ # cluster_id: "ClusterId", # required
1255
+ # step_states: ["PENDING"], # accepts PENDING, CANCEL_PENDING, RUNNING, COMPLETED, CANCELLED, FAILED, INTERRUPTED
1256
+ # step_ids: ["XmlString"],
1257
+ # marker: "Marker",
1258
+ # })
1259
+ #
1260
+ # @example Response structure
1261
+ #
1262
+ # resp.steps #=> Array
1263
+ # resp.steps[0].id #=> String
1264
+ # resp.steps[0].name #=> String
1265
+ # resp.steps[0].config.jar #=> String
1266
+ # resp.steps[0].config.properties #=> Hash
1267
+ # resp.steps[0].config.properties["String"] #=> String
1268
+ # resp.steps[0].config.main_class #=> String
1269
+ # resp.steps[0].config.args #=> Array
1270
+ # resp.steps[0].config.args[0] #=> String
1271
+ # resp.steps[0].action_on_failure #=> String, one of "TERMINATE_JOB_FLOW", "TERMINATE_CLUSTER", "CANCEL_AND_WAIT", "CONTINUE"
1272
+ # resp.steps[0].status.state #=> String, one of "PENDING", "CANCEL_PENDING", "RUNNING", "COMPLETED", "CANCELLED", "FAILED", "INTERRUPTED"
1273
+ # resp.steps[0].status.state_change_reason.code #=> String, one of "NONE"
1274
+ # resp.steps[0].status.state_change_reason.message #=> String
1275
+ # resp.steps[0].status.failure_details.reason #=> String
1276
+ # resp.steps[0].status.failure_details.message #=> String
1277
+ # resp.steps[0].status.failure_details.log_file #=> String
1278
+ # resp.steps[0].status.timeline.creation_date_time #=> Time
1279
+ # resp.steps[0].status.timeline.start_date_time #=> Time
1280
+ # resp.steps[0].status.timeline.end_date_time #=> Time
1281
+ # resp.marker #=> String
1282
+ #
1283
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSteps AWS API Documentation
1284
+ #
1285
+ # @overload list_steps(params = {})
1286
+ # @param [Hash] params ({})
1287
+ def list_steps(params = {}, options = {})
1288
+ req = build_request(:list_steps, params)
1289
+ req.send_request(options)
1290
+ end
1102
1291
 
1103
- # Removes an automatic scaling policy from a specified instance group
1104
- # within an EMR cluster.
1105
- # @option params [required, String] :cluster_id
1106
- # Specifies the ID of a cluster. The instance group to which the
1107
- # automatic scaling policy is applied is within this cluster.
1108
- # @option params [required, String] :instance_group_id
1109
- # Specifies the ID of the instance group to which the scaling policy is
1110
- # applied.
1111
- # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1112
- #
1113
- # @example Request syntax with placeholder values
1114
- # resp = client.remove_auto_scaling_policy({
1115
- # cluster_id: "ClusterId", # required
1116
- # instance_group_id: "InstanceGroupId", # required
1117
- # })
1118
- # @overload remove_auto_scaling_policy(params = {})
1119
- # @param [Hash] params ({})
1120
- def remove_auto_scaling_policy(params = {}, options = {})
1121
- req = build_request(:remove_auto_scaling_policy, params)
1122
- req.send_request(options)
1123
- end
1292
+ # Modifies the target On-Demand and target Spot capacities for the
1293
+ # instance fleet with the specified InstanceFleetID within the cluster
1294
+ # specified using ClusterID. The call either succeeds or fails
1295
+ # atomically.
1296
+ #
1297
+ # <note markdown="1"> The instance fleet configuration is available only in Amazon EMR
1298
+ # versions 4.8.0 and later, excluding 5.0.x versions.
1299
+ #
1300
+ # </note>
1301
+ #
1302
+ # @option params [required, String] :cluster_id
1303
+ # The unique identifier of the cluster.
1304
+ #
1305
+ # @option params [required, Types::InstanceFleetModifyConfig] :instance_fleet
1306
+ # The unique identifier of the instance fleet.
1307
+ #
1308
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1309
+ #
1310
+ # @example Request syntax with placeholder values
1311
+ #
1312
+ # resp = client.modify_instance_fleet({
1313
+ # cluster_id: "ClusterId", # required
1314
+ # instance_fleet: { # required
1315
+ # instance_fleet_id: "InstanceFleetId", # required
1316
+ # target_on_demand_capacity: 1,
1317
+ # target_spot_capacity: 1,
1318
+ # },
1319
+ # })
1320
+ #
1321
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleet AWS API Documentation
1322
+ #
1323
+ # @overload modify_instance_fleet(params = {})
1324
+ # @param [Hash] params ({})
1325
+ def modify_instance_fleet(params = {}, options = {})
1326
+ req = build_request(:modify_instance_fleet, params)
1327
+ req.send_request(options)
1328
+ end
1124
1329
 
1125
- # Removes tags from an Amazon EMR resource. Tags make it easier to
1126
- # associate clusters in various ways, such as grouping clusters to track
1127
- # your Amazon EMR resource allocation costs. For more information, see
1128
- # [Tagging Amazon EMR Resources][1].
1129
- #
1130
- # The following example removes the stack tag with value Prod from a
1131
- # cluster:
1132
- #
1133
- #
1134
- #
1135
- # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-tags.html
1136
- # @option params [required, String] :resource_id
1137
- # The Amazon EMR resource identifier from which tags will be removed.
1138
- # This value must be a cluster identifier.
1139
- # @option params [required, Array<String>] :tag_keys
1140
- # A list of tag keys to remove from a resource.
1141
- # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1142
- #
1143
- # @example Request syntax with placeholder values
1144
- # resp = client.remove_tags({
1145
- # resource_id: "ResourceId", # required
1146
- # tag_keys: ["String"], # required
1147
- # })
1148
- # @overload remove_tags(params = {})
1149
- # @param [Hash] params ({})
1150
- def remove_tags(params = {}, options = {})
1151
- req = build_request(:remove_tags, params)
1152
- req.send_request(options)
1153
- end
1330
+ # ModifyInstanceGroups modifies the number of nodes and configuration
1331
+ # settings of an instance group. The input parameters include the new
1332
+ # target instance count for the group and the instance group ID. The
1333
+ # call will either succeed or fail atomically.
1334
+ #
1335
+ # @option params [String] :cluster_id
1336
+ # The ID of the cluster to which the instance group belongs.
1337
+ #
1338
+ # @option params [Array<Types::InstanceGroupModifyConfig>] :instance_groups
1339
+ # Instance groups to change.
1340
+ #
1341
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1342
+ #
1343
+ # @example Request syntax with placeholder values
1344
+ #
1345
+ # resp = client.modify_instance_groups({
1346
+ # cluster_id: "ClusterId",
1347
+ # instance_groups: [
1348
+ # {
1349
+ # instance_group_id: "XmlStringMaxLen256", # required
1350
+ # instance_count: 1,
1351
+ # ec2_instance_ids_to_terminate: ["InstanceId"],
1352
+ # shrink_policy: {
1353
+ # decommission_timeout: 1,
1354
+ # instance_resize_policy: {
1355
+ # instances_to_terminate: ["InstanceId"],
1356
+ # instances_to_protect: ["InstanceId"],
1357
+ # instance_termination_timeout: 1,
1358
+ # },
1359
+ # },
1360
+ # },
1361
+ # ],
1362
+ # })
1363
+ #
1364
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroups AWS API Documentation
1365
+ #
1366
+ # @overload modify_instance_groups(params = {})
1367
+ # @param [Hash] params ({})
1368
+ def modify_instance_groups(params = {}, options = {})
1369
+ req = build_request(:modify_instance_groups, params)
1370
+ req.send_request(options)
1371
+ end
1154
1372
 
1155
- # RunJobFlow creates and starts running a new job flow. The job flow
1156
- # will run the steps specified. After the job flow completes, the
1157
- # cluster is stopped and the HDFS partition is lost. To prevent loss of
1158
- # data, configure the last step of the job flow to store results in
1159
- # Amazon S3. If the JobFlowInstancesConfig `KeepJobFlowAliveWhenNoSteps`
1160
- # parameter is set to `TRUE`, the job flow will transition to the
1161
- # WAITING state rather than shutting down after the steps have
1162
- # completed.
1163
- #
1164
- # For additional protection, you can set the JobFlowInstancesConfig
1165
- # `TerminationProtected` parameter to `TRUE` to lock the job flow and
1166
- # prevent it from being terminated by API call, user intervention, or in
1167
- # the event of a job flow error.
1168
- #
1169
- # A maximum of 256 steps are allowed in each job flow.
1170
- #
1171
- # If your job flow is long-running (such as a Hive data warehouse) or
1172
- # complex, you may require more than 256 steps to process your data. You
1173
- # can bypass the 256-step limitation in various ways, including using
1174
- # the SSH shell to connect to the master node and submitting queries
1175
- # directly to the software running on the master node, such as Hive and
1176
- # Hadoop. For more information on how to do this, see [Add More than 256
1177
- # Steps to a Job Flow][1] in the *Amazon EMR Management Guide*.
1178
- #
1179
- # For long running job flows, we recommend that you periodically store
1180
- # your results.
1181
- #
1182
- #
1183
- #
1184
- # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/Management/Guide/AddMoreThan256Steps.html
1185
- # @option params [required, String] :name
1186
- # The name of the job flow.
1187
- # @option params [String] :log_uri
1188
- # The location in Amazon S3 to write the log files of the job flow. If a
1189
- # value is not provided, logs are not created.
1190
- # @option params [String] :additional_info
1191
- # A JSON string for selecting additional features.
1192
- # @option params [String] :ami_version
1193
- # <note markdown="1"> For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
1194
- # greater, use ReleaseLabel.
1195
- #
1196
- # </note>
1197
- #
1198
- # The version of the Amazon Machine Image (AMI) to use when launching
1199
- # Amazon EC2 instances in the job flow. The following values are valid:
1200
- #
1201
- # * The version number of the AMI to use, for example, "2.0."
1202
- #
1203
- # ^
1204
- #
1205
- # If the AMI supports multiple versions of Hadoop (for example, AMI 1.0
1206
- # supports both Hadoop 0.18 and 0.20) you can use the
1207
- # JobFlowInstancesConfig `HadoopVersion` parameter to modify the version
1208
- # of Hadoop from the defaults shown above.
1209
- #
1210
- # For details about the AMI versions currently supported by Amazon
1211
- # Elastic MapReduce, see [AMI Versions Supported in Elastic
1212
- # MapReduce][1] in the *Amazon Elastic MapReduce Developer Guide.*
1213
- #
1214
- # <note markdown="1"> Previously, the EMR AMI version API parameter options allowed you to
1215
- # use latest for the latest AMI version rather than specify a numerical
1216
- # value. Some regions no longer support this deprecated option as they
1217
- # only have a newer release label version of EMR, which requires you to
1218
- # specify an EMR release label release (EMR 4.x or later).
1219
- #
1220
- # </note>
1221
- #
1222
- #
1223
- #
1224
- # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/EnvironmentConfig_AMIVersion.html#ami-versions-supported
1225
- # @option params [String] :release_label
1226
- # <note markdown="1"> Amazon EMR releases 4.x or later.
1227
- #
1228
- # </note>
1229
- #
1230
- # The release label for the Amazon EMR release. For Amazon EMR 3.x and
1231
- # 2.x AMIs, use amiVersion instead instead of ReleaseLabel.
1232
- # @option params [required, Types::JobFlowInstancesConfig] :instances
1233
- # A specification of the number and type of Amazon EC2 instances on
1234
- # which to run the job flow.
1235
- # @option params [Array<Types::StepConfig>] :steps
1236
- # A list of steps to be executed by the job flow.
1237
- # @option params [Array<Types::BootstrapActionConfig>] :bootstrap_actions
1238
- # A list of bootstrap actions that will be run before Hadoop is started
1239
- # on the cluster nodes.
1240
- # @option params [Array<String>] :supported_products
1241
- # <note markdown="1"> For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
1242
- # greater, use Applications.
1243
- #
1244
- # </note>
1245
- #
1246
- # A list of strings that indicates third-party software to use with the
1247
- # job flow. For more information, see [Use Third Party Applications with
1248
- # Amazon EMR][1]. Currently supported values are:
1249
- #
1250
- # * "mapr-m3" - launch the job flow using MapR M3 Edition.
1251
- #
1252
- # * "mapr-m5" - launch the job flow using MapR M5 Edition.
1253
- #
1254
- #
1255
- #
1256
- # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-supported-products.html
1257
- # @option params [Array<Types::SupportedProductConfig>] :new_supported_products
1258
- # <note markdown="1"> For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
1259
- # greater, use Applications.
1260
- #
1261
- # </note>
1262
- #
1263
- # A list of strings that indicates third-party software to use with the
1264
- # job flow that accepts a user argument list. EMR accepts and forwards
1265
- # the argument list to the corresponding installation script as
1266
- # bootstrap action arguments. For more information, see [Launch a Job
1267
- # Flow on the MapR Distribution for Hadoop][1]. Currently supported
1268
- # values are:
1269
- #
1270
- # * "mapr-m3" - launch the cluster using MapR M3 Edition.
1271
- #
1272
- # * "mapr-m5" - launch the cluster using MapR M5 Edition.
1273
- #
1274
- # * "mapr" with the user arguments specifying "--edition,m3" or
1275
- # "--edition,m5" - launch the job flow using MapR M3 or M5 Edition
1276
- # respectively.
1277
- #
1278
- # * "mapr-m7" - launch the cluster using MapR M7 Edition.
1279
- #
1280
- # * "hunk" - launch the cluster with the Hunk Big Data Analtics
1281
- # Platform.
1282
- #
1283
- # * "hue"- launch the cluster with Hue installed.
1284
- #
1285
- # * "spark" - launch the cluster with Apache Spark installed.
1286
- #
1287
- # * "ganglia" - launch the cluster with the Ganglia Monitoring System
1288
- # installed.
1289
- #
1290
- #
1291
- #
1292
- # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-mapr.html
1293
- # @option params [Array<Types::Application>] :applications
1294
- # <note markdown="1"> Amazon EMR releases 4.x or later.
1295
- #
1296
- # </note>
1297
- #
1298
- # A list of applications for the cluster. Valid values are: "Hadoop",
1299
- # "Hive", "Mahout", "Pig", and "Spark." They are case
1300
- # insensitive.
1301
- # @option params [Array<Types::Configuration>] :configurations
1302
- # <note markdown="1"> Amazon EMR releases 4.x or later.
1303
- #
1304
- # </note>
1305
- #
1306
- # The list of configurations supplied for the EMR cluster you are
1307
- # creating.
1308
- # @option params [Boolean] :visible_to_all_users
1309
- # Whether the job flow is visible to all IAM users of the AWS account
1310
- # associated with the job flow. If this value is set to `true`, all IAM
1311
- # users of that AWS account can view and (if they have the proper policy
1312
- # permissions set) manage the job flow. If it is set to `false`, only
1313
- # the IAM user that created the job flow can view and manage it.
1314
- # @option params [String] :job_flow_role
1315
- # Also called instance profile and EC2 role. An IAM role for an EMR
1316
- # cluster. The EC2 instances of the cluster assume this role. The
1317
- # default role is `EMR_EC2_DefaultRole`. In order to use the default
1318
- # role, you must have already created it using the CLI or console.
1319
- # @option params [String] :service_role
1320
- # The IAM role that will be assumed by the Amazon EMR service to access
1321
- # AWS resources on your behalf.
1322
- # @option params [Array<Types::Tag>] :tags
1323
- # A list of tags to associate with a cluster and propagate to Amazon EC2
1324
- # instances.
1325
- # @option params [String] :security_configuration
1326
- # The name of a security configuration to apply to the cluster.
1327
- # @option params [String] :auto_scaling_role
1328
- # An IAM role for automatic scaling policies. The default role is
1329
- # `EMR_AutoScaling_DefaultRole`. The IAM role provides permissions that
1330
- # the automatic scaling feature requires to launch and terminate EC2
1331
- # instances in an instance group.
1332
- # @option params [String] :scale_down_behavior
1333
- # Specifies the way that individual Amazon EC2 instances terminate when
1334
- # an automatic scale-in activity occurs or an instance group is resized.
1335
- # `TERMINATE_AT_INSTANCE_HOUR` indicates that Amazon EMR terminates
1336
- # nodes at the instance-hour boundary, regardless of when the request to
1337
- # terminate the instance was submitted. This option is only available
1338
- # with Amazon EMR 5.1.0 and later and is the default for clusters
1339
- # created using that version. `TERMINATE_AT_TASK_COMPLETION` indicates
1340
- # that Amazon EMR blacklists and drains tasks from nodes before
1341
- # terminating the Amazon EC2 instances, regardless of the instance-hour
1342
- # boundary. With either behavior, Amazon EMR removes the least active
1343
- # nodes first and blocks instance termination if it could lead to HDFS
1344
- # corruption. `TERMINATE_AT_TASK_COMPLETION` available only in Amazon
1345
- # EMR version 4.1.0 and later, and is the default for versions of Amazon
1346
- # EMR earlier than 5.1.0.
1347
- # @return [Types::RunJobFlowOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1348
- #
1349
- # * {Types::RunJobFlowOutput#job_flow_id #JobFlowId} => String
1350
- #
1351
- # @example Request syntax with placeholder values
1352
- # resp = client.run_job_flow({
1353
- # name: "XmlStringMaxLen256", # required
1354
- # log_uri: "XmlString",
1355
- # additional_info: "XmlString",
1356
- # ami_version: "XmlStringMaxLen256",
1357
- # release_label: "XmlStringMaxLen256",
1358
- # instances: { # required
1359
- # master_instance_type: "InstanceType",
1360
- # slave_instance_type: "InstanceType",
1361
- # instance_count: 1,
1362
- # instance_groups: [
1363
- # {
1364
- # name: "XmlStringMaxLen256",
1365
- # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
1366
- # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK
1367
- # bid_price: "XmlStringMaxLen256",
1368
- # instance_type: "InstanceType", # required
1369
- # instance_count: 1, # required
1370
- # configurations: [
1371
- # {
1372
- # classification: "String",
1373
- # configurations: {
1374
- # # recursive ConfigurationList
1375
- # },
1376
- # properties: {
1377
- # "String" => "String",
1378
- # },
1379
- # },
1380
- # ],
1381
- # ebs_configuration: {
1382
- # ebs_block_device_configs: [
1383
- # {
1384
- # volume_specification: { # required
1385
- # volume_type: "String", # required
1386
- # iops: 1,
1387
- # size_in_gb: 1, # required
1388
- # },
1389
- # volumes_per_instance: 1,
1390
- # },
1391
- # ],
1392
- # ebs_optimized: false,
1393
- # },
1394
- # auto_scaling_policy: {
1395
- # constraints: { # required
1396
- # min_capacity: 1, # required
1397
- # max_capacity: 1, # required
1398
- # },
1399
- # rules: [ # required
1400
- # {
1401
- # name: "String", # required
1402
- # description: "String",
1403
- # action: { # required
1404
- # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
1405
- # simple_scaling_policy_configuration: { # required
1406
- # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
1407
- # scaling_adjustment: 1, # required
1408
- # cool_down: 1,
1409
- # },
1410
- # },
1411
- # trigger: { # required
1412
- # cloud_watch_alarm_definition: { # required
1413
- # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
1414
- # evaluation_periods: 1,
1415
- # metric_name: "String", # required
1416
- # namespace: "String",
1417
- # period: 1, # required
1418
- # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
1419
- # threshold: 1.0, # required
1420
- # unit: "NONE", # accepts NONE, SECONDS, MICRO_SECONDS, MILLI_SECONDS, BYTES, KILO_BYTES, MEGA_BYTES, GIGA_BYTES, TERA_BYTES, BITS, KILO_BITS, MEGA_BITS, GIGA_BITS, TERA_BITS, PERCENT, COUNT, BYTES_PER_SECOND, KILO_BYTES_PER_SECOND, MEGA_BYTES_PER_SECOND, GIGA_BYTES_PER_SECOND, TERA_BYTES_PER_SECOND, BITS_PER_SECOND, KILO_BITS_PER_SECOND, MEGA_BITS_PER_SECOND, GIGA_BITS_PER_SECOND, TERA_BITS_PER_SECOND, COUNT_PER_SECOND
1421
- # dimensions: [
1422
- # {
1423
- # key: "String",
1424
- # value: "String",
1425
- # },
1426
- # ],
1427
- # },
1428
- # },
1429
- # },
1430
- # ],
1431
- # },
1432
- # },
1433
- # ],
1434
- # ec2_key_name: "XmlStringMaxLen256",
1435
- # placement: {
1436
- # availability_zone: "XmlString", # required
1437
- # },
1438
- # keep_job_flow_alive_when_no_steps: false,
1439
- # termination_protected: false,
1440
- # hadoop_version: "XmlStringMaxLen256",
1441
- # ec2_subnet_id: "XmlStringMaxLen256",
1442
- # emr_managed_master_security_group: "XmlStringMaxLen256",
1443
- # emr_managed_slave_security_group: "XmlStringMaxLen256",
1444
- # service_access_security_group: "XmlStringMaxLen256",
1445
- # additional_master_security_groups: ["XmlStringMaxLen256"],
1446
- # additional_slave_security_groups: ["XmlStringMaxLen256"],
1447
- # },
1448
- # steps: [
1449
- # {
1450
- # name: "XmlStringMaxLen256", # required
1451
- # action_on_failure: "TERMINATE_JOB_FLOW", # accepts TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, CONTINUE
1452
- # hadoop_jar_step: { # required
1453
- # properties: [
1454
- # {
1455
- # key: "XmlString",
1456
- # value: "XmlString",
1457
- # },
1458
- # ],
1459
- # jar: "XmlString", # required
1460
- # main_class: "XmlString",
1461
- # args: ["XmlString"],
1462
- # },
1463
- # },
1464
- # ],
1465
- # bootstrap_actions: [
1466
- # {
1467
- # name: "XmlStringMaxLen256", # required
1468
- # script_bootstrap_action: { # required
1469
- # path: "XmlString", # required
1470
- # args: ["XmlString"],
1471
- # },
1472
- # },
1473
- # ],
1474
- # supported_products: ["XmlStringMaxLen256"],
1475
- # new_supported_products: [
1476
- # {
1477
- # name: "XmlStringMaxLen256",
1478
- # args: ["XmlString"],
1479
- # },
1480
- # ],
1481
- # applications: [
1482
- # {
1483
- # name: "String",
1484
- # version: "String",
1485
- # args: ["String"],
1486
- # additional_info: {
1487
- # "String" => "String",
1488
- # },
1489
- # },
1490
- # ],
1491
- # configurations: [
1492
- # {
1493
- # classification: "String",
1494
- # configurations: {
1495
- # # recursive ConfigurationList
1496
- # },
1497
- # properties: {
1498
- # "String" => "String",
1499
- # },
1500
- # },
1501
- # ],
1502
- # visible_to_all_users: false,
1503
- # job_flow_role: "XmlString",
1504
- # service_role: "XmlString",
1505
- # tags: [
1506
- # {
1507
- # key: "String",
1508
- # value: "String",
1509
- # },
1510
- # ],
1511
- # security_configuration: "XmlString",
1512
- # auto_scaling_role: "XmlString",
1513
- # scale_down_behavior: "TERMINATE_AT_INSTANCE_HOUR", # accepts TERMINATE_AT_INSTANCE_HOUR, TERMINATE_AT_TASK_COMPLETION
1514
- # })
1515
- #
1516
- # @example Response structure
1517
- # resp.job_flow_id #=> String
1518
- # @overload run_job_flow(params = {})
1519
- # @param [Hash] params ({})
1520
- def run_job_flow(params = {}, options = {})
1521
- req = build_request(:run_job_flow, params)
1522
- req.send_request(options)
1523
- end
1373
+ # Creates or updates an automatic scaling policy for a core instance
1374
+ # group or task instance group in an Amazon EMR cluster. The automatic
1375
+ # scaling policy defines how an instance group dynamically adds and
1376
+ # terminates EC2 instances in response to the value of a CloudWatch
1377
+ # metric.
1378
+ #
1379
+ # @option params [required, String] :cluster_id
1380
+ # Specifies the ID of a cluster. The instance group to which the
1381
+ # automatic scaling policy is applied is within this cluster.
1382
+ #
1383
+ # @option params [required, String] :instance_group_id
1384
+ # Specifies the ID of the instance group to which the automatic scaling
1385
+ # policy is applied.
1386
+ #
1387
+ # @option params [required, Types::AutoScalingPolicy] :auto_scaling_policy
1388
+ # Specifies the definition of the automatic scaling policy.
1389
+ #
1390
+ # @return [Types::PutAutoScalingPolicyOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1391
+ #
1392
+ # * {Types::PutAutoScalingPolicyOutput#cluster_id #cluster_id} => String
1393
+ # * {Types::PutAutoScalingPolicyOutput#instance_group_id #instance_group_id} => String
1394
+ # * {Types::PutAutoScalingPolicyOutput#auto_scaling_policy #auto_scaling_policy} => Types::AutoScalingPolicyDescription
1395
+ #
1396
+ # @example Request syntax with placeholder values
1397
+ #
1398
+ # resp = client.put_auto_scaling_policy({
1399
+ # cluster_id: "ClusterId", # required
1400
+ # instance_group_id: "InstanceGroupId", # required
1401
+ # auto_scaling_policy: { # required
1402
+ # constraints: { # required
1403
+ # min_capacity: 1, # required
1404
+ # max_capacity: 1, # required
1405
+ # },
1406
+ # rules: [ # required
1407
+ # {
1408
+ # name: "String", # required
1409
+ # description: "String",
1410
+ # action: { # required
1411
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
1412
+ # simple_scaling_policy_configuration: { # required
1413
+ # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
1414
+ # scaling_adjustment: 1, # required
1415
+ # cool_down: 1,
1416
+ # },
1417
+ # },
1418
+ # trigger: { # required
1419
+ # cloud_watch_alarm_definition: { # required
1420
+ # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
1421
+ # evaluation_periods: 1,
1422
+ # metric_name: "String", # required
1423
+ # namespace: "String",
1424
+ # period: 1, # required
1425
+ # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
1426
+ # threshold: 1.0, # required
1427
+ # unit: "NONE", # accepts NONE, SECONDS, MICRO_SECONDS, MILLI_SECONDS, BYTES, KILO_BYTES, MEGA_BYTES, GIGA_BYTES, TERA_BYTES, BITS, KILO_BITS, MEGA_BITS, GIGA_BITS, TERA_BITS, PERCENT, COUNT, BYTES_PER_SECOND, KILO_BYTES_PER_SECOND, MEGA_BYTES_PER_SECOND, GIGA_BYTES_PER_SECOND, TERA_BYTES_PER_SECOND, BITS_PER_SECOND, KILO_BITS_PER_SECOND, MEGA_BITS_PER_SECOND, GIGA_BITS_PER_SECOND, TERA_BITS_PER_SECOND, COUNT_PER_SECOND
1428
+ # dimensions: [
1429
+ # {
1430
+ # key: "String",
1431
+ # value: "String",
1432
+ # },
1433
+ # ],
1434
+ # },
1435
+ # },
1436
+ # },
1437
+ # ],
1438
+ # },
1439
+ # })
1440
+ #
1441
+ # @example Response structure
1442
+ #
1443
+ # resp.cluster_id #=> String
1444
+ # resp.instance_group_id #=> String
1445
+ # resp.auto_scaling_policy.status.state #=> String, one of "PENDING", "ATTACHING", "ATTACHED", "DETACHING", "DETACHED", "FAILED"
1446
+ # resp.auto_scaling_policy.status.state_change_reason.code #=> String, one of "USER_REQUEST", "PROVISION_FAILURE", "CLEANUP_FAILURE"
1447
+ # resp.auto_scaling_policy.status.state_change_reason.message #=> String
1448
+ # resp.auto_scaling_policy.constraints.min_capacity #=> Integer
1449
+ # resp.auto_scaling_policy.constraints.max_capacity #=> Integer
1450
+ # resp.auto_scaling_policy.rules #=> Array
1451
+ # resp.auto_scaling_policy.rules[0].name #=> String
1452
+ # resp.auto_scaling_policy.rules[0].description #=> String
1453
+ # resp.auto_scaling_policy.rules[0].action.market #=> String, one of "ON_DEMAND", "SPOT"
1454
+ # resp.auto_scaling_policy.rules[0].action.simple_scaling_policy_configuration.adjustment_type #=> String, one of "CHANGE_IN_CAPACITY", "PERCENT_CHANGE_IN_CAPACITY", "EXACT_CAPACITY"
1455
+ # resp.auto_scaling_policy.rules[0].action.simple_scaling_policy_configuration.scaling_adjustment #=> Integer
1456
+ # resp.auto_scaling_policy.rules[0].action.simple_scaling_policy_configuration.cool_down #=> Integer
1457
+ # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.comparison_operator #=> String, one of "GREATER_THAN_OR_EQUAL", "GREATER_THAN", "LESS_THAN", "LESS_THAN_OR_EQUAL"
1458
+ # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.evaluation_periods #=> Integer
1459
+ # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.metric_name #=> String
1460
+ # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.namespace #=> String
1461
+ # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.period #=> Integer
1462
+ # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.statistic #=> String, one of "SAMPLE_COUNT", "AVERAGE", "SUM", "MINIMUM", "MAXIMUM"
1463
+ # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.threshold #=> Float
1464
+ # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.unit #=> String, one of "NONE", "SECONDS", "MICRO_SECONDS", "MILLI_SECONDS", "BYTES", "KILO_BYTES", "MEGA_BYTES", "GIGA_BYTES", "TERA_BYTES", "BITS", "KILO_BITS", "MEGA_BITS", "GIGA_BITS", "TERA_BITS", "PERCENT", "COUNT", "BYTES_PER_SECOND", "KILO_BYTES_PER_SECOND", "MEGA_BYTES_PER_SECOND", "GIGA_BYTES_PER_SECOND", "TERA_BYTES_PER_SECOND", "BITS_PER_SECOND", "KILO_BITS_PER_SECOND", "MEGA_BITS_PER_SECOND", "GIGA_BITS_PER_SECOND", "TERA_BITS_PER_SECOND", "COUNT_PER_SECOND"
1465
+ # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.dimensions #=> Array
1466
+ # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.dimensions[0].key #=> String
1467
+ # resp.auto_scaling_policy.rules[0].trigger.cloud_watch_alarm_definition.dimensions[0].value #=> String
1468
+ #
1469
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicy AWS API Documentation
1470
+ #
1471
+ # @overload put_auto_scaling_policy(params = {})
1472
+ # @param [Hash] params ({})
1473
+ def put_auto_scaling_policy(params = {}, options = {})
1474
+ req = build_request(:put_auto_scaling_policy, params)
1475
+ req.send_request(options)
1476
+ end
1524
1477
 
1525
- # SetTerminationProtection locks a job flow so the EC2 instances in the
1526
- # cluster cannot be terminated by user intervention, an API call, or in
1527
- # the event of a job-flow error. The cluster still terminates upon
1528
- # successful completion of the job flow. Calling
1529
- # SetTerminationProtection on a job flow is analogous to calling the
1530
- # Amazon EC2 DisableAPITermination API on all of the EC2 instances in a
1531
- # cluster.
1532
- #
1533
- # SetTerminationProtection is used to prevent accidental termination of
1534
- # a job flow and to ensure that in the event of an error, the instances
1535
- # will persist so you can recover any data stored in their ephemeral
1536
- # instance storage.
1537
- #
1538
- # To terminate a job flow that has been locked by setting
1539
- # SetTerminationProtection to `true`, you must first unlock the job flow
1540
- # by a subsequent call to SetTerminationProtection in which you set the
1541
- # value to `false`.
1542
- #
1543
- # For more information, see[Protecting a Job Flow from Termination][1]
1544
- # in the *Amazon EMR Guide.*
1545
- #
1546
- #
1547
- #
1548
- # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_TerminationProtection.html
1549
- # @option params [required, Array<String>] :job_flow_ids
1550
- # A list of strings that uniquely identify the job flows to protect.
1551
- # This identifier is returned by RunJobFlow and can also be obtained
1552
- # from DescribeJobFlows .
1553
- # @option params [required, Boolean] :termination_protected
1554
- # A Boolean that indicates whether to protect the job flow and prevent
1555
- # the Amazon EC2 instances in the cluster from shutting down due to API
1556
- # calls, user intervention, or job-flow error.
1557
- # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1558
- #
1559
- # @example Request syntax with placeholder values
1560
- # resp = client.set_termination_protection({
1561
- # job_flow_ids: ["XmlString"], # required
1562
- # termination_protected: false, # required
1563
- # })
1564
- # @overload set_termination_protection(params = {})
1565
- # @param [Hash] params ({})
1566
- def set_termination_protection(params = {}, options = {})
1567
- req = build_request(:set_termination_protection, params)
1568
- req.send_request(options)
1569
- end
1478
+ # Removes an automatic scaling policy from a specified instance group
1479
+ # within an EMR cluster.
1480
+ #
1481
+ # @option params [required, String] :cluster_id
1482
+ # Specifies the ID of a cluster. The instance group to which the
1483
+ # automatic scaling policy is applied is within this cluster.
1484
+ #
1485
+ # @option params [required, String] :instance_group_id
1486
+ # Specifies the ID of the instance group to which the scaling policy is
1487
+ # applied.
1488
+ #
1489
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1490
+ #
1491
+ # @example Request syntax with placeholder values
1492
+ #
1493
+ # resp = client.remove_auto_scaling_policy({
1494
+ # cluster_id: "ClusterId", # required
1495
+ # instance_group_id: "InstanceGroupId", # required
1496
+ # })
1497
+ #
1498
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicy AWS API Documentation
1499
+ #
1500
+ # @overload remove_auto_scaling_policy(params = {})
1501
+ # @param [Hash] params ({})
1502
+ def remove_auto_scaling_policy(params = {}, options = {})
1503
+ req = build_request(:remove_auto_scaling_policy, params)
1504
+ req.send_request(options)
1505
+ end
1570
1506
 
1571
- # Sets whether all AWS Identity and Access Management (IAM) users under
1572
- # your account can access the specified job flows. This action works on
1573
- # running job flows. You can also set the visibility of a job flow when
1574
- # you launch it using the `VisibleToAllUsers` parameter of RunJobFlow.
1575
- # The SetVisibleToAllUsers action can be called only by an IAM user who
1576
- # created the job flow or the AWS account that owns the job flow.
1577
- # @option params [required, Array<String>] :job_flow_ids
1578
- # Identifiers of the job flows to receive the new visibility setting.
1579
- # @option params [required, Boolean] :visible_to_all_users
1580
- # Whether the specified job flows are visible to all IAM users of the
1581
- # AWS account associated with the job flow. If this value is set to
1582
- # True, all IAM users of that AWS account can view and, if they have the
1583
- # proper IAM policy permissions set, manage the job flows. If it is set
1584
- # to False, only the IAM user that created a job flow can view and
1585
- # manage it.
1586
- # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1587
- #
1588
- # @example Request syntax with placeholder values
1589
- # resp = client.set_visible_to_all_users({
1590
- # job_flow_ids: ["XmlString"], # required
1591
- # visible_to_all_users: false, # required
1592
- # })
1593
- # @overload set_visible_to_all_users(params = {})
1594
- # @param [Hash] params ({})
1595
- def set_visible_to_all_users(params = {}, options = {})
1596
- req = build_request(:set_visible_to_all_users, params)
1597
- req.send_request(options)
1598
- end
1507
+ # Removes tags from an Amazon EMR resource. Tags make it easier to
1508
+ # associate clusters in various ways, such as grouping clusters to track
1509
+ # your Amazon EMR resource allocation costs. For more information, see
1510
+ # [Tagging Amazon EMR Resources][1].
1511
+ #
1512
+ # The following example removes the stack tag with value Prod from a
1513
+ # cluster:
1514
+ #
1515
+ #
1516
+ #
1517
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-tags.html
1518
+ #
1519
+ # @option params [required, String] :resource_id
1520
+ # The Amazon EMR resource identifier from which tags will be removed.
1521
+ # This value must be a cluster identifier.
1522
+ #
1523
+ # @option params [required, Array<String>] :tag_keys
1524
+ # A list of tag keys to remove from a resource.
1525
+ #
1526
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1527
+ #
1528
+ # @example Request syntax with placeholder values
1529
+ #
1530
+ # resp = client.remove_tags({
1531
+ # resource_id: "ResourceId", # required
1532
+ # tag_keys: ["String"], # required
1533
+ # })
1534
+ #
1535
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTags AWS API Documentation
1536
+ #
1537
+ # @overload remove_tags(params = {})
1538
+ # @param [Hash] params ({})
1539
+ def remove_tags(params = {}, options = {})
1540
+ req = build_request(:remove_tags, params)
1541
+ req.send_request(options)
1542
+ end
1599
1543
 
1600
- # TerminateJobFlows shuts a list of job flows down. When a job flow is
1601
- # shut down, any step not yet completed is canceled and the EC2
1602
- # instances on which the job flow is running are stopped. Any log files
1603
- # not already saved are uploaded to Amazon S3 if a LogUri was specified
1604
- # when the job flow was created.
1605
- #
1606
- # The maximum number of JobFlows allowed is 10. The call to
1607
- # TerminateJobFlows is asynchronous. Depending on the configuration of
1608
- # the job flow, it may take up to 1-5 minutes for the job flow to
1609
- # completely terminate and release allocated resources, such as Amazon
1610
- # EC2 instances.
1611
- # @option params [required, Array<String>] :job_flow_ids
1612
- # A list of job flows to be shutdown.
1613
- # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1614
- #
1615
- # @example Request syntax with placeholder values
1616
- # resp = client.terminate_job_flows({
1617
- # job_flow_ids: ["XmlString"], # required
1618
- # })
1619
- # @overload terminate_job_flows(params = {})
1620
- # @param [Hash] params ({})
1621
- def terminate_job_flows(params = {}, options = {})
1622
- req = build_request(:terminate_job_flows, params)
1623
- req.send_request(options)
1624
- end
1544
+ # RunJobFlow creates and starts running a new cluster (job flow). The
1545
+ # cluster runs the steps specified. After the steps complete, the
1546
+ # cluster stops and the HDFS partition is lost. To prevent loss of data,
1547
+ # configure the last step of the job flow to store results in Amazon S3.
1548
+ # If the JobFlowInstancesConfig `KeepJobFlowAliveWhenNoSteps` parameter
1549
+ # is set to `TRUE`, the cluster transitions to the WAITING state rather
1550
+ # than shutting down after the steps have completed.
1551
+ #
1552
+ # For additional protection, you can set the JobFlowInstancesConfig
1553
+ # `TerminationProtected` parameter to `TRUE` to lock the cluster and
1554
+ # prevent it from being terminated by API call, user intervention, or in
1555
+ # the event of a job flow error.
1556
+ #
1557
+ # A maximum of 256 steps are allowed in each job flow.
1558
+ #
1559
+ # If your cluster is long-running (such as a Hive data warehouse) or
1560
+ # complex, you may require more than 256 steps to process your data. You
1561
+ # can bypass the 256-step limitation in various ways, including using
1562
+ # the SSH shell to connect to the master node and submitting queries
1563
+ # directly to the software running on the master node, such as Hive and
1564
+ # Hadoop. For more information on how to do this, see [Add More than 256
1565
+ # Steps to a Cluster][1] in the *Amazon EMR Management Guide*.
1566
+ #
1567
+ # For long running clusters, we recommend that you periodically store
1568
+ # your results.
1569
+ #
1570
+ # <note markdown="1"> The instance fleets configuration is available only in Amazon EMR
1571
+ # versions 4.8.0 and later, excluding 5.0.x versions. The RunJobFlow
1572
+ # request can contain InstanceFleets parameters or InstanceGroups
1573
+ # parameters, but not both.
1574
+ #
1575
+ # </note>
1576
+ #
1577
+ #
1578
+ #
1579
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/Management/Guide/AddMoreThan256Steps.html
1580
+ #
1581
+ # @option params [required, String] :name
1582
+ # The name of the job flow.
1583
+ #
1584
+ # @option params [String] :log_uri
1585
+ # The location in Amazon S3 to write the log files of the job flow. If a
1586
+ # value is not provided, logs are not created.
1587
+ #
1588
+ # @option params [String] :additional_info
1589
+ # A JSON string for selecting additional features.
1590
+ #
1591
+ # @option params [String] :ami_version
1592
+ # <note markdown="1"> For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
1593
+ # greater, use ReleaseLabel.
1594
+ #
1595
+ # </note>
1596
+ #
1597
+ # The version of the Amazon Machine Image (AMI) to use when launching
1598
+ # Amazon EC2 instances in the job flow. The following values are valid:
1599
+ #
1600
+ # * The version number of the AMI to use, for example, "2.0."
1601
+ #
1602
+ # ^
1603
+ #
1604
+ # If the AMI supports multiple versions of Hadoop (for example, AMI 1.0
1605
+ # supports both Hadoop 0.18 and 0.20) you can use the
1606
+ # JobFlowInstancesConfig `HadoopVersion` parameter to modify the version
1607
+ # of Hadoop from the defaults shown above.
1608
+ #
1609
+ # For details about the AMI versions currently supported by Amazon
1610
+ # Elastic MapReduce, see [AMI Versions Supported in Elastic
1611
+ # MapReduce][1] in the *Amazon Elastic MapReduce Developer Guide.*
1612
+ #
1613
+ # <note markdown="1"> Previously, the EMR AMI version API parameter options allowed you to
1614
+ # use latest for the latest AMI version rather than specify a numerical
1615
+ # value. Some regions no longer support this deprecated option as they
1616
+ # only have a newer release label version of EMR, which requires you to
1617
+ # specify an EMR release label release (EMR 4.x or later).
1618
+ #
1619
+ # </note>
1620
+ #
1621
+ #
1622
+ #
1623
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/EnvironmentConfig_AMIVersion.html#ami-versions-supported
1624
+ #
1625
+ # @option params [String] :release_label
1626
+ # <note markdown="1"> Amazon EMR releases 4.x or later.
1627
+ #
1628
+ # </note>
1629
+ #
1630
+ # The release label for the Amazon EMR release. For Amazon EMR 3.x and
1631
+ # 2.x AMIs, use amiVersion instead instead of ReleaseLabel.
1632
+ #
1633
+ # @option params [required, Types::JobFlowInstancesConfig] :instances
1634
+ # A specification of the number and type of Amazon EC2 instances.
1635
+ #
1636
+ # @option params [Array<Types::StepConfig>] :steps
1637
+ # A list of steps to run.
1638
+ #
1639
+ # @option params [Array<Types::BootstrapActionConfig>] :bootstrap_actions
1640
+ # A list of bootstrap actions to run before Hadoop starts on the cluster
1641
+ # nodes.
1642
+ #
1643
+ # @option params [Array<String>] :supported_products
1644
+ # <note markdown="1"> For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
1645
+ # greater, use Applications.
1646
+ #
1647
+ # </note>
1648
+ #
1649
+ # A list of strings that indicates third-party software to use. For more
1650
+ # information, see [Use Third Party Applications with Amazon EMR][1].
1651
+ # Currently supported values are:
1652
+ #
1653
+ # * "mapr-m3" - launch the job flow using MapR M3 Edition.
1654
+ #
1655
+ # * "mapr-m5" - launch the job flow using MapR M5 Edition.
1656
+ #
1657
+ #
1658
+ #
1659
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-supported-products.html
1660
+ #
1661
+ # @option params [Array<Types::SupportedProductConfig>] :new_supported_products
1662
+ # <note markdown="1"> For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
1663
+ # greater, use Applications.
1664
+ #
1665
+ # </note>
1666
+ #
1667
+ # A list of strings that indicates third-party software to use with the
1668
+ # job flow that accepts a user argument list. EMR accepts and forwards
1669
+ # the argument list to the corresponding installation script as
1670
+ # bootstrap action arguments. For more information, see "Launch a Job
1671
+ # Flow on the MapR Distribution for Hadoop" in the [Amazon EMR
1672
+ # Developer Guide][1]. Supported values are:
1673
+ #
1674
+ # * "mapr-m3" - launch the cluster using MapR M3 Edition.
1675
+ #
1676
+ # * "mapr-m5" - launch the cluster using MapR M5 Edition.
1677
+ #
1678
+ # * "mapr" with the user arguments specifying "--edition,m3" or
1679
+ # "--edition,m5" - launch the job flow using MapR M3 or M5 Edition
1680
+ # respectively.
1681
+ #
1682
+ # * "mapr-m7" - launch the cluster using MapR M7 Edition.
1683
+ #
1684
+ # * "hunk" - launch the cluster with the Hunk Big Data Analtics
1685
+ # Platform.
1686
+ #
1687
+ # * "hue"- launch the cluster with Hue installed.
1688
+ #
1689
+ # * "spark" - launch the cluster with Apache Spark installed.
1690
+ #
1691
+ # * "ganglia" - launch the cluster with the Ganglia Monitoring System
1692
+ # installed.
1693
+ #
1694
+ #
1695
+ #
1696
+ # [1]: http://docs.aws.amazon.com/http:/docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf
1697
+ #
1698
+ # @option params [Array<Types::Application>] :applications
1699
+ # <note markdown="1"> Amazon EMR releases 4.x or later.
1700
+ #
1701
+ # </note>
1702
+ #
1703
+ # A list of applications for the cluster. Valid values are: "Hadoop",
1704
+ # "Hive", "Mahout", "Pig", and "Spark." They are case
1705
+ # insensitive.
1706
+ #
1707
+ # @option params [Array<Types::Configuration>] :configurations
1708
+ # <note markdown="1"> Amazon EMR releases 4.x or later.
1709
+ #
1710
+ # </note>
1711
+ #
1712
+ # The list of configurations supplied for the EMR cluster you are
1713
+ # creating.
1714
+ #
1715
+ # @option params [Boolean] :visible_to_all_users
1716
+ # Whether the cluster is visible to all IAM users of the AWS account
1717
+ # associated with the cluster. If this value is set to `true`, all IAM
1718
+ # users of that AWS account can view and (if they have the proper policy
1719
+ # permissions set) manage the cluster. If it is set to `false`, only the
1720
+ # IAM user that created the cluster can view and manage it.
1721
+ #
1722
+ # @option params [String] :job_flow_role
1723
+ # Also called instance profile and EC2 role. An IAM role for an EMR
1724
+ # cluster. The EC2 instances of the cluster assume this role. The
1725
+ # default role is `EMR_EC2_DefaultRole`. In order to use the default
1726
+ # role, you must have already created it using the CLI or console.
1727
+ #
1728
+ # @option params [String] :service_role
1729
+ # The IAM role that will be assumed by the Amazon EMR service to access
1730
+ # AWS resources on your behalf.
1731
+ #
1732
+ # @option params [Array<Types::Tag>] :tags
1733
+ # A list of tags to associate with a cluster and propagate to Amazon EC2
1734
+ # instances.
1735
+ #
1736
+ # @option params [String] :security_configuration
1737
+ # The name of a security configuration to apply to the cluster.
1738
+ #
1739
+ # @option params [String] :auto_scaling_role
1740
+ # An IAM role for automatic scaling policies. The default role is
1741
+ # `EMR_AutoScaling_DefaultRole`. The IAM role provides permissions that
1742
+ # the automatic scaling feature requires to launch and terminate EC2
1743
+ # instances in an instance group.
1744
+ #
1745
+ # @option params [String] :scale_down_behavior
1746
+ # Specifies the way that individual Amazon EC2 instances terminate when
1747
+ # an automatic scale-in activity occurs or an instance group is resized.
1748
+ # `TERMINATE_AT_INSTANCE_HOUR` indicates that Amazon EMR terminates
1749
+ # nodes at the instance-hour boundary, regardless of when the request to
1750
+ # terminate the instance was submitted. This option is only available
1751
+ # with Amazon EMR 5.1.0 and later and is the default for clusters
1752
+ # created using that version. `TERMINATE_AT_TASK_COMPLETION` indicates
1753
+ # that Amazon EMR blacklists and drains tasks from nodes before
1754
+ # terminating the Amazon EC2 instances, regardless of the instance-hour
1755
+ # boundary. With either behavior, Amazon EMR removes the least active
1756
+ # nodes first and blocks instance termination if it could lead to HDFS
1757
+ # corruption. `TERMINATE_AT_TASK_COMPLETION` available only in Amazon
1758
+ # EMR version 4.1.0 and later, and is the default for versions of Amazon
1759
+ # EMR earlier than 5.1.0.
1760
+ #
1761
+ # @return [Types::RunJobFlowOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1762
+ #
1763
+ # * {Types::RunJobFlowOutput#job_flow_id #job_flow_id} => String
1764
+ #
1765
+ # @example Request syntax with placeholder values
1766
+ #
1767
+ # resp = client.run_job_flow({
1768
+ # name: "XmlStringMaxLen256", # required
1769
+ # log_uri: "XmlString",
1770
+ # additional_info: "XmlString",
1771
+ # ami_version: "XmlStringMaxLen256",
1772
+ # release_label: "XmlStringMaxLen256",
1773
+ # instances: { # required
1774
+ # master_instance_type: "InstanceType",
1775
+ # slave_instance_type: "InstanceType",
1776
+ # instance_count: 1,
1777
+ # instance_groups: [
1778
+ # {
1779
+ # name: "XmlStringMaxLen256",
1780
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
1781
+ # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK
1782
+ # bid_price: "XmlStringMaxLen256",
1783
+ # instance_type: "InstanceType", # required
1784
+ # instance_count: 1, # required
1785
+ # configurations: [
1786
+ # {
1787
+ # classification: "String",
1788
+ # configurations: {
1789
+ # # recursive ConfigurationList
1790
+ # },
1791
+ # properties: {
1792
+ # "String" => "String",
1793
+ # },
1794
+ # },
1795
+ # ],
1796
+ # ebs_configuration: {
1797
+ # ebs_block_device_configs: [
1798
+ # {
1799
+ # volume_specification: { # required
1800
+ # volume_type: "String", # required
1801
+ # iops: 1,
1802
+ # size_in_gb: 1, # required
1803
+ # },
1804
+ # volumes_per_instance: 1,
1805
+ # },
1806
+ # ],
1807
+ # ebs_optimized: false,
1808
+ # },
1809
+ # auto_scaling_policy: {
1810
+ # constraints: { # required
1811
+ # min_capacity: 1, # required
1812
+ # max_capacity: 1, # required
1813
+ # },
1814
+ # rules: [ # required
1815
+ # {
1816
+ # name: "String", # required
1817
+ # description: "String",
1818
+ # action: { # required
1819
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
1820
+ # simple_scaling_policy_configuration: { # required
1821
+ # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
1822
+ # scaling_adjustment: 1, # required
1823
+ # cool_down: 1,
1824
+ # },
1825
+ # },
1826
+ # trigger: { # required
1827
+ # cloud_watch_alarm_definition: { # required
1828
+ # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
1829
+ # evaluation_periods: 1,
1830
+ # metric_name: "String", # required
1831
+ # namespace: "String",
1832
+ # period: 1, # required
1833
+ # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
1834
+ # threshold: 1.0, # required
1835
+ # unit: "NONE", # accepts NONE, SECONDS, MICRO_SECONDS, MILLI_SECONDS, BYTES, KILO_BYTES, MEGA_BYTES, GIGA_BYTES, TERA_BYTES, BITS, KILO_BITS, MEGA_BITS, GIGA_BITS, TERA_BITS, PERCENT, COUNT, BYTES_PER_SECOND, KILO_BYTES_PER_SECOND, MEGA_BYTES_PER_SECOND, GIGA_BYTES_PER_SECOND, TERA_BYTES_PER_SECOND, BITS_PER_SECOND, KILO_BITS_PER_SECOND, MEGA_BITS_PER_SECOND, GIGA_BITS_PER_SECOND, TERA_BITS_PER_SECOND, COUNT_PER_SECOND
1836
+ # dimensions: [
1837
+ # {
1838
+ # key: "String",
1839
+ # value: "String",
1840
+ # },
1841
+ # ],
1842
+ # },
1843
+ # },
1844
+ # },
1845
+ # ],
1846
+ # },
1847
+ # },
1848
+ # ],
1849
+ # instance_fleets: [
1850
+ # {
1851
+ # name: "XmlStringMaxLen256",
1852
+ # instance_fleet_type: "MASTER", # required, accepts MASTER, CORE, TASK
1853
+ # target_on_demand_capacity: 1,
1854
+ # target_spot_capacity: 1,
1855
+ # instance_type_configs: [
1856
+ # {
1857
+ # instance_type: "InstanceType", # required
1858
+ # weighted_capacity: 1,
1859
+ # bid_price: "XmlStringMaxLen256",
1860
+ # bid_price_as_percentage_of_on_demand_price: 1.0,
1861
+ # ebs_configuration: {
1862
+ # ebs_block_device_configs: [
1863
+ # {
1864
+ # volume_specification: { # required
1865
+ # volume_type: "String", # required
1866
+ # iops: 1,
1867
+ # size_in_gb: 1, # required
1868
+ # },
1869
+ # volumes_per_instance: 1,
1870
+ # },
1871
+ # ],
1872
+ # ebs_optimized: false,
1873
+ # },
1874
+ # configurations: [
1875
+ # {
1876
+ # classification: "String",
1877
+ # configurations: {
1878
+ # # recursive ConfigurationList
1879
+ # },
1880
+ # properties: {
1881
+ # "String" => "String",
1882
+ # },
1883
+ # },
1884
+ # ],
1885
+ # },
1886
+ # ],
1887
+ # launch_specifications: {
1888
+ # spot_specification: { # required
1889
+ # timeout_duration_minutes: 1, # required
1890
+ # timeout_action: "SWITCH_TO_ON_DEMAND", # required, accepts SWITCH_TO_ON_DEMAND, TERMINATE_CLUSTER
1891
+ # block_duration_minutes: 1,
1892
+ # },
1893
+ # },
1894
+ # },
1895
+ # ],
1896
+ # ec2_key_name: "XmlStringMaxLen256",
1897
+ # placement: {
1898
+ # availability_zone: "XmlString",
1899
+ # availability_zones: ["XmlStringMaxLen256"],
1900
+ # },
1901
+ # keep_job_flow_alive_when_no_steps: false,
1902
+ # termination_protected: false,
1903
+ # hadoop_version: "XmlStringMaxLen256",
1904
+ # ec2_subnet_id: "XmlStringMaxLen256",
1905
+ # ec2_subnet_ids: ["XmlStringMaxLen256"],
1906
+ # emr_managed_master_security_group: "XmlStringMaxLen256",
1907
+ # emr_managed_slave_security_group: "XmlStringMaxLen256",
1908
+ # service_access_security_group: "XmlStringMaxLen256",
1909
+ # additional_master_security_groups: ["XmlStringMaxLen256"],
1910
+ # additional_slave_security_groups: ["XmlStringMaxLen256"],
1911
+ # },
1912
+ # steps: [
1913
+ # {
1914
+ # name: "XmlStringMaxLen256", # required
1915
+ # action_on_failure: "TERMINATE_JOB_FLOW", # accepts TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, CONTINUE
1916
+ # hadoop_jar_step: { # required
1917
+ # properties: [
1918
+ # {
1919
+ # key: "XmlString",
1920
+ # value: "XmlString",
1921
+ # },
1922
+ # ],
1923
+ # jar: "XmlString", # required
1924
+ # main_class: "XmlString",
1925
+ # args: ["XmlString"],
1926
+ # },
1927
+ # },
1928
+ # ],
1929
+ # bootstrap_actions: [
1930
+ # {
1931
+ # name: "XmlStringMaxLen256", # required
1932
+ # script_bootstrap_action: { # required
1933
+ # path: "XmlString", # required
1934
+ # args: ["XmlString"],
1935
+ # },
1936
+ # },
1937
+ # ],
1938
+ # supported_products: ["XmlStringMaxLen256"],
1939
+ # new_supported_products: [
1940
+ # {
1941
+ # name: "XmlStringMaxLen256",
1942
+ # args: ["XmlString"],
1943
+ # },
1944
+ # ],
1945
+ # applications: [
1946
+ # {
1947
+ # name: "String",
1948
+ # version: "String",
1949
+ # args: ["String"],
1950
+ # additional_info: {
1951
+ # "String" => "String",
1952
+ # },
1953
+ # },
1954
+ # ],
1955
+ # configurations: [
1956
+ # {
1957
+ # classification: "String",
1958
+ # configurations: {
1959
+ # # recursive ConfigurationList
1960
+ # },
1961
+ # properties: {
1962
+ # "String" => "String",
1963
+ # },
1964
+ # },
1965
+ # ],
1966
+ # visible_to_all_users: false,
1967
+ # job_flow_role: "XmlString",
1968
+ # service_role: "XmlString",
1969
+ # tags: [
1970
+ # {
1971
+ # key: "String",
1972
+ # value: "String",
1973
+ # },
1974
+ # ],
1975
+ # security_configuration: "XmlString",
1976
+ # auto_scaling_role: "XmlString",
1977
+ # scale_down_behavior: "TERMINATE_AT_INSTANCE_HOUR", # accepts TERMINATE_AT_INSTANCE_HOUR, TERMINATE_AT_TASK_COMPLETION
1978
+ # })
1979
+ #
1980
+ # @example Response structure
1981
+ #
1982
+ # resp.job_flow_id #=> String
1983
+ #
1984
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlow AWS API Documentation
1985
+ #
1986
+ # @overload run_job_flow(params = {})
1987
+ # @param [Hash] params ({})
1988
+ def run_job_flow(params = {}, options = {})
1989
+ req = build_request(:run_job_flow, params)
1990
+ req.send_request(options)
1991
+ end
1625
1992
 
1626
- # @!endgroup
1993
+ # SetTerminationProtection locks a cluster (job flow) so the EC2
1994
+ # instances in the cluster cannot be terminated by user intervention, an
1995
+ # API call, or in the event of a job-flow error. The cluster still
1996
+ # terminates upon successful completion of the job flow. Calling
1997
+ # `SetTerminationProtection` on a cluster is similar to calling the
1998
+ # Amazon EC2 `DisableAPITermination` API on all EC2 instances in a
1999
+ # cluster.
2000
+ #
2001
+ # `SetTerminationProtection` is used to prevent accidental termination
2002
+ # of a cluster and to ensure that in the event of an error, the
2003
+ # instances persist so that you can recover any data stored in their
2004
+ # ephemeral instance storage.
2005
+ #
2006
+ # To terminate a cluster that has been locked by setting
2007
+ # `SetTerminationProtection` to `true`, you must first unlock the job
2008
+ # flow by a subsequent call to `SetTerminationProtection` in which you
2009
+ # set the value to `false`.
2010
+ #
2011
+ # For more information, see[Managing Cluster Termination][1] in the
2012
+ # *Amazon EMR Management Guide*.
2013
+ #
2014
+ #
2015
+ #
2016
+ # [1]: http://docs.aws.amazon.com/emr/latest/ManagementGuide/UsingEMR_TerminationProtection.html
2017
+ #
2018
+ # @option params [required, Array<String>] :job_flow_ids
2019
+ # A list of strings that uniquely identify the clusters to protect. This
2020
+ # identifier is returned by RunJobFlow and can also be obtained from
2021
+ # DescribeJobFlows .
2022
+ #
2023
+ # @option params [required, Boolean] :termination_protected
2024
+ # A Boolean that indicates whether to protect the cluster and prevent
2025
+ # the Amazon EC2 instances in the cluster from shutting down due to API
2026
+ # calls, user intervention, or job-flow error.
2027
+ #
2028
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2029
+ #
2030
+ # @example Request syntax with placeholder values
2031
+ #
2032
+ # resp = client.set_termination_protection({
2033
+ # job_flow_ids: ["XmlString"], # required
2034
+ # termination_protected: false, # required
2035
+ # })
2036
+ #
2037
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtection AWS API Documentation
2038
+ #
2039
+ # @overload set_termination_protection(params = {})
2040
+ # @param [Hash] params ({})
2041
+ def set_termination_protection(params = {}, options = {})
2042
+ req = build_request(:set_termination_protection, params)
2043
+ req.send_request(options)
2044
+ end
1627
2045
 
1628
- # @param params ({})
1629
- # @api private
1630
- def build_request(operation_name, params = {})
1631
- handlers = @handlers.for(operation_name)
1632
- context = Seahorse::Client::RequestContext.new(
1633
- operation_name: operation_name,
1634
- operation: config.api.operation(operation_name),
1635
- client: self,
1636
- params: params,
1637
- config: config)
1638
- context[:gem_name] = 'aws-sdk-emr'
1639
- context[:gem_version] = '1.0.0.rc1'
1640
- Seahorse::Client::Request.new(handlers, context)
1641
- end
2046
+ # Sets whether all AWS Identity and Access Management (IAM) users under
2047
+ # your account can access the specified clusters (job flows). This
2048
+ # action works on running clusters. You can also set the visibility of a
2049
+ # cluster when you launch it using the `VisibleToAllUsers` parameter of
2050
+ # RunJobFlow. The SetVisibleToAllUsers action can be called only by an
2051
+ # IAM user who created the cluster or the AWS account that owns the
2052
+ # cluster.
2053
+ #
2054
+ # @option params [required, Array<String>] :job_flow_ids
2055
+ # Identifiers of the job flows to receive the new visibility setting.
2056
+ #
2057
+ # @option params [required, Boolean] :visible_to_all_users
2058
+ # Whether the specified clusters are visible to all IAM users of the AWS
2059
+ # account associated with the cluster. If this value is set to True, all
2060
+ # IAM users of that AWS account can view and, if they have the proper
2061
+ # IAM policy permissions set, manage the clusters. If it is set to
2062
+ # False, only the IAM user that created a cluster can view and manage
2063
+ # it.
2064
+ #
2065
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2066
+ #
2067
+ # @example Request syntax with placeholder values
2068
+ #
2069
+ # resp = client.set_visible_to_all_users({
2070
+ # job_flow_ids: ["XmlString"], # required
2071
+ # visible_to_all_users: false, # required
2072
+ # })
2073
+ #
2074
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsers AWS API Documentation
2075
+ #
2076
+ # @overload set_visible_to_all_users(params = {})
2077
+ # @param [Hash] params ({})
2078
+ def set_visible_to_all_users(params = {}, options = {})
2079
+ req = build_request(:set_visible_to_all_users, params)
2080
+ req.send_request(options)
2081
+ end
1642
2082
 
1643
- # Polls an API operation until a resource enters a desired state.
1644
- #
1645
- # ## Basic Usage
1646
- #
1647
- # A waiter will call an API operation until:
1648
- #
1649
- # * It is successful
1650
- # * It enters a terminal state
1651
- # * It makes the maximum number of attempts
1652
- #
1653
- # In between attempts, the waiter will sleep.
1654
- #
1655
- # # polls in a loop, sleeping between attempts
1656
- # client.waiter_until(waiter_name, params)
1657
- #
1658
- # ## Configuration
1659
- #
1660
- # You can configure the maximum number of polling attempts, and the
1661
- # delay (in seconds) between each polling attempt. You can pass
1662
- # configuration as the final arguments hash.
1663
- #
1664
- # # poll for ~25 seconds
1665
- # client.wait_until(waiter_name, params, {
1666
- # max_attempts: 5,
1667
- # delay: 5,
1668
- # })
1669
- #
1670
- # ## Callbacks
1671
- #
1672
- # You can be notified before each polling attempt and before each
1673
- # delay. If you throw `:success` or `:failure` from these callbacks,
1674
- # it will terminate the waiter.
1675
- #
1676
- # started_at = Time.now
1677
- # client.wait_until(waiter_name, params, {
1678
- #
1679
- # # disable max attempts
1680
- # max_attempts: nil,
1681
- #
1682
- # # poll for 1 hour, instead of a number of attempts
1683
- # before_wait: -> (attempts, response) do
1684
- # throw :failure if Time.now - started_at > 3600
1685
- # end
1686
- # })
1687
- #
1688
- # ## Handling Errors
1689
- #
1690
- # When a waiter is unsuccessful, it will raise an error.
1691
- # All of the failure errors extend from
1692
- # {Aws::Waiters::Errors::WaiterFailed}.
1693
- #
1694
- # begin
1695
- # client.wait_until(...)
1696
- # rescue Aws::Waiters::Errors::WaiterFailed
1697
- # # resource did not enter the desired state in time
1698
- # end
1699
- #
1700
- # ## Valid Waiters
1701
- #
1702
- # The following table lists the valid waiter names, the operations they call,
1703
- # and the default `:delay` and `:max_attempts` values.
1704
- #
1705
- # | waiter_name | params | :delay | :max_attempts |
1706
- # | --------------- | ------------------- | -------- | ------------- |
1707
- # | cluster_running | {#describe_cluster} | 30 | 60 |
1708
- # | step_complete | {#describe_step} | 30 | 60 |
1709
- #
1710
- # @raise [Errors::FailureStateError] Raised when the waiter terminates
1711
- # because the waiter has entered a state that it will not transition
1712
- # out of, preventing success.
1713
- #
1714
- # @raise [Errors::TooManyAttemptsError] Raised when the configured
1715
- # maximum number of attempts have been made, and the waiter is not
1716
- # yet successful.
1717
- #
1718
- # @raise [Errors::UnexpectedError] Raised when an error is encounted
1719
- # while polling for a resource that is not expected.
1720
- #
1721
- # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
1722
- # for an unknown state.
1723
- #
1724
- # @return [Boolean] Returns `true` if the waiter was successful.
1725
- # @param [Symbol] waiter_name
1726
- # @param [Hash] params ({})
1727
- # @param [Hash] options ({})
1728
- # @option options [Integer] :max_attempts
1729
- # @option options [Integer] :delay
1730
- # @option options [Proc] :before_attempt
1731
- # @option options [Proc] :before_wait
1732
- def wait_until(waiter_name, params = {}, options = {})
1733
- w = waiter(waiter_name, options)
1734
- yield(w.waiter) if block_given? # deprecated
1735
- w.wait(params)
1736
- end
2083
+ # TerminateJobFlows shuts a list of clusters (job flows) down. When a
2084
+ # job flow is shut down, any step not yet completed is canceled and the
2085
+ # EC2 instances on which the cluster is running are stopped. Any log
2086
+ # files not already saved are uploaded to Amazon S3 if a LogUri was
2087
+ # specified when the cluster was created.
2088
+ #
2089
+ # The maximum number of clusters allowed is 10. The call to
2090
+ # `TerminateJobFlows` is asynchronous. Depending on the configuration of
2091
+ # the cluster, it may take up to 1-5 minutes for the cluster to
2092
+ # completely terminate and release allocated resources, such as Amazon
2093
+ # EC2 instances.
2094
+ #
2095
+ # @option params [required, Array<String>] :job_flow_ids
2096
+ # A list of job flows to be shutdown.
2097
+ #
2098
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2099
+ #
2100
+ # @example Request syntax with placeholder values
2101
+ #
2102
+ # resp = client.terminate_job_flows({
2103
+ # job_flow_ids: ["XmlString"], # required
2104
+ # })
2105
+ #
2106
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlows AWS API Documentation
2107
+ #
2108
+ # @overload terminate_job_flows(params = {})
2109
+ # @param [Hash] params ({})
2110
+ def terminate_job_flows(params = {}, options = {})
2111
+ req = build_request(:terminate_job_flows, params)
2112
+ req.send_request(options)
2113
+ end
1737
2114
 
1738
- # @api private
1739
- # @deprecated
1740
- def waiter_names
1741
- waiters.keys
1742
- end
2115
+ # @!endgroup
1743
2116
 
1744
- private
2117
+ # @param params ({})
2118
+ # @api private
2119
+ def build_request(operation_name, params = {})
2120
+ handlers = @handlers.for(operation_name)
2121
+ context = Seahorse::Client::RequestContext.new(
2122
+ operation_name: operation_name,
2123
+ operation: config.api.operation(operation_name),
2124
+ client: self,
2125
+ params: params,
2126
+ config: config)
2127
+ context[:gem_name] = 'aws-sdk-emr'
2128
+ context[:gem_version] = '1.0.0.rc2'
2129
+ Seahorse::Client::Request.new(handlers, context)
2130
+ end
1745
2131
 
1746
- # @param [Symbol] waiter_name
1747
- # @param [Hash] options ({})
1748
- def waiter(waiter_name, options = {})
1749
- waiter_class = waiters[waiter_name]
1750
- if waiter_class
1751
- waiter_class.new(options.merge(client: self))
1752
- else
1753
- raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
1754
- end
1755
- end
2132
+ # Polls an API operation until a resource enters a desired state.
2133
+ #
2134
+ # ## Basic Usage
2135
+ #
2136
+ # A waiter will call an API operation until:
2137
+ #
2138
+ # * It is successful
2139
+ # * It enters a terminal state
2140
+ # * It makes the maximum number of attempts
2141
+ #
2142
+ # In between attempts, the waiter will sleep.
2143
+ #
2144
+ # # polls in a loop, sleeping between attempts
2145
+ # client.waiter_until(waiter_name, params)
2146
+ #
2147
+ # ## Configuration
2148
+ #
2149
+ # You can configure the maximum number of polling attempts, and the
2150
+ # delay (in seconds) between each polling attempt. You can pass
2151
+ # configuration as the final arguments hash.
2152
+ #
2153
+ # # poll for ~25 seconds
2154
+ # client.wait_until(waiter_name, params, {
2155
+ # max_attempts: 5,
2156
+ # delay: 5,
2157
+ # })
2158
+ #
2159
+ # ## Callbacks
2160
+ #
2161
+ # You can be notified before each polling attempt and before each
2162
+ # delay. If you throw `:success` or `:failure` from these callbacks,
2163
+ # it will terminate the waiter.
2164
+ #
2165
+ # started_at = Time.now
2166
+ # client.wait_until(waiter_name, params, {
2167
+ #
2168
+ # # disable max attempts
2169
+ # max_attempts: nil,
2170
+ #
2171
+ # # poll for 1 hour, instead of a number of attempts
2172
+ # before_wait: -> (attempts, response) do
2173
+ # throw :failure if Time.now - started_at > 3600
2174
+ # end
2175
+ # })
2176
+ #
2177
+ # ## Handling Errors
2178
+ #
2179
+ # When a waiter is unsuccessful, it will raise an error.
2180
+ # All of the failure errors extend from
2181
+ # {Aws::Waiters::Errors::WaiterFailed}.
2182
+ #
2183
+ # begin
2184
+ # client.wait_until(...)
2185
+ # rescue Aws::Waiters::Errors::WaiterFailed
2186
+ # # resource did not enter the desired state in time
2187
+ # end
2188
+ #
2189
+ # ## Valid Waiters
2190
+ #
2191
+ # The following table lists the valid waiter names, the operations they call,
2192
+ # and the default `:delay` and `:max_attempts` values.
2193
+ #
2194
+ # | waiter_name | params | :delay | :max_attempts |
2195
+ # | ------------------ | ------------------- | -------- | ------------- |
2196
+ # | cluster_running | {#describe_cluster} | 30 | 60 |
2197
+ # | cluster_terminated | {#describe_cluster} | 30 | 60 |
2198
+ # | step_complete | {#describe_step} | 30 | 60 |
2199
+ #
2200
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
2201
+ # because the waiter has entered a state that it will not transition
2202
+ # out of, preventing success.
2203
+ #
2204
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
2205
+ # maximum number of attempts have been made, and the waiter is not
2206
+ # yet successful.
2207
+ #
2208
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
2209
+ # while polling for a resource that is not expected.
2210
+ #
2211
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
2212
+ # for an unknown state.
2213
+ #
2214
+ # @return [Boolean] Returns `true` if the waiter was successful.
2215
+ # @param [Symbol] waiter_name
2216
+ # @param [Hash] params ({})
2217
+ # @param [Hash] options ({})
2218
+ # @option options [Integer] :max_attempts
2219
+ # @option options [Integer] :delay
2220
+ # @option options [Proc] :before_attempt
2221
+ # @option options [Proc] :before_wait
2222
+ def wait_until(waiter_name, params = {}, options = {})
2223
+ w = waiter(waiter_name, options)
2224
+ yield(w.waiter) if block_given? # deprecated
2225
+ w.wait(params)
2226
+ end
1756
2227
 
1757
- def waiters
1758
- {
1759
- cluster_running: Waiters::ClusterRunning,
1760
- step_complete: Waiters::StepComplete
1761
- }
2228
+ # @api private
2229
+ # @deprecated
2230
+ def waiter_names
2231
+ waiters.keys
2232
+ end
2233
+
2234
+ private
2235
+
2236
+ # @param [Symbol] waiter_name
2237
+ # @param [Hash] options ({})
2238
+ def waiter(waiter_name, options = {})
2239
+ waiter_class = waiters[waiter_name]
2240
+ if waiter_class
2241
+ waiter_class.new(options.merge(client: self))
2242
+ else
2243
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
1762
2244
  end
2245
+ end
1763
2246
 
1764
- class << self
2247
+ def waiters
2248
+ {
2249
+ cluster_running: Waiters::ClusterRunning,
2250
+ cluster_terminated: Waiters::ClusterTerminated,
2251
+ step_complete: Waiters::StepComplete
2252
+ }
2253
+ end
1765
2254
 
1766
- # @api private
1767
- attr_reader :identifier
2255
+ class << self
1768
2256
 
1769
- # @api private
1770
- def errors_module
1771
- Errors
1772
- end
2257
+ # @api private
2258
+ attr_reader :identifier
1773
2259
 
2260
+ # @api private
2261
+ def errors_module
2262
+ Errors
1774
2263
  end
2264
+
1775
2265
  end
1776
2266
  end
1777
2267
  end