google-cloud-ai_platform-v1 0.51.0 → 0.53.0

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