aws-sdk-emr 1.24.0 → 1.29.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f56f854611ded02ec8be6a54e646515a86badba8
4
- data.tar.gz: dc1ad869e3a30b1267c9d551b04d21690decc0f7
2
+ SHA256:
3
+ metadata.gz: 1bc429540019308bec8868576b4df89f48a27f73e5cc911257dd0996b469abe5
4
+ data.tar.gz: f3245930a91c047b1b4c29f4e48c75a3fd00b76487146a6574448bf40712eddd
5
5
  SHA512:
6
- metadata.gz: a0da4021037aeef2bcd6966de5f0f3e6b45534b8b26481a149df150ea5483342c63e2fc86cc273e2aa1454808575816d523b0d1e9a742815e4397d5d34338f28
7
- data.tar.gz: c3468c1750df2fe793431898263266e6205fe2e4e0a5c1a16f4475dea1d40a176b7d31ac0d9c6a2ecc44346177022771da8ae996f14798c51361c42e9c100bba
6
+ metadata.gz: e9e1fe989a4eb077facc5fcd1dc72dcee5c78d584cf6fca821a4b0155037f6d236568ce0e256b3abe66a2dfa7029b39b5127ab9adc526cd98a71e3bc5b08f0bc
7
+ data.tar.gz: 4d199973ed0919218a134666e89a0060d8f65707c3b113976ded2f4f67c7e436bd8887d569c263e579b5ded433b1d1fb591844b56fa8cd722a136d340c4806df
@@ -25,17 +25,20 @@ require_relative 'aws-sdk-emr/customizations'
25
25
  # methods each accept a hash of request parameters and return a response
26
26
  # structure.
27
27
  #
28
+ # emr = Aws::EMR::Client.new
29
+ # resp = emr.add_instance_fleet(params)
30
+ #
28
31
  # See {Client} for more information.
29
32
  #
30
33
  # # Errors
31
34
  #
32
- # Errors returned from Amazon Elastic MapReduce all
33
- # extend {Errors::ServiceError}.
35
+ # Errors returned from Amazon Elastic MapReduce are defined in the
36
+ # {Errors} module and all extend {Errors::ServiceError}.
34
37
  #
35
38
  # begin
36
39
  # # do stuff
37
40
  # rescue Aws::EMR::Errors::ServiceError
38
- # # rescues all service API errors
41
+ # # rescues all Amazon Elastic MapReduce API errors
39
42
  # end
40
43
  #
41
44
  # See {Errors} for more information.
@@ -43,6 +46,6 @@ require_relative 'aws-sdk-emr/customizations'
43
46
  # @service
44
47
  module Aws::EMR
45
48
 
46
- GEM_VERSION = '1.24.0'
49
+ GEM_VERSION = '1.29.0'
47
50
 
48
51
  end
@@ -30,6 +30,18 @@ require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
30
30
  Aws::Plugins::GlobalConfiguration.add_identifier(:emr)
31
31
 
32
32
  module Aws::EMR
33
+ # An API client for EMR. To construct a client, you need to configure a `:region` and `:credentials`.
34
+ #
35
+ # client = Aws::EMR::Client.new(
36
+ # region: region_name,
37
+ # credentials: credentials,
38
+ # # ...
39
+ # )
40
+ #
41
+ # For details on configuring region and credentials see
42
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
43
+ #
44
+ # See {#initialize} for a full list of supported configuration options.
33
45
  class Client < Seahorse::Client::Base
34
46
 
35
47
  include Aws::ClientStubs
@@ -93,7 +105,7 @@ module Aws::EMR
93
105
  # @option options [required, String] :region
94
106
  # The AWS region to connect to. The configured `:region` is
95
107
  # used to determine the service `:endpoint`. When not passed,
96
- # a default `:region` is search for in the following locations:
108
+ # a default `:region` is searched for in the following locations:
97
109
  #
98
110
  # * `Aws.config[:region]`
99
111
  # * `ENV['AWS_REGION']`
@@ -108,6 +120,12 @@ module Aws::EMR
108
120
  # When set to `true`, a thread polling for endpoints will be running in
109
121
  # the background every 60 secs (default). Defaults to `false`.
110
122
  #
123
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
124
+ # Used only in `adaptive` retry mode. When true, the request will sleep
125
+ # until there is sufficent client side capacity to retry the request.
126
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
127
+ # not retry instead of sleeping.
128
+ #
111
129
  # @option options [Boolean] :client_side_monitoring (false)
112
130
  # When `true`, client-side metrics will be collected for all API requests from
113
131
  # this client.
@@ -132,6 +150,10 @@ module Aws::EMR
132
150
  # When `true`, an attempt is made to coerce request parameters into
133
151
  # the required types.
134
152
  #
153
+ # @option options [Boolean] :correct_clock_skew (true)
154
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
155
+ # a clock skew correction and retry requests with skewed client clocks.
156
+ #
135
157
  # @option options [Boolean] :disable_host_prefix_injection (false)
136
158
  # Set to true to disable SDK automatically adding host prefix
137
159
  # to default service endpoint when available.
@@ -139,7 +161,7 @@ module Aws::EMR
139
161
  # @option options [String] :endpoint
140
162
  # The client endpoint is normally constructed from the `:region`
141
163
  # option. You should only configure an `:endpoint` when connecting
142
- # to test endpoints. This should be avalid HTTP(S) URI.
164
+ # to test endpoints. This should be a valid HTTP(S) URI.
143
165
  #
144
166
  # @option options [Integer] :endpoint_cache_max_entries (1000)
145
167
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -154,7 +176,7 @@ module Aws::EMR
154
176
  # requests fetching endpoints information. Defaults to 60 sec.
155
177
  #
156
178
  # @option options [Boolean] :endpoint_discovery (false)
157
- # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
179
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
158
180
  #
159
181
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
160
182
  # The log formatter.
@@ -166,15 +188,29 @@ module Aws::EMR
166
188
  # The Logger instance to send log messages to. If this option
167
189
  # is not set, logging will be disabled.
168
190
  #
191
+ # @option options [Integer] :max_attempts (3)
192
+ # An integer representing the maximum number attempts that will be made for
193
+ # a single request, including the initial attempt. For example,
194
+ # setting this value to 5 will result in a request being retried up to
195
+ # 4 times. Used in `standard` and `adaptive` retry modes.
196
+ #
169
197
  # @option options [String] :profile ("default")
170
198
  # Used when loading credentials from the shared credentials file
171
199
  # at HOME/.aws/credentials. When not specified, 'default' is used.
172
200
  #
201
+ # @option options [Proc] :retry_backoff
202
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
203
+ # This option is only used in the `legacy` retry mode.
204
+ #
173
205
  # @option options [Float] :retry_base_delay (0.3)
174
- # The base delay in seconds used by the default backoff function.
206
+ # The base delay in seconds used by the default backoff function. This option
207
+ # is only used in the `legacy` retry mode.
175
208
  #
176
209
  # @option options [Symbol] :retry_jitter (:none)
177
- # A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number.
210
+ # A delay randomiser function used by the default backoff function.
211
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
212
+ # otherwise a Proc that takes and returns a number. This option is only used
213
+ # in the `legacy` retry mode.
178
214
  #
179
215
  # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
180
216
  #
@@ -182,11 +218,30 @@ module Aws::EMR
182
218
  # The maximum number of times to retry failed requests. Only
183
219
  # ~ 500 level server errors and certain ~ 400 level client errors
184
220
  # are retried. Generally, these are throttling errors, data
185
- # checksum errors, networking errors, timeout errors and auth
186
- # errors from expired credentials.
221
+ # checksum errors, networking errors, timeout errors, auth errors,
222
+ # endpoint discovery, and errors from expired credentials.
223
+ # This option is only used in the `legacy` retry mode.
187
224
  #
188
225
  # @option options [Integer] :retry_max_delay (0)
189
- # The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function.
226
+ # The maximum number of seconds to delay between retries (0 for no limit)
227
+ # used by the default backoff function. This option is only used in the
228
+ # `legacy` retry mode.
229
+ #
230
+ # @option options [String] :retry_mode ("legacy")
231
+ # Specifies which retry algorithm to use. Values are:
232
+ #
233
+ # * `legacy` - The pre-existing retry behavior. This is default value if
234
+ # no retry mode is provided.
235
+ #
236
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
237
+ # This includes support for retry quotas, which limit the number of
238
+ # unsuccessful retries a client can make.
239
+ #
240
+ # * `adaptive` - An experimental retry mode that includes all the
241
+ # functionality of `standard` mode along with automatic client side
242
+ # throttling. This is a provisional mode that may change behavior
243
+ # in the future.
244
+ #
190
245
  #
191
246
  # @option options [String] :secret_access_key
192
247
  #
@@ -219,16 +274,15 @@ module Aws::EMR
219
274
  # requests through. Formatted like 'http://proxy.com:123'.
220
275
  #
221
276
  # @option options [Float] :http_open_timeout (15) The number of
222
- # seconds to wait when opening a HTTP session before rasing a
277
+ # seconds to wait when opening a HTTP session before raising a
223
278
  # `Timeout::Error`.
224
279
  #
225
280
  # @option options [Integer] :http_read_timeout (60) The default
226
281
  # number of seconds to wait for response data. This value can
227
- # safely be set
228
- # per-request on the session yeidled by {#session_for}.
282
+ # safely be set per-request on the session.
229
283
  #
230
284
  # @option options [Float] :http_idle_timeout (5) The number of
231
- # seconds a connection is allowed to sit idble before it is
285
+ # seconds a connection is allowed to sit idle before it is
232
286
  # considered stale. Stale connections are closed and removed
233
287
  # from the pool before making a request.
234
288
  #
@@ -237,7 +291,7 @@ module Aws::EMR
237
291
  # request body. This option has no effect unless the request has
238
292
  # "Expect" header set to "100-continue". Defaults to `nil` which
239
293
  # disables this behaviour. This value can safely be set per
240
- # request on the session yeidled by {#session_for}.
294
+ # request on the session.
241
295
  #
242
296
  # @option options [Boolean] :http_wire_trace (false) When `true`,
243
297
  # HTTP debug output will be sent to the `:logger`.
@@ -729,6 +783,7 @@ module Aws::EMR
729
783
  # resp.cluster.ec2_instance_attributes.additional_slave_security_groups[0] #=> String
730
784
  # resp.cluster.instance_collection_type #=> String, one of "INSTANCE_FLEET", "INSTANCE_GROUP"
731
785
  # resp.cluster.log_uri #=> String
786
+ # resp.cluster.log_encryption_kms_key_id #=> String
732
787
  # resp.cluster.requested_ami_version #=> String
733
788
  # resp.cluster.running_ami_version #=> String
734
789
  # resp.cluster.release_label #=> String
@@ -765,8 +820,14 @@ module Aws::EMR
765
820
  # resp.cluster.kerberos_attributes.ad_domain_join_user #=> String
766
821
  # resp.cluster.kerberos_attributes.ad_domain_join_password #=> String
767
822
  # resp.cluster.cluster_arn #=> String
768
- # resp.cluster.step_concurrency_level #=> Integer
769
823
  # resp.cluster.outpost_arn #=> String
824
+ # resp.cluster.step_concurrency_level #=> Integer
825
+ #
826
+ #
827
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
828
+ #
829
+ # * cluster_running
830
+ # * cluster_terminated
770
831
  #
771
832
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster AWS API Documentation
772
833
  #
@@ -830,6 +891,7 @@ module Aws::EMR
830
891
  # resp.job_flows[0].job_flow_id #=> String
831
892
  # resp.job_flows[0].name #=> String
832
893
  # resp.job_flows[0].log_uri #=> String
894
+ # resp.job_flows[0].log_encryption_kms_key_id #=> String
833
895
  # resp.job_flows[0].ami_version #=> String
834
896
  # resp.job_flows[0].execution_status_detail.state #=> String, one of "STARTING", "BOOTSTRAPPING", "RUNNING", "WAITING", "SHUTTING_DOWN", "TERMINATED", "COMPLETED", "FAILED"
835
897
  # resp.job_flows[0].execution_status_detail.creation_date_time #=> Time
@@ -976,6 +1038,11 @@ module Aws::EMR
976
1038
  # resp.step.status.timeline.start_date_time #=> Time
977
1039
  # resp.step.status.timeline.end_date_time #=> Time
978
1040
  #
1041
+ #
1042
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1043
+ #
1044
+ # * step_complete
1045
+ #
979
1046
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep AWS API Documentation
980
1047
  #
981
1048
  # @overload describe_step(params = {})
@@ -1017,6 +1084,38 @@ module Aws::EMR
1017
1084
  req.send_request(options)
1018
1085
  end
1019
1086
 
1087
+ # Fetches the attached managed scaling policy for an Amazon EMR cluster.
1088
+ #
1089
+ # @option params [required, String] :cluster_id
1090
+ # Specifies the ID of the cluster for which the managed scaling policy
1091
+ # will be fetched.
1092
+ #
1093
+ # @return [Types::GetManagedScalingPolicyOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1094
+ #
1095
+ # * {Types::GetManagedScalingPolicyOutput#managed_scaling_policy #managed_scaling_policy} => Types::ManagedScalingPolicy
1096
+ #
1097
+ # @example Request syntax with placeholder values
1098
+ #
1099
+ # resp = client.get_managed_scaling_policy({
1100
+ # cluster_id: "ClusterId", # required
1101
+ # })
1102
+ #
1103
+ # @example Response structure
1104
+ #
1105
+ # resp.managed_scaling_policy.compute_limits.unit_type #=> String, one of "InstanceFleetUnits", "Instances", "VCPU"
1106
+ # resp.managed_scaling_policy.compute_limits.minimum_capacity_units #=> Integer
1107
+ # resp.managed_scaling_policy.compute_limits.maximum_capacity_units #=> Integer
1108
+ # resp.managed_scaling_policy.compute_limits.maximum_on_demand_capacity_units #=> Integer
1109
+ #
1110
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicy AWS API Documentation
1111
+ #
1112
+ # @overload get_managed_scaling_policy(params = {})
1113
+ # @param [Hash] params ({})
1114
+ def get_managed_scaling_policy(params = {}, options = {})
1115
+ req = build_request(:get_managed_scaling_policy, params)
1116
+ req.send_request(options)
1117
+ end
1118
+
1020
1119
  # Provides information about the bootstrap actions associated with a
1021
1120
  # cluster.
1022
1121
  #
@@ -1032,6 +1131,8 @@ module Aws::EMR
1032
1131
  # * {Types::ListBootstrapActionsOutput#bootstrap_actions #bootstrap_actions} => Array&lt;Types::Command&gt;
1033
1132
  # * {Types::ListBootstrapActionsOutput#marker #marker} => String
1034
1133
  #
1134
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1135
+ #
1035
1136
  # @example Request syntax with placeholder values
1036
1137
  #
1037
1138
  # resp = client.list_bootstrap_actions({
@@ -1083,6 +1184,8 @@ module Aws::EMR
1083
1184
  # * {Types::ListClustersOutput#clusters #clusters} => Array&lt;Types::ClusterSummary&gt;
1084
1185
  # * {Types::ListClustersOutput#marker #marker} => String
1085
1186
  #
1187
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1188
+ #
1086
1189
  # @example Request syntax with placeholder values
1087
1190
  #
1088
1191
  # resp = client.list_clusters({
@@ -1136,6 +1239,8 @@ module Aws::EMR
1136
1239
  # * {Types::ListInstanceFleetsOutput#instance_fleets #instance_fleets} => Array&lt;Types::InstanceFleet&gt;
1137
1240
  # * {Types::ListInstanceFleetsOutput#marker #marker} => String
1138
1241
  #
1242
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1243
+ #
1139
1244
  # @example Request syntax with placeholder values
1140
1245
  #
1141
1246
  # resp = client.list_instance_fleets({
@@ -1203,6 +1308,8 @@ module Aws::EMR
1203
1308
  # * {Types::ListInstanceGroupsOutput#instance_groups #instance_groups} => Array&lt;Types::InstanceGroup&gt;
1204
1309
  # * {Types::ListInstanceGroupsOutput#marker #marker} => String
1205
1310
  #
1311
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1312
+ #
1206
1313
  # @example Request syntax with placeholder values
1207
1314
  #
1208
1315
  # resp = client.list_instance_groups({
@@ -1319,6 +1426,8 @@ module Aws::EMR
1319
1426
  # * {Types::ListInstancesOutput#instances #instances} => Array&lt;Types::Instance&gt;
1320
1427
  # * {Types::ListInstancesOutput#marker #marker} => String
1321
1428
  #
1429
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1430
+ #
1322
1431
  # @example Request syntax with placeholder values
1323
1432
  #
1324
1433
  # resp = client.list_instances({
@@ -1378,6 +1487,8 @@ module Aws::EMR
1378
1487
  # * {Types::ListSecurityConfigurationsOutput#security_configurations #security_configurations} => Array&lt;Types::SecurityConfigurationSummary&gt;
1379
1488
  # * {Types::ListSecurityConfigurationsOutput#marker #marker} => String
1380
1489
  #
1490
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1491
+ #
1381
1492
  # @example Request syntax with placeholder values
1382
1493
  #
1383
1494
  # resp = client.list_security_configurations({
@@ -1424,6 +1535,8 @@ module Aws::EMR
1424
1535
  # * {Types::ListStepsOutput#steps #steps} => Array&lt;Types::StepSummary&gt;
1425
1536
  # * {Types::ListStepsOutput#marker #marker} => String
1426
1537
  #
1538
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1539
+ #
1427
1540
  # @example Request syntax with placeholder values
1428
1541
  #
1429
1542
  # resp = client.list_steps({
@@ -1720,6 +1833,14 @@ module Aws::EMR
1720
1833
  # this by updating `BlockPublicSecurityGroupRules` to remove the
1721
1834
  # exception.
1722
1835
  #
1836
+ # <note markdown="1"> For accounts that created clusters in a Region before November 25,
1837
+ # 2019, block public access is disabled by default in that Region. To
1838
+ # use this feature, you must manually enable and configure it. For
1839
+ # accounts that did not create an EMR cluster in a Region before this
1840
+ # date, block public access is enabled by default in that Region.
1841
+ #
1842
+ # </note>
1843
+ #
1723
1844
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1724
1845
  #
1725
1846
  # @example Request syntax with placeholder values
@@ -1745,6 +1866,44 @@ module Aws::EMR
1745
1866
  req.send_request(options)
1746
1867
  end
1747
1868
 
1869
+ # Creates or updates a managed scaling policy for an Amazon EMR cluster.
1870
+ # The managed scaling policy defines the limits for resources, such as
1871
+ # EC2 instances that can be added or terminated from a cluster. The
1872
+ # policy only applies to the core and task nodes. The master node cannot
1873
+ # be scaled after initial configuration.
1874
+ #
1875
+ # @option params [required, String] :cluster_id
1876
+ # Specifies the ID of an EMR cluster where the managed scaling policy is
1877
+ # attached.
1878
+ #
1879
+ # @option params [required, Types::ManagedScalingPolicy] :managed_scaling_policy
1880
+ # Specifies the constraints for the managed scaling policy.
1881
+ #
1882
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1883
+ #
1884
+ # @example Request syntax with placeholder values
1885
+ #
1886
+ # resp = client.put_managed_scaling_policy({
1887
+ # cluster_id: "ClusterId", # required
1888
+ # managed_scaling_policy: { # required
1889
+ # compute_limits: {
1890
+ # unit_type: "InstanceFleetUnits", # required, accepts InstanceFleetUnits, Instances, VCPU
1891
+ # minimum_capacity_units: 1, # required
1892
+ # maximum_capacity_units: 1, # required
1893
+ # maximum_on_demand_capacity_units: 1,
1894
+ # },
1895
+ # },
1896
+ # })
1897
+ #
1898
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicy AWS API Documentation
1899
+ #
1900
+ # @overload put_managed_scaling_policy(params = {})
1901
+ # @param [Hash] params ({})
1902
+ def put_managed_scaling_policy(params = {}, options = {})
1903
+ req = build_request(:put_managed_scaling_policy, params)
1904
+ req.send_request(options)
1905
+ end
1906
+
1748
1907
  # Removes an automatic scaling policy from a specified instance group
1749
1908
  # within an EMR cluster.
1750
1909
  #
@@ -1774,6 +1933,29 @@ module Aws::EMR
1774
1933
  req.send_request(options)
1775
1934
  end
1776
1935
 
1936
+ # Removes a managed scaling policy from a specified EMR cluster.
1937
+ #
1938
+ # @option params [required, String] :cluster_id
1939
+ # Specifies the ID of the cluster from which the managed scaling policy
1940
+ # will be removed.
1941
+ #
1942
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1943
+ #
1944
+ # @example Request syntax with placeholder values
1945
+ #
1946
+ # resp = client.remove_managed_scaling_policy({
1947
+ # cluster_id: "ClusterId", # required
1948
+ # })
1949
+ #
1950
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicy AWS API Documentation
1951
+ #
1952
+ # @overload remove_managed_scaling_policy(params = {})
1953
+ # @param [Hash] params ({})
1954
+ def remove_managed_scaling_policy(params = {}, options = {})
1955
+ req = build_request(:remove_managed_scaling_policy, params)
1956
+ req.send_request(options)
1957
+ end
1958
+
1777
1959
  # Removes tags from an Amazon EMR resource. Tags make it easier to
1778
1960
  # associate clusters in various ways, such as grouping clusters to track
1779
1961
  # your Amazon EMR resource allocation costs. For more information, see
@@ -1855,6 +2037,12 @@ module Aws::EMR
1855
2037
  # The location in Amazon S3 to write the log files of the job flow. If a
1856
2038
  # value is not provided, logs are not created.
1857
2039
  #
2040
+ # @option params [String] :log_encryption_kms_key_id
2041
+ # The AWS KMS customer master key (CMK) used for encrypting log files.
2042
+ # If a value is not provided, the logs will remain encrypted by AES-256.
2043
+ # This attribute is only available with EMR version 5.30.0 and later,
2044
+ # excluding EMR 6.0.0.
2045
+ #
1858
2046
  # @option params [String] :additional_info
1859
2047
  # A JSON string for selecting additional features.
1860
2048
  #
@@ -2048,6 +2236,9 @@ module Aws::EMR
2048
2236
  # Specifies the number of steps that can be executed concurrently. The
2049
2237
  # default value is `1`. The maximum value is `256`.
2050
2238
  #
2239
+ # @option params [Types::ManagedScalingPolicy] :managed_scaling_policy
2240
+ # The specified managed scaling policy for an Amazon EMR cluster.
2241
+ #
2051
2242
  # @return [Types::RunJobFlowOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2052
2243
  #
2053
2244
  # * {Types::RunJobFlowOutput#job_flow_id #job_flow_id} => String
@@ -2058,6 +2249,7 @@ module Aws::EMR
2058
2249
  # resp = client.run_job_flow({
2059
2250
  # name: "XmlStringMaxLen256", # required
2060
2251
  # log_uri: "XmlString",
2252
+ # log_encryption_kms_key_id: "XmlString",
2061
2253
  # additional_info: "XmlString",
2062
2254
  # ami_version: "XmlStringMaxLen256",
2063
2255
  # release_label: "XmlStringMaxLen256",
@@ -2277,6 +2469,14 @@ module Aws::EMR
2277
2469
  # ad_domain_join_password: "XmlStringMaxLen256",
2278
2470
  # },
2279
2471
  # step_concurrency_level: 1,
2472
+ # managed_scaling_policy: {
2473
+ # compute_limits: {
2474
+ # unit_type: "InstanceFleetUnits", # required, accepts InstanceFleetUnits, Instances, VCPU
2475
+ # minimum_capacity_units: 1, # required
2476
+ # maximum_capacity_units: 1, # required
2477
+ # maximum_on_demand_capacity_units: 1,
2478
+ # },
2479
+ # },
2280
2480
  # })
2281
2481
  #
2282
2482
  # @example Response structure
@@ -2429,7 +2629,7 @@ module Aws::EMR
2429
2629
  params: params,
2430
2630
  config: config)
2431
2631
  context[:gem_name] = 'aws-sdk-emr'
2432
- context[:gem_version] = '1.24.0'
2632
+ context[:gem_version] = '1.29.0'
2433
2633
  Seahorse::Client::Request.new(handlers, context)
2434
2634
  end
2435
2635
 
@@ -2495,11 +2695,11 @@ module Aws::EMR
2495
2695
  # The following table lists the valid waiter names, the operations they call,
2496
2696
  # and the default `:delay` and `:max_attempts` values.
2497
2697
  #
2498
- # | waiter_name | params | :delay | :max_attempts |
2499
- # | ------------------ | ------------------- | -------- | ------------- |
2500
- # | cluster_running | {#describe_cluster} | 30 | 60 |
2501
- # | cluster_terminated | {#describe_cluster} | 30 | 60 |
2502
- # | step_complete | {#describe_step} | 30 | 60 |
2698
+ # | waiter_name | params | :delay | :max_attempts |
2699
+ # | ------------------ | ------------------------- | -------- | ------------- |
2700
+ # | cluster_running | {Client#describe_cluster} | 30 | 60 |
2701
+ # | cluster_terminated | {Client#describe_cluster} | 30 | 60 |
2702
+ # | step_complete | {Client#describe_step} | 30 | 60 |
2503
2703
  #
2504
2704
  # @raise [Errors::FailureStateError] Raised when the waiter terminates
2505
2705
  # because the waiter has entered a state that it will not transition
@@ -57,6 +57,8 @@ module Aws::EMR
57
57
  Command = Shapes::StructureShape.new(name: 'Command')
58
58
  CommandList = Shapes::ListShape.new(name: 'CommandList')
59
59
  ComparisonOperator = Shapes::StringShape.new(name: 'ComparisonOperator')
60
+ ComputeLimits = Shapes::StructureShape.new(name: 'ComputeLimits')
61
+ ComputeLimitsUnitType = Shapes::StringShape.new(name: 'ComputeLimitsUnitType')
60
62
  Configuration = Shapes::StructureShape.new(name: 'Configuration')
61
63
  ConfigurationList = Shapes::ListShape.new(name: 'ConfigurationList')
62
64
  CreateSecurityConfigurationInput = Shapes::StructureShape.new(name: 'CreateSecurityConfigurationInput')
@@ -87,6 +89,8 @@ module Aws::EMR
87
89
  FailureDetails = Shapes::StructureShape.new(name: 'FailureDetails')
88
90
  GetBlockPublicAccessConfigurationInput = Shapes::StructureShape.new(name: 'GetBlockPublicAccessConfigurationInput')
89
91
  GetBlockPublicAccessConfigurationOutput = Shapes::StructureShape.new(name: 'GetBlockPublicAccessConfigurationOutput')
92
+ GetManagedScalingPolicyInput = Shapes::StructureShape.new(name: 'GetManagedScalingPolicyInput')
93
+ GetManagedScalingPolicyOutput = Shapes::StructureShape.new(name: 'GetManagedScalingPolicyOutput')
90
94
  HadoopJarStepConfig = Shapes::StructureShape.new(name: 'HadoopJarStepConfig')
91
95
  HadoopStepConfig = Shapes::StructureShape.new(name: 'HadoopStepConfig')
92
96
  Instance = Shapes::StructureShape.new(name: 'Instance')
@@ -165,6 +169,7 @@ module Aws::EMR
165
169
  ListStepsInput = Shapes::StructureShape.new(name: 'ListStepsInput')
166
170
  ListStepsOutput = Shapes::StructureShape.new(name: 'ListStepsOutput')
167
171
  Long = Shapes::IntegerShape.new(name: 'Long')
172
+ ManagedScalingPolicy = Shapes::StructureShape.new(name: 'ManagedScalingPolicy')
168
173
  Marker = Shapes::StringShape.new(name: 'Marker')
169
174
  MarketType = Shapes::StringShape.new(name: 'MarketType')
170
175
  MetricDimension = Shapes::StructureShape.new(name: 'MetricDimension')
@@ -184,8 +189,12 @@ module Aws::EMR
184
189
  PutAutoScalingPolicyOutput = Shapes::StructureShape.new(name: 'PutAutoScalingPolicyOutput')
185
190
  PutBlockPublicAccessConfigurationInput = Shapes::StructureShape.new(name: 'PutBlockPublicAccessConfigurationInput')
186
191
  PutBlockPublicAccessConfigurationOutput = Shapes::StructureShape.new(name: 'PutBlockPublicAccessConfigurationOutput')
192
+ PutManagedScalingPolicyInput = Shapes::StructureShape.new(name: 'PutManagedScalingPolicyInput')
193
+ PutManagedScalingPolicyOutput = Shapes::StructureShape.new(name: 'PutManagedScalingPolicyOutput')
187
194
  RemoveAutoScalingPolicyInput = Shapes::StructureShape.new(name: 'RemoveAutoScalingPolicyInput')
188
195
  RemoveAutoScalingPolicyOutput = Shapes::StructureShape.new(name: 'RemoveAutoScalingPolicyOutput')
196
+ RemoveManagedScalingPolicyInput = Shapes::StructureShape.new(name: 'RemoveManagedScalingPolicyInput')
197
+ RemoveManagedScalingPolicyOutput = Shapes::StructureShape.new(name: 'RemoveManagedScalingPolicyOutput')
189
198
  RemoveTagsInput = Shapes::StructureShape.new(name: 'RemoveTagsInput')
190
199
  RemoveTagsOutput = Shapes::StructureShape.new(name: 'RemoveTagsOutput')
191
200
  RepoUpgradeOnBoot = Shapes::StringShape.new(name: 'RepoUpgradeOnBoot')
@@ -350,6 +359,7 @@ module Aws::EMR
350
359
  Cluster.add_member(:ec2_instance_attributes, Shapes::ShapeRef.new(shape: Ec2InstanceAttributes, location_name: "Ec2InstanceAttributes"))
351
360
  Cluster.add_member(:instance_collection_type, Shapes::ShapeRef.new(shape: InstanceCollectionType, location_name: "InstanceCollectionType"))
352
361
  Cluster.add_member(:log_uri, Shapes::ShapeRef.new(shape: String, location_name: "LogUri"))
362
+ Cluster.add_member(:log_encryption_kms_key_id, Shapes::ShapeRef.new(shape: String, location_name: "LogEncryptionKmsKeyId"))
353
363
  Cluster.add_member(:requested_ami_version, Shapes::ShapeRef.new(shape: String, location_name: "RequestedAmiVersion"))
354
364
  Cluster.add_member(:running_ami_version, Shapes::ShapeRef.new(shape: String, location_name: "RunningAmiVersion"))
355
365
  Cluster.add_member(:release_label, Shapes::ShapeRef.new(shape: String, location_name: "ReleaseLabel"))
@@ -370,8 +380,8 @@ module Aws::EMR
370
380
  Cluster.add_member(:repo_upgrade_on_boot, Shapes::ShapeRef.new(shape: RepoUpgradeOnBoot, location_name: "RepoUpgradeOnBoot"))
371
381
  Cluster.add_member(:kerberos_attributes, Shapes::ShapeRef.new(shape: KerberosAttributes, location_name: "KerberosAttributes"))
372
382
  Cluster.add_member(:cluster_arn, Shapes::ShapeRef.new(shape: ArnType, location_name: "ClusterArn"))
373
- Cluster.add_member(:step_concurrency_level, Shapes::ShapeRef.new(shape: Integer, location_name: "StepConcurrencyLevel"))
374
383
  Cluster.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: OptionalArnType, location_name: "OutpostArn"))
384
+ Cluster.add_member(:step_concurrency_level, Shapes::ShapeRef.new(shape: Integer, location_name: "StepConcurrencyLevel"))
375
385
  Cluster.struct_class = Types::Cluster
376
386
 
377
387
  ClusterStateChangeReason.add_member(:code, Shapes::ShapeRef.new(shape: ClusterStateChangeReasonCode, location_name: "Code"))
@@ -407,6 +417,12 @@ module Aws::EMR
407
417
 
408
418
  CommandList.member = Shapes::ShapeRef.new(shape: Command)
409
419
 
420
+ ComputeLimits.add_member(:unit_type, Shapes::ShapeRef.new(shape: ComputeLimitsUnitType, required: true, location_name: "UnitType"))
421
+ ComputeLimits.add_member(:minimum_capacity_units, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "MinimumCapacityUnits"))
422
+ ComputeLimits.add_member(:maximum_capacity_units, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "MaximumCapacityUnits"))
423
+ ComputeLimits.add_member(:maximum_on_demand_capacity_units, Shapes::ShapeRef.new(shape: Integer, location_name: "MaximumOnDemandCapacityUnits"))
424
+ ComputeLimits.struct_class = Types::ComputeLimits
425
+
410
426
  Configuration.add_member(:classification, Shapes::ShapeRef.new(shape: String, location_name: "Classification"))
411
427
  Configuration.add_member(:configurations, Shapes::ShapeRef.new(shape: ConfigurationList, location_name: "Configurations"))
412
428
  Configuration.add_member(:properties, Shapes::ShapeRef.new(shape: StringMap, location_name: "Properties"))
@@ -507,6 +523,12 @@ module Aws::EMR
507
523
  GetBlockPublicAccessConfigurationOutput.add_member(:block_public_access_configuration_metadata, Shapes::ShapeRef.new(shape: BlockPublicAccessConfigurationMetadata, required: true, location_name: "BlockPublicAccessConfigurationMetadata"))
508
524
  GetBlockPublicAccessConfigurationOutput.struct_class = Types::GetBlockPublicAccessConfigurationOutput
509
525
 
526
+ GetManagedScalingPolicyInput.add_member(:cluster_id, Shapes::ShapeRef.new(shape: ClusterId, required: true, location_name: "ClusterId"))
527
+ GetManagedScalingPolicyInput.struct_class = Types::GetManagedScalingPolicyInput
528
+
529
+ GetManagedScalingPolicyOutput.add_member(:managed_scaling_policy, Shapes::ShapeRef.new(shape: ManagedScalingPolicy, location_name: "ManagedScalingPolicy"))
530
+ GetManagedScalingPolicyOutput.struct_class = Types::GetManagedScalingPolicyOutput
531
+
510
532
  HadoopJarStepConfig.add_member(:properties, Shapes::ShapeRef.new(shape: KeyValueList, location_name: "Properties"))
511
533
  HadoopJarStepConfig.add_member(:jar, Shapes::ShapeRef.new(shape: XmlString, required: true, location_name: "Jar"))
512
534
  HadoopJarStepConfig.add_member(:main_class, Shapes::ShapeRef.new(shape: XmlString, location_name: "MainClass"))
@@ -702,6 +724,8 @@ module Aws::EMR
702
724
 
703
725
  InstanceTypeSpecificationList.member = Shapes::ShapeRef.new(shape: InstanceTypeSpecification)
704
726
 
727
+ InternalServerError.struct_class = Types::InternalServerError
728
+
705
729
  InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
706
730
  InternalServerException.struct_class = Types::InternalServerException
707
731
 
@@ -712,6 +736,7 @@ module Aws::EMR
712
736
  JobFlowDetail.add_member(:job_flow_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "JobFlowId"))
713
737
  JobFlowDetail.add_member(:name, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "Name"))
714
738
  JobFlowDetail.add_member(:log_uri, Shapes::ShapeRef.new(shape: XmlString, location_name: "LogUri"))
739
+ JobFlowDetail.add_member(:log_encryption_kms_key_id, Shapes::ShapeRef.new(shape: XmlString, location_name: "LogEncryptionKmsKeyId"))
715
740
  JobFlowDetail.add_member(:ami_version, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "AmiVersion"))
716
741
  JobFlowDetail.add_member(:execution_status_detail, Shapes::ShapeRef.new(shape: JobFlowExecutionStatusDetail, required: true, location_name: "ExecutionStatusDetail"))
717
742
  JobFlowDetail.add_member(:instances, Shapes::ShapeRef.new(shape: JobFlowInstancesDetail, required: true, location_name: "Instances"))
@@ -848,6 +873,9 @@ module Aws::EMR
848
873
  ListStepsOutput.add_member(:marker, Shapes::ShapeRef.new(shape: Marker, location_name: "Marker"))
849
874
  ListStepsOutput.struct_class = Types::ListStepsOutput
850
875
 
876
+ ManagedScalingPolicy.add_member(:compute_limits, Shapes::ShapeRef.new(shape: ComputeLimits, location_name: "ComputeLimits"))
877
+ ManagedScalingPolicy.struct_class = Types::ManagedScalingPolicy
878
+
851
879
  MetricDimension.add_member(:key, Shapes::ShapeRef.new(shape: String, location_name: "Key"))
852
880
  MetricDimension.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "Value"))
853
881
  MetricDimension.struct_class = Types::MetricDimension
@@ -897,12 +925,23 @@ module Aws::EMR
897
925
 
898
926
  PutBlockPublicAccessConfigurationOutput.struct_class = Types::PutBlockPublicAccessConfigurationOutput
899
927
 
928
+ PutManagedScalingPolicyInput.add_member(:cluster_id, Shapes::ShapeRef.new(shape: ClusterId, required: true, location_name: "ClusterId"))
929
+ PutManagedScalingPolicyInput.add_member(:managed_scaling_policy, Shapes::ShapeRef.new(shape: ManagedScalingPolicy, required: true, location_name: "ManagedScalingPolicy"))
930
+ PutManagedScalingPolicyInput.struct_class = Types::PutManagedScalingPolicyInput
931
+
932
+ PutManagedScalingPolicyOutput.struct_class = Types::PutManagedScalingPolicyOutput
933
+
900
934
  RemoveAutoScalingPolicyInput.add_member(:cluster_id, Shapes::ShapeRef.new(shape: ClusterId, required: true, location_name: "ClusterId"))
901
935
  RemoveAutoScalingPolicyInput.add_member(:instance_group_id, Shapes::ShapeRef.new(shape: InstanceGroupId, required: true, location_name: "InstanceGroupId"))
902
936
  RemoveAutoScalingPolicyInput.struct_class = Types::RemoveAutoScalingPolicyInput
903
937
 
904
938
  RemoveAutoScalingPolicyOutput.struct_class = Types::RemoveAutoScalingPolicyOutput
905
939
 
940
+ RemoveManagedScalingPolicyInput.add_member(:cluster_id, Shapes::ShapeRef.new(shape: ClusterId, required: true, location_name: "ClusterId"))
941
+ RemoveManagedScalingPolicyInput.struct_class = Types::RemoveManagedScalingPolicyInput
942
+
943
+ RemoveManagedScalingPolicyOutput.struct_class = Types::RemoveManagedScalingPolicyOutput
944
+
906
945
  RemoveTagsInput.add_member(:resource_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "ResourceId"))
907
946
  RemoveTagsInput.add_member(:tag_keys, Shapes::ShapeRef.new(shape: StringList, required: true, location_name: "TagKeys"))
908
947
  RemoveTagsInput.struct_class = Types::RemoveTagsInput
@@ -911,6 +950,7 @@ module Aws::EMR
911
950
 
912
951
  RunJobFlowInput.add_member(:name, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "Name"))
913
952
  RunJobFlowInput.add_member(:log_uri, Shapes::ShapeRef.new(shape: XmlString, location_name: "LogUri"))
953
+ RunJobFlowInput.add_member(:log_encryption_kms_key_id, Shapes::ShapeRef.new(shape: XmlString, location_name: "LogEncryptionKmsKeyId"))
914
954
  RunJobFlowInput.add_member(:additional_info, Shapes::ShapeRef.new(shape: XmlString, location_name: "AdditionalInfo"))
915
955
  RunJobFlowInput.add_member(:ami_version, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "AmiVersion"))
916
956
  RunJobFlowInput.add_member(:release_label, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "ReleaseLabel"))
@@ -933,6 +973,7 @@ module Aws::EMR
933
973
  RunJobFlowInput.add_member(:repo_upgrade_on_boot, Shapes::ShapeRef.new(shape: RepoUpgradeOnBoot, location_name: "RepoUpgradeOnBoot"))
934
974
  RunJobFlowInput.add_member(:kerberos_attributes, Shapes::ShapeRef.new(shape: KerberosAttributes, location_name: "KerberosAttributes"))
935
975
  RunJobFlowInput.add_member(:step_concurrency_level, Shapes::ShapeRef.new(shape: Integer, location_name: "StepConcurrencyLevel"))
976
+ RunJobFlowInput.add_member(:managed_scaling_policy, Shapes::ShapeRef.new(shape: ManagedScalingPolicy, location_name: "ManagedScalingPolicy"))
936
977
  RunJobFlowInput.struct_class = Types::RunJobFlowInput
937
978
 
938
979
  RunJobFlowOutput.add_member(:job_flow_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "JobFlowId"))
@@ -1213,6 +1254,14 @@ module Aws::EMR
1213
1254
  o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1214
1255
  end)
1215
1256
 
1257
+ api.add_operation(:get_managed_scaling_policy, Seahorse::Model::Operation.new.tap do |o|
1258
+ o.name = "GetManagedScalingPolicy"
1259
+ o.http_method = "POST"
1260
+ o.http_request_uri = "/"
1261
+ o.input = Shapes::ShapeRef.new(shape: GetManagedScalingPolicyInput)
1262
+ o.output = Shapes::ShapeRef.new(shape: GetManagedScalingPolicyOutput)
1263
+ end)
1264
+
1216
1265
  api.add_operation(:list_bootstrap_actions, Seahorse::Model::Operation.new.tap do |o|
1217
1266
  o.name = "ListBootstrapActions"
1218
1267
  o.http_method = "POST"
@@ -1365,6 +1414,14 @@ module Aws::EMR
1365
1414
  o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1366
1415
  end)
1367
1416
 
1417
+ api.add_operation(:put_managed_scaling_policy, Seahorse::Model::Operation.new.tap do |o|
1418
+ o.name = "PutManagedScalingPolicy"
1419
+ o.http_method = "POST"
1420
+ o.http_request_uri = "/"
1421
+ o.input = Shapes::ShapeRef.new(shape: PutManagedScalingPolicyInput)
1422
+ o.output = Shapes::ShapeRef.new(shape: PutManagedScalingPolicyOutput)
1423
+ end)
1424
+
1368
1425
  api.add_operation(:remove_auto_scaling_policy, Seahorse::Model::Operation.new.tap do |o|
1369
1426
  o.name = "RemoveAutoScalingPolicy"
1370
1427
  o.http_method = "POST"
@@ -1373,6 +1430,14 @@ module Aws::EMR
1373
1430
  o.output = Shapes::ShapeRef.new(shape: RemoveAutoScalingPolicyOutput)
1374
1431
  end)
1375
1432
 
1433
+ api.add_operation(:remove_managed_scaling_policy, Seahorse::Model::Operation.new.tap do |o|
1434
+ o.name = "RemoveManagedScalingPolicy"
1435
+ o.http_method = "POST"
1436
+ o.http_request_uri = "/"
1437
+ o.input = Shapes::ShapeRef.new(shape: RemoveManagedScalingPolicyInput)
1438
+ o.output = Shapes::ShapeRef.new(shape: RemoveManagedScalingPolicyOutput)
1439
+ end)
1440
+
1376
1441
  api.add_operation(:remove_tags, Seahorse::Model::Operation.new.tap do |o|
1377
1442
  o.name = "RemoveTags"
1378
1443
  o.http_method = "POST"
@@ -6,10 +6,45 @@
6
6
  # WARNING ABOUT GENERATED CODE
7
7
 
8
8
  module Aws::EMR
9
+
10
+ # When EMR returns an error response, the Ruby SDK constructs and raises an error.
11
+ # These errors all extend Aws::EMR::Errors::ServiceError < {Aws::Errors::ServiceError}
12
+ #
13
+ # You can rescue all EMR errors using ServiceError:
14
+ #
15
+ # begin
16
+ # # do stuff
17
+ # rescue Aws::EMR::Errors::ServiceError
18
+ # # rescues all EMR API errors
19
+ # end
20
+ #
21
+ #
22
+ # ## Request Context
23
+ # ServiceError objects have a {Aws::Errors::ServiceError#context #context} method that returns
24
+ # information about the request that generated the error.
25
+ # See {Seahorse::Client::RequestContext} for more information.
26
+ #
27
+ # ## Error Classes
28
+ # * {InternalServerError}
29
+ # * {InternalServerException}
30
+ # * {InvalidRequestException}
31
+ #
32
+ # Additionally, error classes are dynamically generated for service errors based on the error code
33
+ # if they are not defined above.
9
34
  module Errors
10
35
 
11
36
  extend Aws::Errors::DynamicErrors
12
37
 
38
+ class InternalServerError < ServiceError
39
+
40
+ # @param [Seahorse::Client::RequestContext] context
41
+ # @param [String] message
42
+ # @param [Aws::EMR::Types::InternalServerError] data
43
+ def initialize(context, message, data = Aws::EmptyStructure.new)
44
+ super(context, message, data)
45
+ end
46
+ end
47
+
13
48
  class InternalServerException < ServiceError
14
49
 
15
50
  # @param [Seahorse::Client::RequestContext] context
@@ -23,7 +58,6 @@ module Aws::EMR
23
58
  def message
24
59
  @message || @data[:message]
25
60
  end
26
-
27
61
  end
28
62
 
29
63
  class InvalidRequestException < ServiceError
@@ -44,7 +78,6 @@ module Aws::EMR
44
78
  def message
45
79
  @message || @data[:message]
46
80
  end
47
-
48
81
  end
49
82
 
50
83
  end
@@ -6,6 +6,7 @@
6
6
  # WARNING ABOUT GENERATED CODE
7
7
 
8
8
  module Aws::EMR
9
+
9
10
  class Resource
10
11
 
11
12
  # @param options ({})
@@ -819,6 +819,12 @@ module Aws::EMR
819
819
  # stored.
820
820
  # @return [String]
821
821
  #
822
+ # @!attribute [rw] log_encryption_kms_key_id
823
+ # The AWS KMS customer master key (CMK) used for encrypting log files.
824
+ # This attribute is only available with EMR version 5.30.0 and later,
825
+ # excluding EMR 6.0.0.
826
+ # @return [String]
827
+ #
822
828
  # @!attribute [rw] requested_ami_version
823
829
  # The AMI version requested for this cluster.
824
830
  # @return [String]
@@ -959,15 +965,15 @@ module Aws::EMR
959
965
  # The Amazon Resource Name of the cluster.
960
966
  # @return [String]
961
967
  #
962
- # @!attribute [rw] step_concurrency_level
963
- # Specifies the number of steps that can be executed concurrently.
964
- # @return [Integer]
965
- #
966
968
  # @!attribute [rw] outpost_arn
967
969
  # The Amazon Resource Name (ARN) of the Outpost where the cluster is
968
970
  # launched.
969
971
  # @return [String]
970
972
  #
973
+ # @!attribute [rw] step_concurrency_level
974
+ # Specifies the number of steps that can be executed concurrently.
975
+ # @return [Integer]
976
+ #
971
977
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Cluster AWS API Documentation
972
978
  #
973
979
  class Cluster < Struct.new(
@@ -977,6 +983,7 @@ module Aws::EMR
977
983
  :ec2_instance_attributes,
978
984
  :instance_collection_type,
979
985
  :log_uri,
986
+ :log_encryption_kms_key_id,
980
987
  :requested_ami_version,
981
988
  :running_ami_version,
982
989
  :release_label,
@@ -997,8 +1004,8 @@ module Aws::EMR
997
1004
  :repo_upgrade_on_boot,
998
1005
  :kerberos_attributes,
999
1006
  :cluster_arn,
1000
- :step_concurrency_level,
1001
- :outpost_arn)
1007
+ :outpost_arn,
1008
+ :step_concurrency_level)
1002
1009
  include Aws::Structure
1003
1010
  end
1004
1011
 
@@ -1135,6 +1142,60 @@ module Aws::EMR
1135
1142
  include Aws::Structure
1136
1143
  end
1137
1144
 
1145
+ # The EC2 unit limits for a managed scaling policy. The managed scaling
1146
+ # activity of a cluster can not be above or below these limits. The
1147
+ # limit only applies to the core and task nodes. The master node cannot
1148
+ # be scaled after initial configuration.
1149
+ #
1150
+ # @note When making an API call, you may pass ComputeLimits
1151
+ # data as a hash:
1152
+ #
1153
+ # {
1154
+ # unit_type: "InstanceFleetUnits", # required, accepts InstanceFleetUnits, Instances, VCPU
1155
+ # minimum_capacity_units: 1, # required
1156
+ # maximum_capacity_units: 1, # required
1157
+ # maximum_on_demand_capacity_units: 1,
1158
+ # }
1159
+ #
1160
+ # @!attribute [rw] unit_type
1161
+ # The unit type used for specifying a managed scaling policy.
1162
+ # @return [String]
1163
+ #
1164
+ # @!attribute [rw] minimum_capacity_units
1165
+ # The lower boundary of EC2 units. It is measured through VCPU cores
1166
+ # or instances for instance groups and measured through units for
1167
+ # instance fleets. Managed scaling activities are not allowed beyond
1168
+ # this boundary. The limit only applies to the core and task nodes.
1169
+ # The master node cannot be scaled after initial configuration.
1170
+ # @return [Integer]
1171
+ #
1172
+ # @!attribute [rw] maximum_capacity_units
1173
+ # The upper boundary of EC2 units. It is measured through VCPU cores
1174
+ # or instances for instance groups and measured through units for
1175
+ # instance fleets. Managed scaling activities are not allowed beyond
1176
+ # this boundary. The limit only applies to the core and task nodes.
1177
+ # The master node cannot be scaled after initial configuration.
1178
+ # @return [Integer]
1179
+ #
1180
+ # @!attribute [rw] maximum_on_demand_capacity_units
1181
+ # The upper boundary of on-demand EC2 units. It is measured through
1182
+ # VCPU cores or instances for instance groups and measured through
1183
+ # units for instance fleets. The on-demand units are not allowed to
1184
+ # scale beyond this boundary. The limit only applies to the core and
1185
+ # task nodes. The master node cannot be scaled after initial
1186
+ # configuration.
1187
+ # @return [Integer]
1188
+ #
1189
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ComputeLimits AWS API Documentation
1190
+ #
1191
+ class ComputeLimits < Struct.new(
1192
+ :unit_type,
1193
+ :minimum_capacity_units,
1194
+ :maximum_capacity_units,
1195
+ :maximum_on_demand_capacity_units)
1196
+ include Aws::Structure
1197
+ end
1198
+
1138
1199
  # <note markdown="1"> Amazon EMR releases 4.x or later.
1139
1200
  #
1140
1201
  # </note>
@@ -1675,6 +1736,14 @@ module Aws::EMR
1675
1736
  # exception, and public access is allowed on this port. You can change
1676
1737
  # this by updating the block public access configuration to remove the
1677
1738
  # exception.
1739
+ #
1740
+ # <note markdown="1"> For accounts that created clusters in a Region before November 25,
1741
+ # 2019, block public access is disabled by default in that Region. To
1742
+ # use this feature, you must manually enable and configure it. For
1743
+ # accounts that did not create an EMR cluster in a Region before this
1744
+ # date, block public access is enabled by default in that Region.
1745
+ #
1746
+ # </note>
1678
1747
  # @return [Types::BlockPublicAccessConfiguration]
1679
1748
  #
1680
1749
  # @!attribute [rw] block_public_access_configuration_metadata
@@ -1694,6 +1763,37 @@ module Aws::EMR
1694
1763
  include Aws::Structure
1695
1764
  end
1696
1765
 
1766
+ # @note When making an API call, you may pass GetManagedScalingPolicyInput
1767
+ # data as a hash:
1768
+ #
1769
+ # {
1770
+ # cluster_id: "ClusterId", # required
1771
+ # }
1772
+ #
1773
+ # @!attribute [rw] cluster_id
1774
+ # Specifies the ID of the cluster for which the managed scaling policy
1775
+ # will be fetched.
1776
+ # @return [String]
1777
+ #
1778
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicyInput AWS API Documentation
1779
+ #
1780
+ class GetManagedScalingPolicyInput < Struct.new(
1781
+ :cluster_id)
1782
+ include Aws::Structure
1783
+ end
1784
+
1785
+ # @!attribute [rw] managed_scaling_policy
1786
+ # Specifies the managed scaling policy that is attached to an Amazon
1787
+ # EMR cluster.
1788
+ # @return [Types::ManagedScalingPolicy]
1789
+ #
1790
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicyOutput AWS API Documentation
1791
+ #
1792
+ class GetManagedScalingPolicyOutput < Struct.new(
1793
+ :managed_scaling_policy)
1794
+ include Aws::Structure
1795
+ end
1796
+
1697
1797
  # A job flow step consisting of a JAR file whose main function will be
1698
1798
  # executed. The main function submits a job for Hadoop to execute and
1699
1799
  # waits for the job to finish or fail.
@@ -2994,6 +3094,13 @@ module Aws::EMR
2994
3094
  include Aws::Structure
2995
3095
  end
2996
3096
 
3097
+ # Indicates that an error occurred while processing the request and that
3098
+ # the request was not completed.
3099
+ #
3100
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InternalServerError AWS API Documentation
3101
+ #
3102
+ class InternalServerError < Aws::EmptyStructure; end
3103
+
2997
3104
  # This exception occurs when there is an internal failure in the EMR
2998
3105
  # service.
2999
3106
  #
@@ -3040,6 +3147,12 @@ module Aws::EMR
3040
3147
  # The location in Amazon S3 where log files for the job are stored.
3041
3148
  # @return [String]
3042
3149
  #
3150
+ # @!attribute [rw] log_encryption_kms_key_id
3151
+ # The AWS KMS customer master key (CMK) used for encrypting log files.
3152
+ # This attribute is only available with EMR version 5.30.0 and later,
3153
+ # excluding EMR 6.0.0.
3154
+ # @return [String]
3155
+ #
3043
3156
  # @!attribute [rw] ami_version
3044
3157
  # Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR
3045
3158
  # releases 4.0 and later, `ReleaseLabel` is used. To specify a custom
@@ -3120,6 +3233,7 @@ module Aws::EMR
3120
3233
  :job_flow_id,
3121
3234
  :name,
3122
3235
  :log_uri,
3236
+ :log_encryption_kms_key_id,
3123
3237
  :ami_version,
3124
3238
  :execution_status_detail,
3125
3239
  :instances,
@@ -3991,6 +4105,37 @@ module Aws::EMR
3991
4105
  include Aws::Structure
3992
4106
  end
3993
4107
 
4108
+ # Managed scaling policy for an Amazon EMR cluster. The policy specifies
4109
+ # the limits for resources that can be added or terminated from a
4110
+ # cluster. The policy only applies to the core and task nodes. The
4111
+ # master node cannot be scaled after initial configuration.
4112
+ #
4113
+ # @note When making an API call, you may pass ManagedScalingPolicy
4114
+ # data as a hash:
4115
+ #
4116
+ # {
4117
+ # compute_limits: {
4118
+ # unit_type: "InstanceFleetUnits", # required, accepts InstanceFleetUnits, Instances, VCPU
4119
+ # minimum_capacity_units: 1, # required
4120
+ # maximum_capacity_units: 1, # required
4121
+ # maximum_on_demand_capacity_units: 1,
4122
+ # },
4123
+ # }
4124
+ #
4125
+ # @!attribute [rw] compute_limits
4126
+ # The EC2 unit limits for a managed scaling policy. The managed
4127
+ # scaling activity of a cluster is not allowed to go above or below
4128
+ # these limits. The limit only applies to the core and task nodes. The
4129
+ # master node cannot be scaled after initial configuration.
4130
+ # @return [Types::ComputeLimits]
4131
+ #
4132
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ManagedScalingPolicy AWS API Documentation
4133
+ #
4134
+ class ManagedScalingPolicy < Struct.new(
4135
+ :compute_limits)
4136
+ include Aws::Structure
4137
+ end
4138
+
3994
4139
  # A CloudWatch dimension, which is specified using a `Key` (known as a
3995
4140
  # `Name` in CloudWatch), `Value` pair. By default, Amazon EMR uses one
3996
4141
  # dimension whose `Key` is `JobFlowID` and `Value` is a variable
@@ -4326,6 +4471,14 @@ module Aws::EMR
4326
4471
  # exception, and public access is allowed on this port. You can change
4327
4472
  # this by updating `BlockPublicSecurityGroupRules` to remove the
4328
4473
  # exception.
4474
+ #
4475
+ # <note markdown="1"> For accounts that created clusters in a Region before November 25,
4476
+ # 2019, block public access is disabled by default in that Region. To
4477
+ # use this feature, you must manually enable and configure it. For
4478
+ # accounts that did not create an EMR cluster in a Region before this
4479
+ # date, block public access is enabled by default in that Region.
4480
+ #
4481
+ # </note>
4329
4482
  # @return [Types::BlockPublicAccessConfiguration]
4330
4483
  #
4331
4484
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfigurationInput AWS API Documentation
@@ -4339,6 +4492,42 @@ module Aws::EMR
4339
4492
  #
4340
4493
  class PutBlockPublicAccessConfigurationOutput < Aws::EmptyStructure; end
4341
4494
 
4495
+ # @note When making an API call, you may pass PutManagedScalingPolicyInput
4496
+ # data as a hash:
4497
+ #
4498
+ # {
4499
+ # cluster_id: "ClusterId", # required
4500
+ # managed_scaling_policy: { # required
4501
+ # compute_limits: {
4502
+ # unit_type: "InstanceFleetUnits", # required, accepts InstanceFleetUnits, Instances, VCPU
4503
+ # minimum_capacity_units: 1, # required
4504
+ # maximum_capacity_units: 1, # required
4505
+ # maximum_on_demand_capacity_units: 1,
4506
+ # },
4507
+ # },
4508
+ # }
4509
+ #
4510
+ # @!attribute [rw] cluster_id
4511
+ # Specifies the ID of an EMR cluster where the managed scaling policy
4512
+ # is attached.
4513
+ # @return [String]
4514
+ #
4515
+ # @!attribute [rw] managed_scaling_policy
4516
+ # Specifies the constraints for the managed scaling policy.
4517
+ # @return [Types::ManagedScalingPolicy]
4518
+ #
4519
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicyInput AWS API Documentation
4520
+ #
4521
+ class PutManagedScalingPolicyInput < Struct.new(
4522
+ :cluster_id,
4523
+ :managed_scaling_policy)
4524
+ include Aws::Structure
4525
+ end
4526
+
4527
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicyOutput AWS API Documentation
4528
+ #
4529
+ class PutManagedScalingPolicyOutput < Aws::EmptyStructure; end
4530
+
4342
4531
  # @note When making an API call, you may pass RemoveAutoScalingPolicyInput
4343
4532
  # data as a hash:
4344
4533
  #
@@ -4369,6 +4558,29 @@ module Aws::EMR
4369
4558
  #
4370
4559
  class RemoveAutoScalingPolicyOutput < Aws::EmptyStructure; end
4371
4560
 
4561
+ # @note When making an API call, you may pass RemoveManagedScalingPolicyInput
4562
+ # data as a hash:
4563
+ #
4564
+ # {
4565
+ # cluster_id: "ClusterId", # required
4566
+ # }
4567
+ #
4568
+ # @!attribute [rw] cluster_id
4569
+ # Specifies the ID of the cluster from which the managed scaling
4570
+ # policy will be removed.
4571
+ # @return [String]
4572
+ #
4573
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicyInput AWS API Documentation
4574
+ #
4575
+ class RemoveManagedScalingPolicyInput < Struct.new(
4576
+ :cluster_id)
4577
+ include Aws::Structure
4578
+ end
4579
+
4580
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicyOutput AWS API Documentation
4581
+ #
4582
+ class RemoveManagedScalingPolicyOutput < Aws::EmptyStructure; end
4583
+
4372
4584
  # This input identifies a cluster and a list of tags to remove.
4373
4585
  #
4374
4586
  # @note When making an API call, you may pass RemoveTagsInput
@@ -4410,6 +4622,7 @@ module Aws::EMR
4410
4622
  # {
4411
4623
  # name: "XmlStringMaxLen256", # required
4412
4624
  # log_uri: "XmlString",
4625
+ # log_encryption_kms_key_id: "XmlString",
4413
4626
  # additional_info: "XmlString",
4414
4627
  # ami_version: "XmlStringMaxLen256",
4415
4628
  # release_label: "XmlStringMaxLen256",
@@ -4629,6 +4842,14 @@ module Aws::EMR
4629
4842
  # ad_domain_join_password: "XmlStringMaxLen256",
4630
4843
  # },
4631
4844
  # step_concurrency_level: 1,
4845
+ # managed_scaling_policy: {
4846
+ # compute_limits: {
4847
+ # unit_type: "InstanceFleetUnits", # required, accepts InstanceFleetUnits, Instances, VCPU
4848
+ # minimum_capacity_units: 1, # required
4849
+ # maximum_capacity_units: 1, # required
4850
+ # maximum_on_demand_capacity_units: 1,
4851
+ # },
4852
+ # },
4632
4853
  # }
4633
4854
  #
4634
4855
  # @!attribute [rw] name
@@ -4640,6 +4861,13 @@ module Aws::EMR
4640
4861
  # a value is not provided, logs are not created.
4641
4862
  # @return [String]
4642
4863
  #
4864
+ # @!attribute [rw] log_encryption_kms_key_id
4865
+ # The AWS KMS customer master key (CMK) used for encrypting log files.
4866
+ # If a value is not provided, the logs will remain encrypted by
4867
+ # AES-256. This attribute is only available with EMR version 5.30.0
4868
+ # and later, excluding EMR 6.0.0.
4869
+ # @return [String]
4870
+ #
4643
4871
  # @!attribute [rw] additional_info
4644
4872
  # A JSON string for selecting additional features.
4645
4873
  # @return [String]
@@ -4856,11 +5084,16 @@ module Aws::EMR
4856
5084
  # default value is `1`. The maximum value is `256`.
4857
5085
  # @return [Integer]
4858
5086
  #
5087
+ # @!attribute [rw] managed_scaling_policy
5088
+ # The specified managed scaling policy for an Amazon EMR cluster.
5089
+ # @return [Types::ManagedScalingPolicy]
5090
+ #
4859
5091
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlowInput AWS API Documentation
4860
5092
  #
4861
5093
  class RunJobFlowInput < Struct.new(
4862
5094
  :name,
4863
5095
  :log_uri,
5096
+ :log_encryption_kms_key_id,
4864
5097
  :additional_info,
4865
5098
  :ami_version,
4866
5099
  :release_label,
@@ -4882,7 +5115,8 @@ module Aws::EMR
4882
5115
  :ebs_root_volume_size,
4883
5116
  :repo_upgrade_on_boot,
4884
5117
  :kerberos_attributes,
4885
- :step_concurrency_level)
5118
+ :step_concurrency_level,
5119
+ :managed_scaling_policy)
4886
5120
  include Aws::Structure
4887
5121
  end
4888
5122
 
@@ -8,6 +8,69 @@
8
8
  require 'aws-sdk-core/waiters'
9
9
 
10
10
  module Aws::EMR
11
+ # Waiters are utility methods that poll for a particular state to occur
12
+ # on a client. Waiters can fail after a number of attempts at a polling
13
+ # interval defined for the service client.
14
+ #
15
+ # For a list of operations that can be waited for and the
16
+ # client methods called for each operation, see the table below or the
17
+ # {Client#wait_until} field documentation for the {Client}.
18
+ #
19
+ # # Invoking a Waiter
20
+ # To invoke a waiter, call #wait_until on a {Client}. The first parameter
21
+ # is the waiter name, which is specific to the service client and indicates
22
+ # which operation is being waited for. The second parameter is a hash of
23
+ # parameters that are passed to the client method called by the waiter,
24
+ # which varies according to the waiter name.
25
+ #
26
+ # # Wait Failures
27
+ # To catch errors in a waiter, use WaiterFailed,
28
+ # as shown in the following example.
29
+ #
30
+ # rescue rescue Aws::Waiters::Errors::WaiterFailed => error
31
+ # puts "failed waiting for instance running: #{error.message}
32
+ # end
33
+ #
34
+ # # Configuring a Waiter
35
+ # Each waiter has a default polling interval and a maximum number of
36
+ # attempts it will make before returning control to your program.
37
+ # To set these values, use the `max_attempts` and `delay` parameters
38
+ # in your `#wait_until` call.
39
+ # The following example waits for up to 25 seconds, polling every five seconds.
40
+ #
41
+ # client.wait_until(...) do |w|
42
+ # w.max_attempts = 5
43
+ # w.delay = 5
44
+ # end
45
+ #
46
+ # To disable wait failures, set the value of either of these parameters
47
+ # to `nil`.
48
+ #
49
+ # # Extending a Waiter
50
+ # To modify the behavior of waiters, you can register callbacks that are
51
+ # triggered before each polling attempt and before waiting.
52
+ #
53
+ # The following example implements an exponential backoff in a waiter
54
+ # by doubling the amount of time to wait on every attempt.
55
+ #
56
+ # client.wait_until(...) do |w|
57
+ # w.interval = 0 # disable normal sleep
58
+ # w.before_wait do |n, resp|
59
+ # sleep(n ** 2)
60
+ # end
61
+ # end
62
+ #
63
+ # # Available Waiters
64
+ #
65
+ # The following table lists the valid waiter names, the operations they call,
66
+ # and the default `:delay` and `:max_attempts` values.
67
+ #
68
+ # | waiter_name | params | :delay | :max_attempts |
69
+ # | ------------------ | ------------------------- | -------- | ------------- |
70
+ # | cluster_running | {Client#describe_cluster} | 30 | 60 |
71
+ # | cluster_terminated | {Client#describe_cluster} | 30 | 60 |
72
+ # | step_complete | {Client#describe_step} | 30 | 60 |
73
+ #
11
74
  module Waiters
12
75
 
13
76
  class ClusterRunning
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-emr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.24.0
4
+ version: 1.29.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-22 00:00:00.000000000 Z
11
+ date: 2020-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -82,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
82
  version: '0'
83
83
  requirements: []
84
84
  rubyforge_project:
85
- rubygems_version: 2.5.2.3
85
+ rubygems_version: 2.7.6.2
86
86
  signing_key:
87
87
  specification_version: 4
88
88
  summary: AWS SDK for Ruby - Amazon EMR