protobug_protoc_gen_openapiv2_protos 0.2.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6119af5cad0ce26f6b642502c1d39c94decd4e4f198056da56187e8d4008a156
4
+ data.tar.gz: 7529911a8e5e07e952d1a3b45978e1365d1315c06513988c4bbd6dcc32796d43
5
+ SHA512:
6
+ metadata.gz: bbbd100fe28267be74d742e4d76d1d42826a2934fdff1e7288a325d9c64995496cb2edebefff50fb3b4779d6325381a0375262f5f0b8e67acae83bd740efad2d
7
+ data.tar.gz: ae7b75019702ec4e612fef04c46d7844ec0f7a22f3f93575cd107129fda330be6e66fdd7f45ff92555945bee93f64ebff7a069cff9d1015f6ca07054770f397d
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Code generated by protoc-gen-protobug. DO NOT EDIT.
4
+
5
+ # source: protoc-gen-openapiv2/options/annotations.proto
6
+ # syntax: proto3
7
+ # package: grpc.gateway.protoc_gen_openapiv2.options
8
+ # options:
9
+ # go_package: "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"
10
+
11
+ require "protobug"
12
+
13
+ require "google/protobuf/descriptor_pb"
14
+
15
+ require_relative "openapiv2_pb"
16
+
17
+ module Grpc
18
+ module Gateway
19
+ module ProtocGenOpenapiv2
20
+ module Options
21
+ # ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project.
22
+ #
23
+ # All IDs are the same, as assigned. It is okay that they are the same, as they extend
24
+ # different descriptor messages.
25
+ # extension: google.protobuf.FileOptions
26
+ # openapiv2_swagger 1042
27
+
28
+ # ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project.
29
+ #
30
+ # All IDs are the same, as assigned. It is okay that they are the same, as they extend
31
+ # different descriptor messages.
32
+ # extension: google.protobuf.MethodOptions
33
+ # openapiv2_operation 1042
34
+
35
+ # ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project.
36
+ #
37
+ # All IDs are the same, as assigned. It is okay that they are the same, as they extend
38
+ # different descriptor messages.
39
+ # extension: google.protobuf.MessageOptions
40
+ # openapiv2_schema 1042
41
+
42
+ # ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project.
43
+ #
44
+ # All IDs are the same, as assigned. It is okay that they are the same, as they extend
45
+ # different descriptor messages.
46
+ # extension: google.protobuf.ServiceOptions
47
+ # openapiv2_tag 1042
48
+
49
+ # ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project.
50
+ #
51
+ # All IDs are the same, as assigned. It is okay that they are the same, as they extend
52
+ # different descriptor messages.
53
+ # extension: google.protobuf.FieldOptions
54
+ # openapiv2_field 1042
55
+
56
+ def self.register_annotations_protos(registry)
57
+ Google::Protobuf.register_descriptor_protos(registry)
58
+ Grpc::Gateway::ProtocGenOpenapiv2::Options.register_openapiv2_protos(
59
+ registry
60
+ )
61
+ # extension: google.protobuf.FileOptions
62
+ # TYPE_MESSAGE 1042
63
+ # extension: google.protobuf.MethodOptions
64
+ # TYPE_MESSAGE 1042
65
+ # extension: google.protobuf.MessageOptions
66
+ # TYPE_MESSAGE 1042
67
+ # extension: google.protobuf.ServiceOptions
68
+ # TYPE_MESSAGE 1042
69
+ # extension: google.protobuf.FieldOptions
70
+ # TYPE_MESSAGE 1042
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,1200 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Code generated by protoc-gen-protobug. DO NOT EDIT.
4
+
5
+ # source: protoc-gen-openapiv2/options/openapiv2.proto
6
+ # syntax: proto3
7
+ # package: grpc.gateway.protoc_gen_openapiv2.options
8
+ # options:
9
+ # go_package: "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"
10
+
11
+ require "protobug"
12
+
13
+ require "google/protobuf/struct_pb"
14
+
15
+ module Grpc
16
+ module Gateway
17
+ module ProtocGenOpenapiv2
18
+ module Options
19
+ # Scheme describes the schemes supported by the OpenAPI Swagger
20
+ # and Operation objects.
21
+ class Scheme
22
+ extend Protobug::Enum
23
+
24
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.Scheme"
25
+
26
+ UNKNOWN = new("UNKNOWN", 0).freeze
27
+ HTTP = new("HTTP", 1).freeze
28
+ HTTPS = new("HTTPS", 2).freeze
29
+ WS = new("WS", 3).freeze
30
+ WSS = new("WSS", 4).freeze
31
+ end
32
+
33
+ # `Swagger` is a representation of OpenAPI v2 specification's Swagger object.
34
+ #
35
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#swaggerObject
36
+ #
37
+ # Example:
38
+ #
39
+ # option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {
40
+ # info: {
41
+ # title: "Echo API";
42
+ # version: "1.0";
43
+ # description: "";
44
+ # contact: {
45
+ # name: "gRPC-Gateway project";
46
+ # url: "https://github.com/grpc-ecosystem/grpc-gateway";
47
+ # email: "none@example.com";
48
+ # };
49
+ # license: {
50
+ # name: "BSD 3-Clause License";
51
+ # url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/main/LICENSE";
52
+ # };
53
+ # };
54
+ # schemes: HTTPS;
55
+ # consumes: "application/json";
56
+ # produces: "application/json";
57
+ # };
58
+ class Swagger
59
+ extend Protobug::Message
60
+
61
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.Swagger"
62
+
63
+ # Specifies the OpenAPI Specification version being used. It can be
64
+ # used by the OpenAPI UI and other clients to interpret the API listing. The
65
+ # value MUST be "2.0".
66
+ optional(1, "swagger", type: :string, proto3_optional: false)
67
+ # Provides metadata about the API. The metadata can be used by the
68
+ # clients if needed.
69
+ optional(
70
+ 2,
71
+ "info",
72
+ type: :message,
73
+ message_type: "grpc.gateway.protoc_gen_openapiv2.options.Info",
74
+ proto3_optional: false
75
+ )
76
+ # The host (name or ip) serving the API. This MUST be the host only and does
77
+ # not include the scheme nor sub-paths. It MAY include a port. If the host is
78
+ # not included, the host serving the documentation is to be used (including
79
+ # the port). The host does not support path templating.
80
+ optional(3, "host", type: :string, proto3_optional: false)
81
+ # The base path on which the API is served, which is relative to the host. If
82
+ # it is not included, the API is served directly under the host. The value
83
+ # MUST start with a leading slash (/). The basePath does not support path
84
+ # templating.
85
+ # Note that using `base_path` does not change the endpoint paths that are
86
+ # generated in the resulting OpenAPI file. If you wish to use `base_path`
87
+ # with relatively generated OpenAPI paths, the `base_path` prefix must be
88
+ # manually removed from your `google.api.http` paths and your code changed to
89
+ # serve the API from the `base_path`.
90
+ optional(
91
+ 4,
92
+ "base_path",
93
+ type: :string,
94
+ json_name: "basePath",
95
+ proto3_optional: false
96
+ )
97
+ # The transfer protocol of the API. Values MUST be from the list: "http",
98
+ # "https", "ws", "wss". If the schemes is not included, the default scheme to
99
+ # be used is the one used to access the OpenAPI definition itself.
100
+ repeated(
101
+ 5,
102
+ "schemes",
103
+ type: :enum,
104
+ enum_type: "grpc.gateway.protoc_gen_openapiv2.options.Scheme",
105
+ packed: true
106
+ )
107
+ # A list of MIME types the APIs can consume. This is global to all APIs but
108
+ # can be overridden on specific API calls. Value MUST be as described under
109
+ # Mime Types.
110
+ repeated(6, "consumes", type: :string)
111
+ # A list of MIME types the APIs can produce. This is global to all APIs but
112
+ # can be overridden on specific API calls. Value MUST be as described under
113
+ # Mime Types.
114
+ repeated(7, "produces", type: :string)
115
+ # An object to hold responses that can be used across operations. This
116
+ # property does not define global responses for all operations.
117
+ map(
118
+ 10,
119
+ "responses",
120
+ key_type: :string,
121
+ value_type: :message,
122
+ message_type: "grpc.gateway.protoc_gen_openapiv2.options.Response"
123
+ )
124
+ # Security scheme definitions that can be used across the specification.
125
+ optional(
126
+ 11,
127
+ "security_definitions",
128
+ type: :message,
129
+ message_type:
130
+ "grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions",
131
+ json_name: "securityDefinitions",
132
+ proto3_optional: false
133
+ )
134
+ # A declaration of which security schemes are applied for the API as a whole.
135
+ # The list of values describes alternative security schemes that can be used
136
+ # (that is, there is a logical OR between the security requirements).
137
+ # Individual operations can override this definition.
138
+ repeated(
139
+ 12,
140
+ "security",
141
+ type: :message,
142
+ message_type:
143
+ "grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement"
144
+ )
145
+ # A list of tags for API documentation control. Tags can be used for logical
146
+ # grouping of operations by resources or any other qualifier.
147
+ repeated(
148
+ 13,
149
+ "tags",
150
+ type: :message,
151
+ message_type: "grpc.gateway.protoc_gen_openapiv2.options.Tag"
152
+ )
153
+ # Additional external documentation.
154
+ optional(
155
+ 14,
156
+ "external_docs",
157
+ type: :message,
158
+ message_type:
159
+ "grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation",
160
+ json_name: "externalDocs",
161
+ proto3_optional: false
162
+ )
163
+ # Custom properties that start with "x-" such as "x-foo" used to describe
164
+ # extra functionality that is not covered by the standard OpenAPI Specification.
165
+ # See: https://swagger.io/docs/specification/2-0/swagger-extensions/
166
+ map(
167
+ 15,
168
+ "extensions",
169
+ key_type: :string,
170
+ value_type: :message,
171
+ message_type: "google.protobuf.Value"
172
+ )
173
+
174
+ # field 8 is reserved for 'paths'.
175
+ reserved_range(8...9)
176
+ reserved_range(9...10)
177
+ end
178
+
179
+ # `Operation` is a representation of OpenAPI v2 specification's Operation object.
180
+ #
181
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#operationObject
182
+ #
183
+ # Example:
184
+ #
185
+ # service EchoService {
186
+ # rpc Echo(SimpleMessage) returns (SimpleMessage) {
187
+ # option (google.api.http) = {
188
+ # get: "/v1/example/echo/{id}"
189
+ # };
190
+ #
191
+ # option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
192
+ # summary: "Get a message.";
193
+ # operation_id: "getMessage";
194
+ # tags: "echo";
195
+ # responses: {
196
+ # key: "200"
197
+ # value: {
198
+ # description: "OK";
199
+ # }
200
+ # }
201
+ # };
202
+ # }
203
+ # }
204
+ class Operation
205
+ extend Protobug::Message
206
+
207
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.Operation"
208
+
209
+ # A list of tags for API documentation control. Tags can be used for logical
210
+ # grouping of operations by resources or any other qualifier.
211
+ repeated(1, "tags", type: :string)
212
+ # A short summary of what the operation does. For maximum readability in the
213
+ # swagger-ui, this field SHOULD be less than 120 characters.
214
+ optional(2, "summary", type: :string, proto3_optional: false)
215
+ # A verbose explanation of the operation behavior. GFM syntax can be used for
216
+ # rich text representation.
217
+ optional(3, "description", type: :string, proto3_optional: false)
218
+ # Additional external documentation for this operation.
219
+ optional(
220
+ 4,
221
+ "external_docs",
222
+ type: :message,
223
+ message_type:
224
+ "grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation",
225
+ json_name: "externalDocs",
226
+ proto3_optional: false
227
+ )
228
+ # Unique string used to identify the operation. The id MUST be unique among
229
+ # all operations described in the API. Tools and libraries MAY use the
230
+ # operationId to uniquely identify an operation, therefore, it is recommended
231
+ # to follow common programming naming conventions.
232
+ optional(
233
+ 5,
234
+ "operation_id",
235
+ type: :string,
236
+ json_name: "operationId",
237
+ proto3_optional: false
238
+ )
239
+ # A list of MIME types the operation can consume. This overrides the consumes
240
+ # definition at the OpenAPI Object. An empty value MAY be used to clear the
241
+ # global definition. Value MUST be as described under Mime Types.
242
+ repeated(6, "consumes", type: :string)
243
+ # A list of MIME types the operation can produce. This overrides the produces
244
+ # definition at the OpenAPI Object. An empty value MAY be used to clear the
245
+ # global definition. Value MUST be as described under Mime Types.
246
+ repeated(7, "produces", type: :string)
247
+ # The list of possible responses as they are returned from executing this
248
+ # operation.
249
+ map(
250
+ 9,
251
+ "responses",
252
+ key_type: :string,
253
+ value_type: :message,
254
+ message_type: "grpc.gateway.protoc_gen_openapiv2.options.Response"
255
+ )
256
+ # The transfer protocol for the operation. Values MUST be from the list:
257
+ # "http", "https", "ws", "wss". The value overrides the OpenAPI Object
258
+ # schemes definition.
259
+ repeated(
260
+ 10,
261
+ "schemes",
262
+ type: :enum,
263
+ enum_type: "grpc.gateway.protoc_gen_openapiv2.options.Scheme",
264
+ packed: true
265
+ )
266
+ # Declares this operation to be deprecated. Usage of the declared operation
267
+ # should be refrained. Default value is false.
268
+ optional(11, "deprecated", type: :bool, proto3_optional: false)
269
+ # A declaration of which security schemes are applied for this operation. The
270
+ # list of values describes alternative security schemes that can be used
271
+ # (that is, there is a logical OR between the security requirements). This
272
+ # definition overrides any declared top-level security. To remove a top-level
273
+ # security declaration, an empty array can be used.
274
+ repeated(
275
+ 12,
276
+ "security",
277
+ type: :message,
278
+ message_type:
279
+ "grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement"
280
+ )
281
+ # Custom properties that start with "x-" such as "x-foo" used to describe
282
+ # extra functionality that is not covered by the standard OpenAPI Specification.
283
+ # See: https://swagger.io/docs/specification/2-0/swagger-extensions/
284
+ map(
285
+ 13,
286
+ "extensions",
287
+ key_type: :string,
288
+ value_type: :message,
289
+ message_type: "google.protobuf.Value"
290
+ )
291
+ # Custom parameters such as HTTP request headers.
292
+ # See: https://swagger.io/docs/specification/2-0/describing-parameters/
293
+ # and https://swagger.io/specification/v2/#parameter-object.
294
+ optional(
295
+ 14,
296
+ "parameters",
297
+ type: :message,
298
+ message_type:
299
+ "grpc.gateway.protoc_gen_openapiv2.options.Parameters",
300
+ proto3_optional: false
301
+ )
302
+
303
+ # field 8 is reserved for 'parameters'.
304
+ reserved_range(8...9)
305
+ end
306
+
307
+ # `Parameters` is a representation of OpenAPI v2 specification's parameters object.
308
+ # Note: This technically breaks compatibility with the OpenAPI 2 definition structure as we only
309
+ # allow header parameters to be set here since we do not want users specifying custom non-header
310
+ # parameters beyond those inferred from the Protobuf schema.
311
+ # See: https://swagger.io/specification/v2/#parameter-object
312
+ class Parameters
313
+ extend Protobug::Message
314
+
315
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.Parameters"
316
+
317
+ # `Headers` is one or more HTTP header parameter.
318
+ # See: https://swagger.io/docs/specification/2-0/describing-parameters/#header-parameters
319
+ repeated(
320
+ 1,
321
+ "headers",
322
+ type: :message,
323
+ message_type:
324
+ "grpc.gateway.protoc_gen_openapiv2.options.HeaderParameter"
325
+ )
326
+ end
327
+
328
+ # `HeaderParameter` a HTTP header parameter.
329
+ # See: https://swagger.io/specification/v2/#parameter-object
330
+ class HeaderParameter
331
+ extend Protobug::Message
332
+
333
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.HeaderParameter"
334
+
335
+ # `Type` is a supported HTTP header type.
336
+ # See https://swagger.io/specification/v2/#parameterType.
337
+ class Type
338
+ extend Protobug::Enum
339
+
340
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.HeaderParameter.Type"
341
+
342
+ UNKNOWN = new("UNKNOWN", 0).freeze
343
+ STRING = new("STRING", 1).freeze
344
+ NUMBER = new("NUMBER", 2).freeze
345
+ INTEGER = new("INTEGER", 3).freeze
346
+ BOOLEAN = new("BOOLEAN", 4).freeze
347
+ end
348
+
349
+ # `Name` is the header name.
350
+ optional(1, "name", type: :string, proto3_optional: false)
351
+ # `Description` is a short description of the header.
352
+ optional(2, "description", type: :string, proto3_optional: false)
353
+ # `Type` is the type of the object. The value MUST be one of "string", "number", "integer", or "boolean". The "array" type is not supported.
354
+ # See: https://swagger.io/specification/v2/#parameterType.
355
+ optional(
356
+ 3,
357
+ "type",
358
+ type: :enum,
359
+ enum_type:
360
+ "grpc.gateway.protoc_gen_openapiv2.options.HeaderParameter.Type",
361
+ proto3_optional: false
362
+ )
363
+ # `Format` The extending format for the previously mentioned type.
364
+ optional(4, "format", type: :string, proto3_optional: false)
365
+ # `Required` indicates if the header is optional
366
+ optional(5, "required", type: :bool, proto3_optional: false)
367
+
368
+ # field 6 is reserved for 'items', but in OpenAPI-specific way.
369
+ reserved_range(6...7)
370
+ reserved_range(7...8)
371
+ end
372
+
373
+ # `Header` is a representation of OpenAPI v2 specification's Header object.
374
+ #
375
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#headerObject
376
+ class Header
377
+ extend Protobug::Message
378
+
379
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.Header"
380
+
381
+ # `Description` is a short description of the header.
382
+ optional(1, "description", type: :string, proto3_optional: false)
383
+ # The type of the object. The value MUST be one of "string", "number", "integer", or "boolean". The "array" type is not supported.
384
+ optional(2, "type", type: :string, proto3_optional: false)
385
+ # `Format` The extending format for the previously mentioned type.
386
+ optional(3, "format", type: :string, proto3_optional: false)
387
+ # `Default` Declares the value of the header that the server will use if none is provided.
388
+ # See: https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.2.
389
+ # Unlike JSON Schema this value MUST conform to the defined type for the header.
390
+ optional(6, "default", type: :string, proto3_optional: false)
391
+ # 'Pattern' See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.3.
392
+ optional(13, "pattern", type: :string, proto3_optional: false)
393
+
394
+ # field 4 is reserved for 'items', but in OpenAPI-specific way.
395
+ reserved_range(4...5)
396
+ reserved_range(5...6)
397
+ reserved_range(7...8)
398
+ reserved_range(8...9)
399
+ reserved_range(9...10)
400
+ reserved_range(10...11)
401
+ reserved_range(11...12)
402
+ reserved_range(12...13)
403
+ reserved_range(14...15)
404
+ reserved_range(15...16)
405
+ reserved_range(16...17)
406
+ reserved_range(17...18)
407
+ reserved_range(18...19)
408
+ end
409
+
410
+ # `Response` is a representation of OpenAPI v2 specification's Response object.
411
+ #
412
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#responseObject
413
+ class Response
414
+ extend Protobug::Message
415
+
416
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.Response"
417
+
418
+ # `Description` is a short description of the response.
419
+ # GFM syntax can be used for rich text representation.
420
+ optional(1, "description", type: :string, proto3_optional: false)
421
+ # `Schema` optionally defines the structure of the response.
422
+ # If `Schema` is not provided, it means there is no content to the response.
423
+ optional(
424
+ 2,
425
+ "schema",
426
+ type: :message,
427
+ message_type: "grpc.gateway.protoc_gen_openapiv2.options.Schema",
428
+ proto3_optional: false
429
+ )
430
+ # `Headers` A list of headers that are sent with the response.
431
+ # `Header` name is expected to be a string in the canonical format of the MIME header key
432
+ # See: https://golang.org/pkg/net/textproto/#CanonicalMIMEHeaderKey
433
+ map(
434
+ 3,
435
+ "headers",
436
+ key_type: :string,
437
+ value_type: :message,
438
+ message_type: "grpc.gateway.protoc_gen_openapiv2.options.Header"
439
+ )
440
+ # `Examples` gives per-mimetype response examples.
441
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#example-object
442
+ map(4, "examples", key_type: :string, value_type: :string)
443
+ # Custom properties that start with "x-" such as "x-foo" used to describe
444
+ # extra functionality that is not covered by the standard OpenAPI Specification.
445
+ # See: https://swagger.io/docs/specification/2-0/swagger-extensions/
446
+ map(
447
+ 5,
448
+ "extensions",
449
+ key_type: :string,
450
+ value_type: :message,
451
+ message_type: "google.protobuf.Value"
452
+ )
453
+ end
454
+
455
+ # `Info` is a representation of OpenAPI v2 specification's Info object.
456
+ #
457
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#infoObject
458
+ #
459
+ # Example:
460
+ #
461
+ # option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {
462
+ # info: {
463
+ # title: "Echo API";
464
+ # version: "1.0";
465
+ # description: "";
466
+ # contact: {
467
+ # name: "gRPC-Gateway project";
468
+ # url: "https://github.com/grpc-ecosystem/grpc-gateway";
469
+ # email: "none@example.com";
470
+ # };
471
+ # license: {
472
+ # name: "BSD 3-Clause License";
473
+ # url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/main/LICENSE";
474
+ # };
475
+ # };
476
+ # ...
477
+ # };
478
+ class Info
479
+ extend Protobug::Message
480
+
481
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.Info"
482
+
483
+ # The title of the application.
484
+ optional(1, "title", type: :string, proto3_optional: false)
485
+ # A short description of the application. GFM syntax can be used for rich
486
+ # text representation.
487
+ optional(2, "description", type: :string, proto3_optional: false)
488
+ # The Terms of Service for the API.
489
+ optional(
490
+ 3,
491
+ "terms_of_service",
492
+ type: :string,
493
+ json_name: "termsOfService",
494
+ proto3_optional: false
495
+ )
496
+ # The contact information for the exposed API.
497
+ optional(
498
+ 4,
499
+ "contact",
500
+ type: :message,
501
+ message_type: "grpc.gateway.protoc_gen_openapiv2.options.Contact",
502
+ proto3_optional: false
503
+ )
504
+ # The license information for the exposed API.
505
+ optional(
506
+ 5,
507
+ "license",
508
+ type: :message,
509
+ message_type: "grpc.gateway.protoc_gen_openapiv2.options.License",
510
+ proto3_optional: false
511
+ )
512
+ # Provides the version of the application API (not to be confused
513
+ # with the specification version).
514
+ optional(6, "version", type: :string, proto3_optional: false)
515
+ # Custom properties that start with "x-" such as "x-foo" used to describe
516
+ # extra functionality that is not covered by the standard OpenAPI Specification.
517
+ # See: https://swagger.io/docs/specification/2-0/swagger-extensions/
518
+ map(
519
+ 7,
520
+ "extensions",
521
+ key_type: :string,
522
+ value_type: :message,
523
+ message_type: "google.protobuf.Value"
524
+ )
525
+ end
526
+
527
+ # `Contact` is a representation of OpenAPI v2 specification's Contact object.
528
+ #
529
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#contactObject
530
+ #
531
+ # Example:
532
+ #
533
+ # option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {
534
+ # info: {
535
+ # ...
536
+ # contact: {
537
+ # name: "gRPC-Gateway project";
538
+ # url: "https://github.com/grpc-ecosystem/grpc-gateway";
539
+ # email: "none@example.com";
540
+ # };
541
+ # ...
542
+ # };
543
+ # ...
544
+ # };
545
+ class Contact
546
+ extend Protobug::Message
547
+
548
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.Contact"
549
+
550
+ # The identifying name of the contact person/organization.
551
+ optional(1, "name", type: :string, proto3_optional: false)
552
+ # The URL pointing to the contact information. MUST be in the format of a
553
+ # URL.
554
+ optional(2, "url", type: :string, proto3_optional: false)
555
+ # The email address of the contact person/organization. MUST be in the format
556
+ # of an email address.
557
+ optional(3, "email", type: :string, proto3_optional: false)
558
+ end
559
+
560
+ # `License` is a representation of OpenAPI v2 specification's License object.
561
+ #
562
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#licenseObject
563
+ #
564
+ # Example:
565
+ #
566
+ # option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {
567
+ # info: {
568
+ # ...
569
+ # license: {
570
+ # name: "BSD 3-Clause License";
571
+ # url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/main/LICENSE";
572
+ # };
573
+ # ...
574
+ # };
575
+ # ...
576
+ # };
577
+ class License
578
+ extend Protobug::Message
579
+
580
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.License"
581
+
582
+ # The license name used for the API.
583
+ optional(1, "name", type: :string, proto3_optional: false)
584
+ # A URL to the license used for the API. MUST be in the format of a URL.
585
+ optional(2, "url", type: :string, proto3_optional: false)
586
+ end
587
+
588
+ # `ExternalDocumentation` is a representation of OpenAPI v2 specification's
589
+ # ExternalDocumentation object.
590
+ #
591
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#externalDocumentationObject
592
+ #
593
+ # Example:
594
+ #
595
+ # option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {
596
+ # ...
597
+ # external_docs: {
598
+ # description: "More about gRPC-Gateway";
599
+ # url: "https://github.com/grpc-ecosystem/grpc-gateway";
600
+ # }
601
+ # ...
602
+ # };
603
+ class ExternalDocumentation
604
+ extend Protobug::Message
605
+
606
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation"
607
+
608
+ # A short description of the target documentation. GFM syntax can be used for
609
+ # rich text representation.
610
+ optional(1, "description", type: :string, proto3_optional: false)
611
+ # The URL for the target documentation. Value MUST be in the format
612
+ # of a URL.
613
+ optional(2, "url", type: :string, proto3_optional: false)
614
+ end
615
+
616
+ # `Schema` is a representation of OpenAPI v2 specification's Schema object.
617
+ #
618
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#schemaObject
619
+ class Schema
620
+ extend Protobug::Message
621
+
622
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.Schema"
623
+
624
+ optional(
625
+ 1,
626
+ "json_schema",
627
+ type: :message,
628
+ message_type:
629
+ "grpc.gateway.protoc_gen_openapiv2.options.JSONSchema",
630
+ json_name: "jsonSchema",
631
+ proto3_optional: false
632
+ )
633
+ # Adds support for polymorphism. The discriminator is the schema property
634
+ # name that is used to differentiate between other schema that inherit this
635
+ # schema. The property name used MUST be defined at this schema and it MUST
636
+ # be in the required property list. When used, the value MUST be the name of
637
+ # this schema or any schema that inherits it.
638
+ optional(2, "discriminator", type: :string, proto3_optional: false)
639
+ # Relevant only for Schema "properties" definitions. Declares the property as
640
+ # "read only". This means that it MAY be sent as part of a response but MUST
641
+ # NOT be sent as part of the request. Properties marked as readOnly being
642
+ # true SHOULD NOT be in the required list of the defined schema. Default
643
+ # value is false.
644
+ optional(
645
+ 3,
646
+ "read_only",
647
+ type: :bool,
648
+ json_name: "readOnly",
649
+ proto3_optional: false
650
+ )
651
+ # Additional external documentation for this schema.
652
+ optional(
653
+ 5,
654
+ "external_docs",
655
+ type: :message,
656
+ message_type:
657
+ "grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation",
658
+ json_name: "externalDocs",
659
+ proto3_optional: false
660
+ )
661
+ # A free-form property to include an example of an instance for this schema in JSON.
662
+ # This is copied verbatim to the output.
663
+ optional(6, "example", type: :string, proto3_optional: false)
664
+
665
+ # field 4 is reserved for 'xml'.
666
+ reserved_range(4...5)
667
+ end
668
+
669
+ # `JSONSchema` represents properties from JSON Schema taken, and as used, in
670
+ # the OpenAPI v2 spec.
671
+ #
672
+ # This includes changes made by OpenAPI v2.
673
+ #
674
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#schemaObject
675
+ #
676
+ # See also: https://cswr.github.io/JsonSchema/spec/basic_types/,
677
+ # https://github.com/json-schema-org/json-schema-spec/blob/master/schema.json
678
+ #
679
+ # Example:
680
+ #
681
+ # message SimpleMessage {
682
+ # option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = {
683
+ # json_schema: {
684
+ # title: "SimpleMessage"
685
+ # description: "A simple message."
686
+ # required: ["id"]
687
+ # }
688
+ # };
689
+ #
690
+ # // Id represents the message identifier.
691
+ # string id = 1; [
692
+ # (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
693
+ # description: "The unique identifier of the simple message."
694
+ # }];
695
+ # }
696
+ class JSONSchema
697
+ extend Protobug::Message
698
+
699
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.JSONSchema"
700
+
701
+ # Ref is used to define an external reference to include in the message.
702
+ # This could be a fully qualified proto message reference, and that type must
703
+ # be imported into the protofile. If no message is identified, the Ref will
704
+ # be used verbatim in the output.
705
+ # For example:
706
+ # `ref: ".google.protobuf.Timestamp"`.
707
+ optional(3, "ref", type: :string, proto3_optional: false)
708
+ # The title of the schema.
709
+ optional(5, "title", type: :string, proto3_optional: false)
710
+ # A short description of the schema.
711
+ optional(6, "description", type: :string, proto3_optional: false)
712
+ optional(7, "default", type: :string, proto3_optional: false)
713
+ optional(
714
+ 8,
715
+ "read_only",
716
+ type: :bool,
717
+ json_name: "readOnly",
718
+ proto3_optional: false
719
+ )
720
+ # A free-form property to include a JSON example of this field. This is copied
721
+ # verbatim to the output swagger.json. Quotes must be escaped.
722
+ # This property is the same for 2.0 and 3.0.0 https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/3.0.0.md#schemaObject https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#schemaObject
723
+ optional(9, "example", type: :string, proto3_optional: false)
724
+ optional(
725
+ 10,
726
+ "multiple_of",
727
+ type: :double,
728
+ json_name: "multipleOf",
729
+ proto3_optional: false
730
+ )
731
+ # Maximum represents an inclusive upper limit for a numeric instance. The
732
+ # value of MUST be a number,
733
+ optional(11, "maximum", type: :double, proto3_optional: false)
734
+ optional(
735
+ 12,
736
+ "exclusive_maximum",
737
+ type: :bool,
738
+ json_name: "exclusiveMaximum",
739
+ proto3_optional: false
740
+ )
741
+ # minimum represents an inclusive lower limit for a numeric instance. The
742
+ # value of MUST be a number,
743
+ optional(13, "minimum", type: :double, proto3_optional: false)
744
+ optional(
745
+ 14,
746
+ "exclusive_minimum",
747
+ type: :bool,
748
+ json_name: "exclusiveMinimum",
749
+ proto3_optional: false
750
+ )
751
+ optional(
752
+ 15,
753
+ "max_length",
754
+ type: :uint64,
755
+ json_name: "maxLength",
756
+ proto3_optional: false
757
+ )
758
+ optional(
759
+ 16,
760
+ "min_length",
761
+ type: :uint64,
762
+ json_name: "minLength",
763
+ proto3_optional: false
764
+ )
765
+ optional(17, "pattern", type: :string, proto3_optional: false)
766
+ optional(
767
+ 20,
768
+ "max_items",
769
+ type: :uint64,
770
+ json_name: "maxItems",
771
+ proto3_optional: false
772
+ )
773
+ optional(
774
+ 21,
775
+ "min_items",
776
+ type: :uint64,
777
+ json_name: "minItems",
778
+ proto3_optional: false
779
+ )
780
+ optional(
781
+ 22,
782
+ "unique_items",
783
+ type: :bool,
784
+ json_name: "uniqueItems",
785
+ proto3_optional: false
786
+ )
787
+ optional(
788
+ 24,
789
+ "max_properties",
790
+ type: :uint64,
791
+ json_name: "maxProperties",
792
+ proto3_optional: false
793
+ )
794
+ optional(
795
+ 25,
796
+ "min_properties",
797
+ type: :uint64,
798
+ json_name: "minProperties",
799
+ proto3_optional: false
800
+ )
801
+ repeated(26, "required", type: :string)
802
+ # Items in 'array' must be unique.
803
+ repeated(34, "array", type: :string)
804
+ class JSONSchemaSimpleTypes
805
+ extend Protobug::Enum
806
+
807
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes"
808
+
809
+ UNKNOWN = new("UNKNOWN", 0).freeze
810
+ ARRAY = new("ARRAY", 1).freeze
811
+ BOOLEAN = new("BOOLEAN", 2).freeze
812
+ INTEGER = new("INTEGER", 3).freeze
813
+ NULL = new("NULL", 4).freeze
814
+ NUMBER = new("NUMBER", 5).freeze
815
+ OBJECT = new("OBJECT", 6).freeze
816
+ STRING = new("STRING", 7).freeze
817
+ end
818
+
819
+ repeated(
820
+ 35,
821
+ "type",
822
+ type: :enum,
823
+ enum_type:
824
+ "grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes",
825
+ packed: true
826
+ )
827
+ # `Format`
828
+ optional(36, "format", type: :string, proto3_optional: false)
829
+ # Items in `enum` must be unique https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.1
830
+ repeated(46, "enum", type: :string)
831
+ # Additional field level properties used when generating the OpenAPI v2 file.
832
+ optional(
833
+ 1_001,
834
+ "field_configuration",
835
+ type: :message,
836
+ message_type:
837
+ "grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration",
838
+ json_name: "fieldConfiguration",
839
+ proto3_optional: false
840
+ )
841
+ # 'FieldConfiguration' provides additional field level properties used when generating the OpenAPI v2 file.
842
+ # These properties are not defined by OpenAPIv2, but they are used to control the generation.
843
+ class FieldConfiguration
844
+ extend Protobug::Message
845
+
846
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration"
847
+
848
+ # Alternative parameter name when used as path parameter. If set, this will
849
+ # be used as the complete parameter name when this field is used as a path
850
+ # parameter. Use this to avoid having auto generated path parameter names
851
+ # for overlapping paths.
852
+ optional(
853
+ 47,
854
+ "path_param_name",
855
+ type: :string,
856
+ json_name: "pathParamName",
857
+ proto3_optional: false
858
+ )
859
+ end
860
+
861
+ # Custom properties that start with "x-" such as "x-foo" used to describe
862
+ # extra functionality that is not covered by the standard OpenAPI Specification.
863
+ # See: https://swagger.io/docs/specification/2-0/swagger-extensions/
864
+ map(
865
+ 48,
866
+ "extensions",
867
+ key_type: :string,
868
+ value_type: :message,
869
+ message_type: "google.protobuf.Value"
870
+ )
871
+
872
+ # field 1 is reserved for '$id', omitted from OpenAPI v2.
873
+ reserved_range(1...2)
874
+ reserved_range(2...3)
875
+ reserved_range(4...5)
876
+ reserved_range(18...19)
877
+ reserved_range(19...20)
878
+ reserved_range(23...24)
879
+ reserved_range(27...28)
880
+ reserved_range(28...29)
881
+ reserved_range(29...30)
882
+ reserved_range(30...34)
883
+ reserved_range(37...42)
884
+ reserved_range(42...43)
885
+ reserved_range(43...46)
886
+ end
887
+
888
+ # `Tag` is a representation of OpenAPI v2 specification's Tag object.
889
+ #
890
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#tagObject
891
+ class Tag
892
+ extend Protobug::Message
893
+
894
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.Tag"
895
+
896
+ # The name of the tag. Use it to allow override of the name of a
897
+ # global Tag object, then use that name to reference the tag throughout the
898
+ # OpenAPI file.
899
+ optional(1, "name", type: :string, proto3_optional: false)
900
+ # A short description for the tag. GFM syntax can be used for rich text
901
+ # representation.
902
+ optional(2, "description", type: :string, proto3_optional: false)
903
+ # Additional external documentation for this tag.
904
+ optional(
905
+ 3,
906
+ "external_docs",
907
+ type: :message,
908
+ message_type:
909
+ "grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation",
910
+ json_name: "externalDocs",
911
+ proto3_optional: false
912
+ )
913
+ # Custom properties that start with "x-" such as "x-foo" used to describe
914
+ # extra functionality that is not covered by the standard OpenAPI Specification.
915
+ # See: https://swagger.io/docs/specification/2-0/swagger-extensions/
916
+ map(
917
+ 4,
918
+ "extensions",
919
+ key_type: :string,
920
+ value_type: :message,
921
+ message_type: "google.protobuf.Value"
922
+ )
923
+ end
924
+
925
+ # `SecurityDefinitions` is a representation of OpenAPI v2 specification's
926
+ # Security Definitions object.
927
+ #
928
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#securityDefinitionsObject
929
+ #
930
+ # A declaration of the security schemes available to be used in the
931
+ # specification. This does not enforce the security schemes on the operations
932
+ # and only serves to provide the relevant details for each scheme.
933
+ class SecurityDefinitions
934
+ extend Protobug::Message
935
+
936
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions"
937
+
938
+ # A single security scheme definition, mapping a "name" to the scheme it
939
+ # defines.
940
+ map(
941
+ 1,
942
+ "security",
943
+ key_type: :string,
944
+ value_type: :message,
945
+ message_type:
946
+ "grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme"
947
+ )
948
+ end
949
+
950
+ # `SecurityScheme` is a representation of OpenAPI v2 specification's
951
+ # Security Scheme object.
952
+ #
953
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#securitySchemeObject
954
+ #
955
+ # Allows the definition of a security scheme that can be used by the
956
+ # operations. Supported schemes are basic authentication, an API key (either as
957
+ # a header or as a query parameter) and OAuth2's common flows (implicit,
958
+ # password, application and access code).
959
+ class SecurityScheme
960
+ extend Protobug::Message
961
+
962
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme"
963
+
964
+ # The type of the security scheme. Valid values are "basic",
965
+ # "apiKey" or "oauth2".
966
+ class Type
967
+ extend Protobug::Enum
968
+
969
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type"
970
+
971
+ TYPE_INVALID = new("TYPE_INVALID", 0).freeze
972
+ TYPE_BASIC = new("TYPE_BASIC", 1).freeze
973
+ TYPE_API_KEY = new("TYPE_API_KEY", 2).freeze
974
+ TYPE_OAUTH2 = new("TYPE_OAUTH2", 3).freeze
975
+ end
976
+
977
+ # The location of the API key. Valid values are "query" or "header".
978
+ class In
979
+ extend Protobug::Enum
980
+
981
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In"
982
+
983
+ IN_INVALID = new("IN_INVALID", 0).freeze
984
+ IN_QUERY = new("IN_QUERY", 1).freeze
985
+ IN_HEADER = new("IN_HEADER", 2).freeze
986
+ end
987
+
988
+ # The flow used by the OAuth2 security scheme. Valid values are
989
+ # "implicit", "password", "application" or "accessCode".
990
+ class Flow
991
+ extend Protobug::Enum
992
+
993
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow"
994
+
995
+ FLOW_INVALID = new("FLOW_INVALID", 0).freeze
996
+ FLOW_IMPLICIT = new("FLOW_IMPLICIT", 1).freeze
997
+ FLOW_PASSWORD = new("FLOW_PASSWORD", 2).freeze
998
+ FLOW_APPLICATION = new("FLOW_APPLICATION", 3).freeze
999
+ FLOW_ACCESS_CODE = new("FLOW_ACCESS_CODE", 4).freeze
1000
+ end
1001
+
1002
+ # The type of the security scheme. Valid values are "basic",
1003
+ # "apiKey" or "oauth2".
1004
+ optional(
1005
+ 1,
1006
+ "type",
1007
+ type: :enum,
1008
+ enum_type:
1009
+ "grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type",
1010
+ proto3_optional: false
1011
+ )
1012
+ # A short description for security scheme.
1013
+ optional(2, "description", type: :string, proto3_optional: false)
1014
+ # The name of the header or query parameter to be used.
1015
+ # Valid for apiKey.
1016
+ optional(3, "name", type: :string, proto3_optional: false)
1017
+ # The location of the API key. Valid values are "query" or
1018
+ # "header".
1019
+ # Valid for apiKey.
1020
+ optional(
1021
+ 4,
1022
+ "in",
1023
+ type: :enum,
1024
+ enum_type:
1025
+ "grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In",
1026
+ proto3_optional: false
1027
+ )
1028
+ # The flow used by the OAuth2 security scheme. Valid values are
1029
+ # "implicit", "password", "application" or "accessCode".
1030
+ # Valid for oauth2.
1031
+ optional(
1032
+ 5,
1033
+ "flow",
1034
+ type: :enum,
1035
+ enum_type:
1036
+ "grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow",
1037
+ proto3_optional: false
1038
+ )
1039
+ # The authorization URL to be used for this flow. This SHOULD be in
1040
+ # the form of a URL.
1041
+ # Valid for oauth2/implicit and oauth2/accessCode.
1042
+ optional(
1043
+ 6,
1044
+ "authorization_url",
1045
+ type: :string,
1046
+ json_name: "authorizationUrl",
1047
+ proto3_optional: false
1048
+ )
1049
+ # The token URL to be used for this flow. This SHOULD be in the
1050
+ # form of a URL.
1051
+ # Valid for oauth2/password, oauth2/application and oauth2/accessCode.
1052
+ optional(
1053
+ 7,
1054
+ "token_url",
1055
+ type: :string,
1056
+ json_name: "tokenUrl",
1057
+ proto3_optional: false
1058
+ )
1059
+ # The available scopes for the OAuth2 security scheme.
1060
+ # Valid for oauth2.
1061
+ optional(
1062
+ 8,
1063
+ "scopes",
1064
+ type: :message,
1065
+ message_type: "grpc.gateway.protoc_gen_openapiv2.options.Scopes",
1066
+ proto3_optional: false
1067
+ )
1068
+ # Custom properties that start with "x-" such as "x-foo" used to describe
1069
+ # extra functionality that is not covered by the standard OpenAPI Specification.
1070
+ # See: https://swagger.io/docs/specification/2-0/swagger-extensions/
1071
+ map(
1072
+ 9,
1073
+ "extensions",
1074
+ key_type: :string,
1075
+ value_type: :message,
1076
+ message_type: "google.protobuf.Value"
1077
+ )
1078
+ end
1079
+
1080
+ # `SecurityRequirement` is a representation of OpenAPI v2 specification's
1081
+ # Security Requirement object.
1082
+ #
1083
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#securityRequirementObject
1084
+ #
1085
+ # Lists the required security schemes to execute this operation. The object can
1086
+ # have multiple security schemes declared in it which are all required (that
1087
+ # is, there is a logical AND between the schemes).
1088
+ #
1089
+ # The name used for each property MUST correspond to a security scheme
1090
+ # declared in the Security Definitions.
1091
+ class SecurityRequirement
1092
+ extend Protobug::Message
1093
+
1094
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement"
1095
+
1096
+ # If the security scheme is of type "oauth2", then the value is a list of
1097
+ # scope names required for the execution. For other security scheme types,
1098
+ # the array MUST be empty.
1099
+ class SecurityRequirementValue
1100
+ extend Protobug::Message
1101
+
1102
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue"
1103
+
1104
+ repeated(1, "scope", type: :string)
1105
+ end
1106
+
1107
+ # Each name must correspond to a security scheme which is declared in
1108
+ # the Security Definitions. If the security scheme is of type "oauth2",
1109
+ # then the value is a list of scope names required for the execution.
1110
+ # For other security scheme types, the array MUST be empty.
1111
+ map(
1112
+ 1,
1113
+ "security_requirement",
1114
+ key_type: :string,
1115
+ value_type: :message,
1116
+ message_type:
1117
+ "grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue",
1118
+ json_name: "securityRequirement"
1119
+ )
1120
+ end
1121
+
1122
+ # `Scopes` is a representation of OpenAPI v2 specification's Scopes object.
1123
+ #
1124
+ # See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#scopesObject
1125
+ #
1126
+ # Lists the available scopes for an OAuth2 security scheme.
1127
+ class Scopes
1128
+ extend Protobug::Message
1129
+
1130
+ self.full_name = "grpc.gateway.protoc_gen_openapiv2.options.Scopes"
1131
+
1132
+ # Maps between a name of a scope to a short description of it (as the value
1133
+ # of the property).
1134
+ map(1, "scope", key_type: :string, value_type: :string)
1135
+ end
1136
+
1137
+ def self.register_openapiv2_protos(registry)
1138
+ Google::Protobuf.register_struct_protos(registry)
1139
+ registry.register(Grpc::Gateway::ProtocGenOpenapiv2::Options::Scheme)
1140
+ registry.register(Grpc::Gateway::ProtocGenOpenapiv2::Options::Swagger)
1141
+ registry.register(
1142
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::Operation
1143
+ )
1144
+ registry.register(
1145
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::Parameters
1146
+ )
1147
+ registry.register(
1148
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::HeaderParameter
1149
+ )
1150
+ registry.register(
1151
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::HeaderParameter::Type
1152
+ )
1153
+ registry.register(Grpc::Gateway::ProtocGenOpenapiv2::Options::Header)
1154
+ registry.register(
1155
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::Response
1156
+ )
1157
+ registry.register(Grpc::Gateway::ProtocGenOpenapiv2::Options::Info)
1158
+ registry.register(Grpc::Gateway::ProtocGenOpenapiv2::Options::Contact)
1159
+ registry.register(Grpc::Gateway::ProtocGenOpenapiv2::Options::License)
1160
+ registry.register(
1161
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::ExternalDocumentation
1162
+ )
1163
+ registry.register(Grpc::Gateway::ProtocGenOpenapiv2::Options::Schema)
1164
+ registry.register(
1165
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::JSONSchema
1166
+ )
1167
+ registry.register(
1168
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::JSONSchema::JSONSchemaSimpleTypes
1169
+ )
1170
+ registry.register(
1171
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::JSONSchema::FieldConfiguration
1172
+ )
1173
+ registry.register(Grpc::Gateway::ProtocGenOpenapiv2::Options::Tag)
1174
+ registry.register(
1175
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::SecurityDefinitions
1176
+ )
1177
+ registry.register(
1178
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::SecurityScheme
1179
+ )
1180
+ registry.register(
1181
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::SecurityScheme::Type
1182
+ )
1183
+ registry.register(
1184
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::SecurityScheme::In
1185
+ )
1186
+ registry.register(
1187
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::SecurityScheme::Flow
1188
+ )
1189
+ registry.register(
1190
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::SecurityRequirement
1191
+ )
1192
+ registry.register(
1193
+ Grpc::Gateway::ProtocGenOpenapiv2::Options::SecurityRequirement::SecurityRequirementValue
1194
+ )
1195
+ registry.register(Grpc::Gateway::ProtocGenOpenapiv2::Options::Scopes)
1196
+ end
1197
+ end
1198
+ end
1199
+ end
1200
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "protobug"
4
+
5
+ require_relative "grpc/gateway/protoc_gen_openapiv2/options/annotations_pb"
6
+ require_relative "grpc/gateway/protoc_gen_openapiv2/options/openapiv2_pb"
metadata ADDED
@@ -0,0 +1,90 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: protobug_protoc_gen_openapiv2_protos
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Samuel Giddins
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2026-06-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: protobug
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.2.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: protobug_well_known_protos
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.2.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.2.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: protobug_googleapis_field_behavior_protos
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 0.2.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.2.0
55
+ description:
56
+ email:
57
+ - segiddins@segiddins.me
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/grpc/gateway/protoc_gen_openapiv2/options/annotations_pb.rb
63
+ - lib/grpc/gateway/protoc_gen_openapiv2/options/openapiv2_pb.rb
64
+ - lib/protobug_protoc_gen_openapiv2_protos.rb
65
+ homepage: https://github.com/segiddins/protobug/blob/v0.2.0/gen/protobug_protoc_gen_openapiv2_protos
66
+ licenses:
67
+ - Unlicense
68
+ metadata:
69
+ rubygems_mfa_required: 'true'
70
+ post_install_message:
71
+ rdoc_options: []
72
+ require_paths:
73
+ - lib
74
+ required_ruby_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 3.0.0
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ requirements: []
85
+ rubygems_version: 3.5.9
86
+ signing_key:
87
+ specification_version: 4
88
+ summary: Compiled protos for protobug from https://github.com/grpc-ecosystem/grpc-gateway
89
+ (protoc_gen_openapiv2_protos)
90
+ test_files: []