go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/common/proto/config/service_config.pb.go (about) 1 // Copyright 2015 The LUCI Authors. All rights reserved. 2 // Use of this source code is governed under the Apache License, Version 2.0 3 // that can be found in the LICENSE file. 4 5 // Schemas for config files in services/luci-config config set. 6 // 7 // In this file, "string pattern" is an exact string (can't have a colon) or a 8 // string that starts with "regex:", followed by a regular expression. In case 9 // of regex, the pattern must match an entire string, as if it was surrounded by 10 // ^ and $. 11 12 // Code generated by protoc-gen-go. DO NOT EDIT. 13 // versions: 14 // protoc-gen-go v1.31.0 15 // protoc v3.21.7 16 // source: go.chromium.org/luci/common/proto/config/service_config.proto 17 18 package config 19 20 import ( 21 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 22 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 23 emptypb "google.golang.org/protobuf/types/known/emptypb" 24 reflect "reflect" 25 sync "sync" 26 ) 27 28 const ( 29 // Verify that this generated code is sufficiently up-to-date. 30 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 31 // Verify that runtime/protoimpl is sufficiently up-to-date. 32 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 33 ) 34 35 // Severity of a validation response message. In JSON encoded as a string. 36 type ValidationResponseMessage_Severity int32 37 38 const ( 39 ValidationResponseMessage_UNKNOWN ValidationResponseMessage_Severity = 0 40 ValidationResponseMessage_DEBUG ValidationResponseMessage_Severity = 10 41 ValidationResponseMessage_INFO ValidationResponseMessage_Severity = 20 42 ValidationResponseMessage_WARNING ValidationResponseMessage_Severity = 30 43 ValidationResponseMessage_ERROR ValidationResponseMessage_Severity = 40 44 ValidationResponseMessage_CRITICAL ValidationResponseMessage_Severity = 50 45 ) 46 47 // Enum value maps for ValidationResponseMessage_Severity. 48 var ( 49 ValidationResponseMessage_Severity_name = map[int32]string{ 50 0: "UNKNOWN", 51 10: "DEBUG", 52 20: "INFO", 53 30: "WARNING", 54 40: "ERROR", 55 50: "CRITICAL", 56 } 57 ValidationResponseMessage_Severity_value = map[string]int32{ 58 "UNKNOWN": 0, 59 "DEBUG": 10, 60 "INFO": 20, 61 "WARNING": 30, 62 "ERROR": 40, 63 "CRITICAL": 50, 64 } 65 ) 66 67 func (x ValidationResponseMessage_Severity) Enum() *ValidationResponseMessage_Severity { 68 p := new(ValidationResponseMessage_Severity) 69 *p = x 70 return p 71 } 72 73 func (x ValidationResponseMessage_Severity) String() string { 74 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 75 } 76 77 func (ValidationResponseMessage_Severity) Descriptor() protoreflect.EnumDescriptor { 78 return file_go_chromium_org_luci_common_proto_config_service_config_proto_enumTypes[0].Descriptor() 79 } 80 81 func (ValidationResponseMessage_Severity) Type() protoreflect.EnumType { 82 return &file_go_chromium_org_luci_common_proto_config_service_config_proto_enumTypes[0] 83 } 84 85 func (x ValidationResponseMessage_Severity) Number() protoreflect.EnumNumber { 86 return protoreflect.EnumNumber(x) 87 } 88 89 // Deprecated: Use ValidationResponseMessage_Severity.Descriptor instead. 90 func (ValidationResponseMessage_Severity) EnumDescriptor() ([]byte, []int) { 91 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{15, 0} 92 } 93 94 // Severity of a validation response message. 95 type ValidationResult_Severity int32 96 97 const ( 98 ValidationResult_UNKNOWN ValidationResult_Severity = 0 99 ValidationResult_DEBUG ValidationResult_Severity = 10 100 ValidationResult_INFO ValidationResult_Severity = 20 101 ValidationResult_WARNING ValidationResult_Severity = 30 102 ValidationResult_ERROR ValidationResult_Severity = 40 103 ValidationResult_CRITICAL ValidationResult_Severity = 50 104 ) 105 106 // Enum value maps for ValidationResult_Severity. 107 var ( 108 ValidationResult_Severity_name = map[int32]string{ 109 0: "UNKNOWN", 110 10: "DEBUG", 111 20: "INFO", 112 30: "WARNING", 113 40: "ERROR", 114 50: "CRITICAL", 115 } 116 ValidationResult_Severity_value = map[string]int32{ 117 "UNKNOWN": 0, 118 "DEBUG": 10, 119 "INFO": 20, 120 "WARNING": 30, 121 "ERROR": 40, 122 "CRITICAL": 50, 123 } 124 ) 125 126 func (x ValidationResult_Severity) Enum() *ValidationResult_Severity { 127 p := new(ValidationResult_Severity) 128 *p = x 129 return p 130 } 131 132 func (x ValidationResult_Severity) String() string { 133 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 134 } 135 136 func (ValidationResult_Severity) Descriptor() protoreflect.EnumDescriptor { 137 return file_go_chromium_org_luci_common_proto_config_service_config_proto_enumTypes[1].Descriptor() 138 } 139 140 func (ValidationResult_Severity) Type() protoreflect.EnumType { 141 return &file_go_chromium_org_luci_common_proto_config_service_config_proto_enumTypes[1] 142 } 143 144 func (x ValidationResult_Severity) Number() protoreflect.EnumNumber { 145 return protoreflect.EnumNumber(x) 146 } 147 148 // Deprecated: Use ValidationResult_Severity.Descriptor instead. 149 func (ValidationResult_Severity) EnumDescriptor() ([]byte, []int) { 150 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{18, 0} 151 } 152 153 // Use to specify configuration stored in Git repository importable via Gitiles 154 // API. 155 type GitilesLocation struct { 156 state protoimpl.MessageState 157 sizeCache protoimpl.SizeCache 158 unknownFields protoimpl.UnknownFields 159 160 // URL of the Git repository. 161 // Must not end with "/". 162 // Must not end with ".git". 163 // Must not have "/a/" prefix of a path component. 164 // 165 // Example: 166 // 167 // OK: 168 // https://chromium.googlesource.com/infra/infra 169 // Not OK: 170 // https://chromium.googlesource.com/a/infra/infra 171 // https://chromium.googlesource.com/infra/infra/ 172 // https://chromium.googlesource.com/infra/infra.git 173 Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"` 174 // Ref or commit hash of the Git repository. 175 // 176 // Must be a fully qualified ref starting with "refs/" or a commit hash. 177 // 178 // Example: 179 // 180 // OK: 181 // refs/heads/branch 182 // refs/heads/infra/config 183 // refs/branch-heads/beta 184 // $a_valid_git_sha 185 // Not OK: 186 // main 187 // HEAD 188 // origin/main 189 // tags/123 190 // 191 // TODO: crbug/1446839 - Replace this field with a new `committish` field 192 // to better reflect the fact that field value can be either refs or 193 // revision hash. 194 Ref string `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"` 195 // Path to the directory inside Git repository where configurations are stored. 196 // Optional. If not specified, defaults to top-level folder of the git repo. 197 // Must not start or end with "/". 198 // 199 // Example: 200 // 201 // OK: 202 // infra/config/generated 203 // (empty string) 204 // NOT OK: 205 // / 206 // /config 207 // infra/config/ 208 Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` 209 } 210 211 func (x *GitilesLocation) Reset() { 212 *x = GitilesLocation{} 213 if protoimpl.UnsafeEnabled { 214 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[0] 215 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 216 ms.StoreMessageInfo(mi) 217 } 218 } 219 220 func (x *GitilesLocation) String() string { 221 return protoimpl.X.MessageStringOf(x) 222 } 223 224 func (*GitilesLocation) ProtoMessage() {} 225 226 func (x *GitilesLocation) ProtoReflect() protoreflect.Message { 227 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[0] 228 if protoimpl.UnsafeEnabled && x != nil { 229 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 230 if ms.LoadMessageInfo() == nil { 231 ms.StoreMessageInfo(mi) 232 } 233 return ms 234 } 235 return mi.MessageOf(x) 236 } 237 238 // Deprecated: Use GitilesLocation.ProtoReflect.Descriptor instead. 239 func (*GitilesLocation) Descriptor() ([]byte, []int) { 240 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{0} 241 } 242 243 func (x *GitilesLocation) GetRepo() string { 244 if x != nil { 245 return x.Repo 246 } 247 return "" 248 } 249 250 func (x *GitilesLocation) GetRef() string { 251 if x != nil { 252 return x.Ref 253 } 254 return "" 255 } 256 257 func (x *GitilesLocation) GetPath() string { 258 if x != nil { 259 return x.Path 260 } 261 return "" 262 } 263 264 // Used to define project specific identities for LUCI to act on behalf when 265 // interacting with external systems. This allows projects to use exclusive 266 // and isolated identities to not be accidentally affected by other projects. 267 type IdentityConfig struct { 268 state protoimpl.MessageState 269 sizeCache protoimpl.SizeCache 270 unknownFields protoimpl.UnknownFields 271 272 // ServiceAccountEmail is the full service account email to use when 273 // LUCI acts on behalf of the project. 274 // 275 // Note: Due to token caching, it takes ~15 minutes for a config change 276 // to become effective. Keep this in mind when migrating projects to a 277 // new identity. 278 ServiceAccountEmail string `protobuf:"bytes,1,opt,name=service_account_email,json=serviceAccountEmail,proto3" json:"service_account_email,omitempty"` 279 } 280 281 func (x *IdentityConfig) Reset() { 282 *x = IdentityConfig{} 283 if protoimpl.UnsafeEnabled { 284 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[1] 285 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 286 ms.StoreMessageInfo(mi) 287 } 288 } 289 290 func (x *IdentityConfig) String() string { 291 return protoimpl.X.MessageStringOf(x) 292 } 293 294 func (*IdentityConfig) ProtoMessage() {} 295 296 func (x *IdentityConfig) ProtoReflect() protoreflect.Message { 297 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[1] 298 if protoimpl.UnsafeEnabled && x != nil { 299 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 300 if ms.LoadMessageInfo() == nil { 301 ms.StoreMessageInfo(mi) 302 } 303 return ms 304 } 305 return mi.MessageOf(x) 306 } 307 308 // Deprecated: Use IdentityConfig.ProtoReflect.Descriptor instead. 309 func (*IdentityConfig) Descriptor() ([]byte, []int) { 310 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{1} 311 } 312 313 func (x *IdentityConfig) GetServiceAccountEmail() string { 314 if x != nil { 315 return x.ServiceAccountEmail 316 } 317 return "" 318 } 319 320 // Location is the source repo location where the configuration stores. 321 // Currently, it only supports Gitiles repos. 322 // TODO(crbug.com/1446839): replace Project.gitiles_location field later. 323 type Location struct { 324 state protoimpl.MessageState 325 sizeCache protoimpl.SizeCache 326 unknownFields protoimpl.UnknownFields 327 328 // Types that are assignable to Location: 329 // 330 // *Location_GitilesLocation 331 Location isLocation_Location `protobuf_oneof:"location"` 332 } 333 334 func (x *Location) Reset() { 335 *x = Location{} 336 if protoimpl.UnsafeEnabled { 337 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[2] 338 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 339 ms.StoreMessageInfo(mi) 340 } 341 } 342 343 func (x *Location) String() string { 344 return protoimpl.X.MessageStringOf(x) 345 } 346 347 func (*Location) ProtoMessage() {} 348 349 func (x *Location) ProtoReflect() protoreflect.Message { 350 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[2] 351 if protoimpl.UnsafeEnabled && x != nil { 352 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 353 if ms.LoadMessageInfo() == nil { 354 ms.StoreMessageInfo(mi) 355 } 356 return ms 357 } 358 return mi.MessageOf(x) 359 } 360 361 // Deprecated: Use Location.ProtoReflect.Descriptor instead. 362 func (*Location) Descriptor() ([]byte, []int) { 363 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{2} 364 } 365 366 func (m *Location) GetLocation() isLocation_Location { 367 if m != nil { 368 return m.Location 369 } 370 return nil 371 } 372 373 func (x *Location) GetGitilesLocation() *GitilesLocation { 374 if x, ok := x.GetLocation().(*Location_GitilesLocation); ok { 375 return x.GitilesLocation 376 } 377 return nil 378 } 379 380 type isLocation_Location interface { 381 isLocation_Location() 382 } 383 384 type Location_GitilesLocation struct { 385 GitilesLocation *GitilesLocation `protobuf:"bytes,1,opt,name=gitiles_location,json=gitilesLocation,proto3,oneof"` 386 } 387 388 func (*Location_GitilesLocation) isLocation_Location() {} 389 390 // A tenant of a service. Defined in projects.cfg. 391 type Project struct { 392 state protoimpl.MessageState 393 sizeCache protoimpl.SizeCache 394 unknownFields protoimpl.UnknownFields 395 396 // Globally unique id of the project. 397 // 398 // The id MUST contain only lowercase alphanumeric characters and hyphens. 399 // The id MUST NOT be empty or exceed 30 characters. 400 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 401 // Where to import "projects/<id>" config set from. 402 // 403 // Types that are assignable to Location: 404 // 405 // *Project_GitilesLocation 406 Location isProject_Location `protobuf_oneof:"location"` 407 // IdentityConfig determines what identities are used when LUCI acts on 408 // behalf of the project towards external services. 409 IdentityConfig *IdentityConfig `protobuf:"bytes,3,opt,name=identity_config,json=identityConfig,proto3" json:"identity_config,omitempty"` 410 // The Team `name` of the Team which owns this Project. 411 // 412 // Note that the same Team may be indicated for multiple different Projects. 413 OwnedBy string `protobuf:"bytes,5,opt,name=owned_by,json=ownedBy,proto3" json:"owned_by,omitempty"` 414 } 415 416 func (x *Project) Reset() { 417 *x = Project{} 418 if protoimpl.UnsafeEnabled { 419 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[3] 420 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 421 ms.StoreMessageInfo(mi) 422 } 423 } 424 425 func (x *Project) String() string { 426 return protoimpl.X.MessageStringOf(x) 427 } 428 429 func (*Project) ProtoMessage() {} 430 431 func (x *Project) ProtoReflect() protoreflect.Message { 432 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[3] 433 if protoimpl.UnsafeEnabled && x != nil { 434 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 435 if ms.LoadMessageInfo() == nil { 436 ms.StoreMessageInfo(mi) 437 } 438 return ms 439 } 440 return mi.MessageOf(x) 441 } 442 443 // Deprecated: Use Project.ProtoReflect.Descriptor instead. 444 func (*Project) Descriptor() ([]byte, []int) { 445 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{3} 446 } 447 448 func (x *Project) GetId() string { 449 if x != nil { 450 return x.Id 451 } 452 return "" 453 } 454 455 func (m *Project) GetLocation() isProject_Location { 456 if m != nil { 457 return m.Location 458 } 459 return nil 460 } 461 462 func (x *Project) GetGitilesLocation() *GitilesLocation { 463 if x, ok := x.GetLocation().(*Project_GitilesLocation); ok { 464 return x.GitilesLocation 465 } 466 return nil 467 } 468 469 func (x *Project) GetIdentityConfig() *IdentityConfig { 470 if x != nil { 471 return x.IdentityConfig 472 } 473 return nil 474 } 475 476 func (x *Project) GetOwnedBy() string { 477 if x != nil { 478 return x.OwnedBy 479 } 480 return "" 481 } 482 483 type isProject_Location interface { 484 isProject_Location() 485 } 486 487 type Project_GitilesLocation struct { 488 GitilesLocation *GitilesLocation `protobuf:"bytes,4,opt,name=gitiles_location,json=gitilesLocation,proto3,oneof"` 489 } 490 491 func (*Project_GitilesLocation) isProject_Location() {} 492 493 // Represents a group of humans who are responsible for one or more LUCI 494 // projects. 495 // 496 // LUCI system maintainers will use the contact addresses associated with 497 // this Team in order to contact that group of humans about maintenance actions 498 // which this Team needs to perform in order to keep current with LUCI. 499 // 500 // We recommend subscribing to the following mailing lists as well: 501 // - luci-announce@ - Announcements of new LUCI functionality. 502 // - luci-outages@ - Announcements of LUCI system outages/downtime. 503 // - luci-releases@ - (noisy) Announcements of new LUCI service deployments. 504 // 505 // We also recommend directing LUCI questions/discussion to: 506 // - go/luci-users-chat - Chatroom open to all users of LUCI. Good place to 507 // ask/answer questions about the use of LUCI services. 508 // - go/luci-dev-chat - Chatroom for developing LUCI services, or 509 // systems which tightly interact with LUCI services. 510 // - luci-eng@ - Email list for LUCI related questions. 511 // 512 // Bugs should be filed to: 513 // - go/bug-a-trooper - General bug reports related to the operation of 514 // specific builders/machines which happen to run in LUCI. This is a general 515 // Chrome-area bug and will be triaged (usually within 24h). 516 // - go/luci-bug - Bug reports/feature requests for LUCI services. 517 // - go/luci-trooper-bug - Bug reports against LUCI services which 518 // need quick attention from a trooper. 519 // - oncall/chrome-ops-foundation - Oncall rotation for ChOps Foundation 520 // (primary responders for LUCI service outages). It's a good idea to check 521 // go/luci-users-chat and luci-outages@ too. 522 // 523 // For some migrations, LUCI system maintainers may need to send CLs against 524 // your project's configuration. The best way to enable this is to maintain an 525 // OWNERS file in your project configuration repo, otherwise we'll have to start 526 // guessing at reviewers :). 527 // 528 // To allow LUCI system maintainers to send CLs, please ensure that eng@ has the 529 // ability to read+send CLs to your configuration repo. If we're unable to send 530 // a CL (e.g. the repo is super-secret), we'll instead send an email for you to 531 // apply the change yourself. 532 type Team struct { 533 state protoimpl.MessageState 534 sizeCache protoimpl.SizeCache 535 unknownFields protoimpl.UnknownFields 536 537 // The name of this team; Used for the Project.team field, but also may 538 // be used in e.g. email as the addressee for maintenance messages, like: 539 // 540 // Hello ${Team.name} LUCI maintainers, 541 // 542 // Examples: 543 // 544 // GOOD: "ChOps Foundation" 545 // BAD: "cft" 546 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 547 // One or more contact emails for this team. 548 // 549 // ALL of these email addresses will be used by the LUCI system owners to 550 // contact the team with maintenance requests/deprecation notices. For 551 // example, if some LUCI functionality is deprecated and needs to be migrated, 552 // then an email would be sent to all contacts listed in this field. 553 // 554 // We recommend setting this to your team's dev-group email. 555 MaintenanceContact []string `protobuf:"bytes,2,rep,name=maintenance_contact,json=maintenanceContact,proto3" json:"maintenance_contact,omitempty"` 556 // One or more fallback emails for this team. 557 // 558 // If the LUCI system owners attempt to contact the team via 559 // `maintenance_contact` and there's no response, these emails will be 560 // CC'd in increasing order until we get in contact with someone. 561 // 562 // If the LUCI system owners cannot contact anyone in `maintenance_contact` or 563 // in `escalation_contact`, we may need to disable the associated LUCI 564 // project(s). 565 // 566 // We recommend setting this to one or two individual people who are 567 // responsible for your team's LUCI integration, and finally a 568 // wider email group (or groups) than those in maintenance_contact. 569 EscalationContact []string `protobuf:"bytes,3,rep,name=escalation_contact,json=escalationContact,proto3" json:"escalation_contact,omitempty"` 570 } 571 572 func (x *Team) Reset() { 573 *x = Team{} 574 if protoimpl.UnsafeEnabled { 575 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[4] 576 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 577 ms.StoreMessageInfo(mi) 578 } 579 } 580 581 func (x *Team) String() string { 582 return protoimpl.X.MessageStringOf(x) 583 } 584 585 func (*Team) ProtoMessage() {} 586 587 func (x *Team) ProtoReflect() protoreflect.Message { 588 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[4] 589 if protoimpl.UnsafeEnabled && x != nil { 590 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 591 if ms.LoadMessageInfo() == nil { 592 ms.StoreMessageInfo(mi) 593 } 594 return ms 595 } 596 return mi.MessageOf(x) 597 } 598 599 // Deprecated: Use Team.ProtoReflect.Descriptor instead. 600 func (*Team) Descriptor() ([]byte, []int) { 601 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{4} 602 } 603 604 func (x *Team) GetName() string { 605 if x != nil { 606 return x.Name 607 } 608 return "" 609 } 610 611 func (x *Team) GetMaintenanceContact() []string { 612 if x != nil { 613 return x.MaintenanceContact 614 } 615 return nil 616 } 617 618 func (x *Team) GetEscalationContact() []string { 619 if x != nil { 620 return x.EscalationContact 621 } 622 return nil 623 } 624 625 // Schema of projects.cfg file. Represents LUCI tenants registry. 626 type ProjectsCfg struct { 627 state protoimpl.MessageState 628 sizeCache protoimpl.SizeCache 629 unknownFields protoimpl.UnknownFields 630 631 // All projects served by this instance of LUCI. 632 Projects []*Project `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` 633 // All teams which own projects. 634 Teams []*Team `protobuf:"bytes,2,rep,name=teams,proto3" json:"teams,omitempty"` 635 } 636 637 func (x *ProjectsCfg) Reset() { 638 *x = ProjectsCfg{} 639 if protoimpl.UnsafeEnabled { 640 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[5] 641 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 642 ms.StoreMessageInfo(mi) 643 } 644 } 645 646 func (x *ProjectsCfg) String() string { 647 return protoimpl.X.MessageStringOf(x) 648 } 649 650 func (*ProjectsCfg) ProtoMessage() {} 651 652 func (x *ProjectsCfg) ProtoReflect() protoreflect.Message { 653 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[5] 654 if protoimpl.UnsafeEnabled && x != nil { 655 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 656 if ms.LoadMessageInfo() == nil { 657 ms.StoreMessageInfo(mi) 658 } 659 return ms 660 } 661 return mi.MessageOf(x) 662 } 663 664 // Deprecated: Use ProjectsCfg.ProtoReflect.Descriptor instead. 665 func (*ProjectsCfg) Descriptor() ([]byte, []int) { 666 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{5} 667 } 668 669 func (x *ProjectsCfg) GetProjects() []*Project { 670 if x != nil { 671 return x.Projects 672 } 673 return nil 674 } 675 676 func (x *ProjectsCfg) GetTeams() []*Team { 677 if x != nil { 678 return x.Teams 679 } 680 return nil 681 } 682 683 // Describes one LUCI service. 684 type Service struct { 685 state protoimpl.MessageState 686 sizeCache protoimpl.SizeCache 687 unknownFields protoimpl.UnknownFields 688 689 // Globally unique id of the service. Required. 690 // Used in "services/<service_id>" config set name. 691 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 692 // Email addresses of responsible and point-of-contacts for the service. 693 Owners []string `protobuf:"bytes,2,rep,name=owners,proto3" json:"owners,omitempty"` 694 // An HTTPS endpoint that returns JSON-encoded ServiceDynamicMetadata in body. 695 // 696 // TODO: crbug/1232565 - Deprecate this field in favor of `hostname` 697 // after the new LUCI Config service has launched. 698 MetadataUrl string `protobuf:"bytes,4,opt,name=metadata_url,json=metadataUrl,proto3" json:"metadata_url,omitempty"` 699 // The hostname of the service. 700 // 701 // LUCI Config will call this host to interact with `config.Consumer` 702 // prpc Service. 703 Hostname string `protobuf:"bytes,7,opt,name=hostname,proto3" json:"hostname,omitempty"` 704 // A list of identities that have access to this service's configs. 705 // of: 706 // * "group:<group>", where group is defined on auth server. 707 // * "<email>" 708 // * "<kind>:<value>" (for non-email identities) 709 // 710 // If not specified, only admins and trusted services have access. 711 Access []string `protobuf:"bytes,5,rep,name=access,proto3" json:"access,omitempty"` 712 // If set, use JWT auth in requests to services. This is usually used for 713 // Cloud Endpoints v2 support. 714 JwtAuth *Service_JWTAuth `protobuf:"bytes,6,opt,name=jwt_auth,json=jwtAuth,proto3" json:"jwt_auth,omitempty"` 715 } 716 717 func (x *Service) Reset() { 718 *x = Service{} 719 if protoimpl.UnsafeEnabled { 720 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[6] 721 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 722 ms.StoreMessageInfo(mi) 723 } 724 } 725 726 func (x *Service) String() string { 727 return protoimpl.X.MessageStringOf(x) 728 } 729 730 func (*Service) ProtoMessage() {} 731 732 func (x *Service) ProtoReflect() protoreflect.Message { 733 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[6] 734 if protoimpl.UnsafeEnabled && x != nil { 735 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 736 if ms.LoadMessageInfo() == nil { 737 ms.StoreMessageInfo(mi) 738 } 739 return ms 740 } 741 return mi.MessageOf(x) 742 } 743 744 // Deprecated: Use Service.ProtoReflect.Descriptor instead. 745 func (*Service) Descriptor() ([]byte, []int) { 746 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{6} 747 } 748 749 func (x *Service) GetId() string { 750 if x != nil { 751 return x.Id 752 } 753 return "" 754 } 755 756 func (x *Service) GetOwners() []string { 757 if x != nil { 758 return x.Owners 759 } 760 return nil 761 } 762 763 func (x *Service) GetMetadataUrl() string { 764 if x != nil { 765 return x.MetadataUrl 766 } 767 return "" 768 } 769 770 func (x *Service) GetHostname() string { 771 if x != nil { 772 return x.Hostname 773 } 774 return "" 775 } 776 777 func (x *Service) GetAccess() []string { 778 if x != nil { 779 return x.Access 780 } 781 return nil 782 } 783 784 func (x *Service) GetJwtAuth() *Service_JWTAuth { 785 if x != nil { 786 return x.JwtAuth 787 } 788 return nil 789 } 790 791 // Machine-generated service metadata, exposed by a service endpoint. 792 // Typically implemented by config component, embedded in an app: 793 // see appengine/components/components/config/endpoint.py 794 // 795 // If you add a field here, also add it to ServiceDynamicMetadata in endpoint.py 796 type ServiceDynamicMetadata struct { 797 state protoimpl.MessageState 798 sizeCache protoimpl.SizeCache 799 unknownFields protoimpl.UnknownFields 800 801 // Format version. Supported versions: 1.0. 802 Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` 803 // What configs this service can validate and how to validate them. 804 Validation *Validator `protobuf:"bytes,2,opt,name=validation,proto3" json:"validation,omitempty"` 805 // True if the server recognizes "Content-Encoding: gzip" in requests. 806 SupportsGzipCompression bool `protobuf:"varint,3,opt,name=supports_gzip_compression,json=supportsGzipCompression,proto3" json:"supports_gzip_compression,omitempty"` 807 } 808 809 func (x *ServiceDynamicMetadata) Reset() { 810 *x = ServiceDynamicMetadata{} 811 if protoimpl.UnsafeEnabled { 812 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[7] 813 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 814 ms.StoreMessageInfo(mi) 815 } 816 } 817 818 func (x *ServiceDynamicMetadata) String() string { 819 return protoimpl.X.MessageStringOf(x) 820 } 821 822 func (*ServiceDynamicMetadata) ProtoMessage() {} 823 824 func (x *ServiceDynamicMetadata) ProtoReflect() protoreflect.Message { 825 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[7] 826 if protoimpl.UnsafeEnabled && x != nil { 827 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 828 if ms.LoadMessageInfo() == nil { 829 ms.StoreMessageInfo(mi) 830 } 831 return ms 832 } 833 return mi.MessageOf(x) 834 } 835 836 // Deprecated: Use ServiceDynamicMetadata.ProtoReflect.Descriptor instead. 837 func (*ServiceDynamicMetadata) Descriptor() ([]byte, []int) { 838 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{7} 839 } 840 841 func (x *ServiceDynamicMetadata) GetVersion() string { 842 if x != nil { 843 return x.Version 844 } 845 return "" 846 } 847 848 func (x *ServiceDynamicMetadata) GetValidation() *Validator { 849 if x != nil { 850 return x.Validation 851 } 852 return nil 853 } 854 855 func (x *ServiceDynamicMetadata) GetSupportsGzipCompression() bool { 856 if x != nil { 857 return x.SupportsGzipCompression 858 } 859 return false 860 } 861 862 // Schema of services.cfg 863 type ServicesCfg struct { 864 state protoimpl.MessageState 865 sizeCache protoimpl.SizeCache 866 unknownFields protoimpl.UnknownFields 867 868 // A list of all LUCI services. Should be sorted by id. 869 Services []*Service `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"` 870 } 871 872 func (x *ServicesCfg) Reset() { 873 *x = ServicesCfg{} 874 if protoimpl.UnsafeEnabled { 875 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[8] 876 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 877 ms.StoreMessageInfo(mi) 878 } 879 } 880 881 func (x *ServicesCfg) String() string { 882 return protoimpl.X.MessageStringOf(x) 883 } 884 885 func (*ServicesCfg) ProtoMessage() {} 886 887 func (x *ServicesCfg) ProtoReflect() protoreflect.Message { 888 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[8] 889 if protoimpl.UnsafeEnabled && x != nil { 890 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 891 if ms.LoadMessageInfo() == nil { 892 ms.StoreMessageInfo(mi) 893 } 894 return ms 895 } 896 return mi.MessageOf(x) 897 } 898 899 // Deprecated: Use ServicesCfg.ProtoReflect.Descriptor instead. 900 func (*ServicesCfg) Descriptor() ([]byte, []int) { 901 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{8} 902 } 903 904 func (x *ServicesCfg) GetServices() []*Service { 905 if x != nil { 906 return x.Services 907 } 908 return nil 909 } 910 911 // Schema of acl.cfg file. 912 // Next tag: 13. 913 type AclCfg struct { 914 state protoimpl.MessageState 915 sizeCache protoimpl.SizeCache 916 unknownFields protoimpl.UnknownFields 917 918 // Name of the group that has global access to all "projects/*" config sets. 919 // 920 // Should contain only members that really need read access to multiple 921 // projects. Access to an individual project can be granted through 922 // "role/configs.reader" role in the "@root" realm of the project. 923 ProjectAccessGroup string `protobuf:"bytes,2,opt,name=project_access_group,json=projectAccessGroup,proto3" json:"project_access_group,omitempty"` 924 // Name of the group that can call validation API for any accessible project. 925 // 926 // Should contain only members that really need to use validation API in 927 // multiple projects. Permission to validate an individual project can be 928 // granted through "role/configs.developer" role in the "@root" realm of 929 // the project. 930 ProjectValidationGroup string `protobuf:"bytes,8,opt,name=project_validation_group,json=projectValidationGroup,proto3" json:"project_validation_group,omitempty"` 931 // Name of the group that can call reimport API for any accessible project. 932 // 933 // Should contain only members that really need to use reimport API in 934 // multiple projects. Permission to reimport an individual project can be 935 // granted through "role/configs.developer" role in the "@root" realm of 936 // the project. 937 ProjectReimportGroup string `protobuf:"bytes,9,opt,name=project_reimport_group,json=projectReimportGroup,proto3" json:"project_reimport_group,omitempty"` 938 // Name of the group that has global access to all "services/*" config sets. 939 // 940 // Should contain only members that really need read access to multiple 941 // services. Access to an individual service can be granted via "access" field 942 // in its entry in services.cfg config. 943 ServiceAccessGroup string `protobuf:"bytes,7,opt,name=service_access_group,json=serviceAccessGroup,proto3" json:"service_access_group,omitempty"` 944 // Name of the group that can call validation API for any accessible service. 945 ServiceValidationGroup string `protobuf:"bytes,10,opt,name=service_validation_group,json=serviceValidationGroup,proto3" json:"service_validation_group,omitempty"` 946 // Name of the group that can call reimport API for any accessible service. 947 ServiceReimportGroup string `protobuf:"bytes,11,opt,name=service_reimport_group,json=serviceReimportGroup,proto3" json:"service_reimport_group,omitempty"` 948 } 949 950 func (x *AclCfg) Reset() { 951 *x = AclCfg{} 952 if protoimpl.UnsafeEnabled { 953 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[9] 954 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 955 ms.StoreMessageInfo(mi) 956 } 957 } 958 959 func (x *AclCfg) String() string { 960 return protoimpl.X.MessageStringOf(x) 961 } 962 963 func (*AclCfg) ProtoMessage() {} 964 965 func (x *AclCfg) ProtoReflect() protoreflect.Message { 966 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[9] 967 if protoimpl.UnsafeEnabled && x != nil { 968 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 969 if ms.LoadMessageInfo() == nil { 970 ms.StoreMessageInfo(mi) 971 } 972 return ms 973 } 974 return mi.MessageOf(x) 975 } 976 977 // Deprecated: Use AclCfg.ProtoReflect.Descriptor instead. 978 func (*AclCfg) Descriptor() ([]byte, []int) { 979 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{9} 980 } 981 982 func (x *AclCfg) GetProjectAccessGroup() string { 983 if x != nil { 984 return x.ProjectAccessGroup 985 } 986 return "" 987 } 988 989 func (x *AclCfg) GetProjectValidationGroup() string { 990 if x != nil { 991 return x.ProjectValidationGroup 992 } 993 return "" 994 } 995 996 func (x *AclCfg) GetProjectReimportGroup() string { 997 if x != nil { 998 return x.ProjectReimportGroup 999 } 1000 return "" 1001 } 1002 1003 func (x *AclCfg) GetServiceAccessGroup() string { 1004 if x != nil { 1005 return x.ServiceAccessGroup 1006 } 1007 return "" 1008 } 1009 1010 func (x *AclCfg) GetServiceValidationGroup() string { 1011 if x != nil { 1012 return x.ServiceValidationGroup 1013 } 1014 return "" 1015 } 1016 1017 func (x *AclCfg) GetServiceReimportGroup() string { 1018 if x != nil { 1019 return x.ServiceReimportGroup 1020 } 1021 return "" 1022 } 1023 1024 // Schema for import.cfg. It specified how to import configuration files from 1025 // external sources. 1026 type ImportCfg struct { 1027 state protoimpl.MessageState 1028 sizeCache protoimpl.SizeCache 1029 unknownFields protoimpl.UnknownFields 1030 1031 // Configuration of import from Gitiles repositories. 1032 Gitiles *ImportCfg_Gitiles `protobuf:"bytes,1,opt,name=gitiles,proto3" json:"gitiles,omitempty"` 1033 } 1034 1035 func (x *ImportCfg) Reset() { 1036 *x = ImportCfg{} 1037 if protoimpl.UnsafeEnabled { 1038 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[10] 1039 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1040 ms.StoreMessageInfo(mi) 1041 } 1042 } 1043 1044 func (x *ImportCfg) String() string { 1045 return protoimpl.X.MessageStringOf(x) 1046 } 1047 1048 func (*ImportCfg) ProtoMessage() {} 1049 1050 func (x *ImportCfg) ProtoReflect() protoreflect.Message { 1051 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[10] 1052 if protoimpl.UnsafeEnabled && x != nil { 1053 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1054 if ms.LoadMessageInfo() == nil { 1055 ms.StoreMessageInfo(mi) 1056 } 1057 return ms 1058 } 1059 return mi.MessageOf(x) 1060 } 1061 1062 // Deprecated: Use ImportCfg.ProtoReflect.Descriptor instead. 1063 func (*ImportCfg) Descriptor() ([]byte, []int) { 1064 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{10} 1065 } 1066 1067 func (x *ImportCfg) GetGitiles() *ImportCfg_Gitiles { 1068 if x != nil { 1069 return x.Gitiles 1070 } 1071 return nil 1072 } 1073 1074 // Schema of schemas.cfg 1075 type SchemasCfg struct { 1076 state protoimpl.MessageState 1077 sizeCache protoimpl.SizeCache 1078 unknownFields protoimpl.UnknownFields 1079 1080 // List of known schemas. They are available at /schemas/<name> as a short 1081 // mutable link. 1082 Schemas []*SchemasCfg_Schema `protobuf:"bytes,1,rep,name=schemas,proto3" json:"schemas,omitempty"` 1083 } 1084 1085 func (x *SchemasCfg) Reset() { 1086 *x = SchemasCfg{} 1087 if protoimpl.UnsafeEnabled { 1088 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[11] 1089 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1090 ms.StoreMessageInfo(mi) 1091 } 1092 } 1093 1094 func (x *SchemasCfg) String() string { 1095 return protoimpl.X.MessageStringOf(x) 1096 } 1097 1098 func (*SchemasCfg) ProtoMessage() {} 1099 1100 func (x *SchemasCfg) ProtoReflect() protoreflect.Message { 1101 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[11] 1102 if protoimpl.UnsafeEnabled && x != nil { 1103 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1104 if ms.LoadMessageInfo() == nil { 1105 ms.StoreMessageInfo(mi) 1106 } 1107 return ms 1108 } 1109 return mi.MessageOf(x) 1110 } 1111 1112 // Deprecated: Use SchemasCfg.ProtoReflect.Descriptor instead. 1113 func (*SchemasCfg) Descriptor() ([]byte, []int) { 1114 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{11} 1115 } 1116 1117 func (x *SchemasCfg) GetSchemas() []*SchemasCfg_Schema { 1118 if x != nil { 1119 return x.Schemas 1120 } 1121 return nil 1122 } 1123 1124 // Defines a pattern of a config identity. Both config_set and path must 1125 // match. 1126 type ConfigPattern struct { 1127 state protoimpl.MessageState 1128 sizeCache protoimpl.SizeCache 1129 unknownFields protoimpl.UnknownFields 1130 1131 // A string pattern for config_set. 1132 // 1133 // If the pattern string starts with "regex:", everything after the prefix 1134 // will be treated as regular expression to match the config set. The 1135 // regular expression will be auto-anchored with "^" at the beginning and "$" 1136 // at the end if not already. 1137 // 1138 // If the pattern string starts with "exact:" or "text:", everything after the 1139 // prefix should be exactly the same as the config set to match the pattern. 1140 // 1141 // If the pattern string doesn't start with any of the above prefixes, it will 1142 // be used as exact match just like "exact:" and "text:" prefixes. 1143 // 1144 // Note that LUCI Config will only send the service configs that belongs to 1145 // / the service defined in `Service` or validation, even though the 1146 // config_set pattern here can declare a much broader range (e.g. 1147 // `regex:services/.+` that matches all services). 1148 ConfigSet string `protobuf:"bytes,1,opt,name=config_set,json=configSet,proto3" json:"config_set,omitempty"` 1149 // A string pattern for config file path. 1150 // 1151 // The pattern syntax is the same as `config_set` 1152 Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` 1153 } 1154 1155 func (x *ConfigPattern) Reset() { 1156 *x = ConfigPattern{} 1157 if protoimpl.UnsafeEnabled { 1158 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[12] 1159 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1160 ms.StoreMessageInfo(mi) 1161 } 1162 } 1163 1164 func (x *ConfigPattern) String() string { 1165 return protoimpl.X.MessageStringOf(x) 1166 } 1167 1168 func (*ConfigPattern) ProtoMessage() {} 1169 1170 func (x *ConfigPattern) ProtoReflect() protoreflect.Message { 1171 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[12] 1172 if protoimpl.UnsafeEnabled && x != nil { 1173 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1174 if ms.LoadMessageInfo() == nil { 1175 ms.StoreMessageInfo(mi) 1176 } 1177 return ms 1178 } 1179 return mi.MessageOf(x) 1180 } 1181 1182 // Deprecated: Use ConfigPattern.ProtoReflect.Descriptor instead. 1183 func (*ConfigPattern) Descriptor() ([]byte, []int) { 1184 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{12} 1185 } 1186 1187 func (x *ConfigPattern) GetConfigSet() string { 1188 if x != nil { 1189 return x.ConfigSet 1190 } 1191 return "" 1192 } 1193 1194 func (x *ConfigPattern) GetPath() string { 1195 if x != nil { 1196 return x.Path 1197 } 1198 return "" 1199 } 1200 1201 // Describes what configuration can be validated and how to validate them. 1202 type Validator struct { 1203 state protoimpl.MessageState 1204 sizeCache protoimpl.SizeCache 1205 unknownFields protoimpl.UnknownFields 1206 1207 // A list of configuration patterns that this validator can validate. 1208 Patterns []*ConfigPattern `protobuf:"bytes,1,rep,name=patterns,proto3" json:"patterns,omitempty"` 1209 // URL of a validation endpoint. The config service will send an HTTP POST 1210 // request to the endpoint, where body is JSON-encoded 1211 // ValidationRequestMessage. The endpoint is expected to respond with 1212 // HTTP status 200 and JSON-encoded ValidationResponseMessage. 1213 Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` 1214 } 1215 1216 func (x *Validator) Reset() { 1217 *x = Validator{} 1218 if protoimpl.UnsafeEnabled { 1219 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[13] 1220 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1221 ms.StoreMessageInfo(mi) 1222 } 1223 } 1224 1225 func (x *Validator) String() string { 1226 return protoimpl.X.MessageStringOf(x) 1227 } 1228 1229 func (*Validator) ProtoMessage() {} 1230 1231 func (x *Validator) ProtoReflect() protoreflect.Message { 1232 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[13] 1233 if protoimpl.UnsafeEnabled && x != nil { 1234 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1235 if ms.LoadMessageInfo() == nil { 1236 ms.StoreMessageInfo(mi) 1237 } 1238 return ms 1239 } 1240 return mi.MessageOf(x) 1241 } 1242 1243 // Deprecated: Use Validator.ProtoReflect.Descriptor instead. 1244 func (*Validator) Descriptor() ([]byte, []int) { 1245 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{13} 1246 } 1247 1248 func (x *Validator) GetPatterns() []*ConfigPattern { 1249 if x != nil { 1250 return x.Patterns 1251 } 1252 return nil 1253 } 1254 1255 func (x *Validator) GetUrl() string { 1256 if x != nil { 1257 return x.Url 1258 } 1259 return "" 1260 } 1261 1262 // This message is used only in JSON form. It is sent as request body to an 1263 // external validation endpoint in order to validate a config. 1264 type ValidationRequestMessage struct { 1265 state protoimpl.MessageState 1266 sizeCache protoimpl.SizeCache 1267 unknownFields protoimpl.UnknownFields 1268 1269 // Config set of the config file to validate. 1270 ConfigSet string `protobuf:"bytes,1,opt,name=config_set,json=configSet,proto3" json:"config_set,omitempty"` 1271 // Path of the config file to validate. 1272 Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` 1273 // Contents of the file. 1274 Content []byte `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` 1275 } 1276 1277 func (x *ValidationRequestMessage) Reset() { 1278 *x = ValidationRequestMessage{} 1279 if protoimpl.UnsafeEnabled { 1280 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[14] 1281 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1282 ms.StoreMessageInfo(mi) 1283 } 1284 } 1285 1286 func (x *ValidationRequestMessage) String() string { 1287 return protoimpl.X.MessageStringOf(x) 1288 } 1289 1290 func (*ValidationRequestMessage) ProtoMessage() {} 1291 1292 func (x *ValidationRequestMessage) ProtoReflect() protoreflect.Message { 1293 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[14] 1294 if protoimpl.UnsafeEnabled && x != nil { 1295 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1296 if ms.LoadMessageInfo() == nil { 1297 ms.StoreMessageInfo(mi) 1298 } 1299 return ms 1300 } 1301 return mi.MessageOf(x) 1302 } 1303 1304 // Deprecated: Use ValidationRequestMessage.ProtoReflect.Descriptor instead. 1305 func (*ValidationRequestMessage) Descriptor() ([]byte, []int) { 1306 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{14} 1307 } 1308 1309 func (x *ValidationRequestMessage) GetConfigSet() string { 1310 if x != nil { 1311 return x.ConfigSet 1312 } 1313 return "" 1314 } 1315 1316 func (x *ValidationRequestMessage) GetPath() string { 1317 if x != nil { 1318 return x.Path 1319 } 1320 return "" 1321 } 1322 1323 func (x *ValidationRequestMessage) GetContent() []byte { 1324 if x != nil { 1325 return x.Content 1326 } 1327 return nil 1328 } 1329 1330 // This message is used only in JSON form. It is expected from an external 1331 // validation endpoint that validates a config. 1332 type ValidationResponseMessage struct { 1333 state protoimpl.MessageState 1334 sizeCache protoimpl.SizeCache 1335 unknownFields protoimpl.UnknownFields 1336 1337 // Errors, warnings and other information found during validation. 1338 // If at least one error is found, the config is considered invalid. 1339 Messages []*ValidationResponseMessage_Message `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` 1340 } 1341 1342 func (x *ValidationResponseMessage) Reset() { 1343 *x = ValidationResponseMessage{} 1344 if protoimpl.UnsafeEnabled { 1345 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[15] 1346 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1347 ms.StoreMessageInfo(mi) 1348 } 1349 } 1350 1351 func (x *ValidationResponseMessage) String() string { 1352 return protoimpl.X.MessageStringOf(x) 1353 } 1354 1355 func (*ValidationResponseMessage) ProtoMessage() {} 1356 1357 func (x *ValidationResponseMessage) ProtoReflect() protoreflect.Message { 1358 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[15] 1359 if protoimpl.UnsafeEnabled && x != nil { 1360 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1361 if ms.LoadMessageInfo() == nil { 1362 ms.StoreMessageInfo(mi) 1363 } 1364 return ms 1365 } 1366 return mi.MessageOf(x) 1367 } 1368 1369 // Deprecated: Use ValidationResponseMessage.ProtoReflect.Descriptor instead. 1370 func (*ValidationResponseMessage) Descriptor() ([]byte, []int) { 1371 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{15} 1372 } 1373 1374 func (x *ValidationResponseMessage) GetMessages() []*ValidationResponseMessage_Message { 1375 if x != nil { 1376 return x.Messages 1377 } 1378 return nil 1379 } 1380 1381 // ServiceMetadata describes the metadata of a service. 1382 type ServiceMetadata struct { 1383 state protoimpl.MessageState 1384 sizeCache protoimpl.SizeCache 1385 unknownFields protoimpl.UnknownFields 1386 1387 // Patterns of config files that the service is "interested in". 1388 // 1389 // Interested means the service can validate config files on config files 1390 // changes. 1391 ConfigPatterns []*ConfigPattern `protobuf:"bytes,1,rep,name=config_patterns,json=configPatterns,proto3" json:"config_patterns,omitempty"` 1392 } 1393 1394 func (x *ServiceMetadata) Reset() { 1395 *x = ServiceMetadata{} 1396 if protoimpl.UnsafeEnabled { 1397 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[16] 1398 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1399 ms.StoreMessageInfo(mi) 1400 } 1401 } 1402 1403 func (x *ServiceMetadata) String() string { 1404 return protoimpl.X.MessageStringOf(x) 1405 } 1406 1407 func (*ServiceMetadata) ProtoMessage() {} 1408 1409 func (x *ServiceMetadata) ProtoReflect() protoreflect.Message { 1410 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[16] 1411 if protoimpl.UnsafeEnabled && x != nil { 1412 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1413 if ms.LoadMessageInfo() == nil { 1414 ms.StoreMessageInfo(mi) 1415 } 1416 return ms 1417 } 1418 return mi.MessageOf(x) 1419 } 1420 1421 // Deprecated: Use ServiceMetadata.ProtoReflect.Descriptor instead. 1422 func (*ServiceMetadata) Descriptor() ([]byte, []int) { 1423 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{16} 1424 } 1425 1426 func (x *ServiceMetadata) GetConfigPatterns() []*ConfigPattern { 1427 if x != nil { 1428 return x.ConfigPatterns 1429 } 1430 return nil 1431 } 1432 1433 // ValidateConfigsRequest is the request to ValidateConfigs rpc. 1434 type ValidateConfigsRequest struct { 1435 state protoimpl.MessageState 1436 sizeCache protoimpl.SizeCache 1437 unknownFields protoimpl.UnknownFields 1438 1439 // Config set of the config files to validate. 1440 ConfigSet string `protobuf:"bytes,1,opt,name=config_set,json=configSet,proto3" json:"config_set,omitempty"` 1441 // Config files to validate. 1442 Files *ValidateConfigsRequest_Files `protobuf:"bytes,2,opt,name=files,proto3" json:"files,omitempty"` 1443 } 1444 1445 func (x *ValidateConfigsRequest) Reset() { 1446 *x = ValidateConfigsRequest{} 1447 if protoimpl.UnsafeEnabled { 1448 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[17] 1449 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1450 ms.StoreMessageInfo(mi) 1451 } 1452 } 1453 1454 func (x *ValidateConfigsRequest) String() string { 1455 return protoimpl.X.MessageStringOf(x) 1456 } 1457 1458 func (*ValidateConfigsRequest) ProtoMessage() {} 1459 1460 func (x *ValidateConfigsRequest) ProtoReflect() protoreflect.Message { 1461 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[17] 1462 if protoimpl.UnsafeEnabled && x != nil { 1463 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1464 if ms.LoadMessageInfo() == nil { 1465 ms.StoreMessageInfo(mi) 1466 } 1467 return ms 1468 } 1469 return mi.MessageOf(x) 1470 } 1471 1472 // Deprecated: Use ValidateConfigsRequest.ProtoReflect.Descriptor instead. 1473 func (*ValidateConfigsRequest) Descriptor() ([]byte, []int) { 1474 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{17} 1475 } 1476 1477 func (x *ValidateConfigsRequest) GetConfigSet() string { 1478 if x != nil { 1479 return x.ConfigSet 1480 } 1481 return "" 1482 } 1483 1484 func (x *ValidateConfigsRequest) GetFiles() *ValidateConfigsRequest_Files { 1485 if x != nil { 1486 return x.Files 1487 } 1488 return nil 1489 } 1490 1491 // ValidationResult is the result of validating configs. 1492 type ValidationResult struct { 1493 state protoimpl.MessageState 1494 sizeCache protoimpl.SizeCache 1495 unknownFields protoimpl.UnknownFields 1496 1497 // Errors, warnings and other information found during validation. 1498 // If at least one error is found, the config is considered invalid. 1499 Messages []*ValidationResult_Message `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` 1500 } 1501 1502 func (x *ValidationResult) Reset() { 1503 *x = ValidationResult{} 1504 if protoimpl.UnsafeEnabled { 1505 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[18] 1506 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1507 ms.StoreMessageInfo(mi) 1508 } 1509 } 1510 1511 func (x *ValidationResult) String() string { 1512 return protoimpl.X.MessageStringOf(x) 1513 } 1514 1515 func (*ValidationResult) ProtoMessage() {} 1516 1517 func (x *ValidationResult) ProtoReflect() protoreflect.Message { 1518 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[18] 1519 if protoimpl.UnsafeEnabled && x != nil { 1520 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1521 if ms.LoadMessageInfo() == nil { 1522 ms.StoreMessageInfo(mi) 1523 } 1524 return ms 1525 } 1526 return mi.MessageOf(x) 1527 } 1528 1529 // Deprecated: Use ValidationResult.ProtoReflect.Descriptor instead. 1530 func (*ValidationResult) Descriptor() ([]byte, []int) { 1531 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{18} 1532 } 1533 1534 func (x *ValidationResult) GetMessages() []*ValidationResult_Message { 1535 if x != nil { 1536 return x.Messages 1537 } 1538 return nil 1539 } 1540 1541 type Service_JWTAuth struct { 1542 state protoimpl.MessageState 1543 sizeCache protoimpl.SizeCache 1544 unknownFields protoimpl.UnknownFields 1545 1546 // Value for the 'aud' field in the JSON Web Token claim. 1547 Audience string `protobuf:"bytes,1,opt,name=audience,proto3" json:"audience,omitempty"` 1548 } 1549 1550 func (x *Service_JWTAuth) Reset() { 1551 *x = Service_JWTAuth{} 1552 if protoimpl.UnsafeEnabled { 1553 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[19] 1554 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1555 ms.StoreMessageInfo(mi) 1556 } 1557 } 1558 1559 func (x *Service_JWTAuth) String() string { 1560 return protoimpl.X.MessageStringOf(x) 1561 } 1562 1563 func (*Service_JWTAuth) ProtoMessage() {} 1564 1565 func (x *Service_JWTAuth) ProtoReflect() protoreflect.Message { 1566 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[19] 1567 if protoimpl.UnsafeEnabled && x != nil { 1568 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1569 if ms.LoadMessageInfo() == nil { 1570 ms.StoreMessageInfo(mi) 1571 } 1572 return ms 1573 } 1574 return mi.MessageOf(x) 1575 } 1576 1577 // Deprecated: Use Service_JWTAuth.ProtoReflect.Descriptor instead. 1578 func (*Service_JWTAuth) Descriptor() ([]byte, []int) { 1579 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{6, 0} 1580 } 1581 1582 func (x *Service_JWTAuth) GetAudience() string { 1583 if x != nil { 1584 return x.Audience 1585 } 1586 return "" 1587 } 1588 1589 type ImportCfg_Gitiles struct { 1590 state protoimpl.MessageState 1591 sizeCache protoimpl.SizeCache 1592 unknownFields protoimpl.UnknownFields 1593 1594 // Request timeout in seconds when requesting commit log. 1595 FetchLogDeadline int32 `protobuf:"varint,1,opt,name=fetch_log_deadline,json=fetchLogDeadline,proto3" json:"fetch_log_deadline,omitempty"` 1596 // Request timeout in seconds when requesting directory archive. 1597 FetchArchiveDeadline int32 `protobuf:"varint,2,opt,name=fetch_archive_deadline,json=fetchArchiveDeadline,proto3" json:"fetch_archive_deadline,omitempty"` 1598 // DEPRECATED, ignored. TODO(nodir): remove. 1599 // Default ref for project configs. 1600 ProjectConfigDefaultRef string `protobuf:"bytes,3,opt,name=project_config_default_ref,json=projectConfigDefaultRef,proto3" json:"project_config_default_ref,omitempty"` 1601 // DEPRECATED, ignored. TODO(nodir): remove. 1602 // Default directory for project configs. 1603 ProjectConfigDefaultPath string `protobuf:"bytes,4,opt,name=project_config_default_path,json=projectConfigDefaultPath,proto3" json:"project_config_default_path,omitempty"` 1604 // Default directory for ref configs. 1605 RefConfigDefaultPath string `protobuf:"bytes,5,opt,name=ref_config_default_path,json=refConfigDefaultPath,proto3" json:"ref_config_default_path,omitempty"` 1606 } 1607 1608 func (x *ImportCfg_Gitiles) Reset() { 1609 *x = ImportCfg_Gitiles{} 1610 if protoimpl.UnsafeEnabled { 1611 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[20] 1612 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1613 ms.StoreMessageInfo(mi) 1614 } 1615 } 1616 1617 func (x *ImportCfg_Gitiles) String() string { 1618 return protoimpl.X.MessageStringOf(x) 1619 } 1620 1621 func (*ImportCfg_Gitiles) ProtoMessage() {} 1622 1623 func (x *ImportCfg_Gitiles) ProtoReflect() protoreflect.Message { 1624 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[20] 1625 if protoimpl.UnsafeEnabled && x != nil { 1626 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1627 if ms.LoadMessageInfo() == nil { 1628 ms.StoreMessageInfo(mi) 1629 } 1630 return ms 1631 } 1632 return mi.MessageOf(x) 1633 } 1634 1635 // Deprecated: Use ImportCfg_Gitiles.ProtoReflect.Descriptor instead. 1636 func (*ImportCfg_Gitiles) Descriptor() ([]byte, []int) { 1637 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{10, 0} 1638 } 1639 1640 func (x *ImportCfg_Gitiles) GetFetchLogDeadline() int32 { 1641 if x != nil { 1642 return x.FetchLogDeadline 1643 } 1644 return 0 1645 } 1646 1647 func (x *ImportCfg_Gitiles) GetFetchArchiveDeadline() int32 { 1648 if x != nil { 1649 return x.FetchArchiveDeadline 1650 } 1651 return 0 1652 } 1653 1654 func (x *ImportCfg_Gitiles) GetProjectConfigDefaultRef() string { 1655 if x != nil { 1656 return x.ProjectConfigDefaultRef 1657 } 1658 return "" 1659 } 1660 1661 func (x *ImportCfg_Gitiles) GetProjectConfigDefaultPath() string { 1662 if x != nil { 1663 return x.ProjectConfigDefaultPath 1664 } 1665 return "" 1666 } 1667 1668 func (x *ImportCfg_Gitiles) GetRefConfigDefaultPath() string { 1669 if x != nil { 1670 return x.RefConfigDefaultPath 1671 } 1672 return "" 1673 } 1674 1675 type SchemasCfg_Schema struct { 1676 state protoimpl.MessageState 1677 sizeCache protoimpl.SizeCache 1678 unknownFields protoimpl.UnknownFields 1679 1680 // Name of schema. 1681 // For service configs, "<config_set>:<path>" 1682 // For project configs, "projects:<path>" 1683 // For ref configs, "projects/refs:<path>" 1684 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1685 // URL to the schema definition, e.g. to a .proto file in a repository. 1686 Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` 1687 } 1688 1689 func (x *SchemasCfg_Schema) Reset() { 1690 *x = SchemasCfg_Schema{} 1691 if protoimpl.UnsafeEnabled { 1692 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[21] 1693 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1694 ms.StoreMessageInfo(mi) 1695 } 1696 } 1697 1698 func (x *SchemasCfg_Schema) String() string { 1699 return protoimpl.X.MessageStringOf(x) 1700 } 1701 1702 func (*SchemasCfg_Schema) ProtoMessage() {} 1703 1704 func (x *SchemasCfg_Schema) ProtoReflect() protoreflect.Message { 1705 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[21] 1706 if protoimpl.UnsafeEnabled && x != nil { 1707 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1708 if ms.LoadMessageInfo() == nil { 1709 ms.StoreMessageInfo(mi) 1710 } 1711 return ms 1712 } 1713 return mi.MessageOf(x) 1714 } 1715 1716 // Deprecated: Use SchemasCfg_Schema.ProtoReflect.Descriptor instead. 1717 func (*SchemasCfg_Schema) Descriptor() ([]byte, []int) { 1718 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{11, 0} 1719 } 1720 1721 func (x *SchemasCfg_Schema) GetName() string { 1722 if x != nil { 1723 return x.Name 1724 } 1725 return "" 1726 } 1727 1728 func (x *SchemasCfg_Schema) GetUrl() string { 1729 if x != nil { 1730 return x.Url 1731 } 1732 return "" 1733 } 1734 1735 // A message that explains why a config is valid or not. 1736 type ValidationResponseMessage_Message struct { 1737 state protoimpl.MessageState 1738 sizeCache protoimpl.SizeCache 1739 unknownFields protoimpl.UnknownFields 1740 1741 // Path of the config file that has an error. 1742 Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` 1743 // If an error, a config is considered invalid. Defaults to INFO. 1744 Severity ValidationResponseMessage_Severity `protobuf:"varint,2,opt,name=severity,proto3,enum=config.ValidationResponseMessage_Severity" json:"severity,omitempty"` 1745 // Textual representation of the message. 1746 Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"` 1747 } 1748 1749 func (x *ValidationResponseMessage_Message) Reset() { 1750 *x = ValidationResponseMessage_Message{} 1751 if protoimpl.UnsafeEnabled { 1752 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[22] 1753 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1754 ms.StoreMessageInfo(mi) 1755 } 1756 } 1757 1758 func (x *ValidationResponseMessage_Message) String() string { 1759 return protoimpl.X.MessageStringOf(x) 1760 } 1761 1762 func (*ValidationResponseMessage_Message) ProtoMessage() {} 1763 1764 func (x *ValidationResponseMessage_Message) ProtoReflect() protoreflect.Message { 1765 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[22] 1766 if protoimpl.UnsafeEnabled && x != nil { 1767 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1768 if ms.LoadMessageInfo() == nil { 1769 ms.StoreMessageInfo(mi) 1770 } 1771 return ms 1772 } 1773 return mi.MessageOf(x) 1774 } 1775 1776 // Deprecated: Use ValidationResponseMessage_Message.ProtoReflect.Descriptor instead. 1777 func (*ValidationResponseMessage_Message) Descriptor() ([]byte, []int) { 1778 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{15, 0} 1779 } 1780 1781 func (x *ValidationResponseMessage_Message) GetPath() string { 1782 if x != nil { 1783 return x.Path 1784 } 1785 return "" 1786 } 1787 1788 func (x *ValidationResponseMessage_Message) GetSeverity() ValidationResponseMessage_Severity { 1789 if x != nil { 1790 return x.Severity 1791 } 1792 return ValidationResponseMessage_UNKNOWN 1793 } 1794 1795 func (x *ValidationResponseMessage_Message) GetText() string { 1796 if x != nil { 1797 return x.Text 1798 } 1799 return "" 1800 } 1801 1802 type ValidateConfigsRequest_Files struct { 1803 state protoimpl.MessageState 1804 sizeCache protoimpl.SizeCache 1805 unknownFields protoimpl.UnknownFields 1806 1807 Files []*ValidateConfigsRequest_File `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"` 1808 } 1809 1810 func (x *ValidateConfigsRequest_Files) Reset() { 1811 *x = ValidateConfigsRequest_Files{} 1812 if protoimpl.UnsafeEnabled { 1813 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[23] 1814 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1815 ms.StoreMessageInfo(mi) 1816 } 1817 } 1818 1819 func (x *ValidateConfigsRequest_Files) String() string { 1820 return protoimpl.X.MessageStringOf(x) 1821 } 1822 1823 func (*ValidateConfigsRequest_Files) ProtoMessage() {} 1824 1825 func (x *ValidateConfigsRequest_Files) ProtoReflect() protoreflect.Message { 1826 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[23] 1827 if protoimpl.UnsafeEnabled && x != nil { 1828 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1829 if ms.LoadMessageInfo() == nil { 1830 ms.StoreMessageInfo(mi) 1831 } 1832 return ms 1833 } 1834 return mi.MessageOf(x) 1835 } 1836 1837 // Deprecated: Use ValidateConfigsRequest_Files.ProtoReflect.Descriptor instead. 1838 func (*ValidateConfigsRequest_Files) Descriptor() ([]byte, []int) { 1839 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{17, 0} 1840 } 1841 1842 func (x *ValidateConfigsRequest_Files) GetFiles() []*ValidateConfigsRequest_File { 1843 if x != nil { 1844 return x.Files 1845 } 1846 return nil 1847 } 1848 1849 // File represents a config file to validate. 1850 type ValidateConfigsRequest_File struct { 1851 state protoimpl.MessageState 1852 sizeCache protoimpl.SizeCache 1853 unknownFields protoimpl.UnknownFields 1854 1855 // path of the config file relative to root config directory. 1856 Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` 1857 // Types that are assignable to Content: 1858 // 1859 // *ValidateConfigsRequest_File_RawContent 1860 // *ValidateConfigsRequest_File_SignedUrl 1861 Content isValidateConfigsRequest_File_Content `protobuf_oneof:"content"` 1862 } 1863 1864 func (x *ValidateConfigsRequest_File) Reset() { 1865 *x = ValidateConfigsRequest_File{} 1866 if protoimpl.UnsafeEnabled { 1867 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[24] 1868 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1869 ms.StoreMessageInfo(mi) 1870 } 1871 } 1872 1873 func (x *ValidateConfigsRequest_File) String() string { 1874 return protoimpl.X.MessageStringOf(x) 1875 } 1876 1877 func (*ValidateConfigsRequest_File) ProtoMessage() {} 1878 1879 func (x *ValidateConfigsRequest_File) ProtoReflect() protoreflect.Message { 1880 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[24] 1881 if protoimpl.UnsafeEnabled && x != nil { 1882 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1883 if ms.LoadMessageInfo() == nil { 1884 ms.StoreMessageInfo(mi) 1885 } 1886 return ms 1887 } 1888 return mi.MessageOf(x) 1889 } 1890 1891 // Deprecated: Use ValidateConfigsRequest_File.ProtoReflect.Descriptor instead. 1892 func (*ValidateConfigsRequest_File) Descriptor() ([]byte, []int) { 1893 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{17, 1} 1894 } 1895 1896 func (x *ValidateConfigsRequest_File) GetPath() string { 1897 if x != nil { 1898 return x.Path 1899 } 1900 return "" 1901 } 1902 1903 func (m *ValidateConfigsRequest_File) GetContent() isValidateConfigsRequest_File_Content { 1904 if m != nil { 1905 return m.Content 1906 } 1907 return nil 1908 } 1909 1910 func (x *ValidateConfigsRequest_File) GetRawContent() []byte { 1911 if x, ok := x.GetContent().(*ValidateConfigsRequest_File_RawContent); ok { 1912 return x.RawContent 1913 } 1914 return nil 1915 } 1916 1917 func (x *ValidateConfigsRequest_File) GetSignedUrl() string { 1918 if x, ok := x.GetContent().(*ValidateConfigsRequest_File_SignedUrl); ok { 1919 return x.SignedUrl 1920 } 1921 return "" 1922 } 1923 1924 type isValidateConfigsRequest_File_Content interface { 1925 isValidateConfigsRequest_File_Content() 1926 } 1927 1928 type ValidateConfigsRequest_File_RawContent struct { 1929 // RawContent is the raw byte content of the config file. 1930 RawContent []byte `protobuf:"bytes,2,opt,name=raw_content,json=rawContent,proto3,oneof"` 1931 } 1932 1933 type ValidateConfigsRequest_File_SignedUrl struct { 1934 // SignedURL is a GCS singed url to download full config content. 1935 // 1936 // The service SHOULD provide "Accept-Encoding: gzip" header to minimize 1937 // the data on the wire and the service should also be able to 1938 // handle the uncompressed data based on the presence of 1939 // "Content-Encoding" header. 1940 // The signed url will expire shortly. Currently LUCI Config sets the 1941 // expiration time to 10 min. 1942 SignedUrl string `protobuf:"bytes,3,opt,name=signed_url,json=signedUrl,proto3,oneof"` 1943 } 1944 1945 func (*ValidateConfigsRequest_File_RawContent) isValidateConfigsRequest_File_Content() {} 1946 1947 func (*ValidateConfigsRequest_File_SignedUrl) isValidateConfigsRequest_File_Content() {} 1948 1949 // A message that explains why a config is valid or not. 1950 type ValidationResult_Message struct { 1951 state protoimpl.MessageState 1952 sizeCache protoimpl.SizeCache 1953 unknownFields protoimpl.UnknownFields 1954 1955 // Path of the config file that has an error. 1956 Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` 1957 // If an error, a config is considered invalid. Defaults to INFO. 1958 Severity ValidationResult_Severity `protobuf:"varint,2,opt,name=severity,proto3,enum=config.ValidationResult_Severity" json:"severity,omitempty"` 1959 // Textual representation of the message. 1960 Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"` 1961 } 1962 1963 func (x *ValidationResult_Message) Reset() { 1964 *x = ValidationResult_Message{} 1965 if protoimpl.UnsafeEnabled { 1966 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[25] 1967 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1968 ms.StoreMessageInfo(mi) 1969 } 1970 } 1971 1972 func (x *ValidationResult_Message) String() string { 1973 return protoimpl.X.MessageStringOf(x) 1974 } 1975 1976 func (*ValidationResult_Message) ProtoMessage() {} 1977 1978 func (x *ValidationResult_Message) ProtoReflect() protoreflect.Message { 1979 mi := &file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[25] 1980 if protoimpl.UnsafeEnabled && x != nil { 1981 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1982 if ms.LoadMessageInfo() == nil { 1983 ms.StoreMessageInfo(mi) 1984 } 1985 return ms 1986 } 1987 return mi.MessageOf(x) 1988 } 1989 1990 // Deprecated: Use ValidationResult_Message.ProtoReflect.Descriptor instead. 1991 func (*ValidationResult_Message) Descriptor() ([]byte, []int) { 1992 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP(), []int{18, 0} 1993 } 1994 1995 func (x *ValidationResult_Message) GetPath() string { 1996 if x != nil { 1997 return x.Path 1998 } 1999 return "" 2000 } 2001 2002 func (x *ValidationResult_Message) GetSeverity() ValidationResult_Severity { 2003 if x != nil { 2004 return x.Severity 2005 } 2006 return ValidationResult_UNKNOWN 2007 } 2008 2009 func (x *ValidationResult_Message) GetText() string { 2010 if x != nil { 2011 return x.Text 2012 } 2013 return "" 2014 } 2015 2016 var File_go_chromium_org_luci_common_proto_config_service_config_proto protoreflect.FileDescriptor 2017 2018 var file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDesc = []byte{ 2019 0x0a, 0x3d, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 2020 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 2021 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 2022 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 2023 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 2024 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 2025 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4b, 0x0a, 0x0f, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x4c, 2026 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 2027 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x72, 2028 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x12, 0x0a, 2029 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 2030 0x68, 0x22, 0x44, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 2031 0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 2032 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 2033 0x28, 0x09, 0x52, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 2034 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x5c, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 2035 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x10, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x6c, 2036 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 2037 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x4c, 0x6f, 2038 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 2039 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 2040 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xde, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 2041 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 2042 0x64, 0x12, 0x44, 0x0a, 0x10, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 2043 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 2044 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x4c, 0x6f, 0x63, 0x61, 2045 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x4c, 2046 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 2047 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 2048 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 2049 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 2050 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 2051 0x64, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 2052 0x64, 0x42, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 2053 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x6f, 2054 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7a, 0x0a, 0x04, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x12, 2055 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 2056 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 2057 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 2058 0x12, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 2059 0x61, 0x63, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x74, 0x69, 0x6f, 2060 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 2061 0x11, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 2062 0x63, 0x74, 0x22, 0x5e, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x66, 2063 0x67, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 2064 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x72, 0x6f, 2065 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x22, 2066 0x0a, 0x05, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 2067 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x05, 0x74, 0x65, 0x61, 2068 0x6d, 0x73, 0x22, 0xfa, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 2069 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 2070 0x0a, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 2071 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 2072 0x74, 0x61, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 2073 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 2074 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 2075 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 2076 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 2077 0x08, 0x6a, 0x77, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 2078 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 2079 0x2e, 0x4a, 0x57, 0x54, 0x41, 0x75, 0x74, 0x68, 0x52, 0x07, 0x6a, 0x77, 0x74, 0x41, 0x75, 0x74, 2080 0x68, 0x1a, 0x25, 0x0a, 0x07, 0x4a, 0x57, 0x54, 0x41, 0x75, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 2081 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 2082 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x0f, 2083 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 2084 0xa1, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x79, 0x6e, 0x61, 0x6d, 2085 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 2086 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 2087 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 2088 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 2089 0x67, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, 0x61, 0x6c, 2090 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x19, 0x73, 0x75, 0x70, 0x70, 0x6f, 2091 0x72, 0x74, 0x73, 0x5f, 0x67, 0x7a, 0x69, 0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 2092 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73, 0x75, 0x70, 0x70, 2093 0x6f, 0x72, 0x74, 0x73, 0x47, 0x7a, 0x69, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 2094 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x43, 2095 0x66, 0x67, 0x12, 0x2b, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 2096 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 2097 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 2098 0xd0, 0x03, 0x0a, 0x06, 0x41, 0x63, 0x6c, 0x43, 0x66, 0x67, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x72, 2099 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x67, 0x72, 0x6f, 2100 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 2101 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x38, 0x0a, 0x18, 2102 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 2103 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 2104 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 2105 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 2106 0x74, 0x5f, 0x72, 0x65, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 2107 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 2108 0x65, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x30, 0x0a, 0x14, 2109 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x67, 2110 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, 2111 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x38, 2112 0x0a, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 2113 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 2114 0x52, 0x16, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 2115 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x65, 0x72, 0x76, 2116 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x67, 0x72, 0x6f, 2117 0x75, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 2118 0x65, 0x52, 0x65, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x04, 2119 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 2120 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x52, 0x18, 0x63, 0x6f, 2121 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x68, 0x61, 0x73, 0x68, 2122 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x67, 0x72, 2123 0x6f, 0x75, 0x70, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 2124 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0e, 0x72, 0x65, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 2125 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x1b, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x70, 0x72, 2126 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x67, 0x72, 0x6f, 2127 0x75, 0x70, 0x22, 0xe3, 0x02, 0x0a, 0x09, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x66, 0x67, 2128 0x12, 0x33, 0x0a, 0x07, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 2129 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 2130 0x74, 0x43, 0x66, 0x67, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x07, 0x67, 0x69, 2131 0x74, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0xa0, 0x02, 0x0a, 0x07, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 2132 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x64, 2133 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x66, 2134 0x65, 0x74, 0x63, 0x68, 0x4c, 0x6f, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 2135 0x34, 0x0a, 0x16, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 2136 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 2137 0x14, 0x66, 0x65, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x44, 0x65, 0x61, 2138 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 2139 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 2140 0x72, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x70, 0x72, 0x6f, 0x6a, 0x65, 2141 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 2142 0x65, 0x66, 0x12, 0x3d, 0x0a, 0x1b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 2143 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x61, 0x74, 2144 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 2145 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x74, 2146 0x68, 0x12, 0x35, 0x0a, 0x17, 0x72, 0x65, 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 2147 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 2148 0x28, 0x09, 0x52, 0x14, 0x72, 0x65, 0x66, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x66, 2149 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0x71, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x65, 2150 0x6d, 0x61, 0x73, 0x43, 0x66, 0x67, 0x12, 0x33, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 2151 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 2152 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x43, 0x66, 0x67, 0x2e, 0x53, 0x63, 0x68, 0x65, 2153 0x6d, 0x61, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x1a, 0x2e, 0x0a, 0x06, 0x53, 2154 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 2155 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 2156 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x42, 0x0a, 0x0d, 0x43, 2157 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 2158 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 2159 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 2160 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 2161 0x50, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x08, 2162 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 2163 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 2164 0x74, 0x74, 0x65, 0x72, 0x6e, 0x52, 0x08, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 2165 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 2166 0x6c, 0x22, 0x67, 0x0a, 0x18, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 2167 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x0a, 2168 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 2169 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 2170 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 2171 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 2172 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xb1, 0x02, 0x0a, 0x19, 0x56, 2173 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2174 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 2175 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 2176 0x66, 0x69, 0x67, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 2177 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x65, 2178 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x1a, 2179 0x79, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 2180 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x46, 2181 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 2182 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 2183 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 2184 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, 0x65, 2185 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 2186 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x52, 0x0a, 0x08, 0x53, 0x65, 2187 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 2188 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x0a, 0x12, 0x08, 2189 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x14, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 2190 0x49, 0x4e, 0x47, 0x10, 0x1e, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x28, 2191 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x32, 0x22, 0x51, 2192 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 2193 0x61, 0x12, 0x3e, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x70, 0x61, 0x74, 0x74, 2194 0x65, 0x72, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 2195 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 2196 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 2197 0x73, 0x22, 0xa2, 0x02, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 2198 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 2199 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 2200 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x66, 2201 0x69, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 2202 0x66, 0x69, 0x67, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 2203 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 2204 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x42, 0x0a, 0x05, 0x46, 0x69, 0x6c, 0x65, 0x73, 2205 0x12, 0x39, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 2206 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 2207 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 2208 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x69, 0x0a, 0x04, 0x46, 2209 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 2210 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x21, 0x0a, 0x0b, 0x72, 0x61, 0x77, 0x5f, 0x63, 2211 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 2212 0x72, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x73, 0x69, 2213 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 2214 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x63, 2215 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x96, 0x02, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 2216 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x6d, 2217 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 2218 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 2219 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 2220 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x70, 0x0a, 0x07, 0x4d, 0x65, 0x73, 2221 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 2222 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x3d, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 2223 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 2224 0x66, 0x69, 0x67, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 2225 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, 2226 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 2227 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x52, 0x0a, 0x08, 0x53, 2228 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 2229 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x0a, 0x12, 2230 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x14, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 2231 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x1e, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 2232 0x28, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x32, 0x32, 2233 0x9b, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0b, 2234 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x2e, 0x67, 0x6f, 2235 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 2236 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 2237 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x00, 0x12, 0x4d, 2238 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 2239 0x73, 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 2240 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2241 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 2242 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x42, 0x2a, 0x5a, 2243 0x28, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 2244 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 2245 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2246 0x33, 2247 } 2248 2249 var ( 2250 file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescOnce sync.Once 2251 file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescData = file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDesc 2252 ) 2253 2254 func file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescGZIP() []byte { 2255 file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescOnce.Do(func() { 2256 file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescData) 2257 }) 2258 return file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDescData 2259 } 2260 2261 var file_go_chromium_org_luci_common_proto_config_service_config_proto_enumTypes = make([]protoimpl.EnumInfo, 2) 2262 var file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes = make([]protoimpl.MessageInfo, 26) 2263 var file_go_chromium_org_luci_common_proto_config_service_config_proto_goTypes = []interface{}{ 2264 (ValidationResponseMessage_Severity)(0), // 0: config.ValidationResponseMessage.Severity 2265 (ValidationResult_Severity)(0), // 1: config.ValidationResult.Severity 2266 (*GitilesLocation)(nil), // 2: config.GitilesLocation 2267 (*IdentityConfig)(nil), // 3: config.IdentityConfig 2268 (*Location)(nil), // 4: config.Location 2269 (*Project)(nil), // 5: config.Project 2270 (*Team)(nil), // 6: config.Team 2271 (*ProjectsCfg)(nil), // 7: config.ProjectsCfg 2272 (*Service)(nil), // 8: config.Service 2273 (*ServiceDynamicMetadata)(nil), // 9: config.ServiceDynamicMetadata 2274 (*ServicesCfg)(nil), // 10: config.ServicesCfg 2275 (*AclCfg)(nil), // 11: config.AclCfg 2276 (*ImportCfg)(nil), // 12: config.ImportCfg 2277 (*SchemasCfg)(nil), // 13: config.SchemasCfg 2278 (*ConfigPattern)(nil), // 14: config.ConfigPattern 2279 (*Validator)(nil), // 15: config.Validator 2280 (*ValidationRequestMessage)(nil), // 16: config.ValidationRequestMessage 2281 (*ValidationResponseMessage)(nil), // 17: config.ValidationResponseMessage 2282 (*ServiceMetadata)(nil), // 18: config.ServiceMetadata 2283 (*ValidateConfigsRequest)(nil), // 19: config.ValidateConfigsRequest 2284 (*ValidationResult)(nil), // 20: config.ValidationResult 2285 (*Service_JWTAuth)(nil), // 21: config.Service.JWTAuth 2286 (*ImportCfg_Gitiles)(nil), // 22: config.ImportCfg.Gitiles 2287 (*SchemasCfg_Schema)(nil), // 23: config.SchemasCfg.Schema 2288 (*ValidationResponseMessage_Message)(nil), // 24: config.ValidationResponseMessage.Message 2289 (*ValidateConfigsRequest_Files)(nil), // 25: config.ValidateConfigsRequest.Files 2290 (*ValidateConfigsRequest_File)(nil), // 26: config.ValidateConfigsRequest.File 2291 (*ValidationResult_Message)(nil), // 27: config.ValidationResult.Message 2292 (*emptypb.Empty)(nil), // 28: google.protobuf.Empty 2293 } 2294 var file_go_chromium_org_luci_common_proto_config_service_config_proto_depIdxs = []int32{ 2295 2, // 0: config.Location.gitiles_location:type_name -> config.GitilesLocation 2296 2, // 1: config.Project.gitiles_location:type_name -> config.GitilesLocation 2297 3, // 2: config.Project.identity_config:type_name -> config.IdentityConfig 2298 5, // 3: config.ProjectsCfg.projects:type_name -> config.Project 2299 6, // 4: config.ProjectsCfg.teams:type_name -> config.Team 2300 21, // 5: config.Service.jwt_auth:type_name -> config.Service.JWTAuth 2301 15, // 6: config.ServiceDynamicMetadata.validation:type_name -> config.Validator 2302 8, // 7: config.ServicesCfg.services:type_name -> config.Service 2303 22, // 8: config.ImportCfg.gitiles:type_name -> config.ImportCfg.Gitiles 2304 23, // 9: config.SchemasCfg.schemas:type_name -> config.SchemasCfg.Schema 2305 14, // 10: config.Validator.patterns:type_name -> config.ConfigPattern 2306 24, // 11: config.ValidationResponseMessage.messages:type_name -> config.ValidationResponseMessage.Message 2307 14, // 12: config.ServiceMetadata.config_patterns:type_name -> config.ConfigPattern 2308 25, // 13: config.ValidateConfigsRequest.files:type_name -> config.ValidateConfigsRequest.Files 2309 27, // 14: config.ValidationResult.messages:type_name -> config.ValidationResult.Message 2310 0, // 15: config.ValidationResponseMessage.Message.severity:type_name -> config.ValidationResponseMessage.Severity 2311 26, // 16: config.ValidateConfigsRequest.Files.files:type_name -> config.ValidateConfigsRequest.File 2312 1, // 17: config.ValidationResult.Message.severity:type_name -> config.ValidationResult.Severity 2313 28, // 18: config.Consumer.GetMetadata:input_type -> google.protobuf.Empty 2314 19, // 19: config.Consumer.ValidateConfigs:input_type -> config.ValidateConfigsRequest 2315 18, // 20: config.Consumer.GetMetadata:output_type -> config.ServiceMetadata 2316 20, // 21: config.Consumer.ValidateConfigs:output_type -> config.ValidationResult 2317 20, // [20:22] is the sub-list for method output_type 2318 18, // [18:20] is the sub-list for method input_type 2319 18, // [18:18] is the sub-list for extension type_name 2320 18, // [18:18] is the sub-list for extension extendee 2321 0, // [0:18] is the sub-list for field type_name 2322 } 2323 2324 func init() { file_go_chromium_org_luci_common_proto_config_service_config_proto_init() } 2325 func file_go_chromium_org_luci_common_proto_config_service_config_proto_init() { 2326 if File_go_chromium_org_luci_common_proto_config_service_config_proto != nil { 2327 return 2328 } 2329 if !protoimpl.UnsafeEnabled { 2330 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2331 switch v := v.(*GitilesLocation); i { 2332 case 0: 2333 return &v.state 2334 case 1: 2335 return &v.sizeCache 2336 case 2: 2337 return &v.unknownFields 2338 default: 2339 return nil 2340 } 2341 } 2342 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2343 switch v := v.(*IdentityConfig); i { 2344 case 0: 2345 return &v.state 2346 case 1: 2347 return &v.sizeCache 2348 case 2: 2349 return &v.unknownFields 2350 default: 2351 return nil 2352 } 2353 } 2354 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2355 switch v := v.(*Location); i { 2356 case 0: 2357 return &v.state 2358 case 1: 2359 return &v.sizeCache 2360 case 2: 2361 return &v.unknownFields 2362 default: 2363 return nil 2364 } 2365 } 2366 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2367 switch v := v.(*Project); i { 2368 case 0: 2369 return &v.state 2370 case 1: 2371 return &v.sizeCache 2372 case 2: 2373 return &v.unknownFields 2374 default: 2375 return nil 2376 } 2377 } 2378 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2379 switch v := v.(*Team); i { 2380 case 0: 2381 return &v.state 2382 case 1: 2383 return &v.sizeCache 2384 case 2: 2385 return &v.unknownFields 2386 default: 2387 return nil 2388 } 2389 } 2390 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2391 switch v := v.(*ProjectsCfg); i { 2392 case 0: 2393 return &v.state 2394 case 1: 2395 return &v.sizeCache 2396 case 2: 2397 return &v.unknownFields 2398 default: 2399 return nil 2400 } 2401 } 2402 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2403 switch v := v.(*Service); i { 2404 case 0: 2405 return &v.state 2406 case 1: 2407 return &v.sizeCache 2408 case 2: 2409 return &v.unknownFields 2410 default: 2411 return nil 2412 } 2413 } 2414 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2415 switch v := v.(*ServiceDynamicMetadata); i { 2416 case 0: 2417 return &v.state 2418 case 1: 2419 return &v.sizeCache 2420 case 2: 2421 return &v.unknownFields 2422 default: 2423 return nil 2424 } 2425 } 2426 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2427 switch v := v.(*ServicesCfg); i { 2428 case 0: 2429 return &v.state 2430 case 1: 2431 return &v.sizeCache 2432 case 2: 2433 return &v.unknownFields 2434 default: 2435 return nil 2436 } 2437 } 2438 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2439 switch v := v.(*AclCfg); i { 2440 case 0: 2441 return &v.state 2442 case 1: 2443 return &v.sizeCache 2444 case 2: 2445 return &v.unknownFields 2446 default: 2447 return nil 2448 } 2449 } 2450 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2451 switch v := v.(*ImportCfg); i { 2452 case 0: 2453 return &v.state 2454 case 1: 2455 return &v.sizeCache 2456 case 2: 2457 return &v.unknownFields 2458 default: 2459 return nil 2460 } 2461 } 2462 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2463 switch v := v.(*SchemasCfg); i { 2464 case 0: 2465 return &v.state 2466 case 1: 2467 return &v.sizeCache 2468 case 2: 2469 return &v.unknownFields 2470 default: 2471 return nil 2472 } 2473 } 2474 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2475 switch v := v.(*ConfigPattern); i { 2476 case 0: 2477 return &v.state 2478 case 1: 2479 return &v.sizeCache 2480 case 2: 2481 return &v.unknownFields 2482 default: 2483 return nil 2484 } 2485 } 2486 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2487 switch v := v.(*Validator); i { 2488 case 0: 2489 return &v.state 2490 case 1: 2491 return &v.sizeCache 2492 case 2: 2493 return &v.unknownFields 2494 default: 2495 return nil 2496 } 2497 } 2498 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2499 switch v := v.(*ValidationRequestMessage); i { 2500 case 0: 2501 return &v.state 2502 case 1: 2503 return &v.sizeCache 2504 case 2: 2505 return &v.unknownFields 2506 default: 2507 return nil 2508 } 2509 } 2510 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 2511 switch v := v.(*ValidationResponseMessage); i { 2512 case 0: 2513 return &v.state 2514 case 1: 2515 return &v.sizeCache 2516 case 2: 2517 return &v.unknownFields 2518 default: 2519 return nil 2520 } 2521 } 2522 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 2523 switch v := v.(*ServiceMetadata); i { 2524 case 0: 2525 return &v.state 2526 case 1: 2527 return &v.sizeCache 2528 case 2: 2529 return &v.unknownFields 2530 default: 2531 return nil 2532 } 2533 } 2534 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 2535 switch v := v.(*ValidateConfigsRequest); i { 2536 case 0: 2537 return &v.state 2538 case 1: 2539 return &v.sizeCache 2540 case 2: 2541 return &v.unknownFields 2542 default: 2543 return nil 2544 } 2545 } 2546 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 2547 switch v := v.(*ValidationResult); i { 2548 case 0: 2549 return &v.state 2550 case 1: 2551 return &v.sizeCache 2552 case 2: 2553 return &v.unknownFields 2554 default: 2555 return nil 2556 } 2557 } 2558 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 2559 switch v := v.(*Service_JWTAuth); i { 2560 case 0: 2561 return &v.state 2562 case 1: 2563 return &v.sizeCache 2564 case 2: 2565 return &v.unknownFields 2566 default: 2567 return nil 2568 } 2569 } 2570 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 2571 switch v := v.(*ImportCfg_Gitiles); i { 2572 case 0: 2573 return &v.state 2574 case 1: 2575 return &v.sizeCache 2576 case 2: 2577 return &v.unknownFields 2578 default: 2579 return nil 2580 } 2581 } 2582 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 2583 switch v := v.(*SchemasCfg_Schema); i { 2584 case 0: 2585 return &v.state 2586 case 1: 2587 return &v.sizeCache 2588 case 2: 2589 return &v.unknownFields 2590 default: 2591 return nil 2592 } 2593 } 2594 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 2595 switch v := v.(*ValidationResponseMessage_Message); i { 2596 case 0: 2597 return &v.state 2598 case 1: 2599 return &v.sizeCache 2600 case 2: 2601 return &v.unknownFields 2602 default: 2603 return nil 2604 } 2605 } 2606 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 2607 switch v := v.(*ValidateConfigsRequest_Files); i { 2608 case 0: 2609 return &v.state 2610 case 1: 2611 return &v.sizeCache 2612 case 2: 2613 return &v.unknownFields 2614 default: 2615 return nil 2616 } 2617 } 2618 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 2619 switch v := v.(*ValidateConfigsRequest_File); i { 2620 case 0: 2621 return &v.state 2622 case 1: 2623 return &v.sizeCache 2624 case 2: 2625 return &v.unknownFields 2626 default: 2627 return nil 2628 } 2629 } 2630 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 2631 switch v := v.(*ValidationResult_Message); i { 2632 case 0: 2633 return &v.state 2634 case 1: 2635 return &v.sizeCache 2636 case 2: 2637 return &v.unknownFields 2638 default: 2639 return nil 2640 } 2641 } 2642 } 2643 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[2].OneofWrappers = []interface{}{ 2644 (*Location_GitilesLocation)(nil), 2645 } 2646 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[3].OneofWrappers = []interface{}{ 2647 (*Project_GitilesLocation)(nil), 2648 } 2649 file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes[24].OneofWrappers = []interface{}{ 2650 (*ValidateConfigsRequest_File_RawContent)(nil), 2651 (*ValidateConfigsRequest_File_SignedUrl)(nil), 2652 } 2653 type x struct{} 2654 out := protoimpl.TypeBuilder{ 2655 File: protoimpl.DescBuilder{ 2656 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2657 RawDescriptor: file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDesc, 2658 NumEnums: 2, 2659 NumMessages: 26, 2660 NumExtensions: 0, 2661 NumServices: 1, 2662 }, 2663 GoTypes: file_go_chromium_org_luci_common_proto_config_service_config_proto_goTypes, 2664 DependencyIndexes: file_go_chromium_org_luci_common_proto_config_service_config_proto_depIdxs, 2665 EnumInfos: file_go_chromium_org_luci_common_proto_config_service_config_proto_enumTypes, 2666 MessageInfos: file_go_chromium_org_luci_common_proto_config_service_config_proto_msgTypes, 2667 }.Build() 2668 File_go_chromium_org_luci_common_proto_config_service_config_proto = out.File 2669 file_go_chromium_org_luci_common_proto_config_service_config_proto_rawDesc = nil 2670 file_go_chromium_org_luci_common_proto_config_service_config_proto_goTypes = nil 2671 file_go_chromium_org_luci_common_proto_config_service_config_proto_depIdxs = nil 2672 }