aws-sdk-emr 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
@@ -0,0 +1,23 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module EMR
10
+ module Errors
11
+
12
+ extend Aws::Errors::DynamicErrors
13
+
14
+ # Raised when calling #load or #data on a resource class that can not be
15
+ # loaded. This can happen when:
16
+ #
17
+ # * A resource class has identifiers, but no data attributes.
18
+ # * Resource data is only available when making an API call that
19
+ # enumerates all resources of that type.
20
+ class ResourceNotLoadable < RuntimeError; end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module EMR
10
+ class Resource
11
+
12
+ # @param options ({})
13
+ # @option options [Client] :client
14
+ def initialize(options = {})
15
+ @client = options[:client] || Client.new(options)
16
+ end
17
+
18
+ # @return [Client]
19
+ def client
20
+ @client
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,3749 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module EMR
10
+ module Types
11
+
12
+ # Input to an AddInstanceGroups call.
13
+ # @note When making an API call, pass AddInstanceGroupsInput
14
+ # data as a hash:
15
+ #
16
+ # {
17
+ # instance_groups: [ # required
18
+ # {
19
+ # name: "XmlStringMaxLen256",
20
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
21
+ # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK
22
+ # bid_price: "XmlStringMaxLen256",
23
+ # instance_type: "InstanceType", # required
24
+ # instance_count: 1, # required
25
+ # configurations: [
26
+ # {
27
+ # classification: "String",
28
+ # configurations: {
29
+ # # recursive ConfigurationList
30
+ # },
31
+ # properties: {
32
+ # "String" => "String",
33
+ # },
34
+ # },
35
+ # ],
36
+ # ebs_configuration: {
37
+ # ebs_block_device_configs: [
38
+ # {
39
+ # volume_specification: { # required
40
+ # volume_type: "String", # required
41
+ # iops: 1,
42
+ # size_in_gb: 1, # required
43
+ # },
44
+ # volumes_per_instance: 1,
45
+ # },
46
+ # ],
47
+ # ebs_optimized: false,
48
+ # },
49
+ # auto_scaling_policy: {
50
+ # constraints: { # required
51
+ # min_capacity: 1, # required
52
+ # max_capacity: 1, # required
53
+ # },
54
+ # rules: [ # required
55
+ # {
56
+ # name: "String", # required
57
+ # description: "String",
58
+ # action: { # required
59
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
60
+ # simple_scaling_policy_configuration: { # required
61
+ # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
62
+ # scaling_adjustment: 1, # required
63
+ # cool_down: 1,
64
+ # },
65
+ # },
66
+ # trigger: { # required
67
+ # cloud_watch_alarm_definition: { # required
68
+ # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
69
+ # evaluation_periods: 1,
70
+ # metric_name: "String", # required
71
+ # namespace: "String",
72
+ # period: 1, # required
73
+ # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
74
+ # threshold: 1.0, # required
75
+ # 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
76
+ # dimensions: [
77
+ # {
78
+ # key: "String",
79
+ # value: "String",
80
+ # },
81
+ # ],
82
+ # },
83
+ # },
84
+ # },
85
+ # ],
86
+ # },
87
+ # },
88
+ # ],
89
+ # job_flow_id: "XmlStringMaxLen256", # required
90
+ # }
91
+ # @!attribute [rw] instance_groups
92
+ # Instance groups to add.
93
+ # @return [Array<Types::InstanceGroupConfig>]
94
+ #
95
+ # @!attribute [rw] job_flow_id
96
+ # Job flow in which to add the instance groups.
97
+ # @return [String]
98
+ class AddInstanceGroupsInput < Struct.new(
99
+ :instance_groups,
100
+ :job_flow_id)
101
+ include Aws::Structure
102
+ end
103
+
104
+ # Output from an AddInstanceGroups call.
105
+ # @!attribute [rw] job_flow_id
106
+ # The job flow ID in which the instance groups are added.
107
+ # @return [String]
108
+ #
109
+ # @!attribute [rw] instance_group_ids
110
+ # Instance group IDs of the newly created instance groups.
111
+ # @return [Array<String>]
112
+ class AddInstanceGroupsOutput < Struct.new(
113
+ :job_flow_id,
114
+ :instance_group_ids)
115
+ include Aws::Structure
116
+ end
117
+
118
+ # The input argument to the AddJobFlowSteps operation.
119
+ # @note When making an API call, pass AddJobFlowStepsInput
120
+ # data as a hash:
121
+ #
122
+ # {
123
+ # job_flow_id: "XmlStringMaxLen256", # required
124
+ # steps: [ # required
125
+ # {
126
+ # name: "XmlStringMaxLen256", # required
127
+ # action_on_failure: "TERMINATE_JOB_FLOW", # accepts TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, CONTINUE
128
+ # hadoop_jar_step: { # required
129
+ # properties: [
130
+ # {
131
+ # key: "XmlString",
132
+ # value: "XmlString",
133
+ # },
134
+ # ],
135
+ # jar: "XmlString", # required
136
+ # main_class: "XmlString",
137
+ # args: ["XmlString"],
138
+ # },
139
+ # },
140
+ # ],
141
+ # }
142
+ # @!attribute [rw] job_flow_id
143
+ # A string that uniquely identifies the job flow. This identifier is
144
+ # returned by RunJobFlow and can also be obtained from ListClusters.
145
+ # @return [String]
146
+ #
147
+ # @!attribute [rw] steps
148
+ # A list of StepConfig to be executed by the job flow.
149
+ # @return [Array<Types::StepConfig>]
150
+ class AddJobFlowStepsInput < Struct.new(
151
+ :job_flow_id,
152
+ :steps)
153
+ include Aws::Structure
154
+ end
155
+
156
+ # The output for the AddJobFlowSteps operation.
157
+ # @!attribute [rw] step_ids
158
+ # The identifiers of the list of steps added to the job flow.
159
+ # @return [Array<String>]
160
+ class AddJobFlowStepsOutput < Struct.new(
161
+ :step_ids)
162
+ include Aws::Structure
163
+ end
164
+
165
+ # This input identifies a cluster and a list of tags to attach.
166
+ # @note When making an API call, pass AddTagsInput
167
+ # data as a hash:
168
+ #
169
+ # {
170
+ # resource_id: "ResourceId", # required
171
+ # tags: [ # required
172
+ # {
173
+ # key: "String",
174
+ # value: "String",
175
+ # },
176
+ # ],
177
+ # }
178
+ # @!attribute [rw] resource_id
179
+ # The Amazon EMR resource identifier to which tags will be added. This
180
+ # value must be a cluster identifier.
181
+ # @return [String]
182
+ #
183
+ # @!attribute [rw] tags
184
+ # A list of tags to associate with a cluster and propagate to EC2
185
+ # instances. Tags are user-defined key/value pairs that consist of a
186
+ # required key string with a maximum of 128 characters, and an
187
+ # optional value string with a maximum of 256 characters.
188
+ # @return [Array<Types::Tag>]
189
+ class AddTagsInput < Struct.new(
190
+ :resource_id,
191
+ :tags)
192
+ include Aws::Structure
193
+ end
194
+
195
+ # This output indicates the result of adding tags to a resource.
196
+ class AddTagsOutput < Aws::EmptyStructure; end
197
+
198
+ # An application is any Amazon or third-party software that you can add
199
+ # to the cluster. This structure contains a list of strings that
200
+ # indicates the software to use with the cluster and accepts a user
201
+ # argument list. Amazon EMR accepts and forwards the argument list to
202
+ # the corresponding installation script as bootstrap action argument.
203
+ # For more information, see [Launch a Job Flow on the MapR Distribution
204
+ # for Hadoop][1]. Currently supported values are:
205
+ #
206
+ # * "mapr-m3" - launch the job flow using MapR M3 Edition.
207
+ #
208
+ # * "mapr-m5" - launch the job flow using MapR M5 Edition.
209
+ #
210
+ # * "mapr" with the user arguments specifying "--edition,m3" or
211
+ # "--edition,m5" - launch the job flow using MapR M3 or M5 Edition,
212
+ # respectively.
213
+ #
214
+ # <note markdown="1"> In Amazon EMR releases 4.0 and greater, the only accepted parameter is
215
+ # the application name. To pass arguments to applications, you supply a
216
+ # configuration for each application.
217
+ #
218
+ # </note>
219
+ #
220
+ #
221
+ #
222
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-mapr.html
223
+ # @note When making an API call, pass Application
224
+ # data as a hash:
225
+ #
226
+ # {
227
+ # name: "String",
228
+ # version: "String",
229
+ # args: ["String"],
230
+ # additional_info: {
231
+ # "String" => "String",
232
+ # },
233
+ # }
234
+ # @!attribute [rw] name
235
+ # The name of the application.
236
+ # @return [String]
237
+ #
238
+ # @!attribute [rw] version
239
+ # The version of the application.
240
+ # @return [String]
241
+ #
242
+ # @!attribute [rw] args
243
+ # Arguments for Amazon EMR to pass to the application.
244
+ # @return [Array<String>]
245
+ #
246
+ # @!attribute [rw] additional_info
247
+ # This option is for advanced users only. This is meta information
248
+ # about third-party applications that third-party vendors use for
249
+ # testing purposes.
250
+ # @return [Hash<String,String>]
251
+ class Application < Struct.new(
252
+ :name,
253
+ :version,
254
+ :args,
255
+ :additional_info)
256
+ include Aws::Structure
257
+ end
258
+
259
+ # An automatic scaling policy for a core instance group or task instance
260
+ # group in an Amazon EMR cluster. An automatic scaling policy defines
261
+ # how an instance group dynamically adds and terminates EC2 instances in
262
+ # response to the value of a CloudWatch metric. See
263
+ # PutAutoScalingPolicy.
264
+ # @note When making an API call, pass AutoScalingPolicy
265
+ # data as a hash:
266
+ #
267
+ # {
268
+ # constraints: { # required
269
+ # min_capacity: 1, # required
270
+ # max_capacity: 1, # required
271
+ # },
272
+ # rules: [ # required
273
+ # {
274
+ # name: "String", # required
275
+ # description: "String",
276
+ # action: { # required
277
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
278
+ # simple_scaling_policy_configuration: { # required
279
+ # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
280
+ # scaling_adjustment: 1, # required
281
+ # cool_down: 1,
282
+ # },
283
+ # },
284
+ # trigger: { # required
285
+ # cloud_watch_alarm_definition: { # required
286
+ # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
287
+ # evaluation_periods: 1,
288
+ # metric_name: "String", # required
289
+ # namespace: "String",
290
+ # period: 1, # required
291
+ # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
292
+ # threshold: 1.0, # required
293
+ # 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
294
+ # dimensions: [
295
+ # {
296
+ # key: "String",
297
+ # value: "String",
298
+ # },
299
+ # ],
300
+ # },
301
+ # },
302
+ # },
303
+ # ],
304
+ # }
305
+ # @!attribute [rw] constraints
306
+ # The upper and lower EC2 instance limits for an automatic scaling
307
+ # policy. Automatic scaling activity will not cause an instance group
308
+ # to grow above or below these limits.
309
+ # @return [Types::ScalingConstraints]
310
+ #
311
+ # @!attribute [rw] rules
312
+ # The scale-in and scale-out rules that comprise the automatic scaling
313
+ # policy.
314
+ # @return [Array<Types::ScalingRule>]
315
+ class AutoScalingPolicy < Struct.new(
316
+ :constraints,
317
+ :rules)
318
+ include Aws::Structure
319
+ end
320
+
321
+ # An automatic scaling policy for a core instance group or task instance
322
+ # group in an Amazon EMR cluster. The automatic scaling policy defines
323
+ # how an instance group dynamically adds and terminates EC2 instances in
324
+ # response to the value of a CloudWatch metric. See
325
+ # PutAutoScalingPolicy.
326
+ # @!attribute [rw] status
327
+ # The status of an automatic scaling policy.
328
+ # @return [Types::AutoScalingPolicyStatus]
329
+ #
330
+ # @!attribute [rw] constraints
331
+ # The upper and lower EC2 instance limits for an automatic scaling
332
+ # policy. Automatic scaling activity will not cause an instance group
333
+ # to grow above or below these limits.
334
+ # @return [Types::ScalingConstraints]
335
+ #
336
+ # @!attribute [rw] rules
337
+ # The scale-in and scale-out rules that comprise the automatic scaling
338
+ # policy.
339
+ # @return [Array<Types::ScalingRule>]
340
+ class AutoScalingPolicyDescription < Struct.new(
341
+ :status,
342
+ :constraints,
343
+ :rules)
344
+ include Aws::Structure
345
+ end
346
+
347
+ # The reason for an AutoScalingPolicyStatus change.
348
+ # @!attribute [rw] code
349
+ # The code indicating the reason for the change in
350
+ # status.`USER_REQUEST` indicates that the scaling policy status was
351
+ # changed by a user. `PROVISION_FAILURE` indicates that the status
352
+ # change was because the policy failed to provision. `CLEANUP_FAILURE`
353
+ # indicates something unclean happened.--&gt;
354
+ # @return [String]
355
+ #
356
+ # @!attribute [rw] message
357
+ # A friendly, more verbose message that accompanies an automatic
358
+ # scaling policy state change.
359
+ # @return [String]
360
+ class AutoScalingPolicyStateChangeReason < Struct.new(
361
+ :code,
362
+ :message)
363
+ include Aws::Structure
364
+ end
365
+
366
+ # The status of an automatic scaling policy.
367
+ # @!attribute [rw] state
368
+ # @return [String]
369
+ #
370
+ # @!attribute [rw] state_change_reason
371
+ # The reason for a change in status.
372
+ # @return [Types::AutoScalingPolicyStateChangeReason]
373
+ class AutoScalingPolicyStatus < Struct.new(
374
+ :state,
375
+ :state_change_reason)
376
+ include Aws::Structure
377
+ end
378
+
379
+ # Configuration of a bootstrap action.
380
+ # @note When making an API call, pass BootstrapActionConfig
381
+ # data as a hash:
382
+ #
383
+ # {
384
+ # name: "XmlStringMaxLen256", # required
385
+ # script_bootstrap_action: { # required
386
+ # path: "XmlString", # required
387
+ # args: ["XmlString"],
388
+ # },
389
+ # }
390
+ # @!attribute [rw] name
391
+ # The name of the bootstrap action.
392
+ # @return [String]
393
+ #
394
+ # @!attribute [rw] script_bootstrap_action
395
+ # The script run by the bootstrap action.
396
+ # @return [Types::ScriptBootstrapActionConfig]
397
+ class BootstrapActionConfig < Struct.new(
398
+ :name,
399
+ :script_bootstrap_action)
400
+ include Aws::Structure
401
+ end
402
+
403
+ # Reports the configuration of a bootstrap action in a job flow.
404
+ # @!attribute [rw] bootstrap_action_config
405
+ # A description of the bootstrap action.
406
+ # @return [Types::BootstrapActionConfig]
407
+ class BootstrapActionDetail < Struct.new(
408
+ :bootstrap_action_config)
409
+ include Aws::Structure
410
+ end
411
+
412
+ # @!attribute [rw] step_id
413
+ # @return [String]
414
+ #
415
+ # @!attribute [rw] status
416
+ # @return [String]
417
+ #
418
+ # @!attribute [rw] reason
419
+ # @return [String]
420
+ class CancelStepsInfo < Struct.new(
421
+ :step_id,
422
+ :status,
423
+ :reason)
424
+ include Aws::Structure
425
+ end
426
+
427
+ # The input argument to the CancelSteps operation.
428
+ # @note When making an API call, pass CancelStepsInput
429
+ # data as a hash:
430
+ #
431
+ # {
432
+ # cluster_id: "XmlStringMaxLen256",
433
+ # step_ids: ["XmlStringMaxLen256"],
434
+ # }
435
+ # @!attribute [rw] cluster_id
436
+ # The `ClusterID` for which specified steps will be canceled. Use
437
+ # RunJobFlow and ListClusters to get ClusterIDs.
438
+ # @return [String]
439
+ #
440
+ # @!attribute [rw] step_ids
441
+ # The list of `StepIDs` to cancel. Use ListSteps to get steps and
442
+ # their states for the specified cluster.
443
+ # @return [Array<String>]
444
+ class CancelStepsInput < Struct.new(
445
+ :cluster_id,
446
+ :step_ids)
447
+ include Aws::Structure
448
+ end
449
+
450
+ # The output for the CancelSteps operation.
451
+ # @!attribute [rw] cancel_steps_info_list
452
+ # A list of CancelStepsInfo, which shows the status of specified
453
+ # cancel requests for each `StepID` specified.
454
+ # @return [Array<Types::CancelStepsInfo>]
455
+ class CancelStepsOutput < Struct.new(
456
+ :cancel_steps_info_list)
457
+ include Aws::Structure
458
+ end
459
+
460
+ # The definition of a CloudWatch metric alarm, which determines when an
461
+ # automatic scaling activity is triggered. When the defined alarm
462
+ # conditions are satisfied, scaling activity begins.
463
+ # @note When making an API call, pass CloudWatchAlarmDefinition
464
+ # data as a hash:
465
+ #
466
+ # {
467
+ # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
468
+ # evaluation_periods: 1,
469
+ # metric_name: "String", # required
470
+ # namespace: "String",
471
+ # period: 1, # required
472
+ # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
473
+ # threshold: 1.0, # required
474
+ # 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
475
+ # dimensions: [
476
+ # {
477
+ # key: "String",
478
+ # value: "String",
479
+ # },
480
+ # ],
481
+ # }
482
+ # @!attribute [rw] comparison_operator
483
+ # Determines how the metric specified by `MetricName` is compared to
484
+ # the value specified by `Threshold`.
485
+ # @return [String]
486
+ #
487
+ # @!attribute [rw] evaluation_periods
488
+ # The number of periods, expressed in seconds using `Period`, during
489
+ # which the alarm condition must exist before the alarm triggers
490
+ # automatic scaling activity. The default value is `1`.
491
+ # @return [Integer]
492
+ #
493
+ # @!attribute [rw] metric_name
494
+ # The name of the CloudWatch metric that is watched to determine an
495
+ # alarm condition.
496
+ # @return [String]
497
+ #
498
+ # @!attribute [rw] namespace
499
+ # The namespace for the CloudWatch metric. The default is
500
+ # `AWS/ElasticMapReduce`.
501
+ # @return [String]
502
+ #
503
+ # @!attribute [rw] period
504
+ # The period, in seconds, over which the statistic is applied. EMR
505
+ # CloudWatch metrics are emitted every five minutes (300 seconds), so
506
+ # if an EMR CloudWatch metric is specified, specify `300`.
507
+ # @return [Integer]
508
+ #
509
+ # @!attribute [rw] statistic
510
+ # The statistic to apply to the metric associated with the alarm. The
511
+ # default is `AVERAGE`.
512
+ # @return [String]
513
+ #
514
+ # @!attribute [rw] threshold
515
+ # The value against which the specified statistic is compared.
516
+ # @return [Float]
517
+ #
518
+ # @!attribute [rw] unit
519
+ # The unit of measure associated with the CloudWatch metric being
520
+ # watched. The value specified for `Unit` must correspond to the units
521
+ # specified in the CloudWatch metric.
522
+ # @return [String]
523
+ #
524
+ # @!attribute [rw] dimensions
525
+ # A CloudWatch metric dimension.
526
+ # @return [Array<Types::MetricDimension>]
527
+ class CloudWatchAlarmDefinition < Struct.new(
528
+ :comparison_operator,
529
+ :evaluation_periods,
530
+ :metric_name,
531
+ :namespace,
532
+ :period,
533
+ :statistic,
534
+ :threshold,
535
+ :unit,
536
+ :dimensions)
537
+ include Aws::Structure
538
+ end
539
+
540
+ # The detailed description of the cluster.
541
+ # @!attribute [rw] id
542
+ # The unique identifier for the cluster.
543
+ # @return [String]
544
+ #
545
+ # @!attribute [rw] name
546
+ # The name of the cluster.
547
+ # @return [String]
548
+ #
549
+ # @!attribute [rw] status
550
+ # The current status details about the cluster.
551
+ # @return [Types::ClusterStatus]
552
+ #
553
+ # @!attribute [rw] ec2_instance_attributes
554
+ # Provides information about the EC2 instances in a cluster grouped by
555
+ # category. For example, key name, subnet ID, IAM instance profile,
556
+ # and so on.
557
+ # @return [Types::Ec2InstanceAttributes]
558
+ #
559
+ # @!attribute [rw] log_uri
560
+ # The path to the Amazon S3 location where logs for this cluster are
561
+ # stored.
562
+ # @return [String]
563
+ #
564
+ # @!attribute [rw] requested_ami_version
565
+ # The AMI version requested for this cluster.
566
+ # @return [String]
567
+ #
568
+ # @!attribute [rw] running_ami_version
569
+ # The AMI version running on this cluster.
570
+ # @return [String]
571
+ #
572
+ # @!attribute [rw] release_label
573
+ # The release label for the Amazon EMR release. For Amazon EMR 3.x and
574
+ # 2.x AMIs, use amiVersion instead instead of ReleaseLabel.
575
+ # @return [String]
576
+ #
577
+ # @!attribute [rw] auto_terminate
578
+ # Specifies whether the cluster should terminate after completing all
579
+ # steps.
580
+ # @return [Boolean]
581
+ #
582
+ # @!attribute [rw] termination_protected
583
+ # Indicates whether Amazon EMR will lock the cluster to prevent the
584
+ # EC2 instances from being terminated by an API call or user
585
+ # intervention, or in the event of a cluster error.
586
+ # @return [Boolean]
587
+ #
588
+ # @!attribute [rw] visible_to_all_users
589
+ # Indicates whether the job flow is visible to all IAM users of the
590
+ # AWS account associated with the job flow. If this value is set to
591
+ # `true`, all IAM users of that AWS account can view and manage the
592
+ # job flow if they have the proper policy permissions set. If this
593
+ # value is `false`, only the IAM user that created the cluster can
594
+ # view and manage it. This value can be changed using the
595
+ # SetVisibleToAllUsers action.
596
+ # @return [Boolean]
597
+ #
598
+ # @!attribute [rw] applications
599
+ # The applications installed on this cluster.
600
+ # @return [Array<Types::Application>]
601
+ #
602
+ # @!attribute [rw] tags
603
+ # A list of tags associated with a cluster.
604
+ # @return [Array<Types::Tag>]
605
+ #
606
+ # @!attribute [rw] service_role
607
+ # The IAM role that will be assumed by the Amazon EMR service to
608
+ # access AWS resources on your behalf.
609
+ # @return [String]
610
+ #
611
+ # @!attribute [rw] normalized_instance_hours
612
+ # An approximation of the cost of the job flow, represented in
613
+ # m1.small/hours. This value is incremented one time for every hour an
614
+ # m1.small instance runs. Larger instances are weighted more, so an
615
+ # EC2 instance that is roughly four times more expensive would result
616
+ # in the normalized instance hours being incremented by four. This
617
+ # result is only an approximation and does not reflect the actual
618
+ # billing rate.
619
+ # @return [Integer]
620
+ #
621
+ # @!attribute [rw] master_public_dns_name
622
+ # The public DNS name of the master EC2 instance.
623
+ # @return [String]
624
+ #
625
+ # @!attribute [rw] configurations
626
+ # <note markdown="1"> Amazon EMR releases 4.x or later.
627
+ #
628
+ # </note>
629
+ #
630
+ # The list of Configurations supplied to the EMR cluster.
631
+ # @return [Array<Types::Configuration>]
632
+ #
633
+ # @!attribute [rw] security_configuration
634
+ # The name of the security configuration applied to the cluster.
635
+ # @return [String]
636
+ #
637
+ # @!attribute [rw] auto_scaling_role
638
+ # An IAM role for automatic scaling policies. The default role is
639
+ # `EMR_AutoScaling_DefaultRole`. The IAM role provides permissions
640
+ # that the automatic scaling feature requires to launch and terminate
641
+ # EC2 instances in an instance group.
642
+ # @return [String]
643
+ #
644
+ # @!attribute [rw] scale_down_behavior
645
+ # The way that individual Amazon EC2 instances terminate when an
646
+ # automatic scale-in activity occurs or an instance group is resized.
647
+ # `TERMINATE_AT_INSTANCE_HOUR` indicates that Amazon EMR terminates
648
+ # nodes at the instance-hour boundary, regardless of when the request
649
+ # to terminate the instance was submitted. This option is only
650
+ # available with Amazon EMR 5.1.0 and later and is the default for
651
+ # clusters created using that version. `TERMINATE_AT_TASK_COMPLETION`
652
+ # indicates that Amazon EMR blacklists and drains tasks from nodes
653
+ # before terminating the Amazon EC2 instances, regardless of the
654
+ # instance-hour boundary. With either behavior, Amazon EMR removes the
655
+ # least active nodes first and blocks instance termination if it could
656
+ # lead to HDFS corruption. `TERMINATE_AT_TASK_COMPLETION` is available
657
+ # only in Amazon EMR version 4.1.0 and later, and is the default for
658
+ # versions of Amazon EMR earlier than 5.1.0.
659
+ # @return [String]
660
+ class Cluster < Struct.new(
661
+ :id,
662
+ :name,
663
+ :status,
664
+ :ec2_instance_attributes,
665
+ :log_uri,
666
+ :requested_ami_version,
667
+ :running_ami_version,
668
+ :release_label,
669
+ :auto_terminate,
670
+ :termination_protected,
671
+ :visible_to_all_users,
672
+ :applications,
673
+ :tags,
674
+ :service_role,
675
+ :normalized_instance_hours,
676
+ :master_public_dns_name,
677
+ :configurations,
678
+ :security_configuration,
679
+ :auto_scaling_role,
680
+ :scale_down_behavior)
681
+ include Aws::Structure
682
+ end
683
+
684
+ # The reason that the cluster changed to its current state.
685
+ # @!attribute [rw] code
686
+ # The programmatic code for the state change reason.
687
+ # @return [String]
688
+ #
689
+ # @!attribute [rw] message
690
+ # The descriptive message for the state change reason.
691
+ # @return [String]
692
+ class ClusterStateChangeReason < Struct.new(
693
+ :code,
694
+ :message)
695
+ include Aws::Structure
696
+ end
697
+
698
+ # The detailed status of the cluster.
699
+ # @!attribute [rw] state
700
+ # The current state of the cluster.
701
+ # @return [String]
702
+ #
703
+ # @!attribute [rw] state_change_reason
704
+ # The reason for the cluster status change.
705
+ # @return [Types::ClusterStateChangeReason]
706
+ #
707
+ # @!attribute [rw] timeline
708
+ # A timeline that represents the status of a cluster over the lifetime
709
+ # of the cluster.
710
+ # @return [Types::ClusterTimeline]
711
+ class ClusterStatus < Struct.new(
712
+ :state,
713
+ :state_change_reason,
714
+ :timeline)
715
+ include Aws::Structure
716
+ end
717
+
718
+ # The summary description of the cluster.
719
+ # @!attribute [rw] id
720
+ # The unique identifier for the cluster.
721
+ # @return [String]
722
+ #
723
+ # @!attribute [rw] name
724
+ # The name of the cluster.
725
+ # @return [String]
726
+ #
727
+ # @!attribute [rw] status
728
+ # The details about the current status of the cluster.
729
+ # @return [Types::ClusterStatus]
730
+ #
731
+ # @!attribute [rw] normalized_instance_hours
732
+ # An approximation of the cost of the job flow, represented in
733
+ # m1.small/hours. This value is incremented one time for every hour an
734
+ # m1.small instance runs. Larger instances are weighted more, so an
735
+ # EC2 instance that is roughly four times more expensive would result
736
+ # in the normalized instance hours being incremented by four. This
737
+ # result is only an approximation and does not reflect the actual
738
+ # billing rate.
739
+ # @return [Integer]
740
+ class ClusterSummary < Struct.new(
741
+ :id,
742
+ :name,
743
+ :status,
744
+ :normalized_instance_hours)
745
+ include Aws::Structure
746
+ end
747
+
748
+ # Represents the timeline of the cluster's lifecycle.
749
+ # @!attribute [rw] creation_date_time
750
+ # The creation date and time of the cluster.
751
+ # @return [Time]
752
+ #
753
+ # @!attribute [rw] ready_date_time
754
+ # The date and time when the cluster was ready to execute steps.
755
+ # @return [Time]
756
+ #
757
+ # @!attribute [rw] end_date_time
758
+ # The date and time when the cluster was terminated.
759
+ # @return [Time]
760
+ class ClusterTimeline < Struct.new(
761
+ :creation_date_time,
762
+ :ready_date_time,
763
+ :end_date_time)
764
+ include Aws::Structure
765
+ end
766
+
767
+ # An entity describing an executable that runs on a cluster.
768
+ # @!attribute [rw] name
769
+ # The name of the command.
770
+ # @return [String]
771
+ #
772
+ # @!attribute [rw] script_path
773
+ # The Amazon S3 location of the command script.
774
+ # @return [String]
775
+ #
776
+ # @!attribute [rw] args
777
+ # Arguments for Amazon EMR to pass to the command for execution.
778
+ # @return [Array<String>]
779
+ class Command < Struct.new(
780
+ :name,
781
+ :script_path,
782
+ :args)
783
+ include Aws::Structure
784
+ end
785
+
786
+ # <note markdown="1"> Amazon EMR releases 4.x or later.
787
+ #
788
+ # </note>
789
+ #
790
+ # Specifies a hardware and software configuration of the EMR cluster.
791
+ # This includes configurations for applications and software bundled
792
+ # with Amazon EMR. The Configuration object is a JSON object which is
793
+ # defined by a classification and a set of properties. Configurations
794
+ # can be nested, so a configuration may have its own Configuration
795
+ # objects listed.
796
+ # @note When making an API call, pass Configuration
797
+ # data as a hash:
798
+ #
799
+ # {
800
+ # classification: "String",
801
+ # configurations: [
802
+ # {
803
+ # classification: "String",
804
+ # configurations: {
805
+ # # recursive ConfigurationList
806
+ # },
807
+ # properties: {
808
+ # "String" => "String",
809
+ # },
810
+ # },
811
+ # ],
812
+ # properties: {
813
+ # "String" => "String",
814
+ # },
815
+ # }
816
+ # @!attribute [rw] classification
817
+ # The classification of a configuration. For more information see,
818
+ # [Amazon EMR Configurations][1].
819
+ #
820
+ #
821
+ #
822
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/API/EmrConfigurations.html
823
+ # @return [String]
824
+ #
825
+ # @!attribute [rw] configurations
826
+ # A list of configurations you apply to this configuration object.
827
+ # @return [Array<Types::Configuration>]
828
+ #
829
+ # @!attribute [rw] properties
830
+ # A set of properties supplied to the Configuration object.
831
+ # @return [Hash<String,String>]
832
+ class Configuration < Struct.new(
833
+ :classification,
834
+ :configurations,
835
+ :properties)
836
+ include Aws::Structure
837
+ end
838
+
839
+ # @note When making an API call, pass CreateSecurityConfigurationInput
840
+ # data as a hash:
841
+ #
842
+ # {
843
+ # name: "XmlString", # required
844
+ # security_configuration: "String", # required
845
+ # }
846
+ # @!attribute [rw] name
847
+ # The name of the security configuration.
848
+ # @return [String]
849
+ #
850
+ # @!attribute [rw] security_configuration
851
+ # The security configuration details in JSON format.
852
+ # @return [String]
853
+ class CreateSecurityConfigurationInput < Struct.new(
854
+ :name,
855
+ :security_configuration)
856
+ include Aws::Structure
857
+ end
858
+
859
+ # @!attribute [rw] name
860
+ # The name of the security configuration.
861
+ # @return [String]
862
+ #
863
+ # @!attribute [rw] creation_date_time
864
+ # The date and time the security configuration was created.
865
+ # @return [Time]
866
+ class CreateSecurityConfigurationOutput < Struct.new(
867
+ :name,
868
+ :creation_date_time)
869
+ include Aws::Structure
870
+ end
871
+
872
+ # @note When making an API call, pass DeleteSecurityConfigurationInput
873
+ # data as a hash:
874
+ #
875
+ # {
876
+ # name: "XmlString", # required
877
+ # }
878
+ # @!attribute [rw] name
879
+ # The name of the security configuration.
880
+ # @return [String]
881
+ class DeleteSecurityConfigurationInput < Struct.new(
882
+ :name)
883
+ include Aws::Structure
884
+ end
885
+
886
+ class DeleteSecurityConfigurationOutput < Aws::EmptyStructure; end
887
+
888
+ # This input determines which cluster to describe.
889
+ # @note When making an API call, pass DescribeClusterInput
890
+ # data as a hash:
891
+ #
892
+ # {
893
+ # cluster_id: "ClusterId", # required
894
+ # }
895
+ # @!attribute [rw] cluster_id
896
+ # The identifier of the cluster to describe.
897
+ # @return [String]
898
+ class DescribeClusterInput < Struct.new(
899
+ :cluster_id)
900
+ include Aws::Structure
901
+ end
902
+
903
+ # This output contains the description of the cluster.
904
+ # @!attribute [rw] cluster
905
+ # This output contains the details for the requested cluster.
906
+ # @return [Types::Cluster]
907
+ class DescribeClusterOutput < Struct.new(
908
+ :cluster)
909
+ include Aws::Structure
910
+ end
911
+
912
+ # The input for the DescribeJobFlows operation.
913
+ # @note When making an API call, pass DescribeJobFlowsInput
914
+ # data as a hash:
915
+ #
916
+ # {
917
+ # created_after: Time.now,
918
+ # created_before: Time.now,
919
+ # job_flow_ids: ["XmlString"],
920
+ # job_flow_states: ["STARTING"], # accepts STARTING, BOOTSTRAPPING, RUNNING, WAITING, SHUTTING_DOWN, TERMINATED, COMPLETED, FAILED
921
+ # }
922
+ # @!attribute [rw] created_after
923
+ # Return only job flows created after this date and time.
924
+ # @return [Time]
925
+ #
926
+ # @!attribute [rw] created_before
927
+ # Return only job flows created before this date and time.
928
+ # @return [Time]
929
+ #
930
+ # @!attribute [rw] job_flow_ids
931
+ # Return only job flows whose job flow ID is contained in this list.
932
+ # @return [Array<String>]
933
+ #
934
+ # @!attribute [rw] job_flow_states
935
+ # Return only job flows whose state is contained in this list.
936
+ # @return [Array<String>]
937
+ class DescribeJobFlowsInput < Struct.new(
938
+ :created_after,
939
+ :created_before,
940
+ :job_flow_ids,
941
+ :job_flow_states)
942
+ include Aws::Structure
943
+ end
944
+
945
+ # The output for the DescribeJobFlows operation.
946
+ # @!attribute [rw] job_flows
947
+ # A list of job flows matching the parameters supplied.
948
+ # @return [Array<Types::JobFlowDetail>]
949
+ class DescribeJobFlowsOutput < Struct.new(
950
+ :job_flows)
951
+ include Aws::Structure
952
+ end
953
+
954
+ # @note When making an API call, pass DescribeSecurityConfigurationInput
955
+ # data as a hash:
956
+ #
957
+ # {
958
+ # name: "XmlString", # required
959
+ # }
960
+ # @!attribute [rw] name
961
+ # The name of the security configuration.
962
+ # @return [String]
963
+ class DescribeSecurityConfigurationInput < Struct.new(
964
+ :name)
965
+ include Aws::Structure
966
+ end
967
+
968
+ # @!attribute [rw] name
969
+ # The name of the security configuration.
970
+ # @return [String]
971
+ #
972
+ # @!attribute [rw] security_configuration
973
+ # The security configuration details in JSON format.
974
+ # @return [String]
975
+ #
976
+ # @!attribute [rw] creation_date_time
977
+ # The date and time the security configuration was created
978
+ # @return [Time]
979
+ class DescribeSecurityConfigurationOutput < Struct.new(
980
+ :name,
981
+ :security_configuration,
982
+ :creation_date_time)
983
+ include Aws::Structure
984
+ end
985
+
986
+ # This input determines which step to describe.
987
+ # @note When making an API call, pass DescribeStepInput
988
+ # data as a hash:
989
+ #
990
+ # {
991
+ # cluster_id: "ClusterId", # required
992
+ # step_id: "StepId", # required
993
+ # }
994
+ # @!attribute [rw] cluster_id
995
+ # The identifier of the cluster with steps to describe.
996
+ # @return [String]
997
+ #
998
+ # @!attribute [rw] step_id
999
+ # The identifier of the step to describe.
1000
+ # @return [String]
1001
+ class DescribeStepInput < Struct.new(
1002
+ :cluster_id,
1003
+ :step_id)
1004
+ include Aws::Structure
1005
+ end
1006
+
1007
+ # This output contains the description of the cluster step.
1008
+ # @!attribute [rw] step
1009
+ # The step details for the requested step identifier.
1010
+ # @return [Types::Step]
1011
+ class DescribeStepOutput < Struct.new(
1012
+ :step)
1013
+ include Aws::Structure
1014
+ end
1015
+
1016
+ # Configuration of requested EBS block device associated with the
1017
+ # instance group.
1018
+ # @!attribute [rw] volume_specification
1019
+ # EBS volume specifications such as volume type, IOPS, and size (GiB)
1020
+ # that will be requested for the EBS volume attached to an EC2
1021
+ # instance in the cluster.
1022
+ # @return [Types::VolumeSpecification]
1023
+ #
1024
+ # @!attribute [rw] device
1025
+ # The device name that is exposed to the instance, such as /dev/sdh.
1026
+ # @return [String]
1027
+ class EbsBlockDevice < Struct.new(
1028
+ :volume_specification,
1029
+ :device)
1030
+ include Aws::Structure
1031
+ end
1032
+
1033
+ # Configuration of requested EBS block device associated with the
1034
+ # instance group with count of volumes that will be associated to every
1035
+ # instance.
1036
+ # @note When making an API call, pass EbsBlockDeviceConfig
1037
+ # data as a hash:
1038
+ #
1039
+ # {
1040
+ # volume_specification: { # required
1041
+ # volume_type: "String", # required
1042
+ # iops: 1,
1043
+ # size_in_gb: 1, # required
1044
+ # },
1045
+ # volumes_per_instance: 1,
1046
+ # }
1047
+ # @!attribute [rw] volume_specification
1048
+ # EBS volume specifications such as volume type, IOPS, and size (GiB)
1049
+ # that will be requested for the EBS volume attached to an EC2
1050
+ # instance in the cluster.
1051
+ # @return [Types::VolumeSpecification]
1052
+ #
1053
+ # @!attribute [rw] volumes_per_instance
1054
+ # Number of EBS volumes with a specific volume configuration that will
1055
+ # be associated with every instance in the instance group
1056
+ # @return [Integer]
1057
+ class EbsBlockDeviceConfig < Struct.new(
1058
+ :volume_specification,
1059
+ :volumes_per_instance)
1060
+ include Aws::Structure
1061
+ end
1062
+
1063
+ # The Amazon EBS configuration of a cluster instance.
1064
+ # @note When making an API call, pass EbsConfiguration
1065
+ # data as a hash:
1066
+ #
1067
+ # {
1068
+ # ebs_block_device_configs: [
1069
+ # {
1070
+ # volume_specification: { # required
1071
+ # volume_type: "String", # required
1072
+ # iops: 1,
1073
+ # size_in_gb: 1, # required
1074
+ # },
1075
+ # volumes_per_instance: 1,
1076
+ # },
1077
+ # ],
1078
+ # ebs_optimized: false,
1079
+ # }
1080
+ # @!attribute [rw] ebs_block_device_configs
1081
+ # An array of Amazon EBS volume specifications attached to a cluster
1082
+ # instance.
1083
+ # @return [Array<Types::EbsBlockDeviceConfig>]
1084
+ #
1085
+ # @!attribute [rw] ebs_optimized
1086
+ # Indicates whether an Amazon EBS volume is EBS-optimized.
1087
+ # @return [Boolean]
1088
+ class EbsConfiguration < Struct.new(
1089
+ :ebs_block_device_configs,
1090
+ :ebs_optimized)
1091
+ include Aws::Structure
1092
+ end
1093
+
1094
+ # EBS block device that's attached to an EC2 instance.
1095
+ # @!attribute [rw] device
1096
+ # The device name that is exposed to the instance, such as /dev/sdh.
1097
+ # @return [String]
1098
+ #
1099
+ # @!attribute [rw] volume_id
1100
+ # The volume identifier of the EBS volume.
1101
+ # @return [String]
1102
+ class EbsVolume < Struct.new(
1103
+ :device,
1104
+ :volume_id)
1105
+ include Aws::Structure
1106
+ end
1107
+
1108
+ # Provides information about the EC2 instances in a cluster grouped by
1109
+ # category. For example, key name, subnet ID, IAM instance profile, and
1110
+ # so on.
1111
+ # @!attribute [rw] ec2_key_name
1112
+ # The name of the Amazon EC2 key pair to use when connecting with SSH
1113
+ # into the master node as a user named "hadoop".
1114
+ # @return [String]
1115
+ #
1116
+ # @!attribute [rw] ec2_subnet_id
1117
+ # To launch the job flow in Amazon VPC, set this parameter to the
1118
+ # identifier of the Amazon VPC subnet where you want the job flow to
1119
+ # launch. If you do not specify this value, the job flow is launched
1120
+ # in the normal AWS cloud, outside of a VPC.
1121
+ #
1122
+ # Amazon VPC currently does not support cluster compute quadruple
1123
+ # extra large (cc1.4xlarge) instances. Thus, you cannot specify the
1124
+ # cc1.4xlarge instance type for nodes of a job flow launched in a VPC.
1125
+ # @return [String]
1126
+ #
1127
+ # @!attribute [rw] ec2_availability_zone
1128
+ # The Availability Zone in which the cluster will run.
1129
+ # @return [String]
1130
+ #
1131
+ # @!attribute [rw] iam_instance_profile
1132
+ # The IAM role that was specified when the job flow was launched. The
1133
+ # EC2 instances of the job flow assume this role.
1134
+ # @return [String]
1135
+ #
1136
+ # @!attribute [rw] emr_managed_master_security_group
1137
+ # The identifier of the Amazon EC2 security group for the master node.
1138
+ # @return [String]
1139
+ #
1140
+ # @!attribute [rw] emr_managed_slave_security_group
1141
+ # The identifier of the Amazon EC2 security group for the slave nodes.
1142
+ # @return [String]
1143
+ #
1144
+ # @!attribute [rw] service_access_security_group
1145
+ # The identifier of the Amazon EC2 security group for the Amazon EMR
1146
+ # service to access clusters in VPC private subnets.
1147
+ # @return [String]
1148
+ #
1149
+ # @!attribute [rw] additional_master_security_groups
1150
+ # A list of additional Amazon EC2 security group IDs for the master
1151
+ # node.
1152
+ # @return [Array<String>]
1153
+ #
1154
+ # @!attribute [rw] additional_slave_security_groups
1155
+ # A list of additional Amazon EC2 security group IDs for the slave
1156
+ # nodes.
1157
+ # @return [Array<String>]
1158
+ class Ec2InstanceAttributes < Struct.new(
1159
+ :ec2_key_name,
1160
+ :ec2_subnet_id,
1161
+ :ec2_availability_zone,
1162
+ :iam_instance_profile,
1163
+ :emr_managed_master_security_group,
1164
+ :emr_managed_slave_security_group,
1165
+ :service_access_security_group,
1166
+ :additional_master_security_groups,
1167
+ :additional_slave_security_groups)
1168
+ include Aws::Structure
1169
+ end
1170
+
1171
+ # The details of the step failure. The service attempts to detect the
1172
+ # root cause for many common failures.
1173
+ # @!attribute [rw] reason
1174
+ # The reason for the step failure. In the case where the service
1175
+ # cannot successfully determine the root cause of the failure, it
1176
+ # returns "Unknown Error" as a reason.
1177
+ # @return [String]
1178
+ #
1179
+ # @!attribute [rw] message
1180
+ # The descriptive message including the error the EMR service has
1181
+ # identified as the cause of step failure. This is text from an error
1182
+ # log that describes the root cause of the failure.
1183
+ # @return [String]
1184
+ #
1185
+ # @!attribute [rw] log_file
1186
+ # The path to the log file where the step failure root cause was
1187
+ # originally recorded.
1188
+ # @return [String]
1189
+ class FailureDetails < Struct.new(
1190
+ :reason,
1191
+ :message,
1192
+ :log_file)
1193
+ include Aws::Structure
1194
+ end
1195
+
1196
+ # A job flow step consisting of a JAR file whose main function will be
1197
+ # executed. The main function submits a job for Hadoop to execute and
1198
+ # waits for the job to finish or fail.
1199
+ # @note When making an API call, pass HadoopJarStepConfig
1200
+ # data as a hash:
1201
+ #
1202
+ # {
1203
+ # properties: [
1204
+ # {
1205
+ # key: "XmlString",
1206
+ # value: "XmlString",
1207
+ # },
1208
+ # ],
1209
+ # jar: "XmlString", # required
1210
+ # main_class: "XmlString",
1211
+ # args: ["XmlString"],
1212
+ # }
1213
+ # @!attribute [rw] properties
1214
+ # A list of Java properties that are set when the step runs. You can
1215
+ # use these properties to pass key value pairs to your main function.
1216
+ # @return [Array<Types::KeyValue>]
1217
+ #
1218
+ # @!attribute [rw] jar
1219
+ # A path to a JAR file run during the step.
1220
+ # @return [String]
1221
+ #
1222
+ # @!attribute [rw] main_class
1223
+ # The name of the main class in the specified Java file. If not
1224
+ # specified, the JAR file should specify a Main-Class in its manifest
1225
+ # file.
1226
+ # @return [String]
1227
+ #
1228
+ # @!attribute [rw] args
1229
+ # A list of command line arguments passed to the JAR file's main
1230
+ # function when executed.
1231
+ # @return [Array<String>]
1232
+ class HadoopJarStepConfig < Struct.new(
1233
+ :properties,
1234
+ :jar,
1235
+ :main_class,
1236
+ :args)
1237
+ include Aws::Structure
1238
+ end
1239
+
1240
+ # A cluster step consisting of a JAR file whose main function will be
1241
+ # executed. The main function submits a job for Hadoop to execute and
1242
+ # waits for the job to finish or fail.
1243
+ # @!attribute [rw] jar
1244
+ # The path to the JAR file that runs during the step.
1245
+ # @return [String]
1246
+ #
1247
+ # @!attribute [rw] properties
1248
+ # The list of Java properties that are set when the step runs. You can
1249
+ # use these properties to pass key value pairs to your main function.
1250
+ # @return [Hash<String,String>]
1251
+ #
1252
+ # @!attribute [rw] main_class
1253
+ # The name of the main class in the specified Java file. If not
1254
+ # specified, the JAR file should specify a main class in its manifest
1255
+ # file.
1256
+ # @return [String]
1257
+ #
1258
+ # @!attribute [rw] args
1259
+ # The list of command line arguments to pass to the JAR file's main
1260
+ # function for execution.
1261
+ # @return [Array<String>]
1262
+ class HadoopStepConfig < Struct.new(
1263
+ :jar,
1264
+ :properties,
1265
+ :main_class,
1266
+ :args)
1267
+ include Aws::Structure
1268
+ end
1269
+
1270
+ # Represents an EC2 instance provisioned as part of cluster.
1271
+ # @!attribute [rw] id
1272
+ # The unique identifier for the instance in Amazon EMR.
1273
+ # @return [String]
1274
+ #
1275
+ # @!attribute [rw] ec2_instance_id
1276
+ # The unique identifier of the instance in Amazon EC2.
1277
+ # @return [String]
1278
+ #
1279
+ # @!attribute [rw] public_dns_name
1280
+ # The public DNS name of the instance.
1281
+ # @return [String]
1282
+ #
1283
+ # @!attribute [rw] public_ip_address
1284
+ # The public IP address of the instance.
1285
+ # @return [String]
1286
+ #
1287
+ # @!attribute [rw] private_dns_name
1288
+ # The private DNS name of the instance.
1289
+ # @return [String]
1290
+ #
1291
+ # @!attribute [rw] private_ip_address
1292
+ # The private IP address of the instance.
1293
+ # @return [String]
1294
+ #
1295
+ # @!attribute [rw] status
1296
+ # The current status of the instance.
1297
+ # @return [Types::InstanceStatus]
1298
+ #
1299
+ # @!attribute [rw] instance_group_id
1300
+ # The identifier of the instance group to which this instance belongs.
1301
+ # @return [String]
1302
+ #
1303
+ # @!attribute [rw] ebs_volumes
1304
+ # The list of EBS volumes that are attached to this instance.
1305
+ # @return [Array<Types::EbsVolume>]
1306
+ class Instance < Struct.new(
1307
+ :id,
1308
+ :ec2_instance_id,
1309
+ :public_dns_name,
1310
+ :public_ip_address,
1311
+ :private_dns_name,
1312
+ :private_ip_address,
1313
+ :status,
1314
+ :instance_group_id,
1315
+ :ebs_volumes)
1316
+ include Aws::Structure
1317
+ end
1318
+
1319
+ # This entity represents an instance group, which is a group of
1320
+ # instances that have common purpose. For example, CORE instance group
1321
+ # is used for HDFS.
1322
+ # @!attribute [rw] id
1323
+ # The identifier of the instance group.
1324
+ # @return [String]
1325
+ #
1326
+ # @!attribute [rw] name
1327
+ # The name of the instance group.
1328
+ # @return [String]
1329
+ #
1330
+ # @!attribute [rw] market
1331
+ # The marketplace to provision instances for this group. Valid values
1332
+ # are ON\_DEMAND or SPOT.
1333
+ # @return [String]
1334
+ #
1335
+ # @!attribute [rw] instance_group_type
1336
+ # The type of the instance group. Valid values are MASTER, CORE or
1337
+ # TASK.
1338
+ # @return [String]
1339
+ #
1340
+ # @!attribute [rw] bid_price
1341
+ # The bid price for each EC2 instance in the instance group when
1342
+ # launching nodes as Spot Instances, expressed in USD.
1343
+ # @return [String]
1344
+ #
1345
+ # @!attribute [rw] instance_type
1346
+ # The EC2 instance type for all instances in the instance group.
1347
+ # @return [String]
1348
+ #
1349
+ # @!attribute [rw] requested_instance_count
1350
+ # The target number of instances for the instance group.
1351
+ # @return [Integer]
1352
+ #
1353
+ # @!attribute [rw] running_instance_count
1354
+ # The number of instances currently running in this instance group.
1355
+ # @return [Integer]
1356
+ #
1357
+ # @!attribute [rw] status
1358
+ # The current status of the instance group.
1359
+ # @return [Types::InstanceGroupStatus]
1360
+ #
1361
+ # @!attribute [rw] configurations
1362
+ # <note markdown="1"> Amazon EMR releases 4.x or later.
1363
+ #
1364
+ # </note>
1365
+ #
1366
+ # The list of configurations supplied for an EMR cluster instance
1367
+ # group. You can specify a separate configuration for each instance
1368
+ # group (master, core, and task).
1369
+ # @return [Array<Types::Configuration>]
1370
+ #
1371
+ # @!attribute [rw] ebs_block_devices
1372
+ # The EBS block devices that are mapped to this instance group.
1373
+ # @return [Array<Types::EbsBlockDevice>]
1374
+ #
1375
+ # @!attribute [rw] ebs_optimized
1376
+ # If the instance group is EBS-optimized. An Amazon EBS-optimized
1377
+ # instance uses an optimized configuration stack and provides
1378
+ # additional, dedicated capacity for Amazon EBS I/O.
1379
+ # @return [Boolean]
1380
+ #
1381
+ # @!attribute [rw] shrink_policy
1382
+ # Policy for customizing shrink operations.
1383
+ # @return [Types::ShrinkPolicy]
1384
+ #
1385
+ # @!attribute [rw] auto_scaling_policy
1386
+ # An automatic scaling policy for a core instance group or task
1387
+ # instance group in an Amazon EMR cluster. The automatic scaling
1388
+ # policy defines how an instance group dynamically adds and terminates
1389
+ # EC2 instances in response to the value of a CloudWatch metric. See
1390
+ # PutAutoScalingPolicy.
1391
+ # @return [Types::AutoScalingPolicyDescription]
1392
+ class InstanceGroup < Struct.new(
1393
+ :id,
1394
+ :name,
1395
+ :market,
1396
+ :instance_group_type,
1397
+ :bid_price,
1398
+ :instance_type,
1399
+ :requested_instance_count,
1400
+ :running_instance_count,
1401
+ :status,
1402
+ :configurations,
1403
+ :ebs_block_devices,
1404
+ :ebs_optimized,
1405
+ :shrink_policy,
1406
+ :auto_scaling_policy)
1407
+ include Aws::Structure
1408
+ end
1409
+
1410
+ # Configuration defining a new instance group.
1411
+ # @note When making an API call, pass InstanceGroupConfig
1412
+ # data as a hash:
1413
+ #
1414
+ # {
1415
+ # name: "XmlStringMaxLen256",
1416
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
1417
+ # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK
1418
+ # bid_price: "XmlStringMaxLen256",
1419
+ # instance_type: "InstanceType", # required
1420
+ # instance_count: 1, # required
1421
+ # configurations: [
1422
+ # {
1423
+ # classification: "String",
1424
+ # configurations: {
1425
+ # # recursive ConfigurationList
1426
+ # },
1427
+ # properties: {
1428
+ # "String" => "String",
1429
+ # },
1430
+ # },
1431
+ # ],
1432
+ # ebs_configuration: {
1433
+ # ebs_block_device_configs: [
1434
+ # {
1435
+ # volume_specification: { # required
1436
+ # volume_type: "String", # required
1437
+ # iops: 1,
1438
+ # size_in_gb: 1, # required
1439
+ # },
1440
+ # volumes_per_instance: 1,
1441
+ # },
1442
+ # ],
1443
+ # ebs_optimized: false,
1444
+ # },
1445
+ # auto_scaling_policy: {
1446
+ # constraints: { # required
1447
+ # min_capacity: 1, # required
1448
+ # max_capacity: 1, # required
1449
+ # },
1450
+ # rules: [ # required
1451
+ # {
1452
+ # name: "String", # required
1453
+ # description: "String",
1454
+ # action: { # required
1455
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
1456
+ # simple_scaling_policy_configuration: { # required
1457
+ # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
1458
+ # scaling_adjustment: 1, # required
1459
+ # cool_down: 1,
1460
+ # },
1461
+ # },
1462
+ # trigger: { # required
1463
+ # cloud_watch_alarm_definition: { # required
1464
+ # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
1465
+ # evaluation_periods: 1,
1466
+ # metric_name: "String", # required
1467
+ # namespace: "String",
1468
+ # period: 1, # required
1469
+ # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
1470
+ # threshold: 1.0, # required
1471
+ # 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
1472
+ # dimensions: [
1473
+ # {
1474
+ # key: "String",
1475
+ # value: "String",
1476
+ # },
1477
+ # ],
1478
+ # },
1479
+ # },
1480
+ # },
1481
+ # ],
1482
+ # },
1483
+ # }
1484
+ # @!attribute [rw] name
1485
+ # Friendly name given to the instance group.
1486
+ # @return [String]
1487
+ #
1488
+ # @!attribute [rw] market
1489
+ # Market type of the EC2 instances used to create a cluster node.
1490
+ # @return [String]
1491
+ #
1492
+ # @!attribute [rw] instance_role
1493
+ # The role of the instance group in the cluster.
1494
+ # @return [String]
1495
+ #
1496
+ # @!attribute [rw] bid_price
1497
+ # Bid price for each EC2 instance in the instance group when launching
1498
+ # nodes as Spot Instances, expressed in USD.
1499
+ # @return [String]
1500
+ #
1501
+ # @!attribute [rw] instance_type
1502
+ # The EC2 instance type for all instances in the instance group.
1503
+ # @return [String]
1504
+ #
1505
+ # @!attribute [rw] instance_count
1506
+ # Target number of instances for the instance group.
1507
+ # @return [Integer]
1508
+ #
1509
+ # @!attribute [rw] configurations
1510
+ # <note markdown="1"> Amazon EMR releases 4.x or later.
1511
+ #
1512
+ # </note>
1513
+ #
1514
+ # The list of configurations supplied for an EMR cluster instance
1515
+ # group. You can specify a separate configuration for each instance
1516
+ # group (master, core, and task).
1517
+ # @return [Array<Types::Configuration>]
1518
+ #
1519
+ # @!attribute [rw] ebs_configuration
1520
+ # EBS configurations that will be attached to each EC2 instance in the
1521
+ # instance group.
1522
+ # @return [Types::EbsConfiguration]
1523
+ #
1524
+ # @!attribute [rw] auto_scaling_policy
1525
+ # An automatic scaling policy for a core instance group or task
1526
+ # instance group in an Amazon EMR cluster. The automatic scaling
1527
+ # policy defines how an instance group dynamically adds and terminates
1528
+ # EC2 instances in response to the value of a CloudWatch metric. See
1529
+ # PutAutoScalingPolicy.
1530
+ # @return [Types::AutoScalingPolicy]
1531
+ class InstanceGroupConfig < Struct.new(
1532
+ :name,
1533
+ :market,
1534
+ :instance_role,
1535
+ :bid_price,
1536
+ :instance_type,
1537
+ :instance_count,
1538
+ :configurations,
1539
+ :ebs_configuration,
1540
+ :auto_scaling_policy)
1541
+ include Aws::Structure
1542
+ end
1543
+
1544
+ # Detailed information about an instance group.
1545
+ # @!attribute [rw] instance_group_id
1546
+ # Unique identifier for the instance group.
1547
+ # @return [String]
1548
+ #
1549
+ # @!attribute [rw] name
1550
+ # Friendly name for the instance group.
1551
+ # @return [String]
1552
+ #
1553
+ # @!attribute [rw] market
1554
+ # Market type of the EC2 instances used to create a cluster node.
1555
+ # @return [String]
1556
+ #
1557
+ # @!attribute [rw] instance_role
1558
+ # Instance group role in the cluster
1559
+ # @return [String]
1560
+ #
1561
+ # @!attribute [rw] bid_price
1562
+ # Bid price for EC2 Instances when launching nodes as Spot Instances,
1563
+ # expressed in USD.
1564
+ # @return [String]
1565
+ #
1566
+ # @!attribute [rw] instance_type
1567
+ # EC2 instance type.
1568
+ # @return [String]
1569
+ #
1570
+ # @!attribute [rw] instance_request_count
1571
+ # Target number of instances to run in the instance group.
1572
+ # @return [Integer]
1573
+ #
1574
+ # @!attribute [rw] instance_running_count
1575
+ # Actual count of running instances.
1576
+ # @return [Integer]
1577
+ #
1578
+ # @!attribute [rw] state
1579
+ # State of instance group. The following values are deprecated:
1580
+ # STARTING, TERMINATED, and FAILED.
1581
+ # @return [String]
1582
+ #
1583
+ # @!attribute [rw] last_state_change_reason
1584
+ # Details regarding the state of the instance group.
1585
+ # @return [String]
1586
+ #
1587
+ # @!attribute [rw] creation_date_time
1588
+ # The date/time the instance group was created.
1589
+ # @return [Time]
1590
+ #
1591
+ # @!attribute [rw] start_date_time
1592
+ # The date/time the instance group was started.
1593
+ # @return [Time]
1594
+ #
1595
+ # @!attribute [rw] ready_date_time
1596
+ # The date/time the instance group was available to the cluster.
1597
+ # @return [Time]
1598
+ #
1599
+ # @!attribute [rw] end_date_time
1600
+ # The date/time the instance group was terminated.
1601
+ # @return [Time]
1602
+ class InstanceGroupDetail < Struct.new(
1603
+ :instance_group_id,
1604
+ :name,
1605
+ :market,
1606
+ :instance_role,
1607
+ :bid_price,
1608
+ :instance_type,
1609
+ :instance_request_count,
1610
+ :instance_running_count,
1611
+ :state,
1612
+ :last_state_change_reason,
1613
+ :creation_date_time,
1614
+ :start_date_time,
1615
+ :ready_date_time,
1616
+ :end_date_time)
1617
+ include Aws::Structure
1618
+ end
1619
+
1620
+ # Modify an instance group size.
1621
+ # @note When making an API call, pass InstanceGroupModifyConfig
1622
+ # data as a hash:
1623
+ #
1624
+ # {
1625
+ # instance_group_id: "XmlStringMaxLen256", # required
1626
+ # instance_count: 1,
1627
+ # ec2_instance_ids_to_terminate: ["InstanceId"],
1628
+ # shrink_policy: {
1629
+ # decommission_timeout: 1,
1630
+ # instance_resize_policy: {
1631
+ # instances_to_terminate: ["InstanceId"],
1632
+ # instances_to_protect: ["InstanceId"],
1633
+ # instance_termination_timeout: 1,
1634
+ # },
1635
+ # },
1636
+ # }
1637
+ # @!attribute [rw] instance_group_id
1638
+ # Unique ID of the instance group to expand or shrink.
1639
+ # @return [String]
1640
+ #
1641
+ # @!attribute [rw] instance_count
1642
+ # Target size for the instance group.
1643
+ # @return [Integer]
1644
+ #
1645
+ # @!attribute [rw] ec2_instance_ids_to_terminate
1646
+ # The EC2 InstanceIds to terminate. After you terminate the instances,
1647
+ # the instance group will not return to its original requested size.
1648
+ # @return [Array<String>]
1649
+ #
1650
+ # @!attribute [rw] shrink_policy
1651
+ # Policy for customizing shrink operations.
1652
+ # @return [Types::ShrinkPolicy]
1653
+ class InstanceGroupModifyConfig < Struct.new(
1654
+ :instance_group_id,
1655
+ :instance_count,
1656
+ :ec2_instance_ids_to_terminate,
1657
+ :shrink_policy)
1658
+ include Aws::Structure
1659
+ end
1660
+
1661
+ # The status change reason details for the instance group.
1662
+ # @!attribute [rw] code
1663
+ # The programmable code for the state change reason.
1664
+ # @return [String]
1665
+ #
1666
+ # @!attribute [rw] message
1667
+ # The status change reason description.
1668
+ # @return [String]
1669
+ class InstanceGroupStateChangeReason < Struct.new(
1670
+ :code,
1671
+ :message)
1672
+ include Aws::Structure
1673
+ end
1674
+
1675
+ # The details of the instance group status.
1676
+ # @!attribute [rw] state
1677
+ # The current state of the instance group.
1678
+ # @return [String]
1679
+ #
1680
+ # @!attribute [rw] state_change_reason
1681
+ # The status change reason details for the instance group.
1682
+ # @return [Types::InstanceGroupStateChangeReason]
1683
+ #
1684
+ # @!attribute [rw] timeline
1685
+ # The timeline of the instance group status over time.
1686
+ # @return [Types::InstanceGroupTimeline]
1687
+ class InstanceGroupStatus < Struct.new(
1688
+ :state,
1689
+ :state_change_reason,
1690
+ :timeline)
1691
+ include Aws::Structure
1692
+ end
1693
+
1694
+ # The timeline of the instance group lifecycle.
1695
+ # @!attribute [rw] creation_date_time
1696
+ # The creation date and time of the instance group.
1697
+ # @return [Time]
1698
+ #
1699
+ # @!attribute [rw] ready_date_time
1700
+ # The date and time when the instance group became ready to perform
1701
+ # tasks.
1702
+ # @return [Time]
1703
+ #
1704
+ # @!attribute [rw] end_date_time
1705
+ # The date and time when the instance group terminated.
1706
+ # @return [Time]
1707
+ class InstanceGroupTimeline < Struct.new(
1708
+ :creation_date_time,
1709
+ :ready_date_time,
1710
+ :end_date_time)
1711
+ include Aws::Structure
1712
+ end
1713
+
1714
+ # Custom policy for requesting termination protection or termination of
1715
+ # specific instances when shrinking an instance group.
1716
+ # @note When making an API call, pass InstanceResizePolicy
1717
+ # data as a hash:
1718
+ #
1719
+ # {
1720
+ # instances_to_terminate: ["InstanceId"],
1721
+ # instances_to_protect: ["InstanceId"],
1722
+ # instance_termination_timeout: 1,
1723
+ # }
1724
+ # @!attribute [rw] instances_to_terminate
1725
+ # Specific list of instances to be terminated when shrinking an
1726
+ # instance group.
1727
+ # @return [Array<String>]
1728
+ #
1729
+ # @!attribute [rw] instances_to_protect
1730
+ # Specific list of instances to be protected when shrinking an
1731
+ # instance group.
1732
+ # @return [Array<String>]
1733
+ #
1734
+ # @!attribute [rw] instance_termination_timeout
1735
+ # Decommissioning timeout override for the specific list of instances
1736
+ # to be terminated.
1737
+ # @return [Integer]
1738
+ class InstanceResizePolicy < Struct.new(
1739
+ :instances_to_terminate,
1740
+ :instances_to_protect,
1741
+ :instance_termination_timeout)
1742
+ include Aws::Structure
1743
+ end
1744
+
1745
+ # The details of the status change reason for the instance.
1746
+ # @!attribute [rw] code
1747
+ # The programmable code for the state change reason.
1748
+ # @return [String]
1749
+ #
1750
+ # @!attribute [rw] message
1751
+ # The status change reason description.
1752
+ # @return [String]
1753
+ class InstanceStateChangeReason < Struct.new(
1754
+ :code,
1755
+ :message)
1756
+ include Aws::Structure
1757
+ end
1758
+
1759
+ # The instance status details.
1760
+ # @!attribute [rw] state
1761
+ # The current state of the instance.
1762
+ # @return [String]
1763
+ #
1764
+ # @!attribute [rw] state_change_reason
1765
+ # The details of the status change reason for the instance.
1766
+ # @return [Types::InstanceStateChangeReason]
1767
+ #
1768
+ # @!attribute [rw] timeline
1769
+ # The timeline of the instance status over time.
1770
+ # @return [Types::InstanceTimeline]
1771
+ class InstanceStatus < Struct.new(
1772
+ :state,
1773
+ :state_change_reason,
1774
+ :timeline)
1775
+ include Aws::Structure
1776
+ end
1777
+
1778
+ # The timeline of the instance lifecycle.
1779
+ # @!attribute [rw] creation_date_time
1780
+ # The creation date and time of the instance.
1781
+ # @return [Time]
1782
+ #
1783
+ # @!attribute [rw] ready_date_time
1784
+ # The date and time when the instance was ready to perform tasks.
1785
+ # @return [Time]
1786
+ #
1787
+ # @!attribute [rw] end_date_time
1788
+ # The date and time when the instance was terminated.
1789
+ # @return [Time]
1790
+ class InstanceTimeline < Struct.new(
1791
+ :creation_date_time,
1792
+ :ready_date_time,
1793
+ :end_date_time)
1794
+ include Aws::Structure
1795
+ end
1796
+
1797
+ # A description of a job flow.
1798
+ # @!attribute [rw] job_flow_id
1799
+ # The job flow identifier.
1800
+ # @return [String]
1801
+ #
1802
+ # @!attribute [rw] name
1803
+ # The name of the job flow.
1804
+ # @return [String]
1805
+ #
1806
+ # @!attribute [rw] log_uri
1807
+ # The location in Amazon S3 where log files for the job are stored.
1808
+ # @return [String]
1809
+ #
1810
+ # @!attribute [rw] ami_version
1811
+ # The version of the AMI used to initialize Amazon EC2 instances in
1812
+ # the job flow. For a list of AMI versions currently supported by
1813
+ # Amazon EMR, see [AMI Versions Supported in EMR][1] in the *Amazon
1814
+ # EMR Developer Guide.*
1815
+ #
1816
+ #
1817
+ #
1818
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/EnvironmentConfig_AMIVersion.html#ami-versions-supported
1819
+ # @return [String]
1820
+ #
1821
+ # @!attribute [rw] execution_status_detail
1822
+ # Describes the execution status of the job flow.
1823
+ # @return [Types::JobFlowExecutionStatusDetail]
1824
+ #
1825
+ # @!attribute [rw] instances
1826
+ # Describes the Amazon EC2 instances of the job flow.
1827
+ # @return [Types::JobFlowInstancesDetail]
1828
+ #
1829
+ # @!attribute [rw] steps
1830
+ # A list of steps run by the job flow.
1831
+ # @return [Array<Types::StepDetail>]
1832
+ #
1833
+ # @!attribute [rw] bootstrap_actions
1834
+ # A list of the bootstrap actions run by the job flow.
1835
+ # @return [Array<Types::BootstrapActionDetail>]
1836
+ #
1837
+ # @!attribute [rw] supported_products
1838
+ # A list of strings set by third party software when the job flow is
1839
+ # launched. If you are not using third party software to manage the
1840
+ # job flow this value is empty.
1841
+ # @return [Array<String>]
1842
+ #
1843
+ # @!attribute [rw] visible_to_all_users
1844
+ # Specifies whether the job flow is visible to all IAM users of the
1845
+ # AWS account associated with the job flow. If this value is set to
1846
+ # `true`, all IAM users of that AWS account can view and (if they have
1847
+ # the proper policy permissions set) manage the job flow. If it is set
1848
+ # to `false`, only the IAM user that created the job flow can view and
1849
+ # manage it. This value can be changed using the SetVisibleToAllUsers
1850
+ # action.
1851
+ # @return [Boolean]
1852
+ #
1853
+ # @!attribute [rw] job_flow_role
1854
+ # The IAM role that was specified when the job flow was launched. The
1855
+ # EC2 instances of the job flow assume this role.
1856
+ # @return [String]
1857
+ #
1858
+ # @!attribute [rw] service_role
1859
+ # The IAM role that will be assumed by the Amazon EMR service to
1860
+ # access AWS resources on your behalf.
1861
+ # @return [String]
1862
+ #
1863
+ # @!attribute [rw] auto_scaling_role
1864
+ # An IAM role for automatic scaling policies. The default role is
1865
+ # `EMR_AutoScaling_DefaultRole`. The IAM role provides a way for the
1866
+ # automatic scaling feature to get the required permissions it needs
1867
+ # to launch and terminate EC2 instances in an instance group.
1868
+ # @return [String]
1869
+ #
1870
+ # @!attribute [rw] scale_down_behavior
1871
+ # The way that individual Amazon EC2 instances terminate when an
1872
+ # automatic scale-in activity occurs or an instance group is resized.
1873
+ # `TERMINATE_AT_INSTANCE_HOUR` indicates that Amazon EMR terminates
1874
+ # nodes at the instance-hour boundary, regardless of when the request
1875
+ # to terminate the instance was submitted. This option is only
1876
+ # available with Amazon EMR 5.1.0 and later and is the default for
1877
+ # clusters created using that version. `TERMINATE_AT_TASK_COMPLETION`
1878
+ # indicates that Amazon EMR blacklists and drains tasks from nodes
1879
+ # before terminating the Amazon EC2 instances, regardless of the
1880
+ # instance-hour boundary. With either behavior, Amazon EMR removes the
1881
+ # least active nodes first and blocks instance termination if it could
1882
+ # lead to HDFS corruption. `TERMINATE_AT_TASK_COMPLETION` available
1883
+ # only in Amazon EMR version 4.1.0 and later, and is the default for
1884
+ # versions of Amazon EMR earlier than 5.1.0.
1885
+ # @return [String]
1886
+ class JobFlowDetail < Struct.new(
1887
+ :job_flow_id,
1888
+ :name,
1889
+ :log_uri,
1890
+ :ami_version,
1891
+ :execution_status_detail,
1892
+ :instances,
1893
+ :steps,
1894
+ :bootstrap_actions,
1895
+ :supported_products,
1896
+ :visible_to_all_users,
1897
+ :job_flow_role,
1898
+ :service_role,
1899
+ :auto_scaling_role,
1900
+ :scale_down_behavior)
1901
+ include Aws::Structure
1902
+ end
1903
+
1904
+ # Describes the status of the job flow.
1905
+ # @!attribute [rw] state
1906
+ # The state of the job flow.
1907
+ # @return [String]
1908
+ #
1909
+ # @!attribute [rw] creation_date_time
1910
+ # The creation date and time of the job flow.
1911
+ # @return [Time]
1912
+ #
1913
+ # @!attribute [rw] start_date_time
1914
+ # The start date and time of the job flow.
1915
+ # @return [Time]
1916
+ #
1917
+ # @!attribute [rw] ready_date_time
1918
+ # The date and time when the job flow was ready to start running
1919
+ # bootstrap actions.
1920
+ # @return [Time]
1921
+ #
1922
+ # @!attribute [rw] end_date_time
1923
+ # The completion date and time of the job flow.
1924
+ # @return [Time]
1925
+ #
1926
+ # @!attribute [rw] last_state_change_reason
1927
+ # Description of the job flow last changed state.
1928
+ # @return [String]
1929
+ class JobFlowExecutionStatusDetail < Struct.new(
1930
+ :state,
1931
+ :creation_date_time,
1932
+ :start_date_time,
1933
+ :ready_date_time,
1934
+ :end_date_time,
1935
+ :last_state_change_reason)
1936
+ include Aws::Structure
1937
+ end
1938
+
1939
+ # A description of the Amazon EC2 instance running the job flow. A valid
1940
+ # JobFlowInstancesConfig must contain at least InstanceGroups, which is
1941
+ # the recommended configuration. However, a valid alternative is to have
1942
+ # MasterInstanceType, SlaveInstanceType, and InstanceCount (all three
1943
+ # must be present).
1944
+ # @note When making an API call, pass JobFlowInstancesConfig
1945
+ # data as a hash:
1946
+ #
1947
+ # {
1948
+ # master_instance_type: "InstanceType",
1949
+ # slave_instance_type: "InstanceType",
1950
+ # instance_count: 1,
1951
+ # instance_groups: [
1952
+ # {
1953
+ # name: "XmlStringMaxLen256",
1954
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
1955
+ # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK
1956
+ # bid_price: "XmlStringMaxLen256",
1957
+ # instance_type: "InstanceType", # required
1958
+ # instance_count: 1, # required
1959
+ # configurations: [
1960
+ # {
1961
+ # classification: "String",
1962
+ # configurations: {
1963
+ # # recursive ConfigurationList
1964
+ # },
1965
+ # properties: {
1966
+ # "String" => "String",
1967
+ # },
1968
+ # },
1969
+ # ],
1970
+ # ebs_configuration: {
1971
+ # ebs_block_device_configs: [
1972
+ # {
1973
+ # volume_specification: { # required
1974
+ # volume_type: "String", # required
1975
+ # iops: 1,
1976
+ # size_in_gb: 1, # required
1977
+ # },
1978
+ # volumes_per_instance: 1,
1979
+ # },
1980
+ # ],
1981
+ # ebs_optimized: false,
1982
+ # },
1983
+ # auto_scaling_policy: {
1984
+ # constraints: { # required
1985
+ # min_capacity: 1, # required
1986
+ # max_capacity: 1, # required
1987
+ # },
1988
+ # rules: [ # required
1989
+ # {
1990
+ # name: "String", # required
1991
+ # description: "String",
1992
+ # action: { # required
1993
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
1994
+ # simple_scaling_policy_configuration: { # required
1995
+ # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
1996
+ # scaling_adjustment: 1, # required
1997
+ # cool_down: 1,
1998
+ # },
1999
+ # },
2000
+ # trigger: { # required
2001
+ # cloud_watch_alarm_definition: { # required
2002
+ # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
2003
+ # evaluation_periods: 1,
2004
+ # metric_name: "String", # required
2005
+ # namespace: "String",
2006
+ # period: 1, # required
2007
+ # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
2008
+ # threshold: 1.0, # required
2009
+ # 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
2010
+ # dimensions: [
2011
+ # {
2012
+ # key: "String",
2013
+ # value: "String",
2014
+ # },
2015
+ # ],
2016
+ # },
2017
+ # },
2018
+ # },
2019
+ # ],
2020
+ # },
2021
+ # },
2022
+ # ],
2023
+ # ec2_key_name: "XmlStringMaxLen256",
2024
+ # placement: {
2025
+ # availability_zone: "XmlString", # required
2026
+ # },
2027
+ # keep_job_flow_alive_when_no_steps: false,
2028
+ # termination_protected: false,
2029
+ # hadoop_version: "XmlStringMaxLen256",
2030
+ # ec2_subnet_id: "XmlStringMaxLen256",
2031
+ # emr_managed_master_security_group: "XmlStringMaxLen256",
2032
+ # emr_managed_slave_security_group: "XmlStringMaxLen256",
2033
+ # service_access_security_group: "XmlStringMaxLen256",
2034
+ # additional_master_security_groups: ["XmlStringMaxLen256"],
2035
+ # additional_slave_security_groups: ["XmlStringMaxLen256"],
2036
+ # }
2037
+ # @!attribute [rw] master_instance_type
2038
+ # The EC2 instance type of the master node.
2039
+ # @return [String]
2040
+ #
2041
+ # @!attribute [rw] slave_instance_type
2042
+ # The EC2 instance type of the slave nodes.
2043
+ # @return [String]
2044
+ #
2045
+ # @!attribute [rw] instance_count
2046
+ # The number of EC2 instances used to execute the job flow.
2047
+ # @return [Integer]
2048
+ #
2049
+ # @!attribute [rw] instance_groups
2050
+ # Configuration for the job flow's instance groups.
2051
+ # @return [Array<Types::InstanceGroupConfig>]
2052
+ #
2053
+ # @!attribute [rw] ec2_key_name
2054
+ # The name of the EC2 key pair that can be used to ssh to the master
2055
+ # node as the user called "hadoop."
2056
+ # @return [String]
2057
+ #
2058
+ # @!attribute [rw] placement
2059
+ # The Availability Zone the job flow will run in.
2060
+ # @return [Types::PlacementType]
2061
+ #
2062
+ # @!attribute [rw] keep_job_flow_alive_when_no_steps
2063
+ # Specifies whether the job flow should be kept alive after completing
2064
+ # all steps.
2065
+ # @return [Boolean]
2066
+ #
2067
+ # @!attribute [rw] termination_protected
2068
+ # Specifies whether to lock the job flow to prevent the Amazon EC2
2069
+ # instances from being terminated by API call, user intervention, or
2070
+ # in the event of a job flow error.
2071
+ # @return [Boolean]
2072
+ #
2073
+ # @!attribute [rw] hadoop_version
2074
+ # The Hadoop version for the job flow. Valid inputs are "0.18"
2075
+ # (deprecated), "0.20" (deprecated), "0.20.205" (deprecated),
2076
+ # "1.0.3", "2.2.0", or "2.4.0". If you do not set this value,
2077
+ # the default of 0.18 is used, unless the AmiVersion parameter is set
2078
+ # in the RunJobFlow call, in which case the default version of Hadoop
2079
+ # for that AMI version is used.
2080
+ # @return [String]
2081
+ #
2082
+ # @!attribute [rw] ec2_subnet_id
2083
+ # To launch the job flow in Amazon Virtual Private Cloud (Amazon VPC),
2084
+ # set this parameter to the identifier of the Amazon VPC subnet where
2085
+ # you want the job flow to launch. If you do not specify this value,
2086
+ # the job flow is launched in the normal Amazon Web Services cloud,
2087
+ # outside of an Amazon VPC.
2088
+ #
2089
+ # Amazon VPC currently does not support cluster compute quadruple
2090
+ # extra large (cc1.4xlarge) instances. Thus you cannot specify the
2091
+ # cc1.4xlarge instance type for nodes of a job flow launched in a
2092
+ # Amazon VPC.
2093
+ # @return [String]
2094
+ #
2095
+ # @!attribute [rw] emr_managed_master_security_group
2096
+ # The identifier of the Amazon EC2 security group for the master node.
2097
+ # @return [String]
2098
+ #
2099
+ # @!attribute [rw] emr_managed_slave_security_group
2100
+ # The identifier of the Amazon EC2 security group for the slave nodes.
2101
+ # @return [String]
2102
+ #
2103
+ # @!attribute [rw] service_access_security_group
2104
+ # The identifier of the Amazon EC2 security group for the Amazon EMR
2105
+ # service to access clusters in VPC private subnets.
2106
+ # @return [String]
2107
+ #
2108
+ # @!attribute [rw] additional_master_security_groups
2109
+ # A list of additional Amazon EC2 security group IDs for the master
2110
+ # node.
2111
+ # @return [Array<String>]
2112
+ #
2113
+ # @!attribute [rw] additional_slave_security_groups
2114
+ # A list of additional Amazon EC2 security group IDs for the slave
2115
+ # nodes.
2116
+ # @return [Array<String>]
2117
+ class JobFlowInstancesConfig < Struct.new(
2118
+ :master_instance_type,
2119
+ :slave_instance_type,
2120
+ :instance_count,
2121
+ :instance_groups,
2122
+ :ec2_key_name,
2123
+ :placement,
2124
+ :keep_job_flow_alive_when_no_steps,
2125
+ :termination_protected,
2126
+ :hadoop_version,
2127
+ :ec2_subnet_id,
2128
+ :emr_managed_master_security_group,
2129
+ :emr_managed_slave_security_group,
2130
+ :service_access_security_group,
2131
+ :additional_master_security_groups,
2132
+ :additional_slave_security_groups)
2133
+ include Aws::Structure
2134
+ end
2135
+
2136
+ # Specify the type of Amazon EC2 instances to run the job flow on.
2137
+ # @!attribute [rw] master_instance_type
2138
+ # The Amazon EC2 master node instance type.
2139
+ # @return [String]
2140
+ #
2141
+ # @!attribute [rw] master_public_dns_name
2142
+ # The DNS name of the master node.
2143
+ # @return [String]
2144
+ #
2145
+ # @!attribute [rw] master_instance_id
2146
+ # The Amazon EC2 instance identifier of the master node.
2147
+ # @return [String]
2148
+ #
2149
+ # @!attribute [rw] slave_instance_type
2150
+ # The Amazon EC2 slave node instance type.
2151
+ # @return [String]
2152
+ #
2153
+ # @!attribute [rw] instance_count
2154
+ # The number of Amazon EC2 instances in the cluster. If the value is
2155
+ # 1, the same instance serves as both the master and slave node. If
2156
+ # the value is greater than 1, one instance is the master node and all
2157
+ # others are slave nodes.
2158
+ # @return [Integer]
2159
+ #
2160
+ # @!attribute [rw] instance_groups
2161
+ # Details about the job flow's instance groups.
2162
+ # @return [Array<Types::InstanceGroupDetail>]
2163
+ #
2164
+ # @!attribute [rw] normalized_instance_hours
2165
+ # An approximation of the cost of the job flow, represented in
2166
+ # m1.small/hours. This value is incremented one time for every hour
2167
+ # that an m1.small runs. Larger instances are weighted more, so an
2168
+ # Amazon EC2 instance that is roughly four times more expensive would
2169
+ # result in the normalized instance hours being incremented by four.
2170
+ # This result is only an approximation and does not reflect the actual
2171
+ # billing rate.
2172
+ # @return [Integer]
2173
+ #
2174
+ # @!attribute [rw] ec2_key_name
2175
+ # The name of an Amazon EC2 key pair that can be used to ssh to the
2176
+ # master node of job flow.
2177
+ # @return [String]
2178
+ #
2179
+ # @!attribute [rw] ec2_subnet_id
2180
+ # For job flows launched within Amazon Virtual Private Cloud, this
2181
+ # value specifies the identifier of the subnet where the job flow was
2182
+ # launched.
2183
+ # @return [String]
2184
+ #
2185
+ # @!attribute [rw] placement
2186
+ # The Amazon EC2 Availability Zone for the job flow.
2187
+ # @return [Types::PlacementType]
2188
+ #
2189
+ # @!attribute [rw] keep_job_flow_alive_when_no_steps
2190
+ # Specifies whether the job flow should terminate after completing all
2191
+ # steps.
2192
+ # @return [Boolean]
2193
+ #
2194
+ # @!attribute [rw] termination_protected
2195
+ # Specifies whether the Amazon EC2 instances in the cluster are
2196
+ # protected from termination by API calls, user intervention, or in
2197
+ # the event of a job flow error.
2198
+ # @return [Boolean]
2199
+ #
2200
+ # @!attribute [rw] hadoop_version
2201
+ # The Hadoop version for the job flow.
2202
+ # @return [String]
2203
+ class JobFlowInstancesDetail < Struct.new(
2204
+ :master_instance_type,
2205
+ :master_public_dns_name,
2206
+ :master_instance_id,
2207
+ :slave_instance_type,
2208
+ :instance_count,
2209
+ :instance_groups,
2210
+ :normalized_instance_hours,
2211
+ :ec2_key_name,
2212
+ :ec2_subnet_id,
2213
+ :placement,
2214
+ :keep_job_flow_alive_when_no_steps,
2215
+ :termination_protected,
2216
+ :hadoop_version)
2217
+ include Aws::Structure
2218
+ end
2219
+
2220
+ # A key value pair.
2221
+ # @note When making an API call, pass KeyValue
2222
+ # data as a hash:
2223
+ #
2224
+ # {
2225
+ # key: "XmlString",
2226
+ # value: "XmlString",
2227
+ # }
2228
+ # @!attribute [rw] key
2229
+ # The unique identifier of a key value pair.
2230
+ # @return [String]
2231
+ #
2232
+ # @!attribute [rw] value
2233
+ # The value part of the identified key.
2234
+ # @return [String]
2235
+ class KeyValue < Struct.new(
2236
+ :key,
2237
+ :value)
2238
+ include Aws::Structure
2239
+ end
2240
+
2241
+ # This input determines which bootstrap actions to retrieve.
2242
+ # @note When making an API call, pass ListBootstrapActionsInput
2243
+ # data as a hash:
2244
+ #
2245
+ # {
2246
+ # cluster_id: "ClusterId", # required
2247
+ # marker: "Marker",
2248
+ # }
2249
+ # @!attribute [rw] cluster_id
2250
+ # The cluster identifier for the bootstrap actions to list.
2251
+ # @return [String]
2252
+ #
2253
+ # @!attribute [rw] marker
2254
+ # The pagination token that indicates the next set of results to
2255
+ # retrieve.
2256
+ # @return [String]
2257
+ class ListBootstrapActionsInput < Struct.new(
2258
+ :cluster_id,
2259
+ :marker)
2260
+ include Aws::Structure
2261
+ end
2262
+
2263
+ # This output contains the bootstrap actions detail.
2264
+ # @!attribute [rw] bootstrap_actions
2265
+ # The bootstrap actions associated with the cluster.
2266
+ # @return [Array<Types::Command>]
2267
+ #
2268
+ # @!attribute [rw] marker
2269
+ # The pagination token that indicates the next set of results to
2270
+ # retrieve.
2271
+ # @return [String]
2272
+ class ListBootstrapActionsOutput < Struct.new(
2273
+ :bootstrap_actions,
2274
+ :marker)
2275
+ include Aws::Structure
2276
+ end
2277
+
2278
+ # This input determines how the ListClusters action filters the list of
2279
+ # clusters that it returns.
2280
+ # @note When making an API call, pass ListClustersInput
2281
+ # data as a hash:
2282
+ #
2283
+ # {
2284
+ # created_after: Time.now,
2285
+ # created_before: Time.now,
2286
+ # cluster_states: ["STARTING"], # accepts STARTING, BOOTSTRAPPING, RUNNING, WAITING, TERMINATING, TERMINATED, TERMINATED_WITH_ERRORS
2287
+ # marker: "Marker",
2288
+ # }
2289
+ # @!attribute [rw] created_after
2290
+ # The creation date and time beginning value filter for listing
2291
+ # clusters.
2292
+ # @return [Time]
2293
+ #
2294
+ # @!attribute [rw] created_before
2295
+ # The creation date and time end value filter for listing clusters.
2296
+ # @return [Time]
2297
+ #
2298
+ # @!attribute [rw] cluster_states
2299
+ # The cluster state filters to apply when listing clusters.
2300
+ # @return [Array<String>]
2301
+ #
2302
+ # @!attribute [rw] marker
2303
+ # The pagination token that indicates the next set of results to
2304
+ # retrieve.
2305
+ # @return [String]
2306
+ class ListClustersInput < Struct.new(
2307
+ :created_after,
2308
+ :created_before,
2309
+ :cluster_states,
2310
+ :marker)
2311
+ include Aws::Structure
2312
+ end
2313
+
2314
+ # This contains a ClusterSummaryList with the cluster details; for
2315
+ # example, the cluster IDs, names, and status.
2316
+ # @!attribute [rw] clusters
2317
+ # The list of clusters for the account based on the given filters.
2318
+ # @return [Array<Types::ClusterSummary>]
2319
+ #
2320
+ # @!attribute [rw] marker
2321
+ # The pagination token that indicates the next set of results to
2322
+ # retrieve.
2323
+ # @return [String]
2324
+ class ListClustersOutput < Struct.new(
2325
+ :clusters,
2326
+ :marker)
2327
+ include Aws::Structure
2328
+ end
2329
+
2330
+ # This input determines which instance groups to retrieve.
2331
+ # @note When making an API call, pass ListInstanceGroupsInput
2332
+ # data as a hash:
2333
+ #
2334
+ # {
2335
+ # cluster_id: "ClusterId", # required
2336
+ # marker: "Marker",
2337
+ # }
2338
+ # @!attribute [rw] cluster_id
2339
+ # The identifier of the cluster for which to list the instance groups.
2340
+ # @return [String]
2341
+ #
2342
+ # @!attribute [rw] marker
2343
+ # The pagination token that indicates the next set of results to
2344
+ # retrieve.
2345
+ # @return [String]
2346
+ class ListInstanceGroupsInput < Struct.new(
2347
+ :cluster_id,
2348
+ :marker)
2349
+ include Aws::Structure
2350
+ end
2351
+
2352
+ # This input determines which instance groups to retrieve.
2353
+ # @!attribute [rw] instance_groups
2354
+ # The list of instance groups for the cluster and given filters.
2355
+ # @return [Array<Types::InstanceGroup>]
2356
+ #
2357
+ # @!attribute [rw] marker
2358
+ # The pagination token that indicates the next set of results to
2359
+ # retrieve.
2360
+ # @return [String]
2361
+ class ListInstanceGroupsOutput < Struct.new(
2362
+ :instance_groups,
2363
+ :marker)
2364
+ include Aws::Structure
2365
+ end
2366
+
2367
+ # This input determines which instances to list.
2368
+ # @note When making an API call, pass ListInstancesInput
2369
+ # data as a hash:
2370
+ #
2371
+ # {
2372
+ # cluster_id: "ClusterId", # required
2373
+ # instance_group_id: "InstanceGroupId",
2374
+ # instance_group_types: ["MASTER"], # accepts MASTER, CORE, TASK
2375
+ # instance_states: ["AWAITING_FULFILLMENT"], # accepts AWAITING_FULFILLMENT, PROVISIONING, BOOTSTRAPPING, RUNNING, TERMINATED
2376
+ # marker: "Marker",
2377
+ # }
2378
+ # @!attribute [rw] cluster_id
2379
+ # The identifier of the cluster for which to list the instances.
2380
+ # @return [String]
2381
+ #
2382
+ # @!attribute [rw] instance_group_id
2383
+ # The identifier of the instance group for which to list the
2384
+ # instances.
2385
+ # @return [String]
2386
+ #
2387
+ # @!attribute [rw] instance_group_types
2388
+ # The type of instance group for which to list the instances.
2389
+ # @return [Array<String>]
2390
+ #
2391
+ # @!attribute [rw] instance_states
2392
+ # A list of instance states that will filter the instances returned
2393
+ # with this request.
2394
+ # @return [Array<String>]
2395
+ #
2396
+ # @!attribute [rw] marker
2397
+ # The pagination token that indicates the next set of results to
2398
+ # retrieve.
2399
+ # @return [String]
2400
+ class ListInstancesInput < Struct.new(
2401
+ :cluster_id,
2402
+ :instance_group_id,
2403
+ :instance_group_types,
2404
+ :instance_states,
2405
+ :marker)
2406
+ include Aws::Structure
2407
+ end
2408
+
2409
+ # This output contains the list of instances.
2410
+ # @!attribute [rw] instances
2411
+ # The list of instances for the cluster and given filters.
2412
+ # @return [Array<Types::Instance>]
2413
+ #
2414
+ # @!attribute [rw] marker
2415
+ # The pagination token that indicates the next set of results to
2416
+ # retrieve.
2417
+ # @return [String]
2418
+ class ListInstancesOutput < Struct.new(
2419
+ :instances,
2420
+ :marker)
2421
+ include Aws::Structure
2422
+ end
2423
+
2424
+ # @note When making an API call, pass ListSecurityConfigurationsInput
2425
+ # data as a hash:
2426
+ #
2427
+ # {
2428
+ # marker: "Marker",
2429
+ # }
2430
+ # @!attribute [rw] marker
2431
+ # The pagination token that indicates the set of results to retrieve.
2432
+ # @return [String]
2433
+ class ListSecurityConfigurationsInput < Struct.new(
2434
+ :marker)
2435
+ include Aws::Structure
2436
+ end
2437
+
2438
+ # @!attribute [rw] security_configurations
2439
+ # The creation date and time, and name, of each security
2440
+ # configuration.
2441
+ # @return [Array<Types::SecurityConfigurationSummary>]
2442
+ #
2443
+ # @!attribute [rw] marker
2444
+ # A pagination token that indicates the next set of results to
2445
+ # retrieve. Include the marker in the next ListSecurityConfiguration
2446
+ # call to retrieve the next page of results, if required.
2447
+ # @return [String]
2448
+ class ListSecurityConfigurationsOutput < Struct.new(
2449
+ :security_configurations,
2450
+ :marker)
2451
+ include Aws::Structure
2452
+ end
2453
+
2454
+ # This input determines which steps to list.
2455
+ # @note When making an API call, pass ListStepsInput
2456
+ # data as a hash:
2457
+ #
2458
+ # {
2459
+ # cluster_id: "ClusterId", # required
2460
+ # step_states: ["PENDING"], # accepts PENDING, CANCEL_PENDING, RUNNING, COMPLETED, CANCELLED, FAILED, INTERRUPTED
2461
+ # step_ids: ["XmlString"],
2462
+ # marker: "Marker",
2463
+ # }
2464
+ # @!attribute [rw] cluster_id
2465
+ # The identifier of the cluster for which to list the steps.
2466
+ # @return [String]
2467
+ #
2468
+ # @!attribute [rw] step_states
2469
+ # The filter to limit the step list based on certain states.
2470
+ # @return [Array<String>]
2471
+ #
2472
+ # @!attribute [rw] step_ids
2473
+ # The filter to limit the step list based on the identifier of the
2474
+ # steps.
2475
+ # @return [Array<String>]
2476
+ #
2477
+ # @!attribute [rw] marker
2478
+ # The pagination token that indicates the next set of results to
2479
+ # retrieve.
2480
+ # @return [String]
2481
+ class ListStepsInput < Struct.new(
2482
+ :cluster_id,
2483
+ :step_states,
2484
+ :step_ids,
2485
+ :marker)
2486
+ include Aws::Structure
2487
+ end
2488
+
2489
+ # This output contains the list of steps returned in reverse order. This
2490
+ # means that the last step is the first element in the list.
2491
+ # @!attribute [rw] steps
2492
+ # The filtered list of steps for the cluster.
2493
+ # @return [Array<Types::StepSummary>]
2494
+ #
2495
+ # @!attribute [rw] marker
2496
+ # The pagination token that indicates the next set of results to
2497
+ # retrieve.
2498
+ # @return [String]
2499
+ class ListStepsOutput < Struct.new(
2500
+ :steps,
2501
+ :marker)
2502
+ include Aws::Structure
2503
+ end
2504
+
2505
+ # A CloudWatch dimension, which is specified using a `Key` (known as a
2506
+ # `Name` in CloudWatch), Value pair. By default, Amazon EMR uses one
2507
+ # dimension whose `Key` is `JobFlowID` and `Value` is a variable
2508
+ # representing the cluster ID, which is `$\{emr:cluster_id\}`. This
2509
+ # enables the rule to bootstrap when the cluster ID becomes available,
2510
+ # and also enables a single automatic scaling policy to be reused for
2511
+ # multiple clusters and instance groups.
2512
+ # @note When making an API call, pass MetricDimension
2513
+ # data as a hash:
2514
+ #
2515
+ # {
2516
+ # key: "String",
2517
+ # value: "String",
2518
+ # }
2519
+ # @!attribute [rw] key
2520
+ # The dimension name.
2521
+ # @return [String]
2522
+ #
2523
+ # @!attribute [rw] value
2524
+ # The dimension value.
2525
+ # @return [String]
2526
+ class MetricDimension < Struct.new(
2527
+ :key,
2528
+ :value)
2529
+ include Aws::Structure
2530
+ end
2531
+
2532
+ # Change the size of some instance groups.
2533
+ # @note When making an API call, pass ModifyInstanceGroupsInput
2534
+ # data as a hash:
2535
+ #
2536
+ # {
2537
+ # cluster_id: "ClusterId",
2538
+ # instance_groups: [
2539
+ # {
2540
+ # instance_group_id: "XmlStringMaxLen256", # required
2541
+ # instance_count: 1,
2542
+ # ec2_instance_ids_to_terminate: ["InstanceId"],
2543
+ # shrink_policy: {
2544
+ # decommission_timeout: 1,
2545
+ # instance_resize_policy: {
2546
+ # instances_to_terminate: ["InstanceId"],
2547
+ # instances_to_protect: ["InstanceId"],
2548
+ # instance_termination_timeout: 1,
2549
+ # },
2550
+ # },
2551
+ # },
2552
+ # ],
2553
+ # }
2554
+ # @!attribute [rw] cluster_id
2555
+ # The ID of the cluster to which the instance group belongs.
2556
+ # @return [String]
2557
+ #
2558
+ # @!attribute [rw] instance_groups
2559
+ # Instance groups to change.
2560
+ # @return [Array<Types::InstanceGroupModifyConfig>]
2561
+ class ModifyInstanceGroupsInput < Struct.new(
2562
+ :cluster_id,
2563
+ :instance_groups)
2564
+ include Aws::Structure
2565
+ end
2566
+
2567
+ # The Amazon EC2 location for the job flow.
2568
+ # @note When making an API call, pass PlacementType
2569
+ # data as a hash:
2570
+ #
2571
+ # {
2572
+ # availability_zone: "XmlString", # required
2573
+ # }
2574
+ # @!attribute [rw] availability_zone
2575
+ # The Amazon EC2 Availability Zone for the job flow.
2576
+ # @return [String]
2577
+ class PlacementType < Struct.new(
2578
+ :availability_zone)
2579
+ include Aws::Structure
2580
+ end
2581
+
2582
+ # @note When making an API call, pass PutAutoScalingPolicyInput
2583
+ # data as a hash:
2584
+ #
2585
+ # {
2586
+ # cluster_id: "ClusterId", # required
2587
+ # instance_group_id: "InstanceGroupId", # required
2588
+ # auto_scaling_policy: { # required
2589
+ # constraints: { # required
2590
+ # min_capacity: 1, # required
2591
+ # max_capacity: 1, # required
2592
+ # },
2593
+ # rules: [ # required
2594
+ # {
2595
+ # name: "String", # required
2596
+ # description: "String",
2597
+ # action: { # required
2598
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
2599
+ # simple_scaling_policy_configuration: { # required
2600
+ # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
2601
+ # scaling_adjustment: 1, # required
2602
+ # cool_down: 1,
2603
+ # },
2604
+ # },
2605
+ # trigger: { # required
2606
+ # cloud_watch_alarm_definition: { # required
2607
+ # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
2608
+ # evaluation_periods: 1,
2609
+ # metric_name: "String", # required
2610
+ # namespace: "String",
2611
+ # period: 1, # required
2612
+ # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
2613
+ # threshold: 1.0, # required
2614
+ # 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
2615
+ # dimensions: [
2616
+ # {
2617
+ # key: "String",
2618
+ # value: "String",
2619
+ # },
2620
+ # ],
2621
+ # },
2622
+ # },
2623
+ # },
2624
+ # ],
2625
+ # },
2626
+ # }
2627
+ # @!attribute [rw] cluster_id
2628
+ # Specifies the ID of a cluster. The instance group to which the
2629
+ # automatic scaling policy is applied is within this cluster.
2630
+ # @return [String]
2631
+ #
2632
+ # @!attribute [rw] instance_group_id
2633
+ # Specifies the ID of the instance group to which the automatic
2634
+ # scaling policy is applied.
2635
+ # @return [String]
2636
+ #
2637
+ # @!attribute [rw] auto_scaling_policy
2638
+ # Specifies the definition of the automatic scaling policy.
2639
+ # @return [Types::AutoScalingPolicy]
2640
+ class PutAutoScalingPolicyInput < Struct.new(
2641
+ :cluster_id,
2642
+ :instance_group_id,
2643
+ :auto_scaling_policy)
2644
+ include Aws::Structure
2645
+ end
2646
+
2647
+ # @!attribute [rw] cluster_id
2648
+ # Specifies the ID of a cluster. The instance group to which the
2649
+ # automatic scaling policy is applied is within this cluster.
2650
+ # @return [String]
2651
+ #
2652
+ # @!attribute [rw] instance_group_id
2653
+ # Specifies the ID of the instance group to which the scaling policy
2654
+ # is applied.
2655
+ # @return [String]
2656
+ #
2657
+ # @!attribute [rw] auto_scaling_policy
2658
+ # The automatic scaling policy definition.
2659
+ # @return [Types::AutoScalingPolicyDescription]
2660
+ class PutAutoScalingPolicyOutput < Struct.new(
2661
+ :cluster_id,
2662
+ :instance_group_id,
2663
+ :auto_scaling_policy)
2664
+ include Aws::Structure
2665
+ end
2666
+
2667
+ # @note When making an API call, pass RemoveAutoScalingPolicyInput
2668
+ # data as a hash:
2669
+ #
2670
+ # {
2671
+ # cluster_id: "ClusterId", # required
2672
+ # instance_group_id: "InstanceGroupId", # required
2673
+ # }
2674
+ # @!attribute [rw] cluster_id
2675
+ # Specifies the ID of a cluster. The instance group to which the
2676
+ # automatic scaling policy is applied is within this cluster.
2677
+ # @return [String]
2678
+ #
2679
+ # @!attribute [rw] instance_group_id
2680
+ # Specifies the ID of the instance group to which the scaling policy
2681
+ # is applied.
2682
+ # @return [String]
2683
+ class RemoveAutoScalingPolicyInput < Struct.new(
2684
+ :cluster_id,
2685
+ :instance_group_id)
2686
+ include Aws::Structure
2687
+ end
2688
+
2689
+ class RemoveAutoScalingPolicyOutput < Aws::EmptyStructure; end
2690
+
2691
+ # This input identifies a cluster and a list of tags to remove.
2692
+ # @note When making an API call, pass RemoveTagsInput
2693
+ # data as a hash:
2694
+ #
2695
+ # {
2696
+ # resource_id: "ResourceId", # required
2697
+ # tag_keys: ["String"], # required
2698
+ # }
2699
+ # @!attribute [rw] resource_id
2700
+ # The Amazon EMR resource identifier from which tags will be removed.
2701
+ # This value must be a cluster identifier.
2702
+ # @return [String]
2703
+ #
2704
+ # @!attribute [rw] tag_keys
2705
+ # A list of tag keys to remove from a resource.
2706
+ # @return [Array<String>]
2707
+ class RemoveTagsInput < Struct.new(
2708
+ :resource_id,
2709
+ :tag_keys)
2710
+ include Aws::Structure
2711
+ end
2712
+
2713
+ # This output indicates the result of removing tags from a resource.
2714
+ class RemoveTagsOutput < Aws::EmptyStructure; end
2715
+
2716
+ # Input to the RunJobFlow operation.
2717
+ # @note When making an API call, pass RunJobFlowInput
2718
+ # data as a hash:
2719
+ #
2720
+ # {
2721
+ # name: "XmlStringMaxLen256", # required
2722
+ # log_uri: "XmlString",
2723
+ # additional_info: "XmlString",
2724
+ # ami_version: "XmlStringMaxLen256",
2725
+ # release_label: "XmlStringMaxLen256",
2726
+ # instances: { # required
2727
+ # master_instance_type: "InstanceType",
2728
+ # slave_instance_type: "InstanceType",
2729
+ # instance_count: 1,
2730
+ # instance_groups: [
2731
+ # {
2732
+ # name: "XmlStringMaxLen256",
2733
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
2734
+ # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK
2735
+ # bid_price: "XmlStringMaxLen256",
2736
+ # instance_type: "InstanceType", # required
2737
+ # instance_count: 1, # required
2738
+ # configurations: [
2739
+ # {
2740
+ # classification: "String",
2741
+ # configurations: {
2742
+ # # recursive ConfigurationList
2743
+ # },
2744
+ # properties: {
2745
+ # "String" => "String",
2746
+ # },
2747
+ # },
2748
+ # ],
2749
+ # ebs_configuration: {
2750
+ # ebs_block_device_configs: [
2751
+ # {
2752
+ # volume_specification: { # required
2753
+ # volume_type: "String", # required
2754
+ # iops: 1,
2755
+ # size_in_gb: 1, # required
2756
+ # },
2757
+ # volumes_per_instance: 1,
2758
+ # },
2759
+ # ],
2760
+ # ebs_optimized: false,
2761
+ # },
2762
+ # auto_scaling_policy: {
2763
+ # constraints: { # required
2764
+ # min_capacity: 1, # required
2765
+ # max_capacity: 1, # required
2766
+ # },
2767
+ # rules: [ # required
2768
+ # {
2769
+ # name: "String", # required
2770
+ # description: "String",
2771
+ # action: { # required
2772
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
2773
+ # simple_scaling_policy_configuration: { # required
2774
+ # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
2775
+ # scaling_adjustment: 1, # required
2776
+ # cool_down: 1,
2777
+ # },
2778
+ # },
2779
+ # trigger: { # required
2780
+ # cloud_watch_alarm_definition: { # required
2781
+ # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
2782
+ # evaluation_periods: 1,
2783
+ # metric_name: "String", # required
2784
+ # namespace: "String",
2785
+ # period: 1, # required
2786
+ # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
2787
+ # threshold: 1.0, # required
2788
+ # 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
2789
+ # dimensions: [
2790
+ # {
2791
+ # key: "String",
2792
+ # value: "String",
2793
+ # },
2794
+ # ],
2795
+ # },
2796
+ # },
2797
+ # },
2798
+ # ],
2799
+ # },
2800
+ # },
2801
+ # ],
2802
+ # ec2_key_name: "XmlStringMaxLen256",
2803
+ # placement: {
2804
+ # availability_zone: "XmlString", # required
2805
+ # },
2806
+ # keep_job_flow_alive_when_no_steps: false,
2807
+ # termination_protected: false,
2808
+ # hadoop_version: "XmlStringMaxLen256",
2809
+ # ec2_subnet_id: "XmlStringMaxLen256",
2810
+ # emr_managed_master_security_group: "XmlStringMaxLen256",
2811
+ # emr_managed_slave_security_group: "XmlStringMaxLen256",
2812
+ # service_access_security_group: "XmlStringMaxLen256",
2813
+ # additional_master_security_groups: ["XmlStringMaxLen256"],
2814
+ # additional_slave_security_groups: ["XmlStringMaxLen256"],
2815
+ # },
2816
+ # steps: [
2817
+ # {
2818
+ # name: "XmlStringMaxLen256", # required
2819
+ # action_on_failure: "TERMINATE_JOB_FLOW", # accepts TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, CONTINUE
2820
+ # hadoop_jar_step: { # required
2821
+ # properties: [
2822
+ # {
2823
+ # key: "XmlString",
2824
+ # value: "XmlString",
2825
+ # },
2826
+ # ],
2827
+ # jar: "XmlString", # required
2828
+ # main_class: "XmlString",
2829
+ # args: ["XmlString"],
2830
+ # },
2831
+ # },
2832
+ # ],
2833
+ # bootstrap_actions: [
2834
+ # {
2835
+ # name: "XmlStringMaxLen256", # required
2836
+ # script_bootstrap_action: { # required
2837
+ # path: "XmlString", # required
2838
+ # args: ["XmlString"],
2839
+ # },
2840
+ # },
2841
+ # ],
2842
+ # supported_products: ["XmlStringMaxLen256"],
2843
+ # new_supported_products: [
2844
+ # {
2845
+ # name: "XmlStringMaxLen256",
2846
+ # args: ["XmlString"],
2847
+ # },
2848
+ # ],
2849
+ # applications: [
2850
+ # {
2851
+ # name: "String",
2852
+ # version: "String",
2853
+ # args: ["String"],
2854
+ # additional_info: {
2855
+ # "String" => "String",
2856
+ # },
2857
+ # },
2858
+ # ],
2859
+ # configurations: [
2860
+ # {
2861
+ # classification: "String",
2862
+ # configurations: {
2863
+ # # recursive ConfigurationList
2864
+ # },
2865
+ # properties: {
2866
+ # "String" => "String",
2867
+ # },
2868
+ # },
2869
+ # ],
2870
+ # visible_to_all_users: false,
2871
+ # job_flow_role: "XmlString",
2872
+ # service_role: "XmlString",
2873
+ # tags: [
2874
+ # {
2875
+ # key: "String",
2876
+ # value: "String",
2877
+ # },
2878
+ # ],
2879
+ # security_configuration: "XmlString",
2880
+ # auto_scaling_role: "XmlString",
2881
+ # scale_down_behavior: "TERMINATE_AT_INSTANCE_HOUR", # accepts TERMINATE_AT_INSTANCE_HOUR, TERMINATE_AT_TASK_COMPLETION
2882
+ # }
2883
+ # @!attribute [rw] name
2884
+ # The name of the job flow.
2885
+ # @return [String]
2886
+ #
2887
+ # @!attribute [rw] log_uri
2888
+ # The location in Amazon S3 to write the log files of the job flow. If
2889
+ # a value is not provided, logs are not created.
2890
+ # @return [String]
2891
+ #
2892
+ # @!attribute [rw] additional_info
2893
+ # A JSON string for selecting additional features.
2894
+ # @return [String]
2895
+ #
2896
+ # @!attribute [rw] ami_version
2897
+ # <note markdown="1"> For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
2898
+ # greater, use ReleaseLabel.
2899
+ #
2900
+ # </note>
2901
+ #
2902
+ # The version of the Amazon Machine Image (AMI) to use when launching
2903
+ # Amazon EC2 instances in the job flow. The following values are
2904
+ # valid:
2905
+ #
2906
+ # * The version number of the AMI to use, for example, "2.0."
2907
+ #
2908
+ # ^
2909
+ #
2910
+ # If the AMI supports multiple versions of Hadoop (for example, AMI
2911
+ # 1.0 supports both Hadoop 0.18 and 0.20) you can use the
2912
+ # JobFlowInstancesConfig `HadoopVersion` parameter to modify the
2913
+ # version of Hadoop from the defaults shown above.
2914
+ #
2915
+ # For details about the AMI versions currently supported by Amazon
2916
+ # Elastic MapReduce, see [AMI Versions Supported in Elastic
2917
+ # MapReduce][1] in the *Amazon Elastic MapReduce Developer Guide.*
2918
+ #
2919
+ # <note markdown="1"> Previously, the EMR AMI version API parameter options allowed you to
2920
+ # use latest for the latest AMI version rather than specify a
2921
+ # numerical value. Some regions no longer support this deprecated
2922
+ # option as they only have a newer release label version of EMR, which
2923
+ # requires you to specify an EMR release label release (EMR 4.x or
2924
+ # later).
2925
+ #
2926
+ # </note>
2927
+ #
2928
+ #
2929
+ #
2930
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/EnvironmentConfig_AMIVersion.html#ami-versions-supported
2931
+ # @return [String]
2932
+ #
2933
+ # @!attribute [rw] release_label
2934
+ # <note markdown="1"> Amazon EMR releases 4.x or later.
2935
+ #
2936
+ # </note>
2937
+ #
2938
+ # The release label for the Amazon EMR release. For Amazon EMR 3.x and
2939
+ # 2.x AMIs, use amiVersion instead instead of ReleaseLabel.
2940
+ # @return [String]
2941
+ #
2942
+ # @!attribute [rw] instances
2943
+ # A specification of the number and type of Amazon EC2 instances on
2944
+ # which to run the job flow.
2945
+ # @return [Types::JobFlowInstancesConfig]
2946
+ #
2947
+ # @!attribute [rw] steps
2948
+ # A list of steps to be executed by the job flow.
2949
+ # @return [Array<Types::StepConfig>]
2950
+ #
2951
+ # @!attribute [rw] bootstrap_actions
2952
+ # A list of bootstrap actions that will be run before Hadoop is
2953
+ # started on the cluster nodes.
2954
+ # @return [Array<Types::BootstrapActionConfig>]
2955
+ #
2956
+ # @!attribute [rw] supported_products
2957
+ # <note markdown="1"> For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
2958
+ # greater, use Applications.
2959
+ #
2960
+ # </note>
2961
+ #
2962
+ # A list of strings that indicates third-party software to use with
2963
+ # the job flow. For more information, see [Use Third Party
2964
+ # Applications with Amazon EMR][1]. Currently supported values are:
2965
+ #
2966
+ # * "mapr-m3" - launch the job flow using MapR M3 Edition.
2967
+ #
2968
+ # * "mapr-m5" - launch the job flow using MapR M5 Edition.
2969
+ #
2970
+ #
2971
+ #
2972
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-supported-products.html
2973
+ # @return [Array<String>]
2974
+ #
2975
+ # @!attribute [rw] new_supported_products
2976
+ # <note markdown="1"> For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
2977
+ # greater, use Applications.
2978
+ #
2979
+ # </note>
2980
+ #
2981
+ # A list of strings that indicates third-party software to use with
2982
+ # the job flow that accepts a user argument list. EMR accepts and
2983
+ # forwards the argument list to the corresponding installation script
2984
+ # as bootstrap action arguments. For more information, see [Launch a
2985
+ # Job Flow on the MapR Distribution for Hadoop][1]. Currently
2986
+ # supported values are:
2987
+ #
2988
+ # * "mapr-m3" - launch the cluster using MapR M3 Edition.
2989
+ #
2990
+ # * "mapr-m5" - launch the cluster using MapR M5 Edition.
2991
+ #
2992
+ # * "mapr" with the user arguments specifying "--edition,m3" or
2993
+ # "--edition,m5" - launch the job flow using MapR M3 or M5 Edition
2994
+ # respectively.
2995
+ #
2996
+ # * "mapr-m7" - launch the cluster using MapR M7 Edition.
2997
+ #
2998
+ # * "hunk" - launch the cluster with the Hunk Big Data Analtics
2999
+ # Platform.
3000
+ #
3001
+ # * "hue"- launch the cluster with Hue installed.
3002
+ #
3003
+ # * "spark" - launch the cluster with Apache Spark installed.
3004
+ #
3005
+ # * "ganglia" - launch the cluster with the Ganglia Monitoring
3006
+ # System installed.
3007
+ #
3008
+ #
3009
+ #
3010
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-mapr.html
3011
+ # @return [Array<Types::SupportedProductConfig>]
3012
+ #
3013
+ # @!attribute [rw] applications
3014
+ # <note markdown="1"> Amazon EMR releases 4.x or later.
3015
+ #
3016
+ # </note>
3017
+ #
3018
+ # A list of applications for the cluster. Valid values are:
3019
+ # "Hadoop", "Hive", "Mahout", "Pig", and "Spark." They are
3020
+ # case insensitive.
3021
+ # @return [Array<Types::Application>]
3022
+ #
3023
+ # @!attribute [rw] configurations
3024
+ # <note markdown="1"> Amazon EMR releases 4.x or later.
3025
+ #
3026
+ # </note>
3027
+ #
3028
+ # The list of configurations supplied for the EMR cluster you are
3029
+ # creating.
3030
+ # @return [Array<Types::Configuration>]
3031
+ #
3032
+ # @!attribute [rw] visible_to_all_users
3033
+ # Whether the job flow is visible to all IAM users of the AWS account
3034
+ # associated with the job flow. If this value is set to `true`, all
3035
+ # IAM users of that AWS account can view and (if they have the proper
3036
+ # policy permissions set) manage the job flow. If it is set to
3037
+ # `false`, only the IAM user that created the job flow can view and
3038
+ # manage it.
3039
+ # @return [Boolean]
3040
+ #
3041
+ # @!attribute [rw] job_flow_role
3042
+ # Also called instance profile and EC2 role. An IAM role for an EMR
3043
+ # cluster. The EC2 instances of the cluster assume this role. The
3044
+ # default role is `EMR_EC2_DefaultRole`. In order to use the default
3045
+ # role, you must have already created it using the CLI or console.
3046
+ # @return [String]
3047
+ #
3048
+ # @!attribute [rw] service_role
3049
+ # The IAM role that will be assumed by the Amazon EMR service to
3050
+ # access AWS resources on your behalf.
3051
+ # @return [String]
3052
+ #
3053
+ # @!attribute [rw] tags
3054
+ # A list of tags to associate with a cluster and propagate to Amazon
3055
+ # EC2 instances.
3056
+ # @return [Array<Types::Tag>]
3057
+ #
3058
+ # @!attribute [rw] security_configuration
3059
+ # The name of a security configuration to apply to the cluster.
3060
+ # @return [String]
3061
+ #
3062
+ # @!attribute [rw] auto_scaling_role
3063
+ # An IAM role for automatic scaling policies. The default role is
3064
+ # `EMR_AutoScaling_DefaultRole`. The IAM role provides permissions
3065
+ # that the automatic scaling feature requires to launch and terminate
3066
+ # EC2 instances in an instance group.
3067
+ # @return [String]
3068
+ #
3069
+ # @!attribute [rw] scale_down_behavior
3070
+ # Specifies the way that individual Amazon EC2 instances terminate
3071
+ # when an automatic scale-in activity occurs or an instance group is
3072
+ # resized. `TERMINATE_AT_INSTANCE_HOUR` indicates that Amazon EMR
3073
+ # terminates nodes at the instance-hour boundary, regardless of when
3074
+ # the request to terminate the instance was submitted. This option is
3075
+ # only available with Amazon EMR 5.1.0 and later and is the default
3076
+ # for clusters created using that version.
3077
+ # `TERMINATE_AT_TASK_COMPLETION` indicates that Amazon EMR blacklists
3078
+ # and drains tasks from nodes before terminating the Amazon EC2
3079
+ # instances, regardless of the instance-hour boundary. With either
3080
+ # behavior, Amazon EMR removes the least active nodes first and blocks
3081
+ # instance termination if it could lead to HDFS corruption.
3082
+ # `TERMINATE_AT_TASK_COMPLETION` available only in Amazon EMR version
3083
+ # 4.1.0 and later, and is the default for versions of Amazon EMR
3084
+ # earlier than 5.1.0.
3085
+ # @return [String]
3086
+ class RunJobFlowInput < Struct.new(
3087
+ :name,
3088
+ :log_uri,
3089
+ :additional_info,
3090
+ :ami_version,
3091
+ :release_label,
3092
+ :instances,
3093
+ :steps,
3094
+ :bootstrap_actions,
3095
+ :supported_products,
3096
+ :new_supported_products,
3097
+ :applications,
3098
+ :configurations,
3099
+ :visible_to_all_users,
3100
+ :job_flow_role,
3101
+ :service_role,
3102
+ :tags,
3103
+ :security_configuration,
3104
+ :auto_scaling_role,
3105
+ :scale_down_behavior)
3106
+ include Aws::Structure
3107
+ end
3108
+
3109
+ # The result of the RunJobFlow operation.
3110
+ # @!attribute [rw] job_flow_id
3111
+ # An unique identifier for the job flow.
3112
+ # @return [String]
3113
+ class RunJobFlowOutput < Struct.new(
3114
+ :job_flow_id)
3115
+ include Aws::Structure
3116
+ end
3117
+
3118
+ # The type of adjustment the automatic scaling activity makes when
3119
+ # triggered, and the periodicity of the adjustment.
3120
+ # @note When making an API call, pass ScalingAction
3121
+ # data as a hash:
3122
+ #
3123
+ # {
3124
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
3125
+ # simple_scaling_policy_configuration: { # required
3126
+ # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
3127
+ # scaling_adjustment: 1, # required
3128
+ # cool_down: 1,
3129
+ # },
3130
+ # }
3131
+ # @!attribute [rw] market
3132
+ # Not available for instance groups. Instance groups use the market
3133
+ # type specified for the group.
3134
+ # @return [String]
3135
+ #
3136
+ # @!attribute [rw] simple_scaling_policy_configuration
3137
+ # The type of adjustment the automatic scaling activity makes when
3138
+ # triggered, and the periodicity of the adjustment.
3139
+ # @return [Types::SimpleScalingPolicyConfiguration]
3140
+ class ScalingAction < Struct.new(
3141
+ :market,
3142
+ :simple_scaling_policy_configuration)
3143
+ include Aws::Structure
3144
+ end
3145
+
3146
+ # The upper and lower EC2 instance limits for an automatic scaling
3147
+ # policy. Automatic scaling activities triggered by automatic scaling
3148
+ # rules will not cause an instance group to grow above or below these
3149
+ # limits.
3150
+ # @note When making an API call, pass ScalingConstraints
3151
+ # data as a hash:
3152
+ #
3153
+ # {
3154
+ # min_capacity: 1, # required
3155
+ # max_capacity: 1, # required
3156
+ # }
3157
+ # @!attribute [rw] min_capacity
3158
+ # The lower boundary of EC2 instances in an instance group below which
3159
+ # scaling activities are not allowed to shrink. Scale-in activities
3160
+ # will not terminate instances below this boundary.
3161
+ # @return [Integer]
3162
+ #
3163
+ # @!attribute [rw] max_capacity
3164
+ # The upper boundary of EC2 instances in an instance group beyond
3165
+ # which scaling activities are not allowed to grow. Scale-out
3166
+ # activities will not add instances beyond this boundary.
3167
+ # @return [Integer]
3168
+ class ScalingConstraints < Struct.new(
3169
+ :min_capacity,
3170
+ :max_capacity)
3171
+ include Aws::Structure
3172
+ end
3173
+
3174
+ # A scale-in or scale-out rule that defines scaling activity, including
3175
+ # the CloudWatch metric alarm that triggers activity, how EC2 instances
3176
+ # are added or removed, and the periodicity of adjustments. The
3177
+ # automatic scaling policy for an instance group can comprise one or
3178
+ # more automatic scaling rules.
3179
+ # @note When making an API call, pass ScalingRule
3180
+ # data as a hash:
3181
+ #
3182
+ # {
3183
+ # name: "String", # required
3184
+ # description: "String",
3185
+ # action: { # required
3186
+ # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT
3187
+ # simple_scaling_policy_configuration: { # required
3188
+ # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
3189
+ # scaling_adjustment: 1, # required
3190
+ # cool_down: 1,
3191
+ # },
3192
+ # },
3193
+ # trigger: { # required
3194
+ # cloud_watch_alarm_definition: { # required
3195
+ # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
3196
+ # evaluation_periods: 1,
3197
+ # metric_name: "String", # required
3198
+ # namespace: "String",
3199
+ # period: 1, # required
3200
+ # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
3201
+ # threshold: 1.0, # required
3202
+ # 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
3203
+ # dimensions: [
3204
+ # {
3205
+ # key: "String",
3206
+ # value: "String",
3207
+ # },
3208
+ # ],
3209
+ # },
3210
+ # },
3211
+ # }
3212
+ # @!attribute [rw] name
3213
+ # The name used to identify an automatic scaling rule. Rule names must
3214
+ # be unique within a scaling policy.
3215
+ # @return [String]
3216
+ #
3217
+ # @!attribute [rw] description
3218
+ # A friendly, more verbose description of the automatic scaling rule.
3219
+ # @return [String]
3220
+ #
3221
+ # @!attribute [rw] action
3222
+ # The conditions that trigger an automatic scaling activity.
3223
+ # @return [Types::ScalingAction]
3224
+ #
3225
+ # @!attribute [rw] trigger
3226
+ # The CloudWatch alarm definition that determines when automatic
3227
+ # scaling activity is triggered.
3228
+ # @return [Types::ScalingTrigger]
3229
+ class ScalingRule < Struct.new(
3230
+ :name,
3231
+ :description,
3232
+ :action,
3233
+ :trigger)
3234
+ include Aws::Structure
3235
+ end
3236
+
3237
+ # The conditions that trigger an automatic scaling activity.
3238
+ # @note When making an API call, pass ScalingTrigger
3239
+ # data as a hash:
3240
+ #
3241
+ # {
3242
+ # cloud_watch_alarm_definition: { # required
3243
+ # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL
3244
+ # evaluation_periods: 1,
3245
+ # metric_name: "String", # required
3246
+ # namespace: "String",
3247
+ # period: 1, # required
3248
+ # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM
3249
+ # threshold: 1.0, # required
3250
+ # 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
3251
+ # dimensions: [
3252
+ # {
3253
+ # key: "String",
3254
+ # value: "String",
3255
+ # },
3256
+ # ],
3257
+ # },
3258
+ # }
3259
+ # @!attribute [rw] cloud_watch_alarm_definition
3260
+ # The definition of a CloudWatch metric alarm. When the defined alarm
3261
+ # conditions are met along with other trigger parameters, scaling
3262
+ # activity begins.
3263
+ # @return [Types::CloudWatchAlarmDefinition]
3264
+ class ScalingTrigger < Struct.new(
3265
+ :cloud_watch_alarm_definition)
3266
+ include Aws::Structure
3267
+ end
3268
+
3269
+ # Configuration of the script to run during a bootstrap action.
3270
+ # @note When making an API call, pass ScriptBootstrapActionConfig
3271
+ # data as a hash:
3272
+ #
3273
+ # {
3274
+ # path: "XmlString", # required
3275
+ # args: ["XmlString"],
3276
+ # }
3277
+ # @!attribute [rw] path
3278
+ # Location of the script to run during a bootstrap action. Can be
3279
+ # either a location in Amazon S3 or on a local file system.
3280
+ # @return [String]
3281
+ #
3282
+ # @!attribute [rw] args
3283
+ # A list of command line arguments to pass to the bootstrap action
3284
+ # script.
3285
+ # @return [Array<String>]
3286
+ class ScriptBootstrapActionConfig < Struct.new(
3287
+ :path,
3288
+ :args)
3289
+ include Aws::Structure
3290
+ end
3291
+
3292
+ # The creation date and time, and name, of a security configuration.
3293
+ # @!attribute [rw] name
3294
+ # The name of the security configuration.
3295
+ # @return [String]
3296
+ #
3297
+ # @!attribute [rw] creation_date_time
3298
+ # The date and time the security configuration was created.
3299
+ # @return [Time]
3300
+ class SecurityConfigurationSummary < Struct.new(
3301
+ :name,
3302
+ :creation_date_time)
3303
+ include Aws::Structure
3304
+ end
3305
+
3306
+ # The input argument to the TerminationProtection operation.
3307
+ # @note When making an API call, pass SetTerminationProtectionInput
3308
+ # data as a hash:
3309
+ #
3310
+ # {
3311
+ # job_flow_ids: ["XmlString"], # required
3312
+ # termination_protected: false, # required
3313
+ # }
3314
+ # @!attribute [rw] job_flow_ids
3315
+ # A list of strings that uniquely identify the job flows to protect.
3316
+ # This identifier is returned by RunJobFlow and can also be obtained
3317
+ # from DescribeJobFlows .
3318
+ # @return [Array<String>]
3319
+ #
3320
+ # @!attribute [rw] termination_protected
3321
+ # A Boolean that indicates whether to protect the job flow and prevent
3322
+ # the Amazon EC2 instances in the cluster from shutting down due to
3323
+ # API calls, user intervention, or job-flow error.
3324
+ # @return [Boolean]
3325
+ class SetTerminationProtectionInput < Struct.new(
3326
+ :job_flow_ids,
3327
+ :termination_protected)
3328
+ include Aws::Structure
3329
+ end
3330
+
3331
+ # The input to the SetVisibleToAllUsers action.
3332
+ # @note When making an API call, pass SetVisibleToAllUsersInput
3333
+ # data as a hash:
3334
+ #
3335
+ # {
3336
+ # job_flow_ids: ["XmlString"], # required
3337
+ # visible_to_all_users: false, # required
3338
+ # }
3339
+ # @!attribute [rw] job_flow_ids
3340
+ # Identifiers of the job flows to receive the new visibility setting.
3341
+ # @return [Array<String>]
3342
+ #
3343
+ # @!attribute [rw] visible_to_all_users
3344
+ # Whether the specified job flows are visible to all IAM users of the
3345
+ # AWS account associated with the job flow. If this value is set to
3346
+ # True, all IAM users of that AWS account can view and, if they have
3347
+ # the proper IAM policy permissions set, manage the job flows. If it
3348
+ # is set to False, only the IAM user that created a job flow can view
3349
+ # and manage it.
3350
+ # @return [Boolean]
3351
+ class SetVisibleToAllUsersInput < Struct.new(
3352
+ :job_flow_ids,
3353
+ :visible_to_all_users)
3354
+ include Aws::Structure
3355
+ end
3356
+
3357
+ # Policy for customizing shrink operations. Allows configuration of
3358
+ # decommissioning timeout and targeted instance shrinking.
3359
+ # @note When making an API call, pass ShrinkPolicy
3360
+ # data as a hash:
3361
+ #
3362
+ # {
3363
+ # decommission_timeout: 1,
3364
+ # instance_resize_policy: {
3365
+ # instances_to_terminate: ["InstanceId"],
3366
+ # instances_to_protect: ["InstanceId"],
3367
+ # instance_termination_timeout: 1,
3368
+ # },
3369
+ # }
3370
+ # @!attribute [rw] decommission_timeout
3371
+ # The desired timeout for decommissioning an instance. Overrides the
3372
+ # default YARN decommissioning timeout.
3373
+ # @return [Integer]
3374
+ #
3375
+ # @!attribute [rw] instance_resize_policy
3376
+ # Custom policy for requesting termination protection or termination
3377
+ # of specific instances when shrinking an instance group.
3378
+ # @return [Types::InstanceResizePolicy]
3379
+ class ShrinkPolicy < Struct.new(
3380
+ :decommission_timeout,
3381
+ :instance_resize_policy)
3382
+ include Aws::Structure
3383
+ end
3384
+
3385
+ # An automatic scaling configuration, which describes how the policy
3386
+ # adds or removes instances, the cooldown period, and the number of EC2
3387
+ # instances that will be added each time the CloudWatch metric alarm
3388
+ # condition is satisfied.
3389
+ # @note When making an API call, pass SimpleScalingPolicyConfiguration
3390
+ # data as a hash:
3391
+ #
3392
+ # {
3393
+ # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY
3394
+ # scaling_adjustment: 1, # required
3395
+ # cool_down: 1,
3396
+ # }
3397
+ # @!attribute [rw] adjustment_type
3398
+ # The way in which EC2 instances are added (if `ScalingAdjustment` is
3399
+ # a positive number) or terminated (if `ScalingAdjustment` is a
3400
+ # negative number) each time the scaling activity is triggered.
3401
+ # `CHANGE_IN_CAPACITY` is the default. `CHANGE_IN_CAPACITY` indicates
3402
+ # that the EC2 instance count increments or decrements by
3403
+ # `ScalingAdjustment`, which should be expressed as an integer.
3404
+ # `PERCENT_CHANGE_IN_CAPACITY` indicates the instance count increments
3405
+ # or decrements by the percentage specified by `ScalingAdjustment`,
3406
+ # which should be expressed as a decimal, for example, 0.20 indicates
3407
+ # an increase in 20% increments of cluster capacity. `EXACT_CAPACITY`
3408
+ # indicates the scaling activity results in an instance group with the
3409
+ # number of EC2 instances specified by `ScalingAdjustment`, which
3410
+ # should be expressed as a positive integer.
3411
+ # @return [String]
3412
+ #
3413
+ # @!attribute [rw] scaling_adjustment
3414
+ # The amount by which to scale in or scale out, based on the specified
3415
+ # `AdjustmentType`. A positive value adds to the instance group's EC2
3416
+ # instance count while a negative number removes instances. If
3417
+ # `AdjustmentType` is set to `EXACT_CAPACITY`, the number should only
3418
+ # be a positive integer. If `AdjustmentType` is set to
3419
+ # `PERCENT_CHANGE_IN_CAPACITY`, the value should express the
3420
+ # percentage as a decimal. For example, -0.20 indicates a decrease in
3421
+ # 20% increments of cluster capacity.
3422
+ # @return [Integer]
3423
+ #
3424
+ # @!attribute [rw] cool_down
3425
+ # The amount of time, in seconds, after a scaling activity completes
3426
+ # before any further trigger-related scaling activities can start. The
3427
+ # default value is 0.
3428
+ # @return [Integer]
3429
+ class SimpleScalingPolicyConfiguration < Struct.new(
3430
+ :adjustment_type,
3431
+ :scaling_adjustment,
3432
+ :cool_down)
3433
+ include Aws::Structure
3434
+ end
3435
+
3436
+ # This represents a step in a cluster.
3437
+ # @!attribute [rw] id
3438
+ # The identifier of the cluster step.
3439
+ # @return [String]
3440
+ #
3441
+ # @!attribute [rw] name
3442
+ # The name of the cluster step.
3443
+ # @return [String]
3444
+ #
3445
+ # @!attribute [rw] config
3446
+ # The Hadoop job configuration of the cluster step.
3447
+ # @return [Types::HadoopStepConfig]
3448
+ #
3449
+ # @!attribute [rw] action_on_failure
3450
+ # This specifies what action to take when the cluster step fails.
3451
+ # Possible values are TERMINATE\_CLUSTER, CANCEL\_AND\_WAIT, and
3452
+ # CONTINUE.
3453
+ # @return [String]
3454
+ #
3455
+ # @!attribute [rw] status
3456
+ # The current execution status details of the cluster step.
3457
+ # @return [Types::StepStatus]
3458
+ class Step < Struct.new(
3459
+ :id,
3460
+ :name,
3461
+ :config,
3462
+ :action_on_failure,
3463
+ :status)
3464
+ include Aws::Structure
3465
+ end
3466
+
3467
+ # Specification of a job flow step.
3468
+ # @note When making an API call, pass StepConfig
3469
+ # data as a hash:
3470
+ #
3471
+ # {
3472
+ # name: "XmlStringMaxLen256", # required
3473
+ # action_on_failure: "TERMINATE_JOB_FLOW", # accepts TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, CONTINUE
3474
+ # hadoop_jar_step: { # required
3475
+ # properties: [
3476
+ # {
3477
+ # key: "XmlString",
3478
+ # value: "XmlString",
3479
+ # },
3480
+ # ],
3481
+ # jar: "XmlString", # required
3482
+ # main_class: "XmlString",
3483
+ # args: ["XmlString"],
3484
+ # },
3485
+ # }
3486
+ # @!attribute [rw] name
3487
+ # The name of the job flow step.
3488
+ # @return [String]
3489
+ #
3490
+ # @!attribute [rw] action_on_failure
3491
+ # The action to take if the job flow step fails.
3492
+ # @return [String]
3493
+ #
3494
+ # @!attribute [rw] hadoop_jar_step
3495
+ # The JAR file used for the job flow step.
3496
+ # @return [Types::HadoopJarStepConfig]
3497
+ class StepConfig < Struct.new(
3498
+ :name,
3499
+ :action_on_failure,
3500
+ :hadoop_jar_step)
3501
+ include Aws::Structure
3502
+ end
3503
+
3504
+ # Combines the execution state and configuration of a step.
3505
+ # @!attribute [rw] step_config
3506
+ # The step configuration.
3507
+ # @return [Types::StepConfig]
3508
+ #
3509
+ # @!attribute [rw] execution_status_detail
3510
+ # The description of the step status.
3511
+ # @return [Types::StepExecutionStatusDetail]
3512
+ class StepDetail < Struct.new(
3513
+ :step_config,
3514
+ :execution_status_detail)
3515
+ include Aws::Structure
3516
+ end
3517
+
3518
+ # The execution state of a step.
3519
+ # @!attribute [rw] state
3520
+ # The state of the job flow step.
3521
+ # @return [String]
3522
+ #
3523
+ # @!attribute [rw] creation_date_time
3524
+ # The creation date and time of the step.
3525
+ # @return [Time]
3526
+ #
3527
+ # @!attribute [rw] start_date_time
3528
+ # The start date and time of the step.
3529
+ # @return [Time]
3530
+ #
3531
+ # @!attribute [rw] end_date_time
3532
+ # The completion date and time of the step.
3533
+ # @return [Time]
3534
+ #
3535
+ # @!attribute [rw] last_state_change_reason
3536
+ # A description of the step's current state.
3537
+ # @return [String]
3538
+ class StepExecutionStatusDetail < Struct.new(
3539
+ :state,
3540
+ :creation_date_time,
3541
+ :start_date_time,
3542
+ :end_date_time,
3543
+ :last_state_change_reason)
3544
+ include Aws::Structure
3545
+ end
3546
+
3547
+ # The details of the step state change reason.
3548
+ # @!attribute [rw] code
3549
+ # The programmable code for the state change reason. Note: Currently,
3550
+ # the service provides no code for the state change.
3551
+ # @return [String]
3552
+ #
3553
+ # @!attribute [rw] message
3554
+ # The descriptive message for the state change reason.
3555
+ # @return [String]
3556
+ class StepStateChangeReason < Struct.new(
3557
+ :code,
3558
+ :message)
3559
+ include Aws::Structure
3560
+ end
3561
+
3562
+ # The execution status details of the cluster step.
3563
+ # @!attribute [rw] state
3564
+ # The execution state of the cluster step.
3565
+ # @return [String]
3566
+ #
3567
+ # @!attribute [rw] state_change_reason
3568
+ # The reason for the step execution status change.
3569
+ # @return [Types::StepStateChangeReason]
3570
+ #
3571
+ # @!attribute [rw] failure_details
3572
+ # The details for the step failure including reason, message, and log
3573
+ # file path where the root cause was identified.
3574
+ # @return [Types::FailureDetails]
3575
+ #
3576
+ # @!attribute [rw] timeline
3577
+ # The timeline of the cluster step status over time.
3578
+ # @return [Types::StepTimeline]
3579
+ class StepStatus < Struct.new(
3580
+ :state,
3581
+ :state_change_reason,
3582
+ :failure_details,
3583
+ :timeline)
3584
+ include Aws::Structure
3585
+ end
3586
+
3587
+ # The summary of the cluster step.
3588
+ # @!attribute [rw] id
3589
+ # The identifier of the cluster step.
3590
+ # @return [String]
3591
+ #
3592
+ # @!attribute [rw] name
3593
+ # The name of the cluster step.
3594
+ # @return [String]
3595
+ #
3596
+ # @!attribute [rw] config
3597
+ # The Hadoop job configuration of the cluster step.
3598
+ # @return [Types::HadoopStepConfig]
3599
+ #
3600
+ # @!attribute [rw] action_on_failure
3601
+ # This specifies what action to take when the cluster step fails.
3602
+ # Possible values are TERMINATE\_CLUSTER, CANCEL\_AND\_WAIT, and
3603
+ # CONTINUE.
3604
+ # @return [String]
3605
+ #
3606
+ # @!attribute [rw] status
3607
+ # The current execution status details of the cluster step.
3608
+ # @return [Types::StepStatus]
3609
+ class StepSummary < Struct.new(
3610
+ :id,
3611
+ :name,
3612
+ :config,
3613
+ :action_on_failure,
3614
+ :status)
3615
+ include Aws::Structure
3616
+ end
3617
+
3618
+ # The timeline of the cluster step lifecycle.
3619
+ # @!attribute [rw] creation_date_time
3620
+ # The date and time when the cluster step was created.
3621
+ # @return [Time]
3622
+ #
3623
+ # @!attribute [rw] start_date_time
3624
+ # The date and time when the cluster step execution started.
3625
+ # @return [Time]
3626
+ #
3627
+ # @!attribute [rw] end_date_time
3628
+ # The date and time when the cluster step execution completed or
3629
+ # failed.
3630
+ # @return [Time]
3631
+ class StepTimeline < Struct.new(
3632
+ :creation_date_time,
3633
+ :start_date_time,
3634
+ :end_date_time)
3635
+ include Aws::Structure
3636
+ end
3637
+
3638
+ # The list of supported product configurations which allow user-supplied
3639
+ # arguments. EMR accepts these arguments and forwards them to the
3640
+ # corresponding installation script as bootstrap action arguments.
3641
+ # @note When making an API call, pass SupportedProductConfig
3642
+ # data as a hash:
3643
+ #
3644
+ # {
3645
+ # name: "XmlStringMaxLen256",
3646
+ # args: ["XmlString"],
3647
+ # }
3648
+ # @!attribute [rw] name
3649
+ # The name of the product configuration.
3650
+ # @return [String]
3651
+ #
3652
+ # @!attribute [rw] args
3653
+ # The list of user-supplied arguments.
3654
+ # @return [Array<String>]
3655
+ class SupportedProductConfig < Struct.new(
3656
+ :name,
3657
+ :args)
3658
+ include Aws::Structure
3659
+ end
3660
+
3661
+ # A key/value pair containing user-defined metadata that you can
3662
+ # associate with an Amazon EMR resource. Tags make it easier to
3663
+ # associate clusters in various ways, such as grouping clusters to track
3664
+ # your Amazon EMR resource allocation costs. For more information, see
3665
+ # [Tagging Amazon EMR Resources][1].
3666
+ #
3667
+ #
3668
+ #
3669
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-tags.html
3670
+ # @note When making an API call, pass Tag
3671
+ # data as a hash:
3672
+ #
3673
+ # {
3674
+ # key: "String",
3675
+ # value: "String",
3676
+ # }
3677
+ # @!attribute [rw] key
3678
+ # A user-defined key, which is the minimum required information for a
3679
+ # valid tag. For more information, see [Tagging Amazon EMR
3680
+ # Resources][1].
3681
+ #
3682
+ #
3683
+ #
3684
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-tags.html
3685
+ # @return [String]
3686
+ #
3687
+ # @!attribute [rw] value
3688
+ # A user-defined value, which is optional in a tag. For more
3689
+ # information, see [Tagging Amazon EMR Resources][1].
3690
+ #
3691
+ #
3692
+ #
3693
+ # [1]: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-tags.html
3694
+ # @return [String]
3695
+ class Tag < Struct.new(
3696
+ :key,
3697
+ :value)
3698
+ include Aws::Structure
3699
+ end
3700
+
3701
+ # Input to the TerminateJobFlows operation.
3702
+ # @note When making an API call, pass TerminateJobFlowsInput
3703
+ # data as a hash:
3704
+ #
3705
+ # {
3706
+ # job_flow_ids: ["XmlString"], # required
3707
+ # }
3708
+ # @!attribute [rw] job_flow_ids
3709
+ # A list of job flows to be shutdown.
3710
+ # @return [Array<String>]
3711
+ class TerminateJobFlowsInput < Struct.new(
3712
+ :job_flow_ids)
3713
+ include Aws::Structure
3714
+ end
3715
+
3716
+ # EBS volume specifications such as volume type, IOPS, and size (GiB)
3717
+ # that will be requested for the EBS volume attached to an EC2 instance
3718
+ # in the cluster.
3719
+ # @note When making an API call, pass VolumeSpecification
3720
+ # data as a hash:
3721
+ #
3722
+ # {
3723
+ # volume_type: "String", # required
3724
+ # iops: 1,
3725
+ # size_in_gb: 1, # required
3726
+ # }
3727
+ # @!attribute [rw] volume_type
3728
+ # The volume type. Volume types supported are gp2, io1, standard.
3729
+ # @return [String]
3730
+ #
3731
+ # @!attribute [rw] iops
3732
+ # The number of I/O operations per second (IOPS) that the volume
3733
+ # supports.
3734
+ # @return [Integer]
3735
+ #
3736
+ # @!attribute [rw] size_in_gb
3737
+ # The volume size, in gibibytes (GiB). This can be a number from 1 -
3738
+ # 1024. If the volume type is EBS-optimized, the minimum value is 10.
3739
+ # @return [Integer]
3740
+ class VolumeSpecification < Struct.new(
3741
+ :volume_type,
3742
+ :iops,
3743
+ :size_in_gb)
3744
+ include Aws::Structure
3745
+ end
3746
+
3747
+ end
3748
+ end
3749
+ end