google-cloud-ai_platform-v1 0.52.0 → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4181 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2024 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 "gapic/operation"
20
+
21
+ module Google
22
+ module Cloud
23
+ module AIPlatform
24
+ module V1
25
+ module GenAiTuningService
26
+ module Rest
27
+ # Service that implements Longrunning Operations API.
28
+ class Operations
29
+ # @private
30
+ API_VERSION = ""
31
+
32
+ # @private
33
+ DEFAULT_ENDPOINT_TEMPLATE = "aiplatform.$UNIVERSE_DOMAIN$"
34
+
35
+ # @private
36
+ attr_reader :operations_stub
37
+
38
+ ##
39
+ # Configuration for the GenAiTuningService Operations API.
40
+ #
41
+ # @yield [config] Configure the Operations client.
42
+ # @yieldparam config [Operations::Configuration]
43
+ #
44
+ # @return [Operations::Configuration]
45
+ #
46
+ def self.configure
47
+ @configure ||= Operations::Configuration.new
48
+ yield @configure if block_given?
49
+ @configure
50
+ end
51
+
52
+ ##
53
+ # Configure the GenAiTuningService Operations instance.
54
+ #
55
+ # The configuration is set to the derived mode, meaning that values can be changed,
56
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
57
+ # should be made on {Operations.configure}.
58
+ #
59
+ # @yield [config] Configure the Operations client.
60
+ # @yieldparam config [Operations::Configuration]
61
+ #
62
+ # @return [Operations::Configuration]
63
+ #
64
+ def configure
65
+ yield @config if block_given?
66
+ @config
67
+ end
68
+
69
+ ##
70
+ # The effective universe domain
71
+ #
72
+ # @return [String]
73
+ #
74
+ def universe_domain
75
+ @operations_stub.universe_domain
76
+ end
77
+
78
+ ##
79
+ # Create a new Operations client object.
80
+ #
81
+ # @yield [config] Configure the Client client.
82
+ # @yieldparam config [Operations::Configuration]
83
+ #
84
+ def initialize
85
+ # Create the configuration object
86
+ @config = Configuration.new Operations.configure
87
+
88
+ # Yield the configuration if needed
89
+ yield @config if block_given?
90
+
91
+ # Create credentials
92
+ credentials = @config.credentials
93
+ credentials ||= Credentials.default scope: @config.scope
94
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
95
+ credentials = Credentials.new credentials, scope: @config.scope
96
+ end
97
+
98
+ @quota_project_id = @config.quota_project
99
+ @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
100
+
101
+ @operations_stub = OperationsServiceStub.new(
102
+ endpoint: @config.endpoint,
103
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
104
+ universe_domain: @config.universe_domain,
105
+ credentials: credentials
106
+ )
107
+
108
+ # Used by an LRO wrapper for some methods of this service
109
+ @operations_client = self
110
+ end
111
+
112
+ # Service calls
113
+
114
+ ##
115
+ # Lists operations that match the specified filter in the request. If the
116
+ # server doesn't support this method, it returns `UNIMPLEMENTED`.
117
+ #
118
+ # NOTE: the `name` binding allows API services to override the binding
119
+ # to use different resource name schemes, such as `users/*/operations`. To
120
+ # override the binding, API services can add a binding such as
121
+ # `"/v1/{name=users/*}/operations"` to their service configuration.
122
+ # For backwards compatibility, the default name includes the operations
123
+ # collection id, however overriding users must ensure the name binding
124
+ # is the parent resource, without the operations collection id.
125
+ #
126
+ # @overload list_operations(request, options = nil)
127
+ # Pass arguments to `list_operations` via a request object, either of type
128
+ # {::Google::Longrunning::ListOperationsRequest} or an equivalent Hash.
129
+ #
130
+ # @param request [::Google::Longrunning::ListOperationsRequest, ::Hash]
131
+ # A request object representing the call parameters. Required. To specify no
132
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
133
+ # @param options [::Gapic::CallOptions, ::Hash]
134
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
135
+ #
136
+ # @overload list_operations(name: nil, filter: nil, page_size: nil, page_token: nil)
137
+ # Pass arguments to `list_operations` via keyword arguments. Note that at
138
+ # least one keyword argument is required. To specify no parameters, or to keep all
139
+ # the default parameter values, pass an empty Hash as a request object (see above).
140
+ #
141
+ # @param name [::String]
142
+ # The name of the operation's parent resource.
143
+ # @param filter [::String]
144
+ # The standard list filter.
145
+ # @param page_size [::Integer]
146
+ # The standard list page size.
147
+ # @param page_token [::String]
148
+ # The standard list page token.
149
+ # @yield [result, operation] Access the result along with the TransportOperation object
150
+ # @yieldparam result [::Gapic::Operation]
151
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
152
+ #
153
+ # @return [::Gapic::Operation]
154
+ #
155
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
156
+ #
157
+ # @example Basic example
158
+ # require "google/longrunning"
159
+ #
160
+ # # Create a client object. The client can be reused for multiple calls.
161
+ # client = Google::Longrunning::Operations::Rest::Client.new
162
+ #
163
+ # # Create a request. To set request fields, pass in keyword arguments.
164
+ # request = Google::Longrunning::ListOperationsRequest.new
165
+ #
166
+ # # Call the list_operations method.
167
+ # result = client.list_operations request
168
+ #
169
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
170
+ # # over elements, and API calls will be issued to fetch pages as needed.
171
+ # result.each do |item|
172
+ # # Each element is of type ::Google::Longrunning::Operation.
173
+ # p item
174
+ # end
175
+ #
176
+ def list_operations request, options = nil
177
+ raise ::ArgumentError, "request must be provided" if request.nil?
178
+
179
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::ListOperationsRequest
180
+
181
+ # Converts hash and nil to an options object
182
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
183
+
184
+ # Customize the options with defaults
185
+ call_metadata = @config.rpcs.list_operations.metadata.to_h
186
+
187
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
188
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
189
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
190
+ gapic_version: ::Google::Cloud::AIPlatform::V1::VERSION,
191
+ transports_version_send: [:rest]
192
+
193
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
194
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
195
+
196
+ options.apply_defaults timeout: @config.rpcs.list_operations.timeout,
197
+ metadata: call_metadata,
198
+ retry_policy: @config.rpcs.list_operations.retry_policy
199
+
200
+ options.apply_defaults timeout: @config.timeout,
201
+ metadata: @config.metadata,
202
+ retry_policy: @config.retry_policy
203
+
204
+ @operations_stub.list_operations request, options do |result, operation|
205
+ result = ::Gapic::Rest::PagedEnumerable.new @operations_stub, :list_operations, "operations", request, result, options
206
+ yield result, operation if block_given?
207
+ return result
208
+ end
209
+ rescue ::Gapic::Rest::Error => e
210
+ raise ::Google::Cloud::Error.from_error(e)
211
+ end
212
+
213
+ ##
214
+ # Gets the latest state of a long-running operation. Clients can use this
215
+ # method to poll the operation result at intervals as recommended by the API
216
+ # service.
217
+ #
218
+ # @overload get_operation(request, options = nil)
219
+ # Pass arguments to `get_operation` via a request object, either of type
220
+ # {::Google::Longrunning::GetOperationRequest} or an equivalent Hash.
221
+ #
222
+ # @param request [::Google::Longrunning::GetOperationRequest, ::Hash]
223
+ # A request object representing the call parameters. Required. To specify no
224
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
225
+ # @param options [::Gapic::CallOptions, ::Hash]
226
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
227
+ #
228
+ # @overload get_operation(name: nil)
229
+ # Pass arguments to `get_operation` via keyword arguments. Note that at
230
+ # least one keyword argument is required. To specify no parameters, or to keep all
231
+ # the default parameter values, pass an empty Hash as a request object (see above).
232
+ #
233
+ # @param name [::String]
234
+ # The name of the operation resource.
235
+ # @yield [result, operation] Access the result along with the TransportOperation object
236
+ # @yieldparam result [::Gapic::Operation]
237
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
238
+ #
239
+ # @return [::Gapic::Operation]
240
+ #
241
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
242
+ #
243
+ # @example Basic example
244
+ # require "google/longrunning"
245
+ #
246
+ # # Create a client object. The client can be reused for multiple calls.
247
+ # client = Google::Longrunning::Operations::Rest::Client.new
248
+ #
249
+ # # Create a request. To set request fields, pass in keyword arguments.
250
+ # request = Google::Longrunning::GetOperationRequest.new
251
+ #
252
+ # # Call the get_operation method.
253
+ # result = client.get_operation request
254
+ #
255
+ # # The returned object is of type Gapic::Operation. You can use it to
256
+ # # check the status of an operation, cancel it, or wait for results.
257
+ # # Here is how to wait for a response.
258
+ # result.wait_until_done! timeout: 60
259
+ # if result.response?
260
+ # p result.response
261
+ # else
262
+ # puts "No response received."
263
+ # end
264
+ #
265
+ def get_operation request, options = nil
266
+ raise ::ArgumentError, "request must be provided" if request.nil?
267
+
268
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::GetOperationRequest
269
+
270
+ # Converts hash and nil to an options object
271
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
272
+
273
+ # Customize the options with defaults
274
+ call_metadata = @config.rpcs.get_operation.metadata.to_h
275
+
276
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
277
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
278
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
279
+ gapic_version: ::Google::Cloud::AIPlatform::V1::VERSION,
280
+ transports_version_send: [:rest]
281
+
282
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
283
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
284
+
285
+ options.apply_defaults timeout: @config.rpcs.get_operation.timeout,
286
+ metadata: call_metadata,
287
+ retry_policy: @config.rpcs.get_operation.retry_policy
288
+
289
+ options.apply_defaults timeout: @config.timeout,
290
+ metadata: @config.metadata,
291
+ retry_policy: @config.retry_policy
292
+
293
+ @operations_stub.get_operation request, options do |result, operation|
294
+ result = ::Gapic::Operation.new result, @operations_client, options: options
295
+ yield result, operation if block_given?
296
+ return result
297
+ end
298
+ rescue ::Gapic::Rest::Error => e
299
+ raise ::Google::Cloud::Error.from_error(e)
300
+ end
301
+
302
+ ##
303
+ # Deletes a long-running operation. This method indicates that the client is
304
+ # no longer interested in the operation result. It does not cancel the
305
+ # operation. If the server doesn't support this method, it returns
306
+ # `google.rpc.Code.UNIMPLEMENTED`.
307
+ #
308
+ # @overload delete_operation(request, options = nil)
309
+ # Pass arguments to `delete_operation` via a request object, either of type
310
+ # {::Google::Longrunning::DeleteOperationRequest} or an equivalent Hash.
311
+ #
312
+ # @param request [::Google::Longrunning::DeleteOperationRequest, ::Hash]
313
+ # A request object representing the call parameters. Required. To specify no
314
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
315
+ # @param options [::Gapic::CallOptions, ::Hash]
316
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
317
+ #
318
+ # @overload delete_operation(name: nil)
319
+ # Pass arguments to `delete_operation` via keyword arguments. Note that at
320
+ # least one keyword argument is required. To specify no parameters, or to keep all
321
+ # the default parameter values, pass an empty Hash as a request object (see above).
322
+ #
323
+ # @param name [::String]
324
+ # The name of the operation resource to be deleted.
325
+ # @yield [result, operation] Access the result along with the TransportOperation object
326
+ # @yieldparam result [::Google::Protobuf::Empty]
327
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
328
+ #
329
+ # @return [::Google::Protobuf::Empty]
330
+ #
331
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
332
+ #
333
+ # @example Basic example
334
+ # require "google/longrunning"
335
+ #
336
+ # # Create a client object. The client can be reused for multiple calls.
337
+ # client = Google::Longrunning::Operations::Rest::Client.new
338
+ #
339
+ # # Create a request. To set request fields, pass in keyword arguments.
340
+ # request = Google::Longrunning::DeleteOperationRequest.new
341
+ #
342
+ # # Call the delete_operation method.
343
+ # result = client.delete_operation request
344
+ #
345
+ # # The returned object is of type Google::Protobuf::Empty.
346
+ # p result
347
+ #
348
+ def delete_operation request, options = nil
349
+ raise ::ArgumentError, "request must be provided" if request.nil?
350
+
351
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::DeleteOperationRequest
352
+
353
+ # Converts hash and nil to an options object
354
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
355
+
356
+ # Customize the options with defaults
357
+ call_metadata = @config.rpcs.delete_operation.metadata.to_h
358
+
359
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
360
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
361
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
362
+ gapic_version: ::Google::Cloud::AIPlatform::V1::VERSION,
363
+ transports_version_send: [:rest]
364
+
365
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
366
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
367
+
368
+ options.apply_defaults timeout: @config.rpcs.delete_operation.timeout,
369
+ metadata: call_metadata,
370
+ retry_policy: @config.rpcs.delete_operation.retry_policy
371
+
372
+ options.apply_defaults timeout: @config.timeout,
373
+ metadata: @config.metadata,
374
+ retry_policy: @config.retry_policy
375
+
376
+ @operations_stub.delete_operation request, options do |result, operation|
377
+ yield result, operation if block_given?
378
+ return result
379
+ end
380
+ rescue ::Gapic::Rest::Error => e
381
+ raise ::Google::Cloud::Error.from_error(e)
382
+ end
383
+
384
+ ##
385
+ # Starts asynchronous cancellation on a long-running operation. The server
386
+ # makes a best effort to cancel the operation, but success is not
387
+ # guaranteed. If the server doesn't support this method, it returns
388
+ # `google.rpc.Code.UNIMPLEMENTED`. Clients can use
389
+ # Operations.GetOperation or
390
+ # other methods to check whether the cancellation succeeded or whether the
391
+ # operation completed despite cancellation. On successful cancellation,
392
+ # the operation is not deleted; instead, it becomes an operation with
393
+ # an {::Google::Longrunning::Operation#error Operation.error} value with a {::Google::Rpc::Status#code google.rpc.Status.code} of 1,
394
+ # corresponding to `Code.CANCELLED`.
395
+ #
396
+ # @overload cancel_operation(request, options = nil)
397
+ # Pass arguments to `cancel_operation` via a request object, either of type
398
+ # {::Google::Longrunning::CancelOperationRequest} or an equivalent Hash.
399
+ #
400
+ # @param request [::Google::Longrunning::CancelOperationRequest, ::Hash]
401
+ # A request object representing the call parameters. Required. To specify no
402
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
403
+ # @param options [::Gapic::CallOptions, ::Hash]
404
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
405
+ #
406
+ # @overload cancel_operation(name: nil)
407
+ # Pass arguments to `cancel_operation` via keyword arguments. Note that at
408
+ # least one keyword argument is required. To specify no parameters, or to keep all
409
+ # the default parameter values, pass an empty Hash as a request object (see above).
410
+ #
411
+ # @param name [::String]
412
+ # The name of the operation resource to be cancelled.
413
+ # @yield [result, operation] Access the result along with the TransportOperation object
414
+ # @yieldparam result [::Google::Protobuf::Empty]
415
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
416
+ #
417
+ # @return [::Google::Protobuf::Empty]
418
+ #
419
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
420
+ #
421
+ # @example Basic example
422
+ # require "google/longrunning"
423
+ #
424
+ # # Create a client object. The client can be reused for multiple calls.
425
+ # client = Google::Longrunning::Operations::Rest::Client.new
426
+ #
427
+ # # Create a request. To set request fields, pass in keyword arguments.
428
+ # request = Google::Longrunning::CancelOperationRequest.new
429
+ #
430
+ # # Call the cancel_operation method.
431
+ # result = client.cancel_operation request
432
+ #
433
+ # # The returned object is of type Google::Protobuf::Empty.
434
+ # p result
435
+ #
436
+ def cancel_operation request, options = nil
437
+ raise ::ArgumentError, "request must be provided" if request.nil?
438
+
439
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::CancelOperationRequest
440
+
441
+ # Converts hash and nil to an options object
442
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
443
+
444
+ # Customize the options with defaults
445
+ call_metadata = @config.rpcs.cancel_operation.metadata.to_h
446
+
447
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
448
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
449
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
450
+ gapic_version: ::Google::Cloud::AIPlatform::V1::VERSION,
451
+ transports_version_send: [:rest]
452
+
453
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
454
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
455
+
456
+ options.apply_defaults timeout: @config.rpcs.cancel_operation.timeout,
457
+ metadata: call_metadata,
458
+ retry_policy: @config.rpcs.cancel_operation.retry_policy
459
+
460
+ options.apply_defaults timeout: @config.timeout,
461
+ metadata: @config.metadata,
462
+ retry_policy: @config.retry_policy
463
+
464
+ @operations_stub.cancel_operation request, options do |result, operation|
465
+ yield result, operation if block_given?
466
+ return result
467
+ end
468
+ rescue ::Gapic::Rest::Error => e
469
+ raise ::Google::Cloud::Error.from_error(e)
470
+ end
471
+
472
+ ##
473
+ # Waits until the specified long-running operation is done or reaches at most
474
+ # a specified timeout, returning the latest state. If the operation is
475
+ # already done, the latest state is immediately returned. If the timeout
476
+ # specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
477
+ # timeout is used. If the server does not support this method, it returns
478
+ # `google.rpc.Code.UNIMPLEMENTED`.
479
+ # Note that this method is on a best-effort basis. It may return the latest
480
+ # state before the specified timeout (including immediately), meaning even an
481
+ # immediate response is no guarantee that the operation is done.
482
+ #
483
+ # @overload wait_operation(request, options = nil)
484
+ # Pass arguments to `wait_operation` via a request object, either of type
485
+ # {::Google::Longrunning::WaitOperationRequest} or an equivalent Hash.
486
+ #
487
+ # @param request [::Google::Longrunning::WaitOperationRequest, ::Hash]
488
+ # A request object representing the call parameters. Required. To specify no
489
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
490
+ # @param options [::Gapic::CallOptions, ::Hash]
491
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
492
+ #
493
+ # @overload wait_operation(name: nil, timeout: nil)
494
+ # Pass arguments to `wait_operation` via keyword arguments. Note that at
495
+ # least one keyword argument is required. To specify no parameters, or to keep all
496
+ # the default parameter values, pass an empty Hash as a request object (see above).
497
+ #
498
+ # @param name [::String]
499
+ # The name of the operation resource to wait on.
500
+ # @param timeout [::Google::Protobuf::Duration, ::Hash]
501
+ # The maximum duration to wait before timing out. If left blank, the wait
502
+ # will be at most the time permitted by the underlying HTTP/RPC protocol.
503
+ # If RPC context deadline is also specified, the shorter one will be used.
504
+ # @yield [result, operation] Access the result along with the TransportOperation object
505
+ # @yieldparam result [::Gapic::Operation]
506
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
507
+ #
508
+ # @return [::Gapic::Operation]
509
+ #
510
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
511
+ #
512
+ # @example Basic example
513
+ # require "google/longrunning"
514
+ #
515
+ # # Create a client object. The client can be reused for multiple calls.
516
+ # client = Google::Longrunning::Operations::Rest::Client.new
517
+ #
518
+ # # Create a request. To set request fields, pass in keyword arguments.
519
+ # request = Google::Longrunning::WaitOperationRequest.new
520
+ #
521
+ # # Call the wait_operation method.
522
+ # result = client.wait_operation request
523
+ #
524
+ # # The returned object is of type Gapic::Operation. You can use it to
525
+ # # check the status of an operation, cancel it, or wait for results.
526
+ # # Here is how to wait for a response.
527
+ # result.wait_until_done! timeout: 60
528
+ # if result.response?
529
+ # p result.response
530
+ # else
531
+ # puts "No response received."
532
+ # end
533
+ #
534
+ def wait_operation request, options = nil
535
+ raise ::ArgumentError, "request must be provided" if request.nil?
536
+
537
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::WaitOperationRequest
538
+
539
+ # Converts hash and nil to an options object
540
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
541
+
542
+ # Customize the options with defaults
543
+ call_metadata = @config.rpcs.wait_operation.metadata.to_h
544
+
545
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
546
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
547
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
548
+ gapic_version: ::Google::Cloud::AIPlatform::V1::VERSION,
549
+ transports_version_send: [:rest]
550
+
551
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
552
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
553
+
554
+ options.apply_defaults timeout: @config.rpcs.wait_operation.timeout,
555
+ metadata: call_metadata,
556
+ retry_policy: @config.rpcs.wait_operation.retry_policy
557
+
558
+ options.apply_defaults timeout: @config.timeout,
559
+ metadata: @config.metadata,
560
+ retry_policy: @config.retry_policy
561
+
562
+ @operations_stub.wait_operation request, options do |result, operation|
563
+ result = ::Gapic::Operation.new result, @operations_client, options: options
564
+ yield result, operation if block_given?
565
+ return result
566
+ end
567
+ rescue ::Gapic::Rest::Error => e
568
+ raise ::Google::Cloud::Error.from_error(e)
569
+ end
570
+
571
+ ##
572
+ # Configuration class for the Operations REST API.
573
+ #
574
+ # This class represents the configuration for Operations REST,
575
+ # providing control over timeouts, retry behavior, logging, transport
576
+ # parameters, and other low-level controls. Certain parameters can also be
577
+ # applied individually to specific RPCs. See
578
+ # {::Google::Longrunning::Operations::Rest::Client::Configuration::Rpcs}
579
+ # for a list of RPCs that can be configured independently.
580
+ #
581
+ # Configuration can be applied globally to all clients, or to a single client
582
+ # on construction.
583
+ #
584
+ # @example
585
+ #
586
+ # # Modify the global config, setting the timeout for
587
+ # # list_operations to 20 seconds,
588
+ # # and all remaining timeouts to 10 seconds.
589
+ # ::Google::Longrunning::Operations::Rest::Client.configure do |config|
590
+ # config.timeout = 10.0
591
+ # config.rpcs.list_operations.timeout = 20.0
592
+ # end
593
+ #
594
+ # # Apply the above configuration only to a new client.
595
+ # client = ::Google::Longrunning::Operations::Rest::Client.new do |config|
596
+ # config.timeout = 10.0
597
+ # config.rpcs.list_operations.timeout = 20.0
598
+ # end
599
+ #
600
+ # @!attribute [rw] endpoint
601
+ # A custom service endpoint, as a hostname or hostname:port. The default is
602
+ # nil, indicating to use the default endpoint in the current universe domain.
603
+ # @return [::String,nil]
604
+ # @!attribute [rw] credentials
605
+ # Credentials to send with calls. You may provide any of the following types:
606
+ # * (`String`) The path to a service account key file in JSON format
607
+ # * (`Hash`) A service account key as a Hash
608
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
609
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
610
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
611
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
612
+ # * (`nil`) indicating no credentials
613
+ # @return [::Object]
614
+ # @!attribute [rw] scope
615
+ # The OAuth scopes
616
+ # @return [::Array<::String>]
617
+ # @!attribute [rw] lib_name
618
+ # The library name as recorded in instrumentation and logging
619
+ # @return [::String]
620
+ # @!attribute [rw] lib_version
621
+ # The library version as recorded in instrumentation and logging
622
+ # @return [::String]
623
+ # @!attribute [rw] timeout
624
+ # The call timeout in seconds.
625
+ # @return [::Numeric]
626
+ # @!attribute [rw] metadata
627
+ # Additional headers to be sent with the call.
628
+ # @return [::Hash{::Symbol=>::String}]
629
+ # @!attribute [rw] retry_policy
630
+ # The retry policy. The value is a hash with the following keys:
631
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
632
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
633
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
634
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
635
+ # trigger a retry.
636
+ # @return [::Hash]
637
+ # @!attribute [rw] quota_project
638
+ # A separate project against which to charge quota.
639
+ # @return [::String]
640
+ # @!attribute [rw] universe_domain
641
+ # The universe domain within which to make requests. This determines the
642
+ # default endpoint URL. The default value of nil uses the environment
643
+ # universe (usually the default "googleapis.com" universe).
644
+ # @return [::String,nil]
645
+ #
646
+ class Configuration
647
+ extend ::Gapic::Config
648
+
649
+ # @private
650
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
651
+ DEFAULT_ENDPOINT = "aiplatform.googleapis.com"
652
+
653
+ config_attr :endpoint, nil, ::String, nil
654
+ config_attr :credentials, nil do |value|
655
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
656
+ allowed.any? { |klass| klass === value }
657
+ end
658
+ config_attr :scope, nil, ::String, ::Array, nil
659
+ config_attr :lib_name, nil, ::String, nil
660
+ config_attr :lib_version, nil, ::String, nil
661
+ config_attr :timeout, nil, ::Numeric, nil
662
+ config_attr :metadata, nil, ::Hash, nil
663
+ config_attr :retry_policy, nil, ::Hash, ::Proc, nil
664
+ config_attr :quota_project, nil, ::String, nil
665
+ config_attr :universe_domain, nil, ::String, nil
666
+
667
+ # @private
668
+ def initialize parent_config = nil
669
+ @parent_config = parent_config unless parent_config.nil?
670
+
671
+ yield self if block_given?
672
+ end
673
+
674
+ ##
675
+ # Configurations for individual RPCs
676
+ # @return [Rpcs]
677
+ #
678
+ def rpcs
679
+ @rpcs ||= begin
680
+ parent_rpcs = nil
681
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
682
+ Rpcs.new parent_rpcs
683
+ end
684
+ end
685
+
686
+ ##
687
+ # Configuration RPC class for the Operations API.
688
+ #
689
+ # Includes fields providing the configuration for each RPC in this service.
690
+ # Each configuration object is of type `Gapic::Config::Method` and includes
691
+ # the following configuration fields:
692
+ #
693
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
694
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers
695
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
696
+ # include the following keys:
697
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
698
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
699
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
700
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
701
+ # trigger a retry.
702
+ #
703
+ class Rpcs
704
+ ##
705
+ # RPC-specific configuration for `list_operations`
706
+ # @return [::Gapic::Config::Method]
707
+ #
708
+ attr_reader :list_operations
709
+ ##
710
+ # RPC-specific configuration for `get_operation`
711
+ # @return [::Gapic::Config::Method]
712
+ #
713
+ attr_reader :get_operation
714
+ ##
715
+ # RPC-specific configuration for `delete_operation`
716
+ # @return [::Gapic::Config::Method]
717
+ #
718
+ attr_reader :delete_operation
719
+ ##
720
+ # RPC-specific configuration for `cancel_operation`
721
+ # @return [::Gapic::Config::Method]
722
+ #
723
+ attr_reader :cancel_operation
724
+ ##
725
+ # RPC-specific configuration for `wait_operation`
726
+ # @return [::Gapic::Config::Method]
727
+ #
728
+ attr_reader :wait_operation
729
+
730
+ # @private
731
+ def initialize parent_rpcs = nil
732
+ list_operations_config = parent_rpcs.list_operations if parent_rpcs.respond_to? :list_operations
733
+ @list_operations = ::Gapic::Config::Method.new list_operations_config
734
+ get_operation_config = parent_rpcs.get_operation if parent_rpcs.respond_to? :get_operation
735
+ @get_operation = ::Gapic::Config::Method.new get_operation_config
736
+ delete_operation_config = parent_rpcs.delete_operation if parent_rpcs.respond_to? :delete_operation
737
+ @delete_operation = ::Gapic::Config::Method.new delete_operation_config
738
+ cancel_operation_config = parent_rpcs.cancel_operation if parent_rpcs.respond_to? :cancel_operation
739
+ @cancel_operation = ::Gapic::Config::Method.new cancel_operation_config
740
+ wait_operation_config = parent_rpcs.wait_operation if parent_rpcs.respond_to? :wait_operation
741
+ @wait_operation = ::Gapic::Config::Method.new wait_operation_config
742
+
743
+ yield self if block_given?
744
+ end
745
+ end
746
+ end
747
+ end
748
+
749
+ ##
750
+ # @private
751
+ # REST service stub for the Longrunning Operations API.
752
+ # Service stub contains baseline method implementations
753
+ # including transcoding, making the REST call, and deserialing the response.
754
+ class OperationsServiceStub
755
+ def initialize endpoint:, endpoint_template:, universe_domain:, credentials:
756
+ # These require statements are intentionally placed here to initialize
757
+ # the REST modules only when it's required.
758
+ require "gapic/rest"
759
+
760
+ @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint,
761
+ endpoint_template: endpoint_template,
762
+ universe_domain: universe_domain,
763
+ credentials: credentials
764
+ end
765
+
766
+ ##
767
+ # Baseline implementation for the list_operations REST call
768
+ #
769
+ # @param request_pb [::Google::Longrunning::ListOperationsRequest]
770
+ # A request object representing the call parameters. Required.
771
+ # @param options [::Gapic::CallOptions]
772
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
773
+ #
774
+ # @yield [result, operation] Access the result along with the TransportOperation object
775
+ # @yieldparam result [::Google::Longrunning::ListOperationsResponse]
776
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
777
+ #
778
+ # @return [::Google::Longrunning::ListOperationsResponse]
779
+ # A result object deserialized from the server's reply
780
+ def list_operations request_pb, options = nil
781
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
782
+
783
+ verb, uri, query_string_params, body = OperationsServiceStub.transcode_list_operations_request request_pb
784
+ query_string_params = if query_string_params.any?
785
+ query_string_params.to_h { |p| p.split "=", 2 }
786
+ else
787
+ {}
788
+ end
789
+
790
+ response = @client_stub.make_http_request(
791
+ verb,
792
+ uri: uri,
793
+ body: body || "",
794
+ params: query_string_params,
795
+ options: options
796
+ )
797
+ operation = ::Gapic::Rest::TransportOperation.new response
798
+ result = ::Google::Longrunning::ListOperationsResponse.decode_json response.body, ignore_unknown_fields: true
799
+
800
+ yield result, operation if block_given?
801
+ result
802
+ end
803
+
804
+ ##
805
+ # Baseline implementation for the get_operation REST call
806
+ #
807
+ # @param request_pb [::Google::Longrunning::GetOperationRequest]
808
+ # A request object representing the call parameters. Required.
809
+ # @param options [::Gapic::CallOptions]
810
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
811
+ #
812
+ # @yield [result, operation] Access the result along with the TransportOperation object
813
+ # @yieldparam result [::Google::Longrunning::Operation]
814
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
815
+ #
816
+ # @return [::Google::Longrunning::Operation]
817
+ # A result object deserialized from the server's reply
818
+ def get_operation request_pb, options = nil
819
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
820
+
821
+ verb, uri, query_string_params, body = OperationsServiceStub.transcode_get_operation_request request_pb
822
+ query_string_params = if query_string_params.any?
823
+ query_string_params.to_h { |p| p.split "=", 2 }
824
+ else
825
+ {}
826
+ end
827
+
828
+ response = @client_stub.make_http_request(
829
+ verb,
830
+ uri: uri,
831
+ body: body || "",
832
+ params: query_string_params,
833
+ options: options
834
+ )
835
+ operation = ::Gapic::Rest::TransportOperation.new response
836
+ result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true
837
+
838
+ yield result, operation if block_given?
839
+ result
840
+ end
841
+
842
+ ##
843
+ # Baseline implementation for the delete_operation REST call
844
+ #
845
+ # @param request_pb [::Google::Longrunning::DeleteOperationRequest]
846
+ # A request object representing the call parameters. Required.
847
+ # @param options [::Gapic::CallOptions]
848
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
849
+ #
850
+ # @yield [result, operation] Access the result along with the TransportOperation object
851
+ # @yieldparam result [::Google::Protobuf::Empty]
852
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
853
+ #
854
+ # @return [::Google::Protobuf::Empty]
855
+ # A result object deserialized from the server's reply
856
+ def delete_operation request_pb, options = nil
857
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
858
+
859
+ verb, uri, query_string_params, body = OperationsServiceStub.transcode_delete_operation_request request_pb
860
+ query_string_params = if query_string_params.any?
861
+ query_string_params.to_h { |p| p.split "=", 2 }
862
+ else
863
+ {}
864
+ end
865
+
866
+ response = @client_stub.make_http_request(
867
+ verb,
868
+ uri: uri,
869
+ body: body || "",
870
+ params: query_string_params,
871
+ options: options
872
+ )
873
+ operation = ::Gapic::Rest::TransportOperation.new response
874
+ result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true
875
+
876
+ yield result, operation if block_given?
877
+ result
878
+ end
879
+
880
+ ##
881
+ # Baseline implementation for the cancel_operation REST call
882
+ #
883
+ # @param request_pb [::Google::Longrunning::CancelOperationRequest]
884
+ # A request object representing the call parameters. Required.
885
+ # @param options [::Gapic::CallOptions]
886
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
887
+ #
888
+ # @yield [result, operation] Access the result along with the TransportOperation object
889
+ # @yieldparam result [::Google::Protobuf::Empty]
890
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
891
+ #
892
+ # @return [::Google::Protobuf::Empty]
893
+ # A result object deserialized from the server's reply
894
+ def cancel_operation request_pb, options = nil
895
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
896
+
897
+ verb, uri, query_string_params, body = OperationsServiceStub.transcode_cancel_operation_request request_pb
898
+ query_string_params = if query_string_params.any?
899
+ query_string_params.to_h { |p| p.split "=", 2 }
900
+ else
901
+ {}
902
+ end
903
+
904
+ response = @client_stub.make_http_request(
905
+ verb,
906
+ uri: uri,
907
+ body: body || "",
908
+ params: query_string_params,
909
+ options: options
910
+ )
911
+ operation = ::Gapic::Rest::TransportOperation.new response
912
+ result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true
913
+
914
+ yield result, operation if block_given?
915
+ result
916
+ end
917
+
918
+ ##
919
+ # Baseline implementation for the wait_operation REST call
920
+ #
921
+ # @param request_pb [::Google::Longrunning::WaitOperationRequest]
922
+ # A request object representing the call parameters. Required.
923
+ # @param options [::Gapic::CallOptions]
924
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
925
+ #
926
+ # @yield [result, operation] Access the result along with the TransportOperation object
927
+ # @yieldparam result [::Google::Longrunning::Operation]
928
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
929
+ #
930
+ # @return [::Google::Longrunning::Operation]
931
+ # A result object deserialized from the server's reply
932
+ def wait_operation request_pb, options = nil
933
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
934
+
935
+ verb, uri, query_string_params, body = OperationsServiceStub.transcode_wait_operation_request request_pb
936
+ query_string_params = if query_string_params.any?
937
+ query_string_params.to_h { |p| p.split "=", 2 }
938
+ else
939
+ {}
940
+ end
941
+
942
+ response = @client_stub.make_http_request(
943
+ verb,
944
+ uri: uri,
945
+ body: body || "",
946
+ params: query_string_params,
947
+ options: options
948
+ )
949
+ operation = ::Gapic::Rest::TransportOperation.new response
950
+ result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true
951
+
952
+ yield result, operation if block_given?
953
+ result
954
+ end
955
+
956
+ ##
957
+ # @private
958
+ #
959
+ # GRPC transcoding helper method for the list_operations REST call
960
+ #
961
+ # @param request_pb [::Google::Longrunning::ListOperationsRequest]
962
+ # A request object representing the call parameters. Required.
963
+ # @return [Array(String, [String, nil], Hash{String => String})]
964
+ # Uri, Body, Query string parameters
965
+ def self.transcode_list_operations_request request_pb
966
+ transcoder = Gapic::Rest::GrpcTranscoder.new
967
+ .with_bindings(
968
+ uri_method: :get,
969
+ uri_template: "/ui/{name}/operations",
970
+ matches: [
971
+ ["name", %r{^projects/[^/]+/locations/[^/]+/?$}, false]
972
+ ]
973
+ )
974
+ .with_bindings(
975
+ uri_method: :get,
976
+ uri_template: "/ui/{name}/operations",
977
+ matches: [
978
+ ["name", %r{^projects/[^/]+/locations/[^/]+/agents/[^/]+/?$}, false]
979
+ ]
980
+ )
981
+ .with_bindings(
982
+ uri_method: :get,
983
+ uri_template: "/ui/{name}/operations",
984
+ matches: [
985
+ ["name", %r{^projects/[^/]+/locations/[^/]+/apps/[^/]+/?$}, false]
986
+ ]
987
+ )
988
+ .with_bindings(
989
+ uri_method: :get,
990
+ uri_template: "/ui/{name}/operations",
991
+ matches: [
992
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/?$}, false]
993
+ ]
994
+ )
995
+ .with_bindings(
996
+ uri_method: :get,
997
+ uri_template: "/ui/{name}/operations",
998
+ matches: [
999
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/?$}, false]
1000
+ ]
1001
+ )
1002
+ .with_bindings(
1003
+ uri_method: :get,
1004
+ uri_template: "/ui/{name}/operations",
1005
+ matches: [
1006
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/savedQueries/[^/]+/?$}, false]
1007
+ ]
1008
+ )
1009
+ .with_bindings(
1010
+ uri_method: :get,
1011
+ uri_template: "/ui/{name}/operations",
1012
+ matches: [
1013
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationSpecs/[^/]+/?$}, false]
1014
+ ]
1015
+ )
1016
+ .with_bindings(
1017
+ uri_method: :get,
1018
+ uri_template: "/ui/{name}/operations",
1019
+ matches: [
1020
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/annotations/[^/]+/?$}, false]
1021
+ ]
1022
+ )
1023
+ .with_bindings(
1024
+ uri_method: :get,
1025
+ uri_template: "/ui/{name}/operations",
1026
+ matches: [
1027
+ ["name", %r{^projects/[^/]+/locations/[^/]+/deploymentResourcePools/[^/]+/?$}, false]
1028
+ ]
1029
+ )
1030
+ .with_bindings(
1031
+ uri_method: :get,
1032
+ uri_template: "/ui/{name}/operations",
1033
+ matches: [
1034
+ ["name", %r{^projects/[^/]+/locations/[^/]+/edgeDevices/[^/]+/?$}, false]
1035
+ ]
1036
+ )
1037
+ .with_bindings(
1038
+ uri_method: :get,
1039
+ uri_template: "/ui/{name}/operations",
1040
+ matches: [
1041
+ ["name", %r{^projects/[^/]+/locations/[^/]+/endpoints/[^/]+/?$}, false]
1042
+ ]
1043
+ )
1044
+ .with_bindings(
1045
+ uri_method: :get,
1046
+ uri_template: "/ui/{name}/operations",
1047
+ matches: [
1048
+ ["name", %r{^projects/[^/]+/locations/[^/]+/extensionControllers/[^/]+/?$}, false]
1049
+ ]
1050
+ )
1051
+ .with_bindings(
1052
+ uri_method: :get,
1053
+ uri_template: "/ui/{name}/operations",
1054
+ matches: [
1055
+ ["name", %r{^projects/[^/]+/locations/[^/]+/extensions/[^/]+/?$}, false]
1056
+ ]
1057
+ )
1058
+ .with_bindings(
1059
+ uri_method: :get,
1060
+ uri_template: "/ui/{name}/operations",
1061
+ matches: [
1062
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/?$}, false]
1063
+ ]
1064
+ )
1065
+ .with_bindings(
1066
+ uri_method: :get,
1067
+ uri_template: "/ui/{name}/operations",
1068
+ matches: [
1069
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/?$}, false]
1070
+ ]
1071
+ )
1072
+ .with_bindings(
1073
+ uri_method: :get,
1074
+ uri_template: "/ui/{name}/operations",
1075
+ matches: [
1076
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/features/[^/]+/?$}, false]
1077
+ ]
1078
+ )
1079
+ .with_bindings(
1080
+ uri_method: :get,
1081
+ uri_template: "/ui/{name}/operations",
1082
+ matches: [
1083
+ ["name", %r{^projects/[^/]+/locations/[^/]+/customJobs/[^/]+/?$}, false]
1084
+ ]
1085
+ )
1086
+ .with_bindings(
1087
+ uri_method: :get,
1088
+ uri_template: "/ui/{name}/operations",
1089
+ matches: [
1090
+ ["name", %r{^projects/[^/]+/locations/[^/]+/dataLabelingJobs/[^/]+/?$}, false]
1091
+ ]
1092
+ )
1093
+ .with_bindings(
1094
+ uri_method: :get,
1095
+ uri_template: "/ui/{name}/operations",
1096
+ matches: [
1097
+ ["name", %r{^projects/[^/]+/locations/[^/]+/hyperparameterTuningJobs/[^/]+/?$}, false]
1098
+ ]
1099
+ )
1100
+ .with_bindings(
1101
+ uri_method: :get,
1102
+ uri_template: "/ui/{name}/operations",
1103
+ matches: [
1104
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tuningJobs/[^/]+/?$}, false]
1105
+ ]
1106
+ )
1107
+ .with_bindings(
1108
+ uri_method: :get,
1109
+ uri_template: "/ui/{name}/operations",
1110
+ matches: [
1111
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexes/[^/]+/?$}, false]
1112
+ ]
1113
+ )
1114
+ .with_bindings(
1115
+ uri_method: :get,
1116
+ uri_template: "/ui/{name}/operations",
1117
+ matches: [
1118
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexEndpoints/[^/]+/?$}, false]
1119
+ ]
1120
+ )
1121
+ .with_bindings(
1122
+ uri_method: :get,
1123
+ uri_template: "/ui/{name}/operations",
1124
+ matches: [
1125
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/?$}, false]
1126
+ ]
1127
+ )
1128
+ .with_bindings(
1129
+ uri_method: :get,
1130
+ uri_template: "/ui/{name}/operations",
1131
+ matches: [
1132
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/?$}, false]
1133
+ ]
1134
+ )
1135
+ .with_bindings(
1136
+ uri_method: :get,
1137
+ uri_template: "/ui/{name}/operations",
1138
+ matches: [
1139
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/?$}, false]
1140
+ ]
1141
+ )
1142
+ .with_bindings(
1143
+ uri_method: :get,
1144
+ uri_template: "/ui/{name}/operations",
1145
+ matches: [
1146
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/?$}, false]
1147
+ ]
1148
+ )
1149
+ .with_bindings(
1150
+ uri_method: :get,
1151
+ uri_template: "/ui/{name}/operations",
1152
+ matches: [
1153
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelDeploymentMonitoringJobs/[^/]+/?$}, false]
1154
+ ]
1155
+ )
1156
+ .with_bindings(
1157
+ uri_method: :get,
1158
+ uri_template: "/ui/{name}/operations",
1159
+ matches: [
1160
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelMonitors/[^/]+/?$}, false]
1161
+ ]
1162
+ )
1163
+ .with_bindings(
1164
+ uri_method: :get,
1165
+ uri_template: "/ui/{name}/operations",
1166
+ matches: [
1167
+ ["name", %r{^projects/[^/]+/locations/[^/]+/migratableResources/[^/]+/?$}, false]
1168
+ ]
1169
+ )
1170
+ .with_bindings(
1171
+ uri_method: :get,
1172
+ uri_template: "/ui/{name}/operations",
1173
+ matches: [
1174
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/?$}, false]
1175
+ ]
1176
+ )
1177
+ .with_bindings(
1178
+ uri_method: :get,
1179
+ uri_template: "/ui/{name}/operations",
1180
+ matches: [
1181
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/evaluations/[^/]+/?$}, false]
1182
+ ]
1183
+ )
1184
+ .with_bindings(
1185
+ uri_method: :get,
1186
+ uri_template: "/ui/{name}/operations",
1187
+ matches: [
1188
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookExecutionJobs/[^/]+/?$}, false]
1189
+ ]
1190
+ )
1191
+ .with_bindings(
1192
+ uri_method: :get,
1193
+ uri_template: "/ui/{name}/operations",
1194
+ matches: [
1195
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimes/[^/]+/?$}, false]
1196
+ ]
1197
+ )
1198
+ .with_bindings(
1199
+ uri_method: :get,
1200
+ uri_template: "/ui/{name}/operations",
1201
+ matches: [
1202
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimeTemplates/[^/]+/?$}, false]
1203
+ ]
1204
+ )
1205
+ .with_bindings(
1206
+ uri_method: :get,
1207
+ uri_template: "/ui/{name}/operations",
1208
+ matches: [
1209
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/?$}, false]
1210
+ ]
1211
+ )
1212
+ .with_bindings(
1213
+ uri_method: :get,
1214
+ uri_template: "/ui/{name}/operations",
1215
+ matches: [
1216
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/trials/[^/]+/?$}, false]
1217
+ ]
1218
+ )
1219
+ .with_bindings(
1220
+ uri_method: :get,
1221
+ uri_template: "/ui/{name}/operations",
1222
+ matches: [
1223
+ ["name", %r{^projects/[^/]+/locations/[^/]+/trainingPipelines/[^/]+/?$}, false]
1224
+ ]
1225
+ )
1226
+ .with_bindings(
1227
+ uri_method: :get,
1228
+ uri_template: "/ui/{name}/operations",
1229
+ matches: [
1230
+ ["name", %r{^projects/[^/]+/locations/[^/]+/persistentResources/[^/]+/?$}, false]
1231
+ ]
1232
+ )
1233
+ .with_bindings(
1234
+ uri_method: :get,
1235
+ uri_template: "/ui/{name}/operations",
1236
+ matches: [
1237
+ ["name", %r{^projects/[^/]+/locations/[^/]+/pipelineJobs/[^/]+/?$}, false]
1238
+ ]
1239
+ )
1240
+ .with_bindings(
1241
+ uri_method: :get,
1242
+ uri_template: "/ui/{name}/operations",
1243
+ matches: [
1244
+ ["name", %r{^projects/[^/]+/locations/[^/]+/schedules/[^/]+/?$}, false]
1245
+ ]
1246
+ )
1247
+ .with_bindings(
1248
+ uri_method: :get,
1249
+ uri_template: "/ui/{name}/operations",
1250
+ matches: [
1251
+ ["name", %r{^projects/[^/]+/locations/[^/]+/specialistPools/[^/]+/?$}, false]
1252
+ ]
1253
+ )
1254
+ .with_bindings(
1255
+ uri_method: :get,
1256
+ uri_template: "/ui/{name}/operations",
1257
+ matches: [
1258
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/?$}, false]
1259
+ ]
1260
+ )
1261
+ .with_bindings(
1262
+ uri_method: :get,
1263
+ uri_template: "/ui/{name}/operations",
1264
+ matches: [
1265
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/?$}, false]
1266
+ ]
1267
+ )
1268
+ .with_bindings(
1269
+ uri_method: :get,
1270
+ uri_template: "/ui/{name}/operations",
1271
+ matches: [
1272
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/?$}, false]
1273
+ ]
1274
+ )
1275
+ .with_bindings(
1276
+ uri_method: :get,
1277
+ uri_template: "/ui/{name}/operations",
1278
+ matches: [
1279
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/timeSeries/[^/]+/?$}, false]
1280
+ ]
1281
+ )
1282
+ .with_bindings(
1283
+ uri_method: :get,
1284
+ uri_template: "/ui/{name}:wait",
1285
+ matches: [
1286
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/operations/[^/]+/?$}, false]
1287
+ ]
1288
+ )
1289
+ .with_bindings(
1290
+ uri_method: :get,
1291
+ uri_template: "/ui/{name}:wait",
1292
+ matches: [
1293
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/featureViews/[^/]+/operations/[^/]+/?$}, false]
1294
+ ]
1295
+ )
1296
+ .with_bindings(
1297
+ uri_method: :get,
1298
+ uri_template: "/ui/{name}:wait",
1299
+ matches: [
1300
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/operations/[^/]+/?$}, false]
1301
+ ]
1302
+ )
1303
+ .with_bindings(
1304
+ uri_method: :get,
1305
+ uri_template: "/ui/{name}:wait",
1306
+ matches: [
1307
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
1308
+ ]
1309
+ )
1310
+ .with_bindings(
1311
+ uri_method: :get,
1312
+ uri_template: "/v1/{name}/operations",
1313
+ matches: [
1314
+ ["name", %r{^projects/[^/]+/locations/[^/]+/?$}, false]
1315
+ ]
1316
+ )
1317
+ .with_bindings(
1318
+ uri_method: :get,
1319
+ uri_template: "/v1/{name}/operations",
1320
+ matches: [
1321
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/?$}, false]
1322
+ ]
1323
+ )
1324
+ .with_bindings(
1325
+ uri_method: :get,
1326
+ uri_template: "/v1/{name}/operations",
1327
+ matches: [
1328
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/?$}, false]
1329
+ ]
1330
+ )
1331
+ .with_bindings(
1332
+ uri_method: :get,
1333
+ uri_template: "/v1/{name}/operations",
1334
+ matches: [
1335
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/savedQueries/[^/]+/?$}, false]
1336
+ ]
1337
+ )
1338
+ .with_bindings(
1339
+ uri_method: :get,
1340
+ uri_template: "/v1/{name}/operations",
1341
+ matches: [
1342
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationSpecs/[^/]+/?$}, false]
1343
+ ]
1344
+ )
1345
+ .with_bindings(
1346
+ uri_method: :get,
1347
+ uri_template: "/v1/{name}/operations",
1348
+ matches: [
1349
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/annotations/[^/]+/?$}, false]
1350
+ ]
1351
+ )
1352
+ .with_bindings(
1353
+ uri_method: :get,
1354
+ uri_template: "/v1/{name}/operations",
1355
+ matches: [
1356
+ ["name", %r{^projects/[^/]+/locations/[^/]+/deploymentResourcePools/[^/]+/?$}, false]
1357
+ ]
1358
+ )
1359
+ .with_bindings(
1360
+ uri_method: :get,
1361
+ uri_template: "/v1/{name}/operations",
1362
+ matches: [
1363
+ ["name", %r{^projects/[^/]+/locations/[^/]+/endpoints/[^/]+/?$}, false]
1364
+ ]
1365
+ )
1366
+ .with_bindings(
1367
+ uri_method: :get,
1368
+ uri_template: "/v1/{name}/operations",
1369
+ matches: [
1370
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/?$}, false]
1371
+ ]
1372
+ )
1373
+ .with_bindings(
1374
+ uri_method: :get,
1375
+ uri_template: "/v1/{name}/operations",
1376
+ matches: [
1377
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/?$}, false]
1378
+ ]
1379
+ )
1380
+ .with_bindings(
1381
+ uri_method: :get,
1382
+ uri_template: "/v1/{name}/operations",
1383
+ matches: [
1384
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/features/[^/]+/?$}, false]
1385
+ ]
1386
+ )
1387
+ .with_bindings(
1388
+ uri_method: :get,
1389
+ uri_template: "/v1/{name}/operations",
1390
+ matches: [
1391
+ ["name", %r{^projects/[^/]+/locations/[^/]+/customJobs/[^/]+/?$}, false]
1392
+ ]
1393
+ )
1394
+ .with_bindings(
1395
+ uri_method: :get,
1396
+ uri_template: "/v1/{name}/operations",
1397
+ matches: [
1398
+ ["name", %r{^projects/[^/]+/locations/[^/]+/dataLabelingJobs/[^/]+/?$}, false]
1399
+ ]
1400
+ )
1401
+ .with_bindings(
1402
+ uri_method: :get,
1403
+ uri_template: "/v1/{name}/operations",
1404
+ matches: [
1405
+ ["name", %r{^projects/[^/]+/locations/[^/]+/hyperparameterTuningJobs/[^/]+/?$}, false]
1406
+ ]
1407
+ )
1408
+ .with_bindings(
1409
+ uri_method: :get,
1410
+ uri_template: "/v1/{name}/operations",
1411
+ matches: [
1412
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tuningJobs/[^/]+/?$}, false]
1413
+ ]
1414
+ )
1415
+ .with_bindings(
1416
+ uri_method: :get,
1417
+ uri_template: "/v1/{name}/operations",
1418
+ matches: [
1419
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexes/[^/]+/?$}, false]
1420
+ ]
1421
+ )
1422
+ .with_bindings(
1423
+ uri_method: :get,
1424
+ uri_template: "/v1/{name}/operations",
1425
+ matches: [
1426
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexEndpoints/[^/]+/?$}, false]
1427
+ ]
1428
+ )
1429
+ .with_bindings(
1430
+ uri_method: :get,
1431
+ uri_template: "/v1/{name}/operations",
1432
+ matches: [
1433
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/?$}, false]
1434
+ ]
1435
+ )
1436
+ .with_bindings(
1437
+ uri_method: :get,
1438
+ uri_template: "/v1/{name}/operations",
1439
+ matches: [
1440
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/?$}, false]
1441
+ ]
1442
+ )
1443
+ .with_bindings(
1444
+ uri_method: :get,
1445
+ uri_template: "/v1/{name}/operations",
1446
+ matches: [
1447
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/?$}, false]
1448
+ ]
1449
+ )
1450
+ .with_bindings(
1451
+ uri_method: :get,
1452
+ uri_template: "/v1/{name}/operations",
1453
+ matches: [
1454
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/?$}, false]
1455
+ ]
1456
+ )
1457
+ .with_bindings(
1458
+ uri_method: :get,
1459
+ uri_template: "/v1/{name}/operations",
1460
+ matches: [
1461
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelDeploymentMonitoringJobs/[^/]+/?$}, false]
1462
+ ]
1463
+ )
1464
+ .with_bindings(
1465
+ uri_method: :get,
1466
+ uri_template: "/v1/{name}/operations",
1467
+ matches: [
1468
+ ["name", %r{^projects/[^/]+/locations/[^/]+/migratableResources/[^/]+/?$}, false]
1469
+ ]
1470
+ )
1471
+ .with_bindings(
1472
+ uri_method: :get,
1473
+ uri_template: "/v1/{name}/operations",
1474
+ matches: [
1475
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/?$}, false]
1476
+ ]
1477
+ )
1478
+ .with_bindings(
1479
+ uri_method: :get,
1480
+ uri_template: "/v1/{name}/operations",
1481
+ matches: [
1482
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/evaluations/[^/]+/?$}, false]
1483
+ ]
1484
+ )
1485
+ .with_bindings(
1486
+ uri_method: :get,
1487
+ uri_template: "/v1/{name}/operations",
1488
+ matches: [
1489
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookExecutionJobs/[^/]+/?$}, false]
1490
+ ]
1491
+ )
1492
+ .with_bindings(
1493
+ uri_method: :get,
1494
+ uri_template: "/v1/{name}/operations",
1495
+ matches: [
1496
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimes/[^/]+/?$}, false]
1497
+ ]
1498
+ )
1499
+ .with_bindings(
1500
+ uri_method: :get,
1501
+ uri_template: "/v1/{name}/operations",
1502
+ matches: [
1503
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimeTemplates/[^/]+/?$}, false]
1504
+ ]
1505
+ )
1506
+ .with_bindings(
1507
+ uri_method: :get,
1508
+ uri_template: "/v1/{name}/operations",
1509
+ matches: [
1510
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/?$}, false]
1511
+ ]
1512
+ )
1513
+ .with_bindings(
1514
+ uri_method: :get,
1515
+ uri_template: "/v1/{name}/operations",
1516
+ matches: [
1517
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/trials/[^/]+/?$}, false]
1518
+ ]
1519
+ )
1520
+ .with_bindings(
1521
+ uri_method: :get,
1522
+ uri_template: "/v1/{name}/operations",
1523
+ matches: [
1524
+ ["name", %r{^projects/[^/]+/locations/[^/]+/trainingPipelines/[^/]+/?$}, false]
1525
+ ]
1526
+ )
1527
+ .with_bindings(
1528
+ uri_method: :get,
1529
+ uri_template: "/v1/{name}/operations",
1530
+ matches: [
1531
+ ["name", %r{^projects/[^/]+/locations/[^/]+/persistentResources/[^/]+/?$}, false]
1532
+ ]
1533
+ )
1534
+ .with_bindings(
1535
+ uri_method: :get,
1536
+ uri_template: "/v1/{name}/operations",
1537
+ matches: [
1538
+ ["name", %r{^projects/[^/]+/locations/[^/]+/pipelineJobs/[^/]+/?$}, false]
1539
+ ]
1540
+ )
1541
+ .with_bindings(
1542
+ uri_method: :get,
1543
+ uri_template: "/v1/{name}/operations",
1544
+ matches: [
1545
+ ["name", %r{^projects/[^/]+/locations/[^/]+/schedules/[^/]+/?$}, false]
1546
+ ]
1547
+ )
1548
+ .with_bindings(
1549
+ uri_method: :get,
1550
+ uri_template: "/v1/{name}/operations",
1551
+ matches: [
1552
+ ["name", %r{^projects/[^/]+/locations/[^/]+/specialistPools/[^/]+/?$}, false]
1553
+ ]
1554
+ )
1555
+ .with_bindings(
1556
+ uri_method: :get,
1557
+ uri_template: "/v1/{name}/operations",
1558
+ matches: [
1559
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/?$}, false]
1560
+ ]
1561
+ )
1562
+ .with_bindings(
1563
+ uri_method: :get,
1564
+ uri_template: "/v1/{name}/operations",
1565
+ matches: [
1566
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/?$}, false]
1567
+ ]
1568
+ )
1569
+ .with_bindings(
1570
+ uri_method: :get,
1571
+ uri_template: "/v1/{name}/operations",
1572
+ matches: [
1573
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/?$}, false]
1574
+ ]
1575
+ )
1576
+ .with_bindings(
1577
+ uri_method: :get,
1578
+ uri_template: "/v1/{name}/operations",
1579
+ matches: [
1580
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/timeSeries/[^/]+/?$}, false]
1581
+ ]
1582
+ )
1583
+ .with_bindings(
1584
+ uri_method: :get,
1585
+ uri_template: "/v1/{name}:wait",
1586
+ matches: [
1587
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/operations/[^/]+/?$}, false]
1588
+ ]
1589
+ )
1590
+ .with_bindings(
1591
+ uri_method: :get,
1592
+ uri_template: "/v1/{name}:wait",
1593
+ matches: [
1594
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/featureViews/[^/]+/operations/[^/]+/?$}, false]
1595
+ ]
1596
+ )
1597
+ .with_bindings(
1598
+ uri_method: :get,
1599
+ uri_template: "/v1/{name}:wait",
1600
+ matches: [
1601
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/operations/[^/]+/?$}, false]
1602
+ ]
1603
+ )
1604
+ .with_bindings(
1605
+ uri_method: :get,
1606
+ uri_template: "/v1/{name}:wait",
1607
+ matches: [
1608
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
1609
+ ]
1610
+ )
1611
+ transcoder.transcode request_pb
1612
+ end
1613
+
1614
+ ##
1615
+ # @private
1616
+ #
1617
+ # GRPC transcoding helper method for the get_operation REST call
1618
+ #
1619
+ # @param request_pb [::Google::Longrunning::GetOperationRequest]
1620
+ # A request object representing the call parameters. Required.
1621
+ # @return [Array(String, [String, nil], Hash{String => String})]
1622
+ # Uri, Body, Query string parameters
1623
+ def self.transcode_get_operation_request request_pb
1624
+ transcoder = Gapic::Rest::GrpcTranscoder.new
1625
+ .with_bindings(
1626
+ uri_method: :get,
1627
+ uri_template: "/ui/{name}",
1628
+ matches: [
1629
+ ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false]
1630
+ ]
1631
+ )
1632
+ .with_bindings(
1633
+ uri_method: :get,
1634
+ uri_template: "/ui/{name}",
1635
+ matches: [
1636
+ ["name", %r{^projects/[^/]+/locations/[^/]+/agents/[^/]+/operations/[^/]+/?$}, false]
1637
+ ]
1638
+ )
1639
+ .with_bindings(
1640
+ uri_method: :get,
1641
+ uri_template: "/ui/{name}",
1642
+ matches: [
1643
+ ["name", %r{^projects/[^/]+/locations/[^/]+/apps/[^/]+/operations/[^/]+/?$}, false]
1644
+ ]
1645
+ )
1646
+ .with_bindings(
1647
+ uri_method: :get,
1648
+ uri_template: "/ui/{name}",
1649
+ matches: [
1650
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/operations/[^/]+/?$}, false]
1651
+ ]
1652
+ )
1653
+ .with_bindings(
1654
+ uri_method: :get,
1655
+ uri_template: "/ui/{name}",
1656
+ matches: [
1657
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/operations/[^/]+/?$}, false]
1658
+ ]
1659
+ )
1660
+ .with_bindings(
1661
+ uri_method: :get,
1662
+ uri_template: "/ui/{name}",
1663
+ matches: [
1664
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/savedQueries/[^/]+/operations/[^/]+/?$}, false]
1665
+ ]
1666
+ )
1667
+ .with_bindings(
1668
+ uri_method: :get,
1669
+ uri_template: "/ui/{name}",
1670
+ matches: [
1671
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationSpecs/[^/]+/operations/[^/]+/?$}, false]
1672
+ ]
1673
+ )
1674
+ .with_bindings(
1675
+ uri_method: :get,
1676
+ uri_template: "/ui/{name}",
1677
+ matches: [
1678
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/annotations/[^/]+/operations/[^/]+/?$}, false]
1679
+ ]
1680
+ )
1681
+ .with_bindings(
1682
+ uri_method: :get,
1683
+ uri_template: "/ui/{name}",
1684
+ matches: [
1685
+ ["name", %r{^projects/[^/]+/locations/[^/]+/deploymentResourcePools/[^/]+/operations/[^/]+/?$}, false]
1686
+ ]
1687
+ )
1688
+ .with_bindings(
1689
+ uri_method: :get,
1690
+ uri_template: "/ui/{name}",
1691
+ matches: [
1692
+ ["name", %r{^projects/[^/]+/locations/[^/]+/edgeDeploymentJobs/[^/]+/operations/[^/]+/?$}, false]
1693
+ ]
1694
+ )
1695
+ .with_bindings(
1696
+ uri_method: :get,
1697
+ uri_template: "/ui/{name}",
1698
+ matches: [
1699
+ ["name", %r{^projects/[^/]+/locations/[^/]+/edgeDevices/[^/]+/operations/[^/]+/?$}, false]
1700
+ ]
1701
+ )
1702
+ .with_bindings(
1703
+ uri_method: :get,
1704
+ uri_template: "/ui/{name}",
1705
+ matches: [
1706
+ ["name", %r{^projects/[^/]+/locations/[^/]+/endpoints/[^/]+/operations/[^/]+/?$}, false]
1707
+ ]
1708
+ )
1709
+ .with_bindings(
1710
+ uri_method: :get,
1711
+ uri_template: "/ui/{name}",
1712
+ matches: [
1713
+ ["name", %r{^projects/[^/]+/locations/[^/]+/extensionControllers/[^/]+/operations/[^/]+/?$}, false]
1714
+ ]
1715
+ )
1716
+ .with_bindings(
1717
+ uri_method: :get,
1718
+ uri_template: "/ui/{name}",
1719
+ matches: [
1720
+ ["name", %r{^projects/[^/]+/locations/[^/]+/extensions/[^/]+/operations/[^/]+/?$}, false]
1721
+ ]
1722
+ )
1723
+ .with_bindings(
1724
+ uri_method: :get,
1725
+ uri_template: "/ui/{name}",
1726
+ matches: [
1727
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/operations/[^/]+/?$}, false]
1728
+ ]
1729
+ )
1730
+ .with_bindings(
1731
+ uri_method: :get,
1732
+ uri_template: "/ui/{name}",
1733
+ matches: [
1734
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/operations/[^/]+/?$}, false]
1735
+ ]
1736
+ )
1737
+ .with_bindings(
1738
+ uri_method: :get,
1739
+ uri_template: "/ui/{name}",
1740
+ matches: [
1741
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
1742
+ ]
1743
+ )
1744
+ .with_bindings(
1745
+ uri_method: :get,
1746
+ uri_template: "/ui/{name}",
1747
+ matches: [
1748
+ ["name", %r{^projects/[^/]+/locations/[^/]+/customJobs/[^/]+/operations/[^/]+/?$}, false]
1749
+ ]
1750
+ )
1751
+ .with_bindings(
1752
+ uri_method: :get,
1753
+ uri_template: "/ui/{name}",
1754
+ matches: [
1755
+ ["name", %r{^projects/[^/]+/locations/[^/]+/dataLabelingJobs/[^/]+/operations/[^/]+/?$}, false]
1756
+ ]
1757
+ )
1758
+ .with_bindings(
1759
+ uri_method: :get,
1760
+ uri_template: "/ui/{name}",
1761
+ matches: [
1762
+ ["name", %r{^projects/[^/]+/locations/[^/]+/hyperparameterTuningJobs/[^/]+/operations/[^/]+/?$}, false]
1763
+ ]
1764
+ )
1765
+ .with_bindings(
1766
+ uri_method: :get,
1767
+ uri_template: "/ui/{name}",
1768
+ matches: [
1769
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tuningJobs/[^/]+/operations/[^/]+/?$}, false]
1770
+ ]
1771
+ )
1772
+ .with_bindings(
1773
+ uri_method: :get,
1774
+ uri_template: "/ui/{name}",
1775
+ matches: [
1776
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexes/[^/]+/operations/[^/]+/?$}, false]
1777
+ ]
1778
+ )
1779
+ .with_bindings(
1780
+ uri_method: :get,
1781
+ uri_template: "/ui/{name}",
1782
+ matches: [
1783
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexEndpoints/[^/]+/operations/[^/]+/?$}, false]
1784
+ ]
1785
+ )
1786
+ .with_bindings(
1787
+ uri_method: :get,
1788
+ uri_template: "/ui/{name}",
1789
+ matches: [
1790
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/operations/[^/]+/?$}, false]
1791
+ ]
1792
+ )
1793
+ .with_bindings(
1794
+ uri_method: :get,
1795
+ uri_template: "/ui/{name}",
1796
+ matches: [
1797
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/operations/[^/]+/?$}, false]
1798
+ ]
1799
+ )
1800
+ .with_bindings(
1801
+ uri_method: :get,
1802
+ uri_template: "/ui/{name}",
1803
+ matches: [
1804
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/operations/[^/]+/?$}, false]
1805
+ ]
1806
+ )
1807
+ .with_bindings(
1808
+ uri_method: :get,
1809
+ uri_template: "/ui/{name}",
1810
+ matches: [
1811
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/operations/[^/]+/?$}, false]
1812
+ ]
1813
+ )
1814
+ .with_bindings(
1815
+ uri_method: :get,
1816
+ uri_template: "/ui/{name}",
1817
+ matches: [
1818
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelDeploymentMonitoringJobs/[^/]+/operations/[^/]+/?$}, false]
1819
+ ]
1820
+ )
1821
+ .with_bindings(
1822
+ uri_method: :get,
1823
+ uri_template: "/ui/{name}",
1824
+ matches: [
1825
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelMonitors/[^/]+/operations/[^/]+/?$}, false]
1826
+ ]
1827
+ )
1828
+ .with_bindings(
1829
+ uri_method: :get,
1830
+ uri_template: "/ui/{name}",
1831
+ matches: [
1832
+ ["name", %r{^projects/[^/]+/locations/[^/]+/migratableResources/[^/]+/operations/[^/]+/?$}, false]
1833
+ ]
1834
+ )
1835
+ .with_bindings(
1836
+ uri_method: :get,
1837
+ uri_template: "/ui/{name}",
1838
+ matches: [
1839
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/operations/[^/]+/?$}, false]
1840
+ ]
1841
+ )
1842
+ .with_bindings(
1843
+ uri_method: :get,
1844
+ uri_template: "/ui/{name}",
1845
+ matches: [
1846
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/evaluations/[^/]+/operations/[^/]+/?$}, false]
1847
+ ]
1848
+ )
1849
+ .with_bindings(
1850
+ uri_method: :get,
1851
+ uri_template: "/ui/{name}",
1852
+ matches: [
1853
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookExecutionJobs/[^/]+/operations/[^/]+/?$}, false]
1854
+ ]
1855
+ )
1856
+ .with_bindings(
1857
+ uri_method: :get,
1858
+ uri_template: "/ui/{name}",
1859
+ matches: [
1860
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimes/[^/]+/operations/[^/]+/?$}, false]
1861
+ ]
1862
+ )
1863
+ .with_bindings(
1864
+ uri_method: :get,
1865
+ uri_template: "/ui/{name}",
1866
+ matches: [
1867
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimeTemplates/[^/]+/operations/[^/]+/?$}, false]
1868
+ ]
1869
+ )
1870
+ .with_bindings(
1871
+ uri_method: :get,
1872
+ uri_template: "/ui/{name}",
1873
+ matches: [
1874
+ ["name", %r{^projects/[^/]+/locations/[^/]+/persistentResources/[^/]+/operations/[^/]+/?$}, false]
1875
+ ]
1876
+ )
1877
+ .with_bindings(
1878
+ uri_method: :get,
1879
+ uri_template: "/ui/{name}",
1880
+ matches: [
1881
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/operations/[^/]+/?$}, false]
1882
+ ]
1883
+ )
1884
+ .with_bindings(
1885
+ uri_method: :get,
1886
+ uri_template: "/ui/{name}",
1887
+ matches: [
1888
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/trials/[^/]+/operations/[^/]+/?$}, false]
1889
+ ]
1890
+ )
1891
+ .with_bindings(
1892
+ uri_method: :get,
1893
+ uri_template: "/ui/{name}",
1894
+ matches: [
1895
+ ["name", %r{^projects/[^/]+/locations/[^/]+/trainingPipelines/[^/]+/operations/[^/]+/?$}, false]
1896
+ ]
1897
+ )
1898
+ .with_bindings(
1899
+ uri_method: :get,
1900
+ uri_template: "/ui/{name}",
1901
+ matches: [
1902
+ ["name", %r{^projects/[^/]+/locations/[^/]+/pipelineJobs/[^/]+/operations/[^/]+/?$}, false]
1903
+ ]
1904
+ )
1905
+ .with_bindings(
1906
+ uri_method: :get,
1907
+ uri_template: "/ui/{name}",
1908
+ matches: [
1909
+ ["name", %r{^projects/[^/]+/locations/[^/]+/schedules/[^/]+/operations/[^/]+/?$}, false]
1910
+ ]
1911
+ )
1912
+ .with_bindings(
1913
+ uri_method: :get,
1914
+ uri_template: "/ui/{name}",
1915
+ matches: [
1916
+ ["name", %r{^projects/[^/]+/locations/[^/]+/specialistPools/[^/]+/operations/[^/]+/?$}, false]
1917
+ ]
1918
+ )
1919
+ .with_bindings(
1920
+ uri_method: :get,
1921
+ uri_template: "/ui/{name}",
1922
+ matches: [
1923
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/operations/[^/]+/?$}, false]
1924
+ ]
1925
+ )
1926
+ .with_bindings(
1927
+ uri_method: :get,
1928
+ uri_template: "/ui/{name}",
1929
+ matches: [
1930
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/operations/[^/]+/?$}, false]
1931
+ ]
1932
+ )
1933
+ .with_bindings(
1934
+ uri_method: :get,
1935
+ uri_template: "/ui/{name}",
1936
+ matches: [
1937
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/operations/[^/]+/?$}, false]
1938
+ ]
1939
+ )
1940
+ .with_bindings(
1941
+ uri_method: :get,
1942
+ uri_template: "/ui/{name}",
1943
+ matches: [
1944
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/timeSeries/[^/]+/operations/[^/]+/?$}, false]
1945
+ ]
1946
+ )
1947
+ .with_bindings(
1948
+ uri_method: :get,
1949
+ uri_template: "/ui/{name}",
1950
+ matches: [
1951
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/operations/[^/]+/?$}, false]
1952
+ ]
1953
+ )
1954
+ .with_bindings(
1955
+ uri_method: :get,
1956
+ uri_template: "/ui/{name}",
1957
+ matches: [
1958
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/featureViews/[^/]+/operations/[^/]+/?$}, false]
1959
+ ]
1960
+ )
1961
+ .with_bindings(
1962
+ uri_method: :get,
1963
+ uri_template: "/ui/{name}",
1964
+ matches: [
1965
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/operations/[^/]+/?$}, false]
1966
+ ]
1967
+ )
1968
+ .with_bindings(
1969
+ uri_method: :get,
1970
+ uri_template: "/ui/{name}",
1971
+ matches: [
1972
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
1973
+ ]
1974
+ )
1975
+ .with_bindings(
1976
+ uri_method: :get,
1977
+ uri_template: "/v1/{name}",
1978
+ matches: [
1979
+ ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false]
1980
+ ]
1981
+ )
1982
+ .with_bindings(
1983
+ uri_method: :get,
1984
+ uri_template: "/v1/{name}",
1985
+ matches: [
1986
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/operations/[^/]+/?$}, false]
1987
+ ]
1988
+ )
1989
+ .with_bindings(
1990
+ uri_method: :get,
1991
+ uri_template: "/v1/{name}",
1992
+ matches: [
1993
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/operations/[^/]+/?$}, false]
1994
+ ]
1995
+ )
1996
+ .with_bindings(
1997
+ uri_method: :get,
1998
+ uri_template: "/v1/{name}",
1999
+ matches: [
2000
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/savedQueries/[^/]+/operations/[^/]+/?$}, false]
2001
+ ]
2002
+ )
2003
+ .with_bindings(
2004
+ uri_method: :get,
2005
+ uri_template: "/v1/{name}",
2006
+ matches: [
2007
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationSpecs/[^/]+/operations/[^/]+/?$}, false]
2008
+ ]
2009
+ )
2010
+ .with_bindings(
2011
+ uri_method: :get,
2012
+ uri_template: "/v1/{name}",
2013
+ matches: [
2014
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/annotations/[^/]+/operations/[^/]+/?$}, false]
2015
+ ]
2016
+ )
2017
+ .with_bindings(
2018
+ uri_method: :get,
2019
+ uri_template: "/v1/{name}",
2020
+ matches: [
2021
+ ["name", %r{^projects/[^/]+/locations/[^/]+/deploymentResourcePools/[^/]+/operations/[^/]+/?$}, false]
2022
+ ]
2023
+ )
2024
+ .with_bindings(
2025
+ uri_method: :get,
2026
+ uri_template: "/v1/{name}",
2027
+ matches: [
2028
+ ["name", %r{^projects/[^/]+/locations/[^/]+/endpoints/[^/]+/operations/[^/]+/?$}, false]
2029
+ ]
2030
+ )
2031
+ .with_bindings(
2032
+ uri_method: :get,
2033
+ uri_template: "/v1/{name}",
2034
+ matches: [
2035
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/operations/[^/]+/?$}, false]
2036
+ ]
2037
+ )
2038
+ .with_bindings(
2039
+ uri_method: :get,
2040
+ uri_template: "/v1/{name}",
2041
+ matches: [
2042
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/operations/[^/]+/?$}, false]
2043
+ ]
2044
+ )
2045
+ .with_bindings(
2046
+ uri_method: :get,
2047
+ uri_template: "/v1/{name}",
2048
+ matches: [
2049
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
2050
+ ]
2051
+ )
2052
+ .with_bindings(
2053
+ uri_method: :get,
2054
+ uri_template: "/v1/{name}",
2055
+ matches: [
2056
+ ["name", %r{^projects/[^/]+/locations/[^/]+/customJobs/[^/]+/operations/[^/]+/?$}, false]
2057
+ ]
2058
+ )
2059
+ .with_bindings(
2060
+ uri_method: :get,
2061
+ uri_template: "/v1/{name}",
2062
+ matches: [
2063
+ ["name", %r{^projects/[^/]+/locations/[^/]+/dataLabelingJobs/[^/]+/operations/[^/]+/?$}, false]
2064
+ ]
2065
+ )
2066
+ .with_bindings(
2067
+ uri_method: :get,
2068
+ uri_template: "/v1/{name}",
2069
+ matches: [
2070
+ ["name", %r{^projects/[^/]+/locations/[^/]+/hyperparameterTuningJobs/[^/]+/operations/[^/]+/?$}, false]
2071
+ ]
2072
+ )
2073
+ .with_bindings(
2074
+ uri_method: :get,
2075
+ uri_template: "/v1/{name}",
2076
+ matches: [
2077
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tuningJobs/[^/]+/operations/[^/]+/?$}, false]
2078
+ ]
2079
+ )
2080
+ .with_bindings(
2081
+ uri_method: :get,
2082
+ uri_template: "/v1/{name}",
2083
+ matches: [
2084
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexes/[^/]+/operations/[^/]+/?$}, false]
2085
+ ]
2086
+ )
2087
+ .with_bindings(
2088
+ uri_method: :get,
2089
+ uri_template: "/v1/{name}",
2090
+ matches: [
2091
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexEndpoints/[^/]+/operations/[^/]+/?$}, false]
2092
+ ]
2093
+ )
2094
+ .with_bindings(
2095
+ uri_method: :get,
2096
+ uri_template: "/v1/{name}",
2097
+ matches: [
2098
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/operations/[^/]+/?$}, false]
2099
+ ]
2100
+ )
2101
+ .with_bindings(
2102
+ uri_method: :get,
2103
+ uri_template: "/v1/{name}",
2104
+ matches: [
2105
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/operations/[^/]+/?$}, false]
2106
+ ]
2107
+ )
2108
+ .with_bindings(
2109
+ uri_method: :get,
2110
+ uri_template: "/v1/{name}",
2111
+ matches: [
2112
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/operations/[^/]+/?$}, false]
2113
+ ]
2114
+ )
2115
+ .with_bindings(
2116
+ uri_method: :get,
2117
+ uri_template: "/v1/{name}",
2118
+ matches: [
2119
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/operations/[^/]+/?$}, false]
2120
+ ]
2121
+ )
2122
+ .with_bindings(
2123
+ uri_method: :get,
2124
+ uri_template: "/v1/{name}",
2125
+ matches: [
2126
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelDeploymentMonitoringJobs/[^/]+/operations/[^/]+/?$}, false]
2127
+ ]
2128
+ )
2129
+ .with_bindings(
2130
+ uri_method: :get,
2131
+ uri_template: "/v1/{name}",
2132
+ matches: [
2133
+ ["name", %r{^projects/[^/]+/locations/[^/]+/migratableResources/[^/]+/operations/[^/]+/?$}, false]
2134
+ ]
2135
+ )
2136
+ .with_bindings(
2137
+ uri_method: :get,
2138
+ uri_template: "/v1/{name}",
2139
+ matches: [
2140
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/operations/[^/]+/?$}, false]
2141
+ ]
2142
+ )
2143
+ .with_bindings(
2144
+ uri_method: :get,
2145
+ uri_template: "/v1/{name}",
2146
+ matches: [
2147
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/evaluations/[^/]+/operations/[^/]+/?$}, false]
2148
+ ]
2149
+ )
2150
+ .with_bindings(
2151
+ uri_method: :get,
2152
+ uri_template: "/v1/{name}",
2153
+ matches: [
2154
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookExecutionJobs/[^/]+/operations/[^/]+/?$}, false]
2155
+ ]
2156
+ )
2157
+ .with_bindings(
2158
+ uri_method: :get,
2159
+ uri_template: "/v1/{name}",
2160
+ matches: [
2161
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimes/[^/]+/operations/[^/]+/?$}, false]
2162
+ ]
2163
+ )
2164
+ .with_bindings(
2165
+ uri_method: :get,
2166
+ uri_template: "/v1/{name}",
2167
+ matches: [
2168
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimeTemplates/[^/]+/operations/[^/]+/?$}, false]
2169
+ ]
2170
+ )
2171
+ .with_bindings(
2172
+ uri_method: :get,
2173
+ uri_template: "/v1/{name}",
2174
+ matches: [
2175
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/operations/[^/]+/?$}, false]
2176
+ ]
2177
+ )
2178
+ .with_bindings(
2179
+ uri_method: :get,
2180
+ uri_template: "/v1/{name}",
2181
+ matches: [
2182
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/trials/[^/]+/operations/[^/]+/?$}, false]
2183
+ ]
2184
+ )
2185
+ .with_bindings(
2186
+ uri_method: :get,
2187
+ uri_template: "/v1/{name}",
2188
+ matches: [
2189
+ ["name", %r{^projects/[^/]+/locations/[^/]+/trainingPipelines/[^/]+/operations/[^/]+/?$}, false]
2190
+ ]
2191
+ )
2192
+ .with_bindings(
2193
+ uri_method: :get,
2194
+ uri_template: "/v1/{name}",
2195
+ matches: [
2196
+ ["name", %r{^projects/[^/]+/locations/[^/]+/persistentResources/[^/]+/operations/[^/]+/?$}, false]
2197
+ ]
2198
+ )
2199
+ .with_bindings(
2200
+ uri_method: :get,
2201
+ uri_template: "/v1/{name}",
2202
+ matches: [
2203
+ ["name", %r{^projects/[^/]+/locations/[^/]+/pipelineJobs/[^/]+/operations/[^/]+/?$}, false]
2204
+ ]
2205
+ )
2206
+ .with_bindings(
2207
+ uri_method: :get,
2208
+ uri_template: "/v1/{name}",
2209
+ matches: [
2210
+ ["name", %r{^projects/[^/]+/locations/[^/]+/schedules/[^/]+/operations/[^/]+/?$}, false]
2211
+ ]
2212
+ )
2213
+ .with_bindings(
2214
+ uri_method: :get,
2215
+ uri_template: "/v1/{name}",
2216
+ matches: [
2217
+ ["name", %r{^projects/[^/]+/locations/[^/]+/specialistPools/[^/]+/operations/[^/]+/?$}, false]
2218
+ ]
2219
+ )
2220
+ .with_bindings(
2221
+ uri_method: :get,
2222
+ uri_template: "/v1/{name}",
2223
+ matches: [
2224
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/operations/[^/]+/?$}, false]
2225
+ ]
2226
+ )
2227
+ .with_bindings(
2228
+ uri_method: :get,
2229
+ uri_template: "/v1/{name}",
2230
+ matches: [
2231
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/operations/[^/]+/?$}, false]
2232
+ ]
2233
+ )
2234
+ .with_bindings(
2235
+ uri_method: :get,
2236
+ uri_template: "/v1/{name}",
2237
+ matches: [
2238
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/operations/[^/]+/?$}, false]
2239
+ ]
2240
+ )
2241
+ .with_bindings(
2242
+ uri_method: :get,
2243
+ uri_template: "/v1/{name}",
2244
+ matches: [
2245
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/timeSeries/[^/]+/operations/[^/]+/?$}, false]
2246
+ ]
2247
+ )
2248
+ .with_bindings(
2249
+ uri_method: :get,
2250
+ uri_template: "/v1/{name}",
2251
+ matches: [
2252
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/operations/[^/]+/?$}, false]
2253
+ ]
2254
+ )
2255
+ .with_bindings(
2256
+ uri_method: :get,
2257
+ uri_template: "/v1/{name}",
2258
+ matches: [
2259
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/featureViews/[^/]+/operations/[^/]+/?$}, false]
2260
+ ]
2261
+ )
2262
+ .with_bindings(
2263
+ uri_method: :get,
2264
+ uri_template: "/v1/{name}",
2265
+ matches: [
2266
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/operations/[^/]+/?$}, false]
2267
+ ]
2268
+ )
2269
+ .with_bindings(
2270
+ uri_method: :get,
2271
+ uri_template: "/v1/{name}",
2272
+ matches: [
2273
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
2274
+ ]
2275
+ )
2276
+ transcoder.transcode request_pb
2277
+ end
2278
+
2279
+ ##
2280
+ # @private
2281
+ #
2282
+ # GRPC transcoding helper method for the delete_operation REST call
2283
+ #
2284
+ # @param request_pb [::Google::Longrunning::DeleteOperationRequest]
2285
+ # A request object representing the call parameters. Required.
2286
+ # @return [Array(String, [String, nil], Hash{String => String})]
2287
+ # Uri, Body, Query string parameters
2288
+ def self.transcode_delete_operation_request request_pb
2289
+ transcoder = Gapic::Rest::GrpcTranscoder.new
2290
+ .with_bindings(
2291
+ uri_method: :delete,
2292
+ uri_template: "/ui/{name}",
2293
+ matches: [
2294
+ ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false]
2295
+ ]
2296
+ )
2297
+ .with_bindings(
2298
+ uri_method: :delete,
2299
+ uri_template: "/ui/{name}",
2300
+ matches: [
2301
+ ["name", %r{^projects/[^/]+/locations/[^/]+/agents/[^/]+/operations/[^/]+/?$}, false]
2302
+ ]
2303
+ )
2304
+ .with_bindings(
2305
+ uri_method: :delete,
2306
+ uri_template: "/ui/{name}",
2307
+ matches: [
2308
+ ["name", %r{^projects/[^/]+/locations/[^/]+/apps/[^/]+/operations/[^/]+/?$}, false]
2309
+ ]
2310
+ )
2311
+ .with_bindings(
2312
+ uri_method: :delete,
2313
+ uri_template: "/ui/{name}",
2314
+ matches: [
2315
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/operations/[^/]+/?$}, false]
2316
+ ]
2317
+ )
2318
+ .with_bindings(
2319
+ uri_method: :delete,
2320
+ uri_template: "/ui/{name}",
2321
+ matches: [
2322
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/operations/[^/]+/?$}, false]
2323
+ ]
2324
+ )
2325
+ .with_bindings(
2326
+ uri_method: :delete,
2327
+ uri_template: "/ui/{name}",
2328
+ matches: [
2329
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/savedQueries/[^/]+/operations/[^/]+/?$}, false]
2330
+ ]
2331
+ )
2332
+ .with_bindings(
2333
+ uri_method: :delete,
2334
+ uri_template: "/ui/{name}",
2335
+ matches: [
2336
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationSpecs/[^/]+/operations/[^/]+/?$}, false]
2337
+ ]
2338
+ )
2339
+ .with_bindings(
2340
+ uri_method: :delete,
2341
+ uri_template: "/ui/{name}",
2342
+ matches: [
2343
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/annotations/[^/]+/operations/[^/]+/?$}, false]
2344
+ ]
2345
+ )
2346
+ .with_bindings(
2347
+ uri_method: :delete,
2348
+ uri_template: "/ui/{name}",
2349
+ matches: [
2350
+ ["name", %r{^projects/[^/]+/locations/[^/]+/deploymentResourcePools/[^/]+/operations/[^/]+/?$}, false]
2351
+ ]
2352
+ )
2353
+ .with_bindings(
2354
+ uri_method: :delete,
2355
+ uri_template: "/ui/{name}",
2356
+ matches: [
2357
+ ["name", %r{^projects/[^/]+/locations/[^/]+/edgeDevices/[^/]+/operations/[^/]+/?$}, false]
2358
+ ]
2359
+ )
2360
+ .with_bindings(
2361
+ uri_method: :delete,
2362
+ uri_template: "/ui/{name}",
2363
+ matches: [
2364
+ ["name", %r{^projects/[^/]+/locations/[^/]+/endpoints/[^/]+/operations/[^/]+/?$}, false]
2365
+ ]
2366
+ )
2367
+ .with_bindings(
2368
+ uri_method: :delete,
2369
+ uri_template: "/ui/{name}/operations",
2370
+ matches: [
2371
+ ["name", %r{^projects/[^/]+/locations/[^/]+/extensionControllers/[^/]+/?$}, false]
2372
+ ]
2373
+ )
2374
+ .with_bindings(
2375
+ uri_method: :delete,
2376
+ uri_template: "/ui/{name}/operations",
2377
+ matches: [
2378
+ ["name", %r{^projects/[^/]+/locations/[^/]+/extensions/[^/]+/?$}, false]
2379
+ ]
2380
+ )
2381
+ .with_bindings(
2382
+ uri_method: :delete,
2383
+ uri_template: "/ui/{name}",
2384
+ matches: [
2385
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/operations/[^/]+/?$}, false]
2386
+ ]
2387
+ )
2388
+ .with_bindings(
2389
+ uri_method: :delete,
2390
+ uri_template: "/ui/{name}",
2391
+ matches: [
2392
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/operations/[^/]+/?$}, false]
2393
+ ]
2394
+ )
2395
+ .with_bindings(
2396
+ uri_method: :delete,
2397
+ uri_template: "/ui/{name}",
2398
+ matches: [
2399
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
2400
+ ]
2401
+ )
2402
+ .with_bindings(
2403
+ uri_method: :delete,
2404
+ uri_template: "/ui/{name}",
2405
+ matches: [
2406
+ ["name", %r{^projects/[^/]+/locations/[^/]+/customJobs/[^/]+/operations/[^/]+/?$}, false]
2407
+ ]
2408
+ )
2409
+ .with_bindings(
2410
+ uri_method: :delete,
2411
+ uri_template: "/ui/{name}",
2412
+ matches: [
2413
+ ["name", %r{^projects/[^/]+/locations/[^/]+/dataLabelingJobs/[^/]+/operations/[^/]+/?$}, false]
2414
+ ]
2415
+ )
2416
+ .with_bindings(
2417
+ uri_method: :delete,
2418
+ uri_template: "/ui/{name}",
2419
+ matches: [
2420
+ ["name", %r{^projects/[^/]+/locations/[^/]+/hyperparameterTuningJobs/[^/]+/operations/[^/]+/?$}, false]
2421
+ ]
2422
+ )
2423
+ .with_bindings(
2424
+ uri_method: :delete,
2425
+ uri_template: "/ui/{name}",
2426
+ matches: [
2427
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexes/[^/]+/operations/[^/]+/?$}, false]
2428
+ ]
2429
+ )
2430
+ .with_bindings(
2431
+ uri_method: :delete,
2432
+ uri_template: "/ui/{name}",
2433
+ matches: [
2434
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexEndpoints/[^/]+/operations/[^/]+/?$}, false]
2435
+ ]
2436
+ )
2437
+ .with_bindings(
2438
+ uri_method: :delete,
2439
+ uri_template: "/ui/{name}",
2440
+ matches: [
2441
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/operations/[^/]+/?$}, false]
2442
+ ]
2443
+ )
2444
+ .with_bindings(
2445
+ uri_method: :delete,
2446
+ uri_template: "/ui/{name}",
2447
+ matches: [
2448
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/operations/[^/]+/?$}, false]
2449
+ ]
2450
+ )
2451
+ .with_bindings(
2452
+ uri_method: :delete,
2453
+ uri_template: "/ui/{name}",
2454
+ matches: [
2455
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/operations/[^/]+/?$}, false]
2456
+ ]
2457
+ )
2458
+ .with_bindings(
2459
+ uri_method: :delete,
2460
+ uri_template: "/ui/{name}",
2461
+ matches: [
2462
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/operations/[^/]+/?$}, false]
2463
+ ]
2464
+ )
2465
+ .with_bindings(
2466
+ uri_method: :delete,
2467
+ uri_template: "/ui/{name}",
2468
+ matches: [
2469
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelDeploymentMonitoringJobs/[^/]+/operations/[^/]+/?$}, false]
2470
+ ]
2471
+ )
2472
+ .with_bindings(
2473
+ uri_method: :delete,
2474
+ uri_template: "/ui/{name}",
2475
+ matches: [
2476
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelMonitors/[^/]+/operations/[^/]+/?$}, false]
2477
+ ]
2478
+ )
2479
+ .with_bindings(
2480
+ uri_method: :delete,
2481
+ uri_template: "/ui/{name}",
2482
+ matches: [
2483
+ ["name", %r{^projects/[^/]+/locations/[^/]+/migratableResources/[^/]+/operations/[^/]+/?$}, false]
2484
+ ]
2485
+ )
2486
+ .with_bindings(
2487
+ uri_method: :delete,
2488
+ uri_template: "/ui/{name}",
2489
+ matches: [
2490
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/operations/[^/]+/?$}, false]
2491
+ ]
2492
+ )
2493
+ .with_bindings(
2494
+ uri_method: :delete,
2495
+ uri_template: "/ui/{name}",
2496
+ matches: [
2497
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/evaluations/[^/]+/operations/[^/]+/?$}, false]
2498
+ ]
2499
+ )
2500
+ .with_bindings(
2501
+ uri_method: :delete,
2502
+ uri_template: "/ui/{name}",
2503
+ matches: [
2504
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookExecutionJobs/[^/]+/operations/[^/]+/?$}, false]
2505
+ ]
2506
+ )
2507
+ .with_bindings(
2508
+ uri_method: :delete,
2509
+ uri_template: "/ui/{name}",
2510
+ matches: [
2511
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimes/[^/]+/operations/[^/]+/?$}, false]
2512
+ ]
2513
+ )
2514
+ .with_bindings(
2515
+ uri_method: :delete,
2516
+ uri_template: "/ui/{name}",
2517
+ matches: [
2518
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimeTemplates/[^/]+/operations/[^/]+/?$}, false]
2519
+ ]
2520
+ )
2521
+ .with_bindings(
2522
+ uri_method: :delete,
2523
+ uri_template: "/ui/{name}",
2524
+ matches: [
2525
+ ["name", %r{^projects/[^/]+/locations/[^/]+/persistentResources/[^/]+/operations/[^/]+/?$}, false]
2526
+ ]
2527
+ )
2528
+ .with_bindings(
2529
+ uri_method: :delete,
2530
+ uri_template: "/ui/{name}",
2531
+ matches: [
2532
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/operations/[^/]+/?$}, false]
2533
+ ]
2534
+ )
2535
+ .with_bindings(
2536
+ uri_method: :delete,
2537
+ uri_template: "/ui/{name}",
2538
+ matches: [
2539
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/trials/[^/]+/operations/[^/]+/?$}, false]
2540
+ ]
2541
+ )
2542
+ .with_bindings(
2543
+ uri_method: :delete,
2544
+ uri_template: "/ui/{name}",
2545
+ matches: [
2546
+ ["name", %r{^projects/[^/]+/locations/[^/]+/trainingPipelines/[^/]+/operations/[^/]+/?$}, false]
2547
+ ]
2548
+ )
2549
+ .with_bindings(
2550
+ uri_method: :delete,
2551
+ uri_template: "/ui/{name}",
2552
+ matches: [
2553
+ ["name", %r{^projects/[^/]+/locations/[^/]+/pipelineJobs/[^/]+/operations/[^/]+/?$}, false]
2554
+ ]
2555
+ )
2556
+ .with_bindings(
2557
+ uri_method: :delete,
2558
+ uri_template: "/ui/{name}",
2559
+ matches: [
2560
+ ["name", %r{^projects/[^/]+/locations/[^/]+/schedules/[^/]+/operations/[^/]+/?$}, false]
2561
+ ]
2562
+ )
2563
+ .with_bindings(
2564
+ uri_method: :delete,
2565
+ uri_template: "/ui/{name}",
2566
+ matches: [
2567
+ ["name", %r{^projects/[^/]+/locations/[^/]+/specialistPools/[^/]+/operations/[^/]+/?$}, false]
2568
+ ]
2569
+ )
2570
+ .with_bindings(
2571
+ uri_method: :delete,
2572
+ uri_template: "/ui/{name}",
2573
+ matches: [
2574
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/operations/[^/]+/?$}, false]
2575
+ ]
2576
+ )
2577
+ .with_bindings(
2578
+ uri_method: :delete,
2579
+ uri_template: "/ui/{name}",
2580
+ matches: [
2581
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/operations/[^/]+/?$}, false]
2582
+ ]
2583
+ )
2584
+ .with_bindings(
2585
+ uri_method: :delete,
2586
+ uri_template: "/ui/{name}",
2587
+ matches: [
2588
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/operations/[^/]+/?$}, false]
2589
+ ]
2590
+ )
2591
+ .with_bindings(
2592
+ uri_method: :delete,
2593
+ uri_template: "/ui/{name}",
2594
+ matches: [
2595
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/timeSeries/[^/]+/operations/[^/]+/?$}, false]
2596
+ ]
2597
+ )
2598
+ .with_bindings(
2599
+ uri_method: :delete,
2600
+ uri_template: "/ui/{name}",
2601
+ matches: [
2602
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/operations/[^/]+/?$}, false]
2603
+ ]
2604
+ )
2605
+ .with_bindings(
2606
+ uri_method: :delete,
2607
+ uri_template: "/ui/{name}",
2608
+ matches: [
2609
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/operations/[^/]+/?$}, false]
2610
+ ]
2611
+ )
2612
+ .with_bindings(
2613
+ uri_method: :delete,
2614
+ uri_template: "/ui/{name}",
2615
+ matches: [
2616
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
2617
+ ]
2618
+ )
2619
+ .with_bindings(
2620
+ uri_method: :delete,
2621
+ uri_template: "/ui/{name}",
2622
+ matches: [
2623
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/featureViews/[^/]+/operations/[^/]+/?$}, false]
2624
+ ]
2625
+ )
2626
+ .with_bindings(
2627
+ uri_method: :delete,
2628
+ uri_template: "/v1/{name}",
2629
+ matches: [
2630
+ ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false]
2631
+ ]
2632
+ )
2633
+ .with_bindings(
2634
+ uri_method: :delete,
2635
+ uri_template: "/v1/{name}",
2636
+ matches: [
2637
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/operations/[^/]+/?$}, false]
2638
+ ]
2639
+ )
2640
+ .with_bindings(
2641
+ uri_method: :delete,
2642
+ uri_template: "/v1/{name}",
2643
+ matches: [
2644
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/operations/[^/]+/?$}, false]
2645
+ ]
2646
+ )
2647
+ .with_bindings(
2648
+ uri_method: :delete,
2649
+ uri_template: "/v1/{name}",
2650
+ matches: [
2651
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/savedQueries/[^/]+/operations/[^/]+/?$}, false]
2652
+ ]
2653
+ )
2654
+ .with_bindings(
2655
+ uri_method: :delete,
2656
+ uri_template: "/v1/{name}",
2657
+ matches: [
2658
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationSpecs/[^/]+/operations/[^/]+/?$}, false]
2659
+ ]
2660
+ )
2661
+ .with_bindings(
2662
+ uri_method: :delete,
2663
+ uri_template: "/v1/{name}",
2664
+ matches: [
2665
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/annotations/[^/]+/operations/[^/]+/?$}, false]
2666
+ ]
2667
+ )
2668
+ .with_bindings(
2669
+ uri_method: :delete,
2670
+ uri_template: "/v1/{name}",
2671
+ matches: [
2672
+ ["name", %r{^projects/[^/]+/locations/[^/]+/deploymentResourcePools/[^/]+/operations/[^/]+/?$}, false]
2673
+ ]
2674
+ )
2675
+ .with_bindings(
2676
+ uri_method: :delete,
2677
+ uri_template: "/v1/{name}",
2678
+ matches: [
2679
+ ["name", %r{^projects/[^/]+/locations/[^/]+/endpoints/[^/]+/operations/[^/]+/?$}, false]
2680
+ ]
2681
+ )
2682
+ .with_bindings(
2683
+ uri_method: :delete,
2684
+ uri_template: "/v1/{name}",
2685
+ matches: [
2686
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/operations/[^/]+/?$}, false]
2687
+ ]
2688
+ )
2689
+ .with_bindings(
2690
+ uri_method: :delete,
2691
+ uri_template: "/v1/{name}",
2692
+ matches: [
2693
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/operations/[^/]+/?$}, false]
2694
+ ]
2695
+ )
2696
+ .with_bindings(
2697
+ uri_method: :delete,
2698
+ uri_template: "/v1/{name}",
2699
+ matches: [
2700
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
2701
+ ]
2702
+ )
2703
+ .with_bindings(
2704
+ uri_method: :delete,
2705
+ uri_template: "/v1/{name}",
2706
+ matches: [
2707
+ ["name", %r{^projects/[^/]+/locations/[^/]+/customJobs/[^/]+/operations/[^/]+/?$}, false]
2708
+ ]
2709
+ )
2710
+ .with_bindings(
2711
+ uri_method: :delete,
2712
+ uri_template: "/v1/{name}",
2713
+ matches: [
2714
+ ["name", %r{^projects/[^/]+/locations/[^/]+/dataLabelingJobs/[^/]+/operations/[^/]+/?$}, false]
2715
+ ]
2716
+ )
2717
+ .with_bindings(
2718
+ uri_method: :delete,
2719
+ uri_template: "/v1/{name}",
2720
+ matches: [
2721
+ ["name", %r{^projects/[^/]+/locations/[^/]+/hyperparameterTuningJobs/[^/]+/operations/[^/]+/?$}, false]
2722
+ ]
2723
+ )
2724
+ .with_bindings(
2725
+ uri_method: :delete,
2726
+ uri_template: "/v1/{name}",
2727
+ matches: [
2728
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexes/[^/]+/operations/[^/]+/?$}, false]
2729
+ ]
2730
+ )
2731
+ .with_bindings(
2732
+ uri_method: :delete,
2733
+ uri_template: "/v1/{name}",
2734
+ matches: [
2735
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexEndpoints/[^/]+/operations/[^/]+/?$}, false]
2736
+ ]
2737
+ )
2738
+ .with_bindings(
2739
+ uri_method: :delete,
2740
+ uri_template: "/v1/{name}",
2741
+ matches: [
2742
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/operations/[^/]+/?$}, false]
2743
+ ]
2744
+ )
2745
+ .with_bindings(
2746
+ uri_method: :delete,
2747
+ uri_template: "/v1/{name}",
2748
+ matches: [
2749
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/operations/[^/]+/?$}, false]
2750
+ ]
2751
+ )
2752
+ .with_bindings(
2753
+ uri_method: :delete,
2754
+ uri_template: "/v1/{name}",
2755
+ matches: [
2756
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/operations/[^/]+/?$}, false]
2757
+ ]
2758
+ )
2759
+ .with_bindings(
2760
+ uri_method: :delete,
2761
+ uri_template: "/v1/{name}",
2762
+ matches: [
2763
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/operations/[^/]+/?$}, false]
2764
+ ]
2765
+ )
2766
+ .with_bindings(
2767
+ uri_method: :delete,
2768
+ uri_template: "/v1/{name}",
2769
+ matches: [
2770
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelDeploymentMonitoringJobs/[^/]+/operations/[^/]+/?$}, false]
2771
+ ]
2772
+ )
2773
+ .with_bindings(
2774
+ uri_method: :delete,
2775
+ uri_template: "/v1/{name}",
2776
+ matches: [
2777
+ ["name", %r{^projects/[^/]+/locations/[^/]+/migratableResources/[^/]+/operations/[^/]+/?$}, false]
2778
+ ]
2779
+ )
2780
+ .with_bindings(
2781
+ uri_method: :delete,
2782
+ uri_template: "/v1/{name}",
2783
+ matches: [
2784
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/operations/[^/]+/?$}, false]
2785
+ ]
2786
+ )
2787
+ .with_bindings(
2788
+ uri_method: :delete,
2789
+ uri_template: "/v1/{name}",
2790
+ matches: [
2791
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/evaluations/[^/]+/operations/[^/]+/?$}, false]
2792
+ ]
2793
+ )
2794
+ .with_bindings(
2795
+ uri_method: :delete,
2796
+ uri_template: "/v1/{name}",
2797
+ matches: [
2798
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookExecutionJobs/[^/]+/operations/[^/]+/?$}, false]
2799
+ ]
2800
+ )
2801
+ .with_bindings(
2802
+ uri_method: :delete,
2803
+ uri_template: "/v1/{name}",
2804
+ matches: [
2805
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimes/[^/]+/operations/[^/]+/?$}, false]
2806
+ ]
2807
+ )
2808
+ .with_bindings(
2809
+ uri_method: :delete,
2810
+ uri_template: "/v1/{name}",
2811
+ matches: [
2812
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimeTemplates/[^/]+/operations/[^/]+/?$}, false]
2813
+ ]
2814
+ )
2815
+ .with_bindings(
2816
+ uri_method: :delete,
2817
+ uri_template: "/v1/{name}",
2818
+ matches: [
2819
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/operations/[^/]+/?$}, false]
2820
+ ]
2821
+ )
2822
+ .with_bindings(
2823
+ uri_method: :delete,
2824
+ uri_template: "/v1/{name}",
2825
+ matches: [
2826
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/trials/[^/]+/operations/[^/]+/?$}, false]
2827
+ ]
2828
+ )
2829
+ .with_bindings(
2830
+ uri_method: :delete,
2831
+ uri_template: "/v1/{name}",
2832
+ matches: [
2833
+ ["name", %r{^projects/[^/]+/locations/[^/]+/trainingPipelines/[^/]+/operations/[^/]+/?$}, false]
2834
+ ]
2835
+ )
2836
+ .with_bindings(
2837
+ uri_method: :delete,
2838
+ uri_template: "/v1/{name}",
2839
+ matches: [
2840
+ ["name", %r{^projects/[^/]+/locations/[^/]+/persistentResources/[^/]+/operations/[^/]+/?$}, false]
2841
+ ]
2842
+ )
2843
+ .with_bindings(
2844
+ uri_method: :delete,
2845
+ uri_template: "/v1/{name}",
2846
+ matches: [
2847
+ ["name", %r{^projects/[^/]+/locations/[^/]+/pipelineJobs/[^/]+/operations/[^/]+/?$}, false]
2848
+ ]
2849
+ )
2850
+ .with_bindings(
2851
+ uri_method: :delete,
2852
+ uri_template: "/v1/{name}",
2853
+ matches: [
2854
+ ["name", %r{^projects/[^/]+/locations/[^/]+/schedules/[^/]+/operations/[^/]+/?$}, false]
2855
+ ]
2856
+ )
2857
+ .with_bindings(
2858
+ uri_method: :delete,
2859
+ uri_template: "/v1/{name}",
2860
+ matches: [
2861
+ ["name", %r{^projects/[^/]+/locations/[^/]+/specialistPools/[^/]+/operations/[^/]+/?$}, false]
2862
+ ]
2863
+ )
2864
+ .with_bindings(
2865
+ uri_method: :delete,
2866
+ uri_template: "/v1/{name}",
2867
+ matches: [
2868
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/operations/[^/]+/?$}, false]
2869
+ ]
2870
+ )
2871
+ .with_bindings(
2872
+ uri_method: :delete,
2873
+ uri_template: "/v1/{name}",
2874
+ matches: [
2875
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/operations/[^/]+/?$}, false]
2876
+ ]
2877
+ )
2878
+ .with_bindings(
2879
+ uri_method: :delete,
2880
+ uri_template: "/v1/{name}",
2881
+ matches: [
2882
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/operations/[^/]+/?$}, false]
2883
+ ]
2884
+ )
2885
+ .with_bindings(
2886
+ uri_method: :delete,
2887
+ uri_template: "/v1/{name}",
2888
+ matches: [
2889
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/timeSeries/[^/]+/operations/[^/]+/?$}, false]
2890
+ ]
2891
+ )
2892
+ .with_bindings(
2893
+ uri_method: :delete,
2894
+ uri_template: "/v1/{name}",
2895
+ matches: [
2896
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/operations/[^/]+/?$}, false]
2897
+ ]
2898
+ )
2899
+ .with_bindings(
2900
+ uri_method: :delete,
2901
+ uri_template: "/v1/{name}",
2902
+ matches: [
2903
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/operations/[^/]+/?$}, false]
2904
+ ]
2905
+ )
2906
+ .with_bindings(
2907
+ uri_method: :delete,
2908
+ uri_template: "/v1/{name}",
2909
+ matches: [
2910
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
2911
+ ]
2912
+ )
2913
+ .with_bindings(
2914
+ uri_method: :delete,
2915
+ uri_template: "/v1/{name}",
2916
+ matches: [
2917
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/featureViews/[^/]+/operations/[^/]+/?$}, false]
2918
+ ]
2919
+ )
2920
+ transcoder.transcode request_pb
2921
+ end
2922
+
2923
+ ##
2924
+ # @private
2925
+ #
2926
+ # GRPC transcoding helper method for the cancel_operation REST call
2927
+ #
2928
+ # @param request_pb [::Google::Longrunning::CancelOperationRequest]
2929
+ # A request object representing the call parameters. Required.
2930
+ # @return [Array(String, [String, nil], Hash{String => String})]
2931
+ # Uri, Body, Query string parameters
2932
+ def self.transcode_cancel_operation_request request_pb
2933
+ transcoder = Gapic::Rest::GrpcTranscoder.new
2934
+ .with_bindings(
2935
+ uri_method: :post,
2936
+ uri_template: "/ui/{name}:cancel",
2937
+ matches: [
2938
+ ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false]
2939
+ ]
2940
+ )
2941
+ .with_bindings(
2942
+ uri_method: :post,
2943
+ uri_template: "/ui/{name}:cancel",
2944
+ matches: [
2945
+ ["name", %r{^projects/[^/]+/locations/[^/]+/agents/[^/]+/operations/[^/]+/?$}, false]
2946
+ ]
2947
+ )
2948
+ .with_bindings(
2949
+ uri_method: :post,
2950
+ uri_template: "/ui/{name}:cancel",
2951
+ matches: [
2952
+ ["name", %r{^projects/[^/]+/locations/[^/]+/apps/[^/]+/operations/[^/]+/?$}, false]
2953
+ ]
2954
+ )
2955
+ .with_bindings(
2956
+ uri_method: :post,
2957
+ uri_template: "/ui/{name}:cancel",
2958
+ matches: [
2959
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/operations/[^/]+/?$}, false]
2960
+ ]
2961
+ )
2962
+ .with_bindings(
2963
+ uri_method: :post,
2964
+ uri_template: "/ui/{name}:cancel",
2965
+ matches: [
2966
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/operations/[^/]+/?$}, false]
2967
+ ]
2968
+ )
2969
+ .with_bindings(
2970
+ uri_method: :post,
2971
+ uri_template: "/ui/{name}:cancel",
2972
+ matches: [
2973
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/savedQueries/[^/]+/operations/[^/]+/?$}, false]
2974
+ ]
2975
+ )
2976
+ .with_bindings(
2977
+ uri_method: :post,
2978
+ uri_template: "/ui/{name}:cancel",
2979
+ matches: [
2980
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationSpecs/[^/]+/operations/[^/]+/?$}, false]
2981
+ ]
2982
+ )
2983
+ .with_bindings(
2984
+ uri_method: :post,
2985
+ uri_template: "/ui/{name}:cancel",
2986
+ matches: [
2987
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/annotations/[^/]+/operations/[^/]+/?$}, false]
2988
+ ]
2989
+ )
2990
+ .with_bindings(
2991
+ uri_method: :post,
2992
+ uri_template: "/ui/{name}:cancel",
2993
+ matches: [
2994
+ ["name", %r{^projects/[^/]+/locations/[^/]+/deploymentResourcePools/[^/]+/operations/[^/]+/?$}, false]
2995
+ ]
2996
+ )
2997
+ .with_bindings(
2998
+ uri_method: :post,
2999
+ uri_template: "/ui/{name}:cancel",
3000
+ matches: [
3001
+ ["name", %r{^projects/[^/]+/locations/[^/]+/edgeDevices/[^/]+/operations/[^/]+/?$}, false]
3002
+ ]
3003
+ )
3004
+ .with_bindings(
3005
+ uri_method: :post,
3006
+ uri_template: "/ui/{name}:cancel",
3007
+ matches: [
3008
+ ["name", %r{^projects/[^/]+/locations/[^/]+/endpoints/[^/]+/operations/[^/]+/?$}, false]
3009
+ ]
3010
+ )
3011
+ .with_bindings(
3012
+ uri_method: :post,
3013
+ uri_template: "/ui/{name}:cancel",
3014
+ matches: [
3015
+ ["name", %r{^projects/[^/]+/locations/[^/]+/extensionControllers/[^/]+/operations/[^/]+/?$}, false]
3016
+ ]
3017
+ )
3018
+ .with_bindings(
3019
+ uri_method: :post,
3020
+ uri_template: "/ui/{name}:cancel",
3021
+ matches: [
3022
+ ["name", %r{^projects/[^/]+/locations/[^/]+/extensions/[^/]+/operations/[^/]+/?$}, false]
3023
+ ]
3024
+ )
3025
+ .with_bindings(
3026
+ uri_method: :post,
3027
+ uri_template: "/ui/{name}:cancel",
3028
+ matches: [
3029
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/operations/[^/]+/?$}, false]
3030
+ ]
3031
+ )
3032
+ .with_bindings(
3033
+ uri_method: :post,
3034
+ uri_template: "/ui/{name}:cancel",
3035
+ matches: [
3036
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/operations/[^/]+/?$}, false]
3037
+ ]
3038
+ )
3039
+ .with_bindings(
3040
+ uri_method: :post,
3041
+ uri_template: "/ui/{name}:cancel",
3042
+ matches: [
3043
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
3044
+ ]
3045
+ )
3046
+ .with_bindings(
3047
+ uri_method: :post,
3048
+ uri_template: "/ui/{name}:cancel",
3049
+ matches: [
3050
+ ["name", %r{^projects/[^/]+/locations/[^/]+/customJobs/[^/]+/operations/[^/]+/?$}, false]
3051
+ ]
3052
+ )
3053
+ .with_bindings(
3054
+ uri_method: :post,
3055
+ uri_template: "/ui/{name}:cancel",
3056
+ matches: [
3057
+ ["name", %r{^projects/[^/]+/locations/[^/]+/dataLabelingJobs/[^/]+/operations/[^/]+/?$}, false]
3058
+ ]
3059
+ )
3060
+ .with_bindings(
3061
+ uri_method: :post,
3062
+ uri_template: "/ui/{name}:cancel",
3063
+ matches: [
3064
+ ["name", %r{^projects/[^/]+/locations/[^/]+/hyperparameterTuningJobs/[^/]+/operations/[^/]+/?$}, false]
3065
+ ]
3066
+ )
3067
+ .with_bindings(
3068
+ uri_method: :post,
3069
+ uri_template: "/ui/{name}:cancel",
3070
+ matches: [
3071
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tuningJobs/[^/]+/operations/[^/]+/?$}, false]
3072
+ ]
3073
+ )
3074
+ .with_bindings(
3075
+ uri_method: :post,
3076
+ uri_template: "/ui/{name}:cancel",
3077
+ matches: [
3078
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexes/[^/]+/operations/[^/]+/?$}, false]
3079
+ ]
3080
+ )
3081
+ .with_bindings(
3082
+ uri_method: :post,
3083
+ uri_template: "/ui/{name}:cancel",
3084
+ matches: [
3085
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexEndpoints/[^/]+/operations/[^/]+/?$}, false]
3086
+ ]
3087
+ )
3088
+ .with_bindings(
3089
+ uri_method: :post,
3090
+ uri_template: "/ui/{name}:cancel",
3091
+ matches: [
3092
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/operations/[^/]+/?$}, false]
3093
+ ]
3094
+ )
3095
+ .with_bindings(
3096
+ uri_method: :post,
3097
+ uri_template: "/ui/{name}:cancel",
3098
+ matches: [
3099
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/operations/[^/]+/?$}, false]
3100
+ ]
3101
+ )
3102
+ .with_bindings(
3103
+ uri_method: :post,
3104
+ uri_template: "/ui/{name}:cancel",
3105
+ matches: [
3106
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/operations/[^/]+/?$}, false]
3107
+ ]
3108
+ )
3109
+ .with_bindings(
3110
+ uri_method: :post,
3111
+ uri_template: "/ui/{name}:cancel",
3112
+ matches: [
3113
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/operations/[^/]+/?$}, false]
3114
+ ]
3115
+ )
3116
+ .with_bindings(
3117
+ uri_method: :post,
3118
+ uri_template: "/ui/{name}:cancel",
3119
+ matches: [
3120
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelDeploymentMonitoringJobs/[^/]+/operations/[^/]+/?$}, false]
3121
+ ]
3122
+ )
3123
+ .with_bindings(
3124
+ uri_method: :post,
3125
+ uri_template: "/ui/{name}:cancel",
3126
+ matches: [
3127
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelMonitors/[^/]+/operations/[^/]+/?$}, false]
3128
+ ]
3129
+ )
3130
+ .with_bindings(
3131
+ uri_method: :post,
3132
+ uri_template: "/ui/{name}:cancel",
3133
+ matches: [
3134
+ ["name", %r{^projects/[^/]+/locations/[^/]+/migratableResources/[^/]+/operations/[^/]+/?$}, false]
3135
+ ]
3136
+ )
3137
+ .with_bindings(
3138
+ uri_method: :post,
3139
+ uri_template: "/ui/{name}:cancel",
3140
+ matches: [
3141
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/operations/[^/]+/?$}, false]
3142
+ ]
3143
+ )
3144
+ .with_bindings(
3145
+ uri_method: :post,
3146
+ uri_template: "/ui/{name}:cancel",
3147
+ matches: [
3148
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/evaluations/[^/]+/operations/[^/]+/?$}, false]
3149
+ ]
3150
+ )
3151
+ .with_bindings(
3152
+ uri_method: :post,
3153
+ uri_template: "/ui/{name}:cancel",
3154
+ matches: [
3155
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookExecutionJobs/[^/]+/operations/[^/]+/?$}, false]
3156
+ ]
3157
+ )
3158
+ .with_bindings(
3159
+ uri_method: :post,
3160
+ uri_template: "/ui/{name}:cancel",
3161
+ matches: [
3162
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimes/[^/]+/operations/[^/]+/?$}, false]
3163
+ ]
3164
+ )
3165
+ .with_bindings(
3166
+ uri_method: :post,
3167
+ uri_template: "/ui/{name}:cancel",
3168
+ matches: [
3169
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimeTemplates/[^/]+/operations/[^/]+/?$}, false]
3170
+ ]
3171
+ )
3172
+ .with_bindings(
3173
+ uri_method: :post,
3174
+ uri_template: "/ui/{name}:cancel",
3175
+ matches: [
3176
+ ["name", %r{^projects/[^/]+/locations/[^/]+/persistentResources/[^/]+/operations/[^/]+/?$}, false]
3177
+ ]
3178
+ )
3179
+ .with_bindings(
3180
+ uri_method: :post,
3181
+ uri_template: "/ui/{name}:cancel",
3182
+ matches: [
3183
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/operations/[^/]+/?$}, false]
3184
+ ]
3185
+ )
3186
+ .with_bindings(
3187
+ uri_method: :post,
3188
+ uri_template: "/ui/{name}:cancel",
3189
+ matches: [
3190
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/trials/[^/]+/operations/[^/]+/?$}, false]
3191
+ ]
3192
+ )
3193
+ .with_bindings(
3194
+ uri_method: :post,
3195
+ uri_template: "/ui/{name}:cancel",
3196
+ matches: [
3197
+ ["name", %r{^projects/[^/]+/locations/[^/]+/trainingPipelines/[^/]+/operations/[^/]+/?$}, false]
3198
+ ]
3199
+ )
3200
+ .with_bindings(
3201
+ uri_method: :post,
3202
+ uri_template: "/ui/{name}:cancel",
3203
+ matches: [
3204
+ ["name", %r{^projects/[^/]+/locations/[^/]+/pipelineJobs/[^/]+/operations/[^/]+/?$}, false]
3205
+ ]
3206
+ )
3207
+ .with_bindings(
3208
+ uri_method: :post,
3209
+ uri_template: "/ui/{name}:cancel",
3210
+ matches: [
3211
+ ["name", %r{^projects/[^/]+/locations/[^/]+/schedules/[^/]+/operations/[^/]+/?$}, false]
3212
+ ]
3213
+ )
3214
+ .with_bindings(
3215
+ uri_method: :post,
3216
+ uri_template: "/ui/{name}:cancel",
3217
+ matches: [
3218
+ ["name", %r{^projects/[^/]+/locations/[^/]+/specialistPools/[^/]+/operations/[^/]+/?$}, false]
3219
+ ]
3220
+ )
3221
+ .with_bindings(
3222
+ uri_method: :post,
3223
+ uri_template: "/ui/{name}:cancel",
3224
+ matches: [
3225
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/operations/[^/]+/?$}, false]
3226
+ ]
3227
+ )
3228
+ .with_bindings(
3229
+ uri_method: :post,
3230
+ uri_template: "/ui/{name}:cancel",
3231
+ matches: [
3232
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/operations/[^/]+/?$}, false]
3233
+ ]
3234
+ )
3235
+ .with_bindings(
3236
+ uri_method: :post,
3237
+ uri_template: "/ui/{name}:cancel",
3238
+ matches: [
3239
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/operations/[^/]+/?$}, false]
3240
+ ]
3241
+ )
3242
+ .with_bindings(
3243
+ uri_method: :post,
3244
+ uri_template: "/ui/{name}:cancel",
3245
+ matches: [
3246
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/timeSeries/[^/]+/operations/[^/]+/?$}, false]
3247
+ ]
3248
+ )
3249
+ .with_bindings(
3250
+ uri_method: :post,
3251
+ uri_template: "/v1/{name}:cancel",
3252
+ matches: [
3253
+ ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false]
3254
+ ]
3255
+ )
3256
+ .with_bindings(
3257
+ uri_method: :post,
3258
+ uri_template: "/v1/{name}:cancel",
3259
+ matches: [
3260
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/operations/[^/]+/?$}, false]
3261
+ ]
3262
+ )
3263
+ .with_bindings(
3264
+ uri_method: :post,
3265
+ uri_template: "/v1/{name}:cancel",
3266
+ matches: [
3267
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/operations/[^/]+/?$}, false]
3268
+ ]
3269
+ )
3270
+ .with_bindings(
3271
+ uri_method: :post,
3272
+ uri_template: "/v1/{name}:cancel",
3273
+ matches: [
3274
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/savedQueries/[^/]+/operations/[^/]+/?$}, false]
3275
+ ]
3276
+ )
3277
+ .with_bindings(
3278
+ uri_method: :post,
3279
+ uri_template: "/v1/{name}:cancel",
3280
+ matches: [
3281
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationSpecs/[^/]+/operations/[^/]+/?$}, false]
3282
+ ]
3283
+ )
3284
+ .with_bindings(
3285
+ uri_method: :post,
3286
+ uri_template: "/v1/{name}:cancel",
3287
+ matches: [
3288
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/annotations/[^/]+/operations/[^/]+/?$}, false]
3289
+ ]
3290
+ )
3291
+ .with_bindings(
3292
+ uri_method: :post,
3293
+ uri_template: "/v1/{name}:cancel",
3294
+ matches: [
3295
+ ["name", %r{^projects/[^/]+/locations/[^/]+/deploymentResourcePools/[^/]+/operations/[^/]+/?$}, false]
3296
+ ]
3297
+ )
3298
+ .with_bindings(
3299
+ uri_method: :post,
3300
+ uri_template: "/v1/{name}:cancel",
3301
+ matches: [
3302
+ ["name", %r{^projects/[^/]+/locations/[^/]+/endpoints/[^/]+/operations/[^/]+/?$}, false]
3303
+ ]
3304
+ )
3305
+ .with_bindings(
3306
+ uri_method: :post,
3307
+ uri_template: "/v1/{name}:cancel",
3308
+ matches: [
3309
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/operations/[^/]+/?$}, false]
3310
+ ]
3311
+ )
3312
+ .with_bindings(
3313
+ uri_method: :post,
3314
+ uri_template: "/v1/{name}:cancel",
3315
+ matches: [
3316
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/operations/[^/]+/?$}, false]
3317
+ ]
3318
+ )
3319
+ .with_bindings(
3320
+ uri_method: :post,
3321
+ uri_template: "/v1/{name}:cancel",
3322
+ matches: [
3323
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
3324
+ ]
3325
+ )
3326
+ .with_bindings(
3327
+ uri_method: :post,
3328
+ uri_template: "/v1/{name}:cancel",
3329
+ matches: [
3330
+ ["name", %r{^projects/[^/]+/locations/[^/]+/customJobs/[^/]+/operations/[^/]+/?$}, false]
3331
+ ]
3332
+ )
3333
+ .with_bindings(
3334
+ uri_method: :post,
3335
+ uri_template: "/v1/{name}:cancel",
3336
+ matches: [
3337
+ ["name", %r{^projects/[^/]+/locations/[^/]+/dataLabelingJobs/[^/]+/operations/[^/]+/?$}, false]
3338
+ ]
3339
+ )
3340
+ .with_bindings(
3341
+ uri_method: :post,
3342
+ uri_template: "/v1/{name}:cancel",
3343
+ matches: [
3344
+ ["name", %r{^projects/[^/]+/locations/[^/]+/hyperparameterTuningJobs/[^/]+/operations/[^/]+/?$}, false]
3345
+ ]
3346
+ )
3347
+ .with_bindings(
3348
+ uri_method: :post,
3349
+ uri_template: "/v1/{name}:cancel",
3350
+ matches: [
3351
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tuningJobs/[^/]+/operations/[^/]+/?$}, false]
3352
+ ]
3353
+ )
3354
+ .with_bindings(
3355
+ uri_method: :post,
3356
+ uri_template: "/v1/{name}:cancel",
3357
+ matches: [
3358
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexes/[^/]+/operations/[^/]+/?$}, false]
3359
+ ]
3360
+ )
3361
+ .with_bindings(
3362
+ uri_method: :post,
3363
+ uri_template: "/v1/{name}:cancel",
3364
+ matches: [
3365
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexEndpoints/[^/]+/operations/[^/]+/?$}, false]
3366
+ ]
3367
+ )
3368
+ .with_bindings(
3369
+ uri_method: :post,
3370
+ uri_template: "/v1/{name}:cancel",
3371
+ matches: [
3372
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/operations/[^/]+/?$}, false]
3373
+ ]
3374
+ )
3375
+ .with_bindings(
3376
+ uri_method: :post,
3377
+ uri_template: "/v1/{name}:cancel",
3378
+ matches: [
3379
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/operations/[^/]+/?$}, false]
3380
+ ]
3381
+ )
3382
+ .with_bindings(
3383
+ uri_method: :post,
3384
+ uri_template: "/v1/{name}:cancel",
3385
+ matches: [
3386
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/operations/[^/]+/?$}, false]
3387
+ ]
3388
+ )
3389
+ .with_bindings(
3390
+ uri_method: :post,
3391
+ uri_template: "/v1/{name}:cancel",
3392
+ matches: [
3393
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/operations/[^/]+/?$}, false]
3394
+ ]
3395
+ )
3396
+ .with_bindings(
3397
+ uri_method: :post,
3398
+ uri_template: "/v1/{name}:cancel",
3399
+ matches: [
3400
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelDeploymentMonitoringJobs/[^/]+/operations/[^/]+/?$}, false]
3401
+ ]
3402
+ )
3403
+ .with_bindings(
3404
+ uri_method: :post,
3405
+ uri_template: "/v1/{name}:cancel",
3406
+ matches: [
3407
+ ["name", %r{^projects/[^/]+/locations/[^/]+/migratableResources/[^/]+/operations/[^/]+/?$}, false]
3408
+ ]
3409
+ )
3410
+ .with_bindings(
3411
+ uri_method: :post,
3412
+ uri_template: "/v1/{name}:cancel",
3413
+ matches: [
3414
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/operations/[^/]+/?$}, false]
3415
+ ]
3416
+ )
3417
+ .with_bindings(
3418
+ uri_method: :post,
3419
+ uri_template: "/v1/{name}:cancel",
3420
+ matches: [
3421
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/evaluations/[^/]+/operations/[^/]+/?$}, false]
3422
+ ]
3423
+ )
3424
+ .with_bindings(
3425
+ uri_method: :post,
3426
+ uri_template: "/v1/{name}:cancel",
3427
+ matches: [
3428
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookExecutionJobs/[^/]+/operations/[^/]+/?$}, false]
3429
+ ]
3430
+ )
3431
+ .with_bindings(
3432
+ uri_method: :post,
3433
+ uri_template: "/v1/{name}:cancel",
3434
+ matches: [
3435
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimes/[^/]+/operations/[^/]+/?$}, false]
3436
+ ]
3437
+ )
3438
+ .with_bindings(
3439
+ uri_method: :post,
3440
+ uri_template: "/v1/{name}:cancel",
3441
+ matches: [
3442
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimeTemplates/[^/]+/operations/[^/]+/?$}, false]
3443
+ ]
3444
+ )
3445
+ .with_bindings(
3446
+ uri_method: :post,
3447
+ uri_template: "/v1/{name}:cancel",
3448
+ matches: [
3449
+ ["name", %r{^projects/[^/]+/locations/[^/]+/persistentResources/[^/]+/operations/[^/]+/?$}, false]
3450
+ ]
3451
+ )
3452
+ .with_bindings(
3453
+ uri_method: :post,
3454
+ uri_template: "/v1/{name}:cancel",
3455
+ matches: [
3456
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/operations/[^/]+/?$}, false]
3457
+ ]
3458
+ )
3459
+ .with_bindings(
3460
+ uri_method: :post,
3461
+ uri_template: "/v1/{name}:cancel",
3462
+ matches: [
3463
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/trials/[^/]+/operations/[^/]+/?$}, false]
3464
+ ]
3465
+ )
3466
+ .with_bindings(
3467
+ uri_method: :post,
3468
+ uri_template: "/v1/{name}:cancel",
3469
+ matches: [
3470
+ ["name", %r{^projects/[^/]+/locations/[^/]+/trainingPipelines/[^/]+/operations/[^/]+/?$}, false]
3471
+ ]
3472
+ )
3473
+ .with_bindings(
3474
+ uri_method: :post,
3475
+ uri_template: "/v1/{name}:cancel",
3476
+ matches: [
3477
+ ["name", %r{^projects/[^/]+/locations/[^/]+/pipelineJobs/[^/]+/operations/[^/]+/?$}, false]
3478
+ ]
3479
+ )
3480
+ .with_bindings(
3481
+ uri_method: :post,
3482
+ uri_template: "/v1/{name}:cancel",
3483
+ matches: [
3484
+ ["name", %r{^projects/[^/]+/locations/[^/]+/schedules/[^/]+/operations/[^/]+/?$}, false]
3485
+ ]
3486
+ )
3487
+ .with_bindings(
3488
+ uri_method: :post,
3489
+ uri_template: "/v1/{name}:cancel",
3490
+ matches: [
3491
+ ["name", %r{^projects/[^/]+/locations/[^/]+/specialistPools/[^/]+/operations/[^/]+/?$}, false]
3492
+ ]
3493
+ )
3494
+ .with_bindings(
3495
+ uri_method: :post,
3496
+ uri_template: "/v1/{name}:cancel",
3497
+ matches: [
3498
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/operations/[^/]+/?$}, false]
3499
+ ]
3500
+ )
3501
+ .with_bindings(
3502
+ uri_method: :post,
3503
+ uri_template: "/v1/{name}:cancel",
3504
+ matches: [
3505
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/operations/[^/]+/?$}, false]
3506
+ ]
3507
+ )
3508
+ .with_bindings(
3509
+ uri_method: :post,
3510
+ uri_template: "/v1/{name}:cancel",
3511
+ matches: [
3512
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/operations/[^/]+/?$}, false]
3513
+ ]
3514
+ )
3515
+ .with_bindings(
3516
+ uri_method: :post,
3517
+ uri_template: "/v1/{name}:cancel",
3518
+ matches: [
3519
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/timeSeries/[^/]+/operations/[^/]+/?$}, false]
3520
+ ]
3521
+ )
3522
+ transcoder.transcode request_pb
3523
+ end
3524
+
3525
+ ##
3526
+ # @private
3527
+ #
3528
+ # GRPC transcoding helper method for the wait_operation REST call
3529
+ #
3530
+ # @param request_pb [::Google::Longrunning::WaitOperationRequest]
3531
+ # A request object representing the call parameters. Required.
3532
+ # @return [Array(String, [String, nil], Hash{String => String})]
3533
+ # Uri, Body, Query string parameters
3534
+ def self.transcode_wait_operation_request request_pb
3535
+ transcoder = Gapic::Rest::GrpcTranscoder.new
3536
+ .with_bindings(
3537
+ uri_method: :post,
3538
+ uri_template: "/ui/{name}:wait",
3539
+ matches: [
3540
+ ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false]
3541
+ ]
3542
+ )
3543
+ .with_bindings(
3544
+ uri_method: :post,
3545
+ uri_template: "/ui/{name}:wait",
3546
+ matches: [
3547
+ ["name", %r{^projects/[^/]+/locations/[^/]+/agents/[^/]+/operations/[^/]+/?$}, false]
3548
+ ]
3549
+ )
3550
+ .with_bindings(
3551
+ uri_method: :post,
3552
+ uri_template: "/ui/{name}:wait",
3553
+ matches: [
3554
+ ["name", %r{^projects/[^/]+/locations/[^/]+/apps/[^/]+/operations/[^/]+/?$}, false]
3555
+ ]
3556
+ )
3557
+ .with_bindings(
3558
+ uri_method: :post,
3559
+ uri_template: "/ui/{name}:wait",
3560
+ matches: [
3561
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/operations/[^/]+/?$}, false]
3562
+ ]
3563
+ )
3564
+ .with_bindings(
3565
+ uri_method: :post,
3566
+ uri_template: "/ui/{name}:wait",
3567
+ matches: [
3568
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/operations/[^/]+/?$}, false]
3569
+ ]
3570
+ )
3571
+ .with_bindings(
3572
+ uri_method: :post,
3573
+ uri_template: "/ui/{name}:wait",
3574
+ matches: [
3575
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/savedQueries/[^/]+/operations/[^/]+/?$}, false]
3576
+ ]
3577
+ )
3578
+ .with_bindings(
3579
+ uri_method: :post,
3580
+ uri_template: "/ui/{name}:wait",
3581
+ matches: [
3582
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationSpecs/[^/]+/operations/[^/]+/?$}, false]
3583
+ ]
3584
+ )
3585
+ .with_bindings(
3586
+ uri_method: :post,
3587
+ uri_template: "/ui/{name}:wait",
3588
+ matches: [
3589
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/annotations/[^/]+/operations/[^/]+/?$}, false]
3590
+ ]
3591
+ )
3592
+ .with_bindings(
3593
+ uri_method: :post,
3594
+ uri_template: "/ui/{name}:wait",
3595
+ matches: [
3596
+ ["name", %r{^projects/[^/]+/locations/[^/]+/deploymentResourcePools/[^/]+/operations/[^/]+/?$}, false]
3597
+ ]
3598
+ )
3599
+ .with_bindings(
3600
+ uri_method: :post,
3601
+ uri_template: "/ui/{name}:wait",
3602
+ matches: [
3603
+ ["name", %r{^projects/[^/]+/locations/[^/]+/edgeDevices/[^/]+/operations/[^/]+/?$}, false]
3604
+ ]
3605
+ )
3606
+ .with_bindings(
3607
+ uri_method: :post,
3608
+ uri_template: "/ui/{name}:wait",
3609
+ matches: [
3610
+ ["name", %r{^projects/[^/]+/locations/[^/]+/endpoints/[^/]+/operations/[^/]+/?$}, false]
3611
+ ]
3612
+ )
3613
+ .with_bindings(
3614
+ uri_method: :post,
3615
+ uri_template: "/ui/{name}:wait",
3616
+ matches: [
3617
+ ["name", %r{^projects/[^/]+/locations/[^/]+/extensionControllers/[^/]+/operations/[^/]+/?$}, false]
3618
+ ]
3619
+ )
3620
+ .with_bindings(
3621
+ uri_method: :post,
3622
+ uri_template: "/ui/{name}:wait",
3623
+ matches: [
3624
+ ["name", %r{^projects/[^/]+/locations/[^/]+/extensions/[^/]+/operations/[^/]+/?$}, false]
3625
+ ]
3626
+ )
3627
+ .with_bindings(
3628
+ uri_method: :post,
3629
+ uri_template: "/ui/{name}:wait",
3630
+ matches: [
3631
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/operations/[^/]+/?$}, false]
3632
+ ]
3633
+ )
3634
+ .with_bindings(
3635
+ uri_method: :post,
3636
+ uri_template: "/ui/{name}:wait",
3637
+ matches: [
3638
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/operations/[^/]+/?$}, false]
3639
+ ]
3640
+ )
3641
+ .with_bindings(
3642
+ uri_method: :post,
3643
+ uri_template: "/ui/{name}:wait",
3644
+ matches: [
3645
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
3646
+ ]
3647
+ )
3648
+ .with_bindings(
3649
+ uri_method: :post,
3650
+ uri_template: "/ui/{name}:wait",
3651
+ matches: [
3652
+ ["name", %r{^projects/[^/]+/locations/[^/]+/customJobs/[^/]+/operations/[^/]+/?$}, false]
3653
+ ]
3654
+ )
3655
+ .with_bindings(
3656
+ uri_method: :post,
3657
+ uri_template: "/ui/{name}:wait",
3658
+ matches: [
3659
+ ["name", %r{^projects/[^/]+/locations/[^/]+/dataLabelingJobs/[^/]+/operations/[^/]+/?$}, false]
3660
+ ]
3661
+ )
3662
+ .with_bindings(
3663
+ uri_method: :post,
3664
+ uri_template: "/ui/{name}:wait",
3665
+ matches: [
3666
+ ["name", %r{^projects/[^/]+/locations/[^/]+/hyperparameterTuningJobs/[^/]+/operations/[^/]+/?$}, false]
3667
+ ]
3668
+ )
3669
+ .with_bindings(
3670
+ uri_method: :post,
3671
+ uri_template: "/ui/{name}:wait",
3672
+ matches: [
3673
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tuningJobs/[^/]+/operations/[^/]+/?$}, false]
3674
+ ]
3675
+ )
3676
+ .with_bindings(
3677
+ uri_method: :post,
3678
+ uri_template: "/ui/{name}:wait",
3679
+ matches: [
3680
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexes/[^/]+/operations/[^/]+/?$}, false]
3681
+ ]
3682
+ )
3683
+ .with_bindings(
3684
+ uri_method: :post,
3685
+ uri_template: "/ui/{name}:wait",
3686
+ matches: [
3687
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexEndpoints/[^/]+/operations/[^/]+/?$}, false]
3688
+ ]
3689
+ )
3690
+ .with_bindings(
3691
+ uri_method: :post,
3692
+ uri_template: "/ui/{name}:wait",
3693
+ matches: [
3694
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/operations/[^/]+/?$}, false]
3695
+ ]
3696
+ )
3697
+ .with_bindings(
3698
+ uri_method: :post,
3699
+ uri_template: "/ui/{name}:wait",
3700
+ matches: [
3701
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/operations/[^/]+/?$}, false]
3702
+ ]
3703
+ )
3704
+ .with_bindings(
3705
+ uri_method: :post,
3706
+ uri_template: "/ui/{name}:wait",
3707
+ matches: [
3708
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/operations/[^/]+/?$}, false]
3709
+ ]
3710
+ )
3711
+ .with_bindings(
3712
+ uri_method: :post,
3713
+ uri_template: "/ui/{name}:wait",
3714
+ matches: [
3715
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/operations/[^/]+/?$}, false]
3716
+ ]
3717
+ )
3718
+ .with_bindings(
3719
+ uri_method: :post,
3720
+ uri_template: "/ui/{name}:wait",
3721
+ matches: [
3722
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelDeploymentMonitoringJobs/[^/]+/operations/[^/]+/?$}, false]
3723
+ ]
3724
+ )
3725
+ .with_bindings(
3726
+ uri_method: :post,
3727
+ uri_template: "/ui/{name}:wait",
3728
+ matches: [
3729
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelMonitors/[^/]+/operations/[^/]+/?$}, false]
3730
+ ]
3731
+ )
3732
+ .with_bindings(
3733
+ uri_method: :post,
3734
+ uri_template: "/ui/{name}:wait",
3735
+ matches: [
3736
+ ["name", %r{^projects/[^/]+/locations/[^/]+/migratableResources/[^/]+/operations/[^/]+/?$}, false]
3737
+ ]
3738
+ )
3739
+ .with_bindings(
3740
+ uri_method: :post,
3741
+ uri_template: "/ui/{name}:wait",
3742
+ matches: [
3743
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/operations/[^/]+/?$}, false]
3744
+ ]
3745
+ )
3746
+ .with_bindings(
3747
+ uri_method: :post,
3748
+ uri_template: "/ui/{name}:wait",
3749
+ matches: [
3750
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/evaluations/[^/]+/operations/[^/]+/?$}, false]
3751
+ ]
3752
+ )
3753
+ .with_bindings(
3754
+ uri_method: :post,
3755
+ uri_template: "/ui/{name}:wait",
3756
+ matches: [
3757
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookExecutionJobs/[^/]+/operations/[^/]+/?$}, false]
3758
+ ]
3759
+ )
3760
+ .with_bindings(
3761
+ uri_method: :post,
3762
+ uri_template: "/ui/{name}:wait",
3763
+ matches: [
3764
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimes/[^/]+/operations/[^/]+/?$}, false]
3765
+ ]
3766
+ )
3767
+ .with_bindings(
3768
+ uri_method: :post,
3769
+ uri_template: "/ui/{name}:wait",
3770
+ matches: [
3771
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimeTemplates/[^/]+/operations/[^/]+/?$}, false]
3772
+ ]
3773
+ )
3774
+ .with_bindings(
3775
+ uri_method: :post,
3776
+ uri_template: "/ui/{name}:wait",
3777
+ matches: [
3778
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/operations/[^/]+/?$}, false]
3779
+ ]
3780
+ )
3781
+ .with_bindings(
3782
+ uri_method: :post,
3783
+ uri_template: "/ui/{name}:wait",
3784
+ matches: [
3785
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/trials/[^/]+/operations/[^/]+/?$}, false]
3786
+ ]
3787
+ )
3788
+ .with_bindings(
3789
+ uri_method: :post,
3790
+ uri_template: "/ui/{name}:wait",
3791
+ matches: [
3792
+ ["name", %r{^projects/[^/]+/locations/[^/]+/trainingPipelines/[^/]+/operations/[^/]+/?$}, false]
3793
+ ]
3794
+ )
3795
+ .with_bindings(
3796
+ uri_method: :post,
3797
+ uri_template: "/ui/{name}:wait",
3798
+ matches: [
3799
+ ["name", %r{^projects/[^/]+/locations/[^/]+/persistentResources/[^/]+/operations/[^/]+/?$}, false]
3800
+ ]
3801
+ )
3802
+ .with_bindings(
3803
+ uri_method: :post,
3804
+ uri_template: "/ui/{name}:wait",
3805
+ matches: [
3806
+ ["name", %r{^projects/[^/]+/locations/[^/]+/pipelineJobs/[^/]+/operations/[^/]+/?$}, false]
3807
+ ]
3808
+ )
3809
+ .with_bindings(
3810
+ uri_method: :post,
3811
+ uri_template: "/ui/{name}:wait",
3812
+ matches: [
3813
+ ["name", %r{^projects/[^/]+/locations/[^/]+/schedules/[^/]+/operations/[^/]+/?$}, false]
3814
+ ]
3815
+ )
3816
+ .with_bindings(
3817
+ uri_method: :post,
3818
+ uri_template: "/ui/{name}:wait",
3819
+ matches: [
3820
+ ["name", %r{^projects/[^/]+/locations/[^/]+/specialistPools/[^/]+/operations/[^/]+/?$}, false]
3821
+ ]
3822
+ )
3823
+ .with_bindings(
3824
+ uri_method: :post,
3825
+ uri_template: "/ui/{name}:wait",
3826
+ matches: [
3827
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/operations/[^/]+/?$}, false]
3828
+ ]
3829
+ )
3830
+ .with_bindings(
3831
+ uri_method: :post,
3832
+ uri_template: "/ui/{name}:wait",
3833
+ matches: [
3834
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/operations/[^/]+/?$}, false]
3835
+ ]
3836
+ )
3837
+ .with_bindings(
3838
+ uri_method: :post,
3839
+ uri_template: "/ui/{name}:wait",
3840
+ matches: [
3841
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/operations/[^/]+/?$}, false]
3842
+ ]
3843
+ )
3844
+ .with_bindings(
3845
+ uri_method: :post,
3846
+ uri_template: "/ui/{name}:wait",
3847
+ matches: [
3848
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/timeSeries/[^/]+/operations/[^/]+/?$}, false]
3849
+ ]
3850
+ )
3851
+ .with_bindings(
3852
+ uri_method: :post,
3853
+ uri_template: "/ui/{name}:wait",
3854
+ matches: [
3855
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/operations/[^/]+/?$}, false]
3856
+ ]
3857
+ )
3858
+ .with_bindings(
3859
+ uri_method: :post,
3860
+ uri_template: "/ui/{name}:wait",
3861
+ matches: [
3862
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/featureViews/[^/]+/operations/[^/]+/?$}, false]
3863
+ ]
3864
+ )
3865
+ .with_bindings(
3866
+ uri_method: :post,
3867
+ uri_template: "/ui/{name}:wait",
3868
+ matches: [
3869
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/operations/[^/]+/?$}, false]
3870
+ ]
3871
+ )
3872
+ .with_bindings(
3873
+ uri_method: :post,
3874
+ uri_template: "/ui/{name}:wait",
3875
+ matches: [
3876
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
3877
+ ]
3878
+ )
3879
+ .with_bindings(
3880
+ uri_method: :post,
3881
+ uri_template: "/v1/{name}:wait",
3882
+ matches: [
3883
+ ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false]
3884
+ ]
3885
+ )
3886
+ .with_bindings(
3887
+ uri_method: :post,
3888
+ uri_template: "/v1/{name}:wait",
3889
+ matches: [
3890
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/operations/[^/]+/?$}, false]
3891
+ ]
3892
+ )
3893
+ .with_bindings(
3894
+ uri_method: :post,
3895
+ uri_template: "/v1/{name}:wait",
3896
+ matches: [
3897
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/operations/[^/]+/?$}, false]
3898
+ ]
3899
+ )
3900
+ .with_bindings(
3901
+ uri_method: :post,
3902
+ uri_template: "/v1/{name}:wait",
3903
+ matches: [
3904
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/savedQueries/[^/]+/operations/[^/]+/?$}, false]
3905
+ ]
3906
+ )
3907
+ .with_bindings(
3908
+ uri_method: :post,
3909
+ uri_template: "/v1/{name}:wait",
3910
+ matches: [
3911
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationSpecs/[^/]+/operations/[^/]+/?$}, false]
3912
+ ]
3913
+ )
3914
+ .with_bindings(
3915
+ uri_method: :post,
3916
+ uri_template: "/v1/{name}:wait",
3917
+ matches: [
3918
+ ["name", %r{^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataItems/[^/]+/annotations/[^/]+/operations/[^/]+/?$}, false]
3919
+ ]
3920
+ )
3921
+ .with_bindings(
3922
+ uri_method: :post,
3923
+ uri_template: "/v1/{name}:wait",
3924
+ matches: [
3925
+ ["name", %r{^projects/[^/]+/locations/[^/]+/deploymentResourcePools/[^/]+/operations/[^/]+/?$}, false]
3926
+ ]
3927
+ )
3928
+ .with_bindings(
3929
+ uri_method: :post,
3930
+ uri_template: "/v1/{name}:wait",
3931
+ matches: [
3932
+ ["name", %r{^projects/[^/]+/locations/[^/]+/endpoints/[^/]+/operations/[^/]+/?$}, false]
3933
+ ]
3934
+ )
3935
+ .with_bindings(
3936
+ uri_method: :post,
3937
+ uri_template: "/v1/{name}:wait",
3938
+ matches: [
3939
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/operations/[^/]+/?$}, false]
3940
+ ]
3941
+ )
3942
+ .with_bindings(
3943
+ uri_method: :post,
3944
+ uri_template: "/v1/{name}:wait",
3945
+ matches: [
3946
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/operations/[^/]+/?$}, false]
3947
+ ]
3948
+ )
3949
+ .with_bindings(
3950
+ uri_method: :post,
3951
+ uri_template: "/v1/{name}:wait",
3952
+ matches: [
3953
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featurestores/[^/]+/entityTypes/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
3954
+ ]
3955
+ )
3956
+ .with_bindings(
3957
+ uri_method: :post,
3958
+ uri_template: "/v1/{name}:wait",
3959
+ matches: [
3960
+ ["name", %r{^projects/[^/]+/locations/[^/]+/customJobs/[^/]+/operations/[^/]+/?$}, false]
3961
+ ]
3962
+ )
3963
+ .with_bindings(
3964
+ uri_method: :post,
3965
+ uri_template: "/v1/{name}:wait",
3966
+ matches: [
3967
+ ["name", %r{^projects/[^/]+/locations/[^/]+/dataLabelingJobs/[^/]+/operations/[^/]+/?$}, false]
3968
+ ]
3969
+ )
3970
+ .with_bindings(
3971
+ uri_method: :post,
3972
+ uri_template: "/v1/{name}:wait",
3973
+ matches: [
3974
+ ["name", %r{^projects/[^/]+/locations/[^/]+/hyperparameterTuningJobs/[^/]+/operations/[^/]+/?$}, false]
3975
+ ]
3976
+ )
3977
+ .with_bindings(
3978
+ uri_method: :post,
3979
+ uri_template: "/v1/{name}:wait",
3980
+ matches: [
3981
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexes/[^/]+/operations/[^/]+/?$}, false]
3982
+ ]
3983
+ )
3984
+ .with_bindings(
3985
+ uri_method: :post,
3986
+ uri_template: "/v1/{name}:wait",
3987
+ matches: [
3988
+ ["name", %r{^projects/[^/]+/locations/[^/]+/indexEndpoints/[^/]+/operations/[^/]+/?$}, false]
3989
+ ]
3990
+ )
3991
+ .with_bindings(
3992
+ uri_method: :post,
3993
+ uri_template: "/v1/{name}:wait",
3994
+ matches: [
3995
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/operations/[^/]+/?$}, false]
3996
+ ]
3997
+ )
3998
+ .with_bindings(
3999
+ uri_method: :post,
4000
+ uri_template: "/v1/{name}:wait",
4001
+ matches: [
4002
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/operations/[^/]+/?$}, false]
4003
+ ]
4004
+ )
4005
+ .with_bindings(
4006
+ uri_method: :post,
4007
+ uri_template: "/v1/{name}:wait",
4008
+ matches: [
4009
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/operations/[^/]+/?$}, false]
4010
+ ]
4011
+ )
4012
+ .with_bindings(
4013
+ uri_method: :post,
4014
+ uri_template: "/v1/{name}:wait",
4015
+ matches: [
4016
+ ["name", %r{^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/operations/[^/]+/?$}, false]
4017
+ ]
4018
+ )
4019
+ .with_bindings(
4020
+ uri_method: :post,
4021
+ uri_template: "/v1/{name}:wait",
4022
+ matches: [
4023
+ ["name", %r{^projects/[^/]+/locations/[^/]+/modelDeploymentMonitoringJobs/[^/]+/operations/[^/]+/?$}, false]
4024
+ ]
4025
+ )
4026
+ .with_bindings(
4027
+ uri_method: :post,
4028
+ uri_template: "/v1/{name}:wait",
4029
+ matches: [
4030
+ ["name", %r{^projects/[^/]+/locations/[^/]+/migratableResources/[^/]+/operations/[^/]+/?$}, false]
4031
+ ]
4032
+ )
4033
+ .with_bindings(
4034
+ uri_method: :post,
4035
+ uri_template: "/v1/{name}:wait",
4036
+ matches: [
4037
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/operations/[^/]+/?$}, false]
4038
+ ]
4039
+ )
4040
+ .with_bindings(
4041
+ uri_method: :post,
4042
+ uri_template: "/v1/{name}:wait",
4043
+ matches: [
4044
+ ["name", %r{^projects/[^/]+/locations/[^/]+/models/[^/]+/evaluations/[^/]+/operations/[^/]+/?$}, false]
4045
+ ]
4046
+ )
4047
+ .with_bindings(
4048
+ uri_method: :post,
4049
+ uri_template: "/v1/{name}:wait",
4050
+ matches: [
4051
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookExecutionJobs/[^/]+/operations/[^/]+/?$}, false]
4052
+ ]
4053
+ )
4054
+ .with_bindings(
4055
+ uri_method: :post,
4056
+ uri_template: "/v1/{name}:wait",
4057
+ matches: [
4058
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimes/[^/]+/operations/[^/]+/?$}, false]
4059
+ ]
4060
+ )
4061
+ .with_bindings(
4062
+ uri_method: :post,
4063
+ uri_template: "/v1/{name}:wait",
4064
+ matches: [
4065
+ ["name", %r{^projects/[^/]+/locations/[^/]+/notebookRuntimeTemplates/[^/]+/operations/[^/]+/?$}, false]
4066
+ ]
4067
+ )
4068
+ .with_bindings(
4069
+ uri_method: :post,
4070
+ uri_template: "/v1/{name}:wait",
4071
+ matches: [
4072
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/operations/[^/]+/?$}, false]
4073
+ ]
4074
+ )
4075
+ .with_bindings(
4076
+ uri_method: :post,
4077
+ uri_template: "/v1/{name}:wait",
4078
+ matches: [
4079
+ ["name", %r{^projects/[^/]+/locations/[^/]+/studies/[^/]+/trials/[^/]+/operations/[^/]+/?$}, false]
4080
+ ]
4081
+ )
4082
+ .with_bindings(
4083
+ uri_method: :post,
4084
+ uri_template: "/v1/{name}:wait",
4085
+ matches: [
4086
+ ["name", %r{^projects/[^/]+/locations/[^/]+/trainingPipelines/[^/]+/operations/[^/]+/?$}, false]
4087
+ ]
4088
+ )
4089
+ .with_bindings(
4090
+ uri_method: :post,
4091
+ uri_template: "/v1/{name}:wait",
4092
+ matches: [
4093
+ ["name", %r{^projects/[^/]+/locations/[^/]+/persistentResources/[^/]+/operations/[^/]+/?$}, false]
4094
+ ]
4095
+ )
4096
+ .with_bindings(
4097
+ uri_method: :post,
4098
+ uri_template: "/v1/{name}:wait",
4099
+ matches: [
4100
+ ["name", %r{^projects/[^/]+/locations/[^/]+/pipelineJobs/[^/]+/operations/[^/]+/?$}, false]
4101
+ ]
4102
+ )
4103
+ .with_bindings(
4104
+ uri_method: :post,
4105
+ uri_template: "/v1/{name}:wait",
4106
+ matches: [
4107
+ ["name", %r{^projects/[^/]+/locations/[^/]+/schedules/[^/]+/operations/[^/]+/?$}, false]
4108
+ ]
4109
+ )
4110
+ .with_bindings(
4111
+ uri_method: :post,
4112
+ uri_template: "/v1/{name}:wait",
4113
+ matches: [
4114
+ ["name", %r{^projects/[^/]+/locations/[^/]+/specialistPools/[^/]+/operations/[^/]+/?$}, false]
4115
+ ]
4116
+ )
4117
+ .with_bindings(
4118
+ uri_method: :post,
4119
+ uri_template: "/v1/{name}:wait",
4120
+ matches: [
4121
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/operations/[^/]+/?$}, false]
4122
+ ]
4123
+ )
4124
+ .with_bindings(
4125
+ uri_method: :post,
4126
+ uri_template: "/v1/{name}:wait",
4127
+ matches: [
4128
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/operations/[^/]+/?$}, false]
4129
+ ]
4130
+ )
4131
+ .with_bindings(
4132
+ uri_method: :post,
4133
+ uri_template: "/v1/{name}:wait",
4134
+ matches: [
4135
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/operations/[^/]+/?$}, false]
4136
+ ]
4137
+ )
4138
+ .with_bindings(
4139
+ uri_method: :post,
4140
+ uri_template: "/v1/{name}:wait",
4141
+ matches: [
4142
+ ["name", %r{^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+/runs/[^/]+/timeSeries/[^/]+/operations/[^/]+/?$}, false]
4143
+ ]
4144
+ )
4145
+ .with_bindings(
4146
+ uri_method: :post,
4147
+ uri_template: "/v1/{name}:wait",
4148
+ matches: [
4149
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/operations/[^/]+/?$}, false]
4150
+ ]
4151
+ )
4152
+ .with_bindings(
4153
+ uri_method: :post,
4154
+ uri_template: "/v1/{name}:wait",
4155
+ matches: [
4156
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/featureViews/[^/]+/operations/[^/]+/?$}, false]
4157
+ ]
4158
+ )
4159
+ .with_bindings(
4160
+ uri_method: :post,
4161
+ uri_template: "/v1/{name}:wait",
4162
+ matches: [
4163
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/operations/[^/]+/?$}, false]
4164
+ ]
4165
+ )
4166
+ .with_bindings(
4167
+ uri_method: :post,
4168
+ uri_template: "/v1/{name}:wait",
4169
+ matches: [
4170
+ ["name", %r{^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+/features/[^/]+/operations/[^/]+/?$}, false]
4171
+ ]
4172
+ )
4173
+ transcoder.transcode request_pb
4174
+ end
4175
+ end
4176
+ end
4177
+ end
4178
+ end
4179
+ end
4180
+ end
4181
+ end