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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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