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