1// Copyright 2021 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.26.0 18// protoc v3.12.2 19// source: google/iam/admin/v1/iam.proto 20 21package admin 22 23import ( 24 context "context" 25 reflect "reflect" 26 sync "sync" 27 28 _ "google.golang.org/genproto/googleapis/api/annotations" 29 v1 "google.golang.org/genproto/googleapis/iam/v1" 30 expr "google.golang.org/genproto/googleapis/type/expr" 31 grpc "google.golang.org/grpc" 32 codes "google.golang.org/grpc/codes" 33 status "google.golang.org/grpc/status" 34 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 35 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 36 _ "google.golang.org/protobuf/types/known/anypb" 37 emptypb "google.golang.org/protobuf/types/known/emptypb" 38 fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 39 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 40) 41 42const ( 43 // Verify that this generated code is sufficiently up-to-date. 44 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 45 // Verify that runtime/protoimpl is sufficiently up-to-date. 46 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 47) 48 49// Supported key algorithms. 50type ServiceAccountKeyAlgorithm int32 51 52const ( 53 // An unspecified key algorithm. 54 ServiceAccountKeyAlgorithm_KEY_ALG_UNSPECIFIED ServiceAccountKeyAlgorithm = 0 55 // 1k RSA Key. 56 ServiceAccountKeyAlgorithm_KEY_ALG_RSA_1024 ServiceAccountKeyAlgorithm = 1 57 // 2k RSA Key. 58 ServiceAccountKeyAlgorithm_KEY_ALG_RSA_2048 ServiceAccountKeyAlgorithm = 2 59) 60 61// Enum value maps for ServiceAccountKeyAlgorithm. 62var ( 63 ServiceAccountKeyAlgorithm_name = map[int32]string{ 64 0: "KEY_ALG_UNSPECIFIED", 65 1: "KEY_ALG_RSA_1024", 66 2: "KEY_ALG_RSA_2048", 67 } 68 ServiceAccountKeyAlgorithm_value = map[string]int32{ 69 "KEY_ALG_UNSPECIFIED": 0, 70 "KEY_ALG_RSA_1024": 1, 71 "KEY_ALG_RSA_2048": 2, 72 } 73) 74 75func (x ServiceAccountKeyAlgorithm) Enum() *ServiceAccountKeyAlgorithm { 76 p := new(ServiceAccountKeyAlgorithm) 77 *p = x 78 return p 79} 80 81func (x ServiceAccountKeyAlgorithm) String() string { 82 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 83} 84 85func (ServiceAccountKeyAlgorithm) Descriptor() protoreflect.EnumDescriptor { 86 return file_google_iam_admin_v1_iam_proto_enumTypes[0].Descriptor() 87} 88 89func (ServiceAccountKeyAlgorithm) Type() protoreflect.EnumType { 90 return &file_google_iam_admin_v1_iam_proto_enumTypes[0] 91} 92 93func (x ServiceAccountKeyAlgorithm) Number() protoreflect.EnumNumber { 94 return protoreflect.EnumNumber(x) 95} 96 97// Deprecated: Use ServiceAccountKeyAlgorithm.Descriptor instead. 98func (ServiceAccountKeyAlgorithm) EnumDescriptor() ([]byte, []int) { 99 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{0} 100} 101 102// Supported private key output formats. 103type ServiceAccountPrivateKeyType int32 104 105const ( 106 // Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`. 107 ServiceAccountPrivateKeyType_TYPE_UNSPECIFIED ServiceAccountPrivateKeyType = 0 108 // PKCS12 format. 109 // The password for the PKCS12 file is `notasecret`. 110 // For more information, see https://tools.ietf.org/html/rfc7292. 111 ServiceAccountPrivateKeyType_TYPE_PKCS12_FILE ServiceAccountPrivateKeyType = 1 112 // Google Credentials File format. 113 ServiceAccountPrivateKeyType_TYPE_GOOGLE_CREDENTIALS_FILE ServiceAccountPrivateKeyType = 2 114) 115 116// Enum value maps for ServiceAccountPrivateKeyType. 117var ( 118 ServiceAccountPrivateKeyType_name = map[int32]string{ 119 0: "TYPE_UNSPECIFIED", 120 1: "TYPE_PKCS12_FILE", 121 2: "TYPE_GOOGLE_CREDENTIALS_FILE", 122 } 123 ServiceAccountPrivateKeyType_value = map[string]int32{ 124 "TYPE_UNSPECIFIED": 0, 125 "TYPE_PKCS12_FILE": 1, 126 "TYPE_GOOGLE_CREDENTIALS_FILE": 2, 127 } 128) 129 130func (x ServiceAccountPrivateKeyType) Enum() *ServiceAccountPrivateKeyType { 131 p := new(ServiceAccountPrivateKeyType) 132 *p = x 133 return p 134} 135 136func (x ServiceAccountPrivateKeyType) String() string { 137 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 138} 139 140func (ServiceAccountPrivateKeyType) Descriptor() protoreflect.EnumDescriptor { 141 return file_google_iam_admin_v1_iam_proto_enumTypes[1].Descriptor() 142} 143 144func (ServiceAccountPrivateKeyType) Type() protoreflect.EnumType { 145 return &file_google_iam_admin_v1_iam_proto_enumTypes[1] 146} 147 148func (x ServiceAccountPrivateKeyType) Number() protoreflect.EnumNumber { 149 return protoreflect.EnumNumber(x) 150} 151 152// Deprecated: Use ServiceAccountPrivateKeyType.Descriptor instead. 153func (ServiceAccountPrivateKeyType) EnumDescriptor() ([]byte, []int) { 154 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{1} 155} 156 157// Supported public key output formats. 158type ServiceAccountPublicKeyType int32 159 160const ( 161 // Unspecified. Returns nothing here. 162 ServiceAccountPublicKeyType_TYPE_NONE ServiceAccountPublicKeyType = 0 163 // X509 PEM format. 164 ServiceAccountPublicKeyType_TYPE_X509_PEM_FILE ServiceAccountPublicKeyType = 1 165 // Raw public key. 166 ServiceAccountPublicKeyType_TYPE_RAW_PUBLIC_KEY ServiceAccountPublicKeyType = 2 167) 168 169// Enum value maps for ServiceAccountPublicKeyType. 170var ( 171 ServiceAccountPublicKeyType_name = map[int32]string{ 172 0: "TYPE_NONE", 173 1: "TYPE_X509_PEM_FILE", 174 2: "TYPE_RAW_PUBLIC_KEY", 175 } 176 ServiceAccountPublicKeyType_value = map[string]int32{ 177 "TYPE_NONE": 0, 178 "TYPE_X509_PEM_FILE": 1, 179 "TYPE_RAW_PUBLIC_KEY": 2, 180 } 181) 182 183func (x ServiceAccountPublicKeyType) Enum() *ServiceAccountPublicKeyType { 184 p := new(ServiceAccountPublicKeyType) 185 *p = x 186 return p 187} 188 189func (x ServiceAccountPublicKeyType) String() string { 190 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 191} 192 193func (ServiceAccountPublicKeyType) Descriptor() protoreflect.EnumDescriptor { 194 return file_google_iam_admin_v1_iam_proto_enumTypes[2].Descriptor() 195} 196 197func (ServiceAccountPublicKeyType) Type() protoreflect.EnumType { 198 return &file_google_iam_admin_v1_iam_proto_enumTypes[2] 199} 200 201func (x ServiceAccountPublicKeyType) Number() protoreflect.EnumNumber { 202 return protoreflect.EnumNumber(x) 203} 204 205// Deprecated: Use ServiceAccountPublicKeyType.Descriptor instead. 206func (ServiceAccountPublicKeyType) EnumDescriptor() ([]byte, []int) { 207 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{2} 208} 209 210// Service Account Key Origin. 211type ServiceAccountKeyOrigin int32 212 213const ( 214 // Unspecified key origin. 215 ServiceAccountKeyOrigin_ORIGIN_UNSPECIFIED ServiceAccountKeyOrigin = 0 216 // Key is provided by user. 217 ServiceAccountKeyOrigin_USER_PROVIDED ServiceAccountKeyOrigin = 1 218 // Key is provided by Google. 219 ServiceAccountKeyOrigin_GOOGLE_PROVIDED ServiceAccountKeyOrigin = 2 220) 221 222// Enum value maps for ServiceAccountKeyOrigin. 223var ( 224 ServiceAccountKeyOrigin_name = map[int32]string{ 225 0: "ORIGIN_UNSPECIFIED", 226 1: "USER_PROVIDED", 227 2: "GOOGLE_PROVIDED", 228 } 229 ServiceAccountKeyOrigin_value = map[string]int32{ 230 "ORIGIN_UNSPECIFIED": 0, 231 "USER_PROVIDED": 1, 232 "GOOGLE_PROVIDED": 2, 233 } 234) 235 236func (x ServiceAccountKeyOrigin) Enum() *ServiceAccountKeyOrigin { 237 p := new(ServiceAccountKeyOrigin) 238 *p = x 239 return p 240} 241 242func (x ServiceAccountKeyOrigin) String() string { 243 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 244} 245 246func (ServiceAccountKeyOrigin) Descriptor() protoreflect.EnumDescriptor { 247 return file_google_iam_admin_v1_iam_proto_enumTypes[3].Descriptor() 248} 249 250func (ServiceAccountKeyOrigin) Type() protoreflect.EnumType { 251 return &file_google_iam_admin_v1_iam_proto_enumTypes[3] 252} 253 254func (x ServiceAccountKeyOrigin) Number() protoreflect.EnumNumber { 255 return protoreflect.EnumNumber(x) 256} 257 258// Deprecated: Use ServiceAccountKeyOrigin.Descriptor instead. 259func (ServiceAccountKeyOrigin) EnumDescriptor() ([]byte, []int) { 260 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{3} 261} 262 263// A view for Role objects. 264type RoleView int32 265 266const ( 267 // Omits the `included_permissions` field. 268 // This is the default value. 269 RoleView_BASIC RoleView = 0 270 // Returns all fields. 271 RoleView_FULL RoleView = 1 272) 273 274// Enum value maps for RoleView. 275var ( 276 RoleView_name = map[int32]string{ 277 0: "BASIC", 278 1: "FULL", 279 } 280 RoleView_value = map[string]int32{ 281 "BASIC": 0, 282 "FULL": 1, 283 } 284) 285 286func (x RoleView) Enum() *RoleView { 287 p := new(RoleView) 288 *p = x 289 return p 290} 291 292func (x RoleView) String() string { 293 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 294} 295 296func (RoleView) Descriptor() protoreflect.EnumDescriptor { 297 return file_google_iam_admin_v1_iam_proto_enumTypes[4].Descriptor() 298} 299 300func (RoleView) Type() protoreflect.EnumType { 301 return &file_google_iam_admin_v1_iam_proto_enumTypes[4] 302} 303 304func (x RoleView) Number() protoreflect.EnumNumber { 305 return protoreflect.EnumNumber(x) 306} 307 308// Deprecated: Use RoleView.Descriptor instead. 309func (RoleView) EnumDescriptor() ([]byte, []int) { 310 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{4} 311} 312 313// `KeyType` filters to selectively retrieve certain varieties 314// of keys. 315type ListServiceAccountKeysRequest_KeyType int32 316 317const ( 318 // Unspecified key type. The presence of this in the 319 // message will immediately result in an error. 320 ListServiceAccountKeysRequest_KEY_TYPE_UNSPECIFIED ListServiceAccountKeysRequest_KeyType = 0 321 // User-managed keys (managed and rotated by the user). 322 ListServiceAccountKeysRequest_USER_MANAGED ListServiceAccountKeysRequest_KeyType = 1 323 // System-managed keys (managed and rotated by Google). 324 ListServiceAccountKeysRequest_SYSTEM_MANAGED ListServiceAccountKeysRequest_KeyType = 2 325) 326 327// Enum value maps for ListServiceAccountKeysRequest_KeyType. 328var ( 329 ListServiceAccountKeysRequest_KeyType_name = map[int32]string{ 330 0: "KEY_TYPE_UNSPECIFIED", 331 1: "USER_MANAGED", 332 2: "SYSTEM_MANAGED", 333 } 334 ListServiceAccountKeysRequest_KeyType_value = map[string]int32{ 335 "KEY_TYPE_UNSPECIFIED": 0, 336 "USER_MANAGED": 1, 337 "SYSTEM_MANAGED": 2, 338 } 339) 340 341func (x ListServiceAccountKeysRequest_KeyType) Enum() *ListServiceAccountKeysRequest_KeyType { 342 p := new(ListServiceAccountKeysRequest_KeyType) 343 *p = x 344 return p 345} 346 347func (x ListServiceAccountKeysRequest_KeyType) String() string { 348 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 349} 350 351func (ListServiceAccountKeysRequest_KeyType) Descriptor() protoreflect.EnumDescriptor { 352 return file_google_iam_admin_v1_iam_proto_enumTypes[5].Descriptor() 353} 354 355func (ListServiceAccountKeysRequest_KeyType) Type() protoreflect.EnumType { 356 return &file_google_iam_admin_v1_iam_proto_enumTypes[5] 357} 358 359func (x ListServiceAccountKeysRequest_KeyType) Number() protoreflect.EnumNumber { 360 return protoreflect.EnumNumber(x) 361} 362 363// Deprecated: Use ListServiceAccountKeysRequest_KeyType.Descriptor instead. 364func (ListServiceAccountKeysRequest_KeyType) EnumDescriptor() ([]byte, []int) { 365 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{11, 0} 366} 367 368// A stage representing a role's lifecycle phase. 369type Role_RoleLaunchStage int32 370 371const ( 372 // The user has indicated this role is currently in an Alpha phase. If this 373 // launch stage is selected, the `stage` field will not be included when 374 // requesting the definition for a given role. 375 Role_ALPHA Role_RoleLaunchStage = 0 376 // The user has indicated this role is currently in a Beta phase. 377 Role_BETA Role_RoleLaunchStage = 1 378 // The user has indicated this role is generally available. 379 Role_GA Role_RoleLaunchStage = 2 380 // The user has indicated this role is being deprecated. 381 Role_DEPRECATED Role_RoleLaunchStage = 4 382 // This role is disabled and will not contribute permissions to any members 383 // it is granted to in policies. 384 Role_DISABLED Role_RoleLaunchStage = 5 385 // The user has indicated this role is currently in an EAP phase. 386 Role_EAP Role_RoleLaunchStage = 6 387) 388 389// Enum value maps for Role_RoleLaunchStage. 390var ( 391 Role_RoleLaunchStage_name = map[int32]string{ 392 0: "ALPHA", 393 1: "BETA", 394 2: "GA", 395 4: "DEPRECATED", 396 5: "DISABLED", 397 6: "EAP", 398 } 399 Role_RoleLaunchStage_value = map[string]int32{ 400 "ALPHA": 0, 401 "BETA": 1, 402 "GA": 2, 403 "DEPRECATED": 4, 404 "DISABLED": 5, 405 "EAP": 6, 406 } 407) 408 409func (x Role_RoleLaunchStage) Enum() *Role_RoleLaunchStage { 410 p := new(Role_RoleLaunchStage) 411 *p = x 412 return p 413} 414 415func (x Role_RoleLaunchStage) String() string { 416 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 417} 418 419func (Role_RoleLaunchStage) Descriptor() protoreflect.EnumDescriptor { 420 return file_google_iam_admin_v1_iam_proto_enumTypes[6].Descriptor() 421} 422 423func (Role_RoleLaunchStage) Type() protoreflect.EnumType { 424 return &file_google_iam_admin_v1_iam_proto_enumTypes[6] 425} 426 427func (x Role_RoleLaunchStage) Number() protoreflect.EnumNumber { 428 return protoreflect.EnumNumber(x) 429} 430 431// Deprecated: Use Role_RoleLaunchStage.Descriptor instead. 432func (Role_RoleLaunchStage) EnumDescriptor() ([]byte, []int) { 433 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{22, 0} 434} 435 436// A stage representing a permission's lifecycle phase. 437type Permission_PermissionLaunchStage int32 438 439const ( 440 // The permission is currently in an alpha phase. 441 Permission_ALPHA Permission_PermissionLaunchStage = 0 442 // The permission is currently in a beta phase. 443 Permission_BETA Permission_PermissionLaunchStage = 1 444 // The permission is generally available. 445 Permission_GA Permission_PermissionLaunchStage = 2 446 // The permission is being deprecated. 447 Permission_DEPRECATED Permission_PermissionLaunchStage = 3 448) 449 450// Enum value maps for Permission_PermissionLaunchStage. 451var ( 452 Permission_PermissionLaunchStage_name = map[int32]string{ 453 0: "ALPHA", 454 1: "BETA", 455 2: "GA", 456 3: "DEPRECATED", 457 } 458 Permission_PermissionLaunchStage_value = map[string]int32{ 459 "ALPHA": 0, 460 "BETA": 1, 461 "GA": 2, 462 "DEPRECATED": 3, 463 } 464) 465 466func (x Permission_PermissionLaunchStage) Enum() *Permission_PermissionLaunchStage { 467 p := new(Permission_PermissionLaunchStage) 468 *p = x 469 return p 470} 471 472func (x Permission_PermissionLaunchStage) String() string { 473 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 474} 475 476func (Permission_PermissionLaunchStage) Descriptor() protoreflect.EnumDescriptor { 477 return file_google_iam_admin_v1_iam_proto_enumTypes[7].Descriptor() 478} 479 480func (Permission_PermissionLaunchStage) Type() protoreflect.EnumType { 481 return &file_google_iam_admin_v1_iam_proto_enumTypes[7] 482} 483 484func (x Permission_PermissionLaunchStage) Number() protoreflect.EnumNumber { 485 return protoreflect.EnumNumber(x) 486} 487 488// Deprecated: Use Permission_PermissionLaunchStage.Descriptor instead. 489func (Permission_PermissionLaunchStage) EnumDescriptor() ([]byte, []int) { 490 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{32, 0} 491} 492 493// The state of the permission with regards to custom roles. 494type Permission_CustomRolesSupportLevel int32 495 496const ( 497 // Permission is fully supported for custom role use. 498 Permission_SUPPORTED Permission_CustomRolesSupportLevel = 0 499 // Permission is being tested to check custom role compatibility. 500 Permission_TESTING Permission_CustomRolesSupportLevel = 1 501 // Permission is not supported for custom role use. 502 Permission_NOT_SUPPORTED Permission_CustomRolesSupportLevel = 2 503) 504 505// Enum value maps for Permission_CustomRolesSupportLevel. 506var ( 507 Permission_CustomRolesSupportLevel_name = map[int32]string{ 508 0: "SUPPORTED", 509 1: "TESTING", 510 2: "NOT_SUPPORTED", 511 } 512 Permission_CustomRolesSupportLevel_value = map[string]int32{ 513 "SUPPORTED": 0, 514 "TESTING": 1, 515 "NOT_SUPPORTED": 2, 516 } 517) 518 519func (x Permission_CustomRolesSupportLevel) Enum() *Permission_CustomRolesSupportLevel { 520 p := new(Permission_CustomRolesSupportLevel) 521 *p = x 522 return p 523} 524 525func (x Permission_CustomRolesSupportLevel) String() string { 526 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 527} 528 529func (Permission_CustomRolesSupportLevel) Descriptor() protoreflect.EnumDescriptor { 530 return file_google_iam_admin_v1_iam_proto_enumTypes[8].Descriptor() 531} 532 533func (Permission_CustomRolesSupportLevel) Type() protoreflect.EnumType { 534 return &file_google_iam_admin_v1_iam_proto_enumTypes[8] 535} 536 537func (x Permission_CustomRolesSupportLevel) Number() protoreflect.EnumNumber { 538 return protoreflect.EnumNumber(x) 539} 540 541// Deprecated: Use Permission_CustomRolesSupportLevel.Descriptor instead. 542func (Permission_CustomRolesSupportLevel) EnumDescriptor() ([]byte, []int) { 543 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{32, 1} 544} 545 546// Possible Level values of a validation unit corresponding to its domain 547// of discourse. 548type LintResult_Level int32 549 550const ( 551 // Level is unspecified. 552 LintResult_LEVEL_UNSPECIFIED LintResult_Level = 0 553 // A validation unit which operates on an individual condition within a 554 // binding. 555 LintResult_CONDITION LintResult_Level = 3 556) 557 558// Enum value maps for LintResult_Level. 559var ( 560 LintResult_Level_name = map[int32]string{ 561 0: "LEVEL_UNSPECIFIED", 562 3: "CONDITION", 563 } 564 LintResult_Level_value = map[string]int32{ 565 "LEVEL_UNSPECIFIED": 0, 566 "CONDITION": 3, 567 } 568) 569 570func (x LintResult_Level) Enum() *LintResult_Level { 571 p := new(LintResult_Level) 572 *p = x 573 return p 574} 575 576func (x LintResult_Level) String() string { 577 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 578} 579 580func (LintResult_Level) Descriptor() protoreflect.EnumDescriptor { 581 return file_google_iam_admin_v1_iam_proto_enumTypes[9].Descriptor() 582} 583 584func (LintResult_Level) Type() protoreflect.EnumType { 585 return &file_google_iam_admin_v1_iam_proto_enumTypes[9] 586} 587 588func (x LintResult_Level) Number() protoreflect.EnumNumber { 589 return protoreflect.EnumNumber(x) 590} 591 592// Deprecated: Use LintResult_Level.Descriptor instead. 593func (LintResult_Level) EnumDescriptor() ([]byte, []int) { 594 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{38, 0} 595} 596 597// Possible Severity values of an issued result. 598type LintResult_Severity int32 599 600const ( 601 // Severity is unspecified. 602 LintResult_SEVERITY_UNSPECIFIED LintResult_Severity = 0 603 // A validation unit returns an error only for critical issues. If an 604 // attempt is made to set the problematic policy without rectifying the 605 // critical issue, it causes the `setPolicy` operation to fail. 606 LintResult_ERROR LintResult_Severity = 1 607 // Any issue which is severe enough but does not cause an error. 608 // For example, suspicious constructs in the input object will not 609 // necessarily fail `setPolicy`, but there is a high likelihood that they 610 // won't behave as expected during policy evaluation in `checkPolicy`. 611 // This includes the following common scenarios: 612 // 613 // - Unsatisfiable condition: Expired timestamp in date/time condition. 614 // - Ineffective condition: Condition on a <member, role> pair which is 615 // granted unconditionally in another binding of the same policy. 616 LintResult_WARNING LintResult_Severity = 2 617 // Reserved for the issues that are not severe as `ERROR`/`WARNING`, but 618 // need special handling. For instance, messages about skipped validation 619 // units are issued as `NOTICE`. 620 LintResult_NOTICE LintResult_Severity = 3 621 // Any informative statement which is not severe enough to raise 622 // `ERROR`/`WARNING`/`NOTICE`, like auto-correction recommendations on the 623 // input content. Note that current version of the linter does not utilize 624 // `INFO`. 625 LintResult_INFO LintResult_Severity = 4 626 // Deprecated severity level. 627 LintResult_DEPRECATED LintResult_Severity = 5 628) 629 630// Enum value maps for LintResult_Severity. 631var ( 632 LintResult_Severity_name = map[int32]string{ 633 0: "SEVERITY_UNSPECIFIED", 634 1: "ERROR", 635 2: "WARNING", 636 3: "NOTICE", 637 4: "INFO", 638 5: "DEPRECATED", 639 } 640 LintResult_Severity_value = map[string]int32{ 641 "SEVERITY_UNSPECIFIED": 0, 642 "ERROR": 1, 643 "WARNING": 2, 644 "NOTICE": 3, 645 "INFO": 4, 646 "DEPRECATED": 5, 647 } 648) 649 650func (x LintResult_Severity) Enum() *LintResult_Severity { 651 p := new(LintResult_Severity) 652 *p = x 653 return p 654} 655 656func (x LintResult_Severity) String() string { 657 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 658} 659 660func (LintResult_Severity) Descriptor() protoreflect.EnumDescriptor { 661 return file_google_iam_admin_v1_iam_proto_enumTypes[10].Descriptor() 662} 663 664func (LintResult_Severity) Type() protoreflect.EnumType { 665 return &file_google_iam_admin_v1_iam_proto_enumTypes[10] 666} 667 668func (x LintResult_Severity) Number() protoreflect.EnumNumber { 669 return protoreflect.EnumNumber(x) 670} 671 672// Deprecated: Use LintResult_Severity.Descriptor instead. 673func (LintResult_Severity) EnumDescriptor() ([]byte, []int) { 674 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{38, 1} 675} 676 677// An IAM service account. 678// 679// A service account is an account for an application or a virtual machine (VM) 680// instance, not a person. You can use a service account to call Google APIs. To 681// learn more, read the [overview of service 682// accounts](https://cloud.google.com/iam/help/service-accounts/overview). 683// 684// When you create a service account, you specify the project ID that owns the 685// service account, as well as a name that must be unique within the project. 686// IAM uses these values to create an email address that identifies the service 687// account. 688type ServiceAccount struct { 689 state protoimpl.MessageState 690 sizeCache protoimpl.SizeCache 691 unknownFields protoimpl.UnknownFields 692 693 // The resource name of the service account. 694 // 695 // Use one of the following formats: 696 // 697 // * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` 698 // * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` 699 // 700 // As an alternative, you can use the `-` wildcard character instead of the 701 // project ID: 702 // 703 // * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` 704 // * `projects/-/serviceAccounts/{UNIQUE_ID}` 705 // 706 // When possible, avoid using the `-` wildcard character, because it can cause 707 // response messages to contain misleading error codes. For example, if you 708 // try to get the service account 709 // `projects/-/serviceAccounts/fake@example.com`, which does not exist, the 710 // response contains an HTTP `403 Forbidden` error instead of a `404 Not 711 // Found` error. 712 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 713 // Output only. The ID of the project that owns the service account. 714 ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` 715 // Output only. The unique, stable numeric ID for the service account. 716 // 717 // Each service account retains its unique ID even if you delete the service 718 // account. For example, if you delete a service account, then create a new 719 // service account with the same name, the new service account has a different 720 // unique ID than the deleted service account. 721 UniqueId string `protobuf:"bytes,4,opt,name=unique_id,json=uniqueId,proto3" json:"unique_id,omitempty"` 722 // Output only. The email address of the service account. 723 Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` 724 // Optional. A user-specified, human-readable name for the service account. The maximum 725 // length is 100 UTF-8 bytes. 726 DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 727 // Deprecated. Do not use. 728 // 729 // Deprecated: Do not use. 730 Etag []byte `protobuf:"bytes,7,opt,name=etag,proto3" json:"etag,omitempty"` 731 // Optional. A user-specified, human-readable description of the service account. The 732 // maximum length is 256 UTF-8 bytes. 733 Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"` 734 // Output only. The OAuth 2.0 client ID for the service account. 735 Oauth2ClientId string `protobuf:"bytes,9,opt,name=oauth2_client_id,json=oauth2ClientId,proto3" json:"oauth2_client_id,omitempty"` 736 // Output only. Whether the service account is disabled. 737 Disabled bool `protobuf:"varint,11,opt,name=disabled,proto3" json:"disabled,omitempty"` 738} 739 740func (x *ServiceAccount) Reset() { 741 *x = ServiceAccount{} 742 if protoimpl.UnsafeEnabled { 743 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[0] 744 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 745 ms.StoreMessageInfo(mi) 746 } 747} 748 749func (x *ServiceAccount) String() string { 750 return protoimpl.X.MessageStringOf(x) 751} 752 753func (*ServiceAccount) ProtoMessage() {} 754 755func (x *ServiceAccount) ProtoReflect() protoreflect.Message { 756 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[0] 757 if protoimpl.UnsafeEnabled && x != nil { 758 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 759 if ms.LoadMessageInfo() == nil { 760 ms.StoreMessageInfo(mi) 761 } 762 return ms 763 } 764 return mi.MessageOf(x) 765} 766 767// Deprecated: Use ServiceAccount.ProtoReflect.Descriptor instead. 768func (*ServiceAccount) Descriptor() ([]byte, []int) { 769 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{0} 770} 771 772func (x *ServiceAccount) GetName() string { 773 if x != nil { 774 return x.Name 775 } 776 return "" 777} 778 779func (x *ServiceAccount) GetProjectId() string { 780 if x != nil { 781 return x.ProjectId 782 } 783 return "" 784} 785 786func (x *ServiceAccount) GetUniqueId() string { 787 if x != nil { 788 return x.UniqueId 789 } 790 return "" 791} 792 793func (x *ServiceAccount) GetEmail() string { 794 if x != nil { 795 return x.Email 796 } 797 return "" 798} 799 800func (x *ServiceAccount) GetDisplayName() string { 801 if x != nil { 802 return x.DisplayName 803 } 804 return "" 805} 806 807// Deprecated: Do not use. 808func (x *ServiceAccount) GetEtag() []byte { 809 if x != nil { 810 return x.Etag 811 } 812 return nil 813} 814 815func (x *ServiceAccount) GetDescription() string { 816 if x != nil { 817 return x.Description 818 } 819 return "" 820} 821 822func (x *ServiceAccount) GetOauth2ClientId() string { 823 if x != nil { 824 return x.Oauth2ClientId 825 } 826 return "" 827} 828 829func (x *ServiceAccount) GetDisabled() bool { 830 if x != nil { 831 return x.Disabled 832 } 833 return false 834} 835 836// The service account create request. 837type CreateServiceAccountRequest struct { 838 state protoimpl.MessageState 839 sizeCache protoimpl.SizeCache 840 unknownFields protoimpl.UnknownFields 841 842 // Required. The resource name of the project associated with the service 843 // accounts, such as `projects/my-project-123`. 844 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 845 // Required. The account id that is used to generate the service account 846 // email address and a stable unique id. It is unique within a project, 847 // must be 6-30 characters long, and match the regular expression 848 // `[a-z]([-a-z0-9]*[a-z0-9])` to comply with RFC1035. 849 AccountId string `protobuf:"bytes,2,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"` 850 // The [ServiceAccount][google.iam.admin.v1.ServiceAccount] resource to 851 // create. Currently, only the following values are user assignable: 852 // `display_name` and `description`. 853 ServiceAccount *ServiceAccount `protobuf:"bytes,3,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` 854} 855 856func (x *CreateServiceAccountRequest) Reset() { 857 *x = CreateServiceAccountRequest{} 858 if protoimpl.UnsafeEnabled { 859 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[1] 860 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 861 ms.StoreMessageInfo(mi) 862 } 863} 864 865func (x *CreateServiceAccountRequest) String() string { 866 return protoimpl.X.MessageStringOf(x) 867} 868 869func (*CreateServiceAccountRequest) ProtoMessage() {} 870 871func (x *CreateServiceAccountRequest) ProtoReflect() protoreflect.Message { 872 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[1] 873 if protoimpl.UnsafeEnabled && x != nil { 874 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 875 if ms.LoadMessageInfo() == nil { 876 ms.StoreMessageInfo(mi) 877 } 878 return ms 879 } 880 return mi.MessageOf(x) 881} 882 883// Deprecated: Use CreateServiceAccountRequest.ProtoReflect.Descriptor instead. 884func (*CreateServiceAccountRequest) Descriptor() ([]byte, []int) { 885 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{1} 886} 887 888func (x *CreateServiceAccountRequest) GetName() string { 889 if x != nil { 890 return x.Name 891 } 892 return "" 893} 894 895func (x *CreateServiceAccountRequest) GetAccountId() string { 896 if x != nil { 897 return x.AccountId 898 } 899 return "" 900} 901 902func (x *CreateServiceAccountRequest) GetServiceAccount() *ServiceAccount { 903 if x != nil { 904 return x.ServiceAccount 905 } 906 return nil 907} 908 909// The service account list request. 910type ListServiceAccountsRequest struct { 911 state protoimpl.MessageState 912 sizeCache protoimpl.SizeCache 913 unknownFields protoimpl.UnknownFields 914 915 // Required. The resource name of the project associated with the service 916 // accounts, such as `projects/my-project-123`. 917 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 918 // Optional limit on the number of service accounts to include in the 919 // response. Further accounts can subsequently be obtained by including the 920 // [ListServiceAccountsResponse.next_page_token][google.iam.admin.v1.ListServiceAccountsResponse.next_page_token] 921 // in a subsequent request. 922 // 923 // The default is 20, and the maximum is 100. 924 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 925 // Optional pagination token returned in an earlier 926 // [ListServiceAccountsResponse.next_page_token][google.iam.admin.v1.ListServiceAccountsResponse.next_page_token]. 927 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 928} 929 930func (x *ListServiceAccountsRequest) Reset() { 931 *x = ListServiceAccountsRequest{} 932 if protoimpl.UnsafeEnabled { 933 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[2] 934 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 935 ms.StoreMessageInfo(mi) 936 } 937} 938 939func (x *ListServiceAccountsRequest) String() string { 940 return protoimpl.X.MessageStringOf(x) 941} 942 943func (*ListServiceAccountsRequest) ProtoMessage() {} 944 945func (x *ListServiceAccountsRequest) ProtoReflect() protoreflect.Message { 946 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[2] 947 if protoimpl.UnsafeEnabled && x != nil { 948 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 949 if ms.LoadMessageInfo() == nil { 950 ms.StoreMessageInfo(mi) 951 } 952 return ms 953 } 954 return mi.MessageOf(x) 955} 956 957// Deprecated: Use ListServiceAccountsRequest.ProtoReflect.Descriptor instead. 958func (*ListServiceAccountsRequest) Descriptor() ([]byte, []int) { 959 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{2} 960} 961 962func (x *ListServiceAccountsRequest) GetName() string { 963 if x != nil { 964 return x.Name 965 } 966 return "" 967} 968 969func (x *ListServiceAccountsRequest) GetPageSize() int32 { 970 if x != nil { 971 return x.PageSize 972 } 973 return 0 974} 975 976func (x *ListServiceAccountsRequest) GetPageToken() string { 977 if x != nil { 978 return x.PageToken 979 } 980 return "" 981} 982 983// The service account list response. 984type ListServiceAccountsResponse struct { 985 state protoimpl.MessageState 986 sizeCache protoimpl.SizeCache 987 unknownFields protoimpl.UnknownFields 988 989 // The list of matching service accounts. 990 Accounts []*ServiceAccount `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts,omitempty"` 991 // To retrieve the next page of results, set 992 // [ListServiceAccountsRequest.page_token][google.iam.admin.v1.ListServiceAccountsRequest.page_token] 993 // to this value. 994 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 995} 996 997func (x *ListServiceAccountsResponse) Reset() { 998 *x = ListServiceAccountsResponse{} 999 if protoimpl.UnsafeEnabled { 1000 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[3] 1001 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1002 ms.StoreMessageInfo(mi) 1003 } 1004} 1005 1006func (x *ListServiceAccountsResponse) String() string { 1007 return protoimpl.X.MessageStringOf(x) 1008} 1009 1010func (*ListServiceAccountsResponse) ProtoMessage() {} 1011 1012func (x *ListServiceAccountsResponse) ProtoReflect() protoreflect.Message { 1013 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[3] 1014 if protoimpl.UnsafeEnabled && x != nil { 1015 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1016 if ms.LoadMessageInfo() == nil { 1017 ms.StoreMessageInfo(mi) 1018 } 1019 return ms 1020 } 1021 return mi.MessageOf(x) 1022} 1023 1024// Deprecated: Use ListServiceAccountsResponse.ProtoReflect.Descriptor instead. 1025func (*ListServiceAccountsResponse) Descriptor() ([]byte, []int) { 1026 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{3} 1027} 1028 1029func (x *ListServiceAccountsResponse) GetAccounts() []*ServiceAccount { 1030 if x != nil { 1031 return x.Accounts 1032 } 1033 return nil 1034} 1035 1036func (x *ListServiceAccountsResponse) GetNextPageToken() string { 1037 if x != nil { 1038 return x.NextPageToken 1039 } 1040 return "" 1041} 1042 1043// The service account get request. 1044type GetServiceAccountRequest struct { 1045 state protoimpl.MessageState 1046 sizeCache protoimpl.SizeCache 1047 unknownFields protoimpl.UnknownFields 1048 1049 // Required. The resource name of the service account in the following format: 1050 // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. 1051 // Using `-` as a wildcard for the `PROJECT_ID` will infer the project from 1052 // the account. The `ACCOUNT` value can be the `email` address or the 1053 // `unique_id` of the service account. 1054 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1055} 1056 1057func (x *GetServiceAccountRequest) Reset() { 1058 *x = GetServiceAccountRequest{} 1059 if protoimpl.UnsafeEnabled { 1060 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[4] 1061 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1062 ms.StoreMessageInfo(mi) 1063 } 1064} 1065 1066func (x *GetServiceAccountRequest) String() string { 1067 return protoimpl.X.MessageStringOf(x) 1068} 1069 1070func (*GetServiceAccountRequest) ProtoMessage() {} 1071 1072func (x *GetServiceAccountRequest) ProtoReflect() protoreflect.Message { 1073 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[4] 1074 if protoimpl.UnsafeEnabled && x != nil { 1075 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1076 if ms.LoadMessageInfo() == nil { 1077 ms.StoreMessageInfo(mi) 1078 } 1079 return ms 1080 } 1081 return mi.MessageOf(x) 1082} 1083 1084// Deprecated: Use GetServiceAccountRequest.ProtoReflect.Descriptor instead. 1085func (*GetServiceAccountRequest) Descriptor() ([]byte, []int) { 1086 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{4} 1087} 1088 1089func (x *GetServiceAccountRequest) GetName() string { 1090 if x != nil { 1091 return x.Name 1092 } 1093 return "" 1094} 1095 1096// The service account delete request. 1097type DeleteServiceAccountRequest struct { 1098 state protoimpl.MessageState 1099 sizeCache protoimpl.SizeCache 1100 unknownFields protoimpl.UnknownFields 1101 1102 // Required. The resource name of the service account in the following format: 1103 // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. 1104 // Using `-` as a wildcard for the `PROJECT_ID` will infer the project from 1105 // the account. The `ACCOUNT` value can be the `email` address or the 1106 // `unique_id` of the service account. 1107 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1108} 1109 1110func (x *DeleteServiceAccountRequest) Reset() { 1111 *x = DeleteServiceAccountRequest{} 1112 if protoimpl.UnsafeEnabled { 1113 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[5] 1114 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1115 ms.StoreMessageInfo(mi) 1116 } 1117} 1118 1119func (x *DeleteServiceAccountRequest) String() string { 1120 return protoimpl.X.MessageStringOf(x) 1121} 1122 1123func (*DeleteServiceAccountRequest) ProtoMessage() {} 1124 1125func (x *DeleteServiceAccountRequest) ProtoReflect() protoreflect.Message { 1126 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[5] 1127 if protoimpl.UnsafeEnabled && x != nil { 1128 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1129 if ms.LoadMessageInfo() == nil { 1130 ms.StoreMessageInfo(mi) 1131 } 1132 return ms 1133 } 1134 return mi.MessageOf(x) 1135} 1136 1137// Deprecated: Use DeleteServiceAccountRequest.ProtoReflect.Descriptor instead. 1138func (*DeleteServiceAccountRequest) Descriptor() ([]byte, []int) { 1139 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{5} 1140} 1141 1142func (x *DeleteServiceAccountRequest) GetName() string { 1143 if x != nil { 1144 return x.Name 1145 } 1146 return "" 1147} 1148 1149// The request for 1150// [PatchServiceAccount][google.iam.admin.v1.PatchServiceAccount]. 1151// 1152// You can patch only the `display_name` and `description` fields. You must use 1153// the `update_mask` field to specify which of these fields you want to patch. 1154// 1155// Only the fields specified in the request are guaranteed to be returned in 1156// the response. Other fields may be empty in the response. 1157type PatchServiceAccountRequest struct { 1158 state protoimpl.MessageState 1159 sizeCache protoimpl.SizeCache 1160 unknownFields protoimpl.UnknownFields 1161 1162 ServiceAccount *ServiceAccount `protobuf:"bytes,1,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` 1163 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 1164} 1165 1166func (x *PatchServiceAccountRequest) Reset() { 1167 *x = PatchServiceAccountRequest{} 1168 if protoimpl.UnsafeEnabled { 1169 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[6] 1170 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1171 ms.StoreMessageInfo(mi) 1172 } 1173} 1174 1175func (x *PatchServiceAccountRequest) String() string { 1176 return protoimpl.X.MessageStringOf(x) 1177} 1178 1179func (*PatchServiceAccountRequest) ProtoMessage() {} 1180 1181func (x *PatchServiceAccountRequest) ProtoReflect() protoreflect.Message { 1182 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[6] 1183 if protoimpl.UnsafeEnabled && x != nil { 1184 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1185 if ms.LoadMessageInfo() == nil { 1186 ms.StoreMessageInfo(mi) 1187 } 1188 return ms 1189 } 1190 return mi.MessageOf(x) 1191} 1192 1193// Deprecated: Use PatchServiceAccountRequest.ProtoReflect.Descriptor instead. 1194func (*PatchServiceAccountRequest) Descriptor() ([]byte, []int) { 1195 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{6} 1196} 1197 1198func (x *PatchServiceAccountRequest) GetServiceAccount() *ServiceAccount { 1199 if x != nil { 1200 return x.ServiceAccount 1201 } 1202 return nil 1203} 1204 1205func (x *PatchServiceAccountRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 1206 if x != nil { 1207 return x.UpdateMask 1208 } 1209 return nil 1210} 1211 1212// The service account undelete request. 1213type UndeleteServiceAccountRequest struct { 1214 state protoimpl.MessageState 1215 sizeCache protoimpl.SizeCache 1216 unknownFields protoimpl.UnknownFields 1217 1218 // The resource name of the service account in the following format: 1219 // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT_UNIQUE_ID}`. 1220 // Using `-` as a wildcard for the `PROJECT_ID` will infer the project from 1221 // the account. 1222 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1223} 1224 1225func (x *UndeleteServiceAccountRequest) Reset() { 1226 *x = UndeleteServiceAccountRequest{} 1227 if protoimpl.UnsafeEnabled { 1228 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[7] 1229 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1230 ms.StoreMessageInfo(mi) 1231 } 1232} 1233 1234func (x *UndeleteServiceAccountRequest) String() string { 1235 return protoimpl.X.MessageStringOf(x) 1236} 1237 1238func (*UndeleteServiceAccountRequest) ProtoMessage() {} 1239 1240func (x *UndeleteServiceAccountRequest) ProtoReflect() protoreflect.Message { 1241 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[7] 1242 if protoimpl.UnsafeEnabled && x != nil { 1243 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1244 if ms.LoadMessageInfo() == nil { 1245 ms.StoreMessageInfo(mi) 1246 } 1247 return ms 1248 } 1249 return mi.MessageOf(x) 1250} 1251 1252// Deprecated: Use UndeleteServiceAccountRequest.ProtoReflect.Descriptor instead. 1253func (*UndeleteServiceAccountRequest) Descriptor() ([]byte, []int) { 1254 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{7} 1255} 1256 1257func (x *UndeleteServiceAccountRequest) GetName() string { 1258 if x != nil { 1259 return x.Name 1260 } 1261 return "" 1262} 1263 1264type UndeleteServiceAccountResponse struct { 1265 state protoimpl.MessageState 1266 sizeCache protoimpl.SizeCache 1267 unknownFields protoimpl.UnknownFields 1268 1269 // Metadata for the restored service account. 1270 RestoredAccount *ServiceAccount `protobuf:"bytes,1,opt,name=restored_account,json=restoredAccount,proto3" json:"restored_account,omitempty"` 1271} 1272 1273func (x *UndeleteServiceAccountResponse) Reset() { 1274 *x = UndeleteServiceAccountResponse{} 1275 if protoimpl.UnsafeEnabled { 1276 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[8] 1277 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1278 ms.StoreMessageInfo(mi) 1279 } 1280} 1281 1282func (x *UndeleteServiceAccountResponse) String() string { 1283 return protoimpl.X.MessageStringOf(x) 1284} 1285 1286func (*UndeleteServiceAccountResponse) ProtoMessage() {} 1287 1288func (x *UndeleteServiceAccountResponse) ProtoReflect() protoreflect.Message { 1289 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[8] 1290 if protoimpl.UnsafeEnabled && x != nil { 1291 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1292 if ms.LoadMessageInfo() == nil { 1293 ms.StoreMessageInfo(mi) 1294 } 1295 return ms 1296 } 1297 return mi.MessageOf(x) 1298} 1299 1300// Deprecated: Use UndeleteServiceAccountResponse.ProtoReflect.Descriptor instead. 1301func (*UndeleteServiceAccountResponse) Descriptor() ([]byte, []int) { 1302 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{8} 1303} 1304 1305func (x *UndeleteServiceAccountResponse) GetRestoredAccount() *ServiceAccount { 1306 if x != nil { 1307 return x.RestoredAccount 1308 } 1309 return nil 1310} 1311 1312// The service account enable request. 1313type EnableServiceAccountRequest struct { 1314 state protoimpl.MessageState 1315 sizeCache protoimpl.SizeCache 1316 unknownFields protoimpl.UnknownFields 1317 1318 // The resource name of the service account in the following format: 1319 // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. 1320 // Using `-` as a wildcard for the `PROJECT_ID` will infer the project from 1321 // the account. The `ACCOUNT` value can be the `email` address or the 1322 // `unique_id` of the service account. 1323 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1324} 1325 1326func (x *EnableServiceAccountRequest) Reset() { 1327 *x = EnableServiceAccountRequest{} 1328 if protoimpl.UnsafeEnabled { 1329 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[9] 1330 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1331 ms.StoreMessageInfo(mi) 1332 } 1333} 1334 1335func (x *EnableServiceAccountRequest) String() string { 1336 return protoimpl.X.MessageStringOf(x) 1337} 1338 1339func (*EnableServiceAccountRequest) ProtoMessage() {} 1340 1341func (x *EnableServiceAccountRequest) ProtoReflect() protoreflect.Message { 1342 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[9] 1343 if protoimpl.UnsafeEnabled && x != nil { 1344 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1345 if ms.LoadMessageInfo() == nil { 1346 ms.StoreMessageInfo(mi) 1347 } 1348 return ms 1349 } 1350 return mi.MessageOf(x) 1351} 1352 1353// Deprecated: Use EnableServiceAccountRequest.ProtoReflect.Descriptor instead. 1354func (*EnableServiceAccountRequest) Descriptor() ([]byte, []int) { 1355 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{9} 1356} 1357 1358func (x *EnableServiceAccountRequest) GetName() string { 1359 if x != nil { 1360 return x.Name 1361 } 1362 return "" 1363} 1364 1365// The service account disable request. 1366type DisableServiceAccountRequest struct { 1367 state protoimpl.MessageState 1368 sizeCache protoimpl.SizeCache 1369 unknownFields protoimpl.UnknownFields 1370 1371 // The resource name of the service account in the following format: 1372 // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. 1373 // Using `-` as a wildcard for the `PROJECT_ID` will infer the project from 1374 // the account. The `ACCOUNT` value can be the `email` address or the 1375 // `unique_id` of the service account. 1376 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1377} 1378 1379func (x *DisableServiceAccountRequest) Reset() { 1380 *x = DisableServiceAccountRequest{} 1381 if protoimpl.UnsafeEnabled { 1382 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[10] 1383 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1384 ms.StoreMessageInfo(mi) 1385 } 1386} 1387 1388func (x *DisableServiceAccountRequest) String() string { 1389 return protoimpl.X.MessageStringOf(x) 1390} 1391 1392func (*DisableServiceAccountRequest) ProtoMessage() {} 1393 1394func (x *DisableServiceAccountRequest) ProtoReflect() protoreflect.Message { 1395 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[10] 1396 if protoimpl.UnsafeEnabled && x != nil { 1397 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1398 if ms.LoadMessageInfo() == nil { 1399 ms.StoreMessageInfo(mi) 1400 } 1401 return ms 1402 } 1403 return mi.MessageOf(x) 1404} 1405 1406// Deprecated: Use DisableServiceAccountRequest.ProtoReflect.Descriptor instead. 1407func (*DisableServiceAccountRequest) Descriptor() ([]byte, []int) { 1408 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{10} 1409} 1410 1411func (x *DisableServiceAccountRequest) GetName() string { 1412 if x != nil { 1413 return x.Name 1414 } 1415 return "" 1416} 1417 1418// The service account keys list request. 1419type ListServiceAccountKeysRequest struct { 1420 state protoimpl.MessageState 1421 sizeCache protoimpl.SizeCache 1422 unknownFields protoimpl.UnknownFields 1423 1424 // Required. The resource name of the service account in the following format: 1425 // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. 1426 // 1427 // Using `-` as a wildcard for the `PROJECT_ID`, will infer the project from 1428 // the account. The `ACCOUNT` value can be the `email` address or the 1429 // `unique_id` of the service account. 1430 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1431 // Filters the types of keys the user wants to include in the list 1432 // response. Duplicate key types are not allowed. If no key type 1433 // is provided, all keys are returned. 1434 KeyTypes []ListServiceAccountKeysRequest_KeyType `protobuf:"varint,2,rep,packed,name=key_types,json=keyTypes,proto3,enum=google.iam.admin.v1.ListServiceAccountKeysRequest_KeyType" json:"key_types,omitempty"` 1435} 1436 1437func (x *ListServiceAccountKeysRequest) Reset() { 1438 *x = ListServiceAccountKeysRequest{} 1439 if protoimpl.UnsafeEnabled { 1440 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[11] 1441 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1442 ms.StoreMessageInfo(mi) 1443 } 1444} 1445 1446func (x *ListServiceAccountKeysRequest) String() string { 1447 return protoimpl.X.MessageStringOf(x) 1448} 1449 1450func (*ListServiceAccountKeysRequest) ProtoMessage() {} 1451 1452func (x *ListServiceAccountKeysRequest) ProtoReflect() protoreflect.Message { 1453 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[11] 1454 if protoimpl.UnsafeEnabled && x != nil { 1455 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1456 if ms.LoadMessageInfo() == nil { 1457 ms.StoreMessageInfo(mi) 1458 } 1459 return ms 1460 } 1461 return mi.MessageOf(x) 1462} 1463 1464// Deprecated: Use ListServiceAccountKeysRequest.ProtoReflect.Descriptor instead. 1465func (*ListServiceAccountKeysRequest) Descriptor() ([]byte, []int) { 1466 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{11} 1467} 1468 1469func (x *ListServiceAccountKeysRequest) GetName() string { 1470 if x != nil { 1471 return x.Name 1472 } 1473 return "" 1474} 1475 1476func (x *ListServiceAccountKeysRequest) GetKeyTypes() []ListServiceAccountKeysRequest_KeyType { 1477 if x != nil { 1478 return x.KeyTypes 1479 } 1480 return nil 1481} 1482 1483// The service account keys list response. 1484type ListServiceAccountKeysResponse struct { 1485 state protoimpl.MessageState 1486 sizeCache protoimpl.SizeCache 1487 unknownFields protoimpl.UnknownFields 1488 1489 // The public keys for the service account. 1490 Keys []*ServiceAccountKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` 1491} 1492 1493func (x *ListServiceAccountKeysResponse) Reset() { 1494 *x = ListServiceAccountKeysResponse{} 1495 if protoimpl.UnsafeEnabled { 1496 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[12] 1497 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1498 ms.StoreMessageInfo(mi) 1499 } 1500} 1501 1502func (x *ListServiceAccountKeysResponse) String() string { 1503 return protoimpl.X.MessageStringOf(x) 1504} 1505 1506func (*ListServiceAccountKeysResponse) ProtoMessage() {} 1507 1508func (x *ListServiceAccountKeysResponse) ProtoReflect() protoreflect.Message { 1509 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[12] 1510 if protoimpl.UnsafeEnabled && x != nil { 1511 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1512 if ms.LoadMessageInfo() == nil { 1513 ms.StoreMessageInfo(mi) 1514 } 1515 return ms 1516 } 1517 return mi.MessageOf(x) 1518} 1519 1520// Deprecated: Use ListServiceAccountKeysResponse.ProtoReflect.Descriptor instead. 1521func (*ListServiceAccountKeysResponse) Descriptor() ([]byte, []int) { 1522 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{12} 1523} 1524 1525func (x *ListServiceAccountKeysResponse) GetKeys() []*ServiceAccountKey { 1526 if x != nil { 1527 return x.Keys 1528 } 1529 return nil 1530} 1531 1532// The service account key get by id request. 1533type GetServiceAccountKeyRequest struct { 1534 state protoimpl.MessageState 1535 sizeCache protoimpl.SizeCache 1536 unknownFields protoimpl.UnknownFields 1537 1538 // Required. The resource name of the service account key in the following format: 1539 // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. 1540 // 1541 // Using `-` as a wildcard for the `PROJECT_ID` will infer the project from 1542 // the account. The `ACCOUNT` value can be the `email` address or the 1543 // `unique_id` of the service account. 1544 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1545 // The output format of the public key requested. 1546 // X509_PEM is the default output format. 1547 PublicKeyType ServiceAccountPublicKeyType `protobuf:"varint,2,opt,name=public_key_type,json=publicKeyType,proto3,enum=google.iam.admin.v1.ServiceAccountPublicKeyType" json:"public_key_type,omitempty"` 1548} 1549 1550func (x *GetServiceAccountKeyRequest) Reset() { 1551 *x = GetServiceAccountKeyRequest{} 1552 if protoimpl.UnsafeEnabled { 1553 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[13] 1554 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1555 ms.StoreMessageInfo(mi) 1556 } 1557} 1558 1559func (x *GetServiceAccountKeyRequest) String() string { 1560 return protoimpl.X.MessageStringOf(x) 1561} 1562 1563func (*GetServiceAccountKeyRequest) ProtoMessage() {} 1564 1565func (x *GetServiceAccountKeyRequest) ProtoReflect() protoreflect.Message { 1566 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[13] 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 GetServiceAccountKeyRequest.ProtoReflect.Descriptor instead. 1578func (*GetServiceAccountKeyRequest) Descriptor() ([]byte, []int) { 1579 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{13} 1580} 1581 1582func (x *GetServiceAccountKeyRequest) GetName() string { 1583 if x != nil { 1584 return x.Name 1585 } 1586 return "" 1587} 1588 1589func (x *GetServiceAccountKeyRequest) GetPublicKeyType() ServiceAccountPublicKeyType { 1590 if x != nil { 1591 return x.PublicKeyType 1592 } 1593 return ServiceAccountPublicKeyType_TYPE_NONE 1594} 1595 1596// Represents a service account key. 1597// 1598// A service account has two sets of key-pairs: user-managed, and 1599// system-managed. 1600// 1601// User-managed key-pairs can be created and deleted by users. Users are 1602// responsible for rotating these keys periodically to ensure security of 1603// their service accounts. Users retain the private key of these key-pairs, 1604// and Google retains ONLY the public key. 1605// 1606// System-managed keys are automatically rotated by Google, and are used for 1607// signing for a maximum of two weeks. The rotation process is probabilistic, 1608// and usage of the new key will gradually ramp up and down over the key's 1609// lifetime. 1610// 1611// If you cache the public key set for a service account, we recommend that you 1612// update the cache every 15 minutes. User-managed keys can be added and removed 1613// at any time, so it is important to update the cache frequently. For 1614// Google-managed keys, Google will publish a key at least 6 hours before it is 1615// first used for signing and will keep publishing it for at least 6 hours after 1616// it was last used for signing. 1617// 1618// Public keys for all service accounts are also published at the OAuth2 1619// Service Account API. 1620type ServiceAccountKey struct { 1621 state protoimpl.MessageState 1622 sizeCache protoimpl.SizeCache 1623 unknownFields protoimpl.UnknownFields 1624 1625 // The resource name of the service account key in the following format 1626 // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. 1627 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1628 // The output format for the private key. 1629 // Only provided in `CreateServiceAccountKey` responses, not 1630 // in `GetServiceAccountKey` or `ListServiceAccountKey` responses. 1631 // 1632 // Google never exposes system-managed private keys, and never retains 1633 // user-managed private keys. 1634 PrivateKeyType ServiceAccountPrivateKeyType `protobuf:"varint,2,opt,name=private_key_type,json=privateKeyType,proto3,enum=google.iam.admin.v1.ServiceAccountPrivateKeyType" json:"private_key_type,omitempty"` 1635 // Specifies the algorithm (and possibly key size) for the key. 1636 KeyAlgorithm ServiceAccountKeyAlgorithm `protobuf:"varint,8,opt,name=key_algorithm,json=keyAlgorithm,proto3,enum=google.iam.admin.v1.ServiceAccountKeyAlgorithm" json:"key_algorithm,omitempty"` 1637 // The private key data. Only provided in `CreateServiceAccountKey` 1638 // responses. Make sure to keep the private key data secure because it 1639 // allows for the assertion of the service account identity. 1640 // When base64 decoded, the private key data can be used to authenticate with 1641 // Google API client libraries and with 1642 // <a href="/sdk/gcloud/reference/auth/activate-service-account">gcloud 1643 // auth activate-service-account</a>. 1644 PrivateKeyData []byte `protobuf:"bytes,3,opt,name=private_key_data,json=privateKeyData,proto3" json:"private_key_data,omitempty"` 1645 // The public key data. Only provided in `GetServiceAccountKey` responses. 1646 PublicKeyData []byte `protobuf:"bytes,7,opt,name=public_key_data,json=publicKeyData,proto3" json:"public_key_data,omitempty"` 1647 // The key can be used after this timestamp. 1648 ValidAfterTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=valid_after_time,json=validAfterTime,proto3" json:"valid_after_time,omitempty"` 1649 // The key can be used before this timestamp. 1650 // For system-managed key pairs, this timestamp is the end time for the 1651 // private key signing operation. The public key could still be used 1652 // for verification for a few hours after this time. 1653 ValidBeforeTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=valid_before_time,json=validBeforeTime,proto3" json:"valid_before_time,omitempty"` 1654 // The key origin. 1655 KeyOrigin ServiceAccountKeyOrigin `protobuf:"varint,9,opt,name=key_origin,json=keyOrigin,proto3,enum=google.iam.admin.v1.ServiceAccountKeyOrigin" json:"key_origin,omitempty"` 1656 // The key type. 1657 KeyType ListServiceAccountKeysRequest_KeyType `protobuf:"varint,10,opt,name=key_type,json=keyType,proto3,enum=google.iam.admin.v1.ListServiceAccountKeysRequest_KeyType" json:"key_type,omitempty"` 1658} 1659 1660func (x *ServiceAccountKey) Reset() { 1661 *x = ServiceAccountKey{} 1662 if protoimpl.UnsafeEnabled { 1663 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[14] 1664 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1665 ms.StoreMessageInfo(mi) 1666 } 1667} 1668 1669func (x *ServiceAccountKey) String() string { 1670 return protoimpl.X.MessageStringOf(x) 1671} 1672 1673func (*ServiceAccountKey) ProtoMessage() {} 1674 1675func (x *ServiceAccountKey) ProtoReflect() protoreflect.Message { 1676 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[14] 1677 if protoimpl.UnsafeEnabled && x != nil { 1678 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1679 if ms.LoadMessageInfo() == nil { 1680 ms.StoreMessageInfo(mi) 1681 } 1682 return ms 1683 } 1684 return mi.MessageOf(x) 1685} 1686 1687// Deprecated: Use ServiceAccountKey.ProtoReflect.Descriptor instead. 1688func (*ServiceAccountKey) Descriptor() ([]byte, []int) { 1689 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{14} 1690} 1691 1692func (x *ServiceAccountKey) GetName() string { 1693 if x != nil { 1694 return x.Name 1695 } 1696 return "" 1697} 1698 1699func (x *ServiceAccountKey) GetPrivateKeyType() ServiceAccountPrivateKeyType { 1700 if x != nil { 1701 return x.PrivateKeyType 1702 } 1703 return ServiceAccountPrivateKeyType_TYPE_UNSPECIFIED 1704} 1705 1706func (x *ServiceAccountKey) GetKeyAlgorithm() ServiceAccountKeyAlgorithm { 1707 if x != nil { 1708 return x.KeyAlgorithm 1709 } 1710 return ServiceAccountKeyAlgorithm_KEY_ALG_UNSPECIFIED 1711} 1712 1713func (x *ServiceAccountKey) GetPrivateKeyData() []byte { 1714 if x != nil { 1715 return x.PrivateKeyData 1716 } 1717 return nil 1718} 1719 1720func (x *ServiceAccountKey) GetPublicKeyData() []byte { 1721 if x != nil { 1722 return x.PublicKeyData 1723 } 1724 return nil 1725} 1726 1727func (x *ServiceAccountKey) GetValidAfterTime() *timestamppb.Timestamp { 1728 if x != nil { 1729 return x.ValidAfterTime 1730 } 1731 return nil 1732} 1733 1734func (x *ServiceAccountKey) GetValidBeforeTime() *timestamppb.Timestamp { 1735 if x != nil { 1736 return x.ValidBeforeTime 1737 } 1738 return nil 1739} 1740 1741func (x *ServiceAccountKey) GetKeyOrigin() ServiceAccountKeyOrigin { 1742 if x != nil { 1743 return x.KeyOrigin 1744 } 1745 return ServiceAccountKeyOrigin_ORIGIN_UNSPECIFIED 1746} 1747 1748func (x *ServiceAccountKey) GetKeyType() ListServiceAccountKeysRequest_KeyType { 1749 if x != nil { 1750 return x.KeyType 1751 } 1752 return ListServiceAccountKeysRequest_KEY_TYPE_UNSPECIFIED 1753} 1754 1755// The service account key create request. 1756type CreateServiceAccountKeyRequest struct { 1757 state protoimpl.MessageState 1758 sizeCache protoimpl.SizeCache 1759 unknownFields protoimpl.UnknownFields 1760 1761 // Required. The resource name of the service account in the following format: 1762 // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. 1763 // Using `-` as a wildcard for the `PROJECT_ID` will infer the project from 1764 // the account. The `ACCOUNT` value can be the `email` address or the 1765 // `unique_id` of the service account. 1766 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1767 // The output format of the private key. The default value is 1768 // `TYPE_GOOGLE_CREDENTIALS_FILE`, which is the Google Credentials File 1769 // format. 1770 PrivateKeyType ServiceAccountPrivateKeyType `protobuf:"varint,2,opt,name=private_key_type,json=privateKeyType,proto3,enum=google.iam.admin.v1.ServiceAccountPrivateKeyType" json:"private_key_type,omitempty"` 1771 // Which type of key and algorithm to use for the key. 1772 // The default is currently a 2K RSA key. However this may change in the 1773 // future. 1774 KeyAlgorithm ServiceAccountKeyAlgorithm `protobuf:"varint,3,opt,name=key_algorithm,json=keyAlgorithm,proto3,enum=google.iam.admin.v1.ServiceAccountKeyAlgorithm" json:"key_algorithm,omitempty"` 1775} 1776 1777func (x *CreateServiceAccountKeyRequest) Reset() { 1778 *x = CreateServiceAccountKeyRequest{} 1779 if protoimpl.UnsafeEnabled { 1780 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[15] 1781 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1782 ms.StoreMessageInfo(mi) 1783 } 1784} 1785 1786func (x *CreateServiceAccountKeyRequest) String() string { 1787 return protoimpl.X.MessageStringOf(x) 1788} 1789 1790func (*CreateServiceAccountKeyRequest) ProtoMessage() {} 1791 1792func (x *CreateServiceAccountKeyRequest) ProtoReflect() protoreflect.Message { 1793 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[15] 1794 if protoimpl.UnsafeEnabled && x != nil { 1795 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1796 if ms.LoadMessageInfo() == nil { 1797 ms.StoreMessageInfo(mi) 1798 } 1799 return ms 1800 } 1801 return mi.MessageOf(x) 1802} 1803 1804// Deprecated: Use CreateServiceAccountKeyRequest.ProtoReflect.Descriptor instead. 1805func (*CreateServiceAccountKeyRequest) Descriptor() ([]byte, []int) { 1806 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{15} 1807} 1808 1809func (x *CreateServiceAccountKeyRequest) GetName() string { 1810 if x != nil { 1811 return x.Name 1812 } 1813 return "" 1814} 1815 1816func (x *CreateServiceAccountKeyRequest) GetPrivateKeyType() ServiceAccountPrivateKeyType { 1817 if x != nil { 1818 return x.PrivateKeyType 1819 } 1820 return ServiceAccountPrivateKeyType_TYPE_UNSPECIFIED 1821} 1822 1823func (x *CreateServiceAccountKeyRequest) GetKeyAlgorithm() ServiceAccountKeyAlgorithm { 1824 if x != nil { 1825 return x.KeyAlgorithm 1826 } 1827 return ServiceAccountKeyAlgorithm_KEY_ALG_UNSPECIFIED 1828} 1829 1830// The service account key upload request. 1831type UploadServiceAccountKeyRequest struct { 1832 state protoimpl.MessageState 1833 sizeCache protoimpl.SizeCache 1834 unknownFields protoimpl.UnknownFields 1835 1836 // The resource name of the service account in the following format: 1837 // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. 1838 // Using `-` as a wildcard for the `PROJECT_ID` will infer the project from 1839 // the account. The `ACCOUNT` value can be the `email` address or the 1840 // `unique_id` of the service account. 1841 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1842 // A field that allows clients to upload their own public key. If set, 1843 // use this public key data to create a service account key for given 1844 // service account. 1845 // Please note, the expected format for this field is X509_PEM. 1846 PublicKeyData []byte `protobuf:"bytes,2,opt,name=public_key_data,json=publicKeyData,proto3" json:"public_key_data,omitempty"` 1847} 1848 1849func (x *UploadServiceAccountKeyRequest) Reset() { 1850 *x = UploadServiceAccountKeyRequest{} 1851 if protoimpl.UnsafeEnabled { 1852 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[16] 1853 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1854 ms.StoreMessageInfo(mi) 1855 } 1856} 1857 1858func (x *UploadServiceAccountKeyRequest) String() string { 1859 return protoimpl.X.MessageStringOf(x) 1860} 1861 1862func (*UploadServiceAccountKeyRequest) ProtoMessage() {} 1863 1864func (x *UploadServiceAccountKeyRequest) ProtoReflect() protoreflect.Message { 1865 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[16] 1866 if protoimpl.UnsafeEnabled && x != nil { 1867 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1868 if ms.LoadMessageInfo() == nil { 1869 ms.StoreMessageInfo(mi) 1870 } 1871 return ms 1872 } 1873 return mi.MessageOf(x) 1874} 1875 1876// Deprecated: Use UploadServiceAccountKeyRequest.ProtoReflect.Descriptor instead. 1877func (*UploadServiceAccountKeyRequest) Descriptor() ([]byte, []int) { 1878 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{16} 1879} 1880 1881func (x *UploadServiceAccountKeyRequest) GetName() string { 1882 if x != nil { 1883 return x.Name 1884 } 1885 return "" 1886} 1887 1888func (x *UploadServiceAccountKeyRequest) GetPublicKeyData() []byte { 1889 if x != nil { 1890 return x.PublicKeyData 1891 } 1892 return nil 1893} 1894 1895// The service account key delete request. 1896type DeleteServiceAccountKeyRequest struct { 1897 state protoimpl.MessageState 1898 sizeCache protoimpl.SizeCache 1899 unknownFields protoimpl.UnknownFields 1900 1901 // Required. The resource name of the service account key in the following format: 1902 // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. 1903 // Using `-` as a wildcard for the `PROJECT_ID` will infer the project from 1904 // the account. The `ACCOUNT` value can be the `email` address or the 1905 // `unique_id` of the service account. 1906 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1907} 1908 1909func (x *DeleteServiceAccountKeyRequest) Reset() { 1910 *x = DeleteServiceAccountKeyRequest{} 1911 if protoimpl.UnsafeEnabled { 1912 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[17] 1913 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1914 ms.StoreMessageInfo(mi) 1915 } 1916} 1917 1918func (x *DeleteServiceAccountKeyRequest) String() string { 1919 return protoimpl.X.MessageStringOf(x) 1920} 1921 1922func (*DeleteServiceAccountKeyRequest) ProtoMessage() {} 1923 1924func (x *DeleteServiceAccountKeyRequest) ProtoReflect() protoreflect.Message { 1925 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[17] 1926 if protoimpl.UnsafeEnabled && x != nil { 1927 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1928 if ms.LoadMessageInfo() == nil { 1929 ms.StoreMessageInfo(mi) 1930 } 1931 return ms 1932 } 1933 return mi.MessageOf(x) 1934} 1935 1936// Deprecated: Use DeleteServiceAccountKeyRequest.ProtoReflect.Descriptor instead. 1937func (*DeleteServiceAccountKeyRequest) Descriptor() ([]byte, []int) { 1938 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{17} 1939} 1940 1941func (x *DeleteServiceAccountKeyRequest) GetName() string { 1942 if x != nil { 1943 return x.Name 1944 } 1945 return "" 1946} 1947 1948// Deprecated. [Migrate to Service Account Credentials 1949// API](https://cloud.google.com/iam/help/credentials/migrate-api). 1950// 1951// The service account sign blob request. 1952type SignBlobRequest struct { 1953 state protoimpl.MessageState 1954 sizeCache protoimpl.SizeCache 1955 unknownFields protoimpl.UnknownFields 1956 1957 // Required. Deprecated. [Migrate to Service Account Credentials 1958 // API](https://cloud.google.com/iam/help/credentials/migrate-api). 1959 // 1960 // The resource name of the service account in the following format: 1961 // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. 1962 // Using `-` as a wildcard for the `PROJECT_ID` will infer the project from 1963 // the account. The `ACCOUNT` value can be the `email` address or the 1964 // `unique_id` of the service account. 1965 // 1966 // Deprecated: Do not use. 1967 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1968 // Required. Deprecated. [Migrate to Service Account Credentials 1969 // API](https://cloud.google.com/iam/help/credentials/migrate-api). 1970 // 1971 // The bytes to sign. 1972 // 1973 // Deprecated: Do not use. 1974 BytesToSign []byte `protobuf:"bytes,2,opt,name=bytes_to_sign,json=bytesToSign,proto3" json:"bytes_to_sign,omitempty"` 1975} 1976 1977func (x *SignBlobRequest) Reset() { 1978 *x = SignBlobRequest{} 1979 if protoimpl.UnsafeEnabled { 1980 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[18] 1981 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1982 ms.StoreMessageInfo(mi) 1983 } 1984} 1985 1986func (x *SignBlobRequest) String() string { 1987 return protoimpl.X.MessageStringOf(x) 1988} 1989 1990func (*SignBlobRequest) ProtoMessage() {} 1991 1992func (x *SignBlobRequest) ProtoReflect() protoreflect.Message { 1993 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[18] 1994 if protoimpl.UnsafeEnabled && x != nil { 1995 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1996 if ms.LoadMessageInfo() == nil { 1997 ms.StoreMessageInfo(mi) 1998 } 1999 return ms 2000 } 2001 return mi.MessageOf(x) 2002} 2003 2004// Deprecated: Use SignBlobRequest.ProtoReflect.Descriptor instead. 2005func (*SignBlobRequest) Descriptor() ([]byte, []int) { 2006 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{18} 2007} 2008 2009// Deprecated: Do not use. 2010func (x *SignBlobRequest) GetName() string { 2011 if x != nil { 2012 return x.Name 2013 } 2014 return "" 2015} 2016 2017// Deprecated: Do not use. 2018func (x *SignBlobRequest) GetBytesToSign() []byte { 2019 if x != nil { 2020 return x.BytesToSign 2021 } 2022 return nil 2023} 2024 2025// Deprecated. [Migrate to Service Account Credentials 2026// API](https://cloud.google.com/iam/help/credentials/migrate-api). 2027// 2028// The service account sign blob response. 2029type SignBlobResponse struct { 2030 state protoimpl.MessageState 2031 sizeCache protoimpl.SizeCache 2032 unknownFields protoimpl.UnknownFields 2033 2034 // Deprecated. [Migrate to Service Account Credentials 2035 // API](https://cloud.google.com/iam/help/credentials/migrate-api). 2036 // 2037 // The id of the key used to sign the blob. 2038 // 2039 // Deprecated: Do not use. 2040 KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` 2041 // Deprecated. [Migrate to Service Account Credentials 2042 // API](https://cloud.google.com/iam/help/credentials/migrate-api). 2043 // 2044 // The signed blob. 2045 // 2046 // Deprecated: Do not use. 2047 Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` 2048} 2049 2050func (x *SignBlobResponse) Reset() { 2051 *x = SignBlobResponse{} 2052 if protoimpl.UnsafeEnabled { 2053 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[19] 2054 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2055 ms.StoreMessageInfo(mi) 2056 } 2057} 2058 2059func (x *SignBlobResponse) String() string { 2060 return protoimpl.X.MessageStringOf(x) 2061} 2062 2063func (*SignBlobResponse) ProtoMessage() {} 2064 2065func (x *SignBlobResponse) ProtoReflect() protoreflect.Message { 2066 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[19] 2067 if protoimpl.UnsafeEnabled && x != nil { 2068 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2069 if ms.LoadMessageInfo() == nil { 2070 ms.StoreMessageInfo(mi) 2071 } 2072 return ms 2073 } 2074 return mi.MessageOf(x) 2075} 2076 2077// Deprecated: Use SignBlobResponse.ProtoReflect.Descriptor instead. 2078func (*SignBlobResponse) Descriptor() ([]byte, []int) { 2079 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{19} 2080} 2081 2082// Deprecated: Do not use. 2083func (x *SignBlobResponse) GetKeyId() string { 2084 if x != nil { 2085 return x.KeyId 2086 } 2087 return "" 2088} 2089 2090// Deprecated: Do not use. 2091func (x *SignBlobResponse) GetSignature() []byte { 2092 if x != nil { 2093 return x.Signature 2094 } 2095 return nil 2096} 2097 2098// Deprecated. [Migrate to Service Account Credentials 2099// API](https://cloud.google.com/iam/help/credentials/migrate-api). 2100// 2101// The service account sign JWT request. 2102type SignJwtRequest struct { 2103 state protoimpl.MessageState 2104 sizeCache protoimpl.SizeCache 2105 unknownFields protoimpl.UnknownFields 2106 2107 // Required. Deprecated. [Migrate to Service Account Credentials 2108 // API](https://cloud.google.com/iam/help/credentials/migrate-api). 2109 // 2110 // The resource name of the service account in the following format: 2111 // `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. 2112 // Using `-` as a wildcard for the `PROJECT_ID` will infer the project from 2113 // the account. The `ACCOUNT` value can be the `email` address or the 2114 // `unique_id` of the service account. 2115 // 2116 // Deprecated: Do not use. 2117 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2118 // Required. Deprecated. [Migrate to Service Account Credentials 2119 // API](https://cloud.google.com/iam/help/credentials/migrate-api). 2120 // 2121 // The JWT payload to sign. Must be a serialized JSON object that contains a 2122 // JWT Claims Set. For example: `{"sub": "user@example.com", "iat": 313435}` 2123 // 2124 // If the JWT Claims Set contains an expiration time (`exp`) claim, it must be 2125 // an integer timestamp that is not in the past and no more than 1 hour in the 2126 // future. 2127 // 2128 // If the JWT Claims Set does not contain an expiration time (`exp`) claim, 2129 // this claim is added automatically, with a timestamp that is 1 hour in the 2130 // future. 2131 // 2132 // Deprecated: Do not use. 2133 Payload string `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` 2134} 2135 2136func (x *SignJwtRequest) Reset() { 2137 *x = SignJwtRequest{} 2138 if protoimpl.UnsafeEnabled { 2139 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[20] 2140 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2141 ms.StoreMessageInfo(mi) 2142 } 2143} 2144 2145func (x *SignJwtRequest) String() string { 2146 return protoimpl.X.MessageStringOf(x) 2147} 2148 2149func (*SignJwtRequest) ProtoMessage() {} 2150 2151func (x *SignJwtRequest) ProtoReflect() protoreflect.Message { 2152 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[20] 2153 if protoimpl.UnsafeEnabled && x != nil { 2154 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2155 if ms.LoadMessageInfo() == nil { 2156 ms.StoreMessageInfo(mi) 2157 } 2158 return ms 2159 } 2160 return mi.MessageOf(x) 2161} 2162 2163// Deprecated: Use SignJwtRequest.ProtoReflect.Descriptor instead. 2164func (*SignJwtRequest) Descriptor() ([]byte, []int) { 2165 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{20} 2166} 2167 2168// Deprecated: Do not use. 2169func (x *SignJwtRequest) GetName() string { 2170 if x != nil { 2171 return x.Name 2172 } 2173 return "" 2174} 2175 2176// Deprecated: Do not use. 2177func (x *SignJwtRequest) GetPayload() string { 2178 if x != nil { 2179 return x.Payload 2180 } 2181 return "" 2182} 2183 2184// Deprecated. [Migrate to Service Account Credentials 2185// API](https://cloud.google.com/iam/help/credentials/migrate-api). 2186// 2187// The service account sign JWT response. 2188type SignJwtResponse struct { 2189 state protoimpl.MessageState 2190 sizeCache protoimpl.SizeCache 2191 unknownFields protoimpl.UnknownFields 2192 2193 // Deprecated. [Migrate to Service Account Credentials 2194 // API](https://cloud.google.com/iam/help/credentials/migrate-api). 2195 // 2196 // The id of the key used to sign the JWT. 2197 // 2198 // Deprecated: Do not use. 2199 KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` 2200 // Deprecated. [Migrate to Service Account Credentials 2201 // API](https://cloud.google.com/iam/help/credentials/migrate-api). 2202 // 2203 // The signed JWT. 2204 // 2205 // Deprecated: Do not use. 2206 SignedJwt string `protobuf:"bytes,2,opt,name=signed_jwt,json=signedJwt,proto3" json:"signed_jwt,omitempty"` 2207} 2208 2209func (x *SignJwtResponse) Reset() { 2210 *x = SignJwtResponse{} 2211 if protoimpl.UnsafeEnabled { 2212 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[21] 2213 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2214 ms.StoreMessageInfo(mi) 2215 } 2216} 2217 2218func (x *SignJwtResponse) String() string { 2219 return protoimpl.X.MessageStringOf(x) 2220} 2221 2222func (*SignJwtResponse) ProtoMessage() {} 2223 2224func (x *SignJwtResponse) ProtoReflect() protoreflect.Message { 2225 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[21] 2226 if protoimpl.UnsafeEnabled && x != nil { 2227 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2228 if ms.LoadMessageInfo() == nil { 2229 ms.StoreMessageInfo(mi) 2230 } 2231 return ms 2232 } 2233 return mi.MessageOf(x) 2234} 2235 2236// Deprecated: Use SignJwtResponse.ProtoReflect.Descriptor instead. 2237func (*SignJwtResponse) Descriptor() ([]byte, []int) { 2238 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{21} 2239} 2240 2241// Deprecated: Do not use. 2242func (x *SignJwtResponse) GetKeyId() string { 2243 if x != nil { 2244 return x.KeyId 2245 } 2246 return "" 2247} 2248 2249// Deprecated: Do not use. 2250func (x *SignJwtResponse) GetSignedJwt() string { 2251 if x != nil { 2252 return x.SignedJwt 2253 } 2254 return "" 2255} 2256 2257// A role in the Identity and Access Management API. 2258type Role struct { 2259 state protoimpl.MessageState 2260 sizeCache protoimpl.SizeCache 2261 unknownFields protoimpl.UnknownFields 2262 2263 // The name of the role. 2264 // 2265 // When Role is used in CreateRole, the role name must not be set. 2266 // 2267 // When Role is used in output and other input such as UpdateRole, the role 2268 // name is the complete path, e.g., roles/logging.viewer for predefined roles 2269 // and organizations/{ORGANIZATION_ID}/roles/logging.viewer for custom roles. 2270 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2271 // Optional. A human-readable title for the role. Typically this 2272 // is limited to 100 UTF-8 bytes. 2273 Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` 2274 // Optional. A human-readable description for the role. 2275 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 2276 // The names of the permissions this role grants when bound in an IAM policy. 2277 IncludedPermissions []string `protobuf:"bytes,7,rep,name=included_permissions,json=includedPermissions,proto3" json:"included_permissions,omitempty"` 2278 // The current launch stage of the role. If the `ALPHA` launch stage has been 2279 // selected for a role, the `stage` field will not be included in the 2280 // returned definition for the role. 2281 Stage Role_RoleLaunchStage `protobuf:"varint,8,opt,name=stage,proto3,enum=google.iam.admin.v1.Role_RoleLaunchStage" json:"stage,omitempty"` 2282 // Used to perform a consistent read-modify-write. 2283 Etag []byte `protobuf:"bytes,9,opt,name=etag,proto3" json:"etag,omitempty"` 2284 // The current deleted state of the role. This field is read only. 2285 // It will be ignored in calls to CreateRole and UpdateRole. 2286 Deleted bool `protobuf:"varint,11,opt,name=deleted,proto3" json:"deleted,omitempty"` 2287} 2288 2289func (x *Role) Reset() { 2290 *x = Role{} 2291 if protoimpl.UnsafeEnabled { 2292 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[22] 2293 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2294 ms.StoreMessageInfo(mi) 2295 } 2296} 2297 2298func (x *Role) String() string { 2299 return protoimpl.X.MessageStringOf(x) 2300} 2301 2302func (*Role) ProtoMessage() {} 2303 2304func (x *Role) ProtoReflect() protoreflect.Message { 2305 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[22] 2306 if protoimpl.UnsafeEnabled && x != nil { 2307 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2308 if ms.LoadMessageInfo() == nil { 2309 ms.StoreMessageInfo(mi) 2310 } 2311 return ms 2312 } 2313 return mi.MessageOf(x) 2314} 2315 2316// Deprecated: Use Role.ProtoReflect.Descriptor instead. 2317func (*Role) Descriptor() ([]byte, []int) { 2318 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{22} 2319} 2320 2321func (x *Role) GetName() string { 2322 if x != nil { 2323 return x.Name 2324 } 2325 return "" 2326} 2327 2328func (x *Role) GetTitle() string { 2329 if x != nil { 2330 return x.Title 2331 } 2332 return "" 2333} 2334 2335func (x *Role) GetDescription() string { 2336 if x != nil { 2337 return x.Description 2338 } 2339 return "" 2340} 2341 2342func (x *Role) GetIncludedPermissions() []string { 2343 if x != nil { 2344 return x.IncludedPermissions 2345 } 2346 return nil 2347} 2348 2349func (x *Role) GetStage() Role_RoleLaunchStage { 2350 if x != nil { 2351 return x.Stage 2352 } 2353 return Role_ALPHA 2354} 2355 2356func (x *Role) GetEtag() []byte { 2357 if x != nil { 2358 return x.Etag 2359 } 2360 return nil 2361} 2362 2363func (x *Role) GetDeleted() bool { 2364 if x != nil { 2365 return x.Deleted 2366 } 2367 return false 2368} 2369 2370// The grantable role query request. 2371type QueryGrantableRolesRequest struct { 2372 state protoimpl.MessageState 2373 sizeCache protoimpl.SizeCache 2374 unknownFields protoimpl.UnknownFields 2375 2376 // Required. The full resource name to query from the list of grantable roles. 2377 // 2378 // The name follows the Google Cloud Platform resource format. 2379 // For example, a Cloud Platform project with id `my-project` will be named 2380 // `//cloudresourcemanager.googleapis.com/projects/my-project`. 2381 FullResourceName string `protobuf:"bytes,1,opt,name=full_resource_name,json=fullResourceName,proto3" json:"full_resource_name,omitempty"` 2382 View RoleView `protobuf:"varint,2,opt,name=view,proto3,enum=google.iam.admin.v1.RoleView" json:"view,omitempty"` 2383 // Optional limit on the number of roles to include in the response. 2384 // 2385 // The default is 300, and the maximum is 1,000. 2386 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 2387 // Optional pagination token returned in an earlier 2388 // QueryGrantableRolesResponse. 2389 PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 2390} 2391 2392func (x *QueryGrantableRolesRequest) Reset() { 2393 *x = QueryGrantableRolesRequest{} 2394 if protoimpl.UnsafeEnabled { 2395 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[23] 2396 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2397 ms.StoreMessageInfo(mi) 2398 } 2399} 2400 2401func (x *QueryGrantableRolesRequest) String() string { 2402 return protoimpl.X.MessageStringOf(x) 2403} 2404 2405func (*QueryGrantableRolesRequest) ProtoMessage() {} 2406 2407func (x *QueryGrantableRolesRequest) ProtoReflect() protoreflect.Message { 2408 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[23] 2409 if protoimpl.UnsafeEnabled && x != nil { 2410 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2411 if ms.LoadMessageInfo() == nil { 2412 ms.StoreMessageInfo(mi) 2413 } 2414 return ms 2415 } 2416 return mi.MessageOf(x) 2417} 2418 2419// Deprecated: Use QueryGrantableRolesRequest.ProtoReflect.Descriptor instead. 2420func (*QueryGrantableRolesRequest) Descriptor() ([]byte, []int) { 2421 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{23} 2422} 2423 2424func (x *QueryGrantableRolesRequest) GetFullResourceName() string { 2425 if x != nil { 2426 return x.FullResourceName 2427 } 2428 return "" 2429} 2430 2431func (x *QueryGrantableRolesRequest) GetView() RoleView { 2432 if x != nil { 2433 return x.View 2434 } 2435 return RoleView_BASIC 2436} 2437 2438func (x *QueryGrantableRolesRequest) GetPageSize() int32 { 2439 if x != nil { 2440 return x.PageSize 2441 } 2442 return 0 2443} 2444 2445func (x *QueryGrantableRolesRequest) GetPageToken() string { 2446 if x != nil { 2447 return x.PageToken 2448 } 2449 return "" 2450} 2451 2452// The grantable role query response. 2453type QueryGrantableRolesResponse struct { 2454 state protoimpl.MessageState 2455 sizeCache protoimpl.SizeCache 2456 unknownFields protoimpl.UnknownFields 2457 2458 // The list of matching roles. 2459 Roles []*Role `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` 2460 // To retrieve the next page of results, set 2461 // `QueryGrantableRolesRequest.page_token` to this value. 2462 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 2463} 2464 2465func (x *QueryGrantableRolesResponse) Reset() { 2466 *x = QueryGrantableRolesResponse{} 2467 if protoimpl.UnsafeEnabled { 2468 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[24] 2469 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2470 ms.StoreMessageInfo(mi) 2471 } 2472} 2473 2474func (x *QueryGrantableRolesResponse) String() string { 2475 return protoimpl.X.MessageStringOf(x) 2476} 2477 2478func (*QueryGrantableRolesResponse) ProtoMessage() {} 2479 2480func (x *QueryGrantableRolesResponse) ProtoReflect() protoreflect.Message { 2481 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[24] 2482 if protoimpl.UnsafeEnabled && x != nil { 2483 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2484 if ms.LoadMessageInfo() == nil { 2485 ms.StoreMessageInfo(mi) 2486 } 2487 return ms 2488 } 2489 return mi.MessageOf(x) 2490} 2491 2492// Deprecated: Use QueryGrantableRolesResponse.ProtoReflect.Descriptor instead. 2493func (*QueryGrantableRolesResponse) Descriptor() ([]byte, []int) { 2494 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{24} 2495} 2496 2497func (x *QueryGrantableRolesResponse) GetRoles() []*Role { 2498 if x != nil { 2499 return x.Roles 2500 } 2501 return nil 2502} 2503 2504func (x *QueryGrantableRolesResponse) GetNextPageToken() string { 2505 if x != nil { 2506 return x.NextPageToken 2507 } 2508 return "" 2509} 2510 2511// The request to get all roles defined under a resource. 2512type ListRolesRequest struct { 2513 state protoimpl.MessageState 2514 sizeCache protoimpl.SizeCache 2515 unknownFields protoimpl.UnknownFields 2516 2517 // The `parent` parameter's value depends on the target resource for the 2518 // request, namely 2519 // [`roles`](/iam/reference/rest/v1/roles), 2520 // [`projects`](/iam/reference/rest/v1/projects.roles), or 2521 // [`organizations`](/iam/reference/rest/v1/organizations.roles). Each 2522 // resource type's `parent` value format is described below: 2523 // 2524 // * [`roles.list()`](/iam/reference/rest/v1/roles/list): An empty string. 2525 // This method doesn't require a resource; it simply returns all 2526 // [predefined roles](/iam/docs/understanding-roles#predefined_roles) in 2527 // Cloud IAM. Example request URL: 2528 // `https://iam.googleapis.com/v1/roles` 2529 // 2530 // * [`projects.roles.list()`](/iam/reference/rest/v1/projects.roles/list): 2531 // `projects/{PROJECT_ID}`. This method lists all project-level 2532 // [custom roles](/iam/docs/understanding-custom-roles). 2533 // Example request URL: 2534 // `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` 2535 // 2536 // * [`organizations.roles.list()`](/iam/reference/rest/v1/organizations.roles/list): 2537 // `organizations/{ORGANIZATION_ID}`. This method lists all 2538 // organization-level [custom roles](/iam/docs/understanding-custom-roles). 2539 // Example request URL: 2540 // `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` 2541 // 2542 // Note: Wildcard (*) values are invalid; you must specify a complete project 2543 // ID or organization ID. 2544 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 2545 // Optional limit on the number of roles to include in the response. 2546 // 2547 // The default is 300, and the maximum is 1,000. 2548 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 2549 // Optional pagination token returned in an earlier ListRolesResponse. 2550 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 2551 // Optional view for the returned Role objects. When `FULL` is specified, 2552 // the `includedPermissions` field is returned, which includes a list of all 2553 // permissions in the role. The default value is `BASIC`, which does not 2554 // return the `includedPermissions` field. 2555 View RoleView `protobuf:"varint,4,opt,name=view,proto3,enum=google.iam.admin.v1.RoleView" json:"view,omitempty"` 2556 // Include Roles that have been deleted. 2557 ShowDeleted bool `protobuf:"varint,6,opt,name=show_deleted,json=showDeleted,proto3" json:"show_deleted,omitempty"` 2558} 2559 2560func (x *ListRolesRequest) Reset() { 2561 *x = ListRolesRequest{} 2562 if protoimpl.UnsafeEnabled { 2563 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[25] 2564 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2565 ms.StoreMessageInfo(mi) 2566 } 2567} 2568 2569func (x *ListRolesRequest) String() string { 2570 return protoimpl.X.MessageStringOf(x) 2571} 2572 2573func (*ListRolesRequest) ProtoMessage() {} 2574 2575func (x *ListRolesRequest) ProtoReflect() protoreflect.Message { 2576 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[25] 2577 if protoimpl.UnsafeEnabled && x != nil { 2578 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2579 if ms.LoadMessageInfo() == nil { 2580 ms.StoreMessageInfo(mi) 2581 } 2582 return ms 2583 } 2584 return mi.MessageOf(x) 2585} 2586 2587// Deprecated: Use ListRolesRequest.ProtoReflect.Descriptor instead. 2588func (*ListRolesRequest) Descriptor() ([]byte, []int) { 2589 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{25} 2590} 2591 2592func (x *ListRolesRequest) GetParent() string { 2593 if x != nil { 2594 return x.Parent 2595 } 2596 return "" 2597} 2598 2599func (x *ListRolesRequest) GetPageSize() int32 { 2600 if x != nil { 2601 return x.PageSize 2602 } 2603 return 0 2604} 2605 2606func (x *ListRolesRequest) GetPageToken() string { 2607 if x != nil { 2608 return x.PageToken 2609 } 2610 return "" 2611} 2612 2613func (x *ListRolesRequest) GetView() RoleView { 2614 if x != nil { 2615 return x.View 2616 } 2617 return RoleView_BASIC 2618} 2619 2620func (x *ListRolesRequest) GetShowDeleted() bool { 2621 if x != nil { 2622 return x.ShowDeleted 2623 } 2624 return false 2625} 2626 2627// The response containing the roles defined under a resource. 2628type ListRolesResponse struct { 2629 state protoimpl.MessageState 2630 sizeCache protoimpl.SizeCache 2631 unknownFields protoimpl.UnknownFields 2632 2633 // The Roles defined on this resource. 2634 Roles []*Role `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` 2635 // To retrieve the next page of results, set 2636 // `ListRolesRequest.page_token` to this value. 2637 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 2638} 2639 2640func (x *ListRolesResponse) Reset() { 2641 *x = ListRolesResponse{} 2642 if protoimpl.UnsafeEnabled { 2643 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[26] 2644 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2645 ms.StoreMessageInfo(mi) 2646 } 2647} 2648 2649func (x *ListRolesResponse) String() string { 2650 return protoimpl.X.MessageStringOf(x) 2651} 2652 2653func (*ListRolesResponse) ProtoMessage() {} 2654 2655func (x *ListRolesResponse) ProtoReflect() protoreflect.Message { 2656 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[26] 2657 if protoimpl.UnsafeEnabled && x != nil { 2658 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2659 if ms.LoadMessageInfo() == nil { 2660 ms.StoreMessageInfo(mi) 2661 } 2662 return ms 2663 } 2664 return mi.MessageOf(x) 2665} 2666 2667// Deprecated: Use ListRolesResponse.ProtoReflect.Descriptor instead. 2668func (*ListRolesResponse) Descriptor() ([]byte, []int) { 2669 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{26} 2670} 2671 2672func (x *ListRolesResponse) GetRoles() []*Role { 2673 if x != nil { 2674 return x.Roles 2675 } 2676 return nil 2677} 2678 2679func (x *ListRolesResponse) GetNextPageToken() string { 2680 if x != nil { 2681 return x.NextPageToken 2682 } 2683 return "" 2684} 2685 2686// The request to get the definition of an existing role. 2687type GetRoleRequest struct { 2688 state protoimpl.MessageState 2689 sizeCache protoimpl.SizeCache 2690 unknownFields protoimpl.UnknownFields 2691 2692 // The `name` parameter's value depends on the target resource for the 2693 // request, namely 2694 // [`roles`](/iam/reference/rest/v1/roles), 2695 // [`projects`](/iam/reference/rest/v1/projects.roles), or 2696 // [`organizations`](/iam/reference/rest/v1/organizations.roles). Each 2697 // resource type's `name` value format is described below: 2698 // 2699 // * [`roles.get()`](/iam/reference/rest/v1/roles/get): `roles/{ROLE_NAME}`. 2700 // This method returns results from all 2701 // [predefined roles](/iam/docs/understanding-roles#predefined_roles) in 2702 // Cloud IAM. Example request URL: 2703 // `https://iam.googleapis.com/v1/roles/{ROLE_NAME}` 2704 // 2705 // * [`projects.roles.get()`](/iam/reference/rest/v1/projects.roles/get): 2706 // `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method returns only 2707 // [custom roles](/iam/docs/understanding-custom-roles) that have been 2708 // created at the project level. Example request URL: 2709 // `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` 2710 // 2711 // * [`organizations.roles.get()`](/iam/reference/rest/v1/organizations.roles/get): 2712 // `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method 2713 // returns only [custom roles](/iam/docs/understanding-custom-roles) that 2714 // have been created at the organization level. Example request URL: 2715 // `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` 2716 // 2717 // Note: Wildcard (*) values are invalid; you must specify a complete project 2718 // ID or organization ID. 2719 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2720} 2721 2722func (x *GetRoleRequest) Reset() { 2723 *x = GetRoleRequest{} 2724 if protoimpl.UnsafeEnabled { 2725 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[27] 2726 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2727 ms.StoreMessageInfo(mi) 2728 } 2729} 2730 2731func (x *GetRoleRequest) String() string { 2732 return protoimpl.X.MessageStringOf(x) 2733} 2734 2735func (*GetRoleRequest) ProtoMessage() {} 2736 2737func (x *GetRoleRequest) ProtoReflect() protoreflect.Message { 2738 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[27] 2739 if protoimpl.UnsafeEnabled && x != nil { 2740 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2741 if ms.LoadMessageInfo() == nil { 2742 ms.StoreMessageInfo(mi) 2743 } 2744 return ms 2745 } 2746 return mi.MessageOf(x) 2747} 2748 2749// Deprecated: Use GetRoleRequest.ProtoReflect.Descriptor instead. 2750func (*GetRoleRequest) Descriptor() ([]byte, []int) { 2751 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{27} 2752} 2753 2754func (x *GetRoleRequest) GetName() string { 2755 if x != nil { 2756 return x.Name 2757 } 2758 return "" 2759} 2760 2761// The request to create a new role. 2762type CreateRoleRequest struct { 2763 state protoimpl.MessageState 2764 sizeCache protoimpl.SizeCache 2765 unknownFields protoimpl.UnknownFields 2766 2767 // The `parent` parameter's value depends on the target resource for the 2768 // request, namely 2769 // [`projects`](/iam/reference/rest/v1/projects.roles) or 2770 // [`organizations`](/iam/reference/rest/v1/organizations.roles). Each 2771 // resource type's `parent` value format is described below: 2772 // 2773 // * [`projects.roles.create()`](/iam/reference/rest/v1/projects.roles/create): 2774 // `projects/{PROJECT_ID}`. This method creates project-level 2775 // [custom roles](/iam/docs/understanding-custom-roles). 2776 // Example request URL: 2777 // `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles` 2778 // 2779 // * [`organizations.roles.create()`](/iam/reference/rest/v1/organizations.roles/create): 2780 // `organizations/{ORGANIZATION_ID}`. This method creates organization-level 2781 // [custom roles](/iam/docs/understanding-custom-roles). Example request 2782 // URL: 2783 // `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles` 2784 // 2785 // Note: Wildcard (*) values are invalid; you must specify a complete project 2786 // ID or organization ID. 2787 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 2788 // The role ID to use for this role. 2789 // 2790 // A role ID may contain alphanumeric characters, underscores (`_`), and 2791 // periods (`.`). It must contain a minimum of 3 characters and a maximum of 2792 // 64 characters. 2793 RoleId string `protobuf:"bytes,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"` 2794 // The Role resource to create. 2795 Role *Role `protobuf:"bytes,3,opt,name=role,proto3" json:"role,omitempty"` 2796} 2797 2798func (x *CreateRoleRequest) Reset() { 2799 *x = CreateRoleRequest{} 2800 if protoimpl.UnsafeEnabled { 2801 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[28] 2802 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2803 ms.StoreMessageInfo(mi) 2804 } 2805} 2806 2807func (x *CreateRoleRequest) String() string { 2808 return protoimpl.X.MessageStringOf(x) 2809} 2810 2811func (*CreateRoleRequest) ProtoMessage() {} 2812 2813func (x *CreateRoleRequest) ProtoReflect() protoreflect.Message { 2814 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[28] 2815 if protoimpl.UnsafeEnabled && x != nil { 2816 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2817 if ms.LoadMessageInfo() == nil { 2818 ms.StoreMessageInfo(mi) 2819 } 2820 return ms 2821 } 2822 return mi.MessageOf(x) 2823} 2824 2825// Deprecated: Use CreateRoleRequest.ProtoReflect.Descriptor instead. 2826func (*CreateRoleRequest) Descriptor() ([]byte, []int) { 2827 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{28} 2828} 2829 2830func (x *CreateRoleRequest) GetParent() string { 2831 if x != nil { 2832 return x.Parent 2833 } 2834 return "" 2835} 2836 2837func (x *CreateRoleRequest) GetRoleId() string { 2838 if x != nil { 2839 return x.RoleId 2840 } 2841 return "" 2842} 2843 2844func (x *CreateRoleRequest) GetRole() *Role { 2845 if x != nil { 2846 return x.Role 2847 } 2848 return nil 2849} 2850 2851// The request to update a role. 2852type UpdateRoleRequest struct { 2853 state protoimpl.MessageState 2854 sizeCache protoimpl.SizeCache 2855 unknownFields protoimpl.UnknownFields 2856 2857 // The `name` parameter's value depends on the target resource for the 2858 // request, namely 2859 // [`projects`](/iam/reference/rest/v1/projects.roles) or 2860 // [`organizations`](/iam/reference/rest/v1/organizations.roles). Each 2861 // resource type's `name` value format is described below: 2862 // 2863 // * [`projects.roles.patch()`](/iam/reference/rest/v1/projects.roles/patch): 2864 // `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method updates only 2865 // [custom roles](/iam/docs/understanding-custom-roles) that have been 2866 // created at the project level. Example request URL: 2867 // `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` 2868 // 2869 // * [`organizations.roles.patch()`](/iam/reference/rest/v1/organizations.roles/patch): 2870 // `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method 2871 // updates only [custom roles](/iam/docs/understanding-custom-roles) that 2872 // have been created at the organization level. Example request URL: 2873 // `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` 2874 // 2875 // Note: Wildcard (*) values are invalid; you must specify a complete project 2876 // ID or organization ID. 2877 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2878 // The updated role. 2879 Role *Role `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` 2880 // A mask describing which fields in the Role have changed. 2881 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 2882} 2883 2884func (x *UpdateRoleRequest) Reset() { 2885 *x = UpdateRoleRequest{} 2886 if protoimpl.UnsafeEnabled { 2887 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[29] 2888 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2889 ms.StoreMessageInfo(mi) 2890 } 2891} 2892 2893func (x *UpdateRoleRequest) String() string { 2894 return protoimpl.X.MessageStringOf(x) 2895} 2896 2897func (*UpdateRoleRequest) ProtoMessage() {} 2898 2899func (x *UpdateRoleRequest) ProtoReflect() protoreflect.Message { 2900 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[29] 2901 if protoimpl.UnsafeEnabled && x != nil { 2902 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2903 if ms.LoadMessageInfo() == nil { 2904 ms.StoreMessageInfo(mi) 2905 } 2906 return ms 2907 } 2908 return mi.MessageOf(x) 2909} 2910 2911// Deprecated: Use UpdateRoleRequest.ProtoReflect.Descriptor instead. 2912func (*UpdateRoleRequest) Descriptor() ([]byte, []int) { 2913 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{29} 2914} 2915 2916func (x *UpdateRoleRequest) GetName() string { 2917 if x != nil { 2918 return x.Name 2919 } 2920 return "" 2921} 2922 2923func (x *UpdateRoleRequest) GetRole() *Role { 2924 if x != nil { 2925 return x.Role 2926 } 2927 return nil 2928} 2929 2930func (x *UpdateRoleRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 2931 if x != nil { 2932 return x.UpdateMask 2933 } 2934 return nil 2935} 2936 2937// The request to delete an existing role. 2938type DeleteRoleRequest struct { 2939 state protoimpl.MessageState 2940 sizeCache protoimpl.SizeCache 2941 unknownFields protoimpl.UnknownFields 2942 2943 // The `name` parameter's value depends on the target resource for the 2944 // request, namely 2945 // [`projects`](/iam/reference/rest/v1/projects.roles) or 2946 // [`organizations`](/iam/reference/rest/v1/organizations.roles). Each 2947 // resource type's `name` value format is described below: 2948 // 2949 // * [`projects.roles.delete()`](/iam/reference/rest/v1/projects.roles/delete): 2950 // `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method deletes only 2951 // [custom roles](/iam/docs/understanding-custom-roles) that have been 2952 // created at the project level. Example request URL: 2953 // `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` 2954 // 2955 // * [`organizations.roles.delete()`](/iam/reference/rest/v1/organizations.roles/delete): 2956 // `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method 2957 // deletes only [custom roles](/iam/docs/understanding-custom-roles) that 2958 // have been created at the organization level. Example request URL: 2959 // `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` 2960 // 2961 // Note: Wildcard (*) values are invalid; you must specify a complete project 2962 // ID or organization ID. 2963 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2964 // Used to perform a consistent read-modify-write. 2965 Etag []byte `protobuf:"bytes,2,opt,name=etag,proto3" json:"etag,omitempty"` 2966} 2967 2968func (x *DeleteRoleRequest) Reset() { 2969 *x = DeleteRoleRequest{} 2970 if protoimpl.UnsafeEnabled { 2971 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[30] 2972 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2973 ms.StoreMessageInfo(mi) 2974 } 2975} 2976 2977func (x *DeleteRoleRequest) String() string { 2978 return protoimpl.X.MessageStringOf(x) 2979} 2980 2981func (*DeleteRoleRequest) ProtoMessage() {} 2982 2983func (x *DeleteRoleRequest) ProtoReflect() protoreflect.Message { 2984 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[30] 2985 if protoimpl.UnsafeEnabled && x != nil { 2986 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2987 if ms.LoadMessageInfo() == nil { 2988 ms.StoreMessageInfo(mi) 2989 } 2990 return ms 2991 } 2992 return mi.MessageOf(x) 2993} 2994 2995// Deprecated: Use DeleteRoleRequest.ProtoReflect.Descriptor instead. 2996func (*DeleteRoleRequest) Descriptor() ([]byte, []int) { 2997 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{30} 2998} 2999 3000func (x *DeleteRoleRequest) GetName() string { 3001 if x != nil { 3002 return x.Name 3003 } 3004 return "" 3005} 3006 3007func (x *DeleteRoleRequest) GetEtag() []byte { 3008 if x != nil { 3009 return x.Etag 3010 } 3011 return nil 3012} 3013 3014// The request to undelete an existing role. 3015type UndeleteRoleRequest struct { 3016 state protoimpl.MessageState 3017 sizeCache protoimpl.SizeCache 3018 unknownFields protoimpl.UnknownFields 3019 3020 // The `name` parameter's value depends on the target resource for the 3021 // request, namely 3022 // [`projects`](/iam/reference/rest/v1/projects.roles) or 3023 // [`organizations`](/iam/reference/rest/v1/organizations.roles). Each 3024 // resource type's `name` value format is described below: 3025 // 3026 // * [`projects.roles.undelete()`](/iam/reference/rest/v1/projects.roles/undelete): 3027 // `projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}`. This method undeletes 3028 // only [custom roles](/iam/docs/understanding-custom-roles) that have been 3029 // created at the project level. Example request URL: 3030 // `https://iam.googleapis.com/v1/projects/{PROJECT_ID}/roles/{CUSTOM_ROLE_ID}` 3031 // 3032 // * [`organizations.roles.undelete()`](/iam/reference/rest/v1/organizations.roles/undelete): 3033 // `organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}`. This method 3034 // undeletes only [custom roles](/iam/docs/understanding-custom-roles) that 3035 // have been created at the organization level. Example request URL: 3036 // `https://iam.googleapis.com/v1/organizations/{ORGANIZATION_ID}/roles/{CUSTOM_ROLE_ID}` 3037 // 3038 // Note: Wildcard (*) values are invalid; you must specify a complete project 3039 // ID or organization ID. 3040 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 3041 // Used to perform a consistent read-modify-write. 3042 Etag []byte `protobuf:"bytes,2,opt,name=etag,proto3" json:"etag,omitempty"` 3043} 3044 3045func (x *UndeleteRoleRequest) Reset() { 3046 *x = UndeleteRoleRequest{} 3047 if protoimpl.UnsafeEnabled { 3048 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[31] 3049 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3050 ms.StoreMessageInfo(mi) 3051 } 3052} 3053 3054func (x *UndeleteRoleRequest) String() string { 3055 return protoimpl.X.MessageStringOf(x) 3056} 3057 3058func (*UndeleteRoleRequest) ProtoMessage() {} 3059 3060func (x *UndeleteRoleRequest) ProtoReflect() protoreflect.Message { 3061 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[31] 3062 if protoimpl.UnsafeEnabled && x != nil { 3063 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3064 if ms.LoadMessageInfo() == nil { 3065 ms.StoreMessageInfo(mi) 3066 } 3067 return ms 3068 } 3069 return mi.MessageOf(x) 3070} 3071 3072// Deprecated: Use UndeleteRoleRequest.ProtoReflect.Descriptor instead. 3073func (*UndeleteRoleRequest) Descriptor() ([]byte, []int) { 3074 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{31} 3075} 3076 3077func (x *UndeleteRoleRequest) GetName() string { 3078 if x != nil { 3079 return x.Name 3080 } 3081 return "" 3082} 3083 3084func (x *UndeleteRoleRequest) GetEtag() []byte { 3085 if x != nil { 3086 return x.Etag 3087 } 3088 return nil 3089} 3090 3091// A permission which can be included by a role. 3092type Permission struct { 3093 state protoimpl.MessageState 3094 sizeCache protoimpl.SizeCache 3095 unknownFields protoimpl.UnknownFields 3096 3097 // The name of this Permission. 3098 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 3099 // The title of this Permission. 3100 Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` 3101 // A brief description of what this Permission is used for. 3102 // This permission can ONLY be used in predefined roles. 3103 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 3104 // Deprecated: Do not use. 3105 OnlyInPredefinedRoles bool `protobuf:"varint,4,opt,name=only_in_predefined_roles,json=onlyInPredefinedRoles,proto3" json:"only_in_predefined_roles,omitempty"` 3106 // The current launch stage of the permission. 3107 Stage Permission_PermissionLaunchStage `protobuf:"varint,5,opt,name=stage,proto3,enum=google.iam.admin.v1.Permission_PermissionLaunchStage" json:"stage,omitempty"` 3108 // The current custom role support level. 3109 CustomRolesSupportLevel Permission_CustomRolesSupportLevel `protobuf:"varint,6,opt,name=custom_roles_support_level,json=customRolesSupportLevel,proto3,enum=google.iam.admin.v1.Permission_CustomRolesSupportLevel" json:"custom_roles_support_level,omitempty"` 3110 // The service API associated with the permission is not enabled. 3111 ApiDisabled bool `protobuf:"varint,7,opt,name=api_disabled,json=apiDisabled,proto3" json:"api_disabled,omitempty"` 3112 // The preferred name for this permission. If present, then this permission is 3113 // an alias of, and equivalent to, the listed primary_permission. 3114 PrimaryPermission string `protobuf:"bytes,8,opt,name=primary_permission,json=primaryPermission,proto3" json:"primary_permission,omitempty"` 3115} 3116 3117func (x *Permission) Reset() { 3118 *x = Permission{} 3119 if protoimpl.UnsafeEnabled { 3120 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[32] 3121 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3122 ms.StoreMessageInfo(mi) 3123 } 3124} 3125 3126func (x *Permission) String() string { 3127 return protoimpl.X.MessageStringOf(x) 3128} 3129 3130func (*Permission) ProtoMessage() {} 3131 3132func (x *Permission) ProtoReflect() protoreflect.Message { 3133 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[32] 3134 if protoimpl.UnsafeEnabled && x != nil { 3135 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3136 if ms.LoadMessageInfo() == nil { 3137 ms.StoreMessageInfo(mi) 3138 } 3139 return ms 3140 } 3141 return mi.MessageOf(x) 3142} 3143 3144// Deprecated: Use Permission.ProtoReflect.Descriptor instead. 3145func (*Permission) Descriptor() ([]byte, []int) { 3146 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{32} 3147} 3148 3149func (x *Permission) GetName() string { 3150 if x != nil { 3151 return x.Name 3152 } 3153 return "" 3154} 3155 3156func (x *Permission) GetTitle() string { 3157 if x != nil { 3158 return x.Title 3159 } 3160 return "" 3161} 3162 3163func (x *Permission) GetDescription() string { 3164 if x != nil { 3165 return x.Description 3166 } 3167 return "" 3168} 3169 3170// Deprecated: Do not use. 3171func (x *Permission) GetOnlyInPredefinedRoles() bool { 3172 if x != nil { 3173 return x.OnlyInPredefinedRoles 3174 } 3175 return false 3176} 3177 3178func (x *Permission) GetStage() Permission_PermissionLaunchStage { 3179 if x != nil { 3180 return x.Stage 3181 } 3182 return Permission_ALPHA 3183} 3184 3185func (x *Permission) GetCustomRolesSupportLevel() Permission_CustomRolesSupportLevel { 3186 if x != nil { 3187 return x.CustomRolesSupportLevel 3188 } 3189 return Permission_SUPPORTED 3190} 3191 3192func (x *Permission) GetApiDisabled() bool { 3193 if x != nil { 3194 return x.ApiDisabled 3195 } 3196 return false 3197} 3198 3199func (x *Permission) GetPrimaryPermission() string { 3200 if x != nil { 3201 return x.PrimaryPermission 3202 } 3203 return "" 3204} 3205 3206// A request to get permissions which can be tested on a resource. 3207type QueryTestablePermissionsRequest struct { 3208 state protoimpl.MessageState 3209 sizeCache protoimpl.SizeCache 3210 unknownFields protoimpl.UnknownFields 3211 3212 // Required. The full resource name to query from the list of testable 3213 // permissions. 3214 // 3215 // The name follows the Google Cloud Platform resource format. 3216 // For example, a Cloud Platform project with id `my-project` will be named 3217 // `//cloudresourcemanager.googleapis.com/projects/my-project`. 3218 FullResourceName string `protobuf:"bytes,1,opt,name=full_resource_name,json=fullResourceName,proto3" json:"full_resource_name,omitempty"` 3219 // Optional limit on the number of permissions to include in the response. 3220 // 3221 // The default is 100, and the maximum is 1,000. 3222 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 3223 // Optional pagination token returned in an earlier 3224 // QueryTestablePermissionsRequest. 3225 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 3226} 3227 3228func (x *QueryTestablePermissionsRequest) Reset() { 3229 *x = QueryTestablePermissionsRequest{} 3230 if protoimpl.UnsafeEnabled { 3231 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[33] 3232 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3233 ms.StoreMessageInfo(mi) 3234 } 3235} 3236 3237func (x *QueryTestablePermissionsRequest) String() string { 3238 return protoimpl.X.MessageStringOf(x) 3239} 3240 3241func (*QueryTestablePermissionsRequest) ProtoMessage() {} 3242 3243func (x *QueryTestablePermissionsRequest) ProtoReflect() protoreflect.Message { 3244 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[33] 3245 if protoimpl.UnsafeEnabled && x != nil { 3246 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3247 if ms.LoadMessageInfo() == nil { 3248 ms.StoreMessageInfo(mi) 3249 } 3250 return ms 3251 } 3252 return mi.MessageOf(x) 3253} 3254 3255// Deprecated: Use QueryTestablePermissionsRequest.ProtoReflect.Descriptor instead. 3256func (*QueryTestablePermissionsRequest) Descriptor() ([]byte, []int) { 3257 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{33} 3258} 3259 3260func (x *QueryTestablePermissionsRequest) GetFullResourceName() string { 3261 if x != nil { 3262 return x.FullResourceName 3263 } 3264 return "" 3265} 3266 3267func (x *QueryTestablePermissionsRequest) GetPageSize() int32 { 3268 if x != nil { 3269 return x.PageSize 3270 } 3271 return 0 3272} 3273 3274func (x *QueryTestablePermissionsRequest) GetPageToken() string { 3275 if x != nil { 3276 return x.PageToken 3277 } 3278 return "" 3279} 3280 3281// The response containing permissions which can be tested on a resource. 3282type QueryTestablePermissionsResponse struct { 3283 state protoimpl.MessageState 3284 sizeCache protoimpl.SizeCache 3285 unknownFields protoimpl.UnknownFields 3286 3287 // The Permissions testable on the requested resource. 3288 Permissions []*Permission `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty"` 3289 // To retrieve the next page of results, set 3290 // `QueryTestableRolesRequest.page_token` to this value. 3291 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 3292} 3293 3294func (x *QueryTestablePermissionsResponse) Reset() { 3295 *x = QueryTestablePermissionsResponse{} 3296 if protoimpl.UnsafeEnabled { 3297 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[34] 3298 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3299 ms.StoreMessageInfo(mi) 3300 } 3301} 3302 3303func (x *QueryTestablePermissionsResponse) String() string { 3304 return protoimpl.X.MessageStringOf(x) 3305} 3306 3307func (*QueryTestablePermissionsResponse) ProtoMessage() {} 3308 3309func (x *QueryTestablePermissionsResponse) ProtoReflect() protoreflect.Message { 3310 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[34] 3311 if protoimpl.UnsafeEnabled && x != nil { 3312 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3313 if ms.LoadMessageInfo() == nil { 3314 ms.StoreMessageInfo(mi) 3315 } 3316 return ms 3317 } 3318 return mi.MessageOf(x) 3319} 3320 3321// Deprecated: Use QueryTestablePermissionsResponse.ProtoReflect.Descriptor instead. 3322func (*QueryTestablePermissionsResponse) Descriptor() ([]byte, []int) { 3323 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{34} 3324} 3325 3326func (x *QueryTestablePermissionsResponse) GetPermissions() []*Permission { 3327 if x != nil { 3328 return x.Permissions 3329 } 3330 return nil 3331} 3332 3333func (x *QueryTestablePermissionsResponse) GetNextPageToken() string { 3334 if x != nil { 3335 return x.NextPageToken 3336 } 3337 return "" 3338} 3339 3340// A request to get the list of auditable services for a resource. 3341type QueryAuditableServicesRequest struct { 3342 state protoimpl.MessageState 3343 sizeCache protoimpl.SizeCache 3344 unknownFields protoimpl.UnknownFields 3345 3346 // Required. The full resource name to query from the list of auditable 3347 // services. 3348 // 3349 // The name follows the Google Cloud Platform resource format. 3350 // For example, a Cloud Platform project with id `my-project` will be named 3351 // `//cloudresourcemanager.googleapis.com/projects/my-project`. 3352 FullResourceName string `protobuf:"bytes,1,opt,name=full_resource_name,json=fullResourceName,proto3" json:"full_resource_name,omitempty"` 3353} 3354 3355func (x *QueryAuditableServicesRequest) Reset() { 3356 *x = QueryAuditableServicesRequest{} 3357 if protoimpl.UnsafeEnabled { 3358 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[35] 3359 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3360 ms.StoreMessageInfo(mi) 3361 } 3362} 3363 3364func (x *QueryAuditableServicesRequest) String() string { 3365 return protoimpl.X.MessageStringOf(x) 3366} 3367 3368func (*QueryAuditableServicesRequest) ProtoMessage() {} 3369 3370func (x *QueryAuditableServicesRequest) ProtoReflect() protoreflect.Message { 3371 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[35] 3372 if protoimpl.UnsafeEnabled && x != nil { 3373 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3374 if ms.LoadMessageInfo() == nil { 3375 ms.StoreMessageInfo(mi) 3376 } 3377 return ms 3378 } 3379 return mi.MessageOf(x) 3380} 3381 3382// Deprecated: Use QueryAuditableServicesRequest.ProtoReflect.Descriptor instead. 3383func (*QueryAuditableServicesRequest) Descriptor() ([]byte, []int) { 3384 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{35} 3385} 3386 3387func (x *QueryAuditableServicesRequest) GetFullResourceName() string { 3388 if x != nil { 3389 return x.FullResourceName 3390 } 3391 return "" 3392} 3393 3394// A response containing a list of auditable services for a resource. 3395type QueryAuditableServicesResponse struct { 3396 state protoimpl.MessageState 3397 sizeCache protoimpl.SizeCache 3398 unknownFields protoimpl.UnknownFields 3399 3400 // The auditable services for a resource. 3401 Services []*QueryAuditableServicesResponse_AuditableService `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"` 3402} 3403 3404func (x *QueryAuditableServicesResponse) Reset() { 3405 *x = QueryAuditableServicesResponse{} 3406 if protoimpl.UnsafeEnabled { 3407 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[36] 3408 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3409 ms.StoreMessageInfo(mi) 3410 } 3411} 3412 3413func (x *QueryAuditableServicesResponse) String() string { 3414 return protoimpl.X.MessageStringOf(x) 3415} 3416 3417func (*QueryAuditableServicesResponse) ProtoMessage() {} 3418 3419func (x *QueryAuditableServicesResponse) ProtoReflect() protoreflect.Message { 3420 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[36] 3421 if protoimpl.UnsafeEnabled && x != nil { 3422 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3423 if ms.LoadMessageInfo() == nil { 3424 ms.StoreMessageInfo(mi) 3425 } 3426 return ms 3427 } 3428 return mi.MessageOf(x) 3429} 3430 3431// Deprecated: Use QueryAuditableServicesResponse.ProtoReflect.Descriptor instead. 3432func (*QueryAuditableServicesResponse) Descriptor() ([]byte, []int) { 3433 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{36} 3434} 3435 3436func (x *QueryAuditableServicesResponse) GetServices() []*QueryAuditableServicesResponse_AuditableService { 3437 if x != nil { 3438 return x.Services 3439 } 3440 return nil 3441} 3442 3443// The request to lint a Cloud IAM policy object. 3444type LintPolicyRequest struct { 3445 state protoimpl.MessageState 3446 sizeCache protoimpl.SizeCache 3447 unknownFields protoimpl.UnknownFields 3448 3449 // The full resource name of the policy this lint request is about. 3450 // 3451 // The name follows the Google Cloud Platform (GCP) resource format. 3452 // For example, a GCP project with ID `my-project` will be named 3453 // `//cloudresourcemanager.googleapis.com/projects/my-project`. 3454 // 3455 // The resource name is not used to read the policy instance from the Cloud 3456 // IAM database. The candidate policy for lint has to be provided in the same 3457 // request object. 3458 FullResourceName string `protobuf:"bytes,1,opt,name=full_resource_name,json=fullResourceName,proto3" json:"full_resource_name,omitempty"` 3459 // Required. The Cloud IAM object to be linted. 3460 // 3461 // Types that are assignable to LintObject: 3462 // *LintPolicyRequest_Condition 3463 LintObject isLintPolicyRequest_LintObject `protobuf_oneof:"lint_object"` 3464} 3465 3466func (x *LintPolicyRequest) Reset() { 3467 *x = LintPolicyRequest{} 3468 if protoimpl.UnsafeEnabled { 3469 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[37] 3470 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3471 ms.StoreMessageInfo(mi) 3472 } 3473} 3474 3475func (x *LintPolicyRequest) String() string { 3476 return protoimpl.X.MessageStringOf(x) 3477} 3478 3479func (*LintPolicyRequest) ProtoMessage() {} 3480 3481func (x *LintPolicyRequest) ProtoReflect() protoreflect.Message { 3482 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[37] 3483 if protoimpl.UnsafeEnabled && x != nil { 3484 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3485 if ms.LoadMessageInfo() == nil { 3486 ms.StoreMessageInfo(mi) 3487 } 3488 return ms 3489 } 3490 return mi.MessageOf(x) 3491} 3492 3493// Deprecated: Use LintPolicyRequest.ProtoReflect.Descriptor instead. 3494func (*LintPolicyRequest) Descriptor() ([]byte, []int) { 3495 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{37} 3496} 3497 3498func (x *LintPolicyRequest) GetFullResourceName() string { 3499 if x != nil { 3500 return x.FullResourceName 3501 } 3502 return "" 3503} 3504 3505func (m *LintPolicyRequest) GetLintObject() isLintPolicyRequest_LintObject { 3506 if m != nil { 3507 return m.LintObject 3508 } 3509 return nil 3510} 3511 3512func (x *LintPolicyRequest) GetCondition() *expr.Expr { 3513 if x, ok := x.GetLintObject().(*LintPolicyRequest_Condition); ok { 3514 return x.Condition 3515 } 3516 return nil 3517} 3518 3519type isLintPolicyRequest_LintObject interface { 3520 isLintPolicyRequest_LintObject() 3521} 3522 3523type LintPolicyRequest_Condition struct { 3524 // [google.iam.v1.Binding.condition] [google.iam.v1.Binding.condition] object to be linted. 3525 Condition *expr.Expr `protobuf:"bytes,5,opt,name=condition,proto3,oneof"` 3526} 3527 3528func (*LintPolicyRequest_Condition) isLintPolicyRequest_LintObject() {} 3529 3530// Structured response of a single validation unit. 3531type LintResult struct { 3532 state protoimpl.MessageState 3533 sizeCache protoimpl.SizeCache 3534 unknownFields protoimpl.UnknownFields 3535 3536 // The validation unit level. 3537 Level LintResult_Level `protobuf:"varint,1,opt,name=level,proto3,enum=google.iam.admin.v1.LintResult_Level" json:"level,omitempty"` 3538 // The validation unit name, for instance 3539 // "lintValidationUnits/ConditionComplexityCheck". 3540 ValidationUnitName string `protobuf:"bytes,2,opt,name=validation_unit_name,json=validationUnitName,proto3" json:"validation_unit_name,omitempty"` 3541 // The validation unit severity. 3542 Severity LintResult_Severity `protobuf:"varint,3,opt,name=severity,proto3,enum=google.iam.admin.v1.LintResult_Severity" json:"severity,omitempty"` 3543 // The name of the field for which this lint result is about. 3544 // 3545 // For nested messages `field_name` consists of names of the embedded fields 3546 // separated by period character. The top-level qualifier is the input object 3547 // to lint in the request. For example, the `field_name` value 3548 // `condition.expression` identifies a lint result for the `expression` field 3549 // of the provided condition. 3550 FieldName string `protobuf:"bytes,5,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` 3551 // 0-based character position of problematic construct within the object 3552 // identified by `field_name`. Currently, this is populated only for condition 3553 // expression. 3554 LocationOffset int32 `protobuf:"varint,6,opt,name=location_offset,json=locationOffset,proto3" json:"location_offset,omitempty"` 3555 // Human readable debug message associated with the issue. 3556 DebugMessage string `protobuf:"bytes,7,opt,name=debug_message,json=debugMessage,proto3" json:"debug_message,omitempty"` 3557} 3558 3559func (x *LintResult) Reset() { 3560 *x = LintResult{} 3561 if protoimpl.UnsafeEnabled { 3562 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[38] 3563 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3564 ms.StoreMessageInfo(mi) 3565 } 3566} 3567 3568func (x *LintResult) String() string { 3569 return protoimpl.X.MessageStringOf(x) 3570} 3571 3572func (*LintResult) ProtoMessage() {} 3573 3574func (x *LintResult) ProtoReflect() protoreflect.Message { 3575 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[38] 3576 if protoimpl.UnsafeEnabled && x != nil { 3577 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3578 if ms.LoadMessageInfo() == nil { 3579 ms.StoreMessageInfo(mi) 3580 } 3581 return ms 3582 } 3583 return mi.MessageOf(x) 3584} 3585 3586// Deprecated: Use LintResult.ProtoReflect.Descriptor instead. 3587func (*LintResult) Descriptor() ([]byte, []int) { 3588 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{38} 3589} 3590 3591func (x *LintResult) GetLevel() LintResult_Level { 3592 if x != nil { 3593 return x.Level 3594 } 3595 return LintResult_LEVEL_UNSPECIFIED 3596} 3597 3598func (x *LintResult) GetValidationUnitName() string { 3599 if x != nil { 3600 return x.ValidationUnitName 3601 } 3602 return "" 3603} 3604 3605func (x *LintResult) GetSeverity() LintResult_Severity { 3606 if x != nil { 3607 return x.Severity 3608 } 3609 return LintResult_SEVERITY_UNSPECIFIED 3610} 3611 3612func (x *LintResult) GetFieldName() string { 3613 if x != nil { 3614 return x.FieldName 3615 } 3616 return "" 3617} 3618 3619func (x *LintResult) GetLocationOffset() int32 { 3620 if x != nil { 3621 return x.LocationOffset 3622 } 3623 return 0 3624} 3625 3626func (x *LintResult) GetDebugMessage() string { 3627 if x != nil { 3628 return x.DebugMessage 3629 } 3630 return "" 3631} 3632 3633// The response of a lint operation. An empty response indicates 3634// the operation was able to fully execute and no lint issue was found. 3635type LintPolicyResponse struct { 3636 state protoimpl.MessageState 3637 sizeCache protoimpl.SizeCache 3638 unknownFields protoimpl.UnknownFields 3639 3640 // List of lint results sorted by `severity` in descending order. 3641 LintResults []*LintResult `protobuf:"bytes,1,rep,name=lint_results,json=lintResults,proto3" json:"lint_results,omitempty"` 3642} 3643 3644func (x *LintPolicyResponse) Reset() { 3645 *x = LintPolicyResponse{} 3646 if protoimpl.UnsafeEnabled { 3647 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[39] 3648 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3649 ms.StoreMessageInfo(mi) 3650 } 3651} 3652 3653func (x *LintPolicyResponse) String() string { 3654 return protoimpl.X.MessageStringOf(x) 3655} 3656 3657func (*LintPolicyResponse) ProtoMessage() {} 3658 3659func (x *LintPolicyResponse) ProtoReflect() protoreflect.Message { 3660 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[39] 3661 if protoimpl.UnsafeEnabled && x != nil { 3662 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3663 if ms.LoadMessageInfo() == nil { 3664 ms.StoreMessageInfo(mi) 3665 } 3666 return ms 3667 } 3668 return mi.MessageOf(x) 3669} 3670 3671// Deprecated: Use LintPolicyResponse.ProtoReflect.Descriptor instead. 3672func (*LintPolicyResponse) Descriptor() ([]byte, []int) { 3673 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{39} 3674} 3675 3676func (x *LintPolicyResponse) GetLintResults() []*LintResult { 3677 if x != nil { 3678 return x.LintResults 3679 } 3680 return nil 3681} 3682 3683// Contains information about an auditable service. 3684type QueryAuditableServicesResponse_AuditableService struct { 3685 state protoimpl.MessageState 3686 sizeCache protoimpl.SizeCache 3687 unknownFields protoimpl.UnknownFields 3688 3689 // Public name of the service. 3690 // For example, the service name for Cloud IAM is 'iam.googleapis.com'. 3691 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 3692} 3693 3694func (x *QueryAuditableServicesResponse_AuditableService) Reset() { 3695 *x = QueryAuditableServicesResponse_AuditableService{} 3696 if protoimpl.UnsafeEnabled { 3697 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[40] 3698 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3699 ms.StoreMessageInfo(mi) 3700 } 3701} 3702 3703func (x *QueryAuditableServicesResponse_AuditableService) String() string { 3704 return protoimpl.X.MessageStringOf(x) 3705} 3706 3707func (*QueryAuditableServicesResponse_AuditableService) ProtoMessage() {} 3708 3709func (x *QueryAuditableServicesResponse_AuditableService) ProtoReflect() protoreflect.Message { 3710 mi := &file_google_iam_admin_v1_iam_proto_msgTypes[40] 3711 if protoimpl.UnsafeEnabled && x != nil { 3712 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3713 if ms.LoadMessageInfo() == nil { 3714 ms.StoreMessageInfo(mi) 3715 } 3716 return ms 3717 } 3718 return mi.MessageOf(x) 3719} 3720 3721// Deprecated: Use QueryAuditableServicesResponse_AuditableService.ProtoReflect.Descriptor instead. 3722func (*QueryAuditableServicesResponse_AuditableService) Descriptor() ([]byte, []int) { 3723 return file_google_iam_admin_v1_iam_proto_rawDescGZIP(), []int{36, 0} 3724} 3725 3726func (x *QueryAuditableServicesResponse_AuditableService) GetName() string { 3727 if x != nil { 3728 return x.Name 3729 } 3730 return "" 3731} 3732 3733var File_google_iam_admin_v1_iam_proto protoreflect.FileDescriptor 3734 3735var file_google_iam_admin_v1_iam_proto_rawDesc = []byte{ 3736 0x0a, 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x64, 0x6d, 3737 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 3738 0x13, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 3739 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 3740 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 3741 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 3742 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 3743 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 3744 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3745 0x65, 0x2f, 0x69, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x61, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 3746 0x69, 0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3747 0x65, 0x2f, 0x69, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 3748 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x69, 3749 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 3750 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3751 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 3752 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 3753 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 3754 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 3755 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 3756 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 3757 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x67, 3758 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2e, 3759 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 3760 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 3761 0x6f, 0x74, 0x6f, 0x22, 0x9a, 0x03, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 3762 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 3763 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 3764 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 3765 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x20, 3766 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 3767 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 3768 0x12, 0x19, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 3769 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x26, 0x0a, 0x0c, 0x64, 3770 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 3771 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 3772 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 3773 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x25, 0x0a, 0x0b, 0x64, 3774 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 3775 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 3776 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x10, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x63, 0x6c, 0x69, 3777 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 3778 0x03, 0x52, 0x0e, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 3779 0x64, 0x12, 0x1f, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0b, 0x20, 3780 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 3781 0x65, 0x64, 0x3a, 0x5c, 0xea, 0x41, 0x59, 0x0a, 0x21, 0x69, 0x61, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 3782 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x76, 3783 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x70, 0x72, 0x6f, 0x6a, 3784 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 3785 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 3786 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 3787 0x22, 0xd8, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 3788 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 3789 0x12, 0x47, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 3790 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x73, 3791 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 3792 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 3793 0x65, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x63, 0x63, 3794 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 3795 0x41, 0x02, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4c, 0x0a, 3796 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 3797 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3798 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 3799 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x73, 0x65, 0x72, 3800 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x1a, 3801 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 3802 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x04, 0x6e, 0x61, 3803 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 3804 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 3805 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 3806 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x04, 0x6e, 3807 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 3808 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 3809 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 3810 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 3811 0x86, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 3812 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 3813 0x3f, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 3814 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 3815 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 3816 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 3817 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 3818 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 3819 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x59, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 3820 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 3821 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 3822 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x69, 0x61, 0x6d, 0x2e, 3823 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 3824 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x04, 0x6e, 3825 0x61, 0x6d, 0x65, 0x22, 0x5c, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 3826 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 3827 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3828 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x69, 0x61, 0x6d, 0x2e, 0x67, 0x6f, 3829 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 3830 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 3831 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 3832 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 3833 0x12, 0x4c, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 3834 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3835 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 3836 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 3837 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3b, 3838 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 3839 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 3840 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 3841 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x33, 0x0a, 0x1d, 0x55, 3842 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 3843 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 3844 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 3845 0x22, 0x70, 0x0a, 0x1e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 3846 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 3847 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x61, 3848 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 3849 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 3850 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 3851 0x74, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 3852 0x6e, 0x74, 0x22, 0x31, 0x0a, 0x1b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 3853 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 3854 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 3855 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x32, 0x0a, 0x1c, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 3856 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 3857 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 3858 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x82, 0x02, 0x0a, 0x1d, 0x4c, 0x69, 3859 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 3860 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 3861 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 3862 0x23, 0x0a, 0x21, 0x69, 0x61, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 3863 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 3864 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x09, 0x6b, 0x65, 3865 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 3866 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 3867 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 3868 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 3869 0x74, 0x2e, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x54, 0x79, 3870 0x70, 0x65, 0x73, 0x22, 0x49, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 3871 0x0a, 0x14, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 3872 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x53, 0x45, 0x52, 3873 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x44, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x59, 3874 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x44, 0x10, 0x02, 0x22, 0x5c, 3875 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 3876 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 3877 0x12, 0x3a, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 3878 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 3879 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 3880 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0xab, 0x01, 0x0a, 3881 0x1b, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 3882 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 3883 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe0, 0x41, 0x02, 0xfa, 3884 0x41, 0x18, 0x0a, 0x16, 0x69, 0x61, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 3885 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 3886 0x12, 0x58, 0x0a, 0x0f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 3887 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3888 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 3889 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x75, 3890 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x70, 0x75, 0x62, 3891 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0xbc, 0x05, 0x0a, 0x11, 0x53, 3892 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 3893 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 3894 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5b, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 3895 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 3896 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 3897 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 3898 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 3899 0x65, 0x52, 0x0e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 3900 0x65, 0x12, 0x54, 0x0a, 0x0d, 0x6b, 0x65, 0x79, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 3901 0x68, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3902 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 3903 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 3904 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x0c, 0x6b, 0x65, 0x79, 0x41, 0x6c, 3905 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x76, 0x61, 3906 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 3907 0x0c, 0x52, 0x0e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 3908 0x61, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 3909 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 3910 0x69, 0x63, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x44, 0x0a, 0x10, 0x76, 0x61, 0x6c, 3911 0x69, 0x64, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 3912 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 3913 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 3914 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x66, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 3915 0x46, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 3916 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 3917 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 3918 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x65, 0x66, 3919 0x6f, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x5f, 0x6f, 3920 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 3921 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 3922 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 3923 0x4b, 0x65, 0x79, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x4f, 0x72, 3924 0x69, 0x67, 0x69, 0x6e, 0x12, 0x55, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 3925 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3926 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 3927 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 3928 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4b, 0x65, 0x79, 0x54, 0x79, 3929 0x70, 0x65, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x5c, 0xea, 0x41, 0x59, 3930 0x0a, 0x16, 0x69, 0x61, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 3931 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x65, 0x79, 0x12, 0x3f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 3932 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 3933 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x73, 0x65, 3934 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x2f, 0x6b, 3935 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x7d, 0x22, 0x92, 0x02, 0x0a, 0x1e, 0x43, 0x72, 3936 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 3937 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 3938 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 3939 0x41, 0x23, 0x0a, 0x21, 0x69, 0x61, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 3940 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 3941 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5b, 0x0a, 0x10, 0x70, 3942 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 3943 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 3944 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 3945 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 3946 0x65, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 3947 0x65, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x54, 0x0a, 0x0d, 0x6b, 0x65, 0x79, 0x5f, 3948 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 3949 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 3950 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 3951 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 3952 0x52, 0x0c, 0x6b, 0x65, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x22, 0x5c, 3953 0x0a, 0x1e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 3954 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 3955 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 3956 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 3957 0x65, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x70, 3958 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x1e, 3959 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 3960 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 3961 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe0, 0x41, 3962 0x02, 0xfa, 0x41, 0x18, 0x0a, 0x16, 0x69, 0x61, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3963 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6e, 0x61, 3964 0x6d, 0x65, 0x22, 0x7d, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x52, 0x65, 3965 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 3966 0x01, 0x28, 0x09, 0x42, 0x2b, 0x18, 0x01, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x69, 3967 0x61, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 3968 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 3969 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 3970 0x74, 0x6f, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x05, 0x18, 3971 0x01, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6f, 0x53, 0x69, 0x67, 3972 0x6e, 0x22, 0x4f, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x52, 0x65, 0x73, 3973 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x06, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 3974 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 3975 0x12, 0x20, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 3976 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 3977 0x72, 0x65, 0x22, 0x72, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x4a, 0x77, 0x74, 0x52, 0x65, 0x71, 3978 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 3979 0x28, 0x09, 0x42, 0x2b, 0x18, 0x01, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x69, 0x61, 3980 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 3981 0x2f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 3982 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 3983 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x05, 0x18, 0x01, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 3984 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x4f, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x4a, 0x77, 3985 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x06, 0x6b, 0x65, 0x79, 3986 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x6b, 3987 0x65, 0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x6a, 3988 0x77, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x73, 0x69, 3989 0x67, 0x6e, 0x65, 0x64, 0x4a, 0x77, 0x74, 0x22, 0xcb, 0x02, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 3990 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 3991 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 3992 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 3993 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 3994 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x14, 3995 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 3996 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 3997 0x75, 0x64, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 3998 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 3999 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 4000 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x61, 4001 0x75, 0x6e, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 4002 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 4003 0x65, 0x74, 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 4004 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x55, 4005 0x0a, 0x0f, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 4006 0x65, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x50, 0x48, 0x41, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 4007 0x42, 0x45, 0x54, 0x41, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x41, 0x10, 0x02, 0x12, 0x0e, 4008 0x0a, 0x0a, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0c, 4009 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 4010 0x45, 0x41, 0x50, 0x10, 0x06, 0x22, 0xbe, 0x01, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 4011 0x72, 0x61, 0x6e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 4012 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x12, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x73, 4013 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 4014 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 4015 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x76, 0x69, 0x65, 0x77, 0x18, 4016 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 4017 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 4018 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x76, 0x69, 0x65, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 4019 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 4020 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 4021 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 4022 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x76, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 4023 0x72, 0x61, 0x6e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 4024 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 4025 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 4026 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 4027 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 4028 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 4029 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xc4, 4030 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 4031 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 4032 0x01, 0x28, 0x09, 0x42, 0x06, 0xfa, 0x41, 0x03, 0x0a, 0x01, 0x2a, 0x52, 0x06, 0x70, 0x61, 0x72, 4033 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 4034 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 4035 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 4036 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 4037 0x31, 0x0a, 0x04, 0x76, 0x69, 0x65, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 4038 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 4039 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x76, 0x69, 4040 0x65, 0x77, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 4041 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x65, 4042 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x6c, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 4043 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x6f, 4044 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 4045 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 4046 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 4047 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 4048 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 4049 0x6b, 0x65, 0x6e, 0x22, 0x2c, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 4050 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 4051 0x01, 0x28, 0x09, 0x42, 0x06, 0xfa, 0x41, 0x03, 0x0a, 0x01, 0x2a, 0x52, 0x04, 0x6e, 0x61, 0x6d, 4052 0x65, 0x22, 0x7b, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 4053 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 4054 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xfa, 0x41, 0x03, 0x0a, 0x01, 0x2a, 0x52, 0x06, 4055 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 4056 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 4057 0x2d, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 4058 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 4059 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x9b, 4060 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 4061 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 4062 0x28, 0x09, 0x42, 0x06, 0xfa, 0x41, 0x03, 0x0a, 0x01, 0x2a, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 4063 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 4064 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 4065 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 4066 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 4067 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 4068 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 4069 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x43, 0x0a, 0x11, 4070 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 4071 0x74, 0x12, 0x1a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 4072 0x06, 0xfa, 0x41, 0x03, 0x0a, 0x01, 0x2a, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 4073 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x65, 0x74, 0x61, 4074 0x67, 0x22, 0x45, 0x0a, 0x13, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 4075 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 4076 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xfa, 0x41, 0x03, 0x0a, 0x01, 0x2a, 0x52, 0x04, 4077 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 4078 0x28, 0x0c, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x22, 0xba, 0x04, 0x0a, 0x0a, 0x50, 0x65, 0x72, 4079 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 4080 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 4081 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 4082 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 4083 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 4084 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x18, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 4085 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 4086 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x15, 0x6f, 0x6e, 0x6c, 0x79, 0x49, 4087 0x6e, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 4088 0x12, 0x4b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 4089 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 4090 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 4091 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x75, 0x6e, 0x63, 4092 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x74, 0x0a, 4093 0x1a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x5f, 0x73, 0x75, 4094 0x70, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 4095 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 4096 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 4097 0x6f, 0x6e, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x53, 0x75, 4098 0x70, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x17, 0x63, 0x75, 0x73, 0x74, 4099 0x6f, 0x6d, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x65, 4100 0x76, 0x65, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x70, 0x69, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 4101 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x70, 0x69, 0x44, 0x69, 4102 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 4103 0x79, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 4104 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x65, 0x72, 0x6d, 0x69, 4105 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x44, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 4106 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x09, 4107 0x0a, 0x05, 0x41, 0x4c, 0x50, 0x48, 0x41, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x45, 0x54, 4108 0x41, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x41, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 4109 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x22, 0x48, 0x0a, 0x17, 0x43, 4110 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 4111 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 4112 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x47, 4113 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 4114 0x54, 0x45, 0x44, 0x10, 0x02, 0x22, 0x8b, 0x01, 0x0a, 0x1f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 4115 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 4116 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x75, 0x6c, 4117 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 4118 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 4119 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 4120 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 4121 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 4122 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 4123 0x6b, 0x65, 0x6e, 0x22, 0x8d, 0x01, 0x0a, 0x20, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 4124 0x74, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 4125 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 4126 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 4127 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 4128 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 4129 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 4130 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 4131 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 4132 0x6b, 0x65, 0x6e, 0x22, 0x4d, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x75, 0x64, 0x69, 4133 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 4134 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x73, 4135 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 4136 0x52, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 4137 0x6d, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x75, 0x64, 0x69, 4138 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 4139 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 4140 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4141 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 4142 0x65, 0x72, 0x79, 0x41, 0x75, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 4143 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x75, 0x64, 4144 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x08, 0x73, 4145 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x1a, 0x26, 0x0a, 0x10, 0x41, 0x75, 0x64, 0x69, 0x74, 4146 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 4147 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 4148 0x83, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 4149 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 4150 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 4151 0x09, 0x52, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 4152 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 4153 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4154 0x74, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6e, 4155 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x74, 0x5f, 0x6f, 4156 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0xc1, 0x03, 0x0a, 0x0a, 0x4c, 0x69, 0x6e, 0x74, 0x52, 0x65, 4157 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 4158 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 4159 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 0x52, 0x65, 4160 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 4161 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 4162 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 4163 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x69, 0x74, 0x4e, 4164 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 4165 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 4166 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 4167 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 4168 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 4169 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 4170 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 4171 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 4172 0x05, 0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x73, 0x65, 4173 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 4174 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x4d, 4175 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x2d, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 4176 0x15, 0x0a, 0x11, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 4177 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 4178 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x22, 0x62, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 4179 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 4180 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 4181 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 4182 0x47, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0x03, 0x12, 4183 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x45, 0x50, 4184 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x10, 0x05, 0x22, 0x58, 0x0a, 0x12, 0x4c, 0x69, 0x6e, 4185 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 4186 0x42, 0x0a, 0x0c, 0x6c, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 4187 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 4188 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 4189 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x6c, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 4190 0x6c, 0x74, 0x73, 0x2a, 0x61, 0x0a, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 4191 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 4192 0x6d, 0x12, 0x17, 0x0a, 0x13, 0x4b, 0x45, 0x59, 0x5f, 0x41, 0x4c, 0x47, 0x5f, 0x55, 0x4e, 0x53, 4193 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4b, 0x45, 4194 0x59, 0x5f, 0x41, 0x4c, 0x47, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x31, 0x30, 0x32, 0x34, 0x10, 0x01, 4195 0x12, 0x14, 0x0a, 0x10, 0x4b, 0x45, 0x59, 0x5f, 0x41, 0x4c, 0x47, 0x5f, 0x52, 0x53, 0x41, 0x5f, 4196 0x32, 0x30, 0x34, 0x38, 0x10, 0x02, 0x2a, 0x6c, 0x0a, 0x1c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 4197 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 4198 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 4199 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 4200 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x32, 0x5f, 0x46, 0x49, 0x4c, 0x45, 4201 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 4202 0x45, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x53, 0x5f, 0x46, 0x49, 4203 0x4c, 0x45, 0x10, 0x02, 0x2a, 0x5d, 0x0a, 0x1b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 4204 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x54, 4205 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 4206 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x58, 0x35, 0x30, 0x39, 0x5f, 4207 0x50, 0x45, 0x4d, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x59, 4208 0x50, 0x45, 0x5f, 0x52, 0x41, 0x57, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x5f, 0x4b, 0x45, 4209 0x59, 0x10, 0x02, 0x2a, 0x59, 0x0a, 0x17, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 4210 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x16, 4211 0x0a, 0x12, 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 4212 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x50, 4213 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x44, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x4f, 0x4f, 4214 0x47, 0x4c, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x1f, 4215 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x41, 4216 0x53, 0x49, 0x43, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x01, 0x32, 4217 0xb3, 0x28, 0x0a, 0x03, 0x49, 0x41, 0x4d, 0x12, 0xae, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 4218 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 4219 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 4220 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 4221 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 4222 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 4223 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 4224 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 4225 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x76, 0x31, 0x2f, 4226 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 4227 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 4228 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 4229 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 4230 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 4231 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 4232 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 4233 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 4234 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 4235 0x6e, 0x74, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x76, 0x31, 0x2f, 4236 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 4237 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 4238 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xc1, 0x01, 0x0a, 0x14, 0x43, 4239 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 4240 0x75, 0x6e, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 4241 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 4242 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 4243 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 4244 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 4245 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x52, 0x82, 0xd3, 0xe4, 0x93, 4246 0x02, 0x2a, 0x22, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 4247 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 4248 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x1f, 0x6e, 4249 0x61, 0x6d, 0x65, 0x2c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x73, 4250 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x94, 4251 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 4252 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4253 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 4254 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x23, 0x2e, 0x67, 4255 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 4256 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 4257 0x74, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x1a, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 4258 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 4259 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 4260 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xaf, 0x01, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x63, 0x68, 0x53, 4261 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 4262 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 4263 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 4264 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 4265 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 4266 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 4267 0x75, 0x6e, 0x74, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x32, 0x37, 0x2f, 0x76, 0x31, 4268 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 4269 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 4270 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 4271 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x98, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 4272 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 4273 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 4274 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 4275 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 4276 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 4277 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 4278 0x02, 0x29, 0x2a, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 4279 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 4280 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 4281 0x6d, 0x65, 0x12, 0xbe, 0x01, 0x0a, 0x16, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 4282 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x2e, 4283 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 4284 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 4285 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 4286 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 4287 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 4288 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 4289 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x22, 0x30, 4290 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 4291 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 4292 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 4293 0x3a, 0x01, 0x2a, 0x12, 0x9b, 0x01, 0x0a, 0x14, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 4294 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x2e, 0x67, 4295 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 4296 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 4297 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 4298 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 4299 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x22, 0x2e, 4300 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 4301 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 4302 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x01, 4303 0x2a, 0x12, 0x9e, 0x01, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 4304 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x2e, 0x67, 0x6f, 4305 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 4306 0x31, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 4307 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 4308 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 4309 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x22, 0x2f, 4310 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 4311 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 4312 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x3a, 4313 0x01, 0x2a, 0x12, 0xc8, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 4314 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x32, 0x2e, 4315 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 4316 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 4317 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 4318 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 4319 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 4320 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 4321 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, 4322 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 4323 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 4324 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0xda, 0x41, 0x0e, 0x6e, 4325 0x61, 0x6d, 0x65, 0x2c, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0xbf, 0x01, 4326 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 4327 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4328 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 4329 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 4330 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4331 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 4332 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 4333 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 4334 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 4335 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 4336 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x14, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 4337 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 4338 0xd5, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 4339 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x2e, 0x67, 0x6f, 4340 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 4341 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 4342 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 4343 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 4344 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 4345 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x5d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 4346 0x22, 0x2c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 4347 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 4348 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x3a, 0x01, 4349 0x2a, 0xda, 0x41, 0x23, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 4350 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x6b, 0x65, 0x79, 0x5f, 0x61, 0x6c, 4351 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0xb6, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x6c, 0x6f, 4352 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 4353 0x4b, 0x65, 0x79, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 4354 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 4355 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 4356 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4357 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 4358 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 4359 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x22, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 4360 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 4361 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 4362 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x3a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x01, 0x2a, 4363 0x12, 0xa5, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 4364 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x2e, 0x67, 4365 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 4366 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 4367 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 4368 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 4369 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 4370 0x30, 0x2a, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 4371 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 4372 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x2a, 4373 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xac, 0x01, 0x0a, 0x08, 0x53, 0x69, 0x67, 4374 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 4375 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 4376 0x42, 0x6c, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 4377 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 4378 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 4379 0x73, 0x65, 0x22, 0x53, 0x88, 0x02, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x22, 0x30, 0x2f, 4380 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 4381 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 4382 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x3a, 4383 0x01, 0x2a, 0xda, 0x41, 0x12, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 4384 0x74, 0x6f, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x12, 0xa2, 0x01, 0x0a, 0x07, 0x53, 0x69, 0x67, 0x6e, 4385 0x4a, 0x77, 0x74, 0x12, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 4386 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x4a, 0x77, 4387 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4388 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 4389 0x69, 0x67, 0x6e, 0x4a, 0x77, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 4390 0x88, 0x02, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x22, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 4391 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 4392 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 4393 0x2a, 0x7d, 0x3a, 0x73, 0x69, 0x67, 0x6e, 0x4a, 0x77, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x0c, 4394 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x96, 0x01, 0x0a, 4395 0x0c, 0x47, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x22, 0x2e, 4396 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 4397 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 4398 0x74, 0x1a, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 4399 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 4400 0x22, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3d, 4401 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 4402 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 4403 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0xda, 0x41, 0x08, 0x72, 0x65, 0x73, 4404 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0xa0, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x49, 0x61, 0x6d, 4405 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4406 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 4407 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 4408 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 4409 0x79, 0x22, 0x55, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 4410 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 4411 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 4412 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 4413 0x69, 0x63, 0x79, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 4414 0x65, 0x2c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0xcb, 0x01, 0x0a, 0x12, 0x54, 0x65, 0x73, 4415 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 4416 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 4417 0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 4418 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 4419 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 4420 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 4421 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x22, 0x3e, 0x2f, 0x76, 4422 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 4423 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 4424 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x74, 0x65, 0x73, 0x74, 0x49, 0x61, 4425 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x01, 0x2a, 0xda, 4426 0x41, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2c, 0x70, 0x65, 0x72, 0x6d, 0x69, 4427 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb7, 0x01, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 4428 0x47, 0x72, 0x61, 0x6e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x2f, 4429 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 4430 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x61, 4431 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 4432 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 4433 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x72, 0x61, 0x6e, 0x74, 4434 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 4435 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x72, 4436 0x6f, 0x6c, 0x65, 0x73, 0x3a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x61, 4437 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x12, 0x66, 0x75, 4438 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 4439 0x12, 0xb4, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x25, 4440 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 4441 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 4442 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 4443 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 4444 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x82, 4445 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 4446 0x5a, 0x24, 0x12, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 4447 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 4448 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x5a, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 4449 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 4450 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x52, 4451 0x6f, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 4452 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 4453 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4454 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 4455 0x6f, 0x6c, 0x65, 0x22, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x12, 0x12, 0x2f, 0x76, 0x31, 4456 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 4457 0x24, 0x12, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 4458 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x6f, 0x6c, 4459 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 4460 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x6f, 4461 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa2, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 4462 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 4463 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 4464 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 4465 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 4466 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 4467 0x22, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 4468 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 4469 0x6f, 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x22, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 4470 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 4471 0x2a, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xa8, 0x01, 0x0a, 0x0a, 4472 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 4473 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 4474 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 4475 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 4476 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x22, 0x57, 0x82, 4477 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x32, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 4478 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 4479 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x5a, 4480 0x25, 0x32, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 4481 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 4482 0x3a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x9c, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 4483 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 4484 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 4485 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 4486 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 4487 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 4488 0x2a, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 4489 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 4490 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x1f, 0x2a, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 4491 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x6f, 0x6c, 4492 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb8, 0x01, 0x0a, 0x0c, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 4493 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4494 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, 4495 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 4496 0x1a, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 4497 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x22, 0x63, 0x82, 0xd3, 0xe4, 4498 0x93, 0x02, 0x5d, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 4499 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 4500 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 4501 0x3a, 0x01, 0x2a, 0x5a, 0x2b, 0x22, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 4502 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 4503 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x3a, 0x01, 0x2a, 4504 0x12, 0xbc, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x61, 0x62, 4505 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x2e, 4506 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 4507 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 4508 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 4509 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 4510 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 4511 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 4512 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 4513 0x02, 0x2d, 0x22, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 4514 0x6f, 0x6e, 0x73, 0x3a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 4515 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x01, 0x2a, 0x12, 4516 0xb4, 0x01, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x75, 0x64, 0x69, 0x74, 0x61, 0x62, 4517 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 4518 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 4519 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x75, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 4520 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 4521 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 4522 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x75, 0x64, 0x69, 0x74, 0x61, 4523 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 4524 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x22, 0x26, 0x2f, 0x76, 0x31, 4525 0x2f, 0x69, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x3a, 0x71, 0x75, 0x65, 4526 0x72, 0x79, 0x41, 0x75, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 4527 0x63, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x84, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x6e, 0x74, 0x50, 4528 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 4529 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 4530 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 4531 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 4532 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 4533 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 4534 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x3a, 4535 0x6c, 0x69, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x3a, 0x01, 0x2a, 0x1a, 0x46, 0xca, 4536 0x41, 0x12, 0x69, 0x61, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 4537 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 4538 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 4539 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 4540 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x9a, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 4541 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 4542 0x31, 0x42, 0x08, 0x49, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x67, 4543 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 4544 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4545 0x61, 0x70, 0x69, 0x73, 0x2f, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 4546 0x31, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0xf8, 0x01, 0x01, 0xaa, 0x02, 0x19, 0x47, 0x6f, 0x6f, 4547 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x49, 0x61, 0x6d, 0x2e, 0x41, 0x64, 4548 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 4549 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x49, 0x61, 0x6d, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x5c, 4550 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 4551} 4552 4553var ( 4554 file_google_iam_admin_v1_iam_proto_rawDescOnce sync.Once 4555 file_google_iam_admin_v1_iam_proto_rawDescData = file_google_iam_admin_v1_iam_proto_rawDesc 4556) 4557 4558func file_google_iam_admin_v1_iam_proto_rawDescGZIP() []byte { 4559 file_google_iam_admin_v1_iam_proto_rawDescOnce.Do(func() { 4560 file_google_iam_admin_v1_iam_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_iam_admin_v1_iam_proto_rawDescData) 4561 }) 4562 return file_google_iam_admin_v1_iam_proto_rawDescData 4563} 4564 4565var file_google_iam_admin_v1_iam_proto_enumTypes = make([]protoimpl.EnumInfo, 11) 4566var file_google_iam_admin_v1_iam_proto_msgTypes = make([]protoimpl.MessageInfo, 41) 4567var file_google_iam_admin_v1_iam_proto_goTypes = []interface{}{ 4568 (ServiceAccountKeyAlgorithm)(0), // 0: google.iam.admin.v1.ServiceAccountKeyAlgorithm 4569 (ServiceAccountPrivateKeyType)(0), // 1: google.iam.admin.v1.ServiceAccountPrivateKeyType 4570 (ServiceAccountPublicKeyType)(0), // 2: google.iam.admin.v1.ServiceAccountPublicKeyType 4571 (ServiceAccountKeyOrigin)(0), // 3: google.iam.admin.v1.ServiceAccountKeyOrigin 4572 (RoleView)(0), // 4: google.iam.admin.v1.RoleView 4573 (ListServiceAccountKeysRequest_KeyType)(0), // 5: google.iam.admin.v1.ListServiceAccountKeysRequest.KeyType 4574 (Role_RoleLaunchStage)(0), // 6: google.iam.admin.v1.Role.RoleLaunchStage 4575 (Permission_PermissionLaunchStage)(0), // 7: google.iam.admin.v1.Permission.PermissionLaunchStage 4576 (Permission_CustomRolesSupportLevel)(0), // 8: google.iam.admin.v1.Permission.CustomRolesSupportLevel 4577 (LintResult_Level)(0), // 9: google.iam.admin.v1.LintResult.Level 4578 (LintResult_Severity)(0), // 10: google.iam.admin.v1.LintResult.Severity 4579 (*ServiceAccount)(nil), // 11: google.iam.admin.v1.ServiceAccount 4580 (*CreateServiceAccountRequest)(nil), // 12: google.iam.admin.v1.CreateServiceAccountRequest 4581 (*ListServiceAccountsRequest)(nil), // 13: google.iam.admin.v1.ListServiceAccountsRequest 4582 (*ListServiceAccountsResponse)(nil), // 14: google.iam.admin.v1.ListServiceAccountsResponse 4583 (*GetServiceAccountRequest)(nil), // 15: google.iam.admin.v1.GetServiceAccountRequest 4584 (*DeleteServiceAccountRequest)(nil), // 16: google.iam.admin.v1.DeleteServiceAccountRequest 4585 (*PatchServiceAccountRequest)(nil), // 17: google.iam.admin.v1.PatchServiceAccountRequest 4586 (*UndeleteServiceAccountRequest)(nil), // 18: google.iam.admin.v1.UndeleteServiceAccountRequest 4587 (*UndeleteServiceAccountResponse)(nil), // 19: google.iam.admin.v1.UndeleteServiceAccountResponse 4588 (*EnableServiceAccountRequest)(nil), // 20: google.iam.admin.v1.EnableServiceAccountRequest 4589 (*DisableServiceAccountRequest)(nil), // 21: google.iam.admin.v1.DisableServiceAccountRequest 4590 (*ListServiceAccountKeysRequest)(nil), // 22: google.iam.admin.v1.ListServiceAccountKeysRequest 4591 (*ListServiceAccountKeysResponse)(nil), // 23: google.iam.admin.v1.ListServiceAccountKeysResponse 4592 (*GetServiceAccountKeyRequest)(nil), // 24: google.iam.admin.v1.GetServiceAccountKeyRequest 4593 (*ServiceAccountKey)(nil), // 25: google.iam.admin.v1.ServiceAccountKey 4594 (*CreateServiceAccountKeyRequest)(nil), // 26: google.iam.admin.v1.CreateServiceAccountKeyRequest 4595 (*UploadServiceAccountKeyRequest)(nil), // 27: google.iam.admin.v1.UploadServiceAccountKeyRequest 4596 (*DeleteServiceAccountKeyRequest)(nil), // 28: google.iam.admin.v1.DeleteServiceAccountKeyRequest 4597 (*SignBlobRequest)(nil), // 29: google.iam.admin.v1.SignBlobRequest 4598 (*SignBlobResponse)(nil), // 30: google.iam.admin.v1.SignBlobResponse 4599 (*SignJwtRequest)(nil), // 31: google.iam.admin.v1.SignJwtRequest 4600 (*SignJwtResponse)(nil), // 32: google.iam.admin.v1.SignJwtResponse 4601 (*Role)(nil), // 33: google.iam.admin.v1.Role 4602 (*QueryGrantableRolesRequest)(nil), // 34: google.iam.admin.v1.QueryGrantableRolesRequest 4603 (*QueryGrantableRolesResponse)(nil), // 35: google.iam.admin.v1.QueryGrantableRolesResponse 4604 (*ListRolesRequest)(nil), // 36: google.iam.admin.v1.ListRolesRequest 4605 (*ListRolesResponse)(nil), // 37: google.iam.admin.v1.ListRolesResponse 4606 (*GetRoleRequest)(nil), // 38: google.iam.admin.v1.GetRoleRequest 4607 (*CreateRoleRequest)(nil), // 39: google.iam.admin.v1.CreateRoleRequest 4608 (*UpdateRoleRequest)(nil), // 40: google.iam.admin.v1.UpdateRoleRequest 4609 (*DeleteRoleRequest)(nil), // 41: google.iam.admin.v1.DeleteRoleRequest 4610 (*UndeleteRoleRequest)(nil), // 42: google.iam.admin.v1.UndeleteRoleRequest 4611 (*Permission)(nil), // 43: google.iam.admin.v1.Permission 4612 (*QueryTestablePermissionsRequest)(nil), // 44: google.iam.admin.v1.QueryTestablePermissionsRequest 4613 (*QueryTestablePermissionsResponse)(nil), // 45: google.iam.admin.v1.QueryTestablePermissionsResponse 4614 (*QueryAuditableServicesRequest)(nil), // 46: google.iam.admin.v1.QueryAuditableServicesRequest 4615 (*QueryAuditableServicesResponse)(nil), // 47: google.iam.admin.v1.QueryAuditableServicesResponse 4616 (*LintPolicyRequest)(nil), // 48: google.iam.admin.v1.LintPolicyRequest 4617 (*LintResult)(nil), // 49: google.iam.admin.v1.LintResult 4618 (*LintPolicyResponse)(nil), // 50: google.iam.admin.v1.LintPolicyResponse 4619 (*QueryAuditableServicesResponse_AuditableService)(nil), // 51: google.iam.admin.v1.QueryAuditableServicesResponse.AuditableService 4620 (*fieldmaskpb.FieldMask)(nil), // 52: google.protobuf.FieldMask 4621 (*timestamppb.Timestamp)(nil), // 53: google.protobuf.Timestamp 4622 (*expr.Expr)(nil), // 54: google.type.Expr 4623 (*v1.GetIamPolicyRequest)(nil), // 55: google.iam.v1.GetIamPolicyRequest 4624 (*v1.SetIamPolicyRequest)(nil), // 56: google.iam.v1.SetIamPolicyRequest 4625 (*v1.TestIamPermissionsRequest)(nil), // 57: google.iam.v1.TestIamPermissionsRequest 4626 (*emptypb.Empty)(nil), // 58: google.protobuf.Empty 4627 (*v1.Policy)(nil), // 59: google.iam.v1.Policy 4628 (*v1.TestIamPermissionsResponse)(nil), // 60: google.iam.v1.TestIamPermissionsResponse 4629} 4630var file_google_iam_admin_v1_iam_proto_depIdxs = []int32{ 4631 11, // 0: google.iam.admin.v1.CreateServiceAccountRequest.service_account:type_name -> google.iam.admin.v1.ServiceAccount 4632 11, // 1: google.iam.admin.v1.ListServiceAccountsResponse.accounts:type_name -> google.iam.admin.v1.ServiceAccount 4633 11, // 2: google.iam.admin.v1.PatchServiceAccountRequest.service_account:type_name -> google.iam.admin.v1.ServiceAccount 4634 52, // 3: google.iam.admin.v1.PatchServiceAccountRequest.update_mask:type_name -> google.protobuf.FieldMask 4635 11, // 4: google.iam.admin.v1.UndeleteServiceAccountResponse.restored_account:type_name -> google.iam.admin.v1.ServiceAccount 4636 5, // 5: google.iam.admin.v1.ListServiceAccountKeysRequest.key_types:type_name -> google.iam.admin.v1.ListServiceAccountKeysRequest.KeyType 4637 25, // 6: google.iam.admin.v1.ListServiceAccountKeysResponse.keys:type_name -> google.iam.admin.v1.ServiceAccountKey 4638 2, // 7: google.iam.admin.v1.GetServiceAccountKeyRequest.public_key_type:type_name -> google.iam.admin.v1.ServiceAccountPublicKeyType 4639 1, // 8: google.iam.admin.v1.ServiceAccountKey.private_key_type:type_name -> google.iam.admin.v1.ServiceAccountPrivateKeyType 4640 0, // 9: google.iam.admin.v1.ServiceAccountKey.key_algorithm:type_name -> google.iam.admin.v1.ServiceAccountKeyAlgorithm 4641 53, // 10: google.iam.admin.v1.ServiceAccountKey.valid_after_time:type_name -> google.protobuf.Timestamp 4642 53, // 11: google.iam.admin.v1.ServiceAccountKey.valid_before_time:type_name -> google.protobuf.Timestamp 4643 3, // 12: google.iam.admin.v1.ServiceAccountKey.key_origin:type_name -> google.iam.admin.v1.ServiceAccountKeyOrigin 4644 5, // 13: google.iam.admin.v1.ServiceAccountKey.key_type:type_name -> google.iam.admin.v1.ListServiceAccountKeysRequest.KeyType 4645 1, // 14: google.iam.admin.v1.CreateServiceAccountKeyRequest.private_key_type:type_name -> google.iam.admin.v1.ServiceAccountPrivateKeyType 4646 0, // 15: google.iam.admin.v1.CreateServiceAccountKeyRequest.key_algorithm:type_name -> google.iam.admin.v1.ServiceAccountKeyAlgorithm 4647 6, // 16: google.iam.admin.v1.Role.stage:type_name -> google.iam.admin.v1.Role.RoleLaunchStage 4648 4, // 17: google.iam.admin.v1.QueryGrantableRolesRequest.view:type_name -> google.iam.admin.v1.RoleView 4649 33, // 18: google.iam.admin.v1.QueryGrantableRolesResponse.roles:type_name -> google.iam.admin.v1.Role 4650 4, // 19: google.iam.admin.v1.ListRolesRequest.view:type_name -> google.iam.admin.v1.RoleView 4651 33, // 20: google.iam.admin.v1.ListRolesResponse.roles:type_name -> google.iam.admin.v1.Role 4652 33, // 21: google.iam.admin.v1.CreateRoleRequest.role:type_name -> google.iam.admin.v1.Role 4653 33, // 22: google.iam.admin.v1.UpdateRoleRequest.role:type_name -> google.iam.admin.v1.Role 4654 52, // 23: google.iam.admin.v1.UpdateRoleRequest.update_mask:type_name -> google.protobuf.FieldMask 4655 7, // 24: google.iam.admin.v1.Permission.stage:type_name -> google.iam.admin.v1.Permission.PermissionLaunchStage 4656 8, // 25: google.iam.admin.v1.Permission.custom_roles_support_level:type_name -> google.iam.admin.v1.Permission.CustomRolesSupportLevel 4657 43, // 26: google.iam.admin.v1.QueryTestablePermissionsResponse.permissions:type_name -> google.iam.admin.v1.Permission 4658 51, // 27: google.iam.admin.v1.QueryAuditableServicesResponse.services:type_name -> google.iam.admin.v1.QueryAuditableServicesResponse.AuditableService 4659 54, // 28: google.iam.admin.v1.LintPolicyRequest.condition:type_name -> google.type.Expr 4660 9, // 29: google.iam.admin.v1.LintResult.level:type_name -> google.iam.admin.v1.LintResult.Level 4661 10, // 30: google.iam.admin.v1.LintResult.severity:type_name -> google.iam.admin.v1.LintResult.Severity 4662 49, // 31: google.iam.admin.v1.LintPolicyResponse.lint_results:type_name -> google.iam.admin.v1.LintResult 4663 13, // 32: google.iam.admin.v1.IAM.ListServiceAccounts:input_type -> google.iam.admin.v1.ListServiceAccountsRequest 4664 15, // 33: google.iam.admin.v1.IAM.GetServiceAccount:input_type -> google.iam.admin.v1.GetServiceAccountRequest 4665 12, // 34: google.iam.admin.v1.IAM.CreateServiceAccount:input_type -> google.iam.admin.v1.CreateServiceAccountRequest 4666 11, // 35: google.iam.admin.v1.IAM.UpdateServiceAccount:input_type -> google.iam.admin.v1.ServiceAccount 4667 17, // 36: google.iam.admin.v1.IAM.PatchServiceAccount:input_type -> google.iam.admin.v1.PatchServiceAccountRequest 4668 16, // 37: google.iam.admin.v1.IAM.DeleteServiceAccount:input_type -> google.iam.admin.v1.DeleteServiceAccountRequest 4669 18, // 38: google.iam.admin.v1.IAM.UndeleteServiceAccount:input_type -> google.iam.admin.v1.UndeleteServiceAccountRequest 4670 20, // 39: google.iam.admin.v1.IAM.EnableServiceAccount:input_type -> google.iam.admin.v1.EnableServiceAccountRequest 4671 21, // 40: google.iam.admin.v1.IAM.DisableServiceAccount:input_type -> google.iam.admin.v1.DisableServiceAccountRequest 4672 22, // 41: google.iam.admin.v1.IAM.ListServiceAccountKeys:input_type -> google.iam.admin.v1.ListServiceAccountKeysRequest 4673 24, // 42: google.iam.admin.v1.IAM.GetServiceAccountKey:input_type -> google.iam.admin.v1.GetServiceAccountKeyRequest 4674 26, // 43: google.iam.admin.v1.IAM.CreateServiceAccountKey:input_type -> google.iam.admin.v1.CreateServiceAccountKeyRequest 4675 27, // 44: google.iam.admin.v1.IAM.UploadServiceAccountKey:input_type -> google.iam.admin.v1.UploadServiceAccountKeyRequest 4676 28, // 45: google.iam.admin.v1.IAM.DeleteServiceAccountKey:input_type -> google.iam.admin.v1.DeleteServiceAccountKeyRequest 4677 29, // 46: google.iam.admin.v1.IAM.SignBlob:input_type -> google.iam.admin.v1.SignBlobRequest 4678 31, // 47: google.iam.admin.v1.IAM.SignJwt:input_type -> google.iam.admin.v1.SignJwtRequest 4679 55, // 48: google.iam.admin.v1.IAM.GetIamPolicy:input_type -> google.iam.v1.GetIamPolicyRequest 4680 56, // 49: google.iam.admin.v1.IAM.SetIamPolicy:input_type -> google.iam.v1.SetIamPolicyRequest 4681 57, // 50: google.iam.admin.v1.IAM.TestIamPermissions:input_type -> google.iam.v1.TestIamPermissionsRequest 4682 34, // 51: google.iam.admin.v1.IAM.QueryGrantableRoles:input_type -> google.iam.admin.v1.QueryGrantableRolesRequest 4683 36, // 52: google.iam.admin.v1.IAM.ListRoles:input_type -> google.iam.admin.v1.ListRolesRequest 4684 38, // 53: google.iam.admin.v1.IAM.GetRole:input_type -> google.iam.admin.v1.GetRoleRequest 4685 39, // 54: google.iam.admin.v1.IAM.CreateRole:input_type -> google.iam.admin.v1.CreateRoleRequest 4686 40, // 55: google.iam.admin.v1.IAM.UpdateRole:input_type -> google.iam.admin.v1.UpdateRoleRequest 4687 41, // 56: google.iam.admin.v1.IAM.DeleteRole:input_type -> google.iam.admin.v1.DeleteRoleRequest 4688 42, // 57: google.iam.admin.v1.IAM.UndeleteRole:input_type -> google.iam.admin.v1.UndeleteRoleRequest 4689 44, // 58: google.iam.admin.v1.IAM.QueryTestablePermissions:input_type -> google.iam.admin.v1.QueryTestablePermissionsRequest 4690 46, // 59: google.iam.admin.v1.IAM.QueryAuditableServices:input_type -> google.iam.admin.v1.QueryAuditableServicesRequest 4691 48, // 60: google.iam.admin.v1.IAM.LintPolicy:input_type -> google.iam.admin.v1.LintPolicyRequest 4692 14, // 61: google.iam.admin.v1.IAM.ListServiceAccounts:output_type -> google.iam.admin.v1.ListServiceAccountsResponse 4693 11, // 62: google.iam.admin.v1.IAM.GetServiceAccount:output_type -> google.iam.admin.v1.ServiceAccount 4694 11, // 63: google.iam.admin.v1.IAM.CreateServiceAccount:output_type -> google.iam.admin.v1.ServiceAccount 4695 11, // 64: google.iam.admin.v1.IAM.UpdateServiceAccount:output_type -> google.iam.admin.v1.ServiceAccount 4696 11, // 65: google.iam.admin.v1.IAM.PatchServiceAccount:output_type -> google.iam.admin.v1.ServiceAccount 4697 58, // 66: google.iam.admin.v1.IAM.DeleteServiceAccount:output_type -> google.protobuf.Empty 4698 19, // 67: google.iam.admin.v1.IAM.UndeleteServiceAccount:output_type -> google.iam.admin.v1.UndeleteServiceAccountResponse 4699 58, // 68: google.iam.admin.v1.IAM.EnableServiceAccount:output_type -> google.protobuf.Empty 4700 58, // 69: google.iam.admin.v1.IAM.DisableServiceAccount:output_type -> google.protobuf.Empty 4701 23, // 70: google.iam.admin.v1.IAM.ListServiceAccountKeys:output_type -> google.iam.admin.v1.ListServiceAccountKeysResponse 4702 25, // 71: google.iam.admin.v1.IAM.GetServiceAccountKey:output_type -> google.iam.admin.v1.ServiceAccountKey 4703 25, // 72: google.iam.admin.v1.IAM.CreateServiceAccountKey:output_type -> google.iam.admin.v1.ServiceAccountKey 4704 25, // 73: google.iam.admin.v1.IAM.UploadServiceAccountKey:output_type -> google.iam.admin.v1.ServiceAccountKey 4705 58, // 74: google.iam.admin.v1.IAM.DeleteServiceAccountKey:output_type -> google.protobuf.Empty 4706 30, // 75: google.iam.admin.v1.IAM.SignBlob:output_type -> google.iam.admin.v1.SignBlobResponse 4707 32, // 76: google.iam.admin.v1.IAM.SignJwt:output_type -> google.iam.admin.v1.SignJwtResponse 4708 59, // 77: google.iam.admin.v1.IAM.GetIamPolicy:output_type -> google.iam.v1.Policy 4709 59, // 78: google.iam.admin.v1.IAM.SetIamPolicy:output_type -> google.iam.v1.Policy 4710 60, // 79: google.iam.admin.v1.IAM.TestIamPermissions:output_type -> google.iam.v1.TestIamPermissionsResponse 4711 35, // 80: google.iam.admin.v1.IAM.QueryGrantableRoles:output_type -> google.iam.admin.v1.QueryGrantableRolesResponse 4712 37, // 81: google.iam.admin.v1.IAM.ListRoles:output_type -> google.iam.admin.v1.ListRolesResponse 4713 33, // 82: google.iam.admin.v1.IAM.GetRole:output_type -> google.iam.admin.v1.Role 4714 33, // 83: google.iam.admin.v1.IAM.CreateRole:output_type -> google.iam.admin.v1.Role 4715 33, // 84: google.iam.admin.v1.IAM.UpdateRole:output_type -> google.iam.admin.v1.Role 4716 33, // 85: google.iam.admin.v1.IAM.DeleteRole:output_type -> google.iam.admin.v1.Role 4717 33, // 86: google.iam.admin.v1.IAM.UndeleteRole:output_type -> google.iam.admin.v1.Role 4718 45, // 87: google.iam.admin.v1.IAM.QueryTestablePermissions:output_type -> google.iam.admin.v1.QueryTestablePermissionsResponse 4719 47, // 88: google.iam.admin.v1.IAM.QueryAuditableServices:output_type -> google.iam.admin.v1.QueryAuditableServicesResponse 4720 50, // 89: google.iam.admin.v1.IAM.LintPolicy:output_type -> google.iam.admin.v1.LintPolicyResponse 4721 61, // [61:90] is the sub-list for method output_type 4722 32, // [32:61] is the sub-list for method input_type 4723 32, // [32:32] is the sub-list for extension type_name 4724 32, // [32:32] is the sub-list for extension extendee 4725 0, // [0:32] is the sub-list for field type_name 4726} 4727 4728func init() { file_google_iam_admin_v1_iam_proto_init() } 4729func file_google_iam_admin_v1_iam_proto_init() { 4730 if File_google_iam_admin_v1_iam_proto != nil { 4731 return 4732 } 4733 if !protoimpl.UnsafeEnabled { 4734 file_google_iam_admin_v1_iam_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 4735 switch v := v.(*ServiceAccount); i { 4736 case 0: 4737 return &v.state 4738 case 1: 4739 return &v.sizeCache 4740 case 2: 4741 return &v.unknownFields 4742 default: 4743 return nil 4744 } 4745 } 4746 file_google_iam_admin_v1_iam_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 4747 switch v := v.(*CreateServiceAccountRequest); i { 4748 case 0: 4749 return &v.state 4750 case 1: 4751 return &v.sizeCache 4752 case 2: 4753 return &v.unknownFields 4754 default: 4755 return nil 4756 } 4757 } 4758 file_google_iam_admin_v1_iam_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 4759 switch v := v.(*ListServiceAccountsRequest); i { 4760 case 0: 4761 return &v.state 4762 case 1: 4763 return &v.sizeCache 4764 case 2: 4765 return &v.unknownFields 4766 default: 4767 return nil 4768 } 4769 } 4770 file_google_iam_admin_v1_iam_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 4771 switch v := v.(*ListServiceAccountsResponse); i { 4772 case 0: 4773 return &v.state 4774 case 1: 4775 return &v.sizeCache 4776 case 2: 4777 return &v.unknownFields 4778 default: 4779 return nil 4780 } 4781 } 4782 file_google_iam_admin_v1_iam_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 4783 switch v := v.(*GetServiceAccountRequest); i { 4784 case 0: 4785 return &v.state 4786 case 1: 4787 return &v.sizeCache 4788 case 2: 4789 return &v.unknownFields 4790 default: 4791 return nil 4792 } 4793 } 4794 file_google_iam_admin_v1_iam_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 4795 switch v := v.(*DeleteServiceAccountRequest); i { 4796 case 0: 4797 return &v.state 4798 case 1: 4799 return &v.sizeCache 4800 case 2: 4801 return &v.unknownFields 4802 default: 4803 return nil 4804 } 4805 } 4806 file_google_iam_admin_v1_iam_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 4807 switch v := v.(*PatchServiceAccountRequest); i { 4808 case 0: 4809 return &v.state 4810 case 1: 4811 return &v.sizeCache 4812 case 2: 4813 return &v.unknownFields 4814 default: 4815 return nil 4816 } 4817 } 4818 file_google_iam_admin_v1_iam_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 4819 switch v := v.(*UndeleteServiceAccountRequest); i { 4820 case 0: 4821 return &v.state 4822 case 1: 4823 return &v.sizeCache 4824 case 2: 4825 return &v.unknownFields 4826 default: 4827 return nil 4828 } 4829 } 4830 file_google_iam_admin_v1_iam_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 4831 switch v := v.(*UndeleteServiceAccountResponse); i { 4832 case 0: 4833 return &v.state 4834 case 1: 4835 return &v.sizeCache 4836 case 2: 4837 return &v.unknownFields 4838 default: 4839 return nil 4840 } 4841 } 4842 file_google_iam_admin_v1_iam_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 4843 switch v := v.(*EnableServiceAccountRequest); i { 4844 case 0: 4845 return &v.state 4846 case 1: 4847 return &v.sizeCache 4848 case 2: 4849 return &v.unknownFields 4850 default: 4851 return nil 4852 } 4853 } 4854 file_google_iam_admin_v1_iam_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 4855 switch v := v.(*DisableServiceAccountRequest); i { 4856 case 0: 4857 return &v.state 4858 case 1: 4859 return &v.sizeCache 4860 case 2: 4861 return &v.unknownFields 4862 default: 4863 return nil 4864 } 4865 } 4866 file_google_iam_admin_v1_iam_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 4867 switch v := v.(*ListServiceAccountKeysRequest); i { 4868 case 0: 4869 return &v.state 4870 case 1: 4871 return &v.sizeCache 4872 case 2: 4873 return &v.unknownFields 4874 default: 4875 return nil 4876 } 4877 } 4878 file_google_iam_admin_v1_iam_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 4879 switch v := v.(*ListServiceAccountKeysResponse); i { 4880 case 0: 4881 return &v.state 4882 case 1: 4883 return &v.sizeCache 4884 case 2: 4885 return &v.unknownFields 4886 default: 4887 return nil 4888 } 4889 } 4890 file_google_iam_admin_v1_iam_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 4891 switch v := v.(*GetServiceAccountKeyRequest); i { 4892 case 0: 4893 return &v.state 4894 case 1: 4895 return &v.sizeCache 4896 case 2: 4897 return &v.unknownFields 4898 default: 4899 return nil 4900 } 4901 } 4902 file_google_iam_admin_v1_iam_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 4903 switch v := v.(*ServiceAccountKey); i { 4904 case 0: 4905 return &v.state 4906 case 1: 4907 return &v.sizeCache 4908 case 2: 4909 return &v.unknownFields 4910 default: 4911 return nil 4912 } 4913 } 4914 file_google_iam_admin_v1_iam_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 4915 switch v := v.(*CreateServiceAccountKeyRequest); i { 4916 case 0: 4917 return &v.state 4918 case 1: 4919 return &v.sizeCache 4920 case 2: 4921 return &v.unknownFields 4922 default: 4923 return nil 4924 } 4925 } 4926 file_google_iam_admin_v1_iam_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 4927 switch v := v.(*UploadServiceAccountKeyRequest); i { 4928 case 0: 4929 return &v.state 4930 case 1: 4931 return &v.sizeCache 4932 case 2: 4933 return &v.unknownFields 4934 default: 4935 return nil 4936 } 4937 } 4938 file_google_iam_admin_v1_iam_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 4939 switch v := v.(*DeleteServiceAccountKeyRequest); i { 4940 case 0: 4941 return &v.state 4942 case 1: 4943 return &v.sizeCache 4944 case 2: 4945 return &v.unknownFields 4946 default: 4947 return nil 4948 } 4949 } 4950 file_google_iam_admin_v1_iam_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 4951 switch v := v.(*SignBlobRequest); i { 4952 case 0: 4953 return &v.state 4954 case 1: 4955 return &v.sizeCache 4956 case 2: 4957 return &v.unknownFields 4958 default: 4959 return nil 4960 } 4961 } 4962 file_google_iam_admin_v1_iam_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 4963 switch v := v.(*SignBlobResponse); i { 4964 case 0: 4965 return &v.state 4966 case 1: 4967 return &v.sizeCache 4968 case 2: 4969 return &v.unknownFields 4970 default: 4971 return nil 4972 } 4973 } 4974 file_google_iam_admin_v1_iam_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 4975 switch v := v.(*SignJwtRequest); i { 4976 case 0: 4977 return &v.state 4978 case 1: 4979 return &v.sizeCache 4980 case 2: 4981 return &v.unknownFields 4982 default: 4983 return nil 4984 } 4985 } 4986 file_google_iam_admin_v1_iam_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 4987 switch v := v.(*SignJwtResponse); i { 4988 case 0: 4989 return &v.state 4990 case 1: 4991 return &v.sizeCache 4992 case 2: 4993 return &v.unknownFields 4994 default: 4995 return nil 4996 } 4997 } 4998 file_google_iam_admin_v1_iam_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 4999 switch v := v.(*Role); i { 5000 case 0: 5001 return &v.state 5002 case 1: 5003 return &v.sizeCache 5004 case 2: 5005 return &v.unknownFields 5006 default: 5007 return nil 5008 } 5009 } 5010 file_google_iam_admin_v1_iam_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 5011 switch v := v.(*QueryGrantableRolesRequest); i { 5012 case 0: 5013 return &v.state 5014 case 1: 5015 return &v.sizeCache 5016 case 2: 5017 return &v.unknownFields 5018 default: 5019 return nil 5020 } 5021 } 5022 file_google_iam_admin_v1_iam_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 5023 switch v := v.(*QueryGrantableRolesResponse); i { 5024 case 0: 5025 return &v.state 5026 case 1: 5027 return &v.sizeCache 5028 case 2: 5029 return &v.unknownFields 5030 default: 5031 return nil 5032 } 5033 } 5034 file_google_iam_admin_v1_iam_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 5035 switch v := v.(*ListRolesRequest); i { 5036 case 0: 5037 return &v.state 5038 case 1: 5039 return &v.sizeCache 5040 case 2: 5041 return &v.unknownFields 5042 default: 5043 return nil 5044 } 5045 } 5046 file_google_iam_admin_v1_iam_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 5047 switch v := v.(*ListRolesResponse); i { 5048 case 0: 5049 return &v.state 5050 case 1: 5051 return &v.sizeCache 5052 case 2: 5053 return &v.unknownFields 5054 default: 5055 return nil 5056 } 5057 } 5058 file_google_iam_admin_v1_iam_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 5059 switch v := v.(*GetRoleRequest); i { 5060 case 0: 5061 return &v.state 5062 case 1: 5063 return &v.sizeCache 5064 case 2: 5065 return &v.unknownFields 5066 default: 5067 return nil 5068 } 5069 } 5070 file_google_iam_admin_v1_iam_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 5071 switch v := v.(*CreateRoleRequest); i { 5072 case 0: 5073 return &v.state 5074 case 1: 5075 return &v.sizeCache 5076 case 2: 5077 return &v.unknownFields 5078 default: 5079 return nil 5080 } 5081 } 5082 file_google_iam_admin_v1_iam_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 5083 switch v := v.(*UpdateRoleRequest); i { 5084 case 0: 5085 return &v.state 5086 case 1: 5087 return &v.sizeCache 5088 case 2: 5089 return &v.unknownFields 5090 default: 5091 return nil 5092 } 5093 } 5094 file_google_iam_admin_v1_iam_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 5095 switch v := v.(*DeleteRoleRequest); i { 5096 case 0: 5097 return &v.state 5098 case 1: 5099 return &v.sizeCache 5100 case 2: 5101 return &v.unknownFields 5102 default: 5103 return nil 5104 } 5105 } 5106 file_google_iam_admin_v1_iam_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 5107 switch v := v.(*UndeleteRoleRequest); i { 5108 case 0: 5109 return &v.state 5110 case 1: 5111 return &v.sizeCache 5112 case 2: 5113 return &v.unknownFields 5114 default: 5115 return nil 5116 } 5117 } 5118 file_google_iam_admin_v1_iam_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 5119 switch v := v.(*Permission); i { 5120 case 0: 5121 return &v.state 5122 case 1: 5123 return &v.sizeCache 5124 case 2: 5125 return &v.unknownFields 5126 default: 5127 return nil 5128 } 5129 } 5130 file_google_iam_admin_v1_iam_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 5131 switch v := v.(*QueryTestablePermissionsRequest); i { 5132 case 0: 5133 return &v.state 5134 case 1: 5135 return &v.sizeCache 5136 case 2: 5137 return &v.unknownFields 5138 default: 5139 return nil 5140 } 5141 } 5142 file_google_iam_admin_v1_iam_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 5143 switch v := v.(*QueryTestablePermissionsResponse); i { 5144 case 0: 5145 return &v.state 5146 case 1: 5147 return &v.sizeCache 5148 case 2: 5149 return &v.unknownFields 5150 default: 5151 return nil 5152 } 5153 } 5154 file_google_iam_admin_v1_iam_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 5155 switch v := v.(*QueryAuditableServicesRequest); i { 5156 case 0: 5157 return &v.state 5158 case 1: 5159 return &v.sizeCache 5160 case 2: 5161 return &v.unknownFields 5162 default: 5163 return nil 5164 } 5165 } 5166 file_google_iam_admin_v1_iam_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { 5167 switch v := v.(*QueryAuditableServicesResponse); i { 5168 case 0: 5169 return &v.state 5170 case 1: 5171 return &v.sizeCache 5172 case 2: 5173 return &v.unknownFields 5174 default: 5175 return nil 5176 } 5177 } 5178 file_google_iam_admin_v1_iam_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { 5179 switch v := v.(*LintPolicyRequest); i { 5180 case 0: 5181 return &v.state 5182 case 1: 5183 return &v.sizeCache 5184 case 2: 5185 return &v.unknownFields 5186 default: 5187 return nil 5188 } 5189 } 5190 file_google_iam_admin_v1_iam_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { 5191 switch v := v.(*LintResult); i { 5192 case 0: 5193 return &v.state 5194 case 1: 5195 return &v.sizeCache 5196 case 2: 5197 return &v.unknownFields 5198 default: 5199 return nil 5200 } 5201 } 5202 file_google_iam_admin_v1_iam_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { 5203 switch v := v.(*LintPolicyResponse); i { 5204 case 0: 5205 return &v.state 5206 case 1: 5207 return &v.sizeCache 5208 case 2: 5209 return &v.unknownFields 5210 default: 5211 return nil 5212 } 5213 } 5214 file_google_iam_admin_v1_iam_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { 5215 switch v := v.(*QueryAuditableServicesResponse_AuditableService); i { 5216 case 0: 5217 return &v.state 5218 case 1: 5219 return &v.sizeCache 5220 case 2: 5221 return &v.unknownFields 5222 default: 5223 return nil 5224 } 5225 } 5226 } 5227 file_google_iam_admin_v1_iam_proto_msgTypes[37].OneofWrappers = []interface{}{ 5228 (*LintPolicyRequest_Condition)(nil), 5229 } 5230 type x struct{} 5231 out := protoimpl.TypeBuilder{ 5232 File: protoimpl.DescBuilder{ 5233 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 5234 RawDescriptor: file_google_iam_admin_v1_iam_proto_rawDesc, 5235 NumEnums: 11, 5236 NumMessages: 41, 5237 NumExtensions: 0, 5238 NumServices: 1, 5239 }, 5240 GoTypes: file_google_iam_admin_v1_iam_proto_goTypes, 5241 DependencyIndexes: file_google_iam_admin_v1_iam_proto_depIdxs, 5242 EnumInfos: file_google_iam_admin_v1_iam_proto_enumTypes, 5243 MessageInfos: file_google_iam_admin_v1_iam_proto_msgTypes, 5244 }.Build() 5245 File_google_iam_admin_v1_iam_proto = out.File 5246 file_google_iam_admin_v1_iam_proto_rawDesc = nil 5247 file_google_iam_admin_v1_iam_proto_goTypes = nil 5248 file_google_iam_admin_v1_iam_proto_depIdxs = nil 5249} 5250 5251// Reference imports to suppress errors if they are not otherwise used. 5252var _ context.Context 5253var _ grpc.ClientConnInterface 5254 5255// This is a compile-time assertion to ensure that this generated file 5256// is compatible with the grpc package it is being compiled against. 5257const _ = grpc.SupportPackageIsVersion6 5258 5259// IAMClient is the client API for IAM service. 5260// 5261// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 5262type IAMClient interface { 5263 // Lists every [ServiceAccount][google.iam.admin.v1.ServiceAccount] that belongs to a specific project. 5264 ListServiceAccounts(ctx context.Context, in *ListServiceAccountsRequest, opts ...grpc.CallOption) (*ListServiceAccountsResponse, error) 5265 // Gets a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5266 GetServiceAccount(ctx context.Context, in *GetServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccount, error) 5267 // Creates a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5268 CreateServiceAccount(ctx context.Context, in *CreateServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccount, error) 5269 // **Note:** We are in the process of deprecating this method. Use 5270 // [PatchServiceAccount][google.iam.admin.v1.IAM.PatchServiceAccount] instead. 5271 // 5272 // Updates a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5273 // 5274 // You can update only the `display_name` and `description` fields. 5275 UpdateServiceAccount(ctx context.Context, in *ServiceAccount, opts ...grpc.CallOption) (*ServiceAccount, error) 5276 // Patches a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5277 PatchServiceAccount(ctx context.Context, in *PatchServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccount, error) 5278 // Deletes a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5279 // 5280 // **Warning:** After you delete a service account, you might not be able to 5281 // undelete it. If you know that you need to re-enable the service account in 5282 // the future, use [DisableServiceAccount][google.iam.admin.v1.IAM.DisableServiceAccount] instead. 5283 // 5284 // If you delete a service account, IAM permanently removes the service 5285 // account 30 days later. Google Cloud cannot recover the service account 5286 // after it is permanently removed, even if you file a support request. 5287 // 5288 // To help avoid unplanned outages, we recommend that you disable the service 5289 // account before you delete it. Use [DisableServiceAccount][google.iam.admin.v1.IAM.DisableServiceAccount] to disable the 5290 // service account, then wait at least 24 hours and watch for unintended 5291 // consequences. If there are no unintended consequences, you can delete the 5292 // service account. 5293 DeleteServiceAccount(ctx context.Context, in *DeleteServiceAccountRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 5294 // Restores a deleted [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5295 // 5296 // **Important:** It is not always possible to restore a deleted service 5297 // account. Use this method only as a last resort. 5298 // 5299 // After you delete a service account, IAM permanently removes the service 5300 // account 30 days later. There is no way to restore a deleted service account 5301 // that has been permanently removed. 5302 UndeleteServiceAccount(ctx context.Context, in *UndeleteServiceAccountRequest, opts ...grpc.CallOption) (*UndeleteServiceAccountResponse, error) 5303 // Enables a [ServiceAccount][google.iam.admin.v1.ServiceAccount] that was disabled by 5304 // [DisableServiceAccount][google.iam.admin.v1.IAM.DisableServiceAccount]. 5305 // 5306 // If the service account is already enabled, then this method has no effect. 5307 // 5308 // If the service account was disabled by other means—for example, if Google 5309 // disabled the service account because it was compromised—you cannot use this 5310 // method to enable the service account. 5311 EnableServiceAccount(ctx context.Context, in *EnableServiceAccountRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 5312 // Disables a [ServiceAccount][google.iam.admin.v1.ServiceAccount] immediately. 5313 // 5314 // If an application uses the service account to authenticate, that 5315 // application can no longer call Google APIs or access Google Cloud 5316 // resources. Existing access tokens for the service account are rejected, and 5317 // requests for new access tokens will fail. 5318 // 5319 // To re-enable the service account, use [EnableServiceAccount][google.iam.admin.v1.IAM.EnableServiceAccount]. After you 5320 // re-enable the service account, its existing access tokens will be accepted, 5321 // and you can request new access tokens. 5322 // 5323 // To help avoid unplanned outages, we recommend that you disable the service 5324 // account before you delete it. Use this method to disable the service 5325 // account, then wait at least 24 hours and watch for unintended consequences. 5326 // If there are no unintended consequences, you can delete the service account 5327 // with [DeleteServiceAccount][google.iam.admin.v1.IAM.DeleteServiceAccount]. 5328 DisableServiceAccount(ctx context.Context, in *DisableServiceAccountRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 5329 // Lists every [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey] for a service account. 5330 ListServiceAccountKeys(ctx context.Context, in *ListServiceAccountKeysRequest, opts ...grpc.CallOption) (*ListServiceAccountKeysResponse, error) 5331 // Gets a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]. 5332 GetServiceAccountKey(ctx context.Context, in *GetServiceAccountKeyRequest, opts ...grpc.CallOption) (*ServiceAccountKey, error) 5333 // Creates a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]. 5334 CreateServiceAccountKey(ctx context.Context, in *CreateServiceAccountKeyRequest, opts ...grpc.CallOption) (*ServiceAccountKey, error) 5335 // Creates a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey], using a public key that you provide. 5336 UploadServiceAccountKey(ctx context.Context, in *UploadServiceAccountKeyRequest, opts ...grpc.CallOption) (*ServiceAccountKey, error) 5337 // Deletes a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]. Deleting a service account key does not 5338 // revoke short-lived credentials that have been issued based on the service 5339 // account key. 5340 DeleteServiceAccountKey(ctx context.Context, in *DeleteServiceAccountKeyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 5341 // Deprecated: Do not use. 5342 // **Note:** This method is deprecated. Use the 5343 // [`signBlob`](https://cloud.google.com/iam/help/rest-credentials/v1/projects.serviceAccounts/signBlob) 5344 // method in the IAM Service Account Credentials API instead. If you currently 5345 // use this method, see the [migration 5346 // guide](https://cloud.google.com/iam/help/credentials/migrate-api) for 5347 // instructions. 5348 // 5349 // Signs a blob using the system-managed private key for a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5350 SignBlob(ctx context.Context, in *SignBlobRequest, opts ...grpc.CallOption) (*SignBlobResponse, error) 5351 // Deprecated: Do not use. 5352 // **Note:** This method is deprecated. Use the 5353 // [`signJwt`](https://cloud.google.com/iam/help/rest-credentials/v1/projects.serviceAccounts/signJwt) 5354 // method in the IAM Service Account Credentials API instead. If you currently 5355 // use this method, see the [migration 5356 // guide](https://cloud.google.com/iam/help/credentials/migrate-api) for 5357 // instructions. 5358 // 5359 // Signs a JSON Web Token (JWT) using the system-managed private key for a 5360 // [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5361 SignJwt(ctx context.Context, in *SignJwtRequest, opts ...grpc.CallOption) (*SignJwtResponse, error) 5362 // Gets the IAM policy that is attached to a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. This IAM 5363 // policy specifies which members have access to the service account. 5364 // 5365 // This method does not tell you whether the service account has been granted 5366 // any roles on other resources. To check whether a service account has role 5367 // grants on a resource, use the `getIamPolicy` method for that resource. For 5368 // example, to view the role grants for a project, call the Resource Manager 5369 // API's 5370 // [`projects.getIamPolicy`](https://cloud.google.com/resource-manager/reference/rest/v1/projects/getIamPolicy) 5371 // method. 5372 GetIamPolicy(ctx context.Context, in *v1.GetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error) 5373 // Sets the IAM policy that is attached to a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5374 // 5375 // Use this method to grant or revoke access to the service account. For 5376 // example, you could grant a member the ability to impersonate the service 5377 // account. 5378 // 5379 // This method does not enable the service account to access other resources. 5380 // To grant roles to a service account on a resource, follow these steps: 5381 // 5382 // 1. Call the resource's `getIamPolicy` method to get its current IAM policy. 5383 // 2. Edit the policy so that it binds the service account to an IAM role for 5384 // the resource. 5385 // 3. Call the resource's `setIamPolicy` method to update its IAM policy. 5386 // 5387 // For detailed instructions, see 5388 // [Granting roles to a service account for specific 5389 // resources](https://cloud.google.com/iam/help/service-accounts/granting-access-to-service-accounts). 5390 SetIamPolicy(ctx context.Context, in *v1.SetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error) 5391 // Tests whether the caller has the specified permissions on a 5392 // [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5393 TestIamPermissions(ctx context.Context, in *v1.TestIamPermissionsRequest, opts ...grpc.CallOption) (*v1.TestIamPermissionsResponse, error) 5394 // Lists roles that can be granted on a Google Cloud resource. A role is 5395 // grantable if the IAM policy for the resource can contain bindings to the 5396 // role. 5397 QueryGrantableRoles(ctx context.Context, in *QueryGrantableRolesRequest, opts ...grpc.CallOption) (*QueryGrantableRolesResponse, error) 5398 // Lists every predefined [Role][google.iam.admin.v1.Role] that IAM supports, or every custom role 5399 // that is defined for an organization or project. 5400 ListRoles(ctx context.Context, in *ListRolesRequest, opts ...grpc.CallOption) (*ListRolesResponse, error) 5401 // Gets the definition of a [Role][google.iam.admin.v1.Role]. 5402 GetRole(ctx context.Context, in *GetRoleRequest, opts ...grpc.CallOption) (*Role, error) 5403 // Creates a new custom [Role][google.iam.admin.v1.Role]. 5404 CreateRole(ctx context.Context, in *CreateRoleRequest, opts ...grpc.CallOption) (*Role, error) 5405 // Updates the definition of a custom [Role][google.iam.admin.v1.Role]. 5406 UpdateRole(ctx context.Context, in *UpdateRoleRequest, opts ...grpc.CallOption) (*Role, error) 5407 // Deletes a custom [Role][google.iam.admin.v1.Role]. 5408 // 5409 // When you delete a custom role, the following changes occur immediately: 5410 // 5411 // * You cannot bind a member to the custom role in an IAM 5412 // [Policy][google.iam.v1.Policy]. 5413 // * Existing bindings to the custom role are not changed, but they have no 5414 // effect. 5415 // * By default, the response from [ListRoles][google.iam.admin.v1.IAM.ListRoles] does not include the custom 5416 // role. 5417 // 5418 // You have 7 days to undelete the custom role. After 7 days, the following 5419 // changes occur: 5420 // 5421 // * The custom role is permanently deleted and cannot be recovered. 5422 // * If an IAM policy contains a binding to the custom role, the binding is 5423 // permanently removed. 5424 DeleteRole(ctx context.Context, in *DeleteRoleRequest, opts ...grpc.CallOption) (*Role, error) 5425 // Undeletes a custom [Role][google.iam.admin.v1.Role]. 5426 UndeleteRole(ctx context.Context, in *UndeleteRoleRequest, opts ...grpc.CallOption) (*Role, error) 5427 // Lists every permission that you can test on a resource. A permission is 5428 // testable if you can check whether a member has that permission on the 5429 // resource. 5430 QueryTestablePermissions(ctx context.Context, in *QueryTestablePermissionsRequest, opts ...grpc.CallOption) (*QueryTestablePermissionsResponse, error) 5431 // Returns a list of services that allow you to opt into audit logs that are 5432 // not generated by default. 5433 // 5434 // To learn more about audit logs, see the [Logging 5435 // documentation](https://cloud.google.com/logging/docs/audit). 5436 QueryAuditableServices(ctx context.Context, in *QueryAuditableServicesRequest, opts ...grpc.CallOption) (*QueryAuditableServicesResponse, error) 5437 // Lints, or validates, an IAM policy. Currently checks the 5438 // [google.iam.v1.Binding.condition][google.iam.v1.Binding.condition] field, which contains a condition 5439 // expression for a role binding. 5440 // 5441 // Successful calls to this method always return an HTTP `200 OK` status code, 5442 // even if the linter detects an issue in the IAM policy. 5443 LintPolicy(ctx context.Context, in *LintPolicyRequest, opts ...grpc.CallOption) (*LintPolicyResponse, error) 5444} 5445 5446type iAMClient struct { 5447 cc grpc.ClientConnInterface 5448} 5449 5450func NewIAMClient(cc grpc.ClientConnInterface) IAMClient { 5451 return &iAMClient{cc} 5452} 5453 5454func (c *iAMClient) ListServiceAccounts(ctx context.Context, in *ListServiceAccountsRequest, opts ...grpc.CallOption) (*ListServiceAccountsResponse, error) { 5455 out := new(ListServiceAccountsResponse) 5456 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/ListServiceAccounts", in, out, opts...) 5457 if err != nil { 5458 return nil, err 5459 } 5460 return out, nil 5461} 5462 5463func (c *iAMClient) GetServiceAccount(ctx context.Context, in *GetServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccount, error) { 5464 out := new(ServiceAccount) 5465 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/GetServiceAccount", in, out, opts...) 5466 if err != nil { 5467 return nil, err 5468 } 5469 return out, nil 5470} 5471 5472func (c *iAMClient) CreateServiceAccount(ctx context.Context, in *CreateServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccount, error) { 5473 out := new(ServiceAccount) 5474 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/CreateServiceAccount", in, out, opts...) 5475 if err != nil { 5476 return nil, err 5477 } 5478 return out, nil 5479} 5480 5481func (c *iAMClient) UpdateServiceAccount(ctx context.Context, in *ServiceAccount, opts ...grpc.CallOption) (*ServiceAccount, error) { 5482 out := new(ServiceAccount) 5483 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/UpdateServiceAccount", in, out, opts...) 5484 if err != nil { 5485 return nil, err 5486 } 5487 return out, nil 5488} 5489 5490func (c *iAMClient) PatchServiceAccount(ctx context.Context, in *PatchServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccount, error) { 5491 out := new(ServiceAccount) 5492 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/PatchServiceAccount", in, out, opts...) 5493 if err != nil { 5494 return nil, err 5495 } 5496 return out, nil 5497} 5498 5499func (c *iAMClient) DeleteServiceAccount(ctx context.Context, in *DeleteServiceAccountRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 5500 out := new(emptypb.Empty) 5501 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/DeleteServiceAccount", in, out, opts...) 5502 if err != nil { 5503 return nil, err 5504 } 5505 return out, nil 5506} 5507 5508func (c *iAMClient) UndeleteServiceAccount(ctx context.Context, in *UndeleteServiceAccountRequest, opts ...grpc.CallOption) (*UndeleteServiceAccountResponse, error) { 5509 out := new(UndeleteServiceAccountResponse) 5510 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/UndeleteServiceAccount", in, out, opts...) 5511 if err != nil { 5512 return nil, err 5513 } 5514 return out, nil 5515} 5516 5517func (c *iAMClient) EnableServiceAccount(ctx context.Context, in *EnableServiceAccountRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 5518 out := new(emptypb.Empty) 5519 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/EnableServiceAccount", in, out, opts...) 5520 if err != nil { 5521 return nil, err 5522 } 5523 return out, nil 5524} 5525 5526func (c *iAMClient) DisableServiceAccount(ctx context.Context, in *DisableServiceAccountRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 5527 out := new(emptypb.Empty) 5528 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/DisableServiceAccount", in, out, opts...) 5529 if err != nil { 5530 return nil, err 5531 } 5532 return out, nil 5533} 5534 5535func (c *iAMClient) ListServiceAccountKeys(ctx context.Context, in *ListServiceAccountKeysRequest, opts ...grpc.CallOption) (*ListServiceAccountKeysResponse, error) { 5536 out := new(ListServiceAccountKeysResponse) 5537 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/ListServiceAccountKeys", in, out, opts...) 5538 if err != nil { 5539 return nil, err 5540 } 5541 return out, nil 5542} 5543 5544func (c *iAMClient) GetServiceAccountKey(ctx context.Context, in *GetServiceAccountKeyRequest, opts ...grpc.CallOption) (*ServiceAccountKey, error) { 5545 out := new(ServiceAccountKey) 5546 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/GetServiceAccountKey", in, out, opts...) 5547 if err != nil { 5548 return nil, err 5549 } 5550 return out, nil 5551} 5552 5553func (c *iAMClient) CreateServiceAccountKey(ctx context.Context, in *CreateServiceAccountKeyRequest, opts ...grpc.CallOption) (*ServiceAccountKey, error) { 5554 out := new(ServiceAccountKey) 5555 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/CreateServiceAccountKey", in, out, opts...) 5556 if err != nil { 5557 return nil, err 5558 } 5559 return out, nil 5560} 5561 5562func (c *iAMClient) UploadServiceAccountKey(ctx context.Context, in *UploadServiceAccountKeyRequest, opts ...grpc.CallOption) (*ServiceAccountKey, error) { 5563 out := new(ServiceAccountKey) 5564 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/UploadServiceAccountKey", in, out, opts...) 5565 if err != nil { 5566 return nil, err 5567 } 5568 return out, nil 5569} 5570 5571func (c *iAMClient) DeleteServiceAccountKey(ctx context.Context, in *DeleteServiceAccountKeyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 5572 out := new(emptypb.Empty) 5573 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/DeleteServiceAccountKey", in, out, opts...) 5574 if err != nil { 5575 return nil, err 5576 } 5577 return out, nil 5578} 5579 5580// Deprecated: Do not use. 5581func (c *iAMClient) SignBlob(ctx context.Context, in *SignBlobRequest, opts ...grpc.CallOption) (*SignBlobResponse, error) { 5582 out := new(SignBlobResponse) 5583 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/SignBlob", in, out, opts...) 5584 if err != nil { 5585 return nil, err 5586 } 5587 return out, nil 5588} 5589 5590// Deprecated: Do not use. 5591func (c *iAMClient) SignJwt(ctx context.Context, in *SignJwtRequest, opts ...grpc.CallOption) (*SignJwtResponse, error) { 5592 out := new(SignJwtResponse) 5593 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/SignJwt", in, out, opts...) 5594 if err != nil { 5595 return nil, err 5596 } 5597 return out, nil 5598} 5599 5600func (c *iAMClient) GetIamPolicy(ctx context.Context, in *v1.GetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error) { 5601 out := new(v1.Policy) 5602 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/GetIamPolicy", in, out, opts...) 5603 if err != nil { 5604 return nil, err 5605 } 5606 return out, nil 5607} 5608 5609func (c *iAMClient) SetIamPolicy(ctx context.Context, in *v1.SetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error) { 5610 out := new(v1.Policy) 5611 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/SetIamPolicy", in, out, opts...) 5612 if err != nil { 5613 return nil, err 5614 } 5615 return out, nil 5616} 5617 5618func (c *iAMClient) TestIamPermissions(ctx context.Context, in *v1.TestIamPermissionsRequest, opts ...grpc.CallOption) (*v1.TestIamPermissionsResponse, error) { 5619 out := new(v1.TestIamPermissionsResponse) 5620 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/TestIamPermissions", in, out, opts...) 5621 if err != nil { 5622 return nil, err 5623 } 5624 return out, nil 5625} 5626 5627func (c *iAMClient) QueryGrantableRoles(ctx context.Context, in *QueryGrantableRolesRequest, opts ...grpc.CallOption) (*QueryGrantableRolesResponse, error) { 5628 out := new(QueryGrantableRolesResponse) 5629 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/QueryGrantableRoles", in, out, opts...) 5630 if err != nil { 5631 return nil, err 5632 } 5633 return out, nil 5634} 5635 5636func (c *iAMClient) ListRoles(ctx context.Context, in *ListRolesRequest, opts ...grpc.CallOption) (*ListRolesResponse, error) { 5637 out := new(ListRolesResponse) 5638 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/ListRoles", in, out, opts...) 5639 if err != nil { 5640 return nil, err 5641 } 5642 return out, nil 5643} 5644 5645func (c *iAMClient) GetRole(ctx context.Context, in *GetRoleRequest, opts ...grpc.CallOption) (*Role, error) { 5646 out := new(Role) 5647 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/GetRole", in, out, opts...) 5648 if err != nil { 5649 return nil, err 5650 } 5651 return out, nil 5652} 5653 5654func (c *iAMClient) CreateRole(ctx context.Context, in *CreateRoleRequest, opts ...grpc.CallOption) (*Role, error) { 5655 out := new(Role) 5656 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/CreateRole", in, out, opts...) 5657 if err != nil { 5658 return nil, err 5659 } 5660 return out, nil 5661} 5662 5663func (c *iAMClient) UpdateRole(ctx context.Context, in *UpdateRoleRequest, opts ...grpc.CallOption) (*Role, error) { 5664 out := new(Role) 5665 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/UpdateRole", in, out, opts...) 5666 if err != nil { 5667 return nil, err 5668 } 5669 return out, nil 5670} 5671 5672func (c *iAMClient) DeleteRole(ctx context.Context, in *DeleteRoleRequest, opts ...grpc.CallOption) (*Role, error) { 5673 out := new(Role) 5674 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/DeleteRole", in, out, opts...) 5675 if err != nil { 5676 return nil, err 5677 } 5678 return out, nil 5679} 5680 5681func (c *iAMClient) UndeleteRole(ctx context.Context, in *UndeleteRoleRequest, opts ...grpc.CallOption) (*Role, error) { 5682 out := new(Role) 5683 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/UndeleteRole", in, out, opts...) 5684 if err != nil { 5685 return nil, err 5686 } 5687 return out, nil 5688} 5689 5690func (c *iAMClient) QueryTestablePermissions(ctx context.Context, in *QueryTestablePermissionsRequest, opts ...grpc.CallOption) (*QueryTestablePermissionsResponse, error) { 5691 out := new(QueryTestablePermissionsResponse) 5692 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/QueryTestablePermissions", in, out, opts...) 5693 if err != nil { 5694 return nil, err 5695 } 5696 return out, nil 5697} 5698 5699func (c *iAMClient) QueryAuditableServices(ctx context.Context, in *QueryAuditableServicesRequest, opts ...grpc.CallOption) (*QueryAuditableServicesResponse, error) { 5700 out := new(QueryAuditableServicesResponse) 5701 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/QueryAuditableServices", in, out, opts...) 5702 if err != nil { 5703 return nil, err 5704 } 5705 return out, nil 5706} 5707 5708func (c *iAMClient) LintPolicy(ctx context.Context, in *LintPolicyRequest, opts ...grpc.CallOption) (*LintPolicyResponse, error) { 5709 out := new(LintPolicyResponse) 5710 err := c.cc.Invoke(ctx, "/google.iam.admin.v1.IAM/LintPolicy", in, out, opts...) 5711 if err != nil { 5712 return nil, err 5713 } 5714 return out, nil 5715} 5716 5717// IAMServer is the server API for IAM service. 5718type IAMServer interface { 5719 // Lists every [ServiceAccount][google.iam.admin.v1.ServiceAccount] that belongs to a specific project. 5720 ListServiceAccounts(context.Context, *ListServiceAccountsRequest) (*ListServiceAccountsResponse, error) 5721 // Gets a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5722 GetServiceAccount(context.Context, *GetServiceAccountRequest) (*ServiceAccount, error) 5723 // Creates a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5724 CreateServiceAccount(context.Context, *CreateServiceAccountRequest) (*ServiceAccount, error) 5725 // **Note:** We are in the process of deprecating this method. Use 5726 // [PatchServiceAccount][google.iam.admin.v1.IAM.PatchServiceAccount] instead. 5727 // 5728 // Updates a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5729 // 5730 // You can update only the `display_name` and `description` fields. 5731 UpdateServiceAccount(context.Context, *ServiceAccount) (*ServiceAccount, error) 5732 // Patches a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5733 PatchServiceAccount(context.Context, *PatchServiceAccountRequest) (*ServiceAccount, error) 5734 // Deletes a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5735 // 5736 // **Warning:** After you delete a service account, you might not be able to 5737 // undelete it. If you know that you need to re-enable the service account in 5738 // the future, use [DisableServiceAccount][google.iam.admin.v1.IAM.DisableServiceAccount] instead. 5739 // 5740 // If you delete a service account, IAM permanently removes the service 5741 // account 30 days later. Google Cloud cannot recover the service account 5742 // after it is permanently removed, even if you file a support request. 5743 // 5744 // To help avoid unplanned outages, we recommend that you disable the service 5745 // account before you delete it. Use [DisableServiceAccount][google.iam.admin.v1.IAM.DisableServiceAccount] to disable the 5746 // service account, then wait at least 24 hours and watch for unintended 5747 // consequences. If there are no unintended consequences, you can delete the 5748 // service account. 5749 DeleteServiceAccount(context.Context, *DeleteServiceAccountRequest) (*emptypb.Empty, error) 5750 // Restores a deleted [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5751 // 5752 // **Important:** It is not always possible to restore a deleted service 5753 // account. Use this method only as a last resort. 5754 // 5755 // After you delete a service account, IAM permanently removes the service 5756 // account 30 days later. There is no way to restore a deleted service account 5757 // that has been permanently removed. 5758 UndeleteServiceAccount(context.Context, *UndeleteServiceAccountRequest) (*UndeleteServiceAccountResponse, error) 5759 // Enables a [ServiceAccount][google.iam.admin.v1.ServiceAccount] that was disabled by 5760 // [DisableServiceAccount][google.iam.admin.v1.IAM.DisableServiceAccount]. 5761 // 5762 // If the service account is already enabled, then this method has no effect. 5763 // 5764 // If the service account was disabled by other means—for example, if Google 5765 // disabled the service account because it was compromised—you cannot use this 5766 // method to enable the service account. 5767 EnableServiceAccount(context.Context, *EnableServiceAccountRequest) (*emptypb.Empty, error) 5768 // Disables a [ServiceAccount][google.iam.admin.v1.ServiceAccount] immediately. 5769 // 5770 // If an application uses the service account to authenticate, that 5771 // application can no longer call Google APIs or access Google Cloud 5772 // resources. Existing access tokens for the service account are rejected, and 5773 // requests for new access tokens will fail. 5774 // 5775 // To re-enable the service account, use [EnableServiceAccount][google.iam.admin.v1.IAM.EnableServiceAccount]. After you 5776 // re-enable the service account, its existing access tokens will be accepted, 5777 // and you can request new access tokens. 5778 // 5779 // To help avoid unplanned outages, we recommend that you disable the service 5780 // account before you delete it. Use this method to disable the service 5781 // account, then wait at least 24 hours and watch for unintended consequences. 5782 // If there are no unintended consequences, you can delete the service account 5783 // with [DeleteServiceAccount][google.iam.admin.v1.IAM.DeleteServiceAccount]. 5784 DisableServiceAccount(context.Context, *DisableServiceAccountRequest) (*emptypb.Empty, error) 5785 // Lists every [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey] for a service account. 5786 ListServiceAccountKeys(context.Context, *ListServiceAccountKeysRequest) (*ListServiceAccountKeysResponse, error) 5787 // Gets a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]. 5788 GetServiceAccountKey(context.Context, *GetServiceAccountKeyRequest) (*ServiceAccountKey, error) 5789 // Creates a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]. 5790 CreateServiceAccountKey(context.Context, *CreateServiceAccountKeyRequest) (*ServiceAccountKey, error) 5791 // Creates a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey], using a public key that you provide. 5792 UploadServiceAccountKey(context.Context, *UploadServiceAccountKeyRequest) (*ServiceAccountKey, error) 5793 // Deletes a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]. Deleting a service account key does not 5794 // revoke short-lived credentials that have been issued based on the service 5795 // account key. 5796 DeleteServiceAccountKey(context.Context, *DeleteServiceAccountKeyRequest) (*emptypb.Empty, error) 5797 // Deprecated: Do not use. 5798 // **Note:** This method is deprecated. Use the 5799 // [`signBlob`](https://cloud.google.com/iam/help/rest-credentials/v1/projects.serviceAccounts/signBlob) 5800 // method in the IAM Service Account Credentials API instead. If you currently 5801 // use this method, see the [migration 5802 // guide](https://cloud.google.com/iam/help/credentials/migrate-api) for 5803 // instructions. 5804 // 5805 // Signs a blob using the system-managed private key for a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5806 SignBlob(context.Context, *SignBlobRequest) (*SignBlobResponse, error) 5807 // Deprecated: Do not use. 5808 // **Note:** This method is deprecated. Use the 5809 // [`signJwt`](https://cloud.google.com/iam/help/rest-credentials/v1/projects.serviceAccounts/signJwt) 5810 // method in the IAM Service Account Credentials API instead. If you currently 5811 // use this method, see the [migration 5812 // guide](https://cloud.google.com/iam/help/credentials/migrate-api) for 5813 // instructions. 5814 // 5815 // Signs a JSON Web Token (JWT) using the system-managed private key for a 5816 // [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5817 SignJwt(context.Context, *SignJwtRequest) (*SignJwtResponse, error) 5818 // Gets the IAM policy that is attached to a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. This IAM 5819 // policy specifies which members have access to the service account. 5820 // 5821 // This method does not tell you whether the service account has been granted 5822 // any roles on other resources. To check whether a service account has role 5823 // grants on a resource, use the `getIamPolicy` method for that resource. For 5824 // example, to view the role grants for a project, call the Resource Manager 5825 // API's 5826 // [`projects.getIamPolicy`](https://cloud.google.com/resource-manager/reference/rest/v1/projects/getIamPolicy) 5827 // method. 5828 GetIamPolicy(context.Context, *v1.GetIamPolicyRequest) (*v1.Policy, error) 5829 // Sets the IAM policy that is attached to a [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5830 // 5831 // Use this method to grant or revoke access to the service account. For 5832 // example, you could grant a member the ability to impersonate the service 5833 // account. 5834 // 5835 // This method does not enable the service account to access other resources. 5836 // To grant roles to a service account on a resource, follow these steps: 5837 // 5838 // 1. Call the resource's `getIamPolicy` method to get its current IAM policy. 5839 // 2. Edit the policy so that it binds the service account to an IAM role for 5840 // the resource. 5841 // 3. Call the resource's `setIamPolicy` method to update its IAM policy. 5842 // 5843 // For detailed instructions, see 5844 // [Granting roles to a service account for specific 5845 // resources](https://cloud.google.com/iam/help/service-accounts/granting-access-to-service-accounts). 5846 SetIamPolicy(context.Context, *v1.SetIamPolicyRequest) (*v1.Policy, error) 5847 // Tests whether the caller has the specified permissions on a 5848 // [ServiceAccount][google.iam.admin.v1.ServiceAccount]. 5849 TestIamPermissions(context.Context, *v1.TestIamPermissionsRequest) (*v1.TestIamPermissionsResponse, error) 5850 // Lists roles that can be granted on a Google Cloud resource. A role is 5851 // grantable if the IAM policy for the resource can contain bindings to the 5852 // role. 5853 QueryGrantableRoles(context.Context, *QueryGrantableRolesRequest) (*QueryGrantableRolesResponse, error) 5854 // Lists every predefined [Role][google.iam.admin.v1.Role] that IAM supports, or every custom role 5855 // that is defined for an organization or project. 5856 ListRoles(context.Context, *ListRolesRequest) (*ListRolesResponse, error) 5857 // Gets the definition of a [Role][google.iam.admin.v1.Role]. 5858 GetRole(context.Context, *GetRoleRequest) (*Role, error) 5859 // Creates a new custom [Role][google.iam.admin.v1.Role]. 5860 CreateRole(context.Context, *CreateRoleRequest) (*Role, error) 5861 // Updates the definition of a custom [Role][google.iam.admin.v1.Role]. 5862 UpdateRole(context.Context, *UpdateRoleRequest) (*Role, error) 5863 // Deletes a custom [Role][google.iam.admin.v1.Role]. 5864 // 5865 // When you delete a custom role, the following changes occur immediately: 5866 // 5867 // * You cannot bind a member to the custom role in an IAM 5868 // [Policy][google.iam.v1.Policy]. 5869 // * Existing bindings to the custom role are not changed, but they have no 5870 // effect. 5871 // * By default, the response from [ListRoles][google.iam.admin.v1.IAM.ListRoles] does not include the custom 5872 // role. 5873 // 5874 // You have 7 days to undelete the custom role. After 7 days, the following 5875 // changes occur: 5876 // 5877 // * The custom role is permanently deleted and cannot be recovered. 5878 // * If an IAM policy contains a binding to the custom role, the binding is 5879 // permanently removed. 5880 DeleteRole(context.Context, *DeleteRoleRequest) (*Role, error) 5881 // Undeletes a custom [Role][google.iam.admin.v1.Role]. 5882 UndeleteRole(context.Context, *UndeleteRoleRequest) (*Role, error) 5883 // Lists every permission that you can test on a resource. A permission is 5884 // testable if you can check whether a member has that permission on the 5885 // resource. 5886 QueryTestablePermissions(context.Context, *QueryTestablePermissionsRequest) (*QueryTestablePermissionsResponse, error) 5887 // Returns a list of services that allow you to opt into audit logs that are 5888 // not generated by default. 5889 // 5890 // To learn more about audit logs, see the [Logging 5891 // documentation](https://cloud.google.com/logging/docs/audit). 5892 QueryAuditableServices(context.Context, *QueryAuditableServicesRequest) (*QueryAuditableServicesResponse, error) 5893 // Lints, or validates, an IAM policy. Currently checks the 5894 // [google.iam.v1.Binding.condition][google.iam.v1.Binding.condition] field, which contains a condition 5895 // expression for a role binding. 5896 // 5897 // Successful calls to this method always return an HTTP `200 OK` status code, 5898 // even if the linter detects an issue in the IAM policy. 5899 LintPolicy(context.Context, *LintPolicyRequest) (*LintPolicyResponse, error) 5900} 5901 5902// UnimplementedIAMServer can be embedded to have forward compatible implementations. 5903type UnimplementedIAMServer struct { 5904} 5905 5906func (*UnimplementedIAMServer) ListServiceAccounts(context.Context, *ListServiceAccountsRequest) (*ListServiceAccountsResponse, error) { 5907 return nil, status.Errorf(codes.Unimplemented, "method ListServiceAccounts not implemented") 5908} 5909func (*UnimplementedIAMServer) GetServiceAccount(context.Context, *GetServiceAccountRequest) (*ServiceAccount, error) { 5910 return nil, status.Errorf(codes.Unimplemented, "method GetServiceAccount not implemented") 5911} 5912func (*UnimplementedIAMServer) CreateServiceAccount(context.Context, *CreateServiceAccountRequest) (*ServiceAccount, error) { 5913 return nil, status.Errorf(codes.Unimplemented, "method CreateServiceAccount not implemented") 5914} 5915func (*UnimplementedIAMServer) UpdateServiceAccount(context.Context, *ServiceAccount) (*ServiceAccount, error) { 5916 return nil, status.Errorf(codes.Unimplemented, "method UpdateServiceAccount not implemented") 5917} 5918func (*UnimplementedIAMServer) PatchServiceAccount(context.Context, *PatchServiceAccountRequest) (*ServiceAccount, error) { 5919 return nil, status.Errorf(codes.Unimplemented, "method PatchServiceAccount not implemented") 5920} 5921func (*UnimplementedIAMServer) DeleteServiceAccount(context.Context, *DeleteServiceAccountRequest) (*emptypb.Empty, error) { 5922 return nil, status.Errorf(codes.Unimplemented, "method DeleteServiceAccount not implemented") 5923} 5924func (*UnimplementedIAMServer) UndeleteServiceAccount(context.Context, *UndeleteServiceAccountRequest) (*UndeleteServiceAccountResponse, error) { 5925 return nil, status.Errorf(codes.Unimplemented, "method UndeleteServiceAccount not implemented") 5926} 5927func (*UnimplementedIAMServer) EnableServiceAccount(context.Context, *EnableServiceAccountRequest) (*emptypb.Empty, error) { 5928 return nil, status.Errorf(codes.Unimplemented, "method EnableServiceAccount not implemented") 5929} 5930func (*UnimplementedIAMServer) DisableServiceAccount(context.Context, *DisableServiceAccountRequest) (*emptypb.Empty, error) { 5931 return nil, status.Errorf(codes.Unimplemented, "method DisableServiceAccount not implemented") 5932} 5933func (*UnimplementedIAMServer) ListServiceAccountKeys(context.Context, *ListServiceAccountKeysRequest) (*ListServiceAccountKeysResponse, error) { 5934 return nil, status.Errorf(codes.Unimplemented, "method ListServiceAccountKeys not implemented") 5935} 5936func (*UnimplementedIAMServer) GetServiceAccountKey(context.Context, *GetServiceAccountKeyRequest) (*ServiceAccountKey, error) { 5937 return nil, status.Errorf(codes.Unimplemented, "method GetServiceAccountKey not implemented") 5938} 5939func (*UnimplementedIAMServer) CreateServiceAccountKey(context.Context, *CreateServiceAccountKeyRequest) (*ServiceAccountKey, error) { 5940 return nil, status.Errorf(codes.Unimplemented, "method CreateServiceAccountKey not implemented") 5941} 5942func (*UnimplementedIAMServer) UploadServiceAccountKey(context.Context, *UploadServiceAccountKeyRequest) (*ServiceAccountKey, error) { 5943 return nil, status.Errorf(codes.Unimplemented, "method UploadServiceAccountKey not implemented") 5944} 5945func (*UnimplementedIAMServer) DeleteServiceAccountKey(context.Context, *DeleteServiceAccountKeyRequest) (*emptypb.Empty, error) { 5946 return nil, status.Errorf(codes.Unimplemented, "method DeleteServiceAccountKey not implemented") 5947} 5948func (*UnimplementedIAMServer) SignBlob(context.Context, *SignBlobRequest) (*SignBlobResponse, error) { 5949 return nil, status.Errorf(codes.Unimplemented, "method SignBlob not implemented") 5950} 5951func (*UnimplementedIAMServer) SignJwt(context.Context, *SignJwtRequest) (*SignJwtResponse, error) { 5952 return nil, status.Errorf(codes.Unimplemented, "method SignJwt not implemented") 5953} 5954func (*UnimplementedIAMServer) GetIamPolicy(context.Context, *v1.GetIamPolicyRequest) (*v1.Policy, error) { 5955 return nil, status.Errorf(codes.Unimplemented, "method GetIamPolicy not implemented") 5956} 5957func (*UnimplementedIAMServer) SetIamPolicy(context.Context, *v1.SetIamPolicyRequest) (*v1.Policy, error) { 5958 return nil, status.Errorf(codes.Unimplemented, "method SetIamPolicy not implemented") 5959} 5960func (*UnimplementedIAMServer) TestIamPermissions(context.Context, *v1.TestIamPermissionsRequest) (*v1.TestIamPermissionsResponse, error) { 5961 return nil, status.Errorf(codes.Unimplemented, "method TestIamPermissions not implemented") 5962} 5963func (*UnimplementedIAMServer) QueryGrantableRoles(context.Context, *QueryGrantableRolesRequest) (*QueryGrantableRolesResponse, error) { 5964 return nil, status.Errorf(codes.Unimplemented, "method QueryGrantableRoles not implemented") 5965} 5966func (*UnimplementedIAMServer) ListRoles(context.Context, *ListRolesRequest) (*ListRolesResponse, error) { 5967 return nil, status.Errorf(codes.Unimplemented, "method ListRoles not implemented") 5968} 5969func (*UnimplementedIAMServer) GetRole(context.Context, *GetRoleRequest) (*Role, error) { 5970 return nil, status.Errorf(codes.Unimplemented, "method GetRole not implemented") 5971} 5972func (*UnimplementedIAMServer) CreateRole(context.Context, *CreateRoleRequest) (*Role, error) { 5973 return nil, status.Errorf(codes.Unimplemented, "method CreateRole not implemented") 5974} 5975func (*UnimplementedIAMServer) UpdateRole(context.Context, *UpdateRoleRequest) (*Role, error) { 5976 return nil, status.Errorf(codes.Unimplemented, "method UpdateRole not implemented") 5977} 5978func (*UnimplementedIAMServer) DeleteRole(context.Context, *DeleteRoleRequest) (*Role, error) { 5979 return nil, status.Errorf(codes.Unimplemented, "method DeleteRole not implemented") 5980} 5981func (*UnimplementedIAMServer) UndeleteRole(context.Context, *UndeleteRoleRequest) (*Role, error) { 5982 return nil, status.Errorf(codes.Unimplemented, "method UndeleteRole not implemented") 5983} 5984func (*UnimplementedIAMServer) QueryTestablePermissions(context.Context, *QueryTestablePermissionsRequest) (*QueryTestablePermissionsResponse, error) { 5985 return nil, status.Errorf(codes.Unimplemented, "method QueryTestablePermissions not implemented") 5986} 5987func (*UnimplementedIAMServer) QueryAuditableServices(context.Context, *QueryAuditableServicesRequest) (*QueryAuditableServicesResponse, error) { 5988 return nil, status.Errorf(codes.Unimplemented, "method QueryAuditableServices not implemented") 5989} 5990func (*UnimplementedIAMServer) LintPolicy(context.Context, *LintPolicyRequest) (*LintPolicyResponse, error) { 5991 return nil, status.Errorf(codes.Unimplemented, "method LintPolicy not implemented") 5992} 5993 5994func RegisterIAMServer(s *grpc.Server, srv IAMServer) { 5995 s.RegisterService(&_IAM_serviceDesc, srv) 5996} 5997 5998func _IAM_ListServiceAccounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5999 in := new(ListServiceAccountsRequest) 6000 if err := dec(in); err != nil { 6001 return nil, err 6002 } 6003 if interceptor == nil { 6004 return srv.(IAMServer).ListServiceAccounts(ctx, in) 6005 } 6006 info := &grpc.UnaryServerInfo{ 6007 Server: srv, 6008 FullMethod: "/google.iam.admin.v1.IAM/ListServiceAccounts", 6009 } 6010 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6011 return srv.(IAMServer).ListServiceAccounts(ctx, req.(*ListServiceAccountsRequest)) 6012 } 6013 return interceptor(ctx, in, info, handler) 6014} 6015 6016func _IAM_GetServiceAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6017 in := new(GetServiceAccountRequest) 6018 if err := dec(in); err != nil { 6019 return nil, err 6020 } 6021 if interceptor == nil { 6022 return srv.(IAMServer).GetServiceAccount(ctx, in) 6023 } 6024 info := &grpc.UnaryServerInfo{ 6025 Server: srv, 6026 FullMethod: "/google.iam.admin.v1.IAM/GetServiceAccount", 6027 } 6028 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6029 return srv.(IAMServer).GetServiceAccount(ctx, req.(*GetServiceAccountRequest)) 6030 } 6031 return interceptor(ctx, in, info, handler) 6032} 6033 6034func _IAM_CreateServiceAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6035 in := new(CreateServiceAccountRequest) 6036 if err := dec(in); err != nil { 6037 return nil, err 6038 } 6039 if interceptor == nil { 6040 return srv.(IAMServer).CreateServiceAccount(ctx, in) 6041 } 6042 info := &grpc.UnaryServerInfo{ 6043 Server: srv, 6044 FullMethod: "/google.iam.admin.v1.IAM/CreateServiceAccount", 6045 } 6046 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6047 return srv.(IAMServer).CreateServiceAccount(ctx, req.(*CreateServiceAccountRequest)) 6048 } 6049 return interceptor(ctx, in, info, handler) 6050} 6051 6052func _IAM_UpdateServiceAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6053 in := new(ServiceAccount) 6054 if err := dec(in); err != nil { 6055 return nil, err 6056 } 6057 if interceptor == nil { 6058 return srv.(IAMServer).UpdateServiceAccount(ctx, in) 6059 } 6060 info := &grpc.UnaryServerInfo{ 6061 Server: srv, 6062 FullMethod: "/google.iam.admin.v1.IAM/UpdateServiceAccount", 6063 } 6064 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6065 return srv.(IAMServer).UpdateServiceAccount(ctx, req.(*ServiceAccount)) 6066 } 6067 return interceptor(ctx, in, info, handler) 6068} 6069 6070func _IAM_PatchServiceAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6071 in := new(PatchServiceAccountRequest) 6072 if err := dec(in); err != nil { 6073 return nil, err 6074 } 6075 if interceptor == nil { 6076 return srv.(IAMServer).PatchServiceAccount(ctx, in) 6077 } 6078 info := &grpc.UnaryServerInfo{ 6079 Server: srv, 6080 FullMethod: "/google.iam.admin.v1.IAM/PatchServiceAccount", 6081 } 6082 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6083 return srv.(IAMServer).PatchServiceAccount(ctx, req.(*PatchServiceAccountRequest)) 6084 } 6085 return interceptor(ctx, in, info, handler) 6086} 6087 6088func _IAM_DeleteServiceAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6089 in := new(DeleteServiceAccountRequest) 6090 if err := dec(in); err != nil { 6091 return nil, err 6092 } 6093 if interceptor == nil { 6094 return srv.(IAMServer).DeleteServiceAccount(ctx, in) 6095 } 6096 info := &grpc.UnaryServerInfo{ 6097 Server: srv, 6098 FullMethod: "/google.iam.admin.v1.IAM/DeleteServiceAccount", 6099 } 6100 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6101 return srv.(IAMServer).DeleteServiceAccount(ctx, req.(*DeleteServiceAccountRequest)) 6102 } 6103 return interceptor(ctx, in, info, handler) 6104} 6105 6106func _IAM_UndeleteServiceAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6107 in := new(UndeleteServiceAccountRequest) 6108 if err := dec(in); err != nil { 6109 return nil, err 6110 } 6111 if interceptor == nil { 6112 return srv.(IAMServer).UndeleteServiceAccount(ctx, in) 6113 } 6114 info := &grpc.UnaryServerInfo{ 6115 Server: srv, 6116 FullMethod: "/google.iam.admin.v1.IAM/UndeleteServiceAccount", 6117 } 6118 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6119 return srv.(IAMServer).UndeleteServiceAccount(ctx, req.(*UndeleteServiceAccountRequest)) 6120 } 6121 return interceptor(ctx, in, info, handler) 6122} 6123 6124func _IAM_EnableServiceAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6125 in := new(EnableServiceAccountRequest) 6126 if err := dec(in); err != nil { 6127 return nil, err 6128 } 6129 if interceptor == nil { 6130 return srv.(IAMServer).EnableServiceAccount(ctx, in) 6131 } 6132 info := &grpc.UnaryServerInfo{ 6133 Server: srv, 6134 FullMethod: "/google.iam.admin.v1.IAM/EnableServiceAccount", 6135 } 6136 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6137 return srv.(IAMServer).EnableServiceAccount(ctx, req.(*EnableServiceAccountRequest)) 6138 } 6139 return interceptor(ctx, in, info, handler) 6140} 6141 6142func _IAM_DisableServiceAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6143 in := new(DisableServiceAccountRequest) 6144 if err := dec(in); err != nil { 6145 return nil, err 6146 } 6147 if interceptor == nil { 6148 return srv.(IAMServer).DisableServiceAccount(ctx, in) 6149 } 6150 info := &grpc.UnaryServerInfo{ 6151 Server: srv, 6152 FullMethod: "/google.iam.admin.v1.IAM/DisableServiceAccount", 6153 } 6154 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6155 return srv.(IAMServer).DisableServiceAccount(ctx, req.(*DisableServiceAccountRequest)) 6156 } 6157 return interceptor(ctx, in, info, handler) 6158} 6159 6160func _IAM_ListServiceAccountKeys_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6161 in := new(ListServiceAccountKeysRequest) 6162 if err := dec(in); err != nil { 6163 return nil, err 6164 } 6165 if interceptor == nil { 6166 return srv.(IAMServer).ListServiceAccountKeys(ctx, in) 6167 } 6168 info := &grpc.UnaryServerInfo{ 6169 Server: srv, 6170 FullMethod: "/google.iam.admin.v1.IAM/ListServiceAccountKeys", 6171 } 6172 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6173 return srv.(IAMServer).ListServiceAccountKeys(ctx, req.(*ListServiceAccountKeysRequest)) 6174 } 6175 return interceptor(ctx, in, info, handler) 6176} 6177 6178func _IAM_GetServiceAccountKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6179 in := new(GetServiceAccountKeyRequest) 6180 if err := dec(in); err != nil { 6181 return nil, err 6182 } 6183 if interceptor == nil { 6184 return srv.(IAMServer).GetServiceAccountKey(ctx, in) 6185 } 6186 info := &grpc.UnaryServerInfo{ 6187 Server: srv, 6188 FullMethod: "/google.iam.admin.v1.IAM/GetServiceAccountKey", 6189 } 6190 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6191 return srv.(IAMServer).GetServiceAccountKey(ctx, req.(*GetServiceAccountKeyRequest)) 6192 } 6193 return interceptor(ctx, in, info, handler) 6194} 6195 6196func _IAM_CreateServiceAccountKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6197 in := new(CreateServiceAccountKeyRequest) 6198 if err := dec(in); err != nil { 6199 return nil, err 6200 } 6201 if interceptor == nil { 6202 return srv.(IAMServer).CreateServiceAccountKey(ctx, in) 6203 } 6204 info := &grpc.UnaryServerInfo{ 6205 Server: srv, 6206 FullMethod: "/google.iam.admin.v1.IAM/CreateServiceAccountKey", 6207 } 6208 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6209 return srv.(IAMServer).CreateServiceAccountKey(ctx, req.(*CreateServiceAccountKeyRequest)) 6210 } 6211 return interceptor(ctx, in, info, handler) 6212} 6213 6214func _IAM_UploadServiceAccountKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6215 in := new(UploadServiceAccountKeyRequest) 6216 if err := dec(in); err != nil { 6217 return nil, err 6218 } 6219 if interceptor == nil { 6220 return srv.(IAMServer).UploadServiceAccountKey(ctx, in) 6221 } 6222 info := &grpc.UnaryServerInfo{ 6223 Server: srv, 6224 FullMethod: "/google.iam.admin.v1.IAM/UploadServiceAccountKey", 6225 } 6226 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6227 return srv.(IAMServer).UploadServiceAccountKey(ctx, req.(*UploadServiceAccountKeyRequest)) 6228 } 6229 return interceptor(ctx, in, info, handler) 6230} 6231 6232func _IAM_DeleteServiceAccountKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6233 in := new(DeleteServiceAccountKeyRequest) 6234 if err := dec(in); err != nil { 6235 return nil, err 6236 } 6237 if interceptor == nil { 6238 return srv.(IAMServer).DeleteServiceAccountKey(ctx, in) 6239 } 6240 info := &grpc.UnaryServerInfo{ 6241 Server: srv, 6242 FullMethod: "/google.iam.admin.v1.IAM/DeleteServiceAccountKey", 6243 } 6244 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6245 return srv.(IAMServer).DeleteServiceAccountKey(ctx, req.(*DeleteServiceAccountKeyRequest)) 6246 } 6247 return interceptor(ctx, in, info, handler) 6248} 6249 6250func _IAM_SignBlob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6251 in := new(SignBlobRequest) 6252 if err := dec(in); err != nil { 6253 return nil, err 6254 } 6255 if interceptor == nil { 6256 return srv.(IAMServer).SignBlob(ctx, in) 6257 } 6258 info := &grpc.UnaryServerInfo{ 6259 Server: srv, 6260 FullMethod: "/google.iam.admin.v1.IAM/SignBlob", 6261 } 6262 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6263 return srv.(IAMServer).SignBlob(ctx, req.(*SignBlobRequest)) 6264 } 6265 return interceptor(ctx, in, info, handler) 6266} 6267 6268func _IAM_SignJwt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6269 in := new(SignJwtRequest) 6270 if err := dec(in); err != nil { 6271 return nil, err 6272 } 6273 if interceptor == nil { 6274 return srv.(IAMServer).SignJwt(ctx, in) 6275 } 6276 info := &grpc.UnaryServerInfo{ 6277 Server: srv, 6278 FullMethod: "/google.iam.admin.v1.IAM/SignJwt", 6279 } 6280 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6281 return srv.(IAMServer).SignJwt(ctx, req.(*SignJwtRequest)) 6282 } 6283 return interceptor(ctx, in, info, handler) 6284} 6285 6286func _IAM_GetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6287 in := new(v1.GetIamPolicyRequest) 6288 if err := dec(in); err != nil { 6289 return nil, err 6290 } 6291 if interceptor == nil { 6292 return srv.(IAMServer).GetIamPolicy(ctx, in) 6293 } 6294 info := &grpc.UnaryServerInfo{ 6295 Server: srv, 6296 FullMethod: "/google.iam.admin.v1.IAM/GetIamPolicy", 6297 } 6298 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6299 return srv.(IAMServer).GetIamPolicy(ctx, req.(*v1.GetIamPolicyRequest)) 6300 } 6301 return interceptor(ctx, in, info, handler) 6302} 6303 6304func _IAM_SetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6305 in := new(v1.SetIamPolicyRequest) 6306 if err := dec(in); err != nil { 6307 return nil, err 6308 } 6309 if interceptor == nil { 6310 return srv.(IAMServer).SetIamPolicy(ctx, in) 6311 } 6312 info := &grpc.UnaryServerInfo{ 6313 Server: srv, 6314 FullMethod: "/google.iam.admin.v1.IAM/SetIamPolicy", 6315 } 6316 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6317 return srv.(IAMServer).SetIamPolicy(ctx, req.(*v1.SetIamPolicyRequest)) 6318 } 6319 return interceptor(ctx, in, info, handler) 6320} 6321 6322func _IAM_TestIamPermissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6323 in := new(v1.TestIamPermissionsRequest) 6324 if err := dec(in); err != nil { 6325 return nil, err 6326 } 6327 if interceptor == nil { 6328 return srv.(IAMServer).TestIamPermissions(ctx, in) 6329 } 6330 info := &grpc.UnaryServerInfo{ 6331 Server: srv, 6332 FullMethod: "/google.iam.admin.v1.IAM/TestIamPermissions", 6333 } 6334 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6335 return srv.(IAMServer).TestIamPermissions(ctx, req.(*v1.TestIamPermissionsRequest)) 6336 } 6337 return interceptor(ctx, in, info, handler) 6338} 6339 6340func _IAM_QueryGrantableRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6341 in := new(QueryGrantableRolesRequest) 6342 if err := dec(in); err != nil { 6343 return nil, err 6344 } 6345 if interceptor == nil { 6346 return srv.(IAMServer).QueryGrantableRoles(ctx, in) 6347 } 6348 info := &grpc.UnaryServerInfo{ 6349 Server: srv, 6350 FullMethod: "/google.iam.admin.v1.IAM/QueryGrantableRoles", 6351 } 6352 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6353 return srv.(IAMServer).QueryGrantableRoles(ctx, req.(*QueryGrantableRolesRequest)) 6354 } 6355 return interceptor(ctx, in, info, handler) 6356} 6357 6358func _IAM_ListRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6359 in := new(ListRolesRequest) 6360 if err := dec(in); err != nil { 6361 return nil, err 6362 } 6363 if interceptor == nil { 6364 return srv.(IAMServer).ListRoles(ctx, in) 6365 } 6366 info := &grpc.UnaryServerInfo{ 6367 Server: srv, 6368 FullMethod: "/google.iam.admin.v1.IAM/ListRoles", 6369 } 6370 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6371 return srv.(IAMServer).ListRoles(ctx, req.(*ListRolesRequest)) 6372 } 6373 return interceptor(ctx, in, info, handler) 6374} 6375 6376func _IAM_GetRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6377 in := new(GetRoleRequest) 6378 if err := dec(in); err != nil { 6379 return nil, err 6380 } 6381 if interceptor == nil { 6382 return srv.(IAMServer).GetRole(ctx, in) 6383 } 6384 info := &grpc.UnaryServerInfo{ 6385 Server: srv, 6386 FullMethod: "/google.iam.admin.v1.IAM/GetRole", 6387 } 6388 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6389 return srv.(IAMServer).GetRole(ctx, req.(*GetRoleRequest)) 6390 } 6391 return interceptor(ctx, in, info, handler) 6392} 6393 6394func _IAM_CreateRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6395 in := new(CreateRoleRequest) 6396 if err := dec(in); err != nil { 6397 return nil, err 6398 } 6399 if interceptor == nil { 6400 return srv.(IAMServer).CreateRole(ctx, in) 6401 } 6402 info := &grpc.UnaryServerInfo{ 6403 Server: srv, 6404 FullMethod: "/google.iam.admin.v1.IAM/CreateRole", 6405 } 6406 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6407 return srv.(IAMServer).CreateRole(ctx, req.(*CreateRoleRequest)) 6408 } 6409 return interceptor(ctx, in, info, handler) 6410} 6411 6412func _IAM_UpdateRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6413 in := new(UpdateRoleRequest) 6414 if err := dec(in); err != nil { 6415 return nil, err 6416 } 6417 if interceptor == nil { 6418 return srv.(IAMServer).UpdateRole(ctx, in) 6419 } 6420 info := &grpc.UnaryServerInfo{ 6421 Server: srv, 6422 FullMethod: "/google.iam.admin.v1.IAM/UpdateRole", 6423 } 6424 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6425 return srv.(IAMServer).UpdateRole(ctx, req.(*UpdateRoleRequest)) 6426 } 6427 return interceptor(ctx, in, info, handler) 6428} 6429 6430func _IAM_DeleteRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6431 in := new(DeleteRoleRequest) 6432 if err := dec(in); err != nil { 6433 return nil, err 6434 } 6435 if interceptor == nil { 6436 return srv.(IAMServer).DeleteRole(ctx, in) 6437 } 6438 info := &grpc.UnaryServerInfo{ 6439 Server: srv, 6440 FullMethod: "/google.iam.admin.v1.IAM/DeleteRole", 6441 } 6442 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6443 return srv.(IAMServer).DeleteRole(ctx, req.(*DeleteRoleRequest)) 6444 } 6445 return interceptor(ctx, in, info, handler) 6446} 6447 6448func _IAM_UndeleteRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6449 in := new(UndeleteRoleRequest) 6450 if err := dec(in); err != nil { 6451 return nil, err 6452 } 6453 if interceptor == nil { 6454 return srv.(IAMServer).UndeleteRole(ctx, in) 6455 } 6456 info := &grpc.UnaryServerInfo{ 6457 Server: srv, 6458 FullMethod: "/google.iam.admin.v1.IAM/UndeleteRole", 6459 } 6460 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6461 return srv.(IAMServer).UndeleteRole(ctx, req.(*UndeleteRoleRequest)) 6462 } 6463 return interceptor(ctx, in, info, handler) 6464} 6465 6466func _IAM_QueryTestablePermissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6467 in := new(QueryTestablePermissionsRequest) 6468 if err := dec(in); err != nil { 6469 return nil, err 6470 } 6471 if interceptor == nil { 6472 return srv.(IAMServer).QueryTestablePermissions(ctx, in) 6473 } 6474 info := &grpc.UnaryServerInfo{ 6475 Server: srv, 6476 FullMethod: "/google.iam.admin.v1.IAM/QueryTestablePermissions", 6477 } 6478 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6479 return srv.(IAMServer).QueryTestablePermissions(ctx, req.(*QueryTestablePermissionsRequest)) 6480 } 6481 return interceptor(ctx, in, info, handler) 6482} 6483 6484func _IAM_QueryAuditableServices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6485 in := new(QueryAuditableServicesRequest) 6486 if err := dec(in); err != nil { 6487 return nil, err 6488 } 6489 if interceptor == nil { 6490 return srv.(IAMServer).QueryAuditableServices(ctx, in) 6491 } 6492 info := &grpc.UnaryServerInfo{ 6493 Server: srv, 6494 FullMethod: "/google.iam.admin.v1.IAM/QueryAuditableServices", 6495 } 6496 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6497 return srv.(IAMServer).QueryAuditableServices(ctx, req.(*QueryAuditableServicesRequest)) 6498 } 6499 return interceptor(ctx, in, info, handler) 6500} 6501 6502func _IAM_LintPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 6503 in := new(LintPolicyRequest) 6504 if err := dec(in); err != nil { 6505 return nil, err 6506 } 6507 if interceptor == nil { 6508 return srv.(IAMServer).LintPolicy(ctx, in) 6509 } 6510 info := &grpc.UnaryServerInfo{ 6511 Server: srv, 6512 FullMethod: "/google.iam.admin.v1.IAM/LintPolicy", 6513 } 6514 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 6515 return srv.(IAMServer).LintPolicy(ctx, req.(*LintPolicyRequest)) 6516 } 6517 return interceptor(ctx, in, info, handler) 6518} 6519 6520var _IAM_serviceDesc = grpc.ServiceDesc{ 6521 ServiceName: "google.iam.admin.v1.IAM", 6522 HandlerType: (*IAMServer)(nil), 6523 Methods: []grpc.MethodDesc{ 6524 { 6525 MethodName: "ListServiceAccounts", 6526 Handler: _IAM_ListServiceAccounts_Handler, 6527 }, 6528 { 6529 MethodName: "GetServiceAccount", 6530 Handler: _IAM_GetServiceAccount_Handler, 6531 }, 6532 { 6533 MethodName: "CreateServiceAccount", 6534 Handler: _IAM_CreateServiceAccount_Handler, 6535 }, 6536 { 6537 MethodName: "UpdateServiceAccount", 6538 Handler: _IAM_UpdateServiceAccount_Handler, 6539 }, 6540 { 6541 MethodName: "PatchServiceAccount", 6542 Handler: _IAM_PatchServiceAccount_Handler, 6543 }, 6544 { 6545 MethodName: "DeleteServiceAccount", 6546 Handler: _IAM_DeleteServiceAccount_Handler, 6547 }, 6548 { 6549 MethodName: "UndeleteServiceAccount", 6550 Handler: _IAM_UndeleteServiceAccount_Handler, 6551 }, 6552 { 6553 MethodName: "EnableServiceAccount", 6554 Handler: _IAM_EnableServiceAccount_Handler, 6555 }, 6556 { 6557 MethodName: "DisableServiceAccount", 6558 Handler: _IAM_DisableServiceAccount_Handler, 6559 }, 6560 { 6561 MethodName: "ListServiceAccountKeys", 6562 Handler: _IAM_ListServiceAccountKeys_Handler, 6563 }, 6564 { 6565 MethodName: "GetServiceAccountKey", 6566 Handler: _IAM_GetServiceAccountKey_Handler, 6567 }, 6568 { 6569 MethodName: "CreateServiceAccountKey", 6570 Handler: _IAM_CreateServiceAccountKey_Handler, 6571 }, 6572 { 6573 MethodName: "UploadServiceAccountKey", 6574 Handler: _IAM_UploadServiceAccountKey_Handler, 6575 }, 6576 { 6577 MethodName: "DeleteServiceAccountKey", 6578 Handler: _IAM_DeleteServiceAccountKey_Handler, 6579 }, 6580 { 6581 MethodName: "SignBlob", 6582 Handler: _IAM_SignBlob_Handler, 6583 }, 6584 { 6585 MethodName: "SignJwt", 6586 Handler: _IAM_SignJwt_Handler, 6587 }, 6588 { 6589 MethodName: "GetIamPolicy", 6590 Handler: _IAM_GetIamPolicy_Handler, 6591 }, 6592 { 6593 MethodName: "SetIamPolicy", 6594 Handler: _IAM_SetIamPolicy_Handler, 6595 }, 6596 { 6597 MethodName: "TestIamPermissions", 6598 Handler: _IAM_TestIamPermissions_Handler, 6599 }, 6600 { 6601 MethodName: "QueryGrantableRoles", 6602 Handler: _IAM_QueryGrantableRoles_Handler, 6603 }, 6604 { 6605 MethodName: "ListRoles", 6606 Handler: _IAM_ListRoles_Handler, 6607 }, 6608 { 6609 MethodName: "GetRole", 6610 Handler: _IAM_GetRole_Handler, 6611 }, 6612 { 6613 MethodName: "CreateRole", 6614 Handler: _IAM_CreateRole_Handler, 6615 }, 6616 { 6617 MethodName: "UpdateRole", 6618 Handler: _IAM_UpdateRole_Handler, 6619 }, 6620 { 6621 MethodName: "DeleteRole", 6622 Handler: _IAM_DeleteRole_Handler, 6623 }, 6624 { 6625 MethodName: "UndeleteRole", 6626 Handler: _IAM_UndeleteRole_Handler, 6627 }, 6628 { 6629 MethodName: "QueryTestablePermissions", 6630 Handler: _IAM_QueryTestablePermissions_Handler, 6631 }, 6632 { 6633 MethodName: "QueryAuditableServices", 6634 Handler: _IAM_QueryAuditableServices_Handler, 6635 }, 6636 { 6637 MethodName: "LintPolicy", 6638 Handler: _IAM_LintPolicy_Handler, 6639 }, 6640 }, 6641 Streams: []grpc.StreamDesc{}, 6642 Metadata: "google/iam/admin/v1/iam.proto", 6643} 6644