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