google-cloud-dataproc 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/google/cloud/dataproc.rb +53 -0
- data/lib/google/cloud/dataproc/v1/cluster_controller_client.rb +14 -16
- data/lib/google/cloud/dataproc/v1/clusters_pb.rb +2 -0
- data/lib/google/cloud/dataproc/v1/clusters_services_pb.rb +1 -1
- data/lib/google/cloud/dataproc/v1/doc/google/cloud/dataproc/v1/clusters.rb +29 -26
- data/lib/google/cloud/dataproc/v1/doc/google/cloud/dataproc/v1/jobs.rb +8 -7
- data/lib/google/cloud/dataproc/v1/doc/google/cloud/dataproc/v1/workflow_templates.rb +6 -6
- data/lib/google/cloud/dataproc/v1/job_controller_client.rb +4 -3
- data/lib/google/cloud/dataproc/v1/jobs_services_pb.rb +1 -1
- data/lib/google/cloud/dataproc/v1/shared_pb.rb +26 -0
- data/lib/google/cloud/dataproc/v1/workflow_template_service_client.rb +3 -3
- data/lib/google/cloud/dataproc/v1/workflow_templates_services_pb.rb +2 -3
- data/lib/google/cloud/dataproc/v1beta2.rb +58 -0
- data/lib/google/cloud/dataproc/v1beta2/autoscaling_policies_pb.rb +81 -0
- data/lib/google/cloud/dataproc/v1beta2/autoscaling_policies_services_pb.rb +60 -0
- data/lib/google/cloud/dataproc/v1beta2/autoscaling_policy_service_client.rb +457 -0
- data/lib/google/cloud/dataproc/v1beta2/autoscaling_policy_service_client_config.json +51 -0
- data/lib/google/cloud/dataproc/v1beta2/cluster_controller_client.rb +18 -16
- data/lib/google/cloud/dataproc/v1beta2/clusters_pb.rb +48 -0
- data/lib/google/cloud/dataproc/v1beta2/clusters_services_pb.rb +1 -1
- data/lib/google/cloud/dataproc/v1beta2/doc/google/cloud/dataproc/v1beta2/autoscaling_policies.rb +202 -0
- data/lib/google/cloud/dataproc/v1beta2/doc/google/cloud/dataproc/v1beta2/clusters.rb +172 -28
- data/lib/google/cloud/dataproc/v1beta2/doc/google/cloud/dataproc/v1beta2/jobs.rb +44 -9
- data/lib/google/cloud/dataproc/v1beta2/doc/google/cloud/dataproc/v1beta2/workflow_templates.rb +8 -6
- data/lib/google/cloud/dataproc/v1beta2/job_controller_client.rb +5 -5
- data/lib/google/cloud/dataproc/v1beta2/jobs_pb.rb +10 -0
- data/lib/google/cloud/dataproc/v1beta2/jobs_services_pb.rb +1 -1
- data/lib/google/cloud/dataproc/v1beta2/shared_pb.rb +12 -0
- data/lib/google/cloud/dataproc/v1beta2/workflow_template_service_client.rb +3 -3
- data/lib/google/cloud/dataproc/v1beta2/workflow_templates_services_pb.rb +2 -3
- data/lib/google/cloud/dataproc/version.rb +22 -0
- metadata +9 -2
@@ -0,0 +1,51 @@
|
|
1
|
+
{
|
2
|
+
"interfaces": {
|
3
|
+
"google.cloud.dataproc.v1beta2.AutoscalingPolicyService": {
|
4
|
+
"retry_codes": {
|
5
|
+
"idempotent": [
|
6
|
+
"DEADLINE_EXCEEDED",
|
7
|
+
"UNAVAILABLE"
|
8
|
+
],
|
9
|
+
"non_idempotent": []
|
10
|
+
},
|
11
|
+
"retry_params": {
|
12
|
+
"default": {
|
13
|
+
"initial_retry_delay_millis": 100,
|
14
|
+
"retry_delay_multiplier": 1.3,
|
15
|
+
"max_retry_delay_millis": 60000,
|
16
|
+
"initial_rpc_timeout_millis": 20000,
|
17
|
+
"rpc_timeout_multiplier": 1.0,
|
18
|
+
"max_rpc_timeout_millis": 20000,
|
19
|
+
"total_timeout_millis": 600000
|
20
|
+
}
|
21
|
+
},
|
22
|
+
"methods": {
|
23
|
+
"CreateAutoscalingPolicy": {
|
24
|
+
"timeout_millis": 60000,
|
25
|
+
"retry_codes_name": "non_idempotent",
|
26
|
+
"retry_params_name": "default"
|
27
|
+
},
|
28
|
+
"UpdateAutoscalingPolicy": {
|
29
|
+
"timeout_millis": 60000,
|
30
|
+
"retry_codes_name": "idempotent",
|
31
|
+
"retry_params_name": "default"
|
32
|
+
},
|
33
|
+
"GetAutoscalingPolicy": {
|
34
|
+
"timeout_millis": 60000,
|
35
|
+
"retry_codes_name": "idempotent",
|
36
|
+
"retry_params_name": "default"
|
37
|
+
},
|
38
|
+
"ListAutoscalingPolicies": {
|
39
|
+
"timeout_millis": 60000,
|
40
|
+
"retry_codes_name": "idempotent",
|
41
|
+
"retry_params_name": "default"
|
42
|
+
},
|
43
|
+
"DeleteAutoscalingPolicy": {
|
44
|
+
"timeout_millis": 60000,
|
45
|
+
"retry_codes_name": "non_idempotent",
|
46
|
+
"retry_params_name": "default"
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
@@ -29,6 +29,7 @@ require "google/longrunning/operations_client"
|
|
29
29
|
|
30
30
|
require "google/cloud/dataproc/v1beta2/clusters_pb"
|
31
31
|
require "google/cloud/dataproc/v1beta2/credentials"
|
32
|
+
require "google/cloud/dataproc/version"
|
32
33
|
|
33
34
|
module Google
|
34
35
|
module Cloud
|
@@ -146,7 +147,7 @@ module Google
|
|
146
147
|
updater_proc = credentials.updater_proc
|
147
148
|
end
|
148
149
|
|
149
|
-
package_version =
|
150
|
+
package_version = Google::Cloud::Dataproc::VERSION
|
150
151
|
|
151
152
|
google_api_client = "gl-ruby/#{RUBY_VERSION}"
|
152
153
|
google_api_client << " #{lib_name}/#{lib_version}" if lib_name
|
@@ -234,11 +235,10 @@ module Google
|
|
234
235
|
# can also be provided.
|
235
236
|
# @param request_id [String]
|
236
237
|
# Optional. A unique id used to identify the request. If the server
|
237
|
-
# receives two
|
238
|
-
#
|
239
|
-
#
|
240
|
-
#
|
241
|
-
# and stored in the backend is returned.
|
238
|
+
# receives two {Google::Cloud::Dataproc::V1beta2::CreateClusterRequest CreateClusterRequest} requests with the same
|
239
|
+
# id, then the second request will be ignored and the
|
240
|
+
# first {Google::Longrunning::Operation} created and stored in the backend
|
241
|
+
# is returned.
|
242
242
|
#
|
243
243
|
# It is recommended to always set this value to a
|
244
244
|
# [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
|
@@ -384,6 +384,10 @@ module Google
|
|
384
384
|
# <td>config.lifecycle_config.idle_delete_ttl</td><td>Update Idle TTL
|
385
385
|
# duration</td>
|
386
386
|
# </tr>
|
387
|
+
# <tr>
|
388
|
+
# <td>config.autoscaling_config.policy_uri</td><td>Use, stop using, or change
|
389
|
+
# autoscaling policies</td>
|
390
|
+
# </tr>
|
387
391
|
# </table>
|
388
392
|
# A hash of the same form as `Google::Protobuf::FieldMask`
|
389
393
|
# can also be provided.
|
@@ -400,11 +404,10 @@ module Google
|
|
400
404
|
# can also be provided.
|
401
405
|
# @param request_id [String]
|
402
406
|
# Optional. A unique id used to identify the request. If the server
|
403
|
-
# receives two
|
404
|
-
#
|
405
|
-
#
|
406
|
-
#
|
407
|
-
# and stored in the backend is returned.
|
407
|
+
# receives two {Google::Cloud::Dataproc::V1beta2::UpdateClusterRequest UpdateClusterRequest} requests with the same
|
408
|
+
# id, then the second request will be ignored and the
|
409
|
+
# first {Google::Longrunning::Operation} created and stored in the
|
410
|
+
# backend is returned.
|
408
411
|
#
|
409
412
|
# It is recommended to always set this value to a
|
410
413
|
# [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
|
@@ -507,11 +510,10 @@ module Google
|
|
507
510
|
# (with error NOT_FOUND) if cluster with specified UUID does not exist.
|
508
511
|
# @param request_id [String]
|
509
512
|
# Optional. A unique id used to identify the request. If the server
|
510
|
-
# receives two
|
511
|
-
#
|
512
|
-
#
|
513
|
-
#
|
514
|
-
# and stored in the backend is returned.
|
513
|
+
# receives two {Google::Cloud::Dataproc::V1beta2::DeleteClusterRequest DeleteClusterRequest} requests with the same
|
514
|
+
# id, then the second request will be ignored and the
|
515
|
+
# first {Google::Longrunning::Operation} created and stored in the
|
516
|
+
# backend is returned.
|
515
517
|
#
|
516
518
|
# It is recommended to always set this value to a
|
517
519
|
# [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
|
@@ -32,6 +32,16 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
32
32
|
optional :lifecycle_config, :message, 14, "google.cloud.dataproc.v1beta2.LifecycleConfig"
|
33
33
|
repeated :initialization_actions, :message, 11, "google.cloud.dataproc.v1beta2.NodeInitializationAction"
|
34
34
|
optional :encryption_config, :message, 15, "google.cloud.dataproc.v1beta2.EncryptionConfig"
|
35
|
+
optional :autoscaling_config, :message, 16, "google.cloud.dataproc.v1beta2.AutoscalingConfig"
|
36
|
+
optional :endpoint_config, :message, 17, "google.cloud.dataproc.v1beta2.EndpointConfig"
|
37
|
+
optional :security_config, :message, 18, "google.cloud.dataproc.v1beta2.SecurityConfig"
|
38
|
+
end
|
39
|
+
add_message "google.cloud.dataproc.v1beta2.EndpointConfig" do
|
40
|
+
map :http_ports, :string, :string, 1
|
41
|
+
optional :enable_http_port_access, :bool, 2
|
42
|
+
end
|
43
|
+
add_message "google.cloud.dataproc.v1beta2.AutoscalingConfig" do
|
44
|
+
optional :policy_uri, :string, 1
|
35
45
|
end
|
36
46
|
add_message "google.cloud.dataproc.v1beta2.EncryptionConfig" do
|
37
47
|
optional :gce_pd_kms_key_name, :string, 1
|
@@ -45,6 +55,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
45
55
|
repeated :service_account_scopes, :string, 3
|
46
56
|
repeated :tags, :string, 4
|
47
57
|
map :metadata, :string, :string, 5
|
58
|
+
optional :reservation_affinity, :message, 11, "google.cloud.dataproc.v1beta2.ReservationAffinity"
|
48
59
|
end
|
49
60
|
add_message "google.cloud.dataproc.v1beta2.InstanceGroupConfig" do
|
50
61
|
optional :num_instances, :int32, 1
|
@@ -77,6 +88,25 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
77
88
|
optional :auto_delete_ttl, :message, 3, "google.protobuf.Duration"
|
78
89
|
end
|
79
90
|
end
|
91
|
+
add_message "google.cloud.dataproc.v1beta2.SecurityConfig" do
|
92
|
+
optional :kerberos_config, :message, 1, "google.cloud.dataproc.v1beta2.KerberosConfig"
|
93
|
+
end
|
94
|
+
add_message "google.cloud.dataproc.v1beta2.KerberosConfig" do
|
95
|
+
optional :enable_kerberos, :bool, 1
|
96
|
+
optional :root_principal_password_uri, :string, 2
|
97
|
+
optional :kms_key_uri, :string, 3
|
98
|
+
optional :keystore_uri, :string, 4
|
99
|
+
optional :truststore_uri, :string, 5
|
100
|
+
optional :keystore_password_uri, :string, 6
|
101
|
+
optional :key_password_uri, :string, 7
|
102
|
+
optional :truststore_password_uri, :string, 8
|
103
|
+
optional :cross_realm_trust_realm, :string, 9
|
104
|
+
optional :cross_realm_trust_kdc, :string, 10
|
105
|
+
optional :cross_realm_trust_admin_server, :string, 11
|
106
|
+
optional :cross_realm_trust_shared_password_uri, :string, 12
|
107
|
+
optional :kdc_db_key_uri, :string, 13
|
108
|
+
optional :tgt_lifetime_hours, :int32, 14
|
109
|
+
end
|
80
110
|
add_message "google.cloud.dataproc.v1beta2.NodeInitializationAction" do
|
81
111
|
optional :executable_file, :string, 1
|
82
112
|
optional :execution_timeout, :message, 2, "google.protobuf.Duration"
|
@@ -103,6 +133,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
103
133
|
add_message "google.cloud.dataproc.v1beta2.SoftwareConfig" do
|
104
134
|
optional :image_version, :string, 1
|
105
135
|
map :properties, :string, :string, 2
|
136
|
+
repeated :optional_components, :enum, 3, "google.cloud.dataproc.v1beta2.Component"
|
106
137
|
end
|
107
138
|
add_message "google.cloud.dataproc.v1beta2.ClusterMetrics" do
|
108
139
|
map :hdfs_metrics, :string, :int64, 1
|
@@ -154,6 +185,17 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
154
185
|
add_message "google.cloud.dataproc.v1beta2.DiagnoseClusterResults" do
|
155
186
|
optional :output_uri, :string, 1
|
156
187
|
end
|
188
|
+
add_message "google.cloud.dataproc.v1beta2.ReservationAffinity" do
|
189
|
+
optional :consume_reservation_type, :enum, 1, "google.cloud.dataproc.v1beta2.ReservationAffinity.Type"
|
190
|
+
optional :key, :string, 2
|
191
|
+
repeated :values, :string, 3
|
192
|
+
end
|
193
|
+
add_enum "google.cloud.dataproc.v1beta2.ReservationAffinity.Type" do
|
194
|
+
value :TYPE_UNSPECIFIED, 0
|
195
|
+
value :NO_RESERVATION, 1
|
196
|
+
value :ANY_RESERVATION, 2
|
197
|
+
value :SPECIFIC_RESERVATION, 3
|
198
|
+
end
|
157
199
|
end
|
158
200
|
|
159
201
|
module Google
|
@@ -162,6 +204,8 @@ module Google
|
|
162
204
|
module V1beta2
|
163
205
|
Cluster = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.Cluster").msgclass
|
164
206
|
ClusterConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.ClusterConfig").msgclass
|
207
|
+
EndpointConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.EndpointConfig").msgclass
|
208
|
+
AutoscalingConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.AutoscalingConfig").msgclass
|
165
209
|
EncryptionConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.EncryptionConfig").msgclass
|
166
210
|
GceClusterConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.GceClusterConfig").msgclass
|
167
211
|
InstanceGroupConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.InstanceGroupConfig").msgclass
|
@@ -169,6 +213,8 @@ module Google
|
|
169
213
|
AcceleratorConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.AcceleratorConfig").msgclass
|
170
214
|
DiskConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.DiskConfig").msgclass
|
171
215
|
LifecycleConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.LifecycleConfig").msgclass
|
216
|
+
SecurityConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.SecurityConfig").msgclass
|
217
|
+
KerberosConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.KerberosConfig").msgclass
|
172
218
|
NodeInitializationAction = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.NodeInitializationAction").msgclass
|
173
219
|
ClusterStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.ClusterStatus").msgclass
|
174
220
|
ClusterStatus::State = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.ClusterStatus.State").enummodule
|
@@ -183,6 +229,8 @@ module Google
|
|
183
229
|
ListClustersResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.ListClustersResponse").msgclass
|
184
230
|
DiagnoseClusterRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.DiagnoseClusterRequest").msgclass
|
185
231
|
DiagnoseClusterResults = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.DiagnoseClusterResults").msgclass
|
232
|
+
ReservationAffinity = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.ReservationAffinity").msgclass
|
233
|
+
ReservationAffinity::Type = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataproc.v1beta2.ReservationAffinity.Type").enummodule
|
186
234
|
end
|
187
235
|
end
|
188
236
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
2
|
# Source: google/cloud/dataproc/v1beta2/clusters.proto for package 'google.cloud.dataproc.v1beta2'
|
3
3
|
# Original file comments:
|
4
|
-
# Copyright
|
4
|
+
# Copyright 2019 Google LLC.
|
5
5
|
#
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
7
|
# you may not use this file except in compliance with the License.
|
data/lib/google/cloud/dataproc/v1beta2/doc/google/cloud/dataproc/v1beta2/autoscaling_policies.rb
ADDED
@@ -0,0 +1,202 @@
|
|
1
|
+
# Copyright 2019 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
|
16
|
+
module Google
|
17
|
+
module Cloud
|
18
|
+
module Dataproc
|
19
|
+
module V1beta2
|
20
|
+
# Describes an autoscaling policy for Dataproc cluster autoscaler.
|
21
|
+
# @!attribute [rw] id
|
22
|
+
# @return [String]
|
23
|
+
# Required. The policy id.
|
24
|
+
#
|
25
|
+
# The id must contain only letters (a-z, A-Z), numbers (0-9),
|
26
|
+
# underscores (_), and hyphens (-). Cannot begin or end with underscore
|
27
|
+
# or hyphen. Must consist of between 3 and 50 characters.
|
28
|
+
# @!attribute [rw] name
|
29
|
+
# @return [String]
|
30
|
+
# Output only. The "resource name" of the policy, as described
|
31
|
+
# in https://cloud.google.com/apis/design/resource_names of the form
|
32
|
+
# `projects/{project_id}/regions/{region}/autoscalingPolicies/{policy_id}`.
|
33
|
+
# @!attribute [rw] basic_algorithm
|
34
|
+
# @return [Google::Cloud::Dataproc::V1beta2::BasicAutoscalingAlgorithm]
|
35
|
+
# @!attribute [rw] worker_config
|
36
|
+
# @return [Google::Cloud::Dataproc::V1beta2::InstanceGroupAutoscalingPolicyConfig]
|
37
|
+
# Required. Describes how the autoscaler will operate for primary workers.
|
38
|
+
# @!attribute [rw] secondary_worker_config
|
39
|
+
# @return [Google::Cloud::Dataproc::V1beta2::InstanceGroupAutoscalingPolicyConfig]
|
40
|
+
# Optional. Describes how the autoscaler will operate for secondary workers.
|
41
|
+
class AutoscalingPolicy; end
|
42
|
+
|
43
|
+
# Basic algorithm for autoscaling.
|
44
|
+
# @!attribute [rw] yarn_config
|
45
|
+
# @return [Google::Cloud::Dataproc::V1beta2::BasicYarnAutoscalingConfig]
|
46
|
+
# Required. YARN autoscaling configuration.
|
47
|
+
# @!attribute [rw] cooldown_period
|
48
|
+
# @return [Google::Protobuf::Duration]
|
49
|
+
# Optional. Duration between scaling events. A scaling period starts after
|
50
|
+
# the update operation from the previous event has completed.
|
51
|
+
#
|
52
|
+
# Bounds: [2m, 1d]. Default: 2m.
|
53
|
+
class BasicAutoscalingAlgorithm; end
|
54
|
+
|
55
|
+
# Basic autoscaling configurations for YARN.
|
56
|
+
# @!attribute [rw] graceful_decommission_timeout
|
57
|
+
# @return [Google::Protobuf::Duration]
|
58
|
+
# Required. Timeout for YARN graceful decommissioning of Node Managers.
|
59
|
+
# Specifies the duration to wait for jobs to complete before forcefully
|
60
|
+
# removing workers (and potentially interrupting jobs). Only applicable to
|
61
|
+
# downscaling operations.
|
62
|
+
#
|
63
|
+
# Bounds: [0s, 1d].
|
64
|
+
# @!attribute [rw] scale_up_factor
|
65
|
+
# @return [Float]
|
66
|
+
# Required. Fraction of average pending memory in the last cooldown period
|
67
|
+
# for which to add workers. A scale-up factor of 1.0 will result in scaling
|
68
|
+
# up so that there is no pending memory remaining after the update (more
|
69
|
+
# aggressive scaling). A scale-up factor closer to 0 will result in a smaller
|
70
|
+
# magnitude of scaling up (less aggressive scaling).
|
71
|
+
#
|
72
|
+
# Bounds: [0.0, 1.0].
|
73
|
+
# @!attribute [rw] scale_down_factor
|
74
|
+
# @return [Float]
|
75
|
+
# Required. Fraction of average pending memory in the last cooldown period
|
76
|
+
# for which to remove workers. A scale-down factor of 1 will result in
|
77
|
+
# scaling down so that there is no available memory remaining after the
|
78
|
+
# update (more aggressive scaling). A scale-down factor of 0 disables
|
79
|
+
# removing workers, which can be beneficial for autoscaling a single job.
|
80
|
+
#
|
81
|
+
# Bounds: [0.0, 1.0].
|
82
|
+
# @!attribute [rw] scale_up_min_worker_fraction
|
83
|
+
# @return [Float]
|
84
|
+
# Optional. Minimum scale-up threshold as a fraction of total cluster size
|
85
|
+
# before scaling occurs. For example, in a 20-worker cluster, a threshold of
|
86
|
+
# 0.1 means the autoscaler must recommend at least a 2-worker scale-up for
|
87
|
+
# the cluster to scale. A threshold of 0 means the autoscaler will scale up
|
88
|
+
# on any recommended change.
|
89
|
+
#
|
90
|
+
# Bounds: [0.0, 1.0]. Default: 0.0.
|
91
|
+
# @!attribute [rw] scale_down_min_worker_fraction
|
92
|
+
# @return [Float]
|
93
|
+
# Optional. Minimum scale-down threshold as a fraction of total cluster size
|
94
|
+
# before scaling occurs. For example, in a 20-worker cluster, a threshold of
|
95
|
+
# 0.1 means the autoscaler must recommend at least a 2 worker scale-down for
|
96
|
+
# the cluster to scale. A threshold of 0 means the autoscaler will scale down
|
97
|
+
# on any recommended change.
|
98
|
+
#
|
99
|
+
# Bounds: [0.0, 1.0]. Default: 0.0.
|
100
|
+
class BasicYarnAutoscalingConfig; end
|
101
|
+
|
102
|
+
# Configuration for the size bounds of an instance group, including its
|
103
|
+
# proportional size to other groups.
|
104
|
+
# @!attribute [rw] min_instances
|
105
|
+
# @return [Integer]
|
106
|
+
# Optional. Minimum number of instances for this group.
|
107
|
+
#
|
108
|
+
# Primary workers - Bounds: [2, max_instances]. Default: 2.
|
109
|
+
# Secondary workers - Bounds: [0, max_instances]. Default: 0.
|
110
|
+
# @!attribute [rw] max_instances
|
111
|
+
# @return [Integer]
|
112
|
+
# Optional. Maximum number of instances for this group. Required for primary
|
113
|
+
# workers. Note that by default, clusters will not use secondary workers.
|
114
|
+
# Required for secondary workers if the minimum secondary instances is set.
|
115
|
+
#
|
116
|
+
# Primary workers - Bounds: [min_instances, ). Required.
|
117
|
+
# Secondary workers - Bounds: [min_instances, ). Default: 0.
|
118
|
+
# @!attribute [rw] weight
|
119
|
+
# @return [Integer]
|
120
|
+
# Optional. Weight for the instance group, which is used to determine the
|
121
|
+
# fraction of total workers in the cluster from this instance group.
|
122
|
+
# For example, if primary workers have weight 2, and secondary workers have
|
123
|
+
# weight 1, the cluster will have approximately 2 primary workers for each
|
124
|
+
# secondary worker.
|
125
|
+
#
|
126
|
+
# The cluster may not reach the specified balance if constrained
|
127
|
+
# by min/max bounds or other autoscaling settings. For example, if
|
128
|
+
# `max_instances` for secondary workers is 0, then only primary workers will
|
129
|
+
# be added. The cluster can also be out of balance when created.
|
130
|
+
#
|
131
|
+
# If weight is not set on any instance group, the cluster will default to
|
132
|
+
# equal weight for all groups: the cluster will attempt to maintain an equal
|
133
|
+
# number of workers in each group within the configured size bounds for each
|
134
|
+
# group. If weight is set for one group only, the cluster will default to
|
135
|
+
# zero weight on the unset group. For example if weight is set only on
|
136
|
+
# primary workers, the cluster will use primary workers only and no
|
137
|
+
# secondary workers.
|
138
|
+
class InstanceGroupAutoscalingPolicyConfig; end
|
139
|
+
|
140
|
+
# A request to create an autoscaling policy.
|
141
|
+
# @!attribute [rw] parent
|
142
|
+
# @return [String]
|
143
|
+
# Required. The "resource name" of the region, as described
|
144
|
+
# in https://cloud.google.com/apis/design/resource_names of the form
|
145
|
+
# `projects/{project_id}/regions/{region}`.
|
146
|
+
# @!attribute [rw] policy
|
147
|
+
# @return [Google::Cloud::Dataproc::V1beta2::AutoscalingPolicy]
|
148
|
+
# The autoscaling policy to create.
|
149
|
+
class CreateAutoscalingPolicyRequest; end
|
150
|
+
|
151
|
+
# A request to fetch an autoscaling policy.
|
152
|
+
# @!attribute [rw] name
|
153
|
+
# @return [String]
|
154
|
+
# Required. The "resource name" of the autoscaling policy, as described
|
155
|
+
# in https://cloud.google.com/apis/design/resource_names of the form
|
156
|
+
# `projects/{project_id}/regions/{region}/autoscalingPolicies/{policy_id}`.
|
157
|
+
class GetAutoscalingPolicyRequest; end
|
158
|
+
|
159
|
+
# A request to update an autoscaling policy.
|
160
|
+
# @!attribute [rw] policy
|
161
|
+
# @return [Google::Cloud::Dataproc::V1beta2::AutoscalingPolicy]
|
162
|
+
# Required. The updated autoscaling policy.
|
163
|
+
class UpdateAutoscalingPolicyRequest; end
|
164
|
+
|
165
|
+
# A request to delete an autoscaling policy.
|
166
|
+
#
|
167
|
+
# Autoscaling policies in use by one or more clusters will not be deleted.
|
168
|
+
# @!attribute [rw] name
|
169
|
+
# @return [String]
|
170
|
+
# Required. The "resource name" of the autoscaling policy, as described
|
171
|
+
# in https://cloud.google.com/apis/design/resource_names of the form
|
172
|
+
# `projects/{project_id}/regions/{region}/autoscalingPolicies/{policy_id}`.
|
173
|
+
class DeleteAutoscalingPolicyRequest; end
|
174
|
+
|
175
|
+
# A request to list autoscaling policies in a project.
|
176
|
+
# @!attribute [rw] parent
|
177
|
+
# @return [String]
|
178
|
+
# Required. The "resource name" of the region, as described
|
179
|
+
# in https://cloud.google.com/apis/design/resource_names of the form
|
180
|
+
# `projects/{project_id}/regions/{region}`
|
181
|
+
# @!attribute [rw] page_size
|
182
|
+
# @return [Integer]
|
183
|
+
# Optional. The maximum number of results to return in each response.
|
184
|
+
# @!attribute [rw] page_token
|
185
|
+
# @return [String]
|
186
|
+
# Optional. The page token, returned by a previous call, to request the
|
187
|
+
# next page of results.
|
188
|
+
class ListAutoscalingPoliciesRequest; end
|
189
|
+
|
190
|
+
# A response to a request to list autoscaling policies in a project.
|
191
|
+
# @!attribute [rw] policies
|
192
|
+
# @return [Array<Google::Cloud::Dataproc::V1beta2::AutoscalingPolicy>]
|
193
|
+
# Output only. Autoscaling policies list.
|
194
|
+
# @!attribute [rw] next_page_token
|
195
|
+
# @return [String]
|
196
|
+
# Output only. This token is included in the response if there are more
|
197
|
+
# results to fetch.
|
198
|
+
class ListAutoscalingPoliciesResponse; end
|
199
|
+
end
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
@@ -60,15 +60,18 @@ module Google
|
|
60
60
|
# The cluster config.
|
61
61
|
# @!attribute [rw] config_bucket
|
62
62
|
# @return [String]
|
63
|
-
# Optional. A Cloud Storage
|
64
|
-
#
|
65
|
-
#
|
63
|
+
# Optional. A Google Cloud Storage bucket used to stage job
|
64
|
+
# dependencies, config files, and job driver console output.
|
65
|
+
# If you do not specify a staging bucket, Cloud
|
66
|
+
# Dataproc will determine a Cloud Storage location (US,
|
66
67
|
# ASIA, or EU) for your cluster's staging bucket according to the Google
|
67
|
-
# Compute Engine zone where your cluster is deployed, and then
|
68
|
-
# and manage this project-level, per-location bucket
|
68
|
+
# Compute Engine zone where your cluster is deployed, and then create
|
69
|
+
# and manage this project-level, per-location bucket (see
|
70
|
+
# [Cloud Dataproc staging
|
71
|
+
# bucket](/dataproc/docs/concepts/configuring-clusters/staging-bucket)).
|
69
72
|
# @!attribute [rw] gce_cluster_config
|
70
73
|
# @return [Google::Cloud::Dataproc::V1beta2::GceClusterConfig]
|
71
|
-
#
|
74
|
+
# Optional. The shared Compute Engine config settings for
|
72
75
|
# all instances in a cluster.
|
73
76
|
# @!attribute [rw] master_config
|
74
77
|
# @return [Google::Cloud::Dataproc::V1beta2::InstanceGroupConfig]
|
@@ -106,8 +109,43 @@ module Google
|
|
106
109
|
# @!attribute [rw] encryption_config
|
107
110
|
# @return [Google::Cloud::Dataproc::V1beta2::EncryptionConfig]
|
108
111
|
# Optional. Encryption settings for the cluster.
|
112
|
+
# @!attribute [rw] autoscaling_config
|
113
|
+
# @return [Google::Cloud::Dataproc::V1beta2::AutoscalingConfig]
|
114
|
+
# Optional. Autoscaling config for the policy associated with the cluster.
|
115
|
+
# Cluster does not autoscale if this field is unset.
|
116
|
+
# @!attribute [rw] endpoint_config
|
117
|
+
# @return [Google::Cloud::Dataproc::V1beta2::EndpointConfig]
|
118
|
+
# Optional. Port/endpoint configuration for this cluster
|
119
|
+
# @!attribute [rw] security_config
|
120
|
+
# @return [Google::Cloud::Dataproc::V1beta2::SecurityConfig]
|
121
|
+
# Optional. Security related configuration.
|
109
122
|
class ClusterConfig; end
|
110
123
|
|
124
|
+
# Endpoint config for this cluster
|
125
|
+
# @!attribute [rw] http_ports
|
126
|
+
# @return [Hash{String => String}]
|
127
|
+
# Output only. The map of port descriptions to URLs. Will only be populated
|
128
|
+
# if enable_http_port_access is true.
|
129
|
+
# @!attribute [rw] enable_http_port_access
|
130
|
+
# @return [true, false]
|
131
|
+
# Optional. If true, enable http access to specific ports on the cluster
|
132
|
+
# from external sources. Defaults to false.
|
133
|
+
class EndpointConfig; end
|
134
|
+
|
135
|
+
# Autoscaling Policy config associated with the cluster.
|
136
|
+
# @!attribute [rw] policy_uri
|
137
|
+
# @return [String]
|
138
|
+
# Optional. The autoscaling policy used by the cluster.
|
139
|
+
#
|
140
|
+
# Only resource names including projectid and location (region) are valid.
|
141
|
+
# Examples:
|
142
|
+
#
|
143
|
+
# * `https://www.googleapis.com/compute/v1/projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]`
|
144
|
+
# * `projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]`
|
145
|
+
#
|
146
|
+
# Note that the policy must be in the same project and Cloud Dataproc region.
|
147
|
+
class AutoscalingConfig; end
|
148
|
+
|
111
149
|
# Encryption settings for the cluster.
|
112
150
|
# @!attribute [rw] gce_pd_kms_key_name
|
113
151
|
# @return [String]
|
@@ -150,8 +188,8 @@ module Google
|
|
150
188
|
#
|
151
189
|
# A full URL, partial URI, or short name are valid. Examples:
|
152
190
|
#
|
153
|
-
# * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0`
|
154
|
-
# * `projects/[project_id]/regions/us-east1/sub0`
|
191
|
+
# * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0`
|
192
|
+
# * `projects/[project_id]/regions/us-east1/subnetworks/sub0`
|
155
193
|
# * `sub0`
|
156
194
|
# @!attribute [rw] internal_ip_only
|
157
195
|
# @return [true, false]
|
@@ -199,6 +237,9 @@ module Google
|
|
199
237
|
# The Compute Engine metadata entries to add to all instances (see
|
200
238
|
# [Project and instance
|
201
239
|
# metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
|
240
|
+
# @!attribute [rw] reservation_affinity
|
241
|
+
# @return [Google::Cloud::Dataproc::V1beta2::ReservationAffinity]
|
242
|
+
# Optional. Reservation Affinity for consuming Zonal reservation.
|
202
243
|
class GceClusterConfig; end
|
203
244
|
|
204
245
|
# Optional. The config settings for Compute Engine resources in
|
@@ -272,8 +313,9 @@ module Google
|
|
272
313
|
# @!attribute [rw] accelerator_type_uri
|
273
314
|
# @return [String]
|
274
315
|
# Full URL, partial URI, or short name of the accelerator type resource to
|
275
|
-
# expose to this instance. See
|
276
|
-
#
|
316
|
+
# expose to this instance. See
|
317
|
+
# [Compute Engine
|
318
|
+
# AcceleratorTypes](/compute/docs/reference/beta/acceleratorTypes)
|
277
319
|
#
|
278
320
|
# Examples
|
279
321
|
# * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80`
|
@@ -329,6 +371,77 @@ module Google
|
|
329
371
|
# Example: **"1d"**, to delete the cluster 1 day after its creation..
|
330
372
|
class LifecycleConfig; end
|
331
373
|
|
374
|
+
# Security related configuration, including encryption, Kerberos, etc.
|
375
|
+
# @!attribute [rw] kerberos_config
|
376
|
+
# @return [Google::Cloud::Dataproc::V1beta2::KerberosConfig]
|
377
|
+
# Kerberos related configuration.
|
378
|
+
class SecurityConfig; end
|
379
|
+
|
380
|
+
# Specifies Kerberos related configuration.
|
381
|
+
# @!attribute [rw] enable_kerberos
|
382
|
+
# @return [true, false]
|
383
|
+
# Optional. Flag to indicate whether to Kerberize the cluster.
|
384
|
+
# @!attribute [rw] root_principal_password_uri
|
385
|
+
# @return [String]
|
386
|
+
# Required. The Cloud Storage URI of a KMS encrypted file containing the root
|
387
|
+
# principal password.
|
388
|
+
# @!attribute [rw] kms_key_uri
|
389
|
+
# @return [String]
|
390
|
+
# Required. The uri of the KMS key used to encrypt various sensitive
|
391
|
+
# files.
|
392
|
+
# @!attribute [rw] keystore_uri
|
393
|
+
# @return [String]
|
394
|
+
# Optional. The Cloud Storage URI of the keystore file used for SSL
|
395
|
+
# encryption. If not provided, Dataproc will provide a self-signed
|
396
|
+
# certificate.
|
397
|
+
# @!attribute [rw] truststore_uri
|
398
|
+
# @return [String]
|
399
|
+
# Optional. The Cloud Storage URI of the truststore file used for SSL
|
400
|
+
# encryption. If not provided, Dataproc will provide a self-signed
|
401
|
+
# certificate.
|
402
|
+
# @!attribute [rw] keystore_password_uri
|
403
|
+
# @return [String]
|
404
|
+
# Optional. The Cloud Storage URI of a KMS encrypted file containing the
|
405
|
+
# password to the user provided keystore. For the self-signed certificate,
|
406
|
+
# this password is generated by Dataproc.
|
407
|
+
# @!attribute [rw] key_password_uri
|
408
|
+
# @return [String]
|
409
|
+
# Optional. The Cloud Storage URI of a KMS encrypted file containing the
|
410
|
+
# password to the user provided key. For the self-signed certificate, this
|
411
|
+
# password is generated by Dataproc.
|
412
|
+
# @!attribute [rw] truststore_password_uri
|
413
|
+
# @return [String]
|
414
|
+
# Optional. The Cloud Storage URI of a KMS encrypted file containing the
|
415
|
+
# password to the user provided truststore. For the self-signed certificate,
|
416
|
+
# this password is generated by Dataproc.
|
417
|
+
# @!attribute [rw] cross_realm_trust_realm
|
418
|
+
# @return [String]
|
419
|
+
# Optional. The remote realm the Dataproc on-cluster KDC will trust, should
|
420
|
+
# the user enable cross realm trust.
|
421
|
+
# @!attribute [rw] cross_realm_trust_kdc
|
422
|
+
# @return [String]
|
423
|
+
# Optional. The KDC (IP or hostname) for the remote trusted realm in a cross
|
424
|
+
# realm trust relationship.
|
425
|
+
# @!attribute [rw] cross_realm_trust_admin_server
|
426
|
+
# @return [String]
|
427
|
+
# Optional. The admin server (IP or hostname) for the remote trusted realm in
|
428
|
+
# a cross realm trust relationship.
|
429
|
+
# @!attribute [rw] cross_realm_trust_shared_password_uri
|
430
|
+
# @return [String]
|
431
|
+
# Optional. The Cloud Storage URI of a KMS encrypted file containing the
|
432
|
+
# shared password between the on-cluster Kerberos realm and the remote
|
433
|
+
# trusted realm, in a cross realm trust relationship.
|
434
|
+
# @!attribute [rw] kdc_db_key_uri
|
435
|
+
# @return [String]
|
436
|
+
# Optional. The Cloud Storage URI of a KMS encrypted file containing the
|
437
|
+
# master key of the KDC database.
|
438
|
+
# @!attribute [rw] tgt_lifetime_hours
|
439
|
+
# @return [Integer]
|
440
|
+
# Optional. The lifetime of the ticket granting ticket, in hours.
|
441
|
+
# If not specified, or user specifies 0, then default value 10
|
442
|
+
# will be used.
|
443
|
+
class KerberosConfig; end
|
444
|
+
|
332
445
|
# Specifies an executable to run on a fully configured node and a
|
333
446
|
# timeout period for executable completion.
|
334
447
|
# @!attribute [rw] executable_file
|
@@ -407,13 +520,13 @@ module Google
|
|
407
520
|
# such as "1.2" (including a subminor version, such as "1.2.29"), or the
|
408
521
|
# ["preview"
|
409
522
|
# version](/dataproc/docs/concepts/versioning/dataproc-versions#other_versions).
|
410
|
-
# If unspecified, it defaults to the latest version.
|
523
|
+
# If unspecified, it defaults to the latest Debian version.
|
411
524
|
# @!attribute [rw] properties
|
412
525
|
# @return [Hash{String => String}]
|
413
526
|
# Optional. The properties to set on daemon config files.
|
414
527
|
#
|
415
|
-
# Property keys are specified in `prefix:property` format,
|
416
|
-
# `core:
|
528
|
+
# Property keys are specified in `prefix:property` format, for example
|
529
|
+
# `core:hadoop.tmp.dir`. The following are supported prefixes
|
417
530
|
# and their mappings:
|
418
531
|
#
|
419
532
|
# * capacity-scheduler: `capacity-scheduler.xml`
|
@@ -428,6 +541,9 @@ module Google
|
|
428
541
|
#
|
429
542
|
# For more information, see
|
430
543
|
# [Cluster properties](https://cloud.google.com/dataproc/docs/concepts/cluster-properties).
|
544
|
+
# @!attribute [rw] optional_components
|
545
|
+
# @return [Array<Google::Cloud::Dataproc::V1beta2::Component>]
|
546
|
+
# The set of optional components to activate on the cluster.
|
431
547
|
class SoftwareConfig; end
|
432
548
|
|
433
549
|
# Contains cluster daemon metrics, such as HDFS and YARN stats.
|
@@ -456,11 +572,10 @@ module Google
|
|
456
572
|
# @!attribute [rw] request_id
|
457
573
|
# @return [String]
|
458
574
|
# Optional. A unique id used to identify the request. If the server
|
459
|
-
# receives two
|
460
|
-
#
|
461
|
-
#
|
462
|
-
#
|
463
|
-
# and stored in the backend is returned.
|
575
|
+
# receives two {Google::Cloud::Dataproc::V1beta2::CreateClusterRequest CreateClusterRequest} requests with the same
|
576
|
+
# id, then the second request will be ignored and the
|
577
|
+
# first {Google::Longrunning::Operation} created and stored in the backend
|
578
|
+
# is returned.
|
464
579
|
#
|
465
580
|
# It is recommended to always set this value to a
|
466
581
|
# [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
|
@@ -550,15 +665,18 @@ module Google
|
|
550
665
|
# <td>config.lifecycle_config.idle_delete_ttl</td><td>Update Idle TTL
|
551
666
|
# duration</td>
|
552
667
|
# </tr>
|
668
|
+
# <tr>
|
669
|
+
# <td>config.autoscaling_config.policy_uri</td><td>Use, stop using, or change
|
670
|
+
# autoscaling policies</td>
|
671
|
+
# </tr>
|
553
672
|
# </table>
|
554
673
|
# @!attribute [rw] request_id
|
555
674
|
# @return [String]
|
556
675
|
# Optional. A unique id used to identify the request. If the server
|
557
|
-
# receives two
|
558
|
-
#
|
559
|
-
#
|
560
|
-
#
|
561
|
-
# and stored in the backend is returned.
|
676
|
+
# receives two {Google::Cloud::Dataproc::V1beta2::UpdateClusterRequest UpdateClusterRequest} requests with the same
|
677
|
+
# id, then the second request will be ignored and the
|
678
|
+
# first {Google::Longrunning::Operation} created and stored in the
|
679
|
+
# backend is returned.
|
562
680
|
#
|
563
681
|
# It is recommended to always set this value to a
|
564
682
|
# [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
|
@@ -585,11 +703,10 @@ module Google
|
|
585
703
|
# @!attribute [rw] request_id
|
586
704
|
# @return [String]
|
587
705
|
# Optional. A unique id used to identify the request. If the server
|
588
|
-
# receives two
|
589
|
-
#
|
590
|
-
#
|
591
|
-
#
|
592
|
-
# and stored in the backend is returned.
|
706
|
+
# receives two {Google::Cloud::Dataproc::V1beta2::DeleteClusterRequest DeleteClusterRequest} requests with the same
|
707
|
+
# id, then the second request will be ignored and the
|
708
|
+
# first {Google::Longrunning::Operation} created and stored in the
|
709
|
+
# backend is returned.
|
593
710
|
#
|
594
711
|
# It is recommended to always set this value to a
|
595
712
|
# [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
|
@@ -679,6 +796,33 @@ module Google
|
|
679
796
|
# The output report is a plain text file with a summary of collected
|
680
797
|
# diagnostics.
|
681
798
|
class DiagnoseClusterResults; end
|
799
|
+
|
800
|
+
# Reservation Affinity for consuming Zonal reservation.
|
801
|
+
# @!attribute [rw] consume_reservation_type
|
802
|
+
# @return [Google::Cloud::Dataproc::V1beta2::ReservationAffinity::Type]
|
803
|
+
# Optional. Type of reservation to consume
|
804
|
+
# @!attribute [rw] key
|
805
|
+
# @return [String]
|
806
|
+
# Optional. Corresponds to the label key of reservation resource.
|
807
|
+
# @!attribute [rw] values
|
808
|
+
# @return [Array<String>]
|
809
|
+
# Optional. Corresponds to the label values of reservation resource.
|
810
|
+
class ReservationAffinity
|
811
|
+
# Indicates whether to consume capacity from an reservation or not.
|
812
|
+
module Type
|
813
|
+
TYPE_UNSPECIFIED = 0
|
814
|
+
|
815
|
+
# Do not consume from any allocated capacity.
|
816
|
+
NO_RESERVATION = 1
|
817
|
+
|
818
|
+
# Consume any reservation available.
|
819
|
+
ANY_RESERVATION = 2
|
820
|
+
|
821
|
+
# Must consume from a specific reservation. Must specify key value fields
|
822
|
+
# for specifying the reservations.
|
823
|
+
SPECIFIC_RESERVATION = 3
|
824
|
+
end
|
825
|
+
end
|
682
826
|
end
|
683
827
|
end
|
684
828
|
end
|