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