google-apis-dataproc_v1beta2 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3b0ff1b1a9da43a93f57182c1e57f105c686fd9fed10b578053c2db113dbad67
4
+ data.tar.gz: 2c63b9d98bd00fa90d47c7217843badb7fb34fe1d7fc0ca11ea092155881279c
5
+ SHA512:
6
+ metadata.gz: d02cf9a4aa50b16d161a402d4d2e14b53546bf0eabc0162e578c719ac09ed90cc5a6128cdb7e604342682d4490521aef7d0b0463f72c2a93d8ba63eeb66dbb07
7
+ data.tar.gz: 849ebd2c6e1a9572bc681c307da18a82617630a886c037aa7409c0a47a5c17e04f156ede2ea18bcf0ed2a5dacc94ae1e10586096b4253cd70a899a6da2205109
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-dataproc_v1beta2
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/dataproc_v1beta2/*.rb
9
+ lib/google/apis/dataproc_v1beta2.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-dataproc_v1beta2
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated from discovery document revision 20201229
6
+ * Regenerated using generator version 0.1.1
7
+
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,96 @@
1
+ # Simple REST client for version V1beta2 of the Cloud Dataproc API
2
+
3
+ This is a simple client library for version V1beta2 of the Cloud Dataproc API. It provides:
4
+
5
+ * A client object that connects to the HTTP/JSON REST endpoint for the service.
6
+ * Ruby objects for data structures related to the service.
7
+ * Integration with the googleauth gem for authentication using OAuth, API keys, and service accounts.
8
+ * Control of retry, pagination, and timeouts.
9
+
10
+ Note that although this client library is supported and will continue to be updated to track changes to the service, it is otherwise considered complete and not under active development. Many Google services, especially Google Cloud Platform services, may provide a more modern client that is under more active development and improvement. See the section below titled *Which client should I use?* for more information.
11
+
12
+ ## Getting started
13
+
14
+ ### Before you begin
15
+
16
+ There are a few setup steps you need to complete before you can use this library:
17
+
18
+ 1. If you don't already have a Google account, [sign up](https://www.google.com/accounts).
19
+ 2. If you have never created a Google APIs Console project, read about [Managing Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and create a project in the [Google API Console](https://console.cloud.google.com/).
20
+ 3. Most APIs need to be enabled for your project. [Enable it](https://console.cloud.google.com/apis/library/dataproc.googleapis.com) in the console.
21
+
22
+ ### Installation
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem 'google-apis-dataproc_v1beta2', '~> 0.1'
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ ```
33
+ $ bundle
34
+ ```
35
+
36
+ Or install it yourself as:
37
+
38
+ ```
39
+ $ gem install google-apis-dataproc_v1beta2
40
+ ```
41
+
42
+ ### Creating a client object
43
+
44
+ Once the gem is installed, you can load the client code and instantiate a client.
45
+
46
+ ```ruby
47
+ # Load the client
48
+ require "google/apis/dataproc_v1beta2"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::DataprocV1beta2::DataprocService.new
52
+
53
+ # Authenticate calls
54
+ client.authentication = # ... use the googleauth gem to create credentials
55
+ ```
56
+
57
+ See the class reference docs for information on the methods you can call from a client.
58
+
59
+ ## Documentation
60
+
61
+ More detailed descriptions of the Google simple REST clients are available in two documents.
62
+
63
+ * The [Usage Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/usage-guide.md) discusses how to make API calls, how to use the provided data structures, and how to work the various features of the client library, including media upload and download, error handling, retries, pagination, and logging.
64
+ * The [Auth Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/auth-guide.md) discusses authentication in the client libraries, including API keys, OAuth 2.0, service accounts, and environment variables.
65
+
66
+ (Note: the above documents are written for the simple REST clients in general, and their examples may not reflect the Dataproc service in particular.)
67
+
68
+ For reference information on specific calls in the Cloud Dataproc API, see the {Google::Apis::DataprocV1beta2::DataprocService class reference docs}.
69
+
70
+ ## Which client should I use?
71
+
72
+ Google provides two types of Ruby API client libraries: **simple REST clients** and **modern clients**.
73
+
74
+ This library, `google-apis-dataproc_v1beta2`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
75
+
76
+ Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
77
+
78
+ Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
79
+
80
+ **For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
81
+
82
+ The [product documentation](https://cloud.google.com/dataproc/) may provide guidance regarding the preferred client library to use.
83
+
84
+ ## Supported Ruby versions
85
+
86
+ This library is supported on Ruby 2.5+.
87
+
88
+ Google provides official support for Ruby versions that are actively supported by Ruby Core -- that is, Ruby versions that are either in normal maintenance or in security maintenance, and not end of life. Currently, this means Ruby 2.5 and later. Older versions of Ruby _may_ still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.
89
+
90
+ ## License
91
+
92
+ This library is licensed under Apache 2.0. Full license text is available in the {file:LICENSE.md LICENSE}.
93
+
94
+ ## Support
95
+
96
+ Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
@@ -0,0 +1,15 @@
1
+ # Copyright 2020 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
+ # http://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
+ require "google/apis/dataproc_v1beta2"
@@ -0,0 +1,36 @@
1
+ # Copyright 2020 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
+ # http://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
+ require 'google/apis/dataproc_v1beta2/service.rb'
16
+ require 'google/apis/dataproc_v1beta2/classes.rb'
17
+ require 'google/apis/dataproc_v1beta2/representations.rb'
18
+ require 'google/apis/dataproc_v1beta2/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Cloud Dataproc API
23
+ #
24
+ # Manages Hadoop-based clusters and jobs on Google Cloud Platform.
25
+ #
26
+ # @see https://cloud.google.com/dataproc/
27
+ module DataprocV1beta2
28
+ # Version of the Cloud Dataproc API this client connects to.
29
+ # This is NOT the gem version.
30
+ VERSION = 'V1beta2'
31
+
32
+ # View and manage your data across Google Cloud Platform services
33
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,3791 @@
1
+ # Copyright 2020 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
+ # http://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
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module DataprocV1beta2
24
+
25
+ # Specifies the type and number of accelerator cards attached to the instances
26
+ # of an instance group (see GPUs on Compute Engine (https://cloud.google.com/
27
+ # compute/docs/gpus/)).
28
+ class AcceleratorConfig
29
+ include Google::Apis::Core::Hashable
30
+
31
+ # The number of the accelerator cards of this type exposed to this instance.
32
+ # Corresponds to the JSON property `acceleratorCount`
33
+ # @return [Fixnum]
34
+ attr_accessor :accelerator_count
35
+
36
+ # Full URL, partial URI, or short name of the accelerator type resource to
37
+ # expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.
38
+ # google.com/compute/docs/reference/beta/acceleratorTypes)Examples * https://www.
39
+ # googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/
40
+ # acceleratorTypes/nvidia-tesla-k80 * projects/[project_id]/zones/us-east1-a/
41
+ # acceleratorTypes/nvidia-tesla-k80 * nvidia-tesla-k80Auto Zone Exception: If
42
+ # you are using the Dataproc Auto Zone Placement (https://cloud.google.com/
43
+ # dataproc/docs/concepts/configuring-clusters/auto-zone#
44
+ # using_auto_zone_placement) feature, you must use the short name of the
45
+ # accelerator type resource, for example, nvidia-tesla-k80.
46
+ # Corresponds to the JSON property `acceleratorTypeUri`
47
+ # @return [String]
48
+ attr_accessor :accelerator_type_uri
49
+
50
+ def initialize(**args)
51
+ update!(**args)
52
+ end
53
+
54
+ # Update properties of this object
55
+ def update!(**args)
56
+ @accelerator_count = args[:accelerator_count] if args.key?(:accelerator_count)
57
+ @accelerator_type_uri = args[:accelerator_type_uri] if args.key?(:accelerator_type_uri)
58
+ end
59
+ end
60
+
61
+ # Autoscaling Policy config associated with the cluster.
62
+ class AutoscalingConfig
63
+ include Google::Apis::Core::Hashable
64
+
65
+ # Optional. The autoscaling policy used by the cluster.Only resource names
66
+ # including projectid and location (region) are valid. Examples: https://www.
67
+ # googleapis.com/compute/v1/projects/[project_id]/locations/[dataproc_region]/
68
+ # autoscalingPolicies/[policy_id] projects/[project_id]/locations/[
69
+ # dataproc_region]/autoscalingPolicies/[policy_id]Note that the policy must be
70
+ # in the same project and Dataproc region.
71
+ # Corresponds to the JSON property `policyUri`
72
+ # @return [String]
73
+ attr_accessor :policy_uri
74
+
75
+ def initialize(**args)
76
+ update!(**args)
77
+ end
78
+
79
+ # Update properties of this object
80
+ def update!(**args)
81
+ @policy_uri = args[:policy_uri] if args.key?(:policy_uri)
82
+ end
83
+ end
84
+
85
+ # Describes an autoscaling policy for Dataproc cluster autoscaler.
86
+ class AutoscalingPolicy
87
+ include Google::Apis::Core::Hashable
88
+
89
+ # Basic algorithm for autoscaling.
90
+ # Corresponds to the JSON property `basicAlgorithm`
91
+ # @return [Google::Apis::DataprocV1beta2::BasicAutoscalingAlgorithm]
92
+ attr_accessor :basic_algorithm
93
+
94
+ # Required. The policy id.The id must contain only letters (a-z, A-Z), numbers (
95
+ # 0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or
96
+ # hyphen. Must consist of between 3 and 50 characters.
97
+ # Corresponds to the JSON property `id`
98
+ # @return [String]
99
+ attr_accessor :id
100
+
101
+ # Output only. The "resource name" of the autoscaling policy, as described in
102
+ # https://cloud.google.com/apis/design/resource_names. For projects.regions.
103
+ # autoscalingPolicies, the resource name of the policy has the following format:
104
+ # projects/`project_id`/regions/`region`/autoscalingPolicies/`policy_id` For
105
+ # projects.locations.autoscalingPolicies, the resource name of the policy has
106
+ # the following format: projects/`project_id`/locations/`location`/
107
+ # autoscalingPolicies/`policy_id`
108
+ # Corresponds to the JSON property `name`
109
+ # @return [String]
110
+ attr_accessor :name
111
+
112
+ # Configuration for the size bounds of an instance group, including its
113
+ # proportional size to other groups.
114
+ # Corresponds to the JSON property `secondaryWorkerConfig`
115
+ # @return [Google::Apis::DataprocV1beta2::InstanceGroupAutoscalingPolicyConfig]
116
+ attr_accessor :secondary_worker_config
117
+
118
+ # Configuration for the size bounds of an instance group, including its
119
+ # proportional size to other groups.
120
+ # Corresponds to the JSON property `workerConfig`
121
+ # @return [Google::Apis::DataprocV1beta2::InstanceGroupAutoscalingPolicyConfig]
122
+ attr_accessor :worker_config
123
+
124
+ def initialize(**args)
125
+ update!(**args)
126
+ end
127
+
128
+ # Update properties of this object
129
+ def update!(**args)
130
+ @basic_algorithm = args[:basic_algorithm] if args.key?(:basic_algorithm)
131
+ @id = args[:id] if args.key?(:id)
132
+ @name = args[:name] if args.key?(:name)
133
+ @secondary_worker_config = args[:secondary_worker_config] if args.key?(:secondary_worker_config)
134
+ @worker_config = args[:worker_config] if args.key?(:worker_config)
135
+ end
136
+ end
137
+
138
+ # Basic algorithm for autoscaling.
139
+ class BasicAutoscalingAlgorithm
140
+ include Google::Apis::Core::Hashable
141
+
142
+ # Optional. Duration between scaling events. A scaling period starts after the
143
+ # update operation from the previous event has completed.Bounds: 2m, 1d. Default:
144
+ # 2m.
145
+ # Corresponds to the JSON property `cooldownPeriod`
146
+ # @return [String]
147
+ attr_accessor :cooldown_period
148
+
149
+ # Basic autoscaling configurations for YARN.
150
+ # Corresponds to the JSON property `yarnConfig`
151
+ # @return [Google::Apis::DataprocV1beta2::BasicYarnAutoscalingConfig]
152
+ attr_accessor :yarn_config
153
+
154
+ def initialize(**args)
155
+ update!(**args)
156
+ end
157
+
158
+ # Update properties of this object
159
+ def update!(**args)
160
+ @cooldown_period = args[:cooldown_period] if args.key?(:cooldown_period)
161
+ @yarn_config = args[:yarn_config] if args.key?(:yarn_config)
162
+ end
163
+ end
164
+
165
+ # Basic autoscaling configurations for YARN.
166
+ class BasicYarnAutoscalingConfig
167
+ include Google::Apis::Core::Hashable
168
+
169
+ # Required. Timeout for YARN graceful decommissioning of Node Managers.
170
+ # Specifies the duration to wait for jobs to complete before forcefully removing
171
+ # workers (and potentially interrupting jobs). Only applicable to downscaling
172
+ # operations.Bounds: 0s, 1d.
173
+ # Corresponds to the JSON property `gracefulDecommissionTimeout`
174
+ # @return [String]
175
+ attr_accessor :graceful_decommission_timeout
176
+
177
+ # Required. Fraction of average YARN pending memory in the last cooldown period
178
+ # for which to remove workers. A scale-down factor of 1 will result in scaling
179
+ # down so that there is no available memory remaining after the update (more
180
+ # aggressive scaling). A scale-down factor of 0 disables removing workers, which
181
+ # can be beneficial for autoscaling a single job. See How autoscaling works for
182
+ # more information.Bounds: 0.0, 1.0.
183
+ # Corresponds to the JSON property `scaleDownFactor`
184
+ # @return [Float]
185
+ attr_accessor :scale_down_factor
186
+
187
+ # Optional. Minimum scale-down threshold as a fraction of total cluster size
188
+ # before scaling occurs. For example, in a 20-worker cluster, a threshold of 0.1
189
+ # means the autoscaler must recommend at least a 2 worker scale-down for the
190
+ # cluster to scale. A threshold of 0 means the autoscaler will scale down on any
191
+ # recommended change.Bounds: 0.0, 1.0. Default: 0.0.
192
+ # Corresponds to the JSON property `scaleDownMinWorkerFraction`
193
+ # @return [Float]
194
+ attr_accessor :scale_down_min_worker_fraction
195
+
196
+ # Required. Fraction of average YARN pending memory in the last cooldown period
197
+ # for which to add workers. A scale-up factor of 1.0 will result in scaling up
198
+ # so that there is no pending memory remaining after the update (more aggressive
199
+ # scaling). A scale-up factor closer to 0 will result in a smaller magnitude of
200
+ # scaling up (less aggressive scaling). See How autoscaling works for more
201
+ # information.Bounds: 0.0, 1.0.
202
+ # Corresponds to the JSON property `scaleUpFactor`
203
+ # @return [Float]
204
+ attr_accessor :scale_up_factor
205
+
206
+ # Optional. Minimum scale-up threshold as a fraction of total cluster size
207
+ # before scaling occurs. For example, in a 20-worker cluster, a threshold of 0.1
208
+ # means the autoscaler must recommend at least a 2-worker scale-up for the
209
+ # cluster to scale. A threshold of 0 means the autoscaler will scale up on any
210
+ # recommended change.Bounds: 0.0, 1.0. Default: 0.0.
211
+ # Corresponds to the JSON property `scaleUpMinWorkerFraction`
212
+ # @return [Float]
213
+ attr_accessor :scale_up_min_worker_fraction
214
+
215
+ def initialize(**args)
216
+ update!(**args)
217
+ end
218
+
219
+ # Update properties of this object
220
+ def update!(**args)
221
+ @graceful_decommission_timeout = args[:graceful_decommission_timeout] if args.key?(:graceful_decommission_timeout)
222
+ @scale_down_factor = args[:scale_down_factor] if args.key?(:scale_down_factor)
223
+ @scale_down_min_worker_fraction = args[:scale_down_min_worker_fraction] if args.key?(:scale_down_min_worker_fraction)
224
+ @scale_up_factor = args[:scale_up_factor] if args.key?(:scale_up_factor)
225
+ @scale_up_min_worker_fraction = args[:scale_up_min_worker_fraction] if args.key?(:scale_up_min_worker_fraction)
226
+ end
227
+ end
228
+
229
+ # Associates members with a role.
230
+ class Binding
231
+ include Google::Apis::Core::Hashable
232
+
233
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
234
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
235
+ # documented at https://github.com/google/cel-spec.Example (Comparison): title: "
236
+ # Summary size limit" description: "Determines if a summary is less than 100
237
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
238
+ # Requestor is owner" description: "Determines if requestor is the document
239
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
240
+ # Logic): title: "Public documents" description: "Determine whether the document
241
+ # should be publicly visible" expression: "document.type != 'private' &&
242
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
243
+ # string" description: "Create a notification string with a timestamp."
244
+ # expression: "'New message received at ' + string(document.create_time)" The
245
+ # exact variables and functions that may be referenced within an expression are
246
+ # determined by the service that evaluates it. See the service documentation for
247
+ # additional information.
248
+ # Corresponds to the JSON property `condition`
249
+ # @return [Google::Apis::DataprocV1beta2::Expr]
250
+ attr_accessor :condition
251
+
252
+ # Specifies the identities requesting access for a Cloud Platform resource.
253
+ # members can have the following values: allUsers: A special identifier that
254
+ # represents anyone who is on the internet; with or without a Google account.
255
+ # allAuthenticatedUsers: A special identifier that represents anyone who is
256
+ # authenticated with a Google account or a service account. user:`emailid`: An
257
+ # email address that represents a specific Google account. For example, alice@
258
+ # example.com . serviceAccount:`emailid`: An email address that represents a
259
+ # service account. For example, my-other-app@appspot.gserviceaccount.com. group:`
260
+ # emailid`: An email address that represents a Google group. For example, admins@
261
+ # example.com. deleted:user:`emailid`?uid=`uniqueid`: An email address (plus
262
+ # unique identifier) representing a user that has been recently deleted. For
263
+ # example, alice@example.com?uid=123456789012345678901. If the user is recovered,
264
+ # this value reverts to user:`emailid` and the recovered user retains the role
265
+ # in the binding. deleted:serviceAccount:`emailid`?uid=`uniqueid`: An email
266
+ # address (plus unique identifier) representing a service account that has been
267
+ # recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=
268
+ # 123456789012345678901. If the service account is undeleted, this value reverts
269
+ # to serviceAccount:`emailid` and the undeleted service account retains the role
270
+ # in the binding. deleted:group:`emailid`?uid=`uniqueid`: An email address (plus
271
+ # unique identifier) representing a Google group that has been recently deleted.
272
+ # For example, admins@example.com?uid=123456789012345678901. If the group is
273
+ # recovered, this value reverts to group:`emailid` and the recovered group
274
+ # retains the role in the binding. domain:`domain`: The G Suite domain (primary)
275
+ # that represents all the users of that domain. For example, google.com or
276
+ # example.com.
277
+ # Corresponds to the JSON property `members`
278
+ # @return [Array<String>]
279
+ attr_accessor :members
280
+
281
+ # Role that is assigned to members. For example, roles/viewer, roles/editor, or
282
+ # roles/owner.
283
+ # Corresponds to the JSON property `role`
284
+ # @return [String]
285
+ attr_accessor :role
286
+
287
+ def initialize(**args)
288
+ update!(**args)
289
+ end
290
+
291
+ # Update properties of this object
292
+ def update!(**args)
293
+ @condition = args[:condition] if args.key?(:condition)
294
+ @members = args[:members] if args.key?(:members)
295
+ @role = args[:role] if args.key?(:role)
296
+ end
297
+ end
298
+
299
+ # A request to cancel a job.
300
+ class CancelJobRequest
301
+ include Google::Apis::Core::Hashable
302
+
303
+ def initialize(**args)
304
+ update!(**args)
305
+ end
306
+
307
+ # Update properties of this object
308
+ def update!(**args)
309
+ end
310
+ end
311
+
312
+ # Describes the identifying information, config, and status of a cluster of
313
+ # Compute Engine instances.
314
+ class Cluster
315
+ include Google::Apis::Core::Hashable
316
+
317
+ # Required. The cluster name. Cluster names within a project must be unique.
318
+ # Names of deleted clusters can be reused.
319
+ # Corresponds to the JSON property `clusterName`
320
+ # @return [String]
321
+ attr_accessor :cluster_name
322
+
323
+ # Output only. A cluster UUID (Unique Universal Identifier). Dataproc generates
324
+ # this value when it creates the cluster.
325
+ # Corresponds to the JSON property `clusterUuid`
326
+ # @return [String]
327
+ attr_accessor :cluster_uuid
328
+
329
+ # The cluster config.
330
+ # Corresponds to the JSON property `config`
331
+ # @return [Google::Apis::DataprocV1beta2::ClusterConfig]
332
+ attr_accessor :config
333
+
334
+ # Optional. The labels to associate with this cluster. Label keys must contain 1
335
+ # to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/
336
+ # rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63
337
+ # characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt)
338
+ # . No more than 32 labels can be associated with a cluster.
339
+ # Corresponds to the JSON property `labels`
340
+ # @return [Hash<String,String>]
341
+ attr_accessor :labels
342
+
343
+ # Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature:
344
+ # This report is available for testing purposes only. It may be changed before
345
+ # final release.
346
+ # Corresponds to the JSON property `metrics`
347
+ # @return [Google::Apis::DataprocV1beta2::ClusterMetrics]
348
+ attr_accessor :metrics
349
+
350
+ # Required. The Google Cloud Platform project ID that the cluster belongs to.
351
+ # Corresponds to the JSON property `projectId`
352
+ # @return [String]
353
+ attr_accessor :project_id
354
+
355
+ # The status of a cluster and its instances.
356
+ # Corresponds to the JSON property `status`
357
+ # @return [Google::Apis::DataprocV1beta2::ClusterStatus]
358
+ attr_accessor :status
359
+
360
+ # Output only. The previous cluster status.
361
+ # Corresponds to the JSON property `statusHistory`
362
+ # @return [Array<Google::Apis::DataprocV1beta2::ClusterStatus>]
363
+ attr_accessor :status_history
364
+
365
+ def initialize(**args)
366
+ update!(**args)
367
+ end
368
+
369
+ # Update properties of this object
370
+ def update!(**args)
371
+ @cluster_name = args[:cluster_name] if args.key?(:cluster_name)
372
+ @cluster_uuid = args[:cluster_uuid] if args.key?(:cluster_uuid)
373
+ @config = args[:config] if args.key?(:config)
374
+ @labels = args[:labels] if args.key?(:labels)
375
+ @metrics = args[:metrics] if args.key?(:metrics)
376
+ @project_id = args[:project_id] if args.key?(:project_id)
377
+ @status = args[:status] if args.key?(:status)
378
+ @status_history = args[:status_history] if args.key?(:status_history)
379
+ end
380
+ end
381
+
382
+ # The cluster config.
383
+ class ClusterConfig
384
+ include Google::Apis::Core::Hashable
385
+
386
+ # Autoscaling Policy config associated with the cluster.
387
+ # Corresponds to the JSON property `autoscalingConfig`
388
+ # @return [Google::Apis::DataprocV1beta2::AutoscalingConfig]
389
+ attr_accessor :autoscaling_config
390
+
391
+ # Optional. A Cloud Storage bucket used to stage job dependencies, config files,
392
+ # and job driver console output. If you do not specify a staging bucket, Cloud
393
+ # Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your
394
+ # cluster's staging bucket according to the Compute Engine zone where your
395
+ # cluster is deployed, and then create and manage this project-level, per-
396
+ # location bucket (see Dataproc staging bucket (https://cloud.google.com/
397
+ # dataproc/docs/concepts/configuring-clusters/staging-bucket)). This field
398
+ # requires a Cloud Storage bucket name, not a URI to a Cloud Storage bucket.
399
+ # Corresponds to the JSON property `configBucket`
400
+ # @return [String]
401
+ attr_accessor :config_bucket
402
+
403
+ # Encryption settings for the cluster.
404
+ # Corresponds to the JSON property `encryptionConfig`
405
+ # @return [Google::Apis::DataprocV1beta2::EncryptionConfig]
406
+ attr_accessor :encryption_config
407
+
408
+ # Endpoint config for this cluster
409
+ # Corresponds to the JSON property `endpointConfig`
410
+ # @return [Google::Apis::DataprocV1beta2::EndpointConfig]
411
+ attr_accessor :endpoint_config
412
+
413
+ # Common config settings for resources of Compute Engine cluster instances,
414
+ # applicable to all instances in the cluster.
415
+ # Corresponds to the JSON property `gceClusterConfig`
416
+ # @return [Google::Apis::DataprocV1beta2::GceClusterConfig]
417
+ attr_accessor :gce_cluster_config
418
+
419
+ # The GKE config for this cluster.
420
+ # Corresponds to the JSON property `gkeClusterConfig`
421
+ # @return [Google::Apis::DataprocV1beta2::GkeClusterConfig]
422
+ attr_accessor :gke_cluster_config
423
+
424
+ # Optional. Commands to execute on each node after config is completed. By
425
+ # default, executables are run on master and all worker nodes. You can test a
426
+ # node's role metadata to run an executable on a master or worker node, as shown
427
+ # below using curl (you can also use wget): ROLE=$(curl -H Metadata-Flavor:
428
+ # Google http://metadata/computeMetadata/v1beta2/instance/attributes/dataproc-
429
+ # role) if [[ "$`ROLE`" == 'Master' ]]; then ... master specific actions ...
430
+ # else ... worker specific actions ... fi
431
+ # Corresponds to the JSON property `initializationActions`
432
+ # @return [Array<Google::Apis::DataprocV1beta2::NodeInitializationAction>]
433
+ attr_accessor :initialization_actions
434
+
435
+ # Specifies the cluster auto-delete schedule configuration.
436
+ # Corresponds to the JSON property `lifecycleConfig`
437
+ # @return [Google::Apis::DataprocV1beta2::LifecycleConfig]
438
+ attr_accessor :lifecycle_config
439
+
440
+ # The config settings for Compute Engine resources in an instance group, such as
441
+ # a master or worker group.
442
+ # Corresponds to the JSON property `masterConfig`
443
+ # @return [Google::Apis::DataprocV1beta2::InstanceGroupConfig]
444
+ attr_accessor :master_config
445
+
446
+ # Specifies a Metastore configuration.
447
+ # Corresponds to the JSON property `metastoreConfig`
448
+ # @return [Google::Apis::DataprocV1beta2::MetastoreConfig]
449
+ attr_accessor :metastore_config
450
+
451
+ # The config settings for Compute Engine resources in an instance group, such as
452
+ # a master or worker group.
453
+ # Corresponds to the JSON property `secondaryWorkerConfig`
454
+ # @return [Google::Apis::DataprocV1beta2::InstanceGroupConfig]
455
+ attr_accessor :secondary_worker_config
456
+
457
+ # Security related configuration, including encryption, Kerberos, etc.
458
+ # Corresponds to the JSON property `securityConfig`
459
+ # @return [Google::Apis::DataprocV1beta2::SecurityConfig]
460
+ attr_accessor :security_config
461
+
462
+ # Specifies the selection and config of software inside the cluster.
463
+ # Corresponds to the JSON property `softwareConfig`
464
+ # @return [Google::Apis::DataprocV1beta2::SoftwareConfig]
465
+ attr_accessor :software_config
466
+
467
+ # Optional. A Cloud Storage bucket used to store ephemeral cluster and jobs data,
468
+ # such as Spark and MapReduce history files. If you do not specify a temp
469
+ # bucket, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for
470
+ # your cluster's temp bucket according to the Compute Engine zone where your
471
+ # cluster is deployed, and then create and manage this project-level, per-
472
+ # location bucket. The default bucket has a TTL of 90 days, but you can use any
473
+ # TTL (or none) if you specify a bucket. This field requires a Cloud Storage
474
+ # bucket name, not a URI to a Cloud Storage bucket.
475
+ # Corresponds to the JSON property `tempBucket`
476
+ # @return [String]
477
+ attr_accessor :temp_bucket
478
+
479
+ # The config settings for Compute Engine resources in an instance group, such as
480
+ # a master or worker group.
481
+ # Corresponds to the JSON property `workerConfig`
482
+ # @return [Google::Apis::DataprocV1beta2::InstanceGroupConfig]
483
+ attr_accessor :worker_config
484
+
485
+ def initialize(**args)
486
+ update!(**args)
487
+ end
488
+
489
+ # Update properties of this object
490
+ def update!(**args)
491
+ @autoscaling_config = args[:autoscaling_config] if args.key?(:autoscaling_config)
492
+ @config_bucket = args[:config_bucket] if args.key?(:config_bucket)
493
+ @encryption_config = args[:encryption_config] if args.key?(:encryption_config)
494
+ @endpoint_config = args[:endpoint_config] if args.key?(:endpoint_config)
495
+ @gce_cluster_config = args[:gce_cluster_config] if args.key?(:gce_cluster_config)
496
+ @gke_cluster_config = args[:gke_cluster_config] if args.key?(:gke_cluster_config)
497
+ @initialization_actions = args[:initialization_actions] if args.key?(:initialization_actions)
498
+ @lifecycle_config = args[:lifecycle_config] if args.key?(:lifecycle_config)
499
+ @master_config = args[:master_config] if args.key?(:master_config)
500
+ @metastore_config = args[:metastore_config] if args.key?(:metastore_config)
501
+ @secondary_worker_config = args[:secondary_worker_config] if args.key?(:secondary_worker_config)
502
+ @security_config = args[:security_config] if args.key?(:security_config)
503
+ @software_config = args[:software_config] if args.key?(:software_config)
504
+ @temp_bucket = args[:temp_bucket] if args.key?(:temp_bucket)
505
+ @worker_config = args[:worker_config] if args.key?(:worker_config)
506
+ end
507
+ end
508
+
509
+ # Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature:
510
+ # This report is available for testing purposes only. It may be changed before
511
+ # final release.
512
+ class ClusterMetrics
513
+ include Google::Apis::Core::Hashable
514
+
515
+ # The HDFS metrics.
516
+ # Corresponds to the JSON property `hdfsMetrics`
517
+ # @return [Hash<String,Fixnum>]
518
+ attr_accessor :hdfs_metrics
519
+
520
+ # The YARN metrics.
521
+ # Corresponds to the JSON property `yarnMetrics`
522
+ # @return [Hash<String,Fixnum>]
523
+ attr_accessor :yarn_metrics
524
+
525
+ def initialize(**args)
526
+ update!(**args)
527
+ end
528
+
529
+ # Update properties of this object
530
+ def update!(**args)
531
+ @hdfs_metrics = args[:hdfs_metrics] if args.key?(:hdfs_metrics)
532
+ @yarn_metrics = args[:yarn_metrics] if args.key?(:yarn_metrics)
533
+ end
534
+ end
535
+
536
+ # The cluster operation triggered by a workflow.
537
+ class ClusterOperation
538
+ include Google::Apis::Core::Hashable
539
+
540
+ # Output only. Indicates the operation is done.
541
+ # Corresponds to the JSON property `done`
542
+ # @return [Boolean]
543
+ attr_accessor :done
544
+ alias_method :done?, :done
545
+
546
+ # Output only. Error, if operation failed.
547
+ # Corresponds to the JSON property `error`
548
+ # @return [String]
549
+ attr_accessor :error
550
+
551
+ # Output only. The id of the cluster operation.
552
+ # Corresponds to the JSON property `operationId`
553
+ # @return [String]
554
+ attr_accessor :operation_id
555
+
556
+ def initialize(**args)
557
+ update!(**args)
558
+ end
559
+
560
+ # Update properties of this object
561
+ def update!(**args)
562
+ @done = args[:done] if args.key?(:done)
563
+ @error = args[:error] if args.key?(:error)
564
+ @operation_id = args[:operation_id] if args.key?(:operation_id)
565
+ end
566
+ end
567
+
568
+ # Metadata describing the operation.
569
+ class ClusterOperationMetadata
570
+ include Google::Apis::Core::Hashable
571
+
572
+ # Output only. Name of the cluster for the operation.
573
+ # Corresponds to the JSON property `clusterName`
574
+ # @return [String]
575
+ attr_accessor :cluster_name
576
+
577
+ # Output only. Cluster UUID for the operation.
578
+ # Corresponds to the JSON property `clusterUuid`
579
+ # @return [String]
580
+ attr_accessor :cluster_uuid
581
+
582
+ # Output only. Short description of operation.
583
+ # Corresponds to the JSON property `description`
584
+ # @return [String]
585
+ attr_accessor :description
586
+
587
+ # Output only. Labels associated with the operation
588
+ # Corresponds to the JSON property `labels`
589
+ # @return [Hash<String,String>]
590
+ attr_accessor :labels
591
+
592
+ # Output only. The operation type.
593
+ # Corresponds to the JSON property `operationType`
594
+ # @return [String]
595
+ attr_accessor :operation_type
596
+
597
+ # The status of the operation.
598
+ # Corresponds to the JSON property `status`
599
+ # @return [Google::Apis::DataprocV1beta2::ClusterOperationStatus]
600
+ attr_accessor :status
601
+
602
+ # Output only. The previous operation status.
603
+ # Corresponds to the JSON property `statusHistory`
604
+ # @return [Array<Google::Apis::DataprocV1beta2::ClusterOperationStatus>]
605
+ attr_accessor :status_history
606
+
607
+ # Output only. Errors encountered during operation execution.
608
+ # Corresponds to the JSON property `warnings`
609
+ # @return [Array<String>]
610
+ attr_accessor :warnings
611
+
612
+ def initialize(**args)
613
+ update!(**args)
614
+ end
615
+
616
+ # Update properties of this object
617
+ def update!(**args)
618
+ @cluster_name = args[:cluster_name] if args.key?(:cluster_name)
619
+ @cluster_uuid = args[:cluster_uuid] if args.key?(:cluster_uuid)
620
+ @description = args[:description] if args.key?(:description)
621
+ @labels = args[:labels] if args.key?(:labels)
622
+ @operation_type = args[:operation_type] if args.key?(:operation_type)
623
+ @status = args[:status] if args.key?(:status)
624
+ @status_history = args[:status_history] if args.key?(:status_history)
625
+ @warnings = args[:warnings] if args.key?(:warnings)
626
+ end
627
+ end
628
+
629
+ # The status of the operation.
630
+ class ClusterOperationStatus
631
+ include Google::Apis::Core::Hashable
632
+
633
+ # Output only. A message containing any operation metadata details.
634
+ # Corresponds to the JSON property `details`
635
+ # @return [String]
636
+ attr_accessor :details
637
+
638
+ # Output only. A message containing the detailed operation state.
639
+ # Corresponds to the JSON property `innerState`
640
+ # @return [String]
641
+ attr_accessor :inner_state
642
+
643
+ # Output only. A message containing the operation state.
644
+ # Corresponds to the JSON property `state`
645
+ # @return [String]
646
+ attr_accessor :state
647
+
648
+ # Output only. The time this state was entered.
649
+ # Corresponds to the JSON property `stateStartTime`
650
+ # @return [String]
651
+ attr_accessor :state_start_time
652
+
653
+ def initialize(**args)
654
+ update!(**args)
655
+ end
656
+
657
+ # Update properties of this object
658
+ def update!(**args)
659
+ @details = args[:details] if args.key?(:details)
660
+ @inner_state = args[:inner_state] if args.key?(:inner_state)
661
+ @state = args[:state] if args.key?(:state)
662
+ @state_start_time = args[:state_start_time] if args.key?(:state_start_time)
663
+ end
664
+ end
665
+
666
+ # A selector that chooses target cluster for jobs based on metadata.
667
+ class ClusterSelector
668
+ include Google::Apis::Core::Hashable
669
+
670
+ # Required. The cluster labels. Cluster must have all labels to match.
671
+ # Corresponds to the JSON property `clusterLabels`
672
+ # @return [Hash<String,String>]
673
+ attr_accessor :cluster_labels
674
+
675
+ # Optional. The zone where workflow process executes. This parameter does not
676
+ # affect the selection of the cluster.If unspecified, the zone of the first
677
+ # cluster matching the selector is used.
678
+ # Corresponds to the JSON property `zone`
679
+ # @return [String]
680
+ attr_accessor :zone
681
+
682
+ def initialize(**args)
683
+ update!(**args)
684
+ end
685
+
686
+ # Update properties of this object
687
+ def update!(**args)
688
+ @cluster_labels = args[:cluster_labels] if args.key?(:cluster_labels)
689
+ @zone = args[:zone] if args.key?(:zone)
690
+ end
691
+ end
692
+
693
+ # The status of a cluster and its instances.
694
+ class ClusterStatus
695
+ include Google::Apis::Core::Hashable
696
+
697
+ # Output only. Optional details of cluster's state.
698
+ # Corresponds to the JSON property `detail`
699
+ # @return [String]
700
+ attr_accessor :detail
701
+
702
+ # Output only. The cluster's state.
703
+ # Corresponds to the JSON property `state`
704
+ # @return [String]
705
+ attr_accessor :state
706
+
707
+ # Output only. Time when this state was entered (see JSON representation of
708
+ # Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)).
709
+ # Corresponds to the JSON property `stateStartTime`
710
+ # @return [String]
711
+ attr_accessor :state_start_time
712
+
713
+ # Output only. Additional state information that includes status reported by the
714
+ # agent.
715
+ # Corresponds to the JSON property `substate`
716
+ # @return [String]
717
+ attr_accessor :substate
718
+
719
+ def initialize(**args)
720
+ update!(**args)
721
+ end
722
+
723
+ # Update properties of this object
724
+ def update!(**args)
725
+ @detail = args[:detail] if args.key?(:detail)
726
+ @state = args[:state] if args.key?(:state)
727
+ @state_start_time = args[:state_start_time] if args.key?(:state_start_time)
728
+ @substate = args[:substate] if args.key?(:substate)
729
+ end
730
+ end
731
+
732
+ # A request to collect cluster diagnostic information.
733
+ class DiagnoseClusterRequest
734
+ include Google::Apis::Core::Hashable
735
+
736
+ def initialize(**args)
737
+ update!(**args)
738
+ end
739
+
740
+ # Update properties of this object
741
+ def update!(**args)
742
+ end
743
+ end
744
+
745
+ # The location of diagnostic output.
746
+ class DiagnoseClusterResults
747
+ include Google::Apis::Core::Hashable
748
+
749
+ # Output only. The Cloud Storage URI of the diagnostic output. The output report
750
+ # is a plain text file with a summary of collected diagnostics.
751
+ # Corresponds to the JSON property `outputUri`
752
+ # @return [String]
753
+ attr_accessor :output_uri
754
+
755
+ def initialize(**args)
756
+ update!(**args)
757
+ end
758
+
759
+ # Update properties of this object
760
+ def update!(**args)
761
+ @output_uri = args[:output_uri] if args.key?(:output_uri)
762
+ end
763
+ end
764
+
765
+ # Specifies the config of disk options for a group of VM instances.
766
+ class DiskConfig
767
+ include Google::Apis::Core::Hashable
768
+
769
+ # Optional. Size in GB of the boot disk (default is 500GB).
770
+ # Corresponds to the JSON property `bootDiskSizeGb`
771
+ # @return [Fixnum]
772
+ attr_accessor :boot_disk_size_gb
773
+
774
+ # Optional. Type of the boot disk (default is "pd-standard"). Valid values: "pd-
775
+ # ssd" (Persistent Disk Solid State Drive) or "pd-standard" (Persistent Disk
776
+ # Hard Disk Drive).
777
+ # Corresponds to the JSON property `bootDiskType`
778
+ # @return [String]
779
+ attr_accessor :boot_disk_type
780
+
781
+ # Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached,
782
+ # the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.
783
+ # org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached,
784
+ # this runtime bulk data is spread across them, and the boot disk contains only
785
+ # basic config and installed binaries.
786
+ # Corresponds to the JSON property `numLocalSsds`
787
+ # @return [Fixnum]
788
+ attr_accessor :num_local_ssds
789
+
790
+ def initialize(**args)
791
+ update!(**args)
792
+ end
793
+
794
+ # Update properties of this object
795
+ def update!(**args)
796
+ @boot_disk_size_gb = args[:boot_disk_size_gb] if args.key?(:boot_disk_size_gb)
797
+ @boot_disk_type = args[:boot_disk_type] if args.key?(:boot_disk_type)
798
+ @num_local_ssds = args[:num_local_ssds] if args.key?(:num_local_ssds)
799
+ end
800
+ end
801
+
802
+ # A generic empty message that you can re-use to avoid defining duplicated empty
803
+ # messages in your APIs. A typical example is to use it as the request or the
804
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
805
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
806
+ # Empty is empty JSON object ``.
807
+ class Empty
808
+ include Google::Apis::Core::Hashable
809
+
810
+ def initialize(**args)
811
+ update!(**args)
812
+ end
813
+
814
+ # Update properties of this object
815
+ def update!(**args)
816
+ end
817
+ end
818
+
819
+ # Encryption settings for the cluster.
820
+ class EncryptionConfig
821
+ include Google::Apis::Core::Hashable
822
+
823
+ # Optional. The Cloud KMS key name to use for PD disk encryption for all
824
+ # instances in the cluster.
825
+ # Corresponds to the JSON property `gcePdKmsKeyName`
826
+ # @return [String]
827
+ attr_accessor :gce_pd_kms_key_name
828
+
829
+ def initialize(**args)
830
+ update!(**args)
831
+ end
832
+
833
+ # Update properties of this object
834
+ def update!(**args)
835
+ @gce_pd_kms_key_name = args[:gce_pd_kms_key_name] if args.key?(:gce_pd_kms_key_name)
836
+ end
837
+ end
838
+
839
+ # Endpoint config for this cluster
840
+ class EndpointConfig
841
+ include Google::Apis::Core::Hashable
842
+
843
+ # Optional. If true, enable http access to specific ports on the cluster from
844
+ # external sources. Defaults to false.
845
+ # Corresponds to the JSON property `enableHttpPortAccess`
846
+ # @return [Boolean]
847
+ attr_accessor :enable_http_port_access
848
+ alias_method :enable_http_port_access?, :enable_http_port_access
849
+
850
+ # Output only. The map of port descriptions to URLs. Will only be populated if
851
+ # enable_http_port_access is true.
852
+ # Corresponds to the JSON property `httpPorts`
853
+ # @return [Hash<String,String>]
854
+ attr_accessor :http_ports
855
+
856
+ def initialize(**args)
857
+ update!(**args)
858
+ end
859
+
860
+ # Update properties of this object
861
+ def update!(**args)
862
+ @enable_http_port_access = args[:enable_http_port_access] if args.key?(:enable_http_port_access)
863
+ @http_ports = args[:http_ports] if args.key?(:http_ports)
864
+ end
865
+ end
866
+
867
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
868
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
869
+ # documented at https://github.com/google/cel-spec.Example (Comparison): title: "
870
+ # Summary size limit" description: "Determines if a summary is less than 100
871
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
872
+ # Requestor is owner" description: "Determines if requestor is the document
873
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
874
+ # Logic): title: "Public documents" description: "Determine whether the document
875
+ # should be publicly visible" expression: "document.type != 'private' &&
876
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
877
+ # string" description: "Create a notification string with a timestamp."
878
+ # expression: "'New message received at ' + string(document.create_time)" The
879
+ # exact variables and functions that may be referenced within an expression are
880
+ # determined by the service that evaluates it. See the service documentation for
881
+ # additional information.
882
+ class Expr
883
+ include Google::Apis::Core::Hashable
884
+
885
+ # Optional. Description of the expression. This is a longer text which describes
886
+ # the expression, e.g. when hovered over it in a UI.
887
+ # Corresponds to the JSON property `description`
888
+ # @return [String]
889
+ attr_accessor :description
890
+
891
+ # Textual representation of an expression in Common Expression Language syntax.
892
+ # Corresponds to the JSON property `expression`
893
+ # @return [String]
894
+ attr_accessor :expression
895
+
896
+ # Optional. String indicating the location of the expression for error reporting,
897
+ # e.g. a file name and a position in the file.
898
+ # Corresponds to the JSON property `location`
899
+ # @return [String]
900
+ attr_accessor :location
901
+
902
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
903
+ # This can be used e.g. in UIs which allow to enter the expression.
904
+ # Corresponds to the JSON property `title`
905
+ # @return [String]
906
+ attr_accessor :title
907
+
908
+ def initialize(**args)
909
+ update!(**args)
910
+ end
911
+
912
+ # Update properties of this object
913
+ def update!(**args)
914
+ @description = args[:description] if args.key?(:description)
915
+ @expression = args[:expression] if args.key?(:expression)
916
+ @location = args[:location] if args.key?(:location)
917
+ @title = args[:title] if args.key?(:title)
918
+ end
919
+ end
920
+
921
+ # Common config settings for resources of Compute Engine cluster instances,
922
+ # applicable to all instances in the cluster.
923
+ class GceClusterConfig
924
+ include Google::Apis::Core::Hashable
925
+
926
+ # Optional. If true, all instances in the cluster will only have internal IP
927
+ # addresses. By default, clusters are not restricted to internal IP addresses,
928
+ # and will have ephemeral external IP addresses assigned to each instance. This
929
+ # internal_ip_only restriction can only be enabled for subnetwork enabled
930
+ # networks, and all off-cluster dependencies must be configured to be accessible
931
+ # without external IP addresses.
932
+ # Corresponds to the JSON property `internalIpOnly`
933
+ # @return [Boolean]
934
+ attr_accessor :internal_ip_only
935
+ alias_method :internal_ip_only?, :internal_ip_only
936
+
937
+ # The Compute Engine metadata entries to add to all instances (see Project and
938
+ # instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-
939
+ # metadata#project_and_instance_metadata)).
940
+ # Corresponds to the JSON property `metadata`
941
+ # @return [Hash<String,String>]
942
+ attr_accessor :metadata
943
+
944
+ # Optional. The Compute Engine network to be used for machine communications.
945
+ # Cannot be specified with subnetwork_uri. If neither network_uri nor
946
+ # subnetwork_uri is specified, the "default" network of the project is used, if
947
+ # it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks (https://
948
+ # cloud.google.com/compute/docs/subnetworks) for more information).A full URL,
949
+ # partial URI, or short name are valid. Examples: https://www.googleapis.com/
950
+ # compute/v1/projects/[project_id]/regions/global/default projects/[project_id]/
951
+ # regions/global/default default
952
+ # Corresponds to the JSON property `networkUri`
953
+ # @return [String]
954
+ attr_accessor :network_uri
955
+
956
+ # Node Group Affinity for clusters using sole-tenant node groups.
957
+ # Corresponds to the JSON property `nodeGroupAffinity`
958
+ # @return [Google::Apis::DataprocV1beta2::NodeGroupAffinity]
959
+ attr_accessor :node_group_affinity
960
+
961
+ # Optional. The type of IPv6 access for a cluster.
962
+ # Corresponds to the JSON property `privateIpv6GoogleAccess`
963
+ # @return [String]
964
+ attr_accessor :private_ipv6_google_access
965
+
966
+ # Reservation Affinity for consuming Zonal reservation.
967
+ # Corresponds to the JSON property `reservationAffinity`
968
+ # @return [Google::Apis::DataprocV1beta2::ReservationAffinity]
969
+ attr_accessor :reservation_affinity
970
+
971
+ # Optional. The Dataproc service account (https://cloud.google.com/dataproc/docs/
972
+ # concepts/configuring-clusters/service-accounts#service_accounts_in_dataproc) (
973
+ # also see VM Data Plane identity (https://cloud.google.com/dataproc/docs/
974
+ # concepts/iam/dataproc-principals#vm_service_account_data_plane_identity)) used
975
+ # by Dataproc cluster VM instances to access Google Cloud Platform services.If
976
+ # not specified, the Compute Engine default service account (https://cloud.
977
+ # google.com/compute/docs/access/service-accounts#default_service_account) is
978
+ # used.
979
+ # Corresponds to the JSON property `serviceAccount`
980
+ # @return [String]
981
+ attr_accessor :service_account
982
+
983
+ # Optional. The URIs of service account scopes to be included in Compute Engine
984
+ # instances. The following base set of scopes is always included: https://www.
985
+ # googleapis.com/auth/cloud.useraccounts.readonly https://www.googleapis.com/
986
+ # auth/devstorage.read_write https://www.googleapis.com/auth/logging.writeIf no
987
+ # scopes are specified, the following defaults are also provided: https://www.
988
+ # googleapis.com/auth/bigquery https://www.googleapis.com/auth/bigtable.admin.
989
+ # table https://www.googleapis.com/auth/bigtable.data https://www.googleapis.com/
990
+ # auth/devstorage.full_control
991
+ # Corresponds to the JSON property `serviceAccountScopes`
992
+ # @return [Array<String>]
993
+ attr_accessor :service_account_scopes
994
+
995
+ # Shielded Instance Config for clusters using shielded VMs.
996
+ # Corresponds to the JSON property `shieldedInstanceConfig`
997
+ # @return [Google::Apis::DataprocV1beta2::ShieldedInstanceConfig]
998
+ attr_accessor :shielded_instance_config
999
+
1000
+ # Optional. The Compute Engine subnetwork to be used for machine communications.
1001
+ # Cannot be specified with network_uri.A full URL, partial URI, or short name
1002
+ # are valid. Examples: https://www.googleapis.com/compute/v1/projects/[
1003
+ # project_id]/regions/us-east1/subnetworks/sub0 projects/[project_id]/regions/us-
1004
+ # east1/subnetworks/sub0 sub0
1005
+ # Corresponds to the JSON property `subnetworkUri`
1006
+ # @return [String]
1007
+ attr_accessor :subnetwork_uri
1008
+
1009
+ # The Compute Engine tags to add to all instances (see Tagging instances (https:/
1010
+ # /cloud.google.com/compute/docs/label-or-tag-resources#tags)).
1011
+ # Corresponds to the JSON property `tags`
1012
+ # @return [Array<String>]
1013
+ attr_accessor :tags
1014
+
1015
+ # Optional. The zone where the Compute Engine cluster will be located. On a
1016
+ # create request, it is required in the "global" region. If omitted in a non-
1017
+ # global Dataproc region, the service will pick a zone in the corresponding
1018
+ # Compute Engine region. On a get request, zone will always be present.A full
1019
+ # URL, partial URI, or short name are valid. Examples: https://www.googleapis.
1020
+ # com/compute/v1/projects/[project_id]/zones/[zone] projects/[project_id]/zones/[
1021
+ # zone] us-central1-f
1022
+ # Corresponds to the JSON property `zoneUri`
1023
+ # @return [String]
1024
+ attr_accessor :zone_uri
1025
+
1026
+ def initialize(**args)
1027
+ update!(**args)
1028
+ end
1029
+
1030
+ # Update properties of this object
1031
+ def update!(**args)
1032
+ @internal_ip_only = args[:internal_ip_only] if args.key?(:internal_ip_only)
1033
+ @metadata = args[:metadata] if args.key?(:metadata)
1034
+ @network_uri = args[:network_uri] if args.key?(:network_uri)
1035
+ @node_group_affinity = args[:node_group_affinity] if args.key?(:node_group_affinity)
1036
+ @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
1037
+ @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
1038
+ @service_account = args[:service_account] if args.key?(:service_account)
1039
+ @service_account_scopes = args[:service_account_scopes] if args.key?(:service_account_scopes)
1040
+ @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
1041
+ @subnetwork_uri = args[:subnetwork_uri] if args.key?(:subnetwork_uri)
1042
+ @tags = args[:tags] if args.key?(:tags)
1043
+ @zone_uri = args[:zone_uri] if args.key?(:zone_uri)
1044
+ end
1045
+ end
1046
+
1047
+ # Request message for GetIamPolicy method.
1048
+ class GetIamPolicyRequest
1049
+ include Google::Apis::Core::Hashable
1050
+
1051
+ # Encapsulates settings provided to GetIamPolicy.
1052
+ # Corresponds to the JSON property `options`
1053
+ # @return [Google::Apis::DataprocV1beta2::GetPolicyOptions]
1054
+ attr_accessor :options
1055
+
1056
+ def initialize(**args)
1057
+ update!(**args)
1058
+ end
1059
+
1060
+ # Update properties of this object
1061
+ def update!(**args)
1062
+ @options = args[:options] if args.key?(:options)
1063
+ end
1064
+ end
1065
+
1066
+ # Encapsulates settings provided to GetIamPolicy.
1067
+ class GetPolicyOptions
1068
+ include Google::Apis::Core::Hashable
1069
+
1070
+ # Optional. The policy format version to be returned.Valid values are 0, 1, and
1071
+ # 3. Requests specifying an invalid value will be rejected.Requests for policies
1072
+ # with any conditional bindings must specify version 3. Policies without any
1073
+ # conditional bindings may specify any valid value or leave the field unset.To
1074
+ # learn which resources support conditions in their IAM policies, see the IAM
1075
+ # documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
1076
+ # Corresponds to the JSON property `requestedPolicyVersion`
1077
+ # @return [Fixnum]
1078
+ attr_accessor :requested_policy_version
1079
+
1080
+ def initialize(**args)
1081
+ update!(**args)
1082
+ end
1083
+
1084
+ # Update properties of this object
1085
+ def update!(**args)
1086
+ @requested_policy_version = args[:requested_policy_version] if args.key?(:requested_policy_version)
1087
+ end
1088
+ end
1089
+
1090
+ # The GKE config for this cluster.
1091
+ class GkeClusterConfig
1092
+ include Google::Apis::Core::Hashable
1093
+
1094
+ # A full, namespace-isolated deployment target for an existing GKE cluster.
1095
+ # Corresponds to the JSON property `namespacedGkeDeploymentTarget`
1096
+ # @return [Google::Apis::DataprocV1beta2::NamespacedGkeDeploymentTarget]
1097
+ attr_accessor :namespaced_gke_deployment_target
1098
+
1099
+ def initialize(**args)
1100
+ update!(**args)
1101
+ end
1102
+
1103
+ # Update properties of this object
1104
+ def update!(**args)
1105
+ @namespaced_gke_deployment_target = args[:namespaced_gke_deployment_target] if args.key?(:namespaced_gke_deployment_target)
1106
+ end
1107
+ end
1108
+
1109
+ # A Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/
1110
+ # docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/
1111
+ # MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/
1112
+ # docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html).
1113
+ class HadoopJob
1114
+ include Google::Apis::Core::Hashable
1115
+
1116
+ # Optional. HCFS URIs of archives to be extracted in the working directory of
1117
+ # Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .
1118
+ # zip.
1119
+ # Corresponds to the JSON property `archiveUris`
1120
+ # @return [Array<String>]
1121
+ attr_accessor :archive_uris
1122
+
1123
+ # Optional. The arguments to pass to the driver. Do not include arguments, such
1124
+ # as -libjars or -Dfoo=bar, that can be set as job properties, since a collision
1125
+ # may occur that causes an incorrect job submission.
1126
+ # Corresponds to the JSON property `args`
1127
+ # @return [Array<String>]
1128
+ attr_accessor :args
1129
+
1130
+ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to
1131
+ # the working directory of Hadoop drivers and distributed tasks. Useful for
1132
+ # naively parallel tasks.
1133
+ # Corresponds to the JSON property `fileUris`
1134
+ # @return [Array<String>]
1135
+ attr_accessor :file_uris
1136
+
1137
+ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and
1138
+ # tasks.
1139
+ # Corresponds to the JSON property `jarFileUris`
1140
+ # @return [Array<String>]
1141
+ attr_accessor :jar_file_uris
1142
+
1143
+ # The runtime logging config of the job.
1144
+ # Corresponds to the JSON property `loggingConfig`
1145
+ # @return [Google::Apis::DataprocV1beta2::LoggingConfig]
1146
+ attr_accessor :logging_config
1147
+
1148
+ # The name of the driver's main class. The jar file containing the class must be
1149
+ # in the default CLASSPATH or specified in jar_file_uris.
1150
+ # Corresponds to the JSON property `mainClass`
1151
+ # @return [String]
1152
+ attr_accessor :main_class
1153
+
1154
+ # The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-
1155
+ # bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-
1156
+ # samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-
1157
+ # mapreduce-examples.jar'
1158
+ # Corresponds to the JSON property `mainJarFileUri`
1159
+ # @return [String]
1160
+ attr_accessor :main_jar_file_uri
1161
+
1162
+ # Optional. A mapping of property names to values, used to configure Hadoop.
1163
+ # Properties that conflict with values set by the Dataproc API may be
1164
+ # overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes
1165
+ # in user code.
1166
+ # Corresponds to the JSON property `properties`
1167
+ # @return [Hash<String,String>]
1168
+ attr_accessor :properties
1169
+
1170
+ def initialize(**args)
1171
+ update!(**args)
1172
+ end
1173
+
1174
+ # Update properties of this object
1175
+ def update!(**args)
1176
+ @archive_uris = args[:archive_uris] if args.key?(:archive_uris)
1177
+ @args = args[:args] if args.key?(:args)
1178
+ @file_uris = args[:file_uris] if args.key?(:file_uris)
1179
+ @jar_file_uris = args[:jar_file_uris] if args.key?(:jar_file_uris)
1180
+ @logging_config = args[:logging_config] if args.key?(:logging_config)
1181
+ @main_class = args[:main_class] if args.key?(:main_class)
1182
+ @main_jar_file_uri = args[:main_jar_file_uri] if args.key?(:main_jar_file_uri)
1183
+ @properties = args[:properties] if args.key?(:properties)
1184
+ end
1185
+ end
1186
+
1187
+ # A Dataproc job for running Apache Hive (https://hive.apache.org/) queries on
1188
+ # YARN.
1189
+ class HiveJob
1190
+ include Google::Apis::Core::Hashable
1191
+
1192
+ # Optional. Whether to continue executing queries if a query fails. The default
1193
+ # value is false. Setting to true can be useful when executing independent
1194
+ # parallel queries.
1195
+ # Corresponds to the JSON property `continueOnFailure`
1196
+ # @return [Boolean]
1197
+ attr_accessor :continue_on_failure
1198
+ alias_method :continue_on_failure?, :continue_on_failure
1199
+
1200
+ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server
1201
+ # and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
1202
+ # Corresponds to the JSON property `jarFileUris`
1203
+ # @return [Array<String>]
1204
+ attr_accessor :jar_file_uris
1205
+
1206
+ # Optional. A mapping of property names and values, used to configure Hive.
1207
+ # Properties that conflict with values set by the Dataproc API may be
1208
+ # overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/
1209
+ # hive/conf/hive-site.xml, and classes in user code.
1210
+ # Corresponds to the JSON property `properties`
1211
+ # @return [Hash<String,String>]
1212
+ attr_accessor :properties
1213
+
1214
+ # The HCFS URI of the script that contains Hive queries.
1215
+ # Corresponds to the JSON property `queryFileUri`
1216
+ # @return [String]
1217
+ attr_accessor :query_file_uri
1218
+
1219
+ # A list of queries to run on a cluster.
1220
+ # Corresponds to the JSON property `queryList`
1221
+ # @return [Google::Apis::DataprocV1beta2::QueryList]
1222
+ attr_accessor :query_list
1223
+
1224
+ # Optional. Mapping of query variable names to values (equivalent to the Hive
1225
+ # command: SET name="value";).
1226
+ # Corresponds to the JSON property `scriptVariables`
1227
+ # @return [Hash<String,String>]
1228
+ attr_accessor :script_variables
1229
+
1230
+ def initialize(**args)
1231
+ update!(**args)
1232
+ end
1233
+
1234
+ # Update properties of this object
1235
+ def update!(**args)
1236
+ @continue_on_failure = args[:continue_on_failure] if args.key?(:continue_on_failure)
1237
+ @jar_file_uris = args[:jar_file_uris] if args.key?(:jar_file_uris)
1238
+ @properties = args[:properties] if args.key?(:properties)
1239
+ @query_file_uri = args[:query_file_uri] if args.key?(:query_file_uri)
1240
+ @query_list = args[:query_list] if args.key?(:query_list)
1241
+ @script_variables = args[:script_variables] if args.key?(:script_variables)
1242
+ end
1243
+ end
1244
+
1245
+ # A request to inject credentials into a cluster.
1246
+ class InjectCredentialsRequest
1247
+ include Google::Apis::Core::Hashable
1248
+
1249
+ # Required. The cluster UUID.
1250
+ # Corresponds to the JSON property `clusterUuid`
1251
+ # @return [String]
1252
+ attr_accessor :cluster_uuid
1253
+
1254
+ # Required. The encrypted credentials being injected in to the cluster.The
1255
+ # client is responsible for encrypting the credentials in a way that is
1256
+ # supported by the cluster.A wrapped value is used here so that the actual
1257
+ # contents of the encrypted credentials are not written to audit logs.
1258
+ # Corresponds to the JSON property `credentialsCiphertext`
1259
+ # @return [String]
1260
+ attr_accessor :credentials_ciphertext
1261
+
1262
+ def initialize(**args)
1263
+ update!(**args)
1264
+ end
1265
+
1266
+ # Update properties of this object
1267
+ def update!(**args)
1268
+ @cluster_uuid = args[:cluster_uuid] if args.key?(:cluster_uuid)
1269
+ @credentials_ciphertext = args[:credentials_ciphertext] if args.key?(:credentials_ciphertext)
1270
+ end
1271
+ end
1272
+
1273
+ # Configuration for the size bounds of an instance group, including its
1274
+ # proportional size to other groups.
1275
+ class InstanceGroupAutoscalingPolicyConfig
1276
+ include Google::Apis::Core::Hashable
1277
+
1278
+ # Optional. Maximum number of instances for this group. Required for primary
1279
+ # workers. Note that by default, clusters will not use secondary workers.
1280
+ # Required for secondary workers if the minimum secondary instances is set.
1281
+ # Primary workers - Bounds: [min_instances, ). Required. Secondary workers -
1282
+ # Bounds: [min_instances, ). Default: 0.
1283
+ # Corresponds to the JSON property `maxInstances`
1284
+ # @return [Fixnum]
1285
+ attr_accessor :max_instances
1286
+
1287
+ # Optional. Minimum number of instances for this group.Primary workers - Bounds:
1288
+ # 2, max_instances. Default: 2. Secondary workers - Bounds: 0, max_instances.
1289
+ # Default: 0.
1290
+ # Corresponds to the JSON property `minInstances`
1291
+ # @return [Fixnum]
1292
+ attr_accessor :min_instances
1293
+
1294
+ # Optional. Weight for the instance group, which is used to determine the
1295
+ # fraction of total workers in the cluster from this instance group. For example,
1296
+ # if primary workers have weight 2, and secondary workers have weight 1, the
1297
+ # cluster will have approximately 2 primary workers for each secondary worker.
1298
+ # The cluster may not reach the specified balance if constrained by min/max
1299
+ # bounds or other autoscaling settings. For example, if max_instances for
1300
+ # secondary workers is 0, then only primary workers will be added. The cluster
1301
+ # can also be out of balance when created.If weight is not set on any instance
1302
+ # group, the cluster will default to equal weight for all groups: the cluster
1303
+ # will attempt to maintain an equal number of workers in each group within the
1304
+ # configured size bounds for each group. If weight is set for one group only,
1305
+ # the cluster will default to zero weight on the unset group. For example if
1306
+ # weight is set only on primary workers, the cluster will use primary workers
1307
+ # only and no secondary workers.
1308
+ # Corresponds to the JSON property `weight`
1309
+ # @return [Fixnum]
1310
+ attr_accessor :weight
1311
+
1312
+ def initialize(**args)
1313
+ update!(**args)
1314
+ end
1315
+
1316
+ # Update properties of this object
1317
+ def update!(**args)
1318
+ @max_instances = args[:max_instances] if args.key?(:max_instances)
1319
+ @min_instances = args[:min_instances] if args.key?(:min_instances)
1320
+ @weight = args[:weight] if args.key?(:weight)
1321
+ end
1322
+ end
1323
+
1324
+ # The config settings for Compute Engine resources in an instance group, such as
1325
+ # a master or worker group.
1326
+ class InstanceGroupConfig
1327
+ include Google::Apis::Core::Hashable
1328
+
1329
+ # Optional. The Compute Engine accelerator configuration for these instances.
1330
+ # Corresponds to the JSON property `accelerators`
1331
+ # @return [Array<Google::Apis::DataprocV1beta2::AcceleratorConfig>]
1332
+ attr_accessor :accelerators
1333
+
1334
+ # Specifies the config of disk options for a group of VM instances.
1335
+ # Corresponds to the JSON property `diskConfig`
1336
+ # @return [Google::Apis::DataprocV1beta2::DiskConfig]
1337
+ attr_accessor :disk_config
1338
+
1339
+ # Optional. The Compute Engine image resource used for cluster instances.The URI
1340
+ # can represent an image or image family.Image examples: https://www.googleapis.
1341
+ # com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[
1342
+ # project_id]/global/images/[image-id] image-idImage family examples. Dataproc
1343
+ # will use the most recent image from the family: https://www.googleapis.com/
1344
+ # compute/beta/projects/[project_id]/global/images/family/[custom-image-family-
1345
+ # name] projects/[project_id]/global/images/family/[custom-image-family-name]If
1346
+ # the URI is unspecified, it will be inferred from SoftwareConfig.image_version
1347
+ # or the system default.
1348
+ # Corresponds to the JSON property `imageUri`
1349
+ # @return [String]
1350
+ attr_accessor :image_uri
1351
+
1352
+ # Output only. The list of instance names. Dataproc derives the names from
1353
+ # cluster_name, num_instances, and the instance group.
1354
+ # Corresponds to the JSON property `instanceNames`
1355
+ # @return [Array<String>]
1356
+ attr_accessor :instance_names
1357
+
1358
+ # Output only. List of references to Compute Engine instances.
1359
+ # Corresponds to the JSON property `instanceReferences`
1360
+ # @return [Array<Google::Apis::DataprocV1beta2::InstanceReference>]
1361
+ attr_accessor :instance_references
1362
+
1363
+ # Output only. Specifies that this instance group contains preemptible instances.
1364
+ # Corresponds to the JSON property `isPreemptible`
1365
+ # @return [Boolean]
1366
+ attr_accessor :is_preemptible
1367
+ alias_method :is_preemptible?, :is_preemptible
1368
+
1369
+ # Optional. The Compute Engine machine type used for cluster instances.A full
1370
+ # URL, partial URI, or short name are valid. Examples: https://www.googleapis.
1371
+ # com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-
1372
+ # 2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-
1373
+ # standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone
1374
+ # Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-
1375
+ # clusters/auto-zone#using_auto_zone_placement) feature, you must use the short
1376
+ # name of the machine type resource, for example, n1-standard-2.
1377
+ # Corresponds to the JSON property `machineTypeUri`
1378
+ # @return [String]
1379
+ attr_accessor :machine_type_uri
1380
+
1381
+ # Specifies the resources used to actively manage an instance group.
1382
+ # Corresponds to the JSON property `managedGroupConfig`
1383
+ # @return [Google::Apis::DataprocV1beta2::ManagedGroupConfig]
1384
+ attr_accessor :managed_group_config
1385
+
1386
+ # Specifies the minimum cpu platform for the Instance Group. See Dataproc ->
1387
+ # Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/
1388
+ # dataproc-min-cpu).
1389
+ # Corresponds to the JSON property `minCpuPlatform`
1390
+ # @return [String]
1391
+ attr_accessor :min_cpu_platform
1392
+
1393
+ # Optional. The number of VM instances in the instance group. For master
1394
+ # instance groups, must be set to 1.
1395
+ # Corresponds to the JSON property `numInstances`
1396
+ # @return [Fixnum]
1397
+ attr_accessor :num_instances
1398
+
1399
+ # Optional. Specifies the preemptibility of the instance group.The default value
1400
+ # for master and worker groups is NON_PREEMPTIBLE. This default cannot be
1401
+ # changed.The default value for secondary instances is PREEMPTIBLE.
1402
+ # Corresponds to the JSON property `preemptibility`
1403
+ # @return [String]
1404
+ attr_accessor :preemptibility
1405
+
1406
+ def initialize(**args)
1407
+ update!(**args)
1408
+ end
1409
+
1410
+ # Update properties of this object
1411
+ def update!(**args)
1412
+ @accelerators = args[:accelerators] if args.key?(:accelerators)
1413
+ @disk_config = args[:disk_config] if args.key?(:disk_config)
1414
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
1415
+ @instance_names = args[:instance_names] if args.key?(:instance_names)
1416
+ @instance_references = args[:instance_references] if args.key?(:instance_references)
1417
+ @is_preemptible = args[:is_preemptible] if args.key?(:is_preemptible)
1418
+ @machine_type_uri = args[:machine_type_uri] if args.key?(:machine_type_uri)
1419
+ @managed_group_config = args[:managed_group_config] if args.key?(:managed_group_config)
1420
+ @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
1421
+ @num_instances = args[:num_instances] if args.key?(:num_instances)
1422
+ @preemptibility = args[:preemptibility] if args.key?(:preemptibility)
1423
+ end
1424
+ end
1425
+
1426
+ # A reference to a Compute Engine instance.
1427
+ class InstanceReference
1428
+ include Google::Apis::Core::Hashable
1429
+
1430
+ # The unique identifier of the Compute Engine instance.
1431
+ # Corresponds to the JSON property `instanceId`
1432
+ # @return [String]
1433
+ attr_accessor :instance_id
1434
+
1435
+ # The user-friendly name of the Compute Engine instance.
1436
+ # Corresponds to the JSON property `instanceName`
1437
+ # @return [String]
1438
+ attr_accessor :instance_name
1439
+
1440
+ # The public key used for sharing data with this instance.
1441
+ # Corresponds to the JSON property `publicKey`
1442
+ # @return [String]
1443
+ attr_accessor :public_key
1444
+
1445
+ def initialize(**args)
1446
+ update!(**args)
1447
+ end
1448
+
1449
+ # Update properties of this object
1450
+ def update!(**args)
1451
+ @instance_id = args[:instance_id] if args.key?(:instance_id)
1452
+ @instance_name = args[:instance_name] if args.key?(:instance_name)
1453
+ @public_key = args[:public_key] if args.key?(:public_key)
1454
+ end
1455
+ end
1456
+
1457
+ # A request to instantiate a workflow template.
1458
+ class InstantiateWorkflowTemplateRequest
1459
+ include Google::Apis::Core::Hashable
1460
+
1461
+ # Deprecated. Please use request_id field instead.
1462
+ # Corresponds to the JSON property `instanceId`
1463
+ # @return [String]
1464
+ attr_accessor :instance_id
1465
+
1466
+ # Optional. Map from parameter names to values that should be used for those
1467
+ # parameters. Values may not exceed 1000 characters.
1468
+ # Corresponds to the JSON property `parameters`
1469
+ # @return [Hash<String,String>]
1470
+ attr_accessor :parameters
1471
+
1472
+ # Optional. A tag that prevents multiple concurrent workflow instances with the
1473
+ # same tag from running. This mitigates risk of concurrent instances started due
1474
+ # to retries.It is recommended to always set this value to a UUID (https://en.
1475
+ # wikipedia.org/wiki/Universally_unique_identifier).The tag must contain only
1476
+ # letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The
1477
+ # maximum length is 40 characters.
1478
+ # Corresponds to the JSON property `requestId`
1479
+ # @return [String]
1480
+ attr_accessor :request_id
1481
+
1482
+ # Optional. The version of workflow template to instantiate. If specified, the
1483
+ # workflow will be instantiated only if the current version of the workflow
1484
+ # template has the supplied version.This option cannot be used to instantiate a
1485
+ # previous version of workflow template.
1486
+ # Corresponds to the JSON property `version`
1487
+ # @return [Fixnum]
1488
+ attr_accessor :version
1489
+
1490
+ def initialize(**args)
1491
+ update!(**args)
1492
+ end
1493
+
1494
+ # Update properties of this object
1495
+ def update!(**args)
1496
+ @instance_id = args[:instance_id] if args.key?(:instance_id)
1497
+ @parameters = args[:parameters] if args.key?(:parameters)
1498
+ @request_id = args[:request_id] if args.key?(:request_id)
1499
+ @version = args[:version] if args.key?(:version)
1500
+ end
1501
+ end
1502
+
1503
+ # A Dataproc job resource.
1504
+ class Job
1505
+ include Google::Apis::Core::Hashable
1506
+
1507
+ # Output only. Indicates whether the job is completed. If the value is false,
1508
+ # the job is still in progress. If true, the job is completed, and status.state
1509
+ # field will indicate if it was successful, failed, or cancelled.
1510
+ # Corresponds to the JSON property `done`
1511
+ # @return [Boolean]
1512
+ attr_accessor :done
1513
+ alias_method :done?, :done
1514
+
1515
+ # Output only. If present, the location of miscellaneous control files which may
1516
+ # be used as part of job setup and handling. If not present, control files may
1517
+ # be placed in the same location as driver_output_uri.
1518
+ # Corresponds to the JSON property `driverControlFilesUri`
1519
+ # @return [String]
1520
+ attr_accessor :driver_control_files_uri
1521
+
1522
+ # Output only. A URI pointing to the location of the stdout of the job's driver
1523
+ # program.
1524
+ # Corresponds to the JSON property `driverOutputResourceUri`
1525
+ # @return [String]
1526
+ attr_accessor :driver_output_resource_uri
1527
+
1528
+ # A Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/
1529
+ # docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/
1530
+ # MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/
1531
+ # docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html).
1532
+ # Corresponds to the JSON property `hadoopJob`
1533
+ # @return [Google::Apis::DataprocV1beta2::HadoopJob]
1534
+ attr_accessor :hadoop_job
1535
+
1536
+ # A Dataproc job for running Apache Hive (https://hive.apache.org/) queries on
1537
+ # YARN.
1538
+ # Corresponds to the JSON property `hiveJob`
1539
+ # @return [Google::Apis::DataprocV1beta2::HiveJob]
1540
+ attr_accessor :hive_job
1541
+
1542
+ # Output only. A UUID that uniquely identifies a job within the project over
1543
+ # time. This is in contrast to a user-settable reference.job_id that may be
1544
+ # reused over time.
1545
+ # Corresponds to the JSON property `jobUuid`
1546
+ # @return [String]
1547
+ attr_accessor :job_uuid
1548
+
1549
+ # Optional. The labels to associate with this job. Label keys must contain 1 to
1550
+ # 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.
1551
+ # txt). Label values may be empty, but, if present, must contain 1 to 63
1552
+ # characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt)
1553
+ # . No more than 32 labels can be associated with a job.
1554
+ # Corresponds to the JSON property `labels`
1555
+ # @return [Hash<String,String>]
1556
+ attr_accessor :labels
1557
+
1558
+ # A Dataproc job for running Apache Pig (https://pig.apache.org/) queries on
1559
+ # YARN.
1560
+ # Corresponds to the JSON property `pigJob`
1561
+ # @return [Google::Apis::DataprocV1beta2::PigJob]
1562
+ attr_accessor :pig_job
1563
+
1564
+ # Dataproc job config.
1565
+ # Corresponds to the JSON property `placement`
1566
+ # @return [Google::Apis::DataprocV1beta2::JobPlacement]
1567
+ attr_accessor :placement
1568
+
1569
+ # A Dataproc job for running Presto (https://prestosql.io/) queries. IMPORTANT:
1570
+ # The Dataproc Presto Optional Component (https://cloud.google.com/dataproc/docs/
1571
+ # concepts/components/presto) must be enabled when the cluster is created to
1572
+ # submit a Presto job to the cluster.
1573
+ # Corresponds to the JSON property `prestoJob`
1574
+ # @return [Google::Apis::DataprocV1beta2::PrestoJob]
1575
+ attr_accessor :presto_job
1576
+
1577
+ # A Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/
1578
+ # python-programming-guide.html) applications on YARN.
1579
+ # Corresponds to the JSON property `pysparkJob`
1580
+ # @return [Google::Apis::DataprocV1beta2::PySparkJob]
1581
+ attr_accessor :pyspark_job
1582
+
1583
+ # Encapsulates the full scoping used to reference a job.
1584
+ # Corresponds to the JSON property `reference`
1585
+ # @return [Google::Apis::DataprocV1beta2::JobReference]
1586
+ attr_accessor :reference
1587
+
1588
+ # Job scheduling options.
1589
+ # Corresponds to the JSON property `scheduling`
1590
+ # @return [Google::Apis::DataprocV1beta2::JobScheduling]
1591
+ attr_accessor :scheduling
1592
+
1593
+ # A Dataproc job for running Apache Spark (http://spark.apache.org/)
1594
+ # applications on YARN. The specification of the main method to call to drive
1595
+ # the job. Specify either the jar file that contains the main class or the main
1596
+ # class name. To pass both a main jar and a main class in that jar, add the jar
1597
+ # to CommonJob.jar_file_uris, and then specify the main class name in main_class.
1598
+ # Corresponds to the JSON property `sparkJob`
1599
+ # @return [Google::Apis::DataprocV1beta2::SparkJob]
1600
+ attr_accessor :spark_job
1601
+
1602
+ # A Dataproc job for running Apache SparkR (https://spark.apache.org/docs/latest/
1603
+ # sparkr.html) applications on YARN.
1604
+ # Corresponds to the JSON property `sparkRJob`
1605
+ # @return [Google::Apis::DataprocV1beta2::SparkRJob]
1606
+ attr_accessor :spark_r_job
1607
+
1608
+ # A Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/)
1609
+ # queries.
1610
+ # Corresponds to the JSON property `sparkSqlJob`
1611
+ # @return [Google::Apis::DataprocV1beta2::SparkSqlJob]
1612
+ attr_accessor :spark_sql_job
1613
+
1614
+ # Dataproc job status.
1615
+ # Corresponds to the JSON property `status`
1616
+ # @return [Google::Apis::DataprocV1beta2::JobStatus]
1617
+ attr_accessor :status
1618
+
1619
+ # Output only. The previous job status.
1620
+ # Corresponds to the JSON property `statusHistory`
1621
+ # @return [Array<Google::Apis::DataprocV1beta2::JobStatus>]
1622
+ attr_accessor :status_history
1623
+
1624
+ # Output only. The email address of the user submitting the job. For jobs
1625
+ # submitted on the cluster, the address is username@hostname.
1626
+ # Corresponds to the JSON property `submittedBy`
1627
+ # @return [String]
1628
+ attr_accessor :submitted_by
1629
+
1630
+ # Output only. The collection of YARN applications spun up by this job.Beta
1631
+ # Feature: This report is available for testing purposes only. It may be changed
1632
+ # before final release.
1633
+ # Corresponds to the JSON property `yarnApplications`
1634
+ # @return [Array<Google::Apis::DataprocV1beta2::YarnApplication>]
1635
+ attr_accessor :yarn_applications
1636
+
1637
+ def initialize(**args)
1638
+ update!(**args)
1639
+ end
1640
+
1641
+ # Update properties of this object
1642
+ def update!(**args)
1643
+ @done = args[:done] if args.key?(:done)
1644
+ @driver_control_files_uri = args[:driver_control_files_uri] if args.key?(:driver_control_files_uri)
1645
+ @driver_output_resource_uri = args[:driver_output_resource_uri] if args.key?(:driver_output_resource_uri)
1646
+ @hadoop_job = args[:hadoop_job] if args.key?(:hadoop_job)
1647
+ @hive_job = args[:hive_job] if args.key?(:hive_job)
1648
+ @job_uuid = args[:job_uuid] if args.key?(:job_uuid)
1649
+ @labels = args[:labels] if args.key?(:labels)
1650
+ @pig_job = args[:pig_job] if args.key?(:pig_job)
1651
+ @placement = args[:placement] if args.key?(:placement)
1652
+ @presto_job = args[:presto_job] if args.key?(:presto_job)
1653
+ @pyspark_job = args[:pyspark_job] if args.key?(:pyspark_job)
1654
+ @reference = args[:reference] if args.key?(:reference)
1655
+ @scheduling = args[:scheduling] if args.key?(:scheduling)
1656
+ @spark_job = args[:spark_job] if args.key?(:spark_job)
1657
+ @spark_r_job = args[:spark_r_job] if args.key?(:spark_r_job)
1658
+ @spark_sql_job = args[:spark_sql_job] if args.key?(:spark_sql_job)
1659
+ @status = args[:status] if args.key?(:status)
1660
+ @status_history = args[:status_history] if args.key?(:status_history)
1661
+ @submitted_by = args[:submitted_by] if args.key?(:submitted_by)
1662
+ @yarn_applications = args[:yarn_applications] if args.key?(:yarn_applications)
1663
+ end
1664
+ end
1665
+
1666
+ # Job Operation metadata.
1667
+ class JobMetadata
1668
+ include Google::Apis::Core::Hashable
1669
+
1670
+ # Output only. The job id.
1671
+ # Corresponds to the JSON property `jobId`
1672
+ # @return [String]
1673
+ attr_accessor :job_id
1674
+
1675
+ # Output only. Operation type.
1676
+ # Corresponds to the JSON property `operationType`
1677
+ # @return [String]
1678
+ attr_accessor :operation_type
1679
+
1680
+ # Output only. Job submission time.
1681
+ # Corresponds to the JSON property `startTime`
1682
+ # @return [String]
1683
+ attr_accessor :start_time
1684
+
1685
+ # Dataproc job status.
1686
+ # Corresponds to the JSON property `status`
1687
+ # @return [Google::Apis::DataprocV1beta2::JobStatus]
1688
+ attr_accessor :status
1689
+
1690
+ def initialize(**args)
1691
+ update!(**args)
1692
+ end
1693
+
1694
+ # Update properties of this object
1695
+ def update!(**args)
1696
+ @job_id = args[:job_id] if args.key?(:job_id)
1697
+ @operation_type = args[:operation_type] if args.key?(:operation_type)
1698
+ @start_time = args[:start_time] if args.key?(:start_time)
1699
+ @status = args[:status] if args.key?(:status)
1700
+ end
1701
+ end
1702
+
1703
+ # Dataproc job config.
1704
+ class JobPlacement
1705
+ include Google::Apis::Core::Hashable
1706
+
1707
+ # Required. The name of the cluster where the job will be submitted.
1708
+ # Corresponds to the JSON property `clusterName`
1709
+ # @return [String]
1710
+ attr_accessor :cluster_name
1711
+
1712
+ # Output only. A cluster UUID generated by the Dataproc service when the job is
1713
+ # submitted.
1714
+ # Corresponds to the JSON property `clusterUuid`
1715
+ # @return [String]
1716
+ attr_accessor :cluster_uuid
1717
+
1718
+ def initialize(**args)
1719
+ update!(**args)
1720
+ end
1721
+
1722
+ # Update properties of this object
1723
+ def update!(**args)
1724
+ @cluster_name = args[:cluster_name] if args.key?(:cluster_name)
1725
+ @cluster_uuid = args[:cluster_uuid] if args.key?(:cluster_uuid)
1726
+ end
1727
+ end
1728
+
1729
+ # Encapsulates the full scoping used to reference a job.
1730
+ class JobReference
1731
+ include Google::Apis::Core::Hashable
1732
+
1733
+ # Optional. The job ID, which must be unique within the project. The ID must
1734
+ # contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-)
1735
+ # . The maximum length is 100 characters.If not specified by the caller, the job
1736
+ # ID will be provided by the server.
1737
+ # Corresponds to the JSON property `jobId`
1738
+ # @return [String]
1739
+ attr_accessor :job_id
1740
+
1741
+ # Optional. The ID of the Google Cloud Platform project that the job belongs to.
1742
+ # If specified, must match the request project ID.
1743
+ # Corresponds to the JSON property `projectId`
1744
+ # @return [String]
1745
+ attr_accessor :project_id
1746
+
1747
+ def initialize(**args)
1748
+ update!(**args)
1749
+ end
1750
+
1751
+ # Update properties of this object
1752
+ def update!(**args)
1753
+ @job_id = args[:job_id] if args.key?(:job_id)
1754
+ @project_id = args[:project_id] if args.key?(:project_id)
1755
+ end
1756
+ end
1757
+
1758
+ # Job scheduling options.
1759
+ class JobScheduling
1760
+ include Google::Apis::Core::Hashable
1761
+
1762
+ # Optional. Maximum number of times per hour a driver may be restarted as a
1763
+ # result of driver terminating with non-zero code before job is reported failed.
1764
+ # A job may be reported as thrashing if driver exits with non-zero code 4 times
1765
+ # within 10 minute window.Maximum value is 10.
1766
+ # Corresponds to the JSON property `maxFailuresPerHour`
1767
+ # @return [Fixnum]
1768
+ attr_accessor :max_failures_per_hour
1769
+
1770
+ # Optional. Maximum number of times in total a driver may be restarted as a
1771
+ # result of driver exiting with non-zero code before job is reported failed.
1772
+ # Maximum value is 240.
1773
+ # Corresponds to the JSON property `maxFailuresTotal`
1774
+ # @return [Fixnum]
1775
+ attr_accessor :max_failures_total
1776
+
1777
+ def initialize(**args)
1778
+ update!(**args)
1779
+ end
1780
+
1781
+ # Update properties of this object
1782
+ def update!(**args)
1783
+ @max_failures_per_hour = args[:max_failures_per_hour] if args.key?(:max_failures_per_hour)
1784
+ @max_failures_total = args[:max_failures_total] if args.key?(:max_failures_total)
1785
+ end
1786
+ end
1787
+
1788
+ # Dataproc job status.
1789
+ class JobStatus
1790
+ include Google::Apis::Core::Hashable
1791
+
1792
+ # Output only. Optional Job state details, such as an error description if the
1793
+ # state is ERROR.
1794
+ # Corresponds to the JSON property `details`
1795
+ # @return [String]
1796
+ attr_accessor :details
1797
+
1798
+ # Output only. A state message specifying the overall job state.
1799
+ # Corresponds to the JSON property `state`
1800
+ # @return [String]
1801
+ attr_accessor :state
1802
+
1803
+ # Output only. The time when this state was entered.
1804
+ # Corresponds to the JSON property `stateStartTime`
1805
+ # @return [String]
1806
+ attr_accessor :state_start_time
1807
+
1808
+ # Output only. Additional state information, which includes status reported by
1809
+ # the agent.
1810
+ # Corresponds to the JSON property `substate`
1811
+ # @return [String]
1812
+ attr_accessor :substate
1813
+
1814
+ def initialize(**args)
1815
+ update!(**args)
1816
+ end
1817
+
1818
+ # Update properties of this object
1819
+ def update!(**args)
1820
+ @details = args[:details] if args.key?(:details)
1821
+ @state = args[:state] if args.key?(:state)
1822
+ @state_start_time = args[:state_start_time] if args.key?(:state_start_time)
1823
+ @substate = args[:substate] if args.key?(:substate)
1824
+ end
1825
+ end
1826
+
1827
+ # Specifies Kerberos related configuration.
1828
+ class KerberosConfig
1829
+ include Google::Apis::Core::Hashable
1830
+
1831
+ # Optional. The admin server (IP or hostname) for the remote trusted realm in a
1832
+ # cross realm trust relationship.
1833
+ # Corresponds to the JSON property `crossRealmTrustAdminServer`
1834
+ # @return [String]
1835
+ attr_accessor :cross_realm_trust_admin_server
1836
+
1837
+ # Optional. The KDC (IP or hostname) for the remote trusted realm in a cross
1838
+ # realm trust relationship.
1839
+ # Corresponds to the JSON property `crossRealmTrustKdc`
1840
+ # @return [String]
1841
+ attr_accessor :cross_realm_trust_kdc
1842
+
1843
+ # Optional. The remote realm the Dataproc on-cluster KDC will trust, should the
1844
+ # user enable cross realm trust.
1845
+ # Corresponds to the JSON property `crossRealmTrustRealm`
1846
+ # @return [String]
1847
+ attr_accessor :cross_realm_trust_realm
1848
+
1849
+ # Optional. The Cloud Storage URI of a KMS encrypted file containing the shared
1850
+ # password between the on-cluster Kerberos realm and the remote trusted realm,
1851
+ # in a cross realm trust relationship.
1852
+ # Corresponds to the JSON property `crossRealmTrustSharedPasswordUri`
1853
+ # @return [String]
1854
+ attr_accessor :cross_realm_trust_shared_password_uri
1855
+
1856
+ # Optional. Flag to indicate whether to Kerberize the cluster (default: false).
1857
+ # Set this field to true to enable Kerberos on a cluster.
1858
+ # Corresponds to the JSON property `enableKerberos`
1859
+ # @return [Boolean]
1860
+ attr_accessor :enable_kerberos
1861
+ alias_method :enable_kerberos?, :enable_kerberos
1862
+
1863
+ # Optional. The Cloud Storage URI of a KMS encrypted file containing the master
1864
+ # key of the KDC database.
1865
+ # Corresponds to the JSON property `kdcDbKeyUri`
1866
+ # @return [String]
1867
+ attr_accessor :kdc_db_key_uri
1868
+
1869
+ # Optional. The Cloud Storage URI of a KMS encrypted file containing the
1870
+ # password to the user provided key. For the self-signed certificate, this
1871
+ # password is generated by Dataproc.
1872
+ # Corresponds to the JSON property `keyPasswordUri`
1873
+ # @return [String]
1874
+ attr_accessor :key_password_uri
1875
+
1876
+ # Optional. The Cloud Storage URI of a KMS encrypted file containing the
1877
+ # password to the user provided keystore. For the self-signed certificate, this
1878
+ # password is generated by Dataproc.
1879
+ # Corresponds to the JSON property `keystorePasswordUri`
1880
+ # @return [String]
1881
+ attr_accessor :keystore_password_uri
1882
+
1883
+ # Optional. The Cloud Storage URI of the keystore file used for SSL encryption.
1884
+ # If not provided, Dataproc will provide a self-signed certificate.
1885
+ # Corresponds to the JSON property `keystoreUri`
1886
+ # @return [String]
1887
+ attr_accessor :keystore_uri
1888
+
1889
+ # Optional. The uri of the KMS key used to encrypt various sensitive files.
1890
+ # Corresponds to the JSON property `kmsKeyUri`
1891
+ # @return [String]
1892
+ attr_accessor :kms_key_uri
1893
+
1894
+ # Optional. The name of the on-cluster Kerberos realm. If not specified, the
1895
+ # uppercased domain of hostnames will be the realm.
1896
+ # Corresponds to the JSON property `realm`
1897
+ # @return [String]
1898
+ attr_accessor :realm
1899
+
1900
+ # Optional. The Cloud Storage URI of a KMS encrypted file containing the root
1901
+ # principal password.
1902
+ # Corresponds to the JSON property `rootPrincipalPasswordUri`
1903
+ # @return [String]
1904
+ attr_accessor :root_principal_password_uri
1905
+
1906
+ # Optional. The lifetime of the ticket granting ticket, in hours. If not
1907
+ # specified, or user specifies 0, then default value 10 will be used.
1908
+ # Corresponds to the JSON property `tgtLifetimeHours`
1909
+ # @return [Fixnum]
1910
+ attr_accessor :tgt_lifetime_hours
1911
+
1912
+ # Optional. The Cloud Storage URI of a KMS encrypted file containing the
1913
+ # password to the user provided truststore. For the self-signed certificate,
1914
+ # this password is generated by Dataproc.
1915
+ # Corresponds to the JSON property `truststorePasswordUri`
1916
+ # @return [String]
1917
+ attr_accessor :truststore_password_uri
1918
+
1919
+ # Optional. The Cloud Storage URI of the truststore file used for SSL encryption.
1920
+ # If not provided, Dataproc will provide a self-signed certificate.
1921
+ # Corresponds to the JSON property `truststoreUri`
1922
+ # @return [String]
1923
+ attr_accessor :truststore_uri
1924
+
1925
+ def initialize(**args)
1926
+ update!(**args)
1927
+ end
1928
+
1929
+ # Update properties of this object
1930
+ def update!(**args)
1931
+ @cross_realm_trust_admin_server = args[:cross_realm_trust_admin_server] if args.key?(:cross_realm_trust_admin_server)
1932
+ @cross_realm_trust_kdc = args[:cross_realm_trust_kdc] if args.key?(:cross_realm_trust_kdc)
1933
+ @cross_realm_trust_realm = args[:cross_realm_trust_realm] if args.key?(:cross_realm_trust_realm)
1934
+ @cross_realm_trust_shared_password_uri = args[:cross_realm_trust_shared_password_uri] if args.key?(:cross_realm_trust_shared_password_uri)
1935
+ @enable_kerberos = args[:enable_kerberos] if args.key?(:enable_kerberos)
1936
+ @kdc_db_key_uri = args[:kdc_db_key_uri] if args.key?(:kdc_db_key_uri)
1937
+ @key_password_uri = args[:key_password_uri] if args.key?(:key_password_uri)
1938
+ @keystore_password_uri = args[:keystore_password_uri] if args.key?(:keystore_password_uri)
1939
+ @keystore_uri = args[:keystore_uri] if args.key?(:keystore_uri)
1940
+ @kms_key_uri = args[:kms_key_uri] if args.key?(:kms_key_uri)
1941
+ @realm = args[:realm] if args.key?(:realm)
1942
+ @root_principal_password_uri = args[:root_principal_password_uri] if args.key?(:root_principal_password_uri)
1943
+ @tgt_lifetime_hours = args[:tgt_lifetime_hours] if args.key?(:tgt_lifetime_hours)
1944
+ @truststore_password_uri = args[:truststore_password_uri] if args.key?(:truststore_password_uri)
1945
+ @truststore_uri = args[:truststore_uri] if args.key?(:truststore_uri)
1946
+ end
1947
+ end
1948
+
1949
+ # Specifies the cluster auto-delete schedule configuration.
1950
+ class LifecycleConfig
1951
+ include Google::Apis::Core::Hashable
1952
+
1953
+ # Optional. The time when cluster will be auto-deleted. (see JSON representation
1954
+ # of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json))
1955
+ # .
1956
+ # Corresponds to the JSON property `autoDeleteTime`
1957
+ # @return [String]
1958
+ attr_accessor :auto_delete_time
1959
+
1960
+ # Optional. The lifetime duration of cluster. The cluster will be auto-deleted
1961
+ # at the end of this period. Minimum value is 10 minutes; maximum value is 14
1962
+ # days (see JSON representation of Duration (https://developers.google.com/
1963
+ # protocol-buffers/docs/proto3#json)).
1964
+ # Corresponds to the JSON property `autoDeleteTtl`
1965
+ # @return [String]
1966
+ attr_accessor :auto_delete_ttl
1967
+
1968
+ # Optional. The duration to keep the cluster alive while idling (when no jobs
1969
+ # are running). Passing this threshold will cause the cluster to be deleted.
1970
+ # Minimum value is 5 minutes; maximum value is 14 days (see JSON representation
1971
+ # of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json).
1972
+ # Corresponds to the JSON property `idleDeleteTtl`
1973
+ # @return [String]
1974
+ attr_accessor :idle_delete_ttl
1975
+
1976
+ # Output only. The time when cluster became idle (most recent job finished) and
1977
+ # became eligible for deletion due to idleness (see JSON representation of
1978
+ # Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)).
1979
+ # Corresponds to the JSON property `idleStartTime`
1980
+ # @return [String]
1981
+ attr_accessor :idle_start_time
1982
+
1983
+ def initialize(**args)
1984
+ update!(**args)
1985
+ end
1986
+
1987
+ # Update properties of this object
1988
+ def update!(**args)
1989
+ @auto_delete_time = args[:auto_delete_time] if args.key?(:auto_delete_time)
1990
+ @auto_delete_ttl = args[:auto_delete_ttl] if args.key?(:auto_delete_ttl)
1991
+ @idle_delete_ttl = args[:idle_delete_ttl] if args.key?(:idle_delete_ttl)
1992
+ @idle_start_time = args[:idle_start_time] if args.key?(:idle_start_time)
1993
+ end
1994
+ end
1995
+
1996
+ # A response to a request to list autoscaling policies in a project.
1997
+ class ListAutoscalingPoliciesResponse
1998
+ include Google::Apis::Core::Hashable
1999
+
2000
+ # Output only. This token is included in the response if there are more results
2001
+ # to fetch.
2002
+ # Corresponds to the JSON property `nextPageToken`
2003
+ # @return [String]
2004
+ attr_accessor :next_page_token
2005
+
2006
+ # Output only. Autoscaling policies list.
2007
+ # Corresponds to the JSON property `policies`
2008
+ # @return [Array<Google::Apis::DataprocV1beta2::AutoscalingPolicy>]
2009
+ attr_accessor :policies
2010
+
2011
+ def initialize(**args)
2012
+ update!(**args)
2013
+ end
2014
+
2015
+ # Update properties of this object
2016
+ def update!(**args)
2017
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2018
+ @policies = args[:policies] if args.key?(:policies)
2019
+ end
2020
+ end
2021
+
2022
+ # The list of all clusters in a project.
2023
+ class ListClustersResponse
2024
+ include Google::Apis::Core::Hashable
2025
+
2026
+ # Output only. The clusters in the project.
2027
+ # Corresponds to the JSON property `clusters`
2028
+ # @return [Array<Google::Apis::DataprocV1beta2::Cluster>]
2029
+ attr_accessor :clusters
2030
+
2031
+ # Output only. This token is included in the response if there are more results
2032
+ # to fetch. To fetch additional results, provide this value as the page_token in
2033
+ # a subsequent ListClustersRequest.
2034
+ # Corresponds to the JSON property `nextPageToken`
2035
+ # @return [String]
2036
+ attr_accessor :next_page_token
2037
+
2038
+ def initialize(**args)
2039
+ update!(**args)
2040
+ end
2041
+
2042
+ # Update properties of this object
2043
+ def update!(**args)
2044
+ @clusters = args[:clusters] if args.key?(:clusters)
2045
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2046
+ end
2047
+ end
2048
+
2049
+ # A list of jobs in a project.
2050
+ class ListJobsResponse
2051
+ include Google::Apis::Core::Hashable
2052
+
2053
+ # Output only. Jobs list.
2054
+ # Corresponds to the JSON property `jobs`
2055
+ # @return [Array<Google::Apis::DataprocV1beta2::Job>]
2056
+ attr_accessor :jobs
2057
+
2058
+ # Optional. This token is included in the response if there are more results to
2059
+ # fetch. To fetch additional results, provide this value as the page_token in a
2060
+ # subsequent ListJobsRequest.
2061
+ # Corresponds to the JSON property `nextPageToken`
2062
+ # @return [String]
2063
+ attr_accessor :next_page_token
2064
+
2065
+ def initialize(**args)
2066
+ update!(**args)
2067
+ end
2068
+
2069
+ # Update properties of this object
2070
+ def update!(**args)
2071
+ @jobs = args[:jobs] if args.key?(:jobs)
2072
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2073
+ end
2074
+ end
2075
+
2076
+ # The response message for Operations.ListOperations.
2077
+ class ListOperationsResponse
2078
+ include Google::Apis::Core::Hashable
2079
+
2080
+ # The standard List next-page token.
2081
+ # Corresponds to the JSON property `nextPageToken`
2082
+ # @return [String]
2083
+ attr_accessor :next_page_token
2084
+
2085
+ # A list of operations that matches the specified filter in the request.
2086
+ # Corresponds to the JSON property `operations`
2087
+ # @return [Array<Google::Apis::DataprocV1beta2::Operation>]
2088
+ attr_accessor :operations
2089
+
2090
+ def initialize(**args)
2091
+ update!(**args)
2092
+ end
2093
+
2094
+ # Update properties of this object
2095
+ def update!(**args)
2096
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2097
+ @operations = args[:operations] if args.key?(:operations)
2098
+ end
2099
+ end
2100
+
2101
+ # A response to a request to list workflow templates in a project.
2102
+ class ListWorkflowTemplatesResponse
2103
+ include Google::Apis::Core::Hashable
2104
+
2105
+ # Output only. This token is included in the response if there are more results
2106
+ # to fetch. To fetch additional results, provide this value as the page_token in
2107
+ # a subsequent ListWorkflowTemplatesRequest.
2108
+ # Corresponds to the JSON property `nextPageToken`
2109
+ # @return [String]
2110
+ attr_accessor :next_page_token
2111
+
2112
+ # Output only. WorkflowTemplates list.
2113
+ # Corresponds to the JSON property `templates`
2114
+ # @return [Array<Google::Apis::DataprocV1beta2::WorkflowTemplate>]
2115
+ attr_accessor :templates
2116
+
2117
+ def initialize(**args)
2118
+ update!(**args)
2119
+ end
2120
+
2121
+ # Update properties of this object
2122
+ def update!(**args)
2123
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2124
+ @templates = args[:templates] if args.key?(:templates)
2125
+ end
2126
+ end
2127
+
2128
+ # The runtime logging config of the job.
2129
+ class LoggingConfig
2130
+ include Google::Apis::Core::Hashable
2131
+
2132
+ # The per-package log levels for the driver. This may include "root" package
2133
+ # name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', '
2134
+ # org.apache = DEBUG'
2135
+ # Corresponds to the JSON property `driverLogLevels`
2136
+ # @return [Hash<String,String>]
2137
+ attr_accessor :driver_log_levels
2138
+
2139
+ def initialize(**args)
2140
+ update!(**args)
2141
+ end
2142
+
2143
+ # Update properties of this object
2144
+ def update!(**args)
2145
+ @driver_log_levels = args[:driver_log_levels] if args.key?(:driver_log_levels)
2146
+ end
2147
+ end
2148
+
2149
+ # Cluster that is managed by the workflow.
2150
+ class ManagedCluster
2151
+ include Google::Apis::Core::Hashable
2152
+
2153
+ # Required. The cluster name prefix. A unique cluster name will be formed by
2154
+ # appending a random suffix.The name must contain only lower-case letters (a-z),
2155
+ # numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end
2156
+ # with hyphen. Must consist of between 2 and 35 characters.
2157
+ # Corresponds to the JSON property `clusterName`
2158
+ # @return [String]
2159
+ attr_accessor :cluster_name
2160
+
2161
+ # The cluster config.
2162
+ # Corresponds to the JSON property `config`
2163
+ # @return [Google::Apis::DataprocV1beta2::ClusterConfig]
2164
+ attr_accessor :config
2165
+
2166
+ # Optional. The labels to associate with this cluster.Label keys must be between
2167
+ # 1 and 63 characters long, and must conform to the following PCRE regular
2168
+ # expression: \p`Ll`\p`Lo``0,62`Label values must be between 1 and 63 characters
2169
+ # long, and must conform to the following PCRE regular expression: \p`Ll`\p`Lo`\
2170
+ # p`N`_-`0,63`No more than 32 labels can be associated with a given cluster.
2171
+ # Corresponds to the JSON property `labels`
2172
+ # @return [Hash<String,String>]
2173
+ attr_accessor :labels
2174
+
2175
+ def initialize(**args)
2176
+ update!(**args)
2177
+ end
2178
+
2179
+ # Update properties of this object
2180
+ def update!(**args)
2181
+ @cluster_name = args[:cluster_name] if args.key?(:cluster_name)
2182
+ @config = args[:config] if args.key?(:config)
2183
+ @labels = args[:labels] if args.key?(:labels)
2184
+ end
2185
+ end
2186
+
2187
+ # Specifies the resources used to actively manage an instance group.
2188
+ class ManagedGroupConfig
2189
+ include Google::Apis::Core::Hashable
2190
+
2191
+ # Output only. The name of the Instance Group Manager for this group.
2192
+ # Corresponds to the JSON property `instanceGroupManagerName`
2193
+ # @return [String]
2194
+ attr_accessor :instance_group_manager_name
2195
+
2196
+ # Output only. The name of the Instance Template used for the Managed Instance
2197
+ # Group.
2198
+ # Corresponds to the JSON property `instanceTemplateName`
2199
+ # @return [String]
2200
+ attr_accessor :instance_template_name
2201
+
2202
+ def initialize(**args)
2203
+ update!(**args)
2204
+ end
2205
+
2206
+ # Update properties of this object
2207
+ def update!(**args)
2208
+ @instance_group_manager_name = args[:instance_group_manager_name] if args.key?(:instance_group_manager_name)
2209
+ @instance_template_name = args[:instance_template_name] if args.key?(:instance_template_name)
2210
+ end
2211
+ end
2212
+
2213
+ # Specifies a Metastore configuration.
2214
+ class MetastoreConfig
2215
+ include Google::Apis::Core::Hashable
2216
+
2217
+ # Required. Resource name of an existing Dataproc Metastore service.Example:
2218
+ # projects/[project_id]/locations/[dataproc_region]/services/[service-name]
2219
+ # Corresponds to the JSON property `dataprocMetastoreService`
2220
+ # @return [String]
2221
+ attr_accessor :dataproc_metastore_service
2222
+
2223
+ def initialize(**args)
2224
+ update!(**args)
2225
+ end
2226
+
2227
+ # Update properties of this object
2228
+ def update!(**args)
2229
+ @dataproc_metastore_service = args[:dataproc_metastore_service] if args.key?(:dataproc_metastore_service)
2230
+ end
2231
+ end
2232
+
2233
+ # A full, namespace-isolated deployment target for an existing GKE cluster.
2234
+ class NamespacedGkeDeploymentTarget
2235
+ include Google::Apis::Core::Hashable
2236
+
2237
+ # Optional. A namespace within the GKE cluster to deploy into.
2238
+ # Corresponds to the JSON property `clusterNamespace`
2239
+ # @return [String]
2240
+ attr_accessor :cluster_namespace
2241
+
2242
+ # Optional. The target GKE cluster to deploy to. Format: 'projects/`project`/
2243
+ # locations/`location`/clusters/`cluster_id`'
2244
+ # Corresponds to the JSON property `targetGkeCluster`
2245
+ # @return [String]
2246
+ attr_accessor :target_gke_cluster
2247
+
2248
+ def initialize(**args)
2249
+ update!(**args)
2250
+ end
2251
+
2252
+ # Update properties of this object
2253
+ def update!(**args)
2254
+ @cluster_namespace = args[:cluster_namespace] if args.key?(:cluster_namespace)
2255
+ @target_gke_cluster = args[:target_gke_cluster] if args.key?(:target_gke_cluster)
2256
+ end
2257
+ end
2258
+
2259
+ # Node Group Affinity for clusters using sole-tenant node groups.
2260
+ class NodeGroupAffinity
2261
+ include Google::Apis::Core::Hashable
2262
+
2263
+ # Required. The URI of a sole-tenant node group resource (https://cloud.google.
2264
+ # com/compute/docs/reference/rest/v1/nodeGroups) that the cluster will be
2265
+ # created on.A full URL, partial URI, or node group name are valid. Examples:
2266
+ # https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-central1-
2267
+ # a/nodeGroups/node-group-1 projects/[project_id]/zones/us-central1-a/nodeGroups/
2268
+ # node-group-1 node-group-1
2269
+ # Corresponds to the JSON property `nodeGroupUri`
2270
+ # @return [String]
2271
+ attr_accessor :node_group_uri
2272
+
2273
+ def initialize(**args)
2274
+ update!(**args)
2275
+ end
2276
+
2277
+ # Update properties of this object
2278
+ def update!(**args)
2279
+ @node_group_uri = args[:node_group_uri] if args.key?(:node_group_uri)
2280
+ end
2281
+ end
2282
+
2283
+ # Specifies an executable to run on a fully configured node and a timeout period
2284
+ # for executable completion.
2285
+ class NodeInitializationAction
2286
+ include Google::Apis::Core::Hashable
2287
+
2288
+ # Required. Cloud Storage URI of executable file.
2289
+ # Corresponds to the JSON property `executableFile`
2290
+ # @return [String]
2291
+ attr_accessor :executable_file
2292
+
2293
+ # Optional. Amount of time executable has to complete. Default is 10 minutes (
2294
+ # see JSON representation of Duration (https://developers.google.com/protocol-
2295
+ # buffers/docs/proto3#json)).Cluster creation fails with an explanatory error
2296
+ # message (the name of the executable that caused the error and the exceeded
2297
+ # timeout period) if the executable is not completed at end of the timeout
2298
+ # period.
2299
+ # Corresponds to the JSON property `executionTimeout`
2300
+ # @return [String]
2301
+ attr_accessor :execution_timeout
2302
+
2303
+ def initialize(**args)
2304
+ update!(**args)
2305
+ end
2306
+
2307
+ # Update properties of this object
2308
+ def update!(**args)
2309
+ @executable_file = args[:executable_file] if args.key?(:executable_file)
2310
+ @execution_timeout = args[:execution_timeout] if args.key?(:execution_timeout)
2311
+ end
2312
+ end
2313
+
2314
+ # This resource represents a long-running operation that is the result of a
2315
+ # network API call.
2316
+ class Operation
2317
+ include Google::Apis::Core::Hashable
2318
+
2319
+ # If the value is false, it means the operation is still in progress. If true,
2320
+ # the operation is completed, and either error or response is available.
2321
+ # Corresponds to the JSON property `done`
2322
+ # @return [Boolean]
2323
+ attr_accessor :done
2324
+ alias_method :done?, :done
2325
+
2326
+ # The Status type defines a logical error model that is suitable for different
2327
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
2328
+ # (https://github.com/grpc). Each Status message contains three pieces of data:
2329
+ # error code, error message, and error details.You can find out more about this
2330
+ # error model and how to work with it in the API Design Guide (https://cloud.
2331
+ # google.com/apis/design/errors).
2332
+ # Corresponds to the JSON property `error`
2333
+ # @return [Google::Apis::DataprocV1beta2::Status]
2334
+ attr_accessor :error
2335
+
2336
+ # Service-specific metadata associated with the operation. It typically contains
2337
+ # progress information and common metadata such as create time. Some services
2338
+ # might not provide such metadata. Any method that returns a long-running
2339
+ # operation should document the metadata type, if any.
2340
+ # Corresponds to the JSON property `metadata`
2341
+ # @return [Hash<String,Object>]
2342
+ attr_accessor :metadata
2343
+
2344
+ # The server-assigned name, which is only unique within the same service that
2345
+ # originally returns it. If you use the default HTTP mapping, the name should be
2346
+ # a resource name ending with operations/`unique_id`.
2347
+ # Corresponds to the JSON property `name`
2348
+ # @return [String]
2349
+ attr_accessor :name
2350
+
2351
+ # The normal response of the operation in case of success. If the original
2352
+ # method returns no data on success, such as Delete, the response is google.
2353
+ # protobuf.Empty. If the original method is standard Get/Create/Update, the
2354
+ # response should be the resource. For other methods, the response should have
2355
+ # the type XxxResponse, where Xxx is the original method name. For example, if
2356
+ # the original method name is TakeSnapshot(), the inferred response type is
2357
+ # TakeSnapshotResponse.
2358
+ # Corresponds to the JSON property `response`
2359
+ # @return [Hash<String,Object>]
2360
+ attr_accessor :response
2361
+
2362
+ def initialize(**args)
2363
+ update!(**args)
2364
+ end
2365
+
2366
+ # Update properties of this object
2367
+ def update!(**args)
2368
+ @done = args[:done] if args.key?(:done)
2369
+ @error = args[:error] if args.key?(:error)
2370
+ @metadata = args[:metadata] if args.key?(:metadata)
2371
+ @name = args[:name] if args.key?(:name)
2372
+ @response = args[:response] if args.key?(:response)
2373
+ end
2374
+ end
2375
+
2376
+ # A job executed by the workflow.
2377
+ class OrderedJob
2378
+ include Google::Apis::Core::Hashable
2379
+
2380
+ # A Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/
2381
+ # docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/
2382
+ # MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/
2383
+ # docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html).
2384
+ # Corresponds to the JSON property `hadoopJob`
2385
+ # @return [Google::Apis::DataprocV1beta2::HadoopJob]
2386
+ attr_accessor :hadoop_job
2387
+
2388
+ # A Dataproc job for running Apache Hive (https://hive.apache.org/) queries on
2389
+ # YARN.
2390
+ # Corresponds to the JSON property `hiveJob`
2391
+ # @return [Google::Apis::DataprocV1beta2::HiveJob]
2392
+ attr_accessor :hive_job
2393
+
2394
+ # Optional. The labels to associate with this job.Label keys must be between 1
2395
+ # and 63 characters long, and must conform to the following regular expression: \
2396
+ # p`Ll`\p`Lo``0,62`Label values must be between 1 and 63 characters long, and
2397
+ # must conform to the following regular expression: \p`Ll`\p`Lo`\p`N`_-`0,63`No
2398
+ # more than 32 labels can be associated with a given job.
2399
+ # Corresponds to the JSON property `labels`
2400
+ # @return [Hash<String,String>]
2401
+ attr_accessor :labels
2402
+
2403
+ # A Dataproc job for running Apache Pig (https://pig.apache.org/) queries on
2404
+ # YARN.
2405
+ # Corresponds to the JSON property `pigJob`
2406
+ # @return [Google::Apis::DataprocV1beta2::PigJob]
2407
+ attr_accessor :pig_job
2408
+
2409
+ # Optional. The optional list of prerequisite job step_ids. If not specified,
2410
+ # the job will start at the beginning of workflow.
2411
+ # Corresponds to the JSON property `prerequisiteStepIds`
2412
+ # @return [Array<String>]
2413
+ attr_accessor :prerequisite_step_ids
2414
+
2415
+ # A Dataproc job for running Presto (https://prestosql.io/) queries. IMPORTANT:
2416
+ # The Dataproc Presto Optional Component (https://cloud.google.com/dataproc/docs/
2417
+ # concepts/components/presto) must be enabled when the cluster is created to
2418
+ # submit a Presto job to the cluster.
2419
+ # Corresponds to the JSON property `prestoJob`
2420
+ # @return [Google::Apis::DataprocV1beta2::PrestoJob]
2421
+ attr_accessor :presto_job
2422
+
2423
+ # A Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/
2424
+ # python-programming-guide.html) applications on YARN.
2425
+ # Corresponds to the JSON property `pysparkJob`
2426
+ # @return [Google::Apis::DataprocV1beta2::PySparkJob]
2427
+ attr_accessor :pyspark_job
2428
+
2429
+ # Job scheduling options.
2430
+ # Corresponds to the JSON property `scheduling`
2431
+ # @return [Google::Apis::DataprocV1beta2::JobScheduling]
2432
+ attr_accessor :scheduling
2433
+
2434
+ # A Dataproc job for running Apache Spark (http://spark.apache.org/)
2435
+ # applications on YARN. The specification of the main method to call to drive
2436
+ # the job. Specify either the jar file that contains the main class or the main
2437
+ # class name. To pass both a main jar and a main class in that jar, add the jar
2438
+ # to CommonJob.jar_file_uris, and then specify the main class name in main_class.
2439
+ # Corresponds to the JSON property `sparkJob`
2440
+ # @return [Google::Apis::DataprocV1beta2::SparkJob]
2441
+ attr_accessor :spark_job
2442
+
2443
+ # A Dataproc job for running Apache SparkR (https://spark.apache.org/docs/latest/
2444
+ # sparkr.html) applications on YARN.
2445
+ # Corresponds to the JSON property `sparkRJob`
2446
+ # @return [Google::Apis::DataprocV1beta2::SparkRJob]
2447
+ attr_accessor :spark_r_job
2448
+
2449
+ # A Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/)
2450
+ # queries.
2451
+ # Corresponds to the JSON property `sparkSqlJob`
2452
+ # @return [Google::Apis::DataprocV1beta2::SparkSqlJob]
2453
+ attr_accessor :spark_sql_job
2454
+
2455
+ # Required. The step id. The id must be unique among all jobs within the
2456
+ # template.The step id is used as prefix for job id, as job goog-dataproc-
2457
+ # workflow-step-id label, and in prerequisiteStepIds field from other steps.The
2458
+ # id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and
2459
+ # hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of
2460
+ # between 3 and 50 characters.
2461
+ # Corresponds to the JSON property `stepId`
2462
+ # @return [String]
2463
+ attr_accessor :step_id
2464
+
2465
+ def initialize(**args)
2466
+ update!(**args)
2467
+ end
2468
+
2469
+ # Update properties of this object
2470
+ def update!(**args)
2471
+ @hadoop_job = args[:hadoop_job] if args.key?(:hadoop_job)
2472
+ @hive_job = args[:hive_job] if args.key?(:hive_job)
2473
+ @labels = args[:labels] if args.key?(:labels)
2474
+ @pig_job = args[:pig_job] if args.key?(:pig_job)
2475
+ @prerequisite_step_ids = args[:prerequisite_step_ids] if args.key?(:prerequisite_step_ids)
2476
+ @presto_job = args[:presto_job] if args.key?(:presto_job)
2477
+ @pyspark_job = args[:pyspark_job] if args.key?(:pyspark_job)
2478
+ @scheduling = args[:scheduling] if args.key?(:scheduling)
2479
+ @spark_job = args[:spark_job] if args.key?(:spark_job)
2480
+ @spark_r_job = args[:spark_r_job] if args.key?(:spark_r_job)
2481
+ @spark_sql_job = args[:spark_sql_job] if args.key?(:spark_sql_job)
2482
+ @step_id = args[:step_id] if args.key?(:step_id)
2483
+ end
2484
+ end
2485
+
2486
+ # Configuration for parameter validation.
2487
+ class ParameterValidation
2488
+ include Google::Apis::Core::Hashable
2489
+
2490
+ # Validation based on regular expressions.
2491
+ # Corresponds to the JSON property `regex`
2492
+ # @return [Google::Apis::DataprocV1beta2::RegexValidation]
2493
+ attr_accessor :regex
2494
+
2495
+ # Validation based on a list of allowed values.
2496
+ # Corresponds to the JSON property `values`
2497
+ # @return [Google::Apis::DataprocV1beta2::ValueValidation]
2498
+ attr_accessor :values
2499
+
2500
+ def initialize(**args)
2501
+ update!(**args)
2502
+ end
2503
+
2504
+ # Update properties of this object
2505
+ def update!(**args)
2506
+ @regex = args[:regex] if args.key?(:regex)
2507
+ @values = args[:values] if args.key?(:values)
2508
+ end
2509
+ end
2510
+
2511
+ # A Dataproc job for running Apache Pig (https://pig.apache.org/) queries on
2512
+ # YARN.
2513
+ class PigJob
2514
+ include Google::Apis::Core::Hashable
2515
+
2516
+ # Optional. Whether to continue executing queries if a query fails. The default
2517
+ # value is false. Setting to true can be useful when executing independent
2518
+ # parallel queries.
2519
+ # Corresponds to the JSON property `continueOnFailure`
2520
+ # @return [Boolean]
2521
+ attr_accessor :continue_on_failure
2522
+ alias_method :continue_on_failure?, :continue_on_failure
2523
+
2524
+ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and
2525
+ # Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
2526
+ # Corresponds to the JSON property `jarFileUris`
2527
+ # @return [Array<String>]
2528
+ attr_accessor :jar_file_uris
2529
+
2530
+ # The runtime logging config of the job.
2531
+ # Corresponds to the JSON property `loggingConfig`
2532
+ # @return [Google::Apis::DataprocV1beta2::LoggingConfig]
2533
+ attr_accessor :logging_config
2534
+
2535
+ # Optional. A mapping of property names to values, used to configure Pig.
2536
+ # Properties that conflict with values set by the Dataproc API may be
2537
+ # overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/
2538
+ # pig/conf/pig.properties, and classes in user code.
2539
+ # Corresponds to the JSON property `properties`
2540
+ # @return [Hash<String,String>]
2541
+ attr_accessor :properties
2542
+
2543
+ # The HCFS URI of the script that contains the Pig queries.
2544
+ # Corresponds to the JSON property `queryFileUri`
2545
+ # @return [String]
2546
+ attr_accessor :query_file_uri
2547
+
2548
+ # A list of queries to run on a cluster.
2549
+ # Corresponds to the JSON property `queryList`
2550
+ # @return [Google::Apis::DataprocV1beta2::QueryList]
2551
+ attr_accessor :query_list
2552
+
2553
+ # Optional. Mapping of query variable names to values (equivalent to the Pig
2554
+ # command: name=[value]).
2555
+ # Corresponds to the JSON property `scriptVariables`
2556
+ # @return [Hash<String,String>]
2557
+ attr_accessor :script_variables
2558
+
2559
+ def initialize(**args)
2560
+ update!(**args)
2561
+ end
2562
+
2563
+ # Update properties of this object
2564
+ def update!(**args)
2565
+ @continue_on_failure = args[:continue_on_failure] if args.key?(:continue_on_failure)
2566
+ @jar_file_uris = args[:jar_file_uris] if args.key?(:jar_file_uris)
2567
+ @logging_config = args[:logging_config] if args.key?(:logging_config)
2568
+ @properties = args[:properties] if args.key?(:properties)
2569
+ @query_file_uri = args[:query_file_uri] if args.key?(:query_file_uri)
2570
+ @query_list = args[:query_list] if args.key?(:query_list)
2571
+ @script_variables = args[:script_variables] if args.key?(:script_variables)
2572
+ end
2573
+ end
2574
+
2575
+ # An Identity and Access Management (IAM) policy, which specifies access
2576
+ # controls for Google Cloud resources.A Policy is a collection of bindings. A
2577
+ # binding binds one or more members to a single role. Members can be user
2578
+ # accounts, service accounts, Google groups, and domains (such as G Suite). A
2579
+ # role is a named list of permissions; each role can be an IAM predefined role
2580
+ # or a user-created custom role.For some types of Google Cloud resources, a
2581
+ # binding can also specify a condition, which is a logical expression that
2582
+ # allows access to a resource only if the expression evaluates to true. A
2583
+ # condition can add constraints based on attributes of the request, the resource,
2584
+ # or both. To learn which resources support conditions in their IAM policies,
2585
+ # see the IAM documentation (https://cloud.google.com/iam/help/conditions/
2586
+ # resource-policies).JSON example: ` "bindings": [ ` "role": "roles/
2587
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2588
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
2589
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
2590
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
2591
+ # title": "expirable access", "description": "Does not grant access after Sep
2592
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
2593
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` YAML example: bindings: - members:
2594
+ # - user:mike@example.com - group:admins@example.com - domain:google.com -
2595
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
2596
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
2597
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
2598
+ # description: Does not grant access after Sep 2020 expression: request.time <
2599
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
2600
+ # description of IAM and its features, see the IAM documentation (https://cloud.
2601
+ # google.com/iam/docs/).
2602
+ class Policy
2603
+ include Google::Apis::Core::Hashable
2604
+
2605
+ # Associates a list of members to a role. Optionally, may specify a condition
2606
+ # that determines how and when the bindings are applied. Each of the bindings
2607
+ # must contain at least one member.
2608
+ # Corresponds to the JSON property `bindings`
2609
+ # @return [Array<Google::Apis::DataprocV1beta2::Binding>]
2610
+ attr_accessor :bindings
2611
+
2612
+ # etag is used for optimistic concurrency control as a way to help prevent
2613
+ # simultaneous updates of a policy from overwriting each other. It is strongly
2614
+ # suggested that systems make use of the etag in the read-modify-write cycle to
2615
+ # perform policy updates in order to avoid race conditions: An etag is returned
2616
+ # in the response to getIamPolicy, and systems are expected to put that etag in
2617
+ # the request to setIamPolicy to ensure that their change will be applied to the
2618
+ # same version of the policy.Important: If you use IAM Conditions, you must
2619
+ # include the etag field whenever you call setIamPolicy. If you omit this field,
2620
+ # then IAM allows you to overwrite a version 3 policy with a version 1 policy,
2621
+ # and all of the conditions in the version 3 policy are lost.
2622
+ # Corresponds to the JSON property `etag`
2623
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2624
+ # @return [String]
2625
+ attr_accessor :etag
2626
+
2627
+ # Specifies the format of the policy.Valid values are 0, 1, and 3. Requests that
2628
+ # specify an invalid value are rejected.Any operation that affects conditional
2629
+ # role bindings must specify version 3. This requirement applies to the
2630
+ # following operations: Getting a policy that includes a conditional role
2631
+ # binding Adding a conditional role binding to a policy Changing a conditional
2632
+ # role binding in a policy Removing any role binding, with or without a
2633
+ # condition, from a policy that includes conditionsImportant: If you use IAM
2634
+ # Conditions, you must include the etag field whenever you call setIamPolicy. If
2635
+ # you omit this field, then IAM allows you to overwrite a version 3 policy with
2636
+ # a version 1 policy, and all of the conditions in the version 3 policy are lost.
2637
+ # If a policy does not include any conditions, operations on that policy may
2638
+ # specify any valid version or leave the field unset.To learn which resources
2639
+ # support conditions in their IAM policies, see the IAM documentation (https://
2640
+ # cloud.google.com/iam/help/conditions/resource-policies).
2641
+ # Corresponds to the JSON property `version`
2642
+ # @return [Fixnum]
2643
+ attr_accessor :version
2644
+
2645
+ def initialize(**args)
2646
+ update!(**args)
2647
+ end
2648
+
2649
+ # Update properties of this object
2650
+ def update!(**args)
2651
+ @bindings = args[:bindings] if args.key?(:bindings)
2652
+ @etag = args[:etag] if args.key?(:etag)
2653
+ @version = args[:version] if args.key?(:version)
2654
+ end
2655
+ end
2656
+
2657
+ # A Dataproc job for running Presto (https://prestosql.io/) queries. IMPORTANT:
2658
+ # The Dataproc Presto Optional Component (https://cloud.google.com/dataproc/docs/
2659
+ # concepts/components/presto) must be enabled when the cluster is created to
2660
+ # submit a Presto job to the cluster.
2661
+ class PrestoJob
2662
+ include Google::Apis::Core::Hashable
2663
+
2664
+ # Optional. Presto client tags to attach to this query
2665
+ # Corresponds to the JSON property `clientTags`
2666
+ # @return [Array<String>]
2667
+ attr_accessor :client_tags
2668
+
2669
+ # Optional. Whether to continue executing queries if a query fails. The default
2670
+ # value is false. Setting to true can be useful when executing independent
2671
+ # parallel queries.
2672
+ # Corresponds to the JSON property `continueOnFailure`
2673
+ # @return [Boolean]
2674
+ attr_accessor :continue_on_failure
2675
+ alias_method :continue_on_failure?, :continue_on_failure
2676
+
2677
+ # The runtime logging config of the job.
2678
+ # Corresponds to the JSON property `loggingConfig`
2679
+ # @return [Google::Apis::DataprocV1beta2::LoggingConfig]
2680
+ attr_accessor :logging_config
2681
+
2682
+ # Optional. The format in which query output will be displayed. See the Presto
2683
+ # documentation for supported output formats
2684
+ # Corresponds to the JSON property `outputFormat`
2685
+ # @return [String]
2686
+ attr_accessor :output_format
2687
+
2688
+ # Optional. A mapping of property names to values. Used to set Presto session
2689
+ # properties (https://prestodb.io/docs/current/sql/set-session.html) Equivalent
2690
+ # to using the --session flag in the Presto CLI
2691
+ # Corresponds to the JSON property `properties`
2692
+ # @return [Hash<String,String>]
2693
+ attr_accessor :properties
2694
+
2695
+ # The HCFS URI of the script that contains SQL queries.
2696
+ # Corresponds to the JSON property `queryFileUri`
2697
+ # @return [String]
2698
+ attr_accessor :query_file_uri
2699
+
2700
+ # A list of queries to run on a cluster.
2701
+ # Corresponds to the JSON property `queryList`
2702
+ # @return [Google::Apis::DataprocV1beta2::QueryList]
2703
+ attr_accessor :query_list
2704
+
2705
+ def initialize(**args)
2706
+ update!(**args)
2707
+ end
2708
+
2709
+ # Update properties of this object
2710
+ def update!(**args)
2711
+ @client_tags = args[:client_tags] if args.key?(:client_tags)
2712
+ @continue_on_failure = args[:continue_on_failure] if args.key?(:continue_on_failure)
2713
+ @logging_config = args[:logging_config] if args.key?(:logging_config)
2714
+ @output_format = args[:output_format] if args.key?(:output_format)
2715
+ @properties = args[:properties] if args.key?(:properties)
2716
+ @query_file_uri = args[:query_file_uri] if args.key?(:query_file_uri)
2717
+ @query_list = args[:query_list] if args.key?(:query_list)
2718
+ end
2719
+ end
2720
+
2721
+ # A Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/
2722
+ # python-programming-guide.html) applications on YARN.
2723
+ class PySparkJob
2724
+ include Google::Apis::Core::Hashable
2725
+
2726
+ # Optional. HCFS URIs of archives to be extracted into the working directory of
2727
+ # each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
2728
+ # Corresponds to the JSON property `archiveUris`
2729
+ # @return [Array<String>]
2730
+ attr_accessor :archive_uris
2731
+
2732
+ # Optional. The arguments to pass to the driver. Do not include arguments, such
2733
+ # as --conf, that can be set as job properties, since a collision may occur that
2734
+ # causes an incorrect job submission.
2735
+ # Corresponds to the JSON property `args`
2736
+ # @return [Array<String>]
2737
+ attr_accessor :args
2738
+
2739
+ # Optional. HCFS URIs of files to be placed in the working directory of each
2740
+ # executor. Useful for naively parallel tasks.
2741
+ # Corresponds to the JSON property `fileUris`
2742
+ # @return [Array<String>]
2743
+ attr_accessor :file_uris
2744
+
2745
+ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver
2746
+ # and tasks.
2747
+ # Corresponds to the JSON property `jarFileUris`
2748
+ # @return [Array<String>]
2749
+ attr_accessor :jar_file_uris
2750
+
2751
+ # The runtime logging config of the job.
2752
+ # Corresponds to the JSON property `loggingConfig`
2753
+ # @return [Google::Apis::DataprocV1beta2::LoggingConfig]
2754
+ attr_accessor :logging_config
2755
+
2756
+ # Required. The HCFS URI of the main Python file to use as the driver. Must be a
2757
+ # .py file.
2758
+ # Corresponds to the JSON property `mainPythonFileUri`
2759
+ # @return [String]
2760
+ attr_accessor :main_python_file_uri
2761
+
2762
+ # Optional. A mapping of property names to values, used to configure PySpark.
2763
+ # Properties that conflict with values set by the Dataproc API may be
2764
+ # overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf
2765
+ # and classes in user code.
2766
+ # Corresponds to the JSON property `properties`
2767
+ # @return [Hash<String,String>]
2768
+ attr_accessor :properties
2769
+
2770
+ # Optional. HCFS file URIs of Python files to pass to the PySpark framework.
2771
+ # Supported file types: .py, .egg, and .zip.
2772
+ # Corresponds to the JSON property `pythonFileUris`
2773
+ # @return [Array<String>]
2774
+ attr_accessor :python_file_uris
2775
+
2776
+ def initialize(**args)
2777
+ update!(**args)
2778
+ end
2779
+
2780
+ # Update properties of this object
2781
+ def update!(**args)
2782
+ @archive_uris = args[:archive_uris] if args.key?(:archive_uris)
2783
+ @args = args[:args] if args.key?(:args)
2784
+ @file_uris = args[:file_uris] if args.key?(:file_uris)
2785
+ @jar_file_uris = args[:jar_file_uris] if args.key?(:jar_file_uris)
2786
+ @logging_config = args[:logging_config] if args.key?(:logging_config)
2787
+ @main_python_file_uri = args[:main_python_file_uri] if args.key?(:main_python_file_uri)
2788
+ @properties = args[:properties] if args.key?(:properties)
2789
+ @python_file_uris = args[:python_file_uris] if args.key?(:python_file_uris)
2790
+ end
2791
+ end
2792
+
2793
+ # A list of queries to run on a cluster.
2794
+ class QueryList
2795
+ include Google::Apis::Core::Hashable
2796
+
2797
+ # Required. The queries to execute. You do not need to end a query expression
2798
+ # with a semicolon. Multiple queries can be specified in one string by
2799
+ # separating each with a semicolon. Here is an example of a Dataproc API snippet
2800
+ # that uses a QueryList to specify a HiveJob: "hiveJob": ` "queryList": ` "
2801
+ # queries": [ "query1", "query2", "query3;query4", ] ` `
2802
+ # Corresponds to the JSON property `queries`
2803
+ # @return [Array<String>]
2804
+ attr_accessor :queries
2805
+
2806
+ def initialize(**args)
2807
+ update!(**args)
2808
+ end
2809
+
2810
+ # Update properties of this object
2811
+ def update!(**args)
2812
+ @queries = args[:queries] if args.key?(:queries)
2813
+ end
2814
+ end
2815
+
2816
+ # Validation based on regular expressions.
2817
+ class RegexValidation
2818
+ include Google::Apis::Core::Hashable
2819
+
2820
+ # Required. RE2 regular expressions used to validate the parameter's value. The
2821
+ # value must match the regex in its entirety (substring matches are not
2822
+ # sufficient).
2823
+ # Corresponds to the JSON property `regexes`
2824
+ # @return [Array<String>]
2825
+ attr_accessor :regexes
2826
+
2827
+ def initialize(**args)
2828
+ update!(**args)
2829
+ end
2830
+
2831
+ # Update properties of this object
2832
+ def update!(**args)
2833
+ @regexes = args[:regexes] if args.key?(:regexes)
2834
+ end
2835
+ end
2836
+
2837
+ # Reservation Affinity for consuming Zonal reservation.
2838
+ class ReservationAffinity
2839
+ include Google::Apis::Core::Hashable
2840
+
2841
+ # Optional. Type of reservation to consume
2842
+ # Corresponds to the JSON property `consumeReservationType`
2843
+ # @return [String]
2844
+ attr_accessor :consume_reservation_type
2845
+
2846
+ # Optional. Corresponds to the label key of reservation resource.
2847
+ # Corresponds to the JSON property `key`
2848
+ # @return [String]
2849
+ attr_accessor :key
2850
+
2851
+ # Optional. Corresponds to the label values of reservation resource.
2852
+ # Corresponds to the JSON property `values`
2853
+ # @return [Array<String>]
2854
+ attr_accessor :values
2855
+
2856
+ def initialize(**args)
2857
+ update!(**args)
2858
+ end
2859
+
2860
+ # Update properties of this object
2861
+ def update!(**args)
2862
+ @consume_reservation_type = args[:consume_reservation_type] if args.key?(:consume_reservation_type)
2863
+ @key = args[:key] if args.key?(:key)
2864
+ @values = args[:values] if args.key?(:values)
2865
+ end
2866
+ end
2867
+
2868
+ # Security related configuration, including encryption, Kerberos, etc.
2869
+ class SecurityConfig
2870
+ include Google::Apis::Core::Hashable
2871
+
2872
+ # Specifies Kerberos related configuration.
2873
+ # Corresponds to the JSON property `kerberosConfig`
2874
+ # @return [Google::Apis::DataprocV1beta2::KerberosConfig]
2875
+ attr_accessor :kerberos_config
2876
+
2877
+ def initialize(**args)
2878
+ update!(**args)
2879
+ end
2880
+
2881
+ # Update properties of this object
2882
+ def update!(**args)
2883
+ @kerberos_config = args[:kerberos_config] if args.key?(:kerberos_config)
2884
+ end
2885
+ end
2886
+
2887
+ # Request message for SetIamPolicy method.
2888
+ class SetIamPolicyRequest
2889
+ include Google::Apis::Core::Hashable
2890
+
2891
+ # An Identity and Access Management (IAM) policy, which specifies access
2892
+ # controls for Google Cloud resources.A Policy is a collection of bindings. A
2893
+ # binding binds one or more members to a single role. Members can be user
2894
+ # accounts, service accounts, Google groups, and domains (such as G Suite). A
2895
+ # role is a named list of permissions; each role can be an IAM predefined role
2896
+ # or a user-created custom role.For some types of Google Cloud resources, a
2897
+ # binding can also specify a condition, which is a logical expression that
2898
+ # allows access to a resource only if the expression evaluates to true. A
2899
+ # condition can add constraints based on attributes of the request, the resource,
2900
+ # or both. To learn which resources support conditions in their IAM policies,
2901
+ # see the IAM documentation (https://cloud.google.com/iam/help/conditions/
2902
+ # resource-policies).JSON example: ` "bindings": [ ` "role": "roles/
2903
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2904
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
2905
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
2906
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
2907
+ # title": "expirable access", "description": "Does not grant access after Sep
2908
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
2909
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` YAML example: bindings: - members:
2910
+ # - user:mike@example.com - group:admins@example.com - domain:google.com -
2911
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
2912
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
2913
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
2914
+ # description: Does not grant access after Sep 2020 expression: request.time <
2915
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
2916
+ # description of IAM and its features, see the IAM documentation (https://cloud.
2917
+ # google.com/iam/docs/).
2918
+ # Corresponds to the JSON property `policy`
2919
+ # @return [Google::Apis::DataprocV1beta2::Policy]
2920
+ attr_accessor :policy
2921
+
2922
+ def initialize(**args)
2923
+ update!(**args)
2924
+ end
2925
+
2926
+ # Update properties of this object
2927
+ def update!(**args)
2928
+ @policy = args[:policy] if args.key?(:policy)
2929
+ end
2930
+ end
2931
+
2932
+ # Shielded Instance Config for clusters using shielded VMs.
2933
+ class ShieldedInstanceConfig
2934
+ include Google::Apis::Core::Hashable
2935
+
2936
+ # Optional. Defines whether instances have integrity monitoring enabled.
2937
+ # Corresponds to the JSON property `enableIntegrityMonitoring`
2938
+ # @return [Boolean]
2939
+ attr_accessor :enable_integrity_monitoring
2940
+ alias_method :enable_integrity_monitoring?, :enable_integrity_monitoring
2941
+
2942
+ # Optional. Defines whether instances have Secure Boot enabled.
2943
+ # Corresponds to the JSON property `enableSecureBoot`
2944
+ # @return [Boolean]
2945
+ attr_accessor :enable_secure_boot
2946
+ alias_method :enable_secure_boot?, :enable_secure_boot
2947
+
2948
+ # Optional. Defines whether instances have the vTPM enabled.
2949
+ # Corresponds to the JSON property `enableVtpm`
2950
+ # @return [Boolean]
2951
+ attr_accessor :enable_vtpm
2952
+ alias_method :enable_vtpm?, :enable_vtpm
2953
+
2954
+ def initialize(**args)
2955
+ update!(**args)
2956
+ end
2957
+
2958
+ # Update properties of this object
2959
+ def update!(**args)
2960
+ @enable_integrity_monitoring = args[:enable_integrity_monitoring] if args.key?(:enable_integrity_monitoring)
2961
+ @enable_secure_boot = args[:enable_secure_boot] if args.key?(:enable_secure_boot)
2962
+ @enable_vtpm = args[:enable_vtpm] if args.key?(:enable_vtpm)
2963
+ end
2964
+ end
2965
+
2966
+ # Specifies the selection and config of software inside the cluster.
2967
+ class SoftwareConfig
2968
+ include Google::Apis::Core::Hashable
2969
+
2970
+ # Optional. The version of software inside the cluster. It must be one of the
2971
+ # supported Dataproc Versions (https://cloud.google.com/dataproc/docs/concepts/
2972
+ # versioning/dataproc-versions#supported_dataproc_versions), such as "1.2" (
2973
+ # including a subminor version, such as "1.2.29"), or the "preview" version (
2974
+ # https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#
2975
+ # other_versions). If unspecified, it defaults to the latest Debian version.
2976
+ # Corresponds to the JSON property `imageVersion`
2977
+ # @return [String]
2978
+ attr_accessor :image_version
2979
+
2980
+ # The set of optional components to activate on the cluster.
2981
+ # Corresponds to the JSON property `optionalComponents`
2982
+ # @return [Array<String>]
2983
+ attr_accessor :optional_components
2984
+
2985
+ # Optional. The properties to set on daemon config files.Property keys are
2986
+ # specified in prefix:property format, for example core:hadoop.tmp.dir. The
2987
+ # following are supported prefixes and their mappings: capacity-scheduler:
2988
+ # capacity-scheduler.xml core: core-site.xml distcp: distcp-default.xml hdfs:
2989
+ # hdfs-site.xml hive: hive-site.xml mapred: mapred-site.xml pig: pig.properties
2990
+ # spark: spark-defaults.conf yarn: yarn-site.xmlFor more information, see
2991
+ # Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-
2992
+ # properties).
2993
+ # Corresponds to the JSON property `properties`
2994
+ # @return [Hash<String,String>]
2995
+ attr_accessor :properties
2996
+
2997
+ def initialize(**args)
2998
+ update!(**args)
2999
+ end
3000
+
3001
+ # Update properties of this object
3002
+ def update!(**args)
3003
+ @image_version = args[:image_version] if args.key?(:image_version)
3004
+ @optional_components = args[:optional_components] if args.key?(:optional_components)
3005
+ @properties = args[:properties] if args.key?(:properties)
3006
+ end
3007
+ end
3008
+
3009
+ # A Dataproc job for running Apache Spark (http://spark.apache.org/)
3010
+ # applications on YARN. The specification of the main method to call to drive
3011
+ # the job. Specify either the jar file that contains the main class or the main
3012
+ # class name. To pass both a main jar and a main class in that jar, add the jar
3013
+ # to CommonJob.jar_file_uris, and then specify the main class name in main_class.
3014
+ class SparkJob
3015
+ include Google::Apis::Core::Hashable
3016
+
3017
+ # Optional. HCFS URIs of archives to be extracted into the working directory of
3018
+ # each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
3019
+ # Corresponds to the JSON property `archiveUris`
3020
+ # @return [Array<String>]
3021
+ attr_accessor :archive_uris
3022
+
3023
+ # Optional. The arguments to pass to the driver. Do not include arguments, such
3024
+ # as --conf, that can be set as job properties, since a collision may occur that
3025
+ # causes an incorrect job submission.
3026
+ # Corresponds to the JSON property `args`
3027
+ # @return [Array<String>]
3028
+ attr_accessor :args
3029
+
3030
+ # Optional. HCFS URIs of files to be placed in the working directory of each
3031
+ # executor. Useful for naively parallel tasks.
3032
+ # Corresponds to the JSON property `fileUris`
3033
+ # @return [Array<String>]
3034
+ attr_accessor :file_uris
3035
+
3036
+ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver
3037
+ # and tasks.
3038
+ # Corresponds to the JSON property `jarFileUris`
3039
+ # @return [Array<String>]
3040
+ attr_accessor :jar_file_uris
3041
+
3042
+ # The runtime logging config of the job.
3043
+ # Corresponds to the JSON property `loggingConfig`
3044
+ # @return [Google::Apis::DataprocV1beta2::LoggingConfig]
3045
+ attr_accessor :logging_config
3046
+
3047
+ # The name of the driver's main class. The jar file that contains the class must
3048
+ # be in the default CLASSPATH or specified in jar_file_uris.
3049
+ # Corresponds to the JSON property `mainClass`
3050
+ # @return [String]
3051
+ attr_accessor :main_class
3052
+
3053
+ # The HCFS URI of the jar file that contains the main class.
3054
+ # Corresponds to the JSON property `mainJarFileUri`
3055
+ # @return [String]
3056
+ attr_accessor :main_jar_file_uri
3057
+
3058
+ # Optional. A mapping of property names to values, used to configure Spark.
3059
+ # Properties that conflict with values set by the Dataproc API may be
3060
+ # overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf
3061
+ # and classes in user code.
3062
+ # Corresponds to the JSON property `properties`
3063
+ # @return [Hash<String,String>]
3064
+ attr_accessor :properties
3065
+
3066
+ def initialize(**args)
3067
+ update!(**args)
3068
+ end
3069
+
3070
+ # Update properties of this object
3071
+ def update!(**args)
3072
+ @archive_uris = args[:archive_uris] if args.key?(:archive_uris)
3073
+ @args = args[:args] if args.key?(:args)
3074
+ @file_uris = args[:file_uris] if args.key?(:file_uris)
3075
+ @jar_file_uris = args[:jar_file_uris] if args.key?(:jar_file_uris)
3076
+ @logging_config = args[:logging_config] if args.key?(:logging_config)
3077
+ @main_class = args[:main_class] if args.key?(:main_class)
3078
+ @main_jar_file_uri = args[:main_jar_file_uri] if args.key?(:main_jar_file_uri)
3079
+ @properties = args[:properties] if args.key?(:properties)
3080
+ end
3081
+ end
3082
+
3083
+ # A Dataproc job for running Apache SparkR (https://spark.apache.org/docs/latest/
3084
+ # sparkr.html) applications on YARN.
3085
+ class SparkRJob
3086
+ include Google::Apis::Core::Hashable
3087
+
3088
+ # Optional. HCFS URIs of archives to be extracted into the working directory of
3089
+ # each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
3090
+ # Corresponds to the JSON property `archiveUris`
3091
+ # @return [Array<String>]
3092
+ attr_accessor :archive_uris
3093
+
3094
+ # Optional. The arguments to pass to the driver. Do not include arguments, such
3095
+ # as --conf, that can be set as job properties, since a collision may occur that
3096
+ # causes an incorrect job submission.
3097
+ # Corresponds to the JSON property `args`
3098
+ # @return [Array<String>]
3099
+ attr_accessor :args
3100
+
3101
+ # Optional. HCFS URIs of files to be placed in the working directory of each
3102
+ # executor. Useful for naively parallel tasks.
3103
+ # Corresponds to the JSON property `fileUris`
3104
+ # @return [Array<String>]
3105
+ attr_accessor :file_uris
3106
+
3107
+ # The runtime logging config of the job.
3108
+ # Corresponds to the JSON property `loggingConfig`
3109
+ # @return [Google::Apis::DataprocV1beta2::LoggingConfig]
3110
+ attr_accessor :logging_config
3111
+
3112
+ # Required. The HCFS URI of the main R file to use as the driver. Must be a .R
3113
+ # file.
3114
+ # Corresponds to the JSON property `mainRFileUri`
3115
+ # @return [String]
3116
+ attr_accessor :main_r_file_uri
3117
+
3118
+ # Optional. A mapping of property names to values, used to configure SparkR.
3119
+ # Properties that conflict with values set by the Dataproc API may be
3120
+ # overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf
3121
+ # and classes in user code.
3122
+ # Corresponds to the JSON property `properties`
3123
+ # @return [Hash<String,String>]
3124
+ attr_accessor :properties
3125
+
3126
+ def initialize(**args)
3127
+ update!(**args)
3128
+ end
3129
+
3130
+ # Update properties of this object
3131
+ def update!(**args)
3132
+ @archive_uris = args[:archive_uris] if args.key?(:archive_uris)
3133
+ @args = args[:args] if args.key?(:args)
3134
+ @file_uris = args[:file_uris] if args.key?(:file_uris)
3135
+ @logging_config = args[:logging_config] if args.key?(:logging_config)
3136
+ @main_r_file_uri = args[:main_r_file_uri] if args.key?(:main_r_file_uri)
3137
+ @properties = args[:properties] if args.key?(:properties)
3138
+ end
3139
+ end
3140
+
3141
+ # A Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/)
3142
+ # queries.
3143
+ class SparkSqlJob
3144
+ include Google::Apis::Core::Hashable
3145
+
3146
+ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
3147
+ # Corresponds to the JSON property `jarFileUris`
3148
+ # @return [Array<String>]
3149
+ attr_accessor :jar_file_uris
3150
+
3151
+ # The runtime logging config of the job.
3152
+ # Corresponds to the JSON property `loggingConfig`
3153
+ # @return [Google::Apis::DataprocV1beta2::LoggingConfig]
3154
+ attr_accessor :logging_config
3155
+
3156
+ # Optional. A mapping of property names to values, used to configure Spark SQL's
3157
+ # SparkConf. Properties that conflict with values set by the Dataproc API may be
3158
+ # overwritten.
3159
+ # Corresponds to the JSON property `properties`
3160
+ # @return [Hash<String,String>]
3161
+ attr_accessor :properties
3162
+
3163
+ # The HCFS URI of the script that contains SQL queries.
3164
+ # Corresponds to the JSON property `queryFileUri`
3165
+ # @return [String]
3166
+ attr_accessor :query_file_uri
3167
+
3168
+ # A list of queries to run on a cluster.
3169
+ # Corresponds to the JSON property `queryList`
3170
+ # @return [Google::Apis::DataprocV1beta2::QueryList]
3171
+ attr_accessor :query_list
3172
+
3173
+ # Optional. Mapping of query variable names to values (equivalent to the Spark
3174
+ # SQL command: SET name="value";).
3175
+ # Corresponds to the JSON property `scriptVariables`
3176
+ # @return [Hash<String,String>]
3177
+ attr_accessor :script_variables
3178
+
3179
+ def initialize(**args)
3180
+ update!(**args)
3181
+ end
3182
+
3183
+ # Update properties of this object
3184
+ def update!(**args)
3185
+ @jar_file_uris = args[:jar_file_uris] if args.key?(:jar_file_uris)
3186
+ @logging_config = args[:logging_config] if args.key?(:logging_config)
3187
+ @properties = args[:properties] if args.key?(:properties)
3188
+ @query_file_uri = args[:query_file_uri] if args.key?(:query_file_uri)
3189
+ @query_list = args[:query_list] if args.key?(:query_list)
3190
+ @script_variables = args[:script_variables] if args.key?(:script_variables)
3191
+ end
3192
+ end
3193
+
3194
+ # A request to start a cluster.
3195
+ class StartClusterRequest
3196
+ include Google::Apis::Core::Hashable
3197
+
3198
+ # Optional. Specifying the cluster_uuid means the RPC should fail (with error
3199
+ # NOT_FOUND) if cluster with specified UUID does not exist.
3200
+ # Corresponds to the JSON property `clusterUuid`
3201
+ # @return [String]
3202
+ attr_accessor :cluster_uuid
3203
+
3204
+ # Optional. A unique id used to identify the request. If the server receives two
3205
+ # StartClusterRequest requests with the same id, then the second request will be
3206
+ # ignored and the first google.longrunning.Operation created and stored in the
3207
+ # backend is returned.It is recommended to always set this value to a UUID (
3208
+ # https://en.wikipedia.org/wiki/Universally_unique_identifier).The id must
3209
+ # contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-
3210
+ # ). The maximum length is 40 characters.
3211
+ # Corresponds to the JSON property `requestId`
3212
+ # @return [String]
3213
+ attr_accessor :request_id
3214
+
3215
+ def initialize(**args)
3216
+ update!(**args)
3217
+ end
3218
+
3219
+ # Update properties of this object
3220
+ def update!(**args)
3221
+ @cluster_uuid = args[:cluster_uuid] if args.key?(:cluster_uuid)
3222
+ @request_id = args[:request_id] if args.key?(:request_id)
3223
+ end
3224
+ end
3225
+
3226
+ # The Status type defines a logical error model that is suitable for different
3227
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
3228
+ # (https://github.com/grpc). Each Status message contains three pieces of data:
3229
+ # error code, error message, and error details.You can find out more about this
3230
+ # error model and how to work with it in the API Design Guide (https://cloud.
3231
+ # google.com/apis/design/errors).
3232
+ class Status
3233
+ include Google::Apis::Core::Hashable
3234
+
3235
+ # The status code, which should be an enum value of google.rpc.Code.
3236
+ # Corresponds to the JSON property `code`
3237
+ # @return [Fixnum]
3238
+ attr_accessor :code
3239
+
3240
+ # A list of messages that carry the error details. There is a common set of
3241
+ # message types for APIs to use.
3242
+ # Corresponds to the JSON property `details`
3243
+ # @return [Array<Hash<String,Object>>]
3244
+ attr_accessor :details
3245
+
3246
+ # A developer-facing error message, which should be in English. Any user-facing
3247
+ # error message should be localized and sent in the google.rpc.Status.details
3248
+ # field, or localized by the client.
3249
+ # Corresponds to the JSON property `message`
3250
+ # @return [String]
3251
+ attr_accessor :message
3252
+
3253
+ def initialize(**args)
3254
+ update!(**args)
3255
+ end
3256
+
3257
+ # Update properties of this object
3258
+ def update!(**args)
3259
+ @code = args[:code] if args.key?(:code)
3260
+ @details = args[:details] if args.key?(:details)
3261
+ @message = args[:message] if args.key?(:message)
3262
+ end
3263
+ end
3264
+
3265
+ # A request to stop a cluster.
3266
+ class StopClusterRequest
3267
+ include Google::Apis::Core::Hashable
3268
+
3269
+ # Optional. Specifying the cluster_uuid means the RPC should fail (with error
3270
+ # NOT_FOUND) if cluster with specified UUID does not exist.
3271
+ # Corresponds to the JSON property `clusterUuid`
3272
+ # @return [String]
3273
+ attr_accessor :cluster_uuid
3274
+
3275
+ # Optional. A unique id used to identify the request. If the server receives two
3276
+ # StopClusterRequest requests with the same id, then the second request will be
3277
+ # ignored and the first google.longrunning.Operation created and stored in the
3278
+ # backend is returned.It is recommended to always set this value to a UUID (
3279
+ # https://en.wikipedia.org/wiki/Universally_unique_identifier).The id must
3280
+ # contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-
3281
+ # ). The maximum length is 40 characters.
3282
+ # Corresponds to the JSON property `requestId`
3283
+ # @return [String]
3284
+ attr_accessor :request_id
3285
+
3286
+ def initialize(**args)
3287
+ update!(**args)
3288
+ end
3289
+
3290
+ # Update properties of this object
3291
+ def update!(**args)
3292
+ @cluster_uuid = args[:cluster_uuid] if args.key?(:cluster_uuid)
3293
+ @request_id = args[:request_id] if args.key?(:request_id)
3294
+ end
3295
+ end
3296
+
3297
+ # A request to submit a job.
3298
+ class SubmitJobRequest
3299
+ include Google::Apis::Core::Hashable
3300
+
3301
+ # A Dataproc job resource.
3302
+ # Corresponds to the JSON property `job`
3303
+ # @return [Google::Apis::DataprocV1beta2::Job]
3304
+ attr_accessor :job
3305
+
3306
+ # Optional. A unique id used to identify the request. If the server receives two
3307
+ # SubmitJobRequest requests with the same id, then the second request will be
3308
+ # ignored and the first Job created and stored in the backend is returned.It is
3309
+ # recommended to always set this value to a UUID (https://en.wikipedia.org/wiki/
3310
+ # Universally_unique_identifier).The id must contain only letters (a-z, A-Z),
3311
+ # numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40
3312
+ # characters.
3313
+ # Corresponds to the JSON property `requestId`
3314
+ # @return [String]
3315
+ attr_accessor :request_id
3316
+
3317
+ def initialize(**args)
3318
+ update!(**args)
3319
+ end
3320
+
3321
+ # Update properties of this object
3322
+ def update!(**args)
3323
+ @job = args[:job] if args.key?(:job)
3324
+ @request_id = args[:request_id] if args.key?(:request_id)
3325
+ end
3326
+ end
3327
+
3328
+ # A configurable parameter that replaces one or more fields in the template.
3329
+ # Parameterizable fields: - Labels - File uris - Job properties - Job arguments -
3330
+ # Script variables - Main class (in HadoopJob and SparkJob) - Zone (in
3331
+ # ClusterSelector)
3332
+ class TemplateParameter
3333
+ include Google::Apis::Core::Hashable
3334
+
3335
+ # Optional. Brief description of the parameter. Must not exceed 1024 characters.
3336
+ # Corresponds to the JSON property `description`
3337
+ # @return [String]
3338
+ attr_accessor :description
3339
+
3340
+ # Required. Paths to all fields that the parameter replaces. A field is allowed
3341
+ # to appear in at most one parameter's list of field paths.A field path is
3342
+ # similar in syntax to a google.protobuf.FieldMask. For example, a field path
3343
+ # that references the zone field of a workflow template's cluster selector would
3344
+ # be specified as placement.clusterSelector.zone.Also, field paths can reference
3345
+ # fields using the following syntax: Values in maps can be referenced by key:
3346
+ # labels'key' placement.clusterSelector.clusterLabels'key' placement.
3347
+ # managedCluster.labels'key' placement.clusterSelector.clusterLabels'key' jobs'
3348
+ # step-id'.labels'key' Jobs in the jobs list can be referenced by step-id: jobs'
3349
+ # step-id'.hadoopJob.mainJarFileUri jobs'step-id'.hiveJob.queryFileUri jobs'step-
3350
+ # id'.pySparkJob.mainPythonFileUri jobs'step-id'.hadoopJob.jarFileUris0 jobs'
3351
+ # step-id'.hadoopJob.archiveUris0 jobs'step-id'.hadoopJob.fileUris0 jobs'step-id'
3352
+ # .pySparkJob.pythonFileUris0 Items in repeated fields can be referenced by a
3353
+ # zero-based index: jobs'step-id'.sparkJob.args0 Other examples: jobs'step-id'.
3354
+ # hadoopJob.properties'key' jobs'step-id'.hadoopJob.args0 jobs'step-id'.hiveJob.
3355
+ # scriptVariables'key' jobs'step-id'.hadoopJob.mainJarFileUri placement.
3356
+ # clusterSelector.zoneIt may not be possible to parameterize maps and repeated
3357
+ # fields in their entirety since only individual map values and individual items
3358
+ # in repeated fields can be referenced. For example, the following field paths
3359
+ # are invalid: placement.clusterSelector.clusterLabels jobs'step-id'.sparkJob.
3360
+ # args
3361
+ # Corresponds to the JSON property `fields`
3362
+ # @return [Array<String>]
3363
+ attr_accessor :fields
3364
+
3365
+ # Required. Parameter name. The parameter name is used as the key, and paired
3366
+ # with the parameter value, which are passed to the template when the template
3367
+ # is instantiated. The name must contain only capital letters (A-Z), numbers (0-
3368
+ # 9), and underscores (_), and must not start with a number. The maximum length
3369
+ # is 40 characters.
3370
+ # Corresponds to the JSON property `name`
3371
+ # @return [String]
3372
+ attr_accessor :name
3373
+
3374
+ # Configuration for parameter validation.
3375
+ # Corresponds to the JSON property `validation`
3376
+ # @return [Google::Apis::DataprocV1beta2::ParameterValidation]
3377
+ attr_accessor :validation
3378
+
3379
+ def initialize(**args)
3380
+ update!(**args)
3381
+ end
3382
+
3383
+ # Update properties of this object
3384
+ def update!(**args)
3385
+ @description = args[:description] if args.key?(:description)
3386
+ @fields = args[:fields] if args.key?(:fields)
3387
+ @name = args[:name] if args.key?(:name)
3388
+ @validation = args[:validation] if args.key?(:validation)
3389
+ end
3390
+ end
3391
+
3392
+ # Request message for TestIamPermissions method.
3393
+ class TestIamPermissionsRequest
3394
+ include Google::Apis::Core::Hashable
3395
+
3396
+ # The set of permissions to check for the resource. Permissions with wildcards (
3397
+ # such as '*' or 'storage.*') are not allowed. For more information see IAM
3398
+ # Overview (https://cloud.google.com/iam/docs/overview#permissions).
3399
+ # Corresponds to the JSON property `permissions`
3400
+ # @return [Array<String>]
3401
+ attr_accessor :permissions
3402
+
3403
+ def initialize(**args)
3404
+ update!(**args)
3405
+ end
3406
+
3407
+ # Update properties of this object
3408
+ def update!(**args)
3409
+ @permissions = args[:permissions] if args.key?(:permissions)
3410
+ end
3411
+ end
3412
+
3413
+ # Response message for TestIamPermissions method.
3414
+ class TestIamPermissionsResponse
3415
+ include Google::Apis::Core::Hashable
3416
+
3417
+ # A subset of TestPermissionsRequest.permissions that the caller is allowed.
3418
+ # Corresponds to the JSON property `permissions`
3419
+ # @return [Array<String>]
3420
+ attr_accessor :permissions
3421
+
3422
+ def initialize(**args)
3423
+ update!(**args)
3424
+ end
3425
+
3426
+ # Update properties of this object
3427
+ def update!(**args)
3428
+ @permissions = args[:permissions] if args.key?(:permissions)
3429
+ end
3430
+ end
3431
+
3432
+ # Validation based on a list of allowed values.
3433
+ class ValueValidation
3434
+ include Google::Apis::Core::Hashable
3435
+
3436
+ # Required. List of allowed values for the parameter.
3437
+ # Corresponds to the JSON property `values`
3438
+ # @return [Array<String>]
3439
+ attr_accessor :values
3440
+
3441
+ def initialize(**args)
3442
+ update!(**args)
3443
+ end
3444
+
3445
+ # Update properties of this object
3446
+ def update!(**args)
3447
+ @values = args[:values] if args.key?(:values)
3448
+ end
3449
+ end
3450
+
3451
+ # The workflow graph.
3452
+ class WorkflowGraph
3453
+ include Google::Apis::Core::Hashable
3454
+
3455
+ # Output only. The workflow nodes.
3456
+ # Corresponds to the JSON property `nodes`
3457
+ # @return [Array<Google::Apis::DataprocV1beta2::WorkflowNode>]
3458
+ attr_accessor :nodes
3459
+
3460
+ def initialize(**args)
3461
+ update!(**args)
3462
+ end
3463
+
3464
+ # Update properties of this object
3465
+ def update!(**args)
3466
+ @nodes = args[:nodes] if args.key?(:nodes)
3467
+ end
3468
+ end
3469
+
3470
+ # A Dataproc workflow template resource.
3471
+ class WorkflowMetadata
3472
+ include Google::Apis::Core::Hashable
3473
+
3474
+ # Output only. The name of the target cluster.
3475
+ # Corresponds to the JSON property `clusterName`
3476
+ # @return [String]
3477
+ attr_accessor :cluster_name
3478
+
3479
+ # Output only. The UUID of target cluster.
3480
+ # Corresponds to the JSON property `clusterUuid`
3481
+ # @return [String]
3482
+ attr_accessor :cluster_uuid
3483
+
3484
+ # The cluster operation triggered by a workflow.
3485
+ # Corresponds to the JSON property `createCluster`
3486
+ # @return [Google::Apis::DataprocV1beta2::ClusterOperation]
3487
+ attr_accessor :create_cluster
3488
+
3489
+ # Output only. DAG end time, which is only set for workflows with dag_timeout
3490
+ # when the DAG ends.
3491
+ # Corresponds to the JSON property `dagEndTime`
3492
+ # @return [String]
3493
+ attr_accessor :dag_end_time
3494
+
3495
+ # Output only. DAG start time, which is only set for workflows with dag_timeout
3496
+ # when the DAG begins.
3497
+ # Corresponds to the JSON property `dagStartTime`
3498
+ # @return [String]
3499
+ attr_accessor :dag_start_time
3500
+
3501
+ # Output only. The timeout duration for the DAG of jobs, expressed in seconds (
3502
+ # see JSON representation of duration (https://developers.google.com/protocol-
3503
+ # buffers/docs/proto3#json)).
3504
+ # Corresponds to the JSON property `dagTimeout`
3505
+ # @return [String]
3506
+ attr_accessor :dag_timeout
3507
+
3508
+ # The cluster operation triggered by a workflow.
3509
+ # Corresponds to the JSON property `deleteCluster`
3510
+ # @return [Google::Apis::DataprocV1beta2::ClusterOperation]
3511
+ attr_accessor :delete_cluster
3512
+
3513
+ # Output only. Workflow end time.
3514
+ # Corresponds to the JSON property `endTime`
3515
+ # @return [String]
3516
+ attr_accessor :end_time
3517
+
3518
+ # The workflow graph.
3519
+ # Corresponds to the JSON property `graph`
3520
+ # @return [Google::Apis::DataprocV1beta2::WorkflowGraph]
3521
+ attr_accessor :graph
3522
+
3523
+ # Map from parameter names to values that were used for those parameters.
3524
+ # Corresponds to the JSON property `parameters`
3525
+ # @return [Hash<String,String>]
3526
+ attr_accessor :parameters
3527
+
3528
+ # Output only. Workflow start time.
3529
+ # Corresponds to the JSON property `startTime`
3530
+ # @return [String]
3531
+ attr_accessor :start_time
3532
+
3533
+ # Output only. The workflow state.
3534
+ # Corresponds to the JSON property `state`
3535
+ # @return [String]
3536
+ attr_accessor :state
3537
+
3538
+ # Output only. The resource name of the workflow template as described in https:/
3539
+ # /cloud.google.com/apis/design/resource_names. For projects.regions.
3540
+ # workflowTemplates, the resource name of the template has the following format:
3541
+ # projects/`project_id`/regions/`region`/workflowTemplates/`template_id` For
3542
+ # projects.locations.workflowTemplates, the resource name of the template has
3543
+ # the following format: projects/`project_id`/locations/`location`/
3544
+ # workflowTemplates/`template_id`
3545
+ # Corresponds to the JSON property `template`
3546
+ # @return [String]
3547
+ attr_accessor :template
3548
+
3549
+ # Output only. The version of template at the time of workflow instantiation.
3550
+ # Corresponds to the JSON property `version`
3551
+ # @return [Fixnum]
3552
+ attr_accessor :version
3553
+
3554
+ def initialize(**args)
3555
+ update!(**args)
3556
+ end
3557
+
3558
+ # Update properties of this object
3559
+ def update!(**args)
3560
+ @cluster_name = args[:cluster_name] if args.key?(:cluster_name)
3561
+ @cluster_uuid = args[:cluster_uuid] if args.key?(:cluster_uuid)
3562
+ @create_cluster = args[:create_cluster] if args.key?(:create_cluster)
3563
+ @dag_end_time = args[:dag_end_time] if args.key?(:dag_end_time)
3564
+ @dag_start_time = args[:dag_start_time] if args.key?(:dag_start_time)
3565
+ @dag_timeout = args[:dag_timeout] if args.key?(:dag_timeout)
3566
+ @delete_cluster = args[:delete_cluster] if args.key?(:delete_cluster)
3567
+ @end_time = args[:end_time] if args.key?(:end_time)
3568
+ @graph = args[:graph] if args.key?(:graph)
3569
+ @parameters = args[:parameters] if args.key?(:parameters)
3570
+ @start_time = args[:start_time] if args.key?(:start_time)
3571
+ @state = args[:state] if args.key?(:state)
3572
+ @template = args[:template] if args.key?(:template)
3573
+ @version = args[:version] if args.key?(:version)
3574
+ end
3575
+ end
3576
+
3577
+ # The workflow node.
3578
+ class WorkflowNode
3579
+ include Google::Apis::Core::Hashable
3580
+
3581
+ # Output only. The error detail.
3582
+ # Corresponds to the JSON property `error`
3583
+ # @return [String]
3584
+ attr_accessor :error
3585
+
3586
+ # Output only. The job id; populated after the node enters RUNNING state.
3587
+ # Corresponds to the JSON property `jobId`
3588
+ # @return [String]
3589
+ attr_accessor :job_id
3590
+
3591
+ # Output only. Node's prerequisite nodes.
3592
+ # Corresponds to the JSON property `prerequisiteStepIds`
3593
+ # @return [Array<String>]
3594
+ attr_accessor :prerequisite_step_ids
3595
+
3596
+ # Output only. The node state.
3597
+ # Corresponds to the JSON property `state`
3598
+ # @return [String]
3599
+ attr_accessor :state
3600
+
3601
+ # Output only. The name of the node.
3602
+ # Corresponds to the JSON property `stepId`
3603
+ # @return [String]
3604
+ attr_accessor :step_id
3605
+
3606
+ def initialize(**args)
3607
+ update!(**args)
3608
+ end
3609
+
3610
+ # Update properties of this object
3611
+ def update!(**args)
3612
+ @error = args[:error] if args.key?(:error)
3613
+ @job_id = args[:job_id] if args.key?(:job_id)
3614
+ @prerequisite_step_ids = args[:prerequisite_step_ids] if args.key?(:prerequisite_step_ids)
3615
+ @state = args[:state] if args.key?(:state)
3616
+ @step_id = args[:step_id] if args.key?(:step_id)
3617
+ end
3618
+ end
3619
+
3620
+ # A Dataproc workflow template resource.
3621
+ class WorkflowTemplate
3622
+ include Google::Apis::Core::Hashable
3623
+
3624
+ # Output only. The time template was created.
3625
+ # Corresponds to the JSON property `createTime`
3626
+ # @return [String]
3627
+ attr_accessor :create_time
3628
+
3629
+ # Optional. Timeout duration for the DAG of jobs, expressed in seconds (see JSON
3630
+ # representation of duration (https://developers.google.com/protocol-buffers/
3631
+ # docs/proto3#json)). The timeout duration must be from 10 minutes ("600s") to
3632
+ # 24 hours ("86400s"). The timer begins when the first job is submitted. If the
3633
+ # workflow is running at the end of the timeout period, any remaining jobs are
3634
+ # cancelled, the workflow is ended, and if the workflow was running on a managed
3635
+ # cluster, the cluster is deleted.
3636
+ # Corresponds to the JSON property `dagTimeout`
3637
+ # @return [String]
3638
+ attr_accessor :dag_timeout
3639
+
3640
+ # Required. The template id.The id must contain only letters (a-z, A-Z), numbers
3641
+ # (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore
3642
+ # or hyphen. Must consist of between 3 and 50 characters..
3643
+ # Corresponds to the JSON property `id`
3644
+ # @return [String]
3645
+ attr_accessor :id
3646
+
3647
+ # Required. The Directed Acyclic Graph of Jobs to submit.
3648
+ # Corresponds to the JSON property `jobs`
3649
+ # @return [Array<Google::Apis::DataprocV1beta2::OrderedJob>]
3650
+ attr_accessor :jobs
3651
+
3652
+ # Optional. The labels to associate with this template. These labels will be
3653
+ # propagated to all jobs and clusters created by the workflow instance.Label
3654
+ # keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://
3655
+ # www.ietf.org/rfc/rfc1035.txt).Label values may be empty, but, if present, must
3656
+ # contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/
3657
+ # rfc/rfc1035.txt).No more than 32 labels can be associated with a template.
3658
+ # Corresponds to the JSON property `labels`
3659
+ # @return [Hash<String,String>]
3660
+ attr_accessor :labels
3661
+
3662
+ # Output only. The resource name of the workflow template, as described in https:
3663
+ # //cloud.google.com/apis/design/resource_names. For projects.regions.
3664
+ # workflowTemplates, the resource name of the template has the following format:
3665
+ # projects/`project_id`/regions/`region`/workflowTemplates/`template_id` For
3666
+ # projects.locations.workflowTemplates, the resource name of the template has
3667
+ # the following format: projects/`project_id`/locations/`location`/
3668
+ # workflowTemplates/`template_id`
3669
+ # Corresponds to the JSON property `name`
3670
+ # @return [String]
3671
+ attr_accessor :name
3672
+
3673
+ # Optional. Template parameters whose values are substituted into the template.
3674
+ # Values for parameters must be provided when the template is instantiated.
3675
+ # Corresponds to the JSON property `parameters`
3676
+ # @return [Array<Google::Apis::DataprocV1beta2::TemplateParameter>]
3677
+ attr_accessor :parameters
3678
+
3679
+ # Specifies workflow execution target.Either managed_cluster or cluster_selector
3680
+ # is required.
3681
+ # Corresponds to the JSON property `placement`
3682
+ # @return [Google::Apis::DataprocV1beta2::WorkflowTemplatePlacement]
3683
+ attr_accessor :placement
3684
+
3685
+ # Output only. The time template was last updated.
3686
+ # Corresponds to the JSON property `updateTime`
3687
+ # @return [String]
3688
+ attr_accessor :update_time
3689
+
3690
+ # Optional. Used to perform a consistent read-modify-write.This field should be
3691
+ # left blank for a CreateWorkflowTemplate request. It is required for an
3692
+ # UpdateWorkflowTemplate request, and must match the current server version. A
3693
+ # typical update template flow would fetch the current template with a
3694
+ # GetWorkflowTemplate request, which will return the current template with the
3695
+ # version field filled in with the current server version. The user updates
3696
+ # other fields in the template, then returns it as part of the
3697
+ # UpdateWorkflowTemplate request.
3698
+ # Corresponds to the JSON property `version`
3699
+ # @return [Fixnum]
3700
+ attr_accessor :version
3701
+
3702
+ def initialize(**args)
3703
+ update!(**args)
3704
+ end
3705
+
3706
+ # Update properties of this object
3707
+ def update!(**args)
3708
+ @create_time = args[:create_time] if args.key?(:create_time)
3709
+ @dag_timeout = args[:dag_timeout] if args.key?(:dag_timeout)
3710
+ @id = args[:id] if args.key?(:id)
3711
+ @jobs = args[:jobs] if args.key?(:jobs)
3712
+ @labels = args[:labels] if args.key?(:labels)
3713
+ @name = args[:name] if args.key?(:name)
3714
+ @parameters = args[:parameters] if args.key?(:parameters)
3715
+ @placement = args[:placement] if args.key?(:placement)
3716
+ @update_time = args[:update_time] if args.key?(:update_time)
3717
+ @version = args[:version] if args.key?(:version)
3718
+ end
3719
+ end
3720
+
3721
+ # Specifies workflow execution target.Either managed_cluster or cluster_selector
3722
+ # is required.
3723
+ class WorkflowTemplatePlacement
3724
+ include Google::Apis::Core::Hashable
3725
+
3726
+ # A selector that chooses target cluster for jobs based on metadata.
3727
+ # Corresponds to the JSON property `clusterSelector`
3728
+ # @return [Google::Apis::DataprocV1beta2::ClusterSelector]
3729
+ attr_accessor :cluster_selector
3730
+
3731
+ # Cluster that is managed by the workflow.
3732
+ # Corresponds to the JSON property `managedCluster`
3733
+ # @return [Google::Apis::DataprocV1beta2::ManagedCluster]
3734
+ attr_accessor :managed_cluster
3735
+
3736
+ def initialize(**args)
3737
+ update!(**args)
3738
+ end
3739
+
3740
+ # Update properties of this object
3741
+ def update!(**args)
3742
+ @cluster_selector = args[:cluster_selector] if args.key?(:cluster_selector)
3743
+ @managed_cluster = args[:managed_cluster] if args.key?(:managed_cluster)
3744
+ end
3745
+ end
3746
+
3747
+ # A YARN application created by a job. Application information is a subset of
3748
+ # org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto.Beta Feature:
3749
+ # This report is available for testing purposes only. It may be changed before
3750
+ # final release.
3751
+ class YarnApplication
3752
+ include Google::Apis::Core::Hashable
3753
+
3754
+ # Output only. The application name.
3755
+ # Corresponds to the JSON property `name`
3756
+ # @return [String]
3757
+ attr_accessor :name
3758
+
3759
+ # Output only. The numerical progress of the application, from 1 to 100.
3760
+ # Corresponds to the JSON property `progress`
3761
+ # @return [Float]
3762
+ attr_accessor :progress
3763
+
3764
+ # Output only. The application state.
3765
+ # Corresponds to the JSON property `state`
3766
+ # @return [String]
3767
+ attr_accessor :state
3768
+
3769
+ # Output only. The HTTP URL of the ApplicationMaster, HistoryServer, or
3770
+ # TimelineServer that provides application-specific information. The URL uses
3771
+ # the internal hostname, and requires a proxy server for resolution and,
3772
+ # possibly, access.
3773
+ # Corresponds to the JSON property `trackingUrl`
3774
+ # @return [String]
3775
+ attr_accessor :tracking_url
3776
+
3777
+ def initialize(**args)
3778
+ update!(**args)
3779
+ end
3780
+
3781
+ # Update properties of this object
3782
+ def update!(**args)
3783
+ @name = args[:name] if args.key?(:name)
3784
+ @progress = args[:progress] if args.key?(:progress)
3785
+ @state = args[:state] if args.key?(:state)
3786
+ @tracking_url = args[:tracking_url] if args.key?(:tracking_url)
3787
+ end
3788
+ end
3789
+ end
3790
+ end
3791
+ end