google-cloud-managed_kafka-schema_registry-v1 0.a → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +122 -0
  4. data/README.md +153 -8
  5. data/lib/google/cloud/managed_kafka/schema_registry/v1/bindings_override.rb +77 -0
  6. data/lib/google/cloud/managed_kafka/schema_registry/v1/managed_schema_registry/client.rb +3110 -0
  7. data/lib/google/cloud/managed_kafka/schema_registry/v1/managed_schema_registry/credentials.rb +49 -0
  8. data/lib/google/cloud/managed_kafka/schema_registry/v1/managed_schema_registry/paths.rb +424 -0
  9. data/lib/google/cloud/managed_kafka/schema_registry/v1/managed_schema_registry/rest/client.rb +2903 -0
  10. data/lib/google/cloud/managed_kafka/schema_registry/v1/managed_schema_registry/rest/service_stub.rb +1888 -0
  11. data/lib/google/cloud/managed_kafka/schema_registry/v1/managed_schema_registry/rest.rb +103 -0
  12. data/lib/google/cloud/managed_kafka/schema_registry/v1/managed_schema_registry.rb +105 -0
  13. data/lib/google/cloud/managed_kafka/schema_registry/v1/rest.rb +40 -0
  14. data/lib/google/cloud/managed_kafka/schema_registry/v1/version.rb +7 -2
  15. data/lib/google/cloud/managed_kafka/schema_registry/v1.rb +47 -0
  16. data/lib/google/cloud/managedkafka/schemaregistry/v1/schema_registry_pb.rb +80 -0
  17. data/lib/google/cloud/managedkafka/schemaregistry/v1/schema_registry_resources_pb.rb +57 -0
  18. data/lib/google/cloud/managedkafka/schemaregistry/v1/schema_registry_services_pb.rb +160 -0
  19. data/lib/google-cloud-managed_kafka-schema_registry-v1.rb +21 -0
  20. data/proto_docs/README.md +4 -0
  21. data/proto_docs/google/api/client.rb +473 -0
  22. data/proto_docs/google/api/field_behavior.rb +85 -0
  23. data/proto_docs/google/api/httpbody.rb +80 -0
  24. data/proto_docs/google/api/launch_stage.rb +71 -0
  25. data/proto_docs/google/api/resource.rb +227 -0
  26. data/proto_docs/google/cloud/managedkafka/schemaregistry/v1/schema_registry.rb +488 -0
  27. data/proto_docs/google/cloud/managedkafka/schemaregistry/v1/schema_registry_resources.rb +236 -0
  28. data/proto_docs/google/protobuf/any.rb +145 -0
  29. data/proto_docs/google/protobuf/duration.rb +98 -0
  30. data/proto_docs/google/protobuf/empty.rb +34 -0
  31. metadata +77 -9
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "googleauth"
20
+
21
+ module Google
22
+ module Cloud
23
+ module ManagedKafka
24
+ module SchemaRegistry
25
+ module V1
26
+ module ManagedSchemaRegistry
27
+ # Credentials for the ManagedSchemaRegistry API.
28
+ class Credentials < ::Google::Auth::Credentials
29
+ self.scope = [
30
+ "https://www.googleapis.com/auth/cloud-platform"
31
+ ]
32
+ self.env_vars = [
33
+ "GOOGLE_CLOUD_CREDENTIALS",
34
+ "GOOGLE_CLOUD_KEYFILE",
35
+ "GCLOUD_KEYFILE",
36
+ "GOOGLE_CLOUD_CREDENTIALS_JSON",
37
+ "GOOGLE_CLOUD_KEYFILE_JSON",
38
+ "GCLOUD_KEYFILE_JSON"
39
+ ]
40
+ self.paths = [
41
+ "~/.config/google_cloud/application_default_credentials.json"
42
+ ]
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,424 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module ManagedKafka
23
+ module SchemaRegistry
24
+ module V1
25
+ module ManagedSchemaRegistry
26
+ # Path helper methods for the ManagedSchemaRegistry API.
27
+ module Paths
28
+ ##
29
+ # Create a fully-qualified Schema resource string.
30
+ #
31
+ # @overload schema_path(project:, location:, schema_registry:, schema:)
32
+ # The resource will be in the following format:
33
+ #
34
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/schemas/ids/{schema}`
35
+ #
36
+ # @param project [String]
37
+ # @param location [String]
38
+ # @param schema_registry [String]
39
+ # @param schema [String]
40
+ #
41
+ # @overload schema_path(project:, location:, schema_registry:, context:, schema:)
42
+ # The resource will be in the following format:
43
+ #
44
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/contexts/{context}/schemas/ids/{schema}`
45
+ #
46
+ # @param project [String]
47
+ # @param location [String]
48
+ # @param schema_registry [String]
49
+ # @param context [String]
50
+ # @param schema [String]
51
+ #
52
+ # @return [::String]
53
+ def schema_path **args
54
+ resources = {
55
+ "location:project:schema:schema_registry" => (proc do |project:, location:, schema_registry:, schema:|
56
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
57
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
58
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
59
+
60
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/schemas/ids/#{schema}"
61
+ end),
62
+ "context:location:project:schema:schema_registry" => (proc do |project:, location:, schema_registry:, context:, schema:|
63
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
64
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
65
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
66
+ raise ::ArgumentError, "context cannot contain /" if context.to_s.include? "/"
67
+
68
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/contexts/#{context}/schemas/ids/#{schema}"
69
+ end)
70
+ }
71
+
72
+ resource = resources[args.keys.sort.join(":")]
73
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
74
+ resource.call(**args)
75
+ end
76
+
77
+ ##
78
+ # Create a fully-qualified SchemaConfig resource string.
79
+ #
80
+ # @overload schema_config_path(project:, location:, schema_registry:)
81
+ # The resource will be in the following format:
82
+ #
83
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/config`
84
+ #
85
+ # @param project [String]
86
+ # @param location [String]
87
+ # @param schema_registry [String]
88
+ #
89
+ # @overload schema_config_path(project:, location:, schema_registry:, subject:)
90
+ # The resource will be in the following format:
91
+ #
92
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/config/{subject}`
93
+ #
94
+ # @param project [String]
95
+ # @param location [String]
96
+ # @param schema_registry [String]
97
+ # @param subject [String]
98
+ #
99
+ # @overload schema_config_path(project:, location:, schema_registry:, context:)
100
+ # The resource will be in the following format:
101
+ #
102
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/contexts/{context}/config`
103
+ #
104
+ # @param project [String]
105
+ # @param location [String]
106
+ # @param schema_registry [String]
107
+ # @param context [String]
108
+ #
109
+ # @overload schema_config_path(project:, location:, schema_registry:, context:, subject:)
110
+ # The resource will be in the following format:
111
+ #
112
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/contexts/{context}/config/{subject}`
113
+ #
114
+ # @param project [String]
115
+ # @param location [String]
116
+ # @param schema_registry [String]
117
+ # @param context [String]
118
+ # @param subject [String]
119
+ #
120
+ # @return [::String]
121
+ def schema_config_path **args
122
+ resources = {
123
+ "location:project:schema_registry" => (proc do |project:, location:, schema_registry:|
124
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
125
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
126
+
127
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/config"
128
+ end),
129
+ "location:project:schema_registry:subject" => (proc do |project:, location:, schema_registry:, subject:|
130
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
131
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
132
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
133
+
134
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/config/#{subject}"
135
+ end),
136
+ "context:location:project:schema_registry" => (proc do |project:, location:, schema_registry:, context:|
137
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
138
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
139
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
140
+
141
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/contexts/#{context}/config"
142
+ end),
143
+ "context:location:project:schema_registry:subject" => (proc do |project:, location:, schema_registry:, context:, subject:|
144
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
145
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
146
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
147
+ raise ::ArgumentError, "context cannot contain /" if context.to_s.include? "/"
148
+
149
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/contexts/#{context}/config/#{subject}"
150
+ end)
151
+ }
152
+
153
+ resource = resources[args.keys.sort.join(":")]
154
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
155
+ resource.call(**args)
156
+ end
157
+
158
+ ##
159
+ # Create a fully-qualified SchemaContext resource string.
160
+ #
161
+ # The resource will be in the following format:
162
+ #
163
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/contexts/{context}`
164
+ #
165
+ # @param project [String]
166
+ # @param location [String]
167
+ # @param schema_registry [String]
168
+ # @param context [String]
169
+ #
170
+ # @return [::String]
171
+ def schema_context_path project:, location:, schema_registry:, context:
172
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
173
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
174
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
175
+
176
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/contexts/#{context}"
177
+ end
178
+
179
+ ##
180
+ # Create a fully-qualified SchemaMode resource string.
181
+ #
182
+ # @overload schema_mode_path(project:, location:, schema_registry:)
183
+ # The resource will be in the following format:
184
+ #
185
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/mode`
186
+ #
187
+ # @param project [String]
188
+ # @param location [String]
189
+ # @param schema_registry [String]
190
+ #
191
+ # @overload schema_mode_path(project:, location:, schema_registry:, subject:)
192
+ # The resource will be in the following format:
193
+ #
194
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/mode/{subject}`
195
+ #
196
+ # @param project [String]
197
+ # @param location [String]
198
+ # @param schema_registry [String]
199
+ # @param subject [String]
200
+ #
201
+ # @overload schema_mode_path(project:, location:, schema_registry:, context:)
202
+ # The resource will be in the following format:
203
+ #
204
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/contexts/{context}/mode`
205
+ #
206
+ # @param project [String]
207
+ # @param location [String]
208
+ # @param schema_registry [String]
209
+ # @param context [String]
210
+ #
211
+ # @overload schema_mode_path(project:, location:, schema_registry:, context:, subject:)
212
+ # The resource will be in the following format:
213
+ #
214
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/contexts/{context}/mode/{subject}`
215
+ #
216
+ # @param project [String]
217
+ # @param location [String]
218
+ # @param schema_registry [String]
219
+ # @param context [String]
220
+ # @param subject [String]
221
+ #
222
+ # @return [::String]
223
+ def schema_mode_path **args
224
+ resources = {
225
+ "location:project:schema_registry" => (proc do |project:, location:, schema_registry:|
226
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
227
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
228
+
229
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/mode"
230
+ end),
231
+ "location:project:schema_registry:subject" => (proc do |project:, location:, schema_registry:, subject:|
232
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
233
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
234
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
235
+
236
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/mode/#{subject}"
237
+ end),
238
+ "context:location:project:schema_registry" => (proc do |project:, location:, schema_registry:, context:|
239
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
240
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
241
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
242
+
243
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/contexts/#{context}/mode"
244
+ end),
245
+ "context:location:project:schema_registry:subject" => (proc do |project:, location:, schema_registry:, context:, subject:|
246
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
247
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
248
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
249
+ raise ::ArgumentError, "context cannot contain /" if context.to_s.include? "/"
250
+
251
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/contexts/#{context}/mode/#{subject}"
252
+ end)
253
+ }
254
+
255
+ resource = resources[args.keys.sort.join(":")]
256
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
257
+ resource.call(**args)
258
+ end
259
+
260
+ ##
261
+ # Create a fully-qualified SchemaRegistry resource string.
262
+ #
263
+ # The resource will be in the following format:
264
+ #
265
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}`
266
+ #
267
+ # @param project [String]
268
+ # @param location [String]
269
+ # @param schema_registry [String]
270
+ #
271
+ # @return [::String]
272
+ def schema_registry_path project:, location:, schema_registry:
273
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
274
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
275
+
276
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}"
277
+ end
278
+
279
+ ##
280
+ # Create a fully-qualified SchemaSubject resource string.
281
+ #
282
+ # @overload schema_subject_path(project:, location:, schema_registry:, subject:)
283
+ # The resource will be in the following format:
284
+ #
285
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/subjects/{subject}`
286
+ #
287
+ # @param project [String]
288
+ # @param location [String]
289
+ # @param schema_registry [String]
290
+ # @param subject [String]
291
+ #
292
+ # @overload schema_subject_path(project:, location:, schema_registry:, context:, subject:)
293
+ # The resource will be in the following format:
294
+ #
295
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/contexts/{context}/subjects/{subject}`
296
+ #
297
+ # @param project [String]
298
+ # @param location [String]
299
+ # @param schema_registry [String]
300
+ # @param context [String]
301
+ # @param subject [String]
302
+ #
303
+ # @return [::String]
304
+ def schema_subject_path **args
305
+ resources = {
306
+ "location:project:schema_registry:subject" => (proc do |project:, location:, schema_registry:, subject:|
307
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
308
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
309
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
310
+
311
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/subjects/#{subject}"
312
+ end),
313
+ "context:location:project:schema_registry:subject" => (proc do |project:, location:, schema_registry:, context:, subject:|
314
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
315
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
316
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
317
+ raise ::ArgumentError, "context cannot contain /" if context.to_s.include? "/"
318
+
319
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/contexts/#{context}/subjects/#{subject}"
320
+ end)
321
+ }
322
+
323
+ resource = resources[args.keys.sort.join(":")]
324
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
325
+ resource.call(**args)
326
+ end
327
+
328
+ ##
329
+ # Create a fully-qualified SchemaVersion resource string.
330
+ #
331
+ # @overload schema_version_path(project:, location:, schema_registry:, subject:, version:)
332
+ # The resource will be in the following format:
333
+ #
334
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/subjects/{subject}/versions/{version}`
335
+ #
336
+ # @param project [String]
337
+ # @param location [String]
338
+ # @param schema_registry [String]
339
+ # @param subject [String]
340
+ # @param version [String]
341
+ #
342
+ # @overload schema_version_path(project:, location:, schema_registry:, context:, subject:, version:)
343
+ # The resource will be in the following format:
344
+ #
345
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/contexts/{context}/subjects/{subject}/versions/{version}`
346
+ #
347
+ # @param project [String]
348
+ # @param location [String]
349
+ # @param schema_registry [String]
350
+ # @param context [String]
351
+ # @param subject [String]
352
+ # @param version [String]
353
+ #
354
+ # @overload schema_version_path(project:, location:, schema_registry:, subject:)
355
+ # The resource will be in the following format:
356
+ #
357
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/compatibility/subjects/{subject}/versions`
358
+ #
359
+ # @param project [String]
360
+ # @param location [String]
361
+ # @param schema_registry [String]
362
+ # @param subject [String]
363
+ #
364
+ # @overload schema_version_path(project:, location:, schema_registry:, context:, subject:)
365
+ # The resource will be in the following format:
366
+ #
367
+ # `projects/{project}/locations/{location}/schemaRegistries/{schema_registry}/contexts/{context}/compatibility/subjects/{subject}/versions`
368
+ #
369
+ # @param project [String]
370
+ # @param location [String]
371
+ # @param schema_registry [String]
372
+ # @param context [String]
373
+ # @param subject [String]
374
+ #
375
+ # @return [::String]
376
+ def schema_version_path **args
377
+ resources = {
378
+ "location:project:schema_registry:subject:version" => (proc do |project:, location:, schema_registry:, subject:, version:|
379
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
380
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
381
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
382
+ raise ::ArgumentError, "subject cannot contain /" if subject.to_s.include? "/"
383
+
384
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/subjects/#{subject}/versions/#{version}"
385
+ end),
386
+ "context:location:project:schema_registry:subject:version" => (proc do |project:, location:, schema_registry:, context:, subject:, version:|
387
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
388
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
389
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
390
+ raise ::ArgumentError, "context cannot contain /" if context.to_s.include? "/"
391
+ raise ::ArgumentError, "subject cannot contain /" if subject.to_s.include? "/"
392
+
393
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/contexts/#{context}/subjects/#{subject}/versions/#{version}"
394
+ end),
395
+ "location:project:schema_registry:subject" => (proc do |project:, location:, schema_registry:, subject:|
396
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
397
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
398
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
399
+
400
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/compatibility/subjects/#{subject}/versions"
401
+ end),
402
+ "context:location:project:schema_registry:subject" => (proc do |project:, location:, schema_registry:, context:, subject:|
403
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
404
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
405
+ raise ::ArgumentError, "schema_registry cannot contain /" if schema_registry.to_s.include? "/"
406
+ raise ::ArgumentError, "context cannot contain /" if context.to_s.include? "/"
407
+
408
+ "projects/#{project}/locations/#{location}/schemaRegistries/#{schema_registry}/contexts/#{context}/compatibility/subjects/#{subject}/versions"
409
+ end)
410
+ }
411
+
412
+ resource = resources[args.keys.sort.join(":")]
413
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
414
+ resource.call(**args)
415
+ end
416
+
417
+ extend self
418
+ end
419
+ end
420
+ end
421
+ end
422
+ end
423
+ end
424
+ end