google-cloud-orchestration-airflow-service-v1 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,945 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "google/cloud/errors"
20
+ require "google/cloud/orchestration/airflow/service/v1/environments_pb"
21
+ require "google/cloud/orchestration/airflow/service/v1/environments/rest/service_stub"
22
+
23
+ module Google
24
+ module Cloud
25
+ module Orchestration
26
+ module Airflow
27
+ module Service
28
+ module V1
29
+ module Environments
30
+ module Rest
31
+ ##
32
+ # REST client for the Environments service.
33
+ #
34
+ # Managed Apache Airflow Environments.
35
+ #
36
+ class Client
37
+ include Paths
38
+
39
+ # @private
40
+ attr_reader :environments_stub
41
+
42
+ ##
43
+ # Configure the Environments Client class.
44
+ #
45
+ # See {::Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Rest::Client::Configuration}
46
+ # for a description of the configuration fields.
47
+ #
48
+ # @example
49
+ #
50
+ # # Modify the configuration for all Environments clients
51
+ # ::Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Rest::Client.configure do |config|
52
+ # config.timeout = 10.0
53
+ # end
54
+ #
55
+ # @yield [config] Configure the Client client.
56
+ # @yieldparam config [Client::Configuration]
57
+ #
58
+ # @return [Client::Configuration]
59
+ #
60
+ def self.configure
61
+ @configure ||= begin
62
+ namespace = ["Google", "Cloud", "Orchestration", "Airflow", "Service", "V1"]
63
+ parent_config = while namespace.any?
64
+ parent_name = namespace.join "::"
65
+ parent_const = const_get parent_name
66
+ break parent_const.configure if parent_const.respond_to? :configure
67
+ namespace.pop
68
+ end
69
+ default_config = Client::Configuration.new parent_config
70
+
71
+ default_config
72
+ end
73
+ yield @configure if block_given?
74
+ @configure
75
+ end
76
+
77
+ ##
78
+ # Configure the Environments Client instance.
79
+ #
80
+ # The configuration is set to the derived mode, meaning that values can be changed,
81
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
82
+ # should be made on {Client.configure}.
83
+ #
84
+ # See {::Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Rest::Client::Configuration}
85
+ # for a description of the configuration fields.
86
+ #
87
+ # @yield [config] Configure the Client client.
88
+ # @yieldparam config [Client::Configuration]
89
+ #
90
+ # @return [Client::Configuration]
91
+ #
92
+ def configure
93
+ yield @config if block_given?
94
+ @config
95
+ end
96
+
97
+ ##
98
+ # Create a new Environments REST client object.
99
+ #
100
+ # @example
101
+ #
102
+ # # Create a client using the default configuration
103
+ # client = ::Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Rest::Client.new
104
+ #
105
+ # # Create a client using a custom configuration
106
+ # client = ::Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Rest::Client.new do |config|
107
+ # config.timeout = 10.0
108
+ # end
109
+ #
110
+ # @yield [config] Configure the Environments client.
111
+ # @yieldparam config [Client::Configuration]
112
+ #
113
+ def initialize
114
+ # Create the configuration object
115
+ @config = Configuration.new Client.configure
116
+
117
+ # Yield the configuration if needed
118
+ yield @config if block_given?
119
+
120
+ # Create credentials
121
+ credentials = @config.credentials
122
+ # Use self-signed JWT if the endpoint is unchanged from default,
123
+ # but only if the default endpoint does not have a region prefix.
124
+ enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
125
+ !@config.endpoint.split(".").first.include?("-")
126
+ credentials ||= Credentials.default scope: @config.scope,
127
+ enable_self_signed_jwt: enable_self_signed_jwt
128
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
129
+ credentials = Credentials.new credentials, scope: @config.scope
130
+ end
131
+
132
+ @quota_project_id = @config.quota_project
133
+ @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
134
+
135
+ @operations_client = ::Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Rest::Operations.new do |config|
136
+ config.credentials = credentials
137
+ config.quota_project = @quota_project_id
138
+ config.endpoint = @config.endpoint
139
+ end
140
+
141
+ @environments_stub = ::Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Rest::ServiceStub.new endpoint: @config.endpoint, credentials: credentials
142
+ end
143
+
144
+ ##
145
+ # Get the associated client for long-running operations.
146
+ #
147
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Rest::Operations]
148
+ #
149
+ attr_reader :operations_client
150
+
151
+ # Service calls
152
+
153
+ ##
154
+ # Create a new environment.
155
+ #
156
+ # @overload create_environment(request, options = nil)
157
+ # Pass arguments to `create_environment` via a request object, either of type
158
+ # {::Google::Cloud::Orchestration::Airflow::Service::V1::CreateEnvironmentRequest} or an equivalent Hash.
159
+ #
160
+ # @param request [::Google::Cloud::Orchestration::Airflow::Service::V1::CreateEnvironmentRequest, ::Hash]
161
+ # A request object representing the call parameters. Required. To specify no
162
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
163
+ # @param options [::Gapic::CallOptions, ::Hash]
164
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
165
+ #
166
+ # @overload create_environment(parent: nil, environment: nil)
167
+ # Pass arguments to `create_environment` via keyword arguments. Note that at
168
+ # least one keyword argument is required. To specify no parameters, or to keep all
169
+ # the default parameter values, pass an empty Hash as a request object (see above).
170
+ #
171
+ # @param parent [::String]
172
+ # The parent must be of the form
173
+ # "projects/\\{projectId}/locations/\\{locationId}".
174
+ # @param environment [::Google::Cloud::Orchestration::Airflow::Service::V1::Environment, ::Hash]
175
+ # The environment to create.
176
+ # @yield [result, operation] Access the result along with the TransportOperation object
177
+ # @yieldparam result [::Gapic::Operation]
178
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
179
+ #
180
+ # @return [::Gapic::Operation]
181
+ #
182
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
183
+ def create_environment request, options = nil
184
+ raise ::ArgumentError, "request must be provided" if request.nil?
185
+
186
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Orchestration::Airflow::Service::V1::CreateEnvironmentRequest
187
+
188
+ # Converts hash and nil to an options object
189
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
190
+
191
+ # Customize the options with defaults
192
+ call_metadata = @config.rpcs.create_environment.metadata.to_h
193
+
194
+ # Set x-goog-api-client and x-goog-user-project headers
195
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
196
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
197
+ gapic_version: ::Google::Cloud::Orchestration::Airflow::Service::V1::VERSION,
198
+ transports_version_send: [:rest]
199
+
200
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
201
+
202
+ options.apply_defaults timeout: @config.rpcs.create_environment.timeout,
203
+ metadata: call_metadata,
204
+ retry_policy: @config.rpcs.create_environment.retry_policy
205
+
206
+ options.apply_defaults timeout: @config.timeout,
207
+ metadata: @config.metadata,
208
+ retry_policy: @config.retry_policy
209
+
210
+ @environments_stub.create_environment request, options do |result, operation|
211
+ result = ::Gapic::Operation.new result, @operations_client, options: options
212
+ yield result, operation if block_given?
213
+ return result
214
+ end
215
+ rescue ::Gapic::Rest::Error => e
216
+ raise ::Google::Cloud::Error.from_error(e)
217
+ end
218
+
219
+ ##
220
+ # Get an existing environment.
221
+ #
222
+ # @overload get_environment(request, options = nil)
223
+ # Pass arguments to `get_environment` via a request object, either of type
224
+ # {::Google::Cloud::Orchestration::Airflow::Service::V1::GetEnvironmentRequest} or an equivalent Hash.
225
+ #
226
+ # @param request [::Google::Cloud::Orchestration::Airflow::Service::V1::GetEnvironmentRequest, ::Hash]
227
+ # A request object representing the call parameters. Required. To specify no
228
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
229
+ # @param options [::Gapic::CallOptions, ::Hash]
230
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
231
+ #
232
+ # @overload get_environment(name: nil)
233
+ # Pass arguments to `get_environment` via keyword arguments. Note that at
234
+ # least one keyword argument is required. To specify no parameters, or to keep all
235
+ # the default parameter values, pass an empty Hash as a request object (see above).
236
+ #
237
+ # @param name [::String]
238
+ # The resource name of the environment to get, in the form:
239
+ # "projects/\\{projectId}/locations/\\{locationId}/environments/\\{environmentId}"
240
+ # @yield [result, operation] Access the result along with the TransportOperation object
241
+ # @yieldparam result [::Google::Cloud::Orchestration::Airflow::Service::V1::Environment]
242
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
243
+ #
244
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::Environment]
245
+ #
246
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
247
+ def get_environment request, options = nil
248
+ raise ::ArgumentError, "request must be provided" if request.nil?
249
+
250
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Orchestration::Airflow::Service::V1::GetEnvironmentRequest
251
+
252
+ # Converts hash and nil to an options object
253
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
254
+
255
+ # Customize the options with defaults
256
+ call_metadata = @config.rpcs.get_environment.metadata.to_h
257
+
258
+ # Set x-goog-api-client and x-goog-user-project headers
259
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
260
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
261
+ gapic_version: ::Google::Cloud::Orchestration::Airflow::Service::V1::VERSION,
262
+ transports_version_send: [:rest]
263
+
264
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
265
+
266
+ options.apply_defaults timeout: @config.rpcs.get_environment.timeout,
267
+ metadata: call_metadata,
268
+ retry_policy: @config.rpcs.get_environment.retry_policy
269
+
270
+ options.apply_defaults timeout: @config.timeout,
271
+ metadata: @config.metadata,
272
+ retry_policy: @config.retry_policy
273
+
274
+ @environments_stub.get_environment request, options do |result, operation|
275
+ yield result, operation if block_given?
276
+ return result
277
+ end
278
+ rescue ::Gapic::Rest::Error => e
279
+ raise ::Google::Cloud::Error.from_error(e)
280
+ end
281
+
282
+ ##
283
+ # List environments.
284
+ #
285
+ # @overload list_environments(request, options = nil)
286
+ # Pass arguments to `list_environments` via a request object, either of type
287
+ # {::Google::Cloud::Orchestration::Airflow::Service::V1::ListEnvironmentsRequest} or an equivalent Hash.
288
+ #
289
+ # @param request [::Google::Cloud::Orchestration::Airflow::Service::V1::ListEnvironmentsRequest, ::Hash]
290
+ # A request object representing the call parameters. Required. To specify no
291
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
292
+ # @param options [::Gapic::CallOptions, ::Hash]
293
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
294
+ #
295
+ # @overload list_environments(parent: nil, page_size: nil, page_token: nil)
296
+ # Pass arguments to `list_environments` via keyword arguments. Note that at
297
+ # least one keyword argument is required. To specify no parameters, or to keep all
298
+ # the default parameter values, pass an empty Hash as a request object (see above).
299
+ #
300
+ # @param parent [::String]
301
+ # List environments in the given project and location, in the form:
302
+ # "projects/\\{projectId}/locations/\\{locationId}"
303
+ # @param page_size [::Integer]
304
+ # The maximum number of environments to return.
305
+ # @param page_token [::String]
306
+ # The next_page_token value returned from a previous List request, if any.
307
+ # @yield [result, operation] Access the result along with the TransportOperation object
308
+ # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Orchestration::Airflow::Service::V1::Environment>]
309
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
310
+ #
311
+ # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Orchestration::Airflow::Service::V1::Environment>]
312
+ #
313
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
314
+ def list_environments request, options = nil
315
+ raise ::ArgumentError, "request must be provided" if request.nil?
316
+
317
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Orchestration::Airflow::Service::V1::ListEnvironmentsRequest
318
+
319
+ # Converts hash and nil to an options object
320
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
321
+
322
+ # Customize the options with defaults
323
+ call_metadata = @config.rpcs.list_environments.metadata.to_h
324
+
325
+ # Set x-goog-api-client and x-goog-user-project headers
326
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
327
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
328
+ gapic_version: ::Google::Cloud::Orchestration::Airflow::Service::V1::VERSION,
329
+ transports_version_send: [:rest]
330
+
331
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
332
+
333
+ options.apply_defaults timeout: @config.rpcs.list_environments.timeout,
334
+ metadata: call_metadata,
335
+ retry_policy: @config.rpcs.list_environments.retry_policy
336
+
337
+ options.apply_defaults timeout: @config.timeout,
338
+ metadata: @config.metadata,
339
+ retry_policy: @config.retry_policy
340
+
341
+ @environments_stub.list_environments request, options do |result, operation|
342
+ result = ::Gapic::Rest::PagedEnumerable.new @environments_stub, :list_environments, "environments", request, result, options
343
+ yield result, operation if block_given?
344
+ return result
345
+ end
346
+ rescue ::Gapic::Rest::Error => e
347
+ raise ::Google::Cloud::Error.from_error(e)
348
+ end
349
+
350
+ ##
351
+ # Update an environment.
352
+ #
353
+ # @overload update_environment(request, options = nil)
354
+ # Pass arguments to `update_environment` via a request object, either of type
355
+ # {::Google::Cloud::Orchestration::Airflow::Service::V1::UpdateEnvironmentRequest} or an equivalent Hash.
356
+ #
357
+ # @param request [::Google::Cloud::Orchestration::Airflow::Service::V1::UpdateEnvironmentRequest, ::Hash]
358
+ # A request object representing the call parameters. Required. To specify no
359
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
360
+ # @param options [::Gapic::CallOptions, ::Hash]
361
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
362
+ #
363
+ # @overload update_environment(name: nil, environment: nil, update_mask: nil)
364
+ # Pass arguments to `update_environment` via keyword arguments. Note that at
365
+ # least one keyword argument is required. To specify no parameters, or to keep all
366
+ # the default parameter values, pass an empty Hash as a request object (see above).
367
+ #
368
+ # @param name [::String]
369
+ # The relative resource name of the environment to update, in the form:
370
+ # "projects/\\{projectId}/locations/\\{locationId}/environments/\\{environmentId}"
371
+ # @param environment [::Google::Cloud::Orchestration::Airflow::Service::V1::Environment, ::Hash]
372
+ # A patch environment. Fields specified by the `updateMask` will be copied
373
+ # from the patch environment into the environment under update.
374
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
375
+ # Required. A comma-separated list of paths, relative to `Environment`, of
376
+ # fields to update.
377
+ # For example, to set the version of scikit-learn to install in the
378
+ # environment to 0.19.0 and to remove an existing installation of
379
+ # numpy, the `updateMask` parameter would include the following two
380
+ # `paths` values: "config.softwareConfig.pypiPackages.scikit-learn" and
381
+ # "config.softwareConfig.pypiPackages.numpy". The included patch
382
+ # environment would specify the scikit-learn version as follows:
383
+ #
384
+ # {
385
+ # "config":{
386
+ # "softwareConfig":{
387
+ # "pypiPackages":{
388
+ # "scikit-learn":"==0.19.0"
389
+ # }
390
+ # }
391
+ # }
392
+ # }
393
+ #
394
+ # Note that in the above example, any existing PyPI packages
395
+ # other than scikit-learn and numpy will be unaffected.
396
+ #
397
+ # Only one update type may be included in a single request's `updateMask`.
398
+ # For example, one cannot update both the PyPI packages and
399
+ # labels in the same request. However, it is possible to update multiple
400
+ # members of a map field simultaneously in the same request. For example,
401
+ # to set the labels "label1" and "label2" while clearing "label3" (assuming
402
+ # it already exists), one can
403
+ # provide the paths "labels.label1", "labels.label2", and "labels.label3"
404
+ # and populate the patch environment as follows:
405
+ #
406
+ # {
407
+ # "labels":{
408
+ # "label1":"new-label1-value"
409
+ # "label2":"new-label2-value"
410
+ # }
411
+ # }
412
+ #
413
+ # Note that in the above example, any existing labels that are not
414
+ # included in the `updateMask` will be unaffected.
415
+ #
416
+ # It is also possible to replace an entire map field by providing the
417
+ # map field's path in the `updateMask`. The new value of the field will
418
+ # be that which is provided in the patch environment. For example, to
419
+ # delete all pre-existing user-specified PyPI packages and
420
+ # install botocore at version 1.7.14, the `updateMask` would contain
421
+ # the path "config.softwareConfig.pypiPackages", and
422
+ # the patch environment would be the following:
423
+ #
424
+ # {
425
+ # "config":{
426
+ # "softwareConfig":{
427
+ # "pypiPackages":{
428
+ # "botocore":"==1.7.14"
429
+ # }
430
+ # }
431
+ # }
432
+ # }
433
+ #
434
+ # **Note:** Only the following fields can be updated:
435
+ #
436
+ # * `config.softwareConfig.pypiPackages`
437
+ # * Replace all custom custom PyPI packages. If a replacement
438
+ # package map is not included in `environment`, all custom
439
+ # PyPI packages are cleared. It is an error to provide both
440
+ # this mask and a mask specifying an individual package.
441
+ # * `config.softwareConfig.pypiPackages.`packagename
442
+ # * Update the custom PyPI package *packagename*,
443
+ # preserving other packages. To delete the package, include it in
444
+ # `updateMask`, and omit the mapping for it in
445
+ # `environment.config.softwareConfig.pypiPackages`. It is an error
446
+ # to provide both a mask of this form and the
447
+ # `config.softwareConfig.pypiPackages` mask.
448
+ # * `labels`
449
+ # * Replace all environment labels. If a replacement labels map is not
450
+ # included in `environment`, all labels are cleared. It is an error to
451
+ # provide both this mask and a mask specifying one or more individual
452
+ # labels.
453
+ # * `labels.`labelName
454
+ # * Set the label named *labelName*, while preserving other
455
+ # labels. To delete the label, include it in `updateMask` and omit its
456
+ # mapping in `environment.labels`. It is an error to provide both a
457
+ # mask of this form and the `labels` mask.
458
+ # * `config.nodeCount`
459
+ # * Horizontally scale the number of nodes in the environment. An integer
460
+ # greater than or equal to 3 must be provided in the `config.nodeCount`
461
+ # field. Supported for Cloud Composer environments in versions
462
+ # composer-1.*.*-airflow-*.*.*.
463
+ # * `config.webServerNetworkAccessControl`
464
+ # * Replace the environment's current `WebServerNetworkAccessControl`.
465
+ # * `config.softwareConfig.airflowConfigOverrides`
466
+ # * Replace all Apache Airflow config overrides. If a replacement config
467
+ # overrides map is not included in `environment`, all config overrides
468
+ # are cleared.
469
+ # It is an error to provide both this mask and a mask specifying one or
470
+ # more individual config overrides.
471
+ # * `config.softwareConfig.airflowConfigOverrides.`section-name
472
+ # * Override the Apache Airflow config property *name* in the
473
+ # section named *section*, preserving other properties. To
474
+ # delete the property override, include it in `updateMask` and omit its
475
+ # mapping in
476
+ # `environment.config.softwareConfig.airflowConfigOverrides`.
477
+ # It is an error to provide both a mask of this form and the
478
+ # `config.softwareConfig.airflowConfigOverrides` mask.
479
+ # * `config.softwareConfig.envVariables`
480
+ # * Replace all environment variables. If a replacement environment
481
+ # variable map is not included in `environment`, all custom environment
482
+ # variables are cleared.
483
+ # * `config.softwareConfig.schedulerCount`
484
+ # * Horizontally scale the number of schedulers in Airflow. A positive
485
+ # integer not greater than the number of nodes must be provided in the
486
+ # `config.softwareConfig.schedulerCount` field. Supported for Cloud
487
+ # Composer environments in versions composer-1.*.*-airflow-2.*.*.
488
+ # * `config.databaseConfig.machineType`
489
+ # * Cloud SQL machine type used by Airflow database.
490
+ # It has to be one of: db-n1-standard-2, db-n1-standard-4,
491
+ # db-n1-standard-8 or db-n1-standard-16. Supported for Cloud Composer
492
+ # environments in versions composer-1.*.*-airflow-*.*.*.
493
+ # * `config.webServerConfig.machineType`
494
+ # * Machine type on which Airflow web server is running.
495
+ # It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4
496
+ # or composer-n1-webserver-8. Supported for Cloud Composer environments
497
+ # in versions composer-1.*.*-airflow-*.*.*.
498
+ # @yield [result, operation] Access the result along with the TransportOperation object
499
+ # @yieldparam result [::Gapic::Operation]
500
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
501
+ #
502
+ # @return [::Gapic::Operation]
503
+ #
504
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
505
+ def update_environment request, options = nil
506
+ raise ::ArgumentError, "request must be provided" if request.nil?
507
+
508
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Orchestration::Airflow::Service::V1::UpdateEnvironmentRequest
509
+
510
+ # Converts hash and nil to an options object
511
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
512
+
513
+ # Customize the options with defaults
514
+ call_metadata = @config.rpcs.update_environment.metadata.to_h
515
+
516
+ # Set x-goog-api-client and x-goog-user-project headers
517
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
518
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
519
+ gapic_version: ::Google::Cloud::Orchestration::Airflow::Service::V1::VERSION,
520
+ transports_version_send: [:rest]
521
+
522
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
523
+
524
+ options.apply_defaults timeout: @config.rpcs.update_environment.timeout,
525
+ metadata: call_metadata,
526
+ retry_policy: @config.rpcs.update_environment.retry_policy
527
+
528
+ options.apply_defaults timeout: @config.timeout,
529
+ metadata: @config.metadata,
530
+ retry_policy: @config.retry_policy
531
+
532
+ @environments_stub.update_environment request, options do |result, operation|
533
+ result = ::Gapic::Operation.new result, @operations_client, options: options
534
+ yield result, operation if block_given?
535
+ return result
536
+ end
537
+ rescue ::Gapic::Rest::Error => e
538
+ raise ::Google::Cloud::Error.from_error(e)
539
+ end
540
+
541
+ ##
542
+ # Delete an environment.
543
+ #
544
+ # @overload delete_environment(request, options = nil)
545
+ # Pass arguments to `delete_environment` via a request object, either of type
546
+ # {::Google::Cloud::Orchestration::Airflow::Service::V1::DeleteEnvironmentRequest} or an equivalent Hash.
547
+ #
548
+ # @param request [::Google::Cloud::Orchestration::Airflow::Service::V1::DeleteEnvironmentRequest, ::Hash]
549
+ # A request object representing the call parameters. Required. To specify no
550
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
551
+ # @param options [::Gapic::CallOptions, ::Hash]
552
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
553
+ #
554
+ # @overload delete_environment(name: nil)
555
+ # Pass arguments to `delete_environment` via keyword arguments. Note that at
556
+ # least one keyword argument is required. To specify no parameters, or to keep all
557
+ # the default parameter values, pass an empty Hash as a request object (see above).
558
+ #
559
+ # @param name [::String]
560
+ # The environment to delete, in the form:
561
+ # "projects/\\{projectId}/locations/\\{locationId}/environments/\\{environmentId}"
562
+ # @yield [result, operation] Access the result along with the TransportOperation object
563
+ # @yieldparam result [::Gapic::Operation]
564
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
565
+ #
566
+ # @return [::Gapic::Operation]
567
+ #
568
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
569
+ def delete_environment request, options = nil
570
+ raise ::ArgumentError, "request must be provided" if request.nil?
571
+
572
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Orchestration::Airflow::Service::V1::DeleteEnvironmentRequest
573
+
574
+ # Converts hash and nil to an options object
575
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
576
+
577
+ # Customize the options with defaults
578
+ call_metadata = @config.rpcs.delete_environment.metadata.to_h
579
+
580
+ # Set x-goog-api-client and x-goog-user-project headers
581
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
582
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
583
+ gapic_version: ::Google::Cloud::Orchestration::Airflow::Service::V1::VERSION,
584
+ transports_version_send: [:rest]
585
+
586
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
587
+
588
+ options.apply_defaults timeout: @config.rpcs.delete_environment.timeout,
589
+ metadata: call_metadata,
590
+ retry_policy: @config.rpcs.delete_environment.retry_policy
591
+
592
+ options.apply_defaults timeout: @config.timeout,
593
+ metadata: @config.metadata,
594
+ retry_policy: @config.retry_policy
595
+
596
+ @environments_stub.delete_environment request, options do |result, operation|
597
+ result = ::Gapic::Operation.new result, @operations_client, options: options
598
+ yield result, operation if block_given?
599
+ return result
600
+ end
601
+ rescue ::Gapic::Rest::Error => e
602
+ raise ::Google::Cloud::Error.from_error(e)
603
+ end
604
+
605
+ ##
606
+ # Creates a snapshots of a Cloud Composer environment.
607
+ #
608
+ # As a result of this operation, snapshot of environment's state is stored
609
+ # in a location specified in the SaveSnapshotRequest.
610
+ #
611
+ # @overload save_snapshot(request, options = nil)
612
+ # Pass arguments to `save_snapshot` via a request object, either of type
613
+ # {::Google::Cloud::Orchestration::Airflow::Service::V1::SaveSnapshotRequest} or an equivalent Hash.
614
+ #
615
+ # @param request [::Google::Cloud::Orchestration::Airflow::Service::V1::SaveSnapshotRequest, ::Hash]
616
+ # A request object representing the call parameters. Required. To specify no
617
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
618
+ # @param options [::Gapic::CallOptions, ::Hash]
619
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
620
+ #
621
+ # @overload save_snapshot(environment: nil, snapshot_location: nil)
622
+ # Pass arguments to `save_snapshot` via keyword arguments. Note that at
623
+ # least one keyword argument is required. To specify no parameters, or to keep all
624
+ # the default parameter values, pass an empty Hash as a request object (see above).
625
+ #
626
+ # @param environment [::String]
627
+ # The resource name of the source environment in the form:
628
+ # "projects/\\{projectId}/locations/\\{locationId}/environments/\\{environmentId}"
629
+ # @param snapshot_location [::String]
630
+ # Location in a Cloud Storage where the snapshot is going to be stored, e.g.:
631
+ # "gs://my-bucket/snapshots".
632
+ # @yield [result, operation] Access the result along with the TransportOperation object
633
+ # @yieldparam result [::Gapic::Operation]
634
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
635
+ #
636
+ # @return [::Gapic::Operation]
637
+ #
638
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
639
+ def save_snapshot request, options = nil
640
+ raise ::ArgumentError, "request must be provided" if request.nil?
641
+
642
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Orchestration::Airflow::Service::V1::SaveSnapshotRequest
643
+
644
+ # Converts hash and nil to an options object
645
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
646
+
647
+ # Customize the options with defaults
648
+ call_metadata = @config.rpcs.save_snapshot.metadata.to_h
649
+
650
+ # Set x-goog-api-client and x-goog-user-project headers
651
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
652
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
653
+ gapic_version: ::Google::Cloud::Orchestration::Airflow::Service::V1::VERSION,
654
+ transports_version_send: [:rest]
655
+
656
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
657
+
658
+ options.apply_defaults timeout: @config.rpcs.save_snapshot.timeout,
659
+ metadata: call_metadata,
660
+ retry_policy: @config.rpcs.save_snapshot.retry_policy
661
+
662
+ options.apply_defaults timeout: @config.timeout,
663
+ metadata: @config.metadata,
664
+ retry_policy: @config.retry_policy
665
+
666
+ @environments_stub.save_snapshot request, options do |result, operation|
667
+ result = ::Gapic::Operation.new result, @operations_client, options: options
668
+ yield result, operation if block_given?
669
+ return result
670
+ end
671
+ rescue ::Gapic::Rest::Error => e
672
+ raise ::Google::Cloud::Error.from_error(e)
673
+ end
674
+
675
+ ##
676
+ # Loads a snapshot of a Cloud Composer environment.
677
+ #
678
+ # As a result of this operation, a snapshot of environment's specified in
679
+ # LoadSnapshotRequest is loaded into the environment.
680
+ #
681
+ # @overload load_snapshot(request, options = nil)
682
+ # Pass arguments to `load_snapshot` via a request object, either of type
683
+ # {::Google::Cloud::Orchestration::Airflow::Service::V1::LoadSnapshotRequest} or an equivalent Hash.
684
+ #
685
+ # @param request [::Google::Cloud::Orchestration::Airflow::Service::V1::LoadSnapshotRequest, ::Hash]
686
+ # A request object representing the call parameters. Required. To specify no
687
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
688
+ # @param options [::Gapic::CallOptions, ::Hash]
689
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
690
+ #
691
+ # @overload load_snapshot(environment: nil, snapshot_path: nil, skip_pypi_packages_installation: nil, skip_environment_variables_setting: nil, skip_airflow_overrides_setting: nil, skip_gcs_data_copying: nil)
692
+ # Pass arguments to `load_snapshot` via keyword arguments. Note that at
693
+ # least one keyword argument is required. To specify no parameters, or to keep all
694
+ # the default parameter values, pass an empty Hash as a request object (see above).
695
+ #
696
+ # @param environment [::String]
697
+ # The resource name of the target environment in the form:
698
+ # "projects/\\{projectId}/locations/\\{locationId}/environments/\\{environmentId}"
699
+ # @param snapshot_path [::String]
700
+ # A Cloud Storage path to a snapshot to load, e.g.:
701
+ # "gs://my-bucket/snapshots/project_location_environment_timestamp".
702
+ # @param skip_pypi_packages_installation [::Boolean]
703
+ # Whether or not to skip installing Pypi packages when loading the
704
+ # environment's state.
705
+ # @param skip_environment_variables_setting [::Boolean]
706
+ # Whether or not to skip setting environment variables when loading the
707
+ # environment's state.
708
+ # @param skip_airflow_overrides_setting [::Boolean]
709
+ # Whether or not to skip setting Airflow overrides when loading the
710
+ # environment's state.
711
+ # @param skip_gcs_data_copying [::Boolean]
712
+ # Whether or not to skip copying Cloud Storage data when loading the
713
+ # environment's state.
714
+ # @yield [result, operation] Access the result along with the TransportOperation object
715
+ # @yieldparam result [::Gapic::Operation]
716
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
717
+ #
718
+ # @return [::Gapic::Operation]
719
+ #
720
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
721
+ def load_snapshot request, options = nil
722
+ raise ::ArgumentError, "request must be provided" if request.nil?
723
+
724
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Orchestration::Airflow::Service::V1::LoadSnapshotRequest
725
+
726
+ # Converts hash and nil to an options object
727
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
728
+
729
+ # Customize the options with defaults
730
+ call_metadata = @config.rpcs.load_snapshot.metadata.to_h
731
+
732
+ # Set x-goog-api-client and x-goog-user-project headers
733
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
734
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
735
+ gapic_version: ::Google::Cloud::Orchestration::Airflow::Service::V1::VERSION,
736
+ transports_version_send: [:rest]
737
+
738
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
739
+
740
+ options.apply_defaults timeout: @config.rpcs.load_snapshot.timeout,
741
+ metadata: call_metadata,
742
+ retry_policy: @config.rpcs.load_snapshot.retry_policy
743
+
744
+ options.apply_defaults timeout: @config.timeout,
745
+ metadata: @config.metadata,
746
+ retry_policy: @config.retry_policy
747
+
748
+ @environments_stub.load_snapshot request, options do |result, operation|
749
+ result = ::Gapic::Operation.new result, @operations_client, options: options
750
+ yield result, operation if block_given?
751
+ return result
752
+ end
753
+ rescue ::Gapic::Rest::Error => e
754
+ raise ::Google::Cloud::Error.from_error(e)
755
+ end
756
+
757
+ ##
758
+ # Configuration class for the Environments REST API.
759
+ #
760
+ # This class represents the configuration for Environments REST,
761
+ # providing control over timeouts, retry behavior, logging, transport
762
+ # parameters, and other low-level controls. Certain parameters can also be
763
+ # applied individually to specific RPCs. See
764
+ # {::Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Rest::Client::Configuration::Rpcs}
765
+ # for a list of RPCs that can be configured independently.
766
+ #
767
+ # Configuration can be applied globally to all clients, or to a single client
768
+ # on construction.
769
+ #
770
+ # @example
771
+ #
772
+ # # Modify the global config, setting the timeout for
773
+ # # create_environment to 20 seconds,
774
+ # # and all remaining timeouts to 10 seconds.
775
+ # ::Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Rest::Client.configure do |config|
776
+ # config.timeout = 10.0
777
+ # config.rpcs.create_environment.timeout = 20.0
778
+ # end
779
+ #
780
+ # # Apply the above configuration only to a new client.
781
+ # client = ::Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Rest::Client.new do |config|
782
+ # config.timeout = 10.0
783
+ # config.rpcs.create_environment.timeout = 20.0
784
+ # end
785
+ #
786
+ # @!attribute [rw] endpoint
787
+ # The hostname or hostname:port of the service endpoint.
788
+ # Defaults to `"composer.googleapis.com"`.
789
+ # @return [::String]
790
+ # @!attribute [rw] credentials
791
+ # Credentials to send with calls. You may provide any of the following types:
792
+ # * (`String`) The path to a service account key file in JSON format
793
+ # * (`Hash`) A service account key as a Hash
794
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
795
+ # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
796
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
797
+ # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
798
+ # * (`nil`) indicating no credentials
799
+ # @return [::Object]
800
+ # @!attribute [rw] scope
801
+ # The OAuth scopes
802
+ # @return [::Array<::String>]
803
+ # @!attribute [rw] lib_name
804
+ # The library name as recorded in instrumentation and logging
805
+ # @return [::String]
806
+ # @!attribute [rw] lib_version
807
+ # The library version as recorded in instrumentation and logging
808
+ # @return [::String]
809
+ # @!attribute [rw] timeout
810
+ # The call timeout in seconds.
811
+ # @return [::Numeric]
812
+ # @!attribute [rw] metadata
813
+ # Additional headers to be sent with the call.
814
+ # @return [::Hash{::Symbol=>::String}]
815
+ # @!attribute [rw] retry_policy
816
+ # The retry policy. The value is a hash with the following keys:
817
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
818
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
819
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
820
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
821
+ # trigger a retry.
822
+ # @return [::Hash]
823
+ # @!attribute [rw] quota_project
824
+ # A separate project against which to charge quota.
825
+ # @return [::String]
826
+ #
827
+ class Configuration
828
+ extend ::Gapic::Config
829
+
830
+ config_attr :endpoint, "composer.googleapis.com", ::String
831
+ config_attr :credentials, nil do |value|
832
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
833
+ allowed.any? { |klass| klass === value }
834
+ end
835
+ config_attr :scope, nil, ::String, ::Array, nil
836
+ config_attr :lib_name, nil, ::String, nil
837
+ config_attr :lib_version, nil, ::String, nil
838
+ config_attr :timeout, nil, ::Numeric, nil
839
+ config_attr :metadata, nil, ::Hash, nil
840
+ config_attr :retry_policy, nil, ::Hash, ::Proc, nil
841
+ config_attr :quota_project, nil, ::String, nil
842
+
843
+ # @private
844
+ def initialize parent_config = nil
845
+ @parent_config = parent_config unless parent_config.nil?
846
+
847
+ yield self if block_given?
848
+ end
849
+
850
+ ##
851
+ # Configurations for individual RPCs
852
+ # @return [Rpcs]
853
+ #
854
+ def rpcs
855
+ @rpcs ||= begin
856
+ parent_rpcs = nil
857
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
858
+ Rpcs.new parent_rpcs
859
+ end
860
+ end
861
+
862
+ ##
863
+ # Configuration RPC class for the Environments API.
864
+ #
865
+ # Includes fields providing the configuration for each RPC in this service.
866
+ # Each configuration object is of type `Gapic::Config::Method` and includes
867
+ # the following configuration fields:
868
+ #
869
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
870
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers
871
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
872
+ # include the following keys:
873
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
874
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
875
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
876
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
877
+ # trigger a retry.
878
+ #
879
+ class Rpcs
880
+ ##
881
+ # RPC-specific configuration for `create_environment`
882
+ # @return [::Gapic::Config::Method]
883
+ #
884
+ attr_reader :create_environment
885
+ ##
886
+ # RPC-specific configuration for `get_environment`
887
+ # @return [::Gapic::Config::Method]
888
+ #
889
+ attr_reader :get_environment
890
+ ##
891
+ # RPC-specific configuration for `list_environments`
892
+ # @return [::Gapic::Config::Method]
893
+ #
894
+ attr_reader :list_environments
895
+ ##
896
+ # RPC-specific configuration for `update_environment`
897
+ # @return [::Gapic::Config::Method]
898
+ #
899
+ attr_reader :update_environment
900
+ ##
901
+ # RPC-specific configuration for `delete_environment`
902
+ # @return [::Gapic::Config::Method]
903
+ #
904
+ attr_reader :delete_environment
905
+ ##
906
+ # RPC-specific configuration for `save_snapshot`
907
+ # @return [::Gapic::Config::Method]
908
+ #
909
+ attr_reader :save_snapshot
910
+ ##
911
+ # RPC-specific configuration for `load_snapshot`
912
+ # @return [::Gapic::Config::Method]
913
+ #
914
+ attr_reader :load_snapshot
915
+
916
+ # @private
917
+ def initialize parent_rpcs = nil
918
+ create_environment_config = parent_rpcs.create_environment if parent_rpcs.respond_to? :create_environment
919
+ @create_environment = ::Gapic::Config::Method.new create_environment_config
920
+ get_environment_config = parent_rpcs.get_environment if parent_rpcs.respond_to? :get_environment
921
+ @get_environment = ::Gapic::Config::Method.new get_environment_config
922
+ list_environments_config = parent_rpcs.list_environments if parent_rpcs.respond_to? :list_environments
923
+ @list_environments = ::Gapic::Config::Method.new list_environments_config
924
+ update_environment_config = parent_rpcs.update_environment if parent_rpcs.respond_to? :update_environment
925
+ @update_environment = ::Gapic::Config::Method.new update_environment_config
926
+ delete_environment_config = parent_rpcs.delete_environment if parent_rpcs.respond_to? :delete_environment
927
+ @delete_environment = ::Gapic::Config::Method.new delete_environment_config
928
+ save_snapshot_config = parent_rpcs.save_snapshot if parent_rpcs.respond_to? :save_snapshot
929
+ @save_snapshot = ::Gapic::Config::Method.new save_snapshot_config
930
+ load_snapshot_config = parent_rpcs.load_snapshot if parent_rpcs.respond_to? :load_snapshot
931
+ @load_snapshot = ::Gapic::Config::Method.new load_snapshot_config
932
+
933
+ yield self if block_given?
934
+ end
935
+ end
936
+ end
937
+ end
938
+ end
939
+ end
940
+ end
941
+ end
942
+ end
943
+ end
944
+ end
945
+ end