github.com/grpc-ecosystem/grpc-gateway/v2@v2.19.1/protoc-gen-openapiv2/options/openapiv2.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // versions: 3 // protoc-gen-go v1.28.1 4 // protoc (unknown) 5 // source: protoc-gen-openapiv2/options/openapiv2.proto 6 7 package options 8 9 import ( 10 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 11 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 12 structpb "google.golang.org/protobuf/types/known/structpb" 13 reflect "reflect" 14 sync "sync" 15 ) 16 17 const ( 18 // Verify that this generated code is sufficiently up-to-date. 19 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 20 // Verify that runtime/protoimpl is sufficiently up-to-date. 21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 22 ) 23 24 // Scheme describes the schemes supported by the OpenAPI Swagger 25 // and Operation objects. 26 type Scheme int32 27 28 const ( 29 Scheme_UNKNOWN Scheme = 0 30 Scheme_HTTP Scheme = 1 31 Scheme_HTTPS Scheme = 2 32 Scheme_WS Scheme = 3 33 Scheme_WSS Scheme = 4 34 ) 35 36 // Enum value maps for Scheme. 37 var ( 38 Scheme_name = map[int32]string{ 39 0: "UNKNOWN", 40 1: "HTTP", 41 2: "HTTPS", 42 3: "WS", 43 4: "WSS", 44 } 45 Scheme_value = map[string]int32{ 46 "UNKNOWN": 0, 47 "HTTP": 1, 48 "HTTPS": 2, 49 "WS": 3, 50 "WSS": 4, 51 } 52 ) 53 54 func (x Scheme) Enum() *Scheme { 55 p := new(Scheme) 56 *p = x 57 return p 58 } 59 60 func (x Scheme) String() string { 61 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 62 } 63 64 func (Scheme) Descriptor() protoreflect.EnumDescriptor { 65 return file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes[0].Descriptor() 66 } 67 68 func (Scheme) Type() protoreflect.EnumType { 69 return &file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes[0] 70 } 71 72 func (x Scheme) Number() protoreflect.EnumNumber { 73 return protoreflect.EnumNumber(x) 74 } 75 76 // Deprecated: Use Scheme.Descriptor instead. 77 func (Scheme) EnumDescriptor() ([]byte, []int) { 78 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{0} 79 } 80 81 // `Type` is a a supported HTTP header type. 82 // See https://swagger.io/specification/v2/#parameterType. 83 type HeaderParameter_Type int32 84 85 const ( 86 HeaderParameter_UNKNOWN HeaderParameter_Type = 0 87 HeaderParameter_STRING HeaderParameter_Type = 1 88 HeaderParameter_NUMBER HeaderParameter_Type = 2 89 HeaderParameter_INTEGER HeaderParameter_Type = 3 90 HeaderParameter_BOOLEAN HeaderParameter_Type = 4 91 ) 92 93 // Enum value maps for HeaderParameter_Type. 94 var ( 95 HeaderParameter_Type_name = map[int32]string{ 96 0: "UNKNOWN", 97 1: "STRING", 98 2: "NUMBER", 99 3: "INTEGER", 100 4: "BOOLEAN", 101 } 102 HeaderParameter_Type_value = map[string]int32{ 103 "UNKNOWN": 0, 104 "STRING": 1, 105 "NUMBER": 2, 106 "INTEGER": 3, 107 "BOOLEAN": 4, 108 } 109 ) 110 111 func (x HeaderParameter_Type) Enum() *HeaderParameter_Type { 112 p := new(HeaderParameter_Type) 113 *p = x 114 return p 115 } 116 117 func (x HeaderParameter_Type) String() string { 118 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 119 } 120 121 func (HeaderParameter_Type) Descriptor() protoreflect.EnumDescriptor { 122 return file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes[1].Descriptor() 123 } 124 125 func (HeaderParameter_Type) Type() protoreflect.EnumType { 126 return &file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes[1] 127 } 128 129 func (x HeaderParameter_Type) Number() protoreflect.EnumNumber { 130 return protoreflect.EnumNumber(x) 131 } 132 133 // Deprecated: Use HeaderParameter_Type.Descriptor instead. 134 func (HeaderParameter_Type) EnumDescriptor() ([]byte, []int) { 135 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{3, 0} 136 } 137 138 type JSONSchema_JSONSchemaSimpleTypes int32 139 140 const ( 141 JSONSchema_UNKNOWN JSONSchema_JSONSchemaSimpleTypes = 0 142 JSONSchema_ARRAY JSONSchema_JSONSchemaSimpleTypes = 1 143 JSONSchema_BOOLEAN JSONSchema_JSONSchemaSimpleTypes = 2 144 JSONSchema_INTEGER JSONSchema_JSONSchemaSimpleTypes = 3 145 JSONSchema_NULL JSONSchema_JSONSchemaSimpleTypes = 4 146 JSONSchema_NUMBER JSONSchema_JSONSchemaSimpleTypes = 5 147 JSONSchema_OBJECT JSONSchema_JSONSchemaSimpleTypes = 6 148 JSONSchema_STRING JSONSchema_JSONSchemaSimpleTypes = 7 149 ) 150 151 // Enum value maps for JSONSchema_JSONSchemaSimpleTypes. 152 var ( 153 JSONSchema_JSONSchemaSimpleTypes_name = map[int32]string{ 154 0: "UNKNOWN", 155 1: "ARRAY", 156 2: "BOOLEAN", 157 3: "INTEGER", 158 4: "NULL", 159 5: "NUMBER", 160 6: "OBJECT", 161 7: "STRING", 162 } 163 JSONSchema_JSONSchemaSimpleTypes_value = map[string]int32{ 164 "UNKNOWN": 0, 165 "ARRAY": 1, 166 "BOOLEAN": 2, 167 "INTEGER": 3, 168 "NULL": 4, 169 "NUMBER": 5, 170 "OBJECT": 6, 171 "STRING": 7, 172 } 173 ) 174 175 func (x JSONSchema_JSONSchemaSimpleTypes) Enum() *JSONSchema_JSONSchemaSimpleTypes { 176 p := new(JSONSchema_JSONSchemaSimpleTypes) 177 *p = x 178 return p 179 } 180 181 func (x JSONSchema_JSONSchemaSimpleTypes) String() string { 182 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 183 } 184 185 func (JSONSchema_JSONSchemaSimpleTypes) Descriptor() protoreflect.EnumDescriptor { 186 return file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes[2].Descriptor() 187 } 188 189 func (JSONSchema_JSONSchemaSimpleTypes) Type() protoreflect.EnumType { 190 return &file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes[2] 191 } 192 193 func (x JSONSchema_JSONSchemaSimpleTypes) Number() protoreflect.EnumNumber { 194 return protoreflect.EnumNumber(x) 195 } 196 197 // Deprecated: Use JSONSchema_JSONSchemaSimpleTypes.Descriptor instead. 198 func (JSONSchema_JSONSchemaSimpleTypes) EnumDescriptor() ([]byte, []int) { 199 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{11, 0} 200 } 201 202 // The type of the security scheme. Valid values are "basic", 203 // "apiKey" or "oauth2". 204 type SecurityScheme_Type int32 205 206 const ( 207 SecurityScheme_TYPE_INVALID SecurityScheme_Type = 0 208 SecurityScheme_TYPE_BASIC SecurityScheme_Type = 1 209 SecurityScheme_TYPE_API_KEY SecurityScheme_Type = 2 210 SecurityScheme_TYPE_OAUTH2 SecurityScheme_Type = 3 211 ) 212 213 // Enum value maps for SecurityScheme_Type. 214 var ( 215 SecurityScheme_Type_name = map[int32]string{ 216 0: "TYPE_INVALID", 217 1: "TYPE_BASIC", 218 2: "TYPE_API_KEY", 219 3: "TYPE_OAUTH2", 220 } 221 SecurityScheme_Type_value = map[string]int32{ 222 "TYPE_INVALID": 0, 223 "TYPE_BASIC": 1, 224 "TYPE_API_KEY": 2, 225 "TYPE_OAUTH2": 3, 226 } 227 ) 228 229 func (x SecurityScheme_Type) Enum() *SecurityScheme_Type { 230 p := new(SecurityScheme_Type) 231 *p = x 232 return p 233 } 234 235 func (x SecurityScheme_Type) String() string { 236 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 237 } 238 239 func (SecurityScheme_Type) Descriptor() protoreflect.EnumDescriptor { 240 return file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes[3].Descriptor() 241 } 242 243 func (SecurityScheme_Type) Type() protoreflect.EnumType { 244 return &file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes[3] 245 } 246 247 func (x SecurityScheme_Type) Number() protoreflect.EnumNumber { 248 return protoreflect.EnumNumber(x) 249 } 250 251 // Deprecated: Use SecurityScheme_Type.Descriptor instead. 252 func (SecurityScheme_Type) EnumDescriptor() ([]byte, []int) { 253 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{14, 0} 254 } 255 256 // The location of the API key. Valid values are "query" or "header". 257 type SecurityScheme_In int32 258 259 const ( 260 SecurityScheme_IN_INVALID SecurityScheme_In = 0 261 SecurityScheme_IN_QUERY SecurityScheme_In = 1 262 SecurityScheme_IN_HEADER SecurityScheme_In = 2 263 ) 264 265 // Enum value maps for SecurityScheme_In. 266 var ( 267 SecurityScheme_In_name = map[int32]string{ 268 0: "IN_INVALID", 269 1: "IN_QUERY", 270 2: "IN_HEADER", 271 } 272 SecurityScheme_In_value = map[string]int32{ 273 "IN_INVALID": 0, 274 "IN_QUERY": 1, 275 "IN_HEADER": 2, 276 } 277 ) 278 279 func (x SecurityScheme_In) Enum() *SecurityScheme_In { 280 p := new(SecurityScheme_In) 281 *p = x 282 return p 283 } 284 285 func (x SecurityScheme_In) String() string { 286 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 287 } 288 289 func (SecurityScheme_In) Descriptor() protoreflect.EnumDescriptor { 290 return file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes[4].Descriptor() 291 } 292 293 func (SecurityScheme_In) Type() protoreflect.EnumType { 294 return &file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes[4] 295 } 296 297 func (x SecurityScheme_In) Number() protoreflect.EnumNumber { 298 return protoreflect.EnumNumber(x) 299 } 300 301 // Deprecated: Use SecurityScheme_In.Descriptor instead. 302 func (SecurityScheme_In) EnumDescriptor() ([]byte, []int) { 303 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{14, 1} 304 } 305 306 // The flow used by the OAuth2 security scheme. Valid values are 307 // "implicit", "password", "application" or "accessCode". 308 type SecurityScheme_Flow int32 309 310 const ( 311 SecurityScheme_FLOW_INVALID SecurityScheme_Flow = 0 312 SecurityScheme_FLOW_IMPLICIT SecurityScheme_Flow = 1 313 SecurityScheme_FLOW_PASSWORD SecurityScheme_Flow = 2 314 SecurityScheme_FLOW_APPLICATION SecurityScheme_Flow = 3 315 SecurityScheme_FLOW_ACCESS_CODE SecurityScheme_Flow = 4 316 ) 317 318 // Enum value maps for SecurityScheme_Flow. 319 var ( 320 SecurityScheme_Flow_name = map[int32]string{ 321 0: "FLOW_INVALID", 322 1: "FLOW_IMPLICIT", 323 2: "FLOW_PASSWORD", 324 3: "FLOW_APPLICATION", 325 4: "FLOW_ACCESS_CODE", 326 } 327 SecurityScheme_Flow_value = map[string]int32{ 328 "FLOW_INVALID": 0, 329 "FLOW_IMPLICIT": 1, 330 "FLOW_PASSWORD": 2, 331 "FLOW_APPLICATION": 3, 332 "FLOW_ACCESS_CODE": 4, 333 } 334 ) 335 336 func (x SecurityScheme_Flow) Enum() *SecurityScheme_Flow { 337 p := new(SecurityScheme_Flow) 338 *p = x 339 return p 340 } 341 342 func (x SecurityScheme_Flow) String() string { 343 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 344 } 345 346 func (SecurityScheme_Flow) Descriptor() protoreflect.EnumDescriptor { 347 return file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes[5].Descriptor() 348 } 349 350 func (SecurityScheme_Flow) Type() protoreflect.EnumType { 351 return &file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes[5] 352 } 353 354 func (x SecurityScheme_Flow) Number() protoreflect.EnumNumber { 355 return protoreflect.EnumNumber(x) 356 } 357 358 // Deprecated: Use SecurityScheme_Flow.Descriptor instead. 359 func (SecurityScheme_Flow) EnumDescriptor() ([]byte, []int) { 360 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{14, 2} 361 } 362 363 // `Swagger` is a representation of OpenAPI v2 specification's Swagger object. 364 // 365 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#swaggerObject 366 // 367 // Example: 368 // 369 // option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { 370 // info: { 371 // title: "Echo API"; 372 // version: "1.0"; 373 // description: ""; 374 // contact: { 375 // name: "gRPC-Gateway project"; 376 // url: "https://github.com/grpc-ecosystem/grpc-gateway"; 377 // email: "none@example.com"; 378 // }; 379 // license: { 380 // name: "BSD 3-Clause License"; 381 // url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/main/LICENSE"; 382 // }; 383 // }; 384 // schemes: HTTPS; 385 // consumes: "application/json"; 386 // produces: "application/json"; 387 // }; 388 type Swagger struct { 389 state protoimpl.MessageState 390 sizeCache protoimpl.SizeCache 391 unknownFields protoimpl.UnknownFields 392 393 // Specifies the OpenAPI Specification version being used. It can be 394 // used by the OpenAPI UI and other clients to interpret the API listing. The 395 // value MUST be "2.0". 396 Swagger string `protobuf:"bytes,1,opt,name=swagger,proto3" json:"swagger,omitempty"` 397 // Provides metadata about the API. The metadata can be used by the 398 // clients if needed. 399 Info *Info `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"` 400 // The host (name or ip) serving the API. This MUST be the host only and does 401 // not include the scheme nor sub-paths. It MAY include a port. If the host is 402 // not included, the host serving the documentation is to be used (including 403 // the port). The host does not support path templating. 404 Host string `protobuf:"bytes,3,opt,name=host,proto3" json:"host,omitempty"` 405 // The base path on which the API is served, which is relative to the host. If 406 // it is not included, the API is served directly under the host. The value 407 // MUST start with a leading slash (/). The basePath does not support path 408 // templating. 409 // Note that using `base_path` does not change the endpoint paths that are 410 // generated in the resulting OpenAPI file. If you wish to use `base_path` 411 // with relatively generated OpenAPI paths, the `base_path` prefix must be 412 // manually removed from your `google.api.http` paths and your code changed to 413 // serve the API from the `base_path`. 414 BasePath string `protobuf:"bytes,4,opt,name=base_path,json=basePath,proto3" json:"base_path,omitempty"` 415 // The transfer protocol of the API. Values MUST be from the list: "http", 416 // "https", "ws", "wss". If the schemes is not included, the default scheme to 417 // be used is the one used to access the OpenAPI definition itself. 418 Schemes []Scheme `protobuf:"varint,5,rep,packed,name=schemes,proto3,enum=grpc.gateway.protoc_gen_openapiv2.options.Scheme" json:"schemes,omitempty"` 419 // A list of MIME types the APIs can consume. This is global to all APIs but 420 // can be overridden on specific API calls. Value MUST be as described under 421 // Mime Types. 422 Consumes []string `protobuf:"bytes,6,rep,name=consumes,proto3" json:"consumes,omitempty"` 423 // A list of MIME types the APIs can produce. This is global to all APIs but 424 // can be overridden on specific API calls. Value MUST be as described under 425 // Mime Types. 426 Produces []string `protobuf:"bytes,7,rep,name=produces,proto3" json:"produces,omitempty"` 427 // An object to hold responses that can be used across operations. This 428 // property does not define global responses for all operations. 429 Responses map[string]*Response `protobuf:"bytes,10,rep,name=responses,proto3" json:"responses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 430 // Security scheme definitions that can be used across the specification. 431 SecurityDefinitions *SecurityDefinitions `protobuf:"bytes,11,opt,name=security_definitions,json=securityDefinitions,proto3" json:"security_definitions,omitempty"` 432 // A declaration of which security schemes are applied for the API as a whole. 433 // The list of values describes alternative security schemes that can be used 434 // (that is, there is a logical OR between the security requirements). 435 // Individual operations can override this definition. 436 Security []*SecurityRequirement `protobuf:"bytes,12,rep,name=security,proto3" json:"security,omitempty"` 437 // A list of tags for API documentation control. Tags can be used for logical 438 // grouping of operations by resources or any other qualifier. 439 Tags []*Tag `protobuf:"bytes,13,rep,name=tags,proto3" json:"tags,omitempty"` 440 // Additional external documentation. 441 ExternalDocs *ExternalDocumentation `protobuf:"bytes,14,opt,name=external_docs,json=externalDocs,proto3" json:"external_docs,omitempty"` 442 // Custom properties that start with "x-" such as "x-foo" used to describe 443 // extra functionality that is not covered by the standard OpenAPI Specification. 444 // See: https://swagger.io/docs/specification/2-0/swagger-extensions/ 445 Extensions map[string]*structpb.Value `protobuf:"bytes,15,rep,name=extensions,proto3" json:"extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 446 } 447 448 func (x *Swagger) Reset() { 449 *x = Swagger{} 450 if protoimpl.UnsafeEnabled { 451 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[0] 452 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 453 ms.StoreMessageInfo(mi) 454 } 455 } 456 457 func (x *Swagger) String() string { 458 return protoimpl.X.MessageStringOf(x) 459 } 460 461 func (*Swagger) ProtoMessage() {} 462 463 func (x *Swagger) ProtoReflect() protoreflect.Message { 464 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[0] 465 if protoimpl.UnsafeEnabled && x != nil { 466 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 467 if ms.LoadMessageInfo() == nil { 468 ms.StoreMessageInfo(mi) 469 } 470 return ms 471 } 472 return mi.MessageOf(x) 473 } 474 475 // Deprecated: Use Swagger.ProtoReflect.Descriptor instead. 476 func (*Swagger) Descriptor() ([]byte, []int) { 477 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{0} 478 } 479 480 func (x *Swagger) GetSwagger() string { 481 if x != nil { 482 return x.Swagger 483 } 484 return "" 485 } 486 487 func (x *Swagger) GetInfo() *Info { 488 if x != nil { 489 return x.Info 490 } 491 return nil 492 } 493 494 func (x *Swagger) GetHost() string { 495 if x != nil { 496 return x.Host 497 } 498 return "" 499 } 500 501 func (x *Swagger) GetBasePath() string { 502 if x != nil { 503 return x.BasePath 504 } 505 return "" 506 } 507 508 func (x *Swagger) GetSchemes() []Scheme { 509 if x != nil { 510 return x.Schemes 511 } 512 return nil 513 } 514 515 func (x *Swagger) GetConsumes() []string { 516 if x != nil { 517 return x.Consumes 518 } 519 return nil 520 } 521 522 func (x *Swagger) GetProduces() []string { 523 if x != nil { 524 return x.Produces 525 } 526 return nil 527 } 528 529 func (x *Swagger) GetResponses() map[string]*Response { 530 if x != nil { 531 return x.Responses 532 } 533 return nil 534 } 535 536 func (x *Swagger) GetSecurityDefinitions() *SecurityDefinitions { 537 if x != nil { 538 return x.SecurityDefinitions 539 } 540 return nil 541 } 542 543 func (x *Swagger) GetSecurity() []*SecurityRequirement { 544 if x != nil { 545 return x.Security 546 } 547 return nil 548 } 549 550 func (x *Swagger) GetTags() []*Tag { 551 if x != nil { 552 return x.Tags 553 } 554 return nil 555 } 556 557 func (x *Swagger) GetExternalDocs() *ExternalDocumentation { 558 if x != nil { 559 return x.ExternalDocs 560 } 561 return nil 562 } 563 564 func (x *Swagger) GetExtensions() map[string]*structpb.Value { 565 if x != nil { 566 return x.Extensions 567 } 568 return nil 569 } 570 571 // `Operation` is a representation of OpenAPI v2 specification's Operation object. 572 // 573 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#operationObject 574 // 575 // Example: 576 // 577 // service EchoService { 578 // rpc Echo(SimpleMessage) returns (SimpleMessage) { 579 // option (google.api.http) = { 580 // get: "/v1/example/echo/{id}" 581 // }; 582 // 583 // option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { 584 // summary: "Get a message."; 585 // operation_id: "getMessage"; 586 // tags: "echo"; 587 // responses: { 588 // key: "200" 589 // value: { 590 // description: "OK"; 591 // } 592 // } 593 // }; 594 // } 595 // } 596 type Operation struct { 597 state protoimpl.MessageState 598 sizeCache protoimpl.SizeCache 599 unknownFields protoimpl.UnknownFields 600 601 // A list of tags for API documentation control. Tags can be used for logical 602 // grouping of operations by resources or any other qualifier. 603 Tags []string `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"` 604 // A short summary of what the operation does. For maximum readability in the 605 // swagger-ui, this field SHOULD be less than 120 characters. 606 Summary string `protobuf:"bytes,2,opt,name=summary,proto3" json:"summary,omitempty"` 607 // A verbose explanation of the operation behavior. GFM syntax can be used for 608 // rich text representation. 609 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 610 // Additional external documentation for this operation. 611 ExternalDocs *ExternalDocumentation `protobuf:"bytes,4,opt,name=external_docs,json=externalDocs,proto3" json:"external_docs,omitempty"` 612 // Unique string used to identify the operation. The id MUST be unique among 613 // all operations described in the API. Tools and libraries MAY use the 614 // operationId to uniquely identify an operation, therefore, it is recommended 615 // to follow common programming naming conventions. 616 OperationId string `protobuf:"bytes,5,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"` 617 // A list of MIME types the operation can consume. This overrides the consumes 618 // definition at the OpenAPI Object. An empty value MAY be used to clear the 619 // global definition. Value MUST be as described under Mime Types. 620 Consumes []string `protobuf:"bytes,6,rep,name=consumes,proto3" json:"consumes,omitempty"` 621 // A list of MIME types the operation can produce. This overrides the produces 622 // definition at the OpenAPI Object. An empty value MAY be used to clear the 623 // global definition. Value MUST be as described under Mime Types. 624 Produces []string `protobuf:"bytes,7,rep,name=produces,proto3" json:"produces,omitempty"` 625 // The list of possible responses as they are returned from executing this 626 // operation. 627 Responses map[string]*Response `protobuf:"bytes,9,rep,name=responses,proto3" json:"responses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 628 // The transfer protocol for the operation. Values MUST be from the list: 629 // "http", "https", "ws", "wss". The value overrides the OpenAPI Object 630 // schemes definition. 631 Schemes []Scheme `protobuf:"varint,10,rep,packed,name=schemes,proto3,enum=grpc.gateway.protoc_gen_openapiv2.options.Scheme" json:"schemes,omitempty"` 632 // Declares this operation to be deprecated. Usage of the declared operation 633 // should be refrained. Default value is false. 634 Deprecated bool `protobuf:"varint,11,opt,name=deprecated,proto3" json:"deprecated,omitempty"` 635 // A declaration of which security schemes are applied for this operation. The 636 // list of values describes alternative security schemes that can be used 637 // (that is, there is a logical OR between the security requirements). This 638 // definition overrides any declared top-level security. To remove a top-level 639 // security declaration, an empty array can be used. 640 Security []*SecurityRequirement `protobuf:"bytes,12,rep,name=security,proto3" json:"security,omitempty"` 641 // Custom properties that start with "x-" such as "x-foo" used to describe 642 // extra functionality that is not covered by the standard OpenAPI Specification. 643 // See: https://swagger.io/docs/specification/2-0/swagger-extensions/ 644 Extensions map[string]*structpb.Value `protobuf:"bytes,13,rep,name=extensions,proto3" json:"extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 645 // Custom parameters such as HTTP request headers. 646 // See: https://swagger.io/docs/specification/2-0/describing-parameters/ 647 // and https://swagger.io/specification/v2/#parameter-object. 648 Parameters *Parameters `protobuf:"bytes,14,opt,name=parameters,proto3" json:"parameters,omitempty"` 649 } 650 651 func (x *Operation) Reset() { 652 *x = Operation{} 653 if protoimpl.UnsafeEnabled { 654 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[1] 655 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 656 ms.StoreMessageInfo(mi) 657 } 658 } 659 660 func (x *Operation) String() string { 661 return protoimpl.X.MessageStringOf(x) 662 } 663 664 func (*Operation) ProtoMessage() {} 665 666 func (x *Operation) ProtoReflect() protoreflect.Message { 667 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[1] 668 if protoimpl.UnsafeEnabled && x != nil { 669 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 670 if ms.LoadMessageInfo() == nil { 671 ms.StoreMessageInfo(mi) 672 } 673 return ms 674 } 675 return mi.MessageOf(x) 676 } 677 678 // Deprecated: Use Operation.ProtoReflect.Descriptor instead. 679 func (*Operation) Descriptor() ([]byte, []int) { 680 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{1} 681 } 682 683 func (x *Operation) GetTags() []string { 684 if x != nil { 685 return x.Tags 686 } 687 return nil 688 } 689 690 func (x *Operation) GetSummary() string { 691 if x != nil { 692 return x.Summary 693 } 694 return "" 695 } 696 697 func (x *Operation) GetDescription() string { 698 if x != nil { 699 return x.Description 700 } 701 return "" 702 } 703 704 func (x *Operation) GetExternalDocs() *ExternalDocumentation { 705 if x != nil { 706 return x.ExternalDocs 707 } 708 return nil 709 } 710 711 func (x *Operation) GetOperationId() string { 712 if x != nil { 713 return x.OperationId 714 } 715 return "" 716 } 717 718 func (x *Operation) GetConsumes() []string { 719 if x != nil { 720 return x.Consumes 721 } 722 return nil 723 } 724 725 func (x *Operation) GetProduces() []string { 726 if x != nil { 727 return x.Produces 728 } 729 return nil 730 } 731 732 func (x *Operation) GetResponses() map[string]*Response { 733 if x != nil { 734 return x.Responses 735 } 736 return nil 737 } 738 739 func (x *Operation) GetSchemes() []Scheme { 740 if x != nil { 741 return x.Schemes 742 } 743 return nil 744 } 745 746 func (x *Operation) GetDeprecated() bool { 747 if x != nil { 748 return x.Deprecated 749 } 750 return false 751 } 752 753 func (x *Operation) GetSecurity() []*SecurityRequirement { 754 if x != nil { 755 return x.Security 756 } 757 return nil 758 } 759 760 func (x *Operation) GetExtensions() map[string]*structpb.Value { 761 if x != nil { 762 return x.Extensions 763 } 764 return nil 765 } 766 767 func (x *Operation) GetParameters() *Parameters { 768 if x != nil { 769 return x.Parameters 770 } 771 return nil 772 } 773 774 // `Parameters` is a representation of OpenAPI v2 specification's parameters object. 775 // Note: This technically breaks compatibility with the OpenAPI 2 definition structure as we only 776 // allow header parameters to be set here since we do not want users specifying custom non-header 777 // parameters beyond those inferred from the Protobuf schema. 778 // See: https://swagger.io/specification/v2/#parameter-object 779 type Parameters struct { 780 state protoimpl.MessageState 781 sizeCache protoimpl.SizeCache 782 unknownFields protoimpl.UnknownFields 783 784 // `Headers` is one or more HTTP header parameter. 785 // See: https://swagger.io/docs/specification/2-0/describing-parameters/#header-parameters 786 Headers []*HeaderParameter `protobuf:"bytes,1,rep,name=headers,proto3" json:"headers,omitempty"` 787 } 788 789 func (x *Parameters) Reset() { 790 *x = Parameters{} 791 if protoimpl.UnsafeEnabled { 792 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[2] 793 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 794 ms.StoreMessageInfo(mi) 795 } 796 } 797 798 func (x *Parameters) String() string { 799 return protoimpl.X.MessageStringOf(x) 800 } 801 802 func (*Parameters) ProtoMessage() {} 803 804 func (x *Parameters) ProtoReflect() protoreflect.Message { 805 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[2] 806 if protoimpl.UnsafeEnabled && x != nil { 807 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 808 if ms.LoadMessageInfo() == nil { 809 ms.StoreMessageInfo(mi) 810 } 811 return ms 812 } 813 return mi.MessageOf(x) 814 } 815 816 // Deprecated: Use Parameters.ProtoReflect.Descriptor instead. 817 func (*Parameters) Descriptor() ([]byte, []int) { 818 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{2} 819 } 820 821 func (x *Parameters) GetHeaders() []*HeaderParameter { 822 if x != nil { 823 return x.Headers 824 } 825 return nil 826 } 827 828 // `HeaderParameter` a HTTP header parameter. 829 // See: https://swagger.io/specification/v2/#parameter-object 830 type HeaderParameter struct { 831 state protoimpl.MessageState 832 sizeCache protoimpl.SizeCache 833 unknownFields protoimpl.UnknownFields 834 835 // `Name` is the header name. 836 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 837 // `Description` is a short description of the header. 838 Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` 839 // `Type` is the type of the object. The value MUST be one of "string", "number", "integer", or "boolean". The "array" type is not supported. 840 // See: https://swagger.io/specification/v2/#parameterType. 841 Type HeaderParameter_Type `protobuf:"varint,3,opt,name=type,proto3,enum=grpc.gateway.protoc_gen_openapiv2.options.HeaderParameter_Type" json:"type,omitempty"` 842 // `Format` The extending format for the previously mentioned type. 843 Format string `protobuf:"bytes,4,opt,name=format,proto3" json:"format,omitempty"` 844 // `Required` indicates if the header is optional 845 Required bool `protobuf:"varint,5,opt,name=required,proto3" json:"required,omitempty"` 846 } 847 848 func (x *HeaderParameter) Reset() { 849 *x = HeaderParameter{} 850 if protoimpl.UnsafeEnabled { 851 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[3] 852 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 853 ms.StoreMessageInfo(mi) 854 } 855 } 856 857 func (x *HeaderParameter) String() string { 858 return protoimpl.X.MessageStringOf(x) 859 } 860 861 func (*HeaderParameter) ProtoMessage() {} 862 863 func (x *HeaderParameter) ProtoReflect() protoreflect.Message { 864 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[3] 865 if protoimpl.UnsafeEnabled && x != nil { 866 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 867 if ms.LoadMessageInfo() == nil { 868 ms.StoreMessageInfo(mi) 869 } 870 return ms 871 } 872 return mi.MessageOf(x) 873 } 874 875 // Deprecated: Use HeaderParameter.ProtoReflect.Descriptor instead. 876 func (*HeaderParameter) Descriptor() ([]byte, []int) { 877 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{3} 878 } 879 880 func (x *HeaderParameter) GetName() string { 881 if x != nil { 882 return x.Name 883 } 884 return "" 885 } 886 887 func (x *HeaderParameter) GetDescription() string { 888 if x != nil { 889 return x.Description 890 } 891 return "" 892 } 893 894 func (x *HeaderParameter) GetType() HeaderParameter_Type { 895 if x != nil { 896 return x.Type 897 } 898 return HeaderParameter_UNKNOWN 899 } 900 901 func (x *HeaderParameter) GetFormat() string { 902 if x != nil { 903 return x.Format 904 } 905 return "" 906 } 907 908 func (x *HeaderParameter) GetRequired() bool { 909 if x != nil { 910 return x.Required 911 } 912 return false 913 } 914 915 // `Header` is a representation of OpenAPI v2 specification's Header object. 916 // 917 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#headerObject 918 type Header struct { 919 state protoimpl.MessageState 920 sizeCache protoimpl.SizeCache 921 unknownFields protoimpl.UnknownFields 922 923 // `Description` is a short description of the header. 924 Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` 925 // The type of the object. The value MUST be one of "string", "number", "integer", or "boolean". The "array" type is not supported. 926 Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` 927 // `Format` The extending format for the previously mentioned type. 928 Format string `protobuf:"bytes,3,opt,name=format,proto3" json:"format,omitempty"` 929 // `Default` Declares the value of the header that the server will use if none is provided. 930 // See: https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.2. 931 // Unlike JSON Schema this value MUST conform to the defined type for the header. 932 Default string `protobuf:"bytes,6,opt,name=default,proto3" json:"default,omitempty"` 933 // 'Pattern' See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.3. 934 Pattern string `protobuf:"bytes,13,opt,name=pattern,proto3" json:"pattern,omitempty"` 935 } 936 937 func (x *Header) Reset() { 938 *x = Header{} 939 if protoimpl.UnsafeEnabled { 940 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[4] 941 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 942 ms.StoreMessageInfo(mi) 943 } 944 } 945 946 func (x *Header) String() string { 947 return protoimpl.X.MessageStringOf(x) 948 } 949 950 func (*Header) ProtoMessage() {} 951 952 func (x *Header) ProtoReflect() protoreflect.Message { 953 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[4] 954 if protoimpl.UnsafeEnabled && x != nil { 955 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 956 if ms.LoadMessageInfo() == nil { 957 ms.StoreMessageInfo(mi) 958 } 959 return ms 960 } 961 return mi.MessageOf(x) 962 } 963 964 // Deprecated: Use Header.ProtoReflect.Descriptor instead. 965 func (*Header) Descriptor() ([]byte, []int) { 966 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{4} 967 } 968 969 func (x *Header) GetDescription() string { 970 if x != nil { 971 return x.Description 972 } 973 return "" 974 } 975 976 func (x *Header) GetType() string { 977 if x != nil { 978 return x.Type 979 } 980 return "" 981 } 982 983 func (x *Header) GetFormat() string { 984 if x != nil { 985 return x.Format 986 } 987 return "" 988 } 989 990 func (x *Header) GetDefault() string { 991 if x != nil { 992 return x.Default 993 } 994 return "" 995 } 996 997 func (x *Header) GetPattern() string { 998 if x != nil { 999 return x.Pattern 1000 } 1001 return "" 1002 } 1003 1004 // `Response` is a representation of OpenAPI v2 specification's Response object. 1005 // 1006 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#responseObject 1007 type Response struct { 1008 state protoimpl.MessageState 1009 sizeCache protoimpl.SizeCache 1010 unknownFields protoimpl.UnknownFields 1011 1012 // `Description` is a short description of the response. 1013 // GFM syntax can be used for rich text representation. 1014 Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` 1015 // `Schema` optionally defines the structure of the response. 1016 // If `Schema` is not provided, it means there is no content to the response. 1017 Schema *Schema `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"` 1018 // `Headers` A list of headers that are sent with the response. 1019 // `Header` name is expected to be a string in the canonical format of the MIME header key 1020 // See: https://golang.org/pkg/net/textproto/#CanonicalMIMEHeaderKey 1021 Headers map[string]*Header `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1022 // `Examples` gives per-mimetype response examples. 1023 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#example-object 1024 Examples map[string]string `protobuf:"bytes,4,rep,name=examples,proto3" json:"examples,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1025 // Custom properties that start with "x-" such as "x-foo" used to describe 1026 // extra functionality that is not covered by the standard OpenAPI Specification. 1027 // See: https://swagger.io/docs/specification/2-0/swagger-extensions/ 1028 Extensions map[string]*structpb.Value `protobuf:"bytes,5,rep,name=extensions,proto3" json:"extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1029 } 1030 1031 func (x *Response) Reset() { 1032 *x = Response{} 1033 if protoimpl.UnsafeEnabled { 1034 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[5] 1035 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1036 ms.StoreMessageInfo(mi) 1037 } 1038 } 1039 1040 func (x *Response) String() string { 1041 return protoimpl.X.MessageStringOf(x) 1042 } 1043 1044 func (*Response) ProtoMessage() {} 1045 1046 func (x *Response) ProtoReflect() protoreflect.Message { 1047 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[5] 1048 if protoimpl.UnsafeEnabled && x != nil { 1049 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1050 if ms.LoadMessageInfo() == nil { 1051 ms.StoreMessageInfo(mi) 1052 } 1053 return ms 1054 } 1055 return mi.MessageOf(x) 1056 } 1057 1058 // Deprecated: Use Response.ProtoReflect.Descriptor instead. 1059 func (*Response) Descriptor() ([]byte, []int) { 1060 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{5} 1061 } 1062 1063 func (x *Response) GetDescription() string { 1064 if x != nil { 1065 return x.Description 1066 } 1067 return "" 1068 } 1069 1070 func (x *Response) GetSchema() *Schema { 1071 if x != nil { 1072 return x.Schema 1073 } 1074 return nil 1075 } 1076 1077 func (x *Response) GetHeaders() map[string]*Header { 1078 if x != nil { 1079 return x.Headers 1080 } 1081 return nil 1082 } 1083 1084 func (x *Response) GetExamples() map[string]string { 1085 if x != nil { 1086 return x.Examples 1087 } 1088 return nil 1089 } 1090 1091 func (x *Response) GetExtensions() map[string]*structpb.Value { 1092 if x != nil { 1093 return x.Extensions 1094 } 1095 return nil 1096 } 1097 1098 // `Info` is a representation of OpenAPI v2 specification's Info object. 1099 // 1100 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#infoObject 1101 // 1102 // Example: 1103 // 1104 // option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { 1105 // info: { 1106 // title: "Echo API"; 1107 // version: "1.0"; 1108 // description: ""; 1109 // contact: { 1110 // name: "gRPC-Gateway project"; 1111 // url: "https://github.com/grpc-ecosystem/grpc-gateway"; 1112 // email: "none@example.com"; 1113 // }; 1114 // license: { 1115 // name: "BSD 3-Clause License"; 1116 // url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/main/LICENSE"; 1117 // }; 1118 // }; 1119 // ... 1120 // }; 1121 type Info struct { 1122 state protoimpl.MessageState 1123 sizeCache protoimpl.SizeCache 1124 unknownFields protoimpl.UnknownFields 1125 1126 // The title of the application. 1127 Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` 1128 // A short description of the application. GFM syntax can be used for rich 1129 // text representation. 1130 Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` 1131 // The Terms of Service for the API. 1132 TermsOfService string `protobuf:"bytes,3,opt,name=terms_of_service,json=termsOfService,proto3" json:"terms_of_service,omitempty"` 1133 // The contact information for the exposed API. 1134 Contact *Contact `protobuf:"bytes,4,opt,name=contact,proto3" json:"contact,omitempty"` 1135 // The license information for the exposed API. 1136 License *License `protobuf:"bytes,5,opt,name=license,proto3" json:"license,omitempty"` 1137 // Provides the version of the application API (not to be confused 1138 // with the specification version). 1139 Version string `protobuf:"bytes,6,opt,name=version,proto3" json:"version,omitempty"` 1140 // Custom properties that start with "x-" such as "x-foo" used to describe 1141 // extra functionality that is not covered by the standard OpenAPI Specification. 1142 // See: https://swagger.io/docs/specification/2-0/swagger-extensions/ 1143 Extensions map[string]*structpb.Value `protobuf:"bytes,7,rep,name=extensions,proto3" json:"extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1144 } 1145 1146 func (x *Info) Reset() { 1147 *x = Info{} 1148 if protoimpl.UnsafeEnabled { 1149 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[6] 1150 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1151 ms.StoreMessageInfo(mi) 1152 } 1153 } 1154 1155 func (x *Info) String() string { 1156 return protoimpl.X.MessageStringOf(x) 1157 } 1158 1159 func (*Info) ProtoMessage() {} 1160 1161 func (x *Info) ProtoReflect() protoreflect.Message { 1162 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[6] 1163 if protoimpl.UnsafeEnabled && x != nil { 1164 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1165 if ms.LoadMessageInfo() == nil { 1166 ms.StoreMessageInfo(mi) 1167 } 1168 return ms 1169 } 1170 return mi.MessageOf(x) 1171 } 1172 1173 // Deprecated: Use Info.ProtoReflect.Descriptor instead. 1174 func (*Info) Descriptor() ([]byte, []int) { 1175 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{6} 1176 } 1177 1178 func (x *Info) GetTitle() string { 1179 if x != nil { 1180 return x.Title 1181 } 1182 return "" 1183 } 1184 1185 func (x *Info) GetDescription() string { 1186 if x != nil { 1187 return x.Description 1188 } 1189 return "" 1190 } 1191 1192 func (x *Info) GetTermsOfService() string { 1193 if x != nil { 1194 return x.TermsOfService 1195 } 1196 return "" 1197 } 1198 1199 func (x *Info) GetContact() *Contact { 1200 if x != nil { 1201 return x.Contact 1202 } 1203 return nil 1204 } 1205 1206 func (x *Info) GetLicense() *License { 1207 if x != nil { 1208 return x.License 1209 } 1210 return nil 1211 } 1212 1213 func (x *Info) GetVersion() string { 1214 if x != nil { 1215 return x.Version 1216 } 1217 return "" 1218 } 1219 1220 func (x *Info) GetExtensions() map[string]*structpb.Value { 1221 if x != nil { 1222 return x.Extensions 1223 } 1224 return nil 1225 } 1226 1227 // `Contact` is a representation of OpenAPI v2 specification's Contact object. 1228 // 1229 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#contactObject 1230 // 1231 // Example: 1232 // 1233 // option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { 1234 // info: { 1235 // ... 1236 // contact: { 1237 // name: "gRPC-Gateway project"; 1238 // url: "https://github.com/grpc-ecosystem/grpc-gateway"; 1239 // email: "none@example.com"; 1240 // }; 1241 // ... 1242 // }; 1243 // ... 1244 // }; 1245 type Contact struct { 1246 state protoimpl.MessageState 1247 sizeCache protoimpl.SizeCache 1248 unknownFields protoimpl.UnknownFields 1249 1250 // The identifying name of the contact person/organization. 1251 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1252 // The URL pointing to the contact information. MUST be in the format of a 1253 // URL. 1254 Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` 1255 // The email address of the contact person/organization. MUST be in the format 1256 // of an email address. 1257 Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` 1258 } 1259 1260 func (x *Contact) Reset() { 1261 *x = Contact{} 1262 if protoimpl.UnsafeEnabled { 1263 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[7] 1264 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1265 ms.StoreMessageInfo(mi) 1266 } 1267 } 1268 1269 func (x *Contact) String() string { 1270 return protoimpl.X.MessageStringOf(x) 1271 } 1272 1273 func (*Contact) ProtoMessage() {} 1274 1275 func (x *Contact) ProtoReflect() protoreflect.Message { 1276 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[7] 1277 if protoimpl.UnsafeEnabled && x != nil { 1278 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1279 if ms.LoadMessageInfo() == nil { 1280 ms.StoreMessageInfo(mi) 1281 } 1282 return ms 1283 } 1284 return mi.MessageOf(x) 1285 } 1286 1287 // Deprecated: Use Contact.ProtoReflect.Descriptor instead. 1288 func (*Contact) Descriptor() ([]byte, []int) { 1289 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{7} 1290 } 1291 1292 func (x *Contact) GetName() string { 1293 if x != nil { 1294 return x.Name 1295 } 1296 return "" 1297 } 1298 1299 func (x *Contact) GetUrl() string { 1300 if x != nil { 1301 return x.Url 1302 } 1303 return "" 1304 } 1305 1306 func (x *Contact) GetEmail() string { 1307 if x != nil { 1308 return x.Email 1309 } 1310 return "" 1311 } 1312 1313 // `License` is a representation of OpenAPI v2 specification's License object. 1314 // 1315 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#licenseObject 1316 // 1317 // Example: 1318 // 1319 // option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { 1320 // info: { 1321 // ... 1322 // license: { 1323 // name: "BSD 3-Clause License"; 1324 // url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/main/LICENSE"; 1325 // }; 1326 // ... 1327 // }; 1328 // ... 1329 // }; 1330 type License struct { 1331 state protoimpl.MessageState 1332 sizeCache protoimpl.SizeCache 1333 unknownFields protoimpl.UnknownFields 1334 1335 // The license name used for the API. 1336 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1337 // A URL to the license used for the API. MUST be in the format of a URL. 1338 Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` 1339 } 1340 1341 func (x *License) Reset() { 1342 *x = License{} 1343 if protoimpl.UnsafeEnabled { 1344 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[8] 1345 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1346 ms.StoreMessageInfo(mi) 1347 } 1348 } 1349 1350 func (x *License) String() string { 1351 return protoimpl.X.MessageStringOf(x) 1352 } 1353 1354 func (*License) ProtoMessage() {} 1355 1356 func (x *License) ProtoReflect() protoreflect.Message { 1357 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[8] 1358 if protoimpl.UnsafeEnabled && x != nil { 1359 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1360 if ms.LoadMessageInfo() == nil { 1361 ms.StoreMessageInfo(mi) 1362 } 1363 return ms 1364 } 1365 return mi.MessageOf(x) 1366 } 1367 1368 // Deprecated: Use License.ProtoReflect.Descriptor instead. 1369 func (*License) Descriptor() ([]byte, []int) { 1370 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{8} 1371 } 1372 1373 func (x *License) GetName() string { 1374 if x != nil { 1375 return x.Name 1376 } 1377 return "" 1378 } 1379 1380 func (x *License) GetUrl() string { 1381 if x != nil { 1382 return x.Url 1383 } 1384 return "" 1385 } 1386 1387 // `ExternalDocumentation` is a representation of OpenAPI v2 specification's 1388 // ExternalDocumentation object. 1389 // 1390 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#externalDocumentationObject 1391 // 1392 // Example: 1393 // 1394 // option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { 1395 // ... 1396 // external_docs: { 1397 // description: "More about gRPC-Gateway"; 1398 // url: "https://github.com/grpc-ecosystem/grpc-gateway"; 1399 // } 1400 // ... 1401 // }; 1402 type ExternalDocumentation struct { 1403 state protoimpl.MessageState 1404 sizeCache protoimpl.SizeCache 1405 unknownFields protoimpl.UnknownFields 1406 1407 // A short description of the target documentation. GFM syntax can be used for 1408 // rich text representation. 1409 Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` 1410 // The URL for the target documentation. Value MUST be in the format 1411 // of a URL. 1412 Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` 1413 } 1414 1415 func (x *ExternalDocumentation) Reset() { 1416 *x = ExternalDocumentation{} 1417 if protoimpl.UnsafeEnabled { 1418 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[9] 1419 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1420 ms.StoreMessageInfo(mi) 1421 } 1422 } 1423 1424 func (x *ExternalDocumentation) String() string { 1425 return protoimpl.X.MessageStringOf(x) 1426 } 1427 1428 func (*ExternalDocumentation) ProtoMessage() {} 1429 1430 func (x *ExternalDocumentation) ProtoReflect() protoreflect.Message { 1431 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[9] 1432 if protoimpl.UnsafeEnabled && x != nil { 1433 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1434 if ms.LoadMessageInfo() == nil { 1435 ms.StoreMessageInfo(mi) 1436 } 1437 return ms 1438 } 1439 return mi.MessageOf(x) 1440 } 1441 1442 // Deprecated: Use ExternalDocumentation.ProtoReflect.Descriptor instead. 1443 func (*ExternalDocumentation) Descriptor() ([]byte, []int) { 1444 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{9} 1445 } 1446 1447 func (x *ExternalDocumentation) GetDescription() string { 1448 if x != nil { 1449 return x.Description 1450 } 1451 return "" 1452 } 1453 1454 func (x *ExternalDocumentation) GetUrl() string { 1455 if x != nil { 1456 return x.Url 1457 } 1458 return "" 1459 } 1460 1461 // `Schema` is a representation of OpenAPI v2 specification's Schema object. 1462 // 1463 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#schemaObject 1464 type Schema struct { 1465 state protoimpl.MessageState 1466 sizeCache protoimpl.SizeCache 1467 unknownFields protoimpl.UnknownFields 1468 1469 JsonSchema *JSONSchema `protobuf:"bytes,1,opt,name=json_schema,json=jsonSchema,proto3" json:"json_schema,omitempty"` 1470 // Adds support for polymorphism. The discriminator is the schema property 1471 // name that is used to differentiate between other schema that inherit this 1472 // schema. The property name used MUST be defined at this schema and it MUST 1473 // be in the required property list. When used, the value MUST be the name of 1474 // this schema or any schema that inherits it. 1475 Discriminator string `protobuf:"bytes,2,opt,name=discriminator,proto3" json:"discriminator,omitempty"` 1476 // Relevant only for Schema "properties" definitions. Declares the property as 1477 // "read only". This means that it MAY be sent as part of a response but MUST 1478 // NOT be sent as part of the request. Properties marked as readOnly being 1479 // true SHOULD NOT be in the required list of the defined schema. Default 1480 // value is false. 1481 ReadOnly bool `protobuf:"varint,3,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"` 1482 // Additional external documentation for this schema. 1483 ExternalDocs *ExternalDocumentation `protobuf:"bytes,5,opt,name=external_docs,json=externalDocs,proto3" json:"external_docs,omitempty"` 1484 // A free-form property to include an example of an instance for this schema in JSON. 1485 // This is copied verbatim to the output. 1486 Example string `protobuf:"bytes,6,opt,name=example,proto3" json:"example,omitempty"` 1487 } 1488 1489 func (x *Schema) Reset() { 1490 *x = Schema{} 1491 if protoimpl.UnsafeEnabled { 1492 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[10] 1493 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1494 ms.StoreMessageInfo(mi) 1495 } 1496 } 1497 1498 func (x *Schema) String() string { 1499 return protoimpl.X.MessageStringOf(x) 1500 } 1501 1502 func (*Schema) ProtoMessage() {} 1503 1504 func (x *Schema) ProtoReflect() protoreflect.Message { 1505 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[10] 1506 if protoimpl.UnsafeEnabled && x != nil { 1507 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1508 if ms.LoadMessageInfo() == nil { 1509 ms.StoreMessageInfo(mi) 1510 } 1511 return ms 1512 } 1513 return mi.MessageOf(x) 1514 } 1515 1516 // Deprecated: Use Schema.ProtoReflect.Descriptor instead. 1517 func (*Schema) Descriptor() ([]byte, []int) { 1518 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{10} 1519 } 1520 1521 func (x *Schema) GetJsonSchema() *JSONSchema { 1522 if x != nil { 1523 return x.JsonSchema 1524 } 1525 return nil 1526 } 1527 1528 func (x *Schema) GetDiscriminator() string { 1529 if x != nil { 1530 return x.Discriminator 1531 } 1532 return "" 1533 } 1534 1535 func (x *Schema) GetReadOnly() bool { 1536 if x != nil { 1537 return x.ReadOnly 1538 } 1539 return false 1540 } 1541 1542 func (x *Schema) GetExternalDocs() *ExternalDocumentation { 1543 if x != nil { 1544 return x.ExternalDocs 1545 } 1546 return nil 1547 } 1548 1549 func (x *Schema) GetExample() string { 1550 if x != nil { 1551 return x.Example 1552 } 1553 return "" 1554 } 1555 1556 // `JSONSchema` represents properties from JSON Schema taken, and as used, in 1557 // the OpenAPI v2 spec. 1558 // 1559 // This includes changes made by OpenAPI v2. 1560 // 1561 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#schemaObject 1562 // 1563 // See also: https://cswr.github.io/JsonSchema/spec/basic_types/, 1564 // https://github.com/json-schema-org/json-schema-spec/blob/master/schema.json 1565 // 1566 // Example: 1567 // 1568 // message SimpleMessage { 1569 // option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { 1570 // json_schema: { 1571 // title: "SimpleMessage" 1572 // description: "A simple message." 1573 // required: ["id"] 1574 // } 1575 // }; 1576 // 1577 // // Id represents the message identifier. 1578 // string id = 1; [ 1579 // (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { 1580 // description: "The unique identifier of the simple message." 1581 // }]; 1582 // } 1583 type JSONSchema struct { 1584 state protoimpl.MessageState 1585 sizeCache protoimpl.SizeCache 1586 unknownFields protoimpl.UnknownFields 1587 1588 // Ref is used to define an external reference to include in the message. 1589 // This could be a fully qualified proto message reference, and that type must 1590 // be imported into the protofile. If no message is identified, the Ref will 1591 // be used verbatim in the output. 1592 // For example: 1593 // 1594 // `ref: ".google.protobuf.Timestamp"`. 1595 Ref string `protobuf:"bytes,3,opt,name=ref,proto3" json:"ref,omitempty"` 1596 // The title of the schema. 1597 Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` 1598 // A short description of the schema. 1599 Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` 1600 Default string `protobuf:"bytes,7,opt,name=default,proto3" json:"default,omitempty"` 1601 ReadOnly bool `protobuf:"varint,8,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"` 1602 // A free-form property to include a JSON example of this field. This is copied 1603 // verbatim to the output swagger.json. Quotes must be escaped. 1604 // 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 1605 Example string `protobuf:"bytes,9,opt,name=example,proto3" json:"example,omitempty"` 1606 MultipleOf float64 `protobuf:"fixed64,10,opt,name=multiple_of,json=multipleOf,proto3" json:"multiple_of,omitempty"` 1607 // Maximum represents an inclusive upper limit for a numeric instance. The 1608 // value of MUST be a number, 1609 Maximum float64 `protobuf:"fixed64,11,opt,name=maximum,proto3" json:"maximum,omitempty"` 1610 ExclusiveMaximum bool `protobuf:"varint,12,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3" json:"exclusive_maximum,omitempty"` 1611 // minimum represents an inclusive lower limit for a numeric instance. The 1612 // value of MUST be a number, 1613 Minimum float64 `protobuf:"fixed64,13,opt,name=minimum,proto3" json:"minimum,omitempty"` 1614 ExclusiveMinimum bool `protobuf:"varint,14,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3" json:"exclusive_minimum,omitempty"` 1615 MaxLength uint64 `protobuf:"varint,15,opt,name=max_length,json=maxLength,proto3" json:"max_length,omitempty"` 1616 MinLength uint64 `protobuf:"varint,16,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` 1617 Pattern string `protobuf:"bytes,17,opt,name=pattern,proto3" json:"pattern,omitempty"` 1618 MaxItems uint64 `protobuf:"varint,20,opt,name=max_items,json=maxItems,proto3" json:"max_items,omitempty"` 1619 MinItems uint64 `protobuf:"varint,21,opt,name=min_items,json=minItems,proto3" json:"min_items,omitempty"` 1620 UniqueItems bool `protobuf:"varint,22,opt,name=unique_items,json=uniqueItems,proto3" json:"unique_items,omitempty"` 1621 MaxProperties uint64 `protobuf:"varint,24,opt,name=max_properties,json=maxProperties,proto3" json:"max_properties,omitempty"` 1622 MinProperties uint64 `protobuf:"varint,25,opt,name=min_properties,json=minProperties,proto3" json:"min_properties,omitempty"` 1623 Required []string `protobuf:"bytes,26,rep,name=required,proto3" json:"required,omitempty"` 1624 // Items in 'array' must be unique. 1625 Array []string `protobuf:"bytes,34,rep,name=array,proto3" json:"array,omitempty"` 1626 Type []JSONSchema_JSONSchemaSimpleTypes `protobuf:"varint,35,rep,packed,name=type,proto3,enum=grpc.gateway.protoc_gen_openapiv2.options.JSONSchema_JSONSchemaSimpleTypes" json:"type,omitempty"` 1627 // `Format` 1628 Format string `protobuf:"bytes,36,opt,name=format,proto3" json:"format,omitempty"` 1629 // Items in `enum` must be unique https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.1 1630 Enum []string `protobuf:"bytes,46,rep,name=enum,proto3" json:"enum,omitempty"` 1631 // Additional field level properties used when generating the OpenAPI v2 file. 1632 FieldConfiguration *JSONSchema_FieldConfiguration `protobuf:"bytes,1001,opt,name=field_configuration,json=fieldConfiguration,proto3" json:"field_configuration,omitempty"` 1633 // Custom properties that start with "x-" such as "x-foo" used to describe 1634 // extra functionality that is not covered by the standard OpenAPI Specification. 1635 // See: https://swagger.io/docs/specification/2-0/swagger-extensions/ 1636 Extensions map[string]*structpb.Value `protobuf:"bytes,48,rep,name=extensions,proto3" json:"extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1637 } 1638 1639 func (x *JSONSchema) Reset() { 1640 *x = JSONSchema{} 1641 if protoimpl.UnsafeEnabled { 1642 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[11] 1643 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1644 ms.StoreMessageInfo(mi) 1645 } 1646 } 1647 1648 func (x *JSONSchema) String() string { 1649 return protoimpl.X.MessageStringOf(x) 1650 } 1651 1652 func (*JSONSchema) ProtoMessage() {} 1653 1654 func (x *JSONSchema) ProtoReflect() protoreflect.Message { 1655 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[11] 1656 if protoimpl.UnsafeEnabled && x != nil { 1657 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1658 if ms.LoadMessageInfo() == nil { 1659 ms.StoreMessageInfo(mi) 1660 } 1661 return ms 1662 } 1663 return mi.MessageOf(x) 1664 } 1665 1666 // Deprecated: Use JSONSchema.ProtoReflect.Descriptor instead. 1667 func (*JSONSchema) Descriptor() ([]byte, []int) { 1668 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{11} 1669 } 1670 1671 func (x *JSONSchema) GetRef() string { 1672 if x != nil { 1673 return x.Ref 1674 } 1675 return "" 1676 } 1677 1678 func (x *JSONSchema) GetTitle() string { 1679 if x != nil { 1680 return x.Title 1681 } 1682 return "" 1683 } 1684 1685 func (x *JSONSchema) GetDescription() string { 1686 if x != nil { 1687 return x.Description 1688 } 1689 return "" 1690 } 1691 1692 func (x *JSONSchema) GetDefault() string { 1693 if x != nil { 1694 return x.Default 1695 } 1696 return "" 1697 } 1698 1699 func (x *JSONSchema) GetReadOnly() bool { 1700 if x != nil { 1701 return x.ReadOnly 1702 } 1703 return false 1704 } 1705 1706 func (x *JSONSchema) GetExample() string { 1707 if x != nil { 1708 return x.Example 1709 } 1710 return "" 1711 } 1712 1713 func (x *JSONSchema) GetMultipleOf() float64 { 1714 if x != nil { 1715 return x.MultipleOf 1716 } 1717 return 0 1718 } 1719 1720 func (x *JSONSchema) GetMaximum() float64 { 1721 if x != nil { 1722 return x.Maximum 1723 } 1724 return 0 1725 } 1726 1727 func (x *JSONSchema) GetExclusiveMaximum() bool { 1728 if x != nil { 1729 return x.ExclusiveMaximum 1730 } 1731 return false 1732 } 1733 1734 func (x *JSONSchema) GetMinimum() float64 { 1735 if x != nil { 1736 return x.Minimum 1737 } 1738 return 0 1739 } 1740 1741 func (x *JSONSchema) GetExclusiveMinimum() bool { 1742 if x != nil { 1743 return x.ExclusiveMinimum 1744 } 1745 return false 1746 } 1747 1748 func (x *JSONSchema) GetMaxLength() uint64 { 1749 if x != nil { 1750 return x.MaxLength 1751 } 1752 return 0 1753 } 1754 1755 func (x *JSONSchema) GetMinLength() uint64 { 1756 if x != nil { 1757 return x.MinLength 1758 } 1759 return 0 1760 } 1761 1762 func (x *JSONSchema) GetPattern() string { 1763 if x != nil { 1764 return x.Pattern 1765 } 1766 return "" 1767 } 1768 1769 func (x *JSONSchema) GetMaxItems() uint64 { 1770 if x != nil { 1771 return x.MaxItems 1772 } 1773 return 0 1774 } 1775 1776 func (x *JSONSchema) GetMinItems() uint64 { 1777 if x != nil { 1778 return x.MinItems 1779 } 1780 return 0 1781 } 1782 1783 func (x *JSONSchema) GetUniqueItems() bool { 1784 if x != nil { 1785 return x.UniqueItems 1786 } 1787 return false 1788 } 1789 1790 func (x *JSONSchema) GetMaxProperties() uint64 { 1791 if x != nil { 1792 return x.MaxProperties 1793 } 1794 return 0 1795 } 1796 1797 func (x *JSONSchema) GetMinProperties() uint64 { 1798 if x != nil { 1799 return x.MinProperties 1800 } 1801 return 0 1802 } 1803 1804 func (x *JSONSchema) GetRequired() []string { 1805 if x != nil { 1806 return x.Required 1807 } 1808 return nil 1809 } 1810 1811 func (x *JSONSchema) GetArray() []string { 1812 if x != nil { 1813 return x.Array 1814 } 1815 return nil 1816 } 1817 1818 func (x *JSONSchema) GetType() []JSONSchema_JSONSchemaSimpleTypes { 1819 if x != nil { 1820 return x.Type 1821 } 1822 return nil 1823 } 1824 1825 func (x *JSONSchema) GetFormat() string { 1826 if x != nil { 1827 return x.Format 1828 } 1829 return "" 1830 } 1831 1832 func (x *JSONSchema) GetEnum() []string { 1833 if x != nil { 1834 return x.Enum 1835 } 1836 return nil 1837 } 1838 1839 func (x *JSONSchema) GetFieldConfiguration() *JSONSchema_FieldConfiguration { 1840 if x != nil { 1841 return x.FieldConfiguration 1842 } 1843 return nil 1844 } 1845 1846 func (x *JSONSchema) GetExtensions() map[string]*structpb.Value { 1847 if x != nil { 1848 return x.Extensions 1849 } 1850 return nil 1851 } 1852 1853 // `Tag` is a representation of OpenAPI v2 specification's Tag object. 1854 // 1855 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#tagObject 1856 type Tag struct { 1857 state protoimpl.MessageState 1858 sizeCache protoimpl.SizeCache 1859 unknownFields protoimpl.UnknownFields 1860 1861 // The name of the tag. Use it to allow override of the name of a 1862 // global Tag object, then use that name to reference the tag throughout the 1863 // OpenAPI file. 1864 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1865 // A short description for the tag. GFM syntax can be used for rich text 1866 // representation. 1867 Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` 1868 // Additional external documentation for this tag. 1869 ExternalDocs *ExternalDocumentation `protobuf:"bytes,3,opt,name=external_docs,json=externalDocs,proto3" json:"external_docs,omitempty"` 1870 // Custom properties that start with "x-" such as "x-foo" used to describe 1871 // extra functionality that is not covered by the standard OpenAPI Specification. 1872 // See: https://swagger.io/docs/specification/2-0/swagger-extensions/ 1873 Extensions map[string]*structpb.Value `protobuf:"bytes,4,rep,name=extensions,proto3" json:"extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1874 } 1875 1876 func (x *Tag) Reset() { 1877 *x = Tag{} 1878 if protoimpl.UnsafeEnabled { 1879 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[12] 1880 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1881 ms.StoreMessageInfo(mi) 1882 } 1883 } 1884 1885 func (x *Tag) String() string { 1886 return protoimpl.X.MessageStringOf(x) 1887 } 1888 1889 func (*Tag) ProtoMessage() {} 1890 1891 func (x *Tag) ProtoReflect() protoreflect.Message { 1892 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[12] 1893 if protoimpl.UnsafeEnabled && x != nil { 1894 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1895 if ms.LoadMessageInfo() == nil { 1896 ms.StoreMessageInfo(mi) 1897 } 1898 return ms 1899 } 1900 return mi.MessageOf(x) 1901 } 1902 1903 // Deprecated: Use Tag.ProtoReflect.Descriptor instead. 1904 func (*Tag) Descriptor() ([]byte, []int) { 1905 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{12} 1906 } 1907 1908 func (x *Tag) GetName() string { 1909 if x != nil { 1910 return x.Name 1911 } 1912 return "" 1913 } 1914 1915 func (x *Tag) GetDescription() string { 1916 if x != nil { 1917 return x.Description 1918 } 1919 return "" 1920 } 1921 1922 func (x *Tag) GetExternalDocs() *ExternalDocumentation { 1923 if x != nil { 1924 return x.ExternalDocs 1925 } 1926 return nil 1927 } 1928 1929 func (x *Tag) GetExtensions() map[string]*structpb.Value { 1930 if x != nil { 1931 return x.Extensions 1932 } 1933 return nil 1934 } 1935 1936 // `SecurityDefinitions` is a representation of OpenAPI v2 specification's 1937 // Security Definitions object. 1938 // 1939 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#securityDefinitionsObject 1940 // 1941 // A declaration of the security schemes available to be used in the 1942 // specification. This does not enforce the security schemes on the operations 1943 // and only serves to provide the relevant details for each scheme. 1944 type SecurityDefinitions struct { 1945 state protoimpl.MessageState 1946 sizeCache protoimpl.SizeCache 1947 unknownFields protoimpl.UnknownFields 1948 1949 // A single security scheme definition, mapping a "name" to the scheme it 1950 // defines. 1951 Security map[string]*SecurityScheme `protobuf:"bytes,1,rep,name=security,proto3" json:"security,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1952 } 1953 1954 func (x *SecurityDefinitions) Reset() { 1955 *x = SecurityDefinitions{} 1956 if protoimpl.UnsafeEnabled { 1957 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[13] 1958 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1959 ms.StoreMessageInfo(mi) 1960 } 1961 } 1962 1963 func (x *SecurityDefinitions) String() string { 1964 return protoimpl.X.MessageStringOf(x) 1965 } 1966 1967 func (*SecurityDefinitions) ProtoMessage() {} 1968 1969 func (x *SecurityDefinitions) ProtoReflect() protoreflect.Message { 1970 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[13] 1971 if protoimpl.UnsafeEnabled && x != nil { 1972 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1973 if ms.LoadMessageInfo() == nil { 1974 ms.StoreMessageInfo(mi) 1975 } 1976 return ms 1977 } 1978 return mi.MessageOf(x) 1979 } 1980 1981 // Deprecated: Use SecurityDefinitions.ProtoReflect.Descriptor instead. 1982 func (*SecurityDefinitions) Descriptor() ([]byte, []int) { 1983 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{13} 1984 } 1985 1986 func (x *SecurityDefinitions) GetSecurity() map[string]*SecurityScheme { 1987 if x != nil { 1988 return x.Security 1989 } 1990 return nil 1991 } 1992 1993 // `SecurityScheme` is a representation of OpenAPI v2 specification's 1994 // Security Scheme object. 1995 // 1996 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#securitySchemeObject 1997 // 1998 // Allows the definition of a security scheme that can be used by the 1999 // operations. Supported schemes are basic authentication, an API key (either as 2000 // a header or as a query parameter) and OAuth2's common flows (implicit, 2001 // password, application and access code). 2002 type SecurityScheme struct { 2003 state protoimpl.MessageState 2004 sizeCache protoimpl.SizeCache 2005 unknownFields protoimpl.UnknownFields 2006 2007 // The type of the security scheme. Valid values are "basic", 2008 // "apiKey" or "oauth2". 2009 Type SecurityScheme_Type `protobuf:"varint,1,opt,name=type,proto3,enum=grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme_Type" json:"type,omitempty"` 2010 // A short description for security scheme. 2011 Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` 2012 // The name of the header or query parameter to be used. 2013 // Valid for apiKey. 2014 Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` 2015 // The location of the API key. Valid values are "query" or 2016 // "header". 2017 // Valid for apiKey. 2018 In SecurityScheme_In `protobuf:"varint,4,opt,name=in,proto3,enum=grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme_In" json:"in,omitempty"` 2019 // The flow used by the OAuth2 security scheme. Valid values are 2020 // "implicit", "password", "application" or "accessCode". 2021 // Valid for oauth2. 2022 Flow SecurityScheme_Flow `protobuf:"varint,5,opt,name=flow,proto3,enum=grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme_Flow" json:"flow,omitempty"` 2023 // The authorization URL to be used for this flow. This SHOULD be in 2024 // the form of a URL. 2025 // Valid for oauth2/implicit and oauth2/accessCode. 2026 AuthorizationUrl string `protobuf:"bytes,6,opt,name=authorization_url,json=authorizationUrl,proto3" json:"authorization_url,omitempty"` 2027 // The token URL to be used for this flow. This SHOULD be in the 2028 // form of a URL. 2029 // Valid for oauth2/password, oauth2/application and oauth2/accessCode. 2030 TokenUrl string `protobuf:"bytes,7,opt,name=token_url,json=tokenUrl,proto3" json:"token_url,omitempty"` 2031 // The available scopes for the OAuth2 security scheme. 2032 // Valid for oauth2. 2033 Scopes *Scopes `protobuf:"bytes,8,opt,name=scopes,proto3" json:"scopes,omitempty"` 2034 // Custom properties that start with "x-" such as "x-foo" used to describe 2035 // extra functionality that is not covered by the standard OpenAPI Specification. 2036 // See: https://swagger.io/docs/specification/2-0/swagger-extensions/ 2037 Extensions map[string]*structpb.Value `protobuf:"bytes,9,rep,name=extensions,proto3" json:"extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 2038 } 2039 2040 func (x *SecurityScheme) Reset() { 2041 *x = SecurityScheme{} 2042 if protoimpl.UnsafeEnabled { 2043 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[14] 2044 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2045 ms.StoreMessageInfo(mi) 2046 } 2047 } 2048 2049 func (x *SecurityScheme) String() string { 2050 return protoimpl.X.MessageStringOf(x) 2051 } 2052 2053 func (*SecurityScheme) ProtoMessage() {} 2054 2055 func (x *SecurityScheme) ProtoReflect() protoreflect.Message { 2056 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[14] 2057 if protoimpl.UnsafeEnabled && x != nil { 2058 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2059 if ms.LoadMessageInfo() == nil { 2060 ms.StoreMessageInfo(mi) 2061 } 2062 return ms 2063 } 2064 return mi.MessageOf(x) 2065 } 2066 2067 // Deprecated: Use SecurityScheme.ProtoReflect.Descriptor instead. 2068 func (*SecurityScheme) Descriptor() ([]byte, []int) { 2069 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{14} 2070 } 2071 2072 func (x *SecurityScheme) GetType() SecurityScheme_Type { 2073 if x != nil { 2074 return x.Type 2075 } 2076 return SecurityScheme_TYPE_INVALID 2077 } 2078 2079 func (x *SecurityScheme) GetDescription() string { 2080 if x != nil { 2081 return x.Description 2082 } 2083 return "" 2084 } 2085 2086 func (x *SecurityScheme) GetName() string { 2087 if x != nil { 2088 return x.Name 2089 } 2090 return "" 2091 } 2092 2093 func (x *SecurityScheme) GetIn() SecurityScheme_In { 2094 if x != nil { 2095 return x.In 2096 } 2097 return SecurityScheme_IN_INVALID 2098 } 2099 2100 func (x *SecurityScheme) GetFlow() SecurityScheme_Flow { 2101 if x != nil { 2102 return x.Flow 2103 } 2104 return SecurityScheme_FLOW_INVALID 2105 } 2106 2107 func (x *SecurityScheme) GetAuthorizationUrl() string { 2108 if x != nil { 2109 return x.AuthorizationUrl 2110 } 2111 return "" 2112 } 2113 2114 func (x *SecurityScheme) GetTokenUrl() string { 2115 if x != nil { 2116 return x.TokenUrl 2117 } 2118 return "" 2119 } 2120 2121 func (x *SecurityScheme) GetScopes() *Scopes { 2122 if x != nil { 2123 return x.Scopes 2124 } 2125 return nil 2126 } 2127 2128 func (x *SecurityScheme) GetExtensions() map[string]*structpb.Value { 2129 if x != nil { 2130 return x.Extensions 2131 } 2132 return nil 2133 } 2134 2135 // `SecurityRequirement` is a representation of OpenAPI v2 specification's 2136 // Security Requirement object. 2137 // 2138 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#securityRequirementObject 2139 // 2140 // Lists the required security schemes to execute this operation. The object can 2141 // have multiple security schemes declared in it which are all required (that 2142 // is, there is a logical AND between the schemes). 2143 // 2144 // The name used for each property MUST correspond to a security scheme 2145 // declared in the Security Definitions. 2146 type SecurityRequirement struct { 2147 state protoimpl.MessageState 2148 sizeCache protoimpl.SizeCache 2149 unknownFields protoimpl.UnknownFields 2150 2151 // Each name must correspond to a security scheme which is declared in 2152 // the Security Definitions. If the security scheme is of type "oauth2", 2153 // then the value is a list of scope names required for the execution. 2154 // For other security scheme types, the array MUST be empty. 2155 SecurityRequirement map[string]*SecurityRequirement_SecurityRequirementValue `protobuf:"bytes,1,rep,name=security_requirement,json=securityRequirement,proto3" json:"security_requirement,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 2156 } 2157 2158 func (x *SecurityRequirement) Reset() { 2159 *x = SecurityRequirement{} 2160 if protoimpl.UnsafeEnabled { 2161 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[15] 2162 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2163 ms.StoreMessageInfo(mi) 2164 } 2165 } 2166 2167 func (x *SecurityRequirement) String() string { 2168 return protoimpl.X.MessageStringOf(x) 2169 } 2170 2171 func (*SecurityRequirement) ProtoMessage() {} 2172 2173 func (x *SecurityRequirement) ProtoReflect() protoreflect.Message { 2174 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[15] 2175 if protoimpl.UnsafeEnabled && x != nil { 2176 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2177 if ms.LoadMessageInfo() == nil { 2178 ms.StoreMessageInfo(mi) 2179 } 2180 return ms 2181 } 2182 return mi.MessageOf(x) 2183 } 2184 2185 // Deprecated: Use SecurityRequirement.ProtoReflect.Descriptor instead. 2186 func (*SecurityRequirement) Descriptor() ([]byte, []int) { 2187 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{15} 2188 } 2189 2190 func (x *SecurityRequirement) GetSecurityRequirement() map[string]*SecurityRequirement_SecurityRequirementValue { 2191 if x != nil { 2192 return x.SecurityRequirement 2193 } 2194 return nil 2195 } 2196 2197 // `Scopes` is a representation of OpenAPI v2 specification's Scopes object. 2198 // 2199 // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#scopesObject 2200 // 2201 // Lists the available scopes for an OAuth2 security scheme. 2202 type Scopes struct { 2203 state protoimpl.MessageState 2204 sizeCache protoimpl.SizeCache 2205 unknownFields protoimpl.UnknownFields 2206 2207 // Maps between a name of a scope to a short description of it (as the value 2208 // of the property). 2209 Scope map[string]string `protobuf:"bytes,1,rep,name=scope,proto3" json:"scope,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 2210 } 2211 2212 func (x *Scopes) Reset() { 2213 *x = Scopes{} 2214 if protoimpl.UnsafeEnabled { 2215 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[16] 2216 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2217 ms.StoreMessageInfo(mi) 2218 } 2219 } 2220 2221 func (x *Scopes) String() string { 2222 return protoimpl.X.MessageStringOf(x) 2223 } 2224 2225 func (*Scopes) ProtoMessage() {} 2226 2227 func (x *Scopes) ProtoReflect() protoreflect.Message { 2228 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[16] 2229 if protoimpl.UnsafeEnabled && x != nil { 2230 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2231 if ms.LoadMessageInfo() == nil { 2232 ms.StoreMessageInfo(mi) 2233 } 2234 return ms 2235 } 2236 return mi.MessageOf(x) 2237 } 2238 2239 // Deprecated: Use Scopes.ProtoReflect.Descriptor instead. 2240 func (*Scopes) Descriptor() ([]byte, []int) { 2241 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{16} 2242 } 2243 2244 func (x *Scopes) GetScope() map[string]string { 2245 if x != nil { 2246 return x.Scope 2247 } 2248 return nil 2249 } 2250 2251 // 'FieldConfiguration' provides additional field level properties used when generating the OpenAPI v2 file. 2252 // These properties are not defined by OpenAPIv2, but they are used to control the generation. 2253 type JSONSchema_FieldConfiguration struct { 2254 state protoimpl.MessageState 2255 sizeCache protoimpl.SizeCache 2256 unknownFields protoimpl.UnknownFields 2257 2258 // Alternative parameter name when used as path parameter. If set, this will 2259 // be used as the complete parameter name when this field is used as a path 2260 // parameter. Use this to avoid having auto generated path parameter names 2261 // for overlapping paths. 2262 PathParamName string `protobuf:"bytes,47,opt,name=path_param_name,json=pathParamName,proto3" json:"path_param_name,omitempty"` 2263 } 2264 2265 func (x *JSONSchema_FieldConfiguration) Reset() { 2266 *x = JSONSchema_FieldConfiguration{} 2267 if protoimpl.UnsafeEnabled { 2268 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[25] 2269 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2270 ms.StoreMessageInfo(mi) 2271 } 2272 } 2273 2274 func (x *JSONSchema_FieldConfiguration) String() string { 2275 return protoimpl.X.MessageStringOf(x) 2276 } 2277 2278 func (*JSONSchema_FieldConfiguration) ProtoMessage() {} 2279 2280 func (x *JSONSchema_FieldConfiguration) ProtoReflect() protoreflect.Message { 2281 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[25] 2282 if protoimpl.UnsafeEnabled && x != nil { 2283 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2284 if ms.LoadMessageInfo() == nil { 2285 ms.StoreMessageInfo(mi) 2286 } 2287 return ms 2288 } 2289 return mi.MessageOf(x) 2290 } 2291 2292 // Deprecated: Use JSONSchema_FieldConfiguration.ProtoReflect.Descriptor instead. 2293 func (*JSONSchema_FieldConfiguration) Descriptor() ([]byte, []int) { 2294 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{11, 0} 2295 } 2296 2297 func (x *JSONSchema_FieldConfiguration) GetPathParamName() string { 2298 if x != nil { 2299 return x.PathParamName 2300 } 2301 return "" 2302 } 2303 2304 // If the security scheme is of type "oauth2", then the value is a list of 2305 // scope names required for the execution. For other security scheme types, 2306 // the array MUST be empty. 2307 type SecurityRequirement_SecurityRequirementValue struct { 2308 state protoimpl.MessageState 2309 sizeCache protoimpl.SizeCache 2310 unknownFields protoimpl.UnknownFields 2311 2312 Scope []string `protobuf:"bytes,1,rep,name=scope,proto3" json:"scope,omitempty"` 2313 } 2314 2315 func (x *SecurityRequirement_SecurityRequirementValue) Reset() { 2316 *x = SecurityRequirement_SecurityRequirementValue{} 2317 if protoimpl.UnsafeEnabled { 2318 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[30] 2319 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2320 ms.StoreMessageInfo(mi) 2321 } 2322 } 2323 2324 func (x *SecurityRequirement_SecurityRequirementValue) String() string { 2325 return protoimpl.X.MessageStringOf(x) 2326 } 2327 2328 func (*SecurityRequirement_SecurityRequirementValue) ProtoMessage() {} 2329 2330 func (x *SecurityRequirement_SecurityRequirementValue) ProtoReflect() protoreflect.Message { 2331 mi := &file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[30] 2332 if protoimpl.UnsafeEnabled && x != nil { 2333 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2334 if ms.LoadMessageInfo() == nil { 2335 ms.StoreMessageInfo(mi) 2336 } 2337 return ms 2338 } 2339 return mi.MessageOf(x) 2340 } 2341 2342 // Deprecated: Use SecurityRequirement_SecurityRequirementValue.ProtoReflect.Descriptor instead. 2343 func (*SecurityRequirement_SecurityRequirementValue) Descriptor() ([]byte, []int) { 2344 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP(), []int{15, 0} 2345 } 2346 2347 func (x *SecurityRequirement_SecurityRequirementValue) GetScope() []string { 2348 if x != nil { 2349 return x.Scope 2350 } 2351 return nil 2352 } 2353 2354 var File_protoc_gen_openapiv2_options_openapiv2_proto protoreflect.FileDescriptor 2355 2356 var file_protoc_gen_openapiv2_options_openapiv2_proto_rawDesc = []byte{ 2357 0x0a, 0x2c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 2358 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x6f, 2359 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 2360 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 2361 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 2362 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2363 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 2364 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb3, 0x08, 0x0a, 0x07, 0x53, 0x77, 0x61, 0x67, 2365 0x67, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x18, 0x01, 2366 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x12, 0x43, 0x0a, 2367 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x72, 2368 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2369 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 2370 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 2371 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 2372 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x70, 2373 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x73, 0x65, 0x50, 2374 0x61, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x18, 0x05, 2375 0x20, 0x03, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 2376 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 2377 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2378 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 2379 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 2380 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 2381 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 2382 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 2383 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x72, 2384 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2385 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 2386 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2e, 2387 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 2388 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x71, 0x0a, 0x14, 0x73, 0x65, 0x63, 2389 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 2390 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 2391 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 2392 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 2393 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 2394 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x13, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 2395 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5a, 0x0a, 0x08, 2396 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 2397 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 2398 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 2399 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 2400 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 2401 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 2402 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 2403 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 2404 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 2405 0x6e, 0x73, 0x2e, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x65, 0x0a, 0x0d, 2406 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x0e, 0x20, 2407 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 2408 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 2409 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 2410 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 2411 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 2412 0x6f, 0x63, 0x73, 0x12, 0x62, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 2413 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 2414 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 2415 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 2416 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 2417 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74, 2418 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x71, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 2419 0x6e, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 2420 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x49, 0x0a, 0x05, 0x76, 2421 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x72, 0x70, 2422 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 2423 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 2424 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 2425 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x55, 0x0a, 0x0f, 0x45, 0x78, 2426 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 2427 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 2428 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 2429 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2430 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 2431 0x01, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0xd6, 0x07, 2432 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 2433 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 2434 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 2435 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 2436 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 2437 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x0d, 0x65, 2438 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 2439 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 2440 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 2441 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 2442 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 2443 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 2444 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 2445 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 2446 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 2447 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 2448 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 2449 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, 0x12, 0x61, 0x0a, 2450 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 2451 0x32, 0x43, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 2452 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 2453 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x65, 2454 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 2455 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 2456 0x12, 0x4b, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 2457 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 2458 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 2459 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x63, 2460 0x68, 0x65, 0x6d, 0x65, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 2461 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 2462 0x08, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x5a, 0x0a, 2463 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 2464 0x3e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 2465 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 2466 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 2467 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 2468 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x64, 0x0a, 0x0a, 0x65, 0x78, 0x74, 2469 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 2470 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 2471 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 2472 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 2473 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 2474 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 2475 0x55, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 2476 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 2477 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 2478 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 2479 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 2480 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x71, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 2481 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 2482 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x49, 0x0a, 0x05, 0x76, 0x61, 2483 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x72, 0x70, 0x63, 2484 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 2485 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 2486 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 2487 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x55, 0x0a, 0x0f, 0x45, 0x78, 0x74, 2488 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 2489 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 2490 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 2491 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2492 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 2493 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x22, 0x62, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 2494 0x74, 0x65, 0x72, 0x73, 0x12, 0x54, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 2495 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 2496 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 2497 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 2498 0x73, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 2499 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x22, 0xa3, 0x02, 0x0a, 0x0f, 0x48, 2500 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x12, 2501 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 2502 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 2503 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 2504 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 2505 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 2506 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 2507 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x48, 2508 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x2e, 0x54, 2509 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 2510 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 2511 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 2512 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x45, 0x0a, 2513 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 2514 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0a, 2515 0x0a, 0x06, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 2516 0x54, 0x45, 0x47, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 2517 0x41, 0x4e, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 2518 0x22, 0xd8, 0x01, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 2519 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 2520 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 2521 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 2522 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 2523 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 2524 0x61, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 2525 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x0d, 2526 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x4a, 0x04, 0x08, 2527 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 2528 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0a, 0x10, 2529 0x0b, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x4a, 0x04, 0x08, 2530 0x0e, 0x10, 0x0f, 0x4a, 0x04, 0x08, 0x0f, 0x10, 0x10, 0x4a, 0x04, 0x08, 0x10, 0x10, 0x11, 0x4a, 2531 0x04, 0x08, 0x11, 0x10, 0x12, 0x4a, 0x04, 0x08, 0x12, 0x10, 0x13, 0x22, 0x9a, 0x05, 0x0a, 0x08, 2532 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 2533 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 2534 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x06, 0x73, 0x63, 2535 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x72, 0x70, 2536 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 2537 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 2538 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 2539 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x5a, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 2540 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 2541 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 2542 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 2543 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x64, 2544 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 2545 0x73, 0x12, 0x5d, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 2546 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 2547 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 2548 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 2549 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 2550 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 2551 0x12, 0x63, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 2552 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 2553 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 2554 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2555 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 2556 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 2557 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x6d, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 2558 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 2559 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x47, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 2560 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 2561 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 2562 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 2563 0x6e, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 2564 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 2565 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 2566 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 2567 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 2568 0x01, 0x1a, 0x55, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 2569 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 2570 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 2571 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 2572 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 2573 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd6, 0x03, 0x0a, 0x04, 0x49, 0x6e, 0x66, 2574 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 2575 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 2576 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 2577 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x65, 0x72, 2578 0x6d, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 2579 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 2580 0x69, 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x04, 2581 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 2582 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 2583 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2584 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 2585 0x74, 0x12, 0x4c, 0x0a, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 2586 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 2587 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 2588 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 2589 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 2590 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 2591 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x0a, 0x65, 0x78, 0x74, 2592 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 2593 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 2594 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 2595 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 2596 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 2597 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x55, 0x0a, 0x0f, 0x45, 0x78, 2598 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 2599 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 2600 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 2601 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2602 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 2603 0x01, 0x22, 0x45, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 2604 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 2605 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 2606 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 2607 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x2f, 0x0a, 0x07, 0x4c, 0x69, 0x63, 0x65, 2608 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 2609 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 2610 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x4b, 0x0a, 0x15, 0x45, 0x78, 0x74, 2611 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 2612 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 2613 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 2614 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 2615 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0xaa, 0x02, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 2616 0x61, 0x12, 0x56, 0x0a, 0x0b, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 2617 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 2618 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 2619 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 2620 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0a, 0x6a, 2621 0x73, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 2622 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 2623 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x12, 2624 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 2625 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x65, 0x0a, 0x0d, 2626 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x05, 0x20, 2627 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 2628 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 2629 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 2630 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 2631 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 2632 0x6f, 0x63, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x06, 2633 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4a, 0x04, 0x08, 2634 0x04, 0x10, 0x05, 0x22, 0xd7, 0x0a, 0x0a, 0x0a, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, 0x65, 2635 0x6d, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 2636 0x03, 0x72, 0x65, 0x66, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x05, 0x20, 2637 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 2638 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 2639 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 2640 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 2641 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 2642 0x6e, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 2643 0x6e, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x09, 2644 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 2645 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x18, 0x0a, 0x20, 0x01, 2646 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f, 0x66, 0x12, 0x18, 2647 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 2648 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 2649 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0c, 0x20, 2650 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x61, 2651 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 2652 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 2653 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 2654 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 2655 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 2656 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 2657 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 2658 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 2659 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 2660 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 2661 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 2662 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 2663 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x15, 2664 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 2665 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x16, 2666 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 2667 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 2668 0x69, 0x65, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x50, 0x72, 2669 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 2670 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 2671 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 2672 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x1a, 0x20, 0x03, 0x28, 2673 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 2674 0x72, 0x72, 0x61, 0x79, 0x18, 0x22, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x61, 0x72, 0x72, 0x61, 2675 0x79, 0x12, 0x5f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0e, 0x32, 2676 0x4b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 2677 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 2678 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 2679 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, 0x65, 0x6d, 2680 0x61, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x04, 0x74, 0x79, 2681 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x24, 0x20, 0x01, 2682 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x6e, 2683 0x75, 0x6d, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x7a, 2684 0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 2685 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 2686 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2687 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 2688 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, 2689 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 2690 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 2691 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x0a, 0x65, 0x78, 2692 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 2693 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 2694 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 2695 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 2696 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 2697 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 2698 0x73, 0x1a, 0x3c, 0x0a, 0x12, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 2699 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x61, 0x74, 0x68, 0x5f, 2700 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 2701 0x52, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 2702 0x55, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 2703 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 2704 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 2705 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2706 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 2707 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x77, 0x0a, 0x15, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 2708 0x68, 0x65, 0x6d, 0x61, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 2709 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 2710 0x41, 0x52, 0x52, 0x41, 0x59, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 2711 0x41, 0x4e, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x45, 0x52, 0x10, 2712 0x03, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 2713 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x42, 0x4a, 0x45, 0x43, 2714 0x54, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x4a, 2715 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x04, 0x10, 2716 0x05, 0x4a, 0x04, 0x08, 0x12, 0x10, 0x13, 0x4a, 0x04, 0x08, 0x13, 0x10, 0x14, 0x4a, 0x04, 0x08, 2717 0x17, 0x10, 0x18, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x1c, 0x10, 0x1d, 0x4a, 2718 0x04, 0x08, 0x1d, 0x10, 0x1e, 0x4a, 0x04, 0x08, 0x1e, 0x10, 0x22, 0x4a, 0x04, 0x08, 0x25, 0x10, 2719 0x2a, 0x4a, 0x04, 0x08, 0x2a, 0x10, 0x2b, 0x4a, 0x04, 0x08, 0x2b, 0x10, 0x2e, 0x22, 0xd9, 0x02, 2720 0x0a, 0x03, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 2721 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 2722 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 2723 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x0d, 0x65, 2724 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 2725 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 2726 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 2727 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 2728 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 2729 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 2730 0x63, 0x73, 0x12, 0x5e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 2731 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 2732 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 2733 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 2734 0x6e, 0x73, 0x2e, 0x54, 0x61, 0x67, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 2735 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 2736 0x6e, 0x73, 0x1a, 0x55, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 2737 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 2738 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 2739 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2740 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 2741 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf7, 0x01, 0x0a, 0x13, 0x53, 0x65, 2742 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 2743 0x73, 0x12, 0x68, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 2744 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 2745 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 2746 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 2747 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 2748 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 2749 0x79, 0x52, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x1a, 0x76, 0x0a, 0x0d, 0x53, 2750 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 2751 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4f, 2752 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 2753 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 2754 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 2755 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 2756 0x74, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 2757 0x02, 0x38, 0x01, 0x22, 0xff, 0x06, 0x0a, 0x0e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 2758 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 2759 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 2760 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 2761 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2762 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x2e, 2763 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 2764 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 2765 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 2766 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 2767 0x12, 0x4c, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x67, 2768 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2769 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 2770 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 2771 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x2e, 0x49, 0x6e, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x52, 2772 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 2773 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2774 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 2775 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 2776 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x04, 0x66, 0x6c, 2777 0x6f, 0x77, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 2778 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 2779 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 2780 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 2781 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x49, 0x0a, 0x06, 2782 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 2783 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2784 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 2785 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x52, 2786 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x69, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 2787 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x72, 2788 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2789 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 2790 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 2791 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 2792 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 2793 0x6e, 0x73, 0x1a, 0x55, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 2794 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 2795 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 2796 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2797 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 2798 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x04, 0x54, 0x79, 0x70, 2799 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 2800 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x49, 2801 0x43, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x5f, 2802 0x4b, 0x45, 0x59, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x41, 2803 0x55, 0x54, 0x48, 0x32, 0x10, 0x03, 0x22, 0x31, 0x0a, 0x02, 0x49, 0x6e, 0x12, 0x0e, 0x0a, 0x0a, 2804 0x49, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 2805 0x49, 0x4e, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 2806 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x02, 0x22, 0x6a, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 2807 0x77, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 2808 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x49, 0x4d, 0x50, 0x4c, 2809 0x49, 0x43, 0x49, 0x54, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 2810 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x4c, 0x4f, 2811 0x57, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 2812 0x14, 0x0a, 0x10, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x43, 2813 0x4f, 0x44, 0x45, 0x10, 0x04, 0x22, 0xf6, 0x02, 0x0a, 0x13, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 2814 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x8a, 0x01, 2815 0x0a, 0x14, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 2816 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x67, 2817 0x72, 0x70, 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2818 0x6f, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 2819 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 2820 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x63, 2821 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 2822 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 2823 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x30, 0x0a, 0x18, 0x53, 0x65, 2824 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 2825 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 2826 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x1a, 0x9f, 0x01, 0x0a, 2827 0x18, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 2828 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 2829 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x6d, 0x0a, 0x05, 0x76, 2830 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x67, 0x72, 0x70, 2831 0x63, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 2832 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 2833 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 2834 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 2835 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 2836 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x96, 2837 0x01, 0x0a, 0x06, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x05, 0x73, 0x63, 0x6f, 2838 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 2839 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x5f, 0x67, 2840 0x65, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, 0x6f, 0x70, 0x74, 2841 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x63, 0x6f, 0x70, 2842 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x1a, 0x38, 0x0a, 2843 0x0a, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 2844 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 2845 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 2846 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x3b, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 2847 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 2848 0x0a, 0x04, 0x48, 0x54, 0x54, 0x50, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x48, 0x54, 0x54, 0x50, 2849 0x53, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x57, 0x53, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x57, 2850 0x53, 0x53, 0x10, 0x04, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 2851 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x65, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 2852 0x6d, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x76, 2853 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 2854 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x62, 0x06, 2855 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2856 } 2857 2858 var ( 2859 file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescOnce sync.Once 2860 file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescData = file_protoc_gen_openapiv2_options_openapiv2_proto_rawDesc 2861 ) 2862 2863 func file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescGZIP() []byte { 2864 file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescOnce.Do(func() { 2865 file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescData = protoimpl.X.CompressGZIP(file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescData) 2866 }) 2867 return file_protoc_gen_openapiv2_options_openapiv2_proto_rawDescData 2868 } 2869 2870 var file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes = make([]protoimpl.EnumInfo, 6) 2871 var file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes = make([]protoimpl.MessageInfo, 33) 2872 var file_protoc_gen_openapiv2_options_openapiv2_proto_goTypes = []interface{}{ 2873 (Scheme)(0), // 0: grpc.gateway.protoc_gen_openapiv2.options.Scheme 2874 (HeaderParameter_Type)(0), // 1: grpc.gateway.protoc_gen_openapiv2.options.HeaderParameter.Type 2875 (JSONSchema_JSONSchemaSimpleTypes)(0), // 2: grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes 2876 (SecurityScheme_Type)(0), // 3: grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type 2877 (SecurityScheme_In)(0), // 4: grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In 2878 (SecurityScheme_Flow)(0), // 5: grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow 2879 (*Swagger)(nil), // 6: grpc.gateway.protoc_gen_openapiv2.options.Swagger 2880 (*Operation)(nil), // 7: grpc.gateway.protoc_gen_openapiv2.options.Operation 2881 (*Parameters)(nil), // 8: grpc.gateway.protoc_gen_openapiv2.options.Parameters 2882 (*HeaderParameter)(nil), // 9: grpc.gateway.protoc_gen_openapiv2.options.HeaderParameter 2883 (*Header)(nil), // 10: grpc.gateway.protoc_gen_openapiv2.options.Header 2884 (*Response)(nil), // 11: grpc.gateway.protoc_gen_openapiv2.options.Response 2885 (*Info)(nil), // 12: grpc.gateway.protoc_gen_openapiv2.options.Info 2886 (*Contact)(nil), // 13: grpc.gateway.protoc_gen_openapiv2.options.Contact 2887 (*License)(nil), // 14: grpc.gateway.protoc_gen_openapiv2.options.License 2888 (*ExternalDocumentation)(nil), // 15: grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation 2889 (*Schema)(nil), // 16: grpc.gateway.protoc_gen_openapiv2.options.Schema 2890 (*JSONSchema)(nil), // 17: grpc.gateway.protoc_gen_openapiv2.options.JSONSchema 2891 (*Tag)(nil), // 18: grpc.gateway.protoc_gen_openapiv2.options.Tag 2892 (*SecurityDefinitions)(nil), // 19: grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions 2893 (*SecurityScheme)(nil), // 20: grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme 2894 (*SecurityRequirement)(nil), // 21: grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement 2895 (*Scopes)(nil), // 22: grpc.gateway.protoc_gen_openapiv2.options.Scopes 2896 nil, // 23: grpc.gateway.protoc_gen_openapiv2.options.Swagger.ResponsesEntry 2897 nil, // 24: grpc.gateway.protoc_gen_openapiv2.options.Swagger.ExtensionsEntry 2898 nil, // 25: grpc.gateway.protoc_gen_openapiv2.options.Operation.ResponsesEntry 2899 nil, // 26: grpc.gateway.protoc_gen_openapiv2.options.Operation.ExtensionsEntry 2900 nil, // 27: grpc.gateway.protoc_gen_openapiv2.options.Response.HeadersEntry 2901 nil, // 28: grpc.gateway.protoc_gen_openapiv2.options.Response.ExamplesEntry 2902 nil, // 29: grpc.gateway.protoc_gen_openapiv2.options.Response.ExtensionsEntry 2903 nil, // 30: grpc.gateway.protoc_gen_openapiv2.options.Info.ExtensionsEntry 2904 (*JSONSchema_FieldConfiguration)(nil), // 31: grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration 2905 nil, // 32: grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.ExtensionsEntry 2906 nil, // 33: grpc.gateway.protoc_gen_openapiv2.options.Tag.ExtensionsEntry 2907 nil, // 34: grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.SecurityEntry 2908 nil, // 35: grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.ExtensionsEntry 2909 (*SecurityRequirement_SecurityRequirementValue)(nil), // 36: grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue 2910 nil, // 37: grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementEntry 2911 nil, // 38: grpc.gateway.protoc_gen_openapiv2.options.Scopes.ScopeEntry 2912 (*structpb.Value)(nil), // 39: google.protobuf.Value 2913 } 2914 var file_protoc_gen_openapiv2_options_openapiv2_proto_depIdxs = []int32{ 2915 12, // 0: grpc.gateway.protoc_gen_openapiv2.options.Swagger.info:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Info 2916 0, // 1: grpc.gateway.protoc_gen_openapiv2.options.Swagger.schemes:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Scheme 2917 23, // 2: grpc.gateway.protoc_gen_openapiv2.options.Swagger.responses:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Swagger.ResponsesEntry 2918 19, // 3: grpc.gateway.protoc_gen_openapiv2.options.Swagger.security_definitions:type_name -> grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions 2919 21, // 4: grpc.gateway.protoc_gen_openapiv2.options.Swagger.security:type_name -> grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement 2920 18, // 5: grpc.gateway.protoc_gen_openapiv2.options.Swagger.tags:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Tag 2921 15, // 6: grpc.gateway.protoc_gen_openapiv2.options.Swagger.external_docs:type_name -> grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation 2922 24, // 7: grpc.gateway.protoc_gen_openapiv2.options.Swagger.extensions:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Swagger.ExtensionsEntry 2923 15, // 8: grpc.gateway.protoc_gen_openapiv2.options.Operation.external_docs:type_name -> grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation 2924 25, // 9: grpc.gateway.protoc_gen_openapiv2.options.Operation.responses:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Operation.ResponsesEntry 2925 0, // 10: grpc.gateway.protoc_gen_openapiv2.options.Operation.schemes:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Scheme 2926 21, // 11: grpc.gateway.protoc_gen_openapiv2.options.Operation.security:type_name -> grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement 2927 26, // 12: grpc.gateway.protoc_gen_openapiv2.options.Operation.extensions:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Operation.ExtensionsEntry 2928 8, // 13: grpc.gateway.protoc_gen_openapiv2.options.Operation.parameters:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Parameters 2929 9, // 14: grpc.gateway.protoc_gen_openapiv2.options.Parameters.headers:type_name -> grpc.gateway.protoc_gen_openapiv2.options.HeaderParameter 2930 1, // 15: grpc.gateway.protoc_gen_openapiv2.options.HeaderParameter.type:type_name -> grpc.gateway.protoc_gen_openapiv2.options.HeaderParameter.Type 2931 16, // 16: grpc.gateway.protoc_gen_openapiv2.options.Response.schema:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Schema 2932 27, // 17: grpc.gateway.protoc_gen_openapiv2.options.Response.headers:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Response.HeadersEntry 2933 28, // 18: grpc.gateway.protoc_gen_openapiv2.options.Response.examples:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Response.ExamplesEntry 2934 29, // 19: grpc.gateway.protoc_gen_openapiv2.options.Response.extensions:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Response.ExtensionsEntry 2935 13, // 20: grpc.gateway.protoc_gen_openapiv2.options.Info.contact:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Contact 2936 14, // 21: grpc.gateway.protoc_gen_openapiv2.options.Info.license:type_name -> grpc.gateway.protoc_gen_openapiv2.options.License 2937 30, // 22: grpc.gateway.protoc_gen_openapiv2.options.Info.extensions:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Info.ExtensionsEntry 2938 17, // 23: grpc.gateway.protoc_gen_openapiv2.options.Schema.json_schema:type_name -> grpc.gateway.protoc_gen_openapiv2.options.JSONSchema 2939 15, // 24: grpc.gateway.protoc_gen_openapiv2.options.Schema.external_docs:type_name -> grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation 2940 2, // 25: grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.type:type_name -> grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes 2941 31, // 26: grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.field_configuration:type_name -> grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration 2942 32, // 27: grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.extensions:type_name -> grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.ExtensionsEntry 2943 15, // 28: grpc.gateway.protoc_gen_openapiv2.options.Tag.external_docs:type_name -> grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation 2944 33, // 29: grpc.gateway.protoc_gen_openapiv2.options.Tag.extensions:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Tag.ExtensionsEntry 2945 34, // 30: grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.security:type_name -> grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.SecurityEntry 2946 3, // 31: grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.type:type_name -> grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type 2947 4, // 32: grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.in:type_name -> grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In 2948 5, // 33: grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.flow:type_name -> grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow 2949 22, // 34: grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.scopes:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Scopes 2950 35, // 35: grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.extensions:type_name -> grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.ExtensionsEntry 2951 37, // 36: grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.security_requirement:type_name -> grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementEntry 2952 38, // 37: grpc.gateway.protoc_gen_openapiv2.options.Scopes.scope:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Scopes.ScopeEntry 2953 11, // 38: grpc.gateway.protoc_gen_openapiv2.options.Swagger.ResponsesEntry.value:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Response 2954 39, // 39: grpc.gateway.protoc_gen_openapiv2.options.Swagger.ExtensionsEntry.value:type_name -> google.protobuf.Value 2955 11, // 40: grpc.gateway.protoc_gen_openapiv2.options.Operation.ResponsesEntry.value:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Response 2956 39, // 41: grpc.gateway.protoc_gen_openapiv2.options.Operation.ExtensionsEntry.value:type_name -> google.protobuf.Value 2957 10, // 42: grpc.gateway.protoc_gen_openapiv2.options.Response.HeadersEntry.value:type_name -> grpc.gateway.protoc_gen_openapiv2.options.Header 2958 39, // 43: grpc.gateway.protoc_gen_openapiv2.options.Response.ExtensionsEntry.value:type_name -> google.protobuf.Value 2959 39, // 44: grpc.gateway.protoc_gen_openapiv2.options.Info.ExtensionsEntry.value:type_name -> google.protobuf.Value 2960 39, // 45: grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.ExtensionsEntry.value:type_name -> google.protobuf.Value 2961 39, // 46: grpc.gateway.protoc_gen_openapiv2.options.Tag.ExtensionsEntry.value:type_name -> google.protobuf.Value 2962 20, // 47: grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.SecurityEntry.value:type_name -> grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme 2963 39, // 48: grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.ExtensionsEntry.value:type_name -> google.protobuf.Value 2964 36, // 49: grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementEntry.value:type_name -> grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue 2965 50, // [50:50] is the sub-list for method output_type 2966 50, // [50:50] is the sub-list for method input_type 2967 50, // [50:50] is the sub-list for extension type_name 2968 50, // [50:50] is the sub-list for extension extendee 2969 0, // [0:50] is the sub-list for field type_name 2970 } 2971 2972 func init() { file_protoc_gen_openapiv2_options_openapiv2_proto_init() } 2973 func file_protoc_gen_openapiv2_options_openapiv2_proto_init() { 2974 if File_protoc_gen_openapiv2_options_openapiv2_proto != nil { 2975 return 2976 } 2977 if !protoimpl.UnsafeEnabled { 2978 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2979 switch v := v.(*Swagger); i { 2980 case 0: 2981 return &v.state 2982 case 1: 2983 return &v.sizeCache 2984 case 2: 2985 return &v.unknownFields 2986 default: 2987 return nil 2988 } 2989 } 2990 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2991 switch v := v.(*Operation); i { 2992 case 0: 2993 return &v.state 2994 case 1: 2995 return &v.sizeCache 2996 case 2: 2997 return &v.unknownFields 2998 default: 2999 return nil 3000 } 3001 } 3002 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 3003 switch v := v.(*Parameters); i { 3004 case 0: 3005 return &v.state 3006 case 1: 3007 return &v.sizeCache 3008 case 2: 3009 return &v.unknownFields 3010 default: 3011 return nil 3012 } 3013 } 3014 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 3015 switch v := v.(*HeaderParameter); i { 3016 case 0: 3017 return &v.state 3018 case 1: 3019 return &v.sizeCache 3020 case 2: 3021 return &v.unknownFields 3022 default: 3023 return nil 3024 } 3025 } 3026 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 3027 switch v := v.(*Header); i { 3028 case 0: 3029 return &v.state 3030 case 1: 3031 return &v.sizeCache 3032 case 2: 3033 return &v.unknownFields 3034 default: 3035 return nil 3036 } 3037 } 3038 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 3039 switch v := v.(*Response); i { 3040 case 0: 3041 return &v.state 3042 case 1: 3043 return &v.sizeCache 3044 case 2: 3045 return &v.unknownFields 3046 default: 3047 return nil 3048 } 3049 } 3050 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 3051 switch v := v.(*Info); i { 3052 case 0: 3053 return &v.state 3054 case 1: 3055 return &v.sizeCache 3056 case 2: 3057 return &v.unknownFields 3058 default: 3059 return nil 3060 } 3061 } 3062 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 3063 switch v := v.(*Contact); i { 3064 case 0: 3065 return &v.state 3066 case 1: 3067 return &v.sizeCache 3068 case 2: 3069 return &v.unknownFields 3070 default: 3071 return nil 3072 } 3073 } 3074 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 3075 switch v := v.(*License); i { 3076 case 0: 3077 return &v.state 3078 case 1: 3079 return &v.sizeCache 3080 case 2: 3081 return &v.unknownFields 3082 default: 3083 return nil 3084 } 3085 } 3086 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 3087 switch v := v.(*ExternalDocumentation); i { 3088 case 0: 3089 return &v.state 3090 case 1: 3091 return &v.sizeCache 3092 case 2: 3093 return &v.unknownFields 3094 default: 3095 return nil 3096 } 3097 } 3098 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 3099 switch v := v.(*Schema); i { 3100 case 0: 3101 return &v.state 3102 case 1: 3103 return &v.sizeCache 3104 case 2: 3105 return &v.unknownFields 3106 default: 3107 return nil 3108 } 3109 } 3110 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 3111 switch v := v.(*JSONSchema); i { 3112 case 0: 3113 return &v.state 3114 case 1: 3115 return &v.sizeCache 3116 case 2: 3117 return &v.unknownFields 3118 default: 3119 return nil 3120 } 3121 } 3122 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 3123 switch v := v.(*Tag); i { 3124 case 0: 3125 return &v.state 3126 case 1: 3127 return &v.sizeCache 3128 case 2: 3129 return &v.unknownFields 3130 default: 3131 return nil 3132 } 3133 } 3134 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 3135 switch v := v.(*SecurityDefinitions); i { 3136 case 0: 3137 return &v.state 3138 case 1: 3139 return &v.sizeCache 3140 case 2: 3141 return &v.unknownFields 3142 default: 3143 return nil 3144 } 3145 } 3146 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 3147 switch v := v.(*SecurityScheme); i { 3148 case 0: 3149 return &v.state 3150 case 1: 3151 return &v.sizeCache 3152 case 2: 3153 return &v.unknownFields 3154 default: 3155 return nil 3156 } 3157 } 3158 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 3159 switch v := v.(*SecurityRequirement); i { 3160 case 0: 3161 return &v.state 3162 case 1: 3163 return &v.sizeCache 3164 case 2: 3165 return &v.unknownFields 3166 default: 3167 return nil 3168 } 3169 } 3170 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 3171 switch v := v.(*Scopes); i { 3172 case 0: 3173 return &v.state 3174 case 1: 3175 return &v.sizeCache 3176 case 2: 3177 return &v.unknownFields 3178 default: 3179 return nil 3180 } 3181 } 3182 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 3183 switch v := v.(*JSONSchema_FieldConfiguration); i { 3184 case 0: 3185 return &v.state 3186 case 1: 3187 return &v.sizeCache 3188 case 2: 3189 return &v.unknownFields 3190 default: 3191 return nil 3192 } 3193 } 3194 file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 3195 switch v := v.(*SecurityRequirement_SecurityRequirementValue); i { 3196 case 0: 3197 return &v.state 3198 case 1: 3199 return &v.sizeCache 3200 case 2: 3201 return &v.unknownFields 3202 default: 3203 return nil 3204 } 3205 } 3206 } 3207 type x struct{} 3208 out := protoimpl.TypeBuilder{ 3209 File: protoimpl.DescBuilder{ 3210 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 3211 RawDescriptor: file_protoc_gen_openapiv2_options_openapiv2_proto_rawDesc, 3212 NumEnums: 6, 3213 NumMessages: 33, 3214 NumExtensions: 0, 3215 NumServices: 0, 3216 }, 3217 GoTypes: file_protoc_gen_openapiv2_options_openapiv2_proto_goTypes, 3218 DependencyIndexes: file_protoc_gen_openapiv2_options_openapiv2_proto_depIdxs, 3219 EnumInfos: file_protoc_gen_openapiv2_options_openapiv2_proto_enumTypes, 3220 MessageInfos: file_protoc_gen_openapiv2_options_openapiv2_proto_msgTypes, 3221 }.Build() 3222 File_protoc_gen_openapiv2_options_openapiv2_proto = out.File 3223 file_protoc_gen_openapiv2_options_openapiv2_proto_rawDesc = nil 3224 file_protoc_gen_openapiv2_options_openapiv2_proto_goTypes = nil 3225 file_protoc_gen_openapiv2_options_openapiv2_proto_depIdxs = nil 3226 }