1// Copyright 2020 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.25.0 18// protoc v3.13.0 19// source: google/cloud/asset/v1p4beta1/asset_service.proto 20 21package asset 22 23import ( 24 context "context" 25 reflect "reflect" 26 sync "sync" 27 28 proto "github.com/golang/protobuf/proto" 29 _ "google.golang.org/genproto/googleapis/api/annotations" 30 _ "google.golang.org/genproto/googleapis/iam/v1" 31 longrunning "google.golang.org/genproto/googleapis/longrunning" 32 grpc "google.golang.org/grpc" 33 codes "google.golang.org/grpc/codes" 34 status "google.golang.org/grpc/status" 35 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 36 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 37 durationpb "google.golang.org/protobuf/types/known/durationpb" 38) 39 40const ( 41 // Verify that this generated code is sufficiently up-to-date. 42 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 43 // Verify that runtime/protoimpl is sufficiently up-to-date. 44 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 45) 46 47// This is a compile-time assertion that a sufficiently up-to-date version 48// of the legacy proto package is being used. 49const _ = proto.ProtoPackageIsVersion4 50 51// IAM policy analysis query message. 52type IamPolicyAnalysisQuery struct { 53 state protoimpl.MessageState 54 sizeCache protoimpl.SizeCache 55 unknownFields protoimpl.UnknownFields 56 57 // Required. The relative name of the root asset. Only resources and IAM policies within 58 // the parent will be analyzed. This can only be an organization number (such 59 // as "organizations/123") or a folder number (such as "folders/123"). 60 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 61 // Optional. Specifies a resource for analysis. Leaving it empty means ANY. 62 ResourceSelector *IamPolicyAnalysisQuery_ResourceSelector `protobuf:"bytes,2,opt,name=resource_selector,json=resourceSelector,proto3" json:"resource_selector,omitempty"` 63 // Optional. Specifies an identity for analysis. Leaving it empty means ANY. 64 IdentitySelector *IamPolicyAnalysisQuery_IdentitySelector `protobuf:"bytes,3,opt,name=identity_selector,json=identitySelector,proto3" json:"identity_selector,omitempty"` 65 // Optional. Specifies roles or permissions for analysis. Leaving it empty 66 // means ANY. 67 AccessSelector *IamPolicyAnalysisQuery_AccessSelector `protobuf:"bytes,4,opt,name=access_selector,json=accessSelector,proto3" json:"access_selector,omitempty"` 68} 69 70func (x *IamPolicyAnalysisQuery) Reset() { 71 *x = IamPolicyAnalysisQuery{} 72 if protoimpl.UnsafeEnabled { 73 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[0] 74 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 75 ms.StoreMessageInfo(mi) 76 } 77} 78 79func (x *IamPolicyAnalysisQuery) String() string { 80 return protoimpl.X.MessageStringOf(x) 81} 82 83func (*IamPolicyAnalysisQuery) ProtoMessage() {} 84 85func (x *IamPolicyAnalysisQuery) ProtoReflect() protoreflect.Message { 86 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[0] 87 if protoimpl.UnsafeEnabled && x != nil { 88 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 89 if ms.LoadMessageInfo() == nil { 90 ms.StoreMessageInfo(mi) 91 } 92 return ms 93 } 94 return mi.MessageOf(x) 95} 96 97// Deprecated: Use IamPolicyAnalysisQuery.ProtoReflect.Descriptor instead. 98func (*IamPolicyAnalysisQuery) Descriptor() ([]byte, []int) { 99 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP(), []int{0} 100} 101 102func (x *IamPolicyAnalysisQuery) GetParent() string { 103 if x != nil { 104 return x.Parent 105 } 106 return "" 107} 108 109func (x *IamPolicyAnalysisQuery) GetResourceSelector() *IamPolicyAnalysisQuery_ResourceSelector { 110 if x != nil { 111 return x.ResourceSelector 112 } 113 return nil 114} 115 116func (x *IamPolicyAnalysisQuery) GetIdentitySelector() *IamPolicyAnalysisQuery_IdentitySelector { 117 if x != nil { 118 return x.IdentitySelector 119 } 120 return nil 121} 122 123func (x *IamPolicyAnalysisQuery) GetAccessSelector() *IamPolicyAnalysisQuery_AccessSelector { 124 if x != nil { 125 return x.AccessSelector 126 } 127 return nil 128} 129 130// A request message for [AssetService.AnalyzeIamPolicy][google.cloud.asset.v1p4beta1.AssetService.AnalyzeIamPolicy]. 131type AnalyzeIamPolicyRequest struct { 132 state protoimpl.MessageState 133 sizeCache protoimpl.SizeCache 134 unknownFields protoimpl.UnknownFields 135 136 // Required. The request query. 137 AnalysisQuery *IamPolicyAnalysisQuery `protobuf:"bytes,1,opt,name=analysis_query,json=analysisQuery,proto3" json:"analysis_query,omitempty"` 138 // Optional. The request options. 139 Options *AnalyzeIamPolicyRequest_Options `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"` 140} 141 142func (x *AnalyzeIamPolicyRequest) Reset() { 143 *x = AnalyzeIamPolicyRequest{} 144 if protoimpl.UnsafeEnabled { 145 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[1] 146 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 147 ms.StoreMessageInfo(mi) 148 } 149} 150 151func (x *AnalyzeIamPolicyRequest) String() string { 152 return protoimpl.X.MessageStringOf(x) 153} 154 155func (*AnalyzeIamPolicyRequest) ProtoMessage() {} 156 157func (x *AnalyzeIamPolicyRequest) ProtoReflect() protoreflect.Message { 158 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[1] 159 if protoimpl.UnsafeEnabled && x != nil { 160 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 161 if ms.LoadMessageInfo() == nil { 162 ms.StoreMessageInfo(mi) 163 } 164 return ms 165 } 166 return mi.MessageOf(x) 167} 168 169// Deprecated: Use AnalyzeIamPolicyRequest.ProtoReflect.Descriptor instead. 170func (*AnalyzeIamPolicyRequest) Descriptor() ([]byte, []int) { 171 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP(), []int{1} 172} 173 174func (x *AnalyzeIamPolicyRequest) GetAnalysisQuery() *IamPolicyAnalysisQuery { 175 if x != nil { 176 return x.AnalysisQuery 177 } 178 return nil 179} 180 181func (x *AnalyzeIamPolicyRequest) GetOptions() *AnalyzeIamPolicyRequest_Options { 182 if x != nil { 183 return x.Options 184 } 185 return nil 186} 187 188// A response message for [AssetService.AnalyzeIamPolicy][google.cloud.asset.v1p4beta1.AssetService.AnalyzeIamPolicy]. 189type AnalyzeIamPolicyResponse struct { 190 state protoimpl.MessageState 191 sizeCache protoimpl.SizeCache 192 unknownFields protoimpl.UnknownFields 193 194 // The main analysis that matches the original request. 195 MainAnalysis *AnalyzeIamPolicyResponse_IamPolicyAnalysis `protobuf:"bytes,1,opt,name=main_analysis,json=mainAnalysis,proto3" json:"main_analysis,omitempty"` 196 // The service account impersonation analysis if 197 // [AnalyzeIamPolicyRequest.analyze_service_account_impersonation][] is 198 // enabled. 199 ServiceAccountImpersonationAnalysis []*AnalyzeIamPolicyResponse_IamPolicyAnalysis `protobuf:"bytes,2,rep,name=service_account_impersonation_analysis,json=serviceAccountImpersonationAnalysis,proto3" json:"service_account_impersonation_analysis,omitempty"` 200 // Represents whether all entries in the [main_analysis][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.main_analysis] and 201 // [service_account_impersonation_analysis][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis] have been fully explored to 202 // answer the query in the request. 203 FullyExplored bool `protobuf:"varint,3,opt,name=fully_explored,json=fullyExplored,proto3" json:"fully_explored,omitempty"` 204 // A list of non-critical errors happened during the request handling to 205 // explain why `fully_explored` is false, or empty if no error happened. 206 NonCriticalErrors []*IamPolicyAnalysisResult_AnalysisState `protobuf:"bytes,4,rep,name=non_critical_errors,json=nonCriticalErrors,proto3" json:"non_critical_errors,omitempty"` 207} 208 209func (x *AnalyzeIamPolicyResponse) Reset() { 210 *x = AnalyzeIamPolicyResponse{} 211 if protoimpl.UnsafeEnabled { 212 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[2] 213 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 214 ms.StoreMessageInfo(mi) 215 } 216} 217 218func (x *AnalyzeIamPolicyResponse) String() string { 219 return protoimpl.X.MessageStringOf(x) 220} 221 222func (*AnalyzeIamPolicyResponse) ProtoMessage() {} 223 224func (x *AnalyzeIamPolicyResponse) ProtoReflect() protoreflect.Message { 225 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[2] 226 if protoimpl.UnsafeEnabled && x != nil { 227 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 228 if ms.LoadMessageInfo() == nil { 229 ms.StoreMessageInfo(mi) 230 } 231 return ms 232 } 233 return mi.MessageOf(x) 234} 235 236// Deprecated: Use AnalyzeIamPolicyResponse.ProtoReflect.Descriptor instead. 237func (*AnalyzeIamPolicyResponse) Descriptor() ([]byte, []int) { 238 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP(), []int{2} 239} 240 241func (x *AnalyzeIamPolicyResponse) GetMainAnalysis() *AnalyzeIamPolicyResponse_IamPolicyAnalysis { 242 if x != nil { 243 return x.MainAnalysis 244 } 245 return nil 246} 247 248func (x *AnalyzeIamPolicyResponse) GetServiceAccountImpersonationAnalysis() []*AnalyzeIamPolicyResponse_IamPolicyAnalysis { 249 if x != nil { 250 return x.ServiceAccountImpersonationAnalysis 251 } 252 return nil 253} 254 255func (x *AnalyzeIamPolicyResponse) GetFullyExplored() bool { 256 if x != nil { 257 return x.FullyExplored 258 } 259 return false 260} 261 262func (x *AnalyzeIamPolicyResponse) GetNonCriticalErrors() []*IamPolicyAnalysisResult_AnalysisState { 263 if x != nil { 264 return x.NonCriticalErrors 265 } 266 return nil 267} 268 269// Output configuration for export IAM policy analysis destination. 270type IamPolicyAnalysisOutputConfig struct { 271 state protoimpl.MessageState 272 sizeCache protoimpl.SizeCache 273 unknownFields protoimpl.UnknownFields 274 275 // IAM policy analysis export destination. 276 // 277 // Types that are assignable to Destination: 278 // *IamPolicyAnalysisOutputConfig_GcsDestination_ 279 Destination isIamPolicyAnalysisOutputConfig_Destination `protobuf_oneof:"destination"` 280} 281 282func (x *IamPolicyAnalysisOutputConfig) Reset() { 283 *x = IamPolicyAnalysisOutputConfig{} 284 if protoimpl.UnsafeEnabled { 285 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[3] 286 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 287 ms.StoreMessageInfo(mi) 288 } 289} 290 291func (x *IamPolicyAnalysisOutputConfig) String() string { 292 return protoimpl.X.MessageStringOf(x) 293} 294 295func (*IamPolicyAnalysisOutputConfig) ProtoMessage() {} 296 297func (x *IamPolicyAnalysisOutputConfig) ProtoReflect() protoreflect.Message { 298 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[3] 299 if protoimpl.UnsafeEnabled && x != nil { 300 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 301 if ms.LoadMessageInfo() == nil { 302 ms.StoreMessageInfo(mi) 303 } 304 return ms 305 } 306 return mi.MessageOf(x) 307} 308 309// Deprecated: Use IamPolicyAnalysisOutputConfig.ProtoReflect.Descriptor instead. 310func (*IamPolicyAnalysisOutputConfig) Descriptor() ([]byte, []int) { 311 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP(), []int{3} 312} 313 314func (m *IamPolicyAnalysisOutputConfig) GetDestination() isIamPolicyAnalysisOutputConfig_Destination { 315 if m != nil { 316 return m.Destination 317 } 318 return nil 319} 320 321func (x *IamPolicyAnalysisOutputConfig) GetGcsDestination() *IamPolicyAnalysisOutputConfig_GcsDestination { 322 if x, ok := x.GetDestination().(*IamPolicyAnalysisOutputConfig_GcsDestination_); ok { 323 return x.GcsDestination 324 } 325 return nil 326} 327 328type isIamPolicyAnalysisOutputConfig_Destination interface { 329 isIamPolicyAnalysisOutputConfig_Destination() 330} 331 332type IamPolicyAnalysisOutputConfig_GcsDestination_ struct { 333 // Destination on Cloud Storage. 334 GcsDestination *IamPolicyAnalysisOutputConfig_GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination,proto3,oneof"` 335} 336 337func (*IamPolicyAnalysisOutputConfig_GcsDestination_) isIamPolicyAnalysisOutputConfig_Destination() {} 338 339// A request message for [AssetService.ExportIamPolicyAnalysis][google.cloud.asset.v1p4beta1.AssetService.ExportIamPolicyAnalysis]. 340type ExportIamPolicyAnalysisRequest struct { 341 state protoimpl.MessageState 342 sizeCache protoimpl.SizeCache 343 unknownFields protoimpl.UnknownFields 344 345 // Required. The request query. 346 AnalysisQuery *IamPolicyAnalysisQuery `protobuf:"bytes,1,opt,name=analysis_query,json=analysisQuery,proto3" json:"analysis_query,omitempty"` 347 // Optional. The request options. 348 Options *ExportIamPolicyAnalysisRequest_Options `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"` 349 // Required. Output configuration indicating where the results will be output to. 350 OutputConfig *IamPolicyAnalysisOutputConfig `protobuf:"bytes,3,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 351} 352 353func (x *ExportIamPolicyAnalysisRequest) Reset() { 354 *x = ExportIamPolicyAnalysisRequest{} 355 if protoimpl.UnsafeEnabled { 356 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[4] 357 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 358 ms.StoreMessageInfo(mi) 359 } 360} 361 362func (x *ExportIamPolicyAnalysisRequest) String() string { 363 return protoimpl.X.MessageStringOf(x) 364} 365 366func (*ExportIamPolicyAnalysisRequest) ProtoMessage() {} 367 368func (x *ExportIamPolicyAnalysisRequest) ProtoReflect() protoreflect.Message { 369 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[4] 370 if protoimpl.UnsafeEnabled && x != nil { 371 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 372 if ms.LoadMessageInfo() == nil { 373 ms.StoreMessageInfo(mi) 374 } 375 return ms 376 } 377 return mi.MessageOf(x) 378} 379 380// Deprecated: Use ExportIamPolicyAnalysisRequest.ProtoReflect.Descriptor instead. 381func (*ExportIamPolicyAnalysisRequest) Descriptor() ([]byte, []int) { 382 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP(), []int{4} 383} 384 385func (x *ExportIamPolicyAnalysisRequest) GetAnalysisQuery() *IamPolicyAnalysisQuery { 386 if x != nil { 387 return x.AnalysisQuery 388 } 389 return nil 390} 391 392func (x *ExportIamPolicyAnalysisRequest) GetOptions() *ExportIamPolicyAnalysisRequest_Options { 393 if x != nil { 394 return x.Options 395 } 396 return nil 397} 398 399func (x *ExportIamPolicyAnalysisRequest) GetOutputConfig() *IamPolicyAnalysisOutputConfig { 400 if x != nil { 401 return x.OutputConfig 402 } 403 return nil 404} 405 406// The export IAM policy analysis response. This message is returned by the 407// [google.longrunning.Operations.GetOperation][] method in the returned 408// [google.longrunning.Operation.response][] field. 409type ExportIamPolicyAnalysisResponse struct { 410 state protoimpl.MessageState 411 sizeCache protoimpl.SizeCache 412 unknownFields protoimpl.UnknownFields 413 414 // Output configuration indicating where the results were output to. 415 OutputConfig *IamPolicyAnalysisOutputConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 416} 417 418func (x *ExportIamPolicyAnalysisResponse) Reset() { 419 *x = ExportIamPolicyAnalysisResponse{} 420 if protoimpl.UnsafeEnabled { 421 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[5] 422 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 423 ms.StoreMessageInfo(mi) 424 } 425} 426 427func (x *ExportIamPolicyAnalysisResponse) String() string { 428 return protoimpl.X.MessageStringOf(x) 429} 430 431func (*ExportIamPolicyAnalysisResponse) ProtoMessage() {} 432 433func (x *ExportIamPolicyAnalysisResponse) ProtoReflect() protoreflect.Message { 434 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[5] 435 if protoimpl.UnsafeEnabled && x != nil { 436 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 437 if ms.LoadMessageInfo() == nil { 438 ms.StoreMessageInfo(mi) 439 } 440 return ms 441 } 442 return mi.MessageOf(x) 443} 444 445// Deprecated: Use ExportIamPolicyAnalysisResponse.ProtoReflect.Descriptor instead. 446func (*ExportIamPolicyAnalysisResponse) Descriptor() ([]byte, []int) { 447 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP(), []int{5} 448} 449 450func (x *ExportIamPolicyAnalysisResponse) GetOutputConfig() *IamPolicyAnalysisOutputConfig { 451 if x != nil { 452 return x.OutputConfig 453 } 454 return nil 455} 456 457// Specifies the resource to analyze for access policies, which may be set 458// directly on the resource, or on ancestors such as organizations, folders or 459// projects. At least one of [ResourceSelector][google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.ResourceSelector], [IdentitySelector][google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.IdentitySelector] or 460// [AccessSelector][google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.AccessSelector] must be specified in a request. 461type IamPolicyAnalysisQuery_ResourceSelector struct { 462 state protoimpl.MessageState 463 sizeCache protoimpl.SizeCache 464 unknownFields protoimpl.UnknownFields 465 466 // Required. The [full resource 467 // name](https://cloud.google.com/apis/design/resource_names#full_resource_name) 468 // . 469 FullResourceName string `protobuf:"bytes,1,opt,name=full_resource_name,json=fullResourceName,proto3" json:"full_resource_name,omitempty"` 470} 471 472func (x *IamPolicyAnalysisQuery_ResourceSelector) Reset() { 473 *x = IamPolicyAnalysisQuery_ResourceSelector{} 474 if protoimpl.UnsafeEnabled { 475 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[6] 476 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 477 ms.StoreMessageInfo(mi) 478 } 479} 480 481func (x *IamPolicyAnalysisQuery_ResourceSelector) String() string { 482 return protoimpl.X.MessageStringOf(x) 483} 484 485func (*IamPolicyAnalysisQuery_ResourceSelector) ProtoMessage() {} 486 487func (x *IamPolicyAnalysisQuery_ResourceSelector) ProtoReflect() protoreflect.Message { 488 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[6] 489 if protoimpl.UnsafeEnabled && x != nil { 490 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 491 if ms.LoadMessageInfo() == nil { 492 ms.StoreMessageInfo(mi) 493 } 494 return ms 495 } 496 return mi.MessageOf(x) 497} 498 499// Deprecated: Use IamPolicyAnalysisQuery_ResourceSelector.ProtoReflect.Descriptor instead. 500func (*IamPolicyAnalysisQuery_ResourceSelector) Descriptor() ([]byte, []int) { 501 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP(), []int{0, 0} 502} 503 504func (x *IamPolicyAnalysisQuery_ResourceSelector) GetFullResourceName() string { 505 if x != nil { 506 return x.FullResourceName 507 } 508 return "" 509} 510 511// Specifies an identity for which to determine resource access, based on 512// roles assigned either directly to them or to the groups they belong to, 513// directly or indirectly. 514type IamPolicyAnalysisQuery_IdentitySelector struct { 515 state protoimpl.MessageState 516 sizeCache protoimpl.SizeCache 517 unknownFields protoimpl.UnknownFields 518 519 // Required. The identity appear in the form of members in 520 // [IAM policy 521 // binding](https://cloud.google.com/iam/reference/rest/v1/Binding). 522 Identity string `protobuf:"bytes,1,opt,name=identity,proto3" json:"identity,omitempty"` 523} 524 525func (x *IamPolicyAnalysisQuery_IdentitySelector) Reset() { 526 *x = IamPolicyAnalysisQuery_IdentitySelector{} 527 if protoimpl.UnsafeEnabled { 528 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[7] 529 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 530 ms.StoreMessageInfo(mi) 531 } 532} 533 534func (x *IamPolicyAnalysisQuery_IdentitySelector) String() string { 535 return protoimpl.X.MessageStringOf(x) 536} 537 538func (*IamPolicyAnalysisQuery_IdentitySelector) ProtoMessage() {} 539 540func (x *IamPolicyAnalysisQuery_IdentitySelector) ProtoReflect() protoreflect.Message { 541 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[7] 542 if protoimpl.UnsafeEnabled && x != nil { 543 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 544 if ms.LoadMessageInfo() == nil { 545 ms.StoreMessageInfo(mi) 546 } 547 return ms 548 } 549 return mi.MessageOf(x) 550} 551 552// Deprecated: Use IamPolicyAnalysisQuery_IdentitySelector.ProtoReflect.Descriptor instead. 553func (*IamPolicyAnalysisQuery_IdentitySelector) Descriptor() ([]byte, []int) { 554 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP(), []int{0, 1} 555} 556 557func (x *IamPolicyAnalysisQuery_IdentitySelector) GetIdentity() string { 558 if x != nil { 559 return x.Identity 560 } 561 return "" 562} 563 564// Specifies roles and/or permissions to analyze, to determine both the 565// identities possessing them and the resources they control. If multiple 566// values are specified, results will include identities and resources 567// matching any of them. 568type IamPolicyAnalysisQuery_AccessSelector struct { 569 state protoimpl.MessageState 570 sizeCache protoimpl.SizeCache 571 unknownFields protoimpl.UnknownFields 572 573 // Optional. The roles to appear in result. 574 Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` 575 // Optional. The permissions to appear in result. 576 Permissions []string `protobuf:"bytes,2,rep,name=permissions,proto3" json:"permissions,omitempty"` 577} 578 579func (x *IamPolicyAnalysisQuery_AccessSelector) Reset() { 580 *x = IamPolicyAnalysisQuery_AccessSelector{} 581 if protoimpl.UnsafeEnabled { 582 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[8] 583 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 584 ms.StoreMessageInfo(mi) 585 } 586} 587 588func (x *IamPolicyAnalysisQuery_AccessSelector) String() string { 589 return protoimpl.X.MessageStringOf(x) 590} 591 592func (*IamPolicyAnalysisQuery_AccessSelector) ProtoMessage() {} 593 594func (x *IamPolicyAnalysisQuery_AccessSelector) ProtoReflect() protoreflect.Message { 595 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[8] 596 if protoimpl.UnsafeEnabled && x != nil { 597 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 598 if ms.LoadMessageInfo() == nil { 599 ms.StoreMessageInfo(mi) 600 } 601 return ms 602 } 603 return mi.MessageOf(x) 604} 605 606// Deprecated: Use IamPolicyAnalysisQuery_AccessSelector.ProtoReflect.Descriptor instead. 607func (*IamPolicyAnalysisQuery_AccessSelector) Descriptor() ([]byte, []int) { 608 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP(), []int{0, 2} 609} 610 611func (x *IamPolicyAnalysisQuery_AccessSelector) GetRoles() []string { 612 if x != nil { 613 return x.Roles 614 } 615 return nil 616} 617 618func (x *IamPolicyAnalysisQuery_AccessSelector) GetPermissions() []string { 619 if x != nil { 620 return x.Permissions 621 } 622 return nil 623} 624 625// Contains request options. 626type AnalyzeIamPolicyRequest_Options struct { 627 state protoimpl.MessageState 628 sizeCache protoimpl.SizeCache 629 unknownFields protoimpl.UnknownFields 630 631 // Optional. If true, the identities section of the result will expand any 632 // Google groups appearing in an IAM policy binding. 633 // 634 // If [identity_selector][] is specified, the identity in the result will 635 // be determined by the selector, and this flag will have no effect. 636 // 637 // Default is false. 638 ExpandGroups bool `protobuf:"varint,1,opt,name=expand_groups,json=expandGroups,proto3" json:"expand_groups,omitempty"` 639 // Optional. If true, the access section of result will expand any roles 640 // appearing in IAM policy bindings to include their permissions. 641 // 642 // If [access_selector][] is specified, the access section of the result 643 // will be determined by the selector, and this flag will have no effect. 644 // 645 // Default is false. 646 ExpandRoles bool `protobuf:"varint,2,opt,name=expand_roles,json=expandRoles,proto3" json:"expand_roles,omitempty"` 647 // Optional. If true, the resource section of the result will expand any 648 // resource attached to an IAM policy to include resources lower in the 649 // resource hierarchy. 650 // 651 // For example, if the request analyzes for which resources user A has 652 // permission P, and the results include an IAM policy with P on a GCP 653 // folder, the results will also include resources in that folder with 654 // permission P. 655 // 656 // If [resource_selector][] is specified, the resource section of the result 657 // will be determined by the selector, and this flag will have no effect. 658 // Default is false. 659 ExpandResources bool `protobuf:"varint,3,opt,name=expand_resources,json=expandResources,proto3" json:"expand_resources,omitempty"` 660 // Optional. If true, the result will output resource edges, starting 661 // from the policy attached resource, to any expanded resources. 662 // Default is false. 663 OutputResourceEdges bool `protobuf:"varint,4,opt,name=output_resource_edges,json=outputResourceEdges,proto3" json:"output_resource_edges,omitempty"` 664 // Optional. If true, the result will output group identity edges, starting 665 // from the binding's group members, to any expanded identities. 666 // Default is false. 667 OutputGroupEdges bool `protobuf:"varint,5,opt,name=output_group_edges,json=outputGroupEdges,proto3" json:"output_group_edges,omitempty"` 668 // Optional. If true, the response will include access analysis from identities to 669 // resources via service account impersonation. This is a very expensive 670 // operation, because many derived queries will be executed. We highly 671 // recommend you use ExportIamPolicyAnalysis rpc instead. 672 // 673 // For example, if the request analyzes for which resources user A has 674 // permission P, and there's an IAM policy states user A has 675 // iam.serviceAccounts.getAccessToken permission to a service account SA, 676 // and there's another IAM policy states service account SA has permission P 677 // to a GCP folder F, then user A potentially has access to the GCP folder 678 // F. And those advanced analysis results will be included in 679 // [AnalyzeIamPolicyResponse.service_account_impersonation_analysis][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis]. 680 // 681 // Another example, if the request analyzes for who has 682 // permission P to a GCP folder F, and there's an IAM policy states user A 683 // has iam.serviceAccounts.actAs permission to a service account SA, and 684 // there's another IAM policy states service account SA has permission P to 685 // the GCP folder F, then user A potentially has access to the GCP folder 686 // F. And those advanced analysis results will be included in 687 // [AnalyzeIamPolicyResponse.service_account_impersonation_analysis][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis]. 688 // 689 // Default is false. 690 AnalyzeServiceAccountImpersonation bool `protobuf:"varint,6,opt,name=analyze_service_account_impersonation,json=analyzeServiceAccountImpersonation,proto3" json:"analyze_service_account_impersonation,omitempty"` 691 // Optional. Amount of time executable has to complete. See JSON representation of 692 // [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json). 693 // 694 // If this field is set with a value less than the RPC deadline, and the 695 // execution of your query hasn't finished in the specified 696 // execution timeout, you will get a response with partial result. 697 // Otherwise, your query's execution will continue until the RPC deadline. 698 // If it's not finished until then, you will get a DEADLINE_EXCEEDED error. 699 // 700 // Default is empty. 701 ExecutionTimeout *durationpb.Duration `protobuf:"bytes,7,opt,name=execution_timeout,json=executionTimeout,proto3" json:"execution_timeout,omitempty"` 702} 703 704func (x *AnalyzeIamPolicyRequest_Options) Reset() { 705 *x = AnalyzeIamPolicyRequest_Options{} 706 if protoimpl.UnsafeEnabled { 707 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[9] 708 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 709 ms.StoreMessageInfo(mi) 710 } 711} 712 713func (x *AnalyzeIamPolicyRequest_Options) String() string { 714 return protoimpl.X.MessageStringOf(x) 715} 716 717func (*AnalyzeIamPolicyRequest_Options) ProtoMessage() {} 718 719func (x *AnalyzeIamPolicyRequest_Options) ProtoReflect() protoreflect.Message { 720 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[9] 721 if protoimpl.UnsafeEnabled && x != nil { 722 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 723 if ms.LoadMessageInfo() == nil { 724 ms.StoreMessageInfo(mi) 725 } 726 return ms 727 } 728 return mi.MessageOf(x) 729} 730 731// Deprecated: Use AnalyzeIamPolicyRequest_Options.ProtoReflect.Descriptor instead. 732func (*AnalyzeIamPolicyRequest_Options) Descriptor() ([]byte, []int) { 733 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP(), []int{1, 0} 734} 735 736func (x *AnalyzeIamPolicyRequest_Options) GetExpandGroups() bool { 737 if x != nil { 738 return x.ExpandGroups 739 } 740 return false 741} 742 743func (x *AnalyzeIamPolicyRequest_Options) GetExpandRoles() bool { 744 if x != nil { 745 return x.ExpandRoles 746 } 747 return false 748} 749 750func (x *AnalyzeIamPolicyRequest_Options) GetExpandResources() bool { 751 if x != nil { 752 return x.ExpandResources 753 } 754 return false 755} 756 757func (x *AnalyzeIamPolicyRequest_Options) GetOutputResourceEdges() bool { 758 if x != nil { 759 return x.OutputResourceEdges 760 } 761 return false 762} 763 764func (x *AnalyzeIamPolicyRequest_Options) GetOutputGroupEdges() bool { 765 if x != nil { 766 return x.OutputGroupEdges 767 } 768 return false 769} 770 771func (x *AnalyzeIamPolicyRequest_Options) GetAnalyzeServiceAccountImpersonation() bool { 772 if x != nil { 773 return x.AnalyzeServiceAccountImpersonation 774 } 775 return false 776} 777 778func (x *AnalyzeIamPolicyRequest_Options) GetExecutionTimeout() *durationpb.Duration { 779 if x != nil { 780 return x.ExecutionTimeout 781 } 782 return nil 783} 784 785// An analysis message to group the query and results. 786type AnalyzeIamPolicyResponse_IamPolicyAnalysis struct { 787 state protoimpl.MessageState 788 sizeCache protoimpl.SizeCache 789 unknownFields protoimpl.UnknownFields 790 791 // The analysis query. 792 AnalysisQuery *IamPolicyAnalysisQuery `protobuf:"bytes,1,opt,name=analysis_query,json=analysisQuery,proto3" json:"analysis_query,omitempty"` 793 // A list of [IamPolicyAnalysisResult][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult] that matches the analysis query, or 794 // empty if no result is found. 795 AnalysisResults []*IamPolicyAnalysisResult `protobuf:"bytes,2,rep,name=analysis_results,json=analysisResults,proto3" json:"analysis_results,omitempty"` 796 // Represents whether all entries in the [analysis_results][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.IamPolicyAnalysis.analysis_results] have been 797 // fully explored to answer the query. 798 FullyExplored bool `protobuf:"varint,3,opt,name=fully_explored,json=fullyExplored,proto3" json:"fully_explored,omitempty"` 799} 800 801func (x *AnalyzeIamPolicyResponse_IamPolicyAnalysis) Reset() { 802 *x = AnalyzeIamPolicyResponse_IamPolicyAnalysis{} 803 if protoimpl.UnsafeEnabled { 804 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[10] 805 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 806 ms.StoreMessageInfo(mi) 807 } 808} 809 810func (x *AnalyzeIamPolicyResponse_IamPolicyAnalysis) String() string { 811 return protoimpl.X.MessageStringOf(x) 812} 813 814func (*AnalyzeIamPolicyResponse_IamPolicyAnalysis) ProtoMessage() {} 815 816func (x *AnalyzeIamPolicyResponse_IamPolicyAnalysis) ProtoReflect() protoreflect.Message { 817 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[10] 818 if protoimpl.UnsafeEnabled && x != nil { 819 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 820 if ms.LoadMessageInfo() == nil { 821 ms.StoreMessageInfo(mi) 822 } 823 return ms 824 } 825 return mi.MessageOf(x) 826} 827 828// Deprecated: Use AnalyzeIamPolicyResponse_IamPolicyAnalysis.ProtoReflect.Descriptor instead. 829func (*AnalyzeIamPolicyResponse_IamPolicyAnalysis) Descriptor() ([]byte, []int) { 830 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP(), []int{2, 0} 831} 832 833func (x *AnalyzeIamPolicyResponse_IamPolicyAnalysis) GetAnalysisQuery() *IamPolicyAnalysisQuery { 834 if x != nil { 835 return x.AnalysisQuery 836 } 837 return nil 838} 839 840func (x *AnalyzeIamPolicyResponse_IamPolicyAnalysis) GetAnalysisResults() []*IamPolicyAnalysisResult { 841 if x != nil { 842 return x.AnalysisResults 843 } 844 return nil 845} 846 847func (x *AnalyzeIamPolicyResponse_IamPolicyAnalysis) GetFullyExplored() bool { 848 if x != nil { 849 return x.FullyExplored 850 } 851 return false 852} 853 854// A Cloud Storage location. 855type IamPolicyAnalysisOutputConfig_GcsDestination struct { 856 state protoimpl.MessageState 857 sizeCache protoimpl.SizeCache 858 unknownFields protoimpl.UnknownFields 859 860 // Required. The uri of the Cloud Storage object. It's the same uri that is used by 861 // gsutil. For example: "gs://bucket_name/object_name". See [Viewing and 862 // Editing Object 863 // Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) 864 // for more information. 865 Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` 866} 867 868func (x *IamPolicyAnalysisOutputConfig_GcsDestination) Reset() { 869 *x = IamPolicyAnalysisOutputConfig_GcsDestination{} 870 if protoimpl.UnsafeEnabled { 871 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[11] 872 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 873 ms.StoreMessageInfo(mi) 874 } 875} 876 877func (x *IamPolicyAnalysisOutputConfig_GcsDestination) String() string { 878 return protoimpl.X.MessageStringOf(x) 879} 880 881func (*IamPolicyAnalysisOutputConfig_GcsDestination) ProtoMessage() {} 882 883func (x *IamPolicyAnalysisOutputConfig_GcsDestination) ProtoReflect() protoreflect.Message { 884 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[11] 885 if protoimpl.UnsafeEnabled && x != nil { 886 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 887 if ms.LoadMessageInfo() == nil { 888 ms.StoreMessageInfo(mi) 889 } 890 return ms 891 } 892 return mi.MessageOf(x) 893} 894 895// Deprecated: Use IamPolicyAnalysisOutputConfig_GcsDestination.ProtoReflect.Descriptor instead. 896func (*IamPolicyAnalysisOutputConfig_GcsDestination) Descriptor() ([]byte, []int) { 897 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP(), []int{3, 0} 898} 899 900func (x *IamPolicyAnalysisOutputConfig_GcsDestination) GetUri() string { 901 if x != nil { 902 return x.Uri 903 } 904 return "" 905} 906 907// Contains request options. 908type ExportIamPolicyAnalysisRequest_Options struct { 909 state protoimpl.MessageState 910 sizeCache protoimpl.SizeCache 911 unknownFields protoimpl.UnknownFields 912 913 // Optional. If true, the identities section of the result will expand any 914 // Google groups appearing in an IAM policy binding. 915 // 916 // If [identity_selector][] is specified, the identity in the result will 917 // be determined by the selector, and this flag will have no effect. 918 // 919 // Default is false. 920 ExpandGroups bool `protobuf:"varint,1,opt,name=expand_groups,json=expandGroups,proto3" json:"expand_groups,omitempty"` 921 // Optional. If true, the access section of result will expand any roles 922 // appearing in IAM policy bindings to include their permissions. 923 // 924 // If [access_selector][] is specified, the access section of the result 925 // will be determined by the selector, and this flag will have no effect. 926 // 927 // Default is false. 928 ExpandRoles bool `protobuf:"varint,2,opt,name=expand_roles,json=expandRoles,proto3" json:"expand_roles,omitempty"` 929 // Optional. If true, the resource section of the result will expand any 930 // resource attached to an IAM policy to include resources lower in the 931 // resource hierarchy. 932 // 933 // For example, if the request analyzes for which resources user A has 934 // permission P, and the results include an IAM policy with P on a GCP 935 // folder, the results will also include resources in that folder with 936 // permission P. 937 // 938 // If [resource_selector][] is specified, the resource section of the result 939 // will be determined by the selector, and this flag will have no effect. 940 // Default is false. 941 ExpandResources bool `protobuf:"varint,3,opt,name=expand_resources,json=expandResources,proto3" json:"expand_resources,omitempty"` 942 // Optional. If true, the result will output resource edges, starting 943 // from the policy attached resource, to any expanded resources. 944 // Default is false. 945 OutputResourceEdges bool `protobuf:"varint,4,opt,name=output_resource_edges,json=outputResourceEdges,proto3" json:"output_resource_edges,omitempty"` 946 // Optional. If true, the result will output group identity edges, starting 947 // from the binding's group members, to any expanded identities. 948 // Default is false. 949 OutputGroupEdges bool `protobuf:"varint,5,opt,name=output_group_edges,json=outputGroupEdges,proto3" json:"output_group_edges,omitempty"` 950 // Optional. If true, the response will include access analysis from identities to 951 // resources via service account impersonation. This is a very expensive 952 // operation, because many derived queries will be executed. 953 // 954 // For example, if the request analyzes for which resources user A has 955 // permission P, and there's an IAM policy states user A has 956 // iam.serviceAccounts.getAccessToken permission to a service account SA, 957 // and there's another IAM policy states service account SA has permission P 958 // to a GCP folder F, then user A potentially has access to the GCP folder 959 // F. And those advanced analysis results will be included in 960 // [AnalyzeIamPolicyResponse.service_account_impersonation_analysis][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis]. 961 // 962 // Another example, if the request analyzes for who has 963 // permission P to a GCP folder F, and there's an IAM policy states user A 964 // has iam.serviceAccounts.actAs permission to a service account SA, and 965 // there's another IAM policy states service account SA has permission P to 966 // the GCP folder F, then user A potentially has access to the GCP folder 967 // F. And those advanced analysis results will be included in 968 // [AnalyzeIamPolicyResponse.service_account_impersonation_analysis][google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis]. 969 // 970 // Default is false. 971 AnalyzeServiceAccountImpersonation bool `protobuf:"varint,6,opt,name=analyze_service_account_impersonation,json=analyzeServiceAccountImpersonation,proto3" json:"analyze_service_account_impersonation,omitempty"` 972} 973 974func (x *ExportIamPolicyAnalysisRequest_Options) Reset() { 975 *x = ExportIamPolicyAnalysisRequest_Options{} 976 if protoimpl.UnsafeEnabled { 977 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[12] 978 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 979 ms.StoreMessageInfo(mi) 980 } 981} 982 983func (x *ExportIamPolicyAnalysisRequest_Options) String() string { 984 return protoimpl.X.MessageStringOf(x) 985} 986 987func (*ExportIamPolicyAnalysisRequest_Options) ProtoMessage() {} 988 989func (x *ExportIamPolicyAnalysisRequest_Options) ProtoReflect() protoreflect.Message { 990 mi := &file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[12] 991 if protoimpl.UnsafeEnabled && x != nil { 992 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 993 if ms.LoadMessageInfo() == nil { 994 ms.StoreMessageInfo(mi) 995 } 996 return ms 997 } 998 return mi.MessageOf(x) 999} 1000 1001// Deprecated: Use ExportIamPolicyAnalysisRequest_Options.ProtoReflect.Descriptor instead. 1002func (*ExportIamPolicyAnalysisRequest_Options) Descriptor() ([]byte, []int) { 1003 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP(), []int{4, 0} 1004} 1005 1006func (x *ExportIamPolicyAnalysisRequest_Options) GetExpandGroups() bool { 1007 if x != nil { 1008 return x.ExpandGroups 1009 } 1010 return false 1011} 1012 1013func (x *ExportIamPolicyAnalysisRequest_Options) GetExpandRoles() bool { 1014 if x != nil { 1015 return x.ExpandRoles 1016 } 1017 return false 1018} 1019 1020func (x *ExportIamPolicyAnalysisRequest_Options) GetExpandResources() bool { 1021 if x != nil { 1022 return x.ExpandResources 1023 } 1024 return false 1025} 1026 1027func (x *ExportIamPolicyAnalysisRequest_Options) GetOutputResourceEdges() bool { 1028 if x != nil { 1029 return x.OutputResourceEdges 1030 } 1031 return false 1032} 1033 1034func (x *ExportIamPolicyAnalysisRequest_Options) GetOutputGroupEdges() bool { 1035 if x != nil { 1036 return x.OutputGroupEdges 1037 } 1038 return false 1039} 1040 1041func (x *ExportIamPolicyAnalysisRequest_Options) GetAnalyzeServiceAccountImpersonation() bool { 1042 if x != nil { 1043 return x.AnalyzeServiceAccountImpersonation 1044 } 1045 return false 1046} 1047 1048var File_google_cloud_asset_v1p4beta1_asset_service_proto protoreflect.FileDescriptor 1049 1050var file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDesc = []byte{ 1051 0x0a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 1052 0x73, 0x73, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 1053 0x73, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 1054 0x74, 0x6f, 0x12, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1055 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 1056 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 1057 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 1058 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 1059 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 1060 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x73, 1061 0x73, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x73, 1062 0x73, 0x65, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 1063 0x6c, 0x65, 0x2f, 0x69, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 1064 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 1065 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 1066 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 1067 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 1068 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 1069 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 1070 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xea, 0x04, 0x0a, 0x16, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 1071 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 1072 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 1073 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x77, 0x0a, 0x11, 1074 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 1075 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1076 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 1077 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 1078 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 0x65, 1079 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x03, 1080 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x6c, 1081 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x77, 0x0a, 0x11, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 1082 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 1083 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1084 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 1085 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 1086 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 1087 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x69, 0x64, 1088 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x71, 1089 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 1090 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1091 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 1092 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 1093 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x63, 1094 0x63, 0x65, 0x73, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 1095 0x01, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 1096 0x72, 0x1a, 0x45, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x6c, 1097 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x12, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 1098 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 1099 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 1100 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x33, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6e, 1101 0x74, 0x69, 0x74, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x08, 1102 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 1103 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x52, 0x0a, 1104 0x0e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 1105 0x19, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 1106 0xe0, 0x41, 0x01, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x70, 0x65, 1107 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 1108 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 1109 0x73, 0x22, 0xf8, 0x04, 0x0a, 0x17, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 1110 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x60, 0x0a, 1111 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 1112 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1113 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 1114 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 1115 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 1116 0x52, 0x0d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 1117 0x5c, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 1118 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1119 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 1120 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 1121 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 1122 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x9c, 0x03, 1123 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x78, 0x70, 1124 0x61, 0x6e, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 1125 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x47, 0x72, 0x6f, 1126 0x75, 0x70, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x6f, 1127 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 1128 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x65, 1129 0x78, 0x70, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 1130 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x61, 1131 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x15, 0x6f, 1132 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 1133 0x64, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 1134 0x13, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 1135 0x64, 0x67, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 1136 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 1137 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 1138 0x75, 0x70, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x25, 0x61, 0x6e, 0x61, 0x6c, 0x79, 1139 0x7a, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 1140 0x6e, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1141 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x22, 0x61, 0x6e, 0x61, 1142 0x6c, 0x79, 0x7a, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 1143 0x6e, 0x74, 0x49, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 1144 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 1145 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 1146 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 1147 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 1148 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xc1, 0x05, 0x0a, 1149 0x18, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 1150 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x0d, 0x6d, 0x61, 0x69, 1151 0x6e, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 1152 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1153 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 1154 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 1155 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 1156 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x0c, 0x6d, 0x61, 0x69, 0x6e, 1157 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x9d, 0x01, 0x0a, 0x26, 0x73, 0x65, 0x72, 1158 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6d, 0x70, 1159 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 1160 0x73, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1161 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 1162 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 1163 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 1164 0x65, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 1165 0x73, 0x69, 0x73, 0x52, 0x23, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 1166 0x75, 0x6e, 0x74, 0x49, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1167 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x75, 0x6c, 0x6c, 1168 0x79, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 1169 0x52, 0x0d, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x64, 0x12, 1170 0x73, 0x0a, 0x13, 0x6e, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 1171 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 1172 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 1173 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 1174 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 1175 0x75, 0x6c, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 1176 0x65, 0x52, 0x11, 0x6e, 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x45, 0x72, 1177 0x72, 0x6f, 0x72, 0x73, 0x1a, 0xf9, 0x01, 0x0a, 0x11, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 1178 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x5b, 0x0a, 0x0e, 0x61, 0x6e, 1179 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 1180 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1181 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 1182 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 1183 0x73, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x0d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 1184 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x60, 0x0a, 0x10, 0x61, 0x6e, 0x61, 0x6c, 0x79, 1185 0x73, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 1186 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1187 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 1188 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 1189 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 1190 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x75, 0x6c, 1191 0x6c, 0x79, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 1192 0x08, 0x52, 0x0d, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x64, 1193 0x22, 0xce, 0x01, 0x0a, 0x1d, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 1194 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 1195 0x69, 0x67, 0x12, 0x75, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 1196 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 1197 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 1198 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 1199 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4f, 0x75, 0x74, 0x70, 1200 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 1201 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x63, 0x73, 0x44, 0x65, 1202 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x27, 0x0a, 0x0e, 0x47, 0x63, 0x73, 1203 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x03, 0x75, 1204 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x75, 1205 0x72, 0x69, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 1206 0x6e, 0x22, 0xa0, 0x05, 0x0a, 0x1e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x61, 0x6d, 0x50, 1207 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 1208 0x75, 0x65, 0x73, 0x74, 0x12, 0x60, 0x0a, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 1209 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 1210 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 1211 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 1212 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 0x75, 0x65, 1213 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 1214 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x63, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 1215 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1216 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 1217 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x61, 0x6d, 1218 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 1219 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x03, 0xe0, 1220 0x41, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x65, 0x0a, 0x0d, 0x6f, 1221 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 1222 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1223 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 1224 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 1225 0x73, 0x69, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 1226 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 1227 0x69, 0x67, 0x1a, 0xcf, 0x02, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 1228 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 1229 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x61, 1230 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x61, 1231 0x6e, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 1232 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 1233 0x12, 0x2e, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 1234 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 1235 0x0f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 1236 0x12, 0x37, 0x0a, 0x15, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 1237 0x72, 0x63, 0x65, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 1238 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 1239 0x75, 0x72, 0x63, 0x65, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6f, 0x75, 0x74, 1240 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 1241 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x70, 1242 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x25, 1243 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 1244 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 1245 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 1246 0x52, 0x22, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 1247 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 1248 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x1f, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 1249 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 1250 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 1251 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 1252 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1253 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 1254 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 1255 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6f, 0x75, 1256 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, 0xe5, 0x04, 0x0a, 0x0c, 0x41, 1257 0x73, 0x73, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc2, 0x01, 0x0a, 0x10, 1258 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 1259 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1260 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 1261 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 1262 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1263 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 1264 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 1265 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 1266 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 1267 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x71, 0x75, 1268 0x65, 0x72, 0x79, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x2a, 0x2f, 0x2a, 0x7d, 0x3a, 1269 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 1270 0x12, 0xc0, 0x02, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 1271 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x3c, 0x2e, 0x67, 1272 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 1273 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 1274 0x72, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 1275 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 1276 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 1277 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc7, 0x01, 0x82, 0xd3, 0xe4, 0x93, 1278 0x02, 0x43, 0x22, 0x3e, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 1279 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x70, 1280 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x2a, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x78, 0x70, 0x6f, 0x72, 1281 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 1282 0x69, 0x73, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x7b, 0x0a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1283 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 1284 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x61, 0x6d, 1285 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 1286 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1287 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 1288 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 1289 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 1290 0x65, 0x73, 0x74, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x73, 0x73, 1291 0x65, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 1292 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 1293 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 1294 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1295 0x72, 0x6d, 0x42, 0xb8, 0x01, 0x0a, 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1296 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 1297 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x11, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x65, 1298 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 1299 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 1300 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 1301 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2f, 1302 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x61, 0x73, 0x73, 0x65, 0x74, 0xaa, 1303 0x02, 0x1c, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 1304 0x73, 0x73, 0x65, 0x74, 0x2e, 0x56, 0x31, 0x50, 0x34, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 1305 0x1c, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x73, 1306 0x73, 0x65, 0x74, 0x5c, 0x56, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 1307 0x72, 0x6f, 0x74, 0x6f, 0x33, 1308} 1309 1310var ( 1311 file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescOnce sync.Once 1312 file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescData = file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDesc 1313) 1314 1315func file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescGZIP() []byte { 1316 file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescOnce.Do(func() { 1317 file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescData) 1318 }) 1319 return file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDescData 1320} 1321 1322var file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes = make([]protoimpl.MessageInfo, 13) 1323var file_google_cloud_asset_v1p4beta1_asset_service_proto_goTypes = []interface{}{ 1324 (*IamPolicyAnalysisQuery)(nil), // 0: google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery 1325 (*AnalyzeIamPolicyRequest)(nil), // 1: google.cloud.asset.v1p4beta1.AnalyzeIamPolicyRequest 1326 (*AnalyzeIamPolicyResponse)(nil), // 2: google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse 1327 (*IamPolicyAnalysisOutputConfig)(nil), // 3: google.cloud.asset.v1p4beta1.IamPolicyAnalysisOutputConfig 1328 (*ExportIamPolicyAnalysisRequest)(nil), // 4: google.cloud.asset.v1p4beta1.ExportIamPolicyAnalysisRequest 1329 (*ExportIamPolicyAnalysisResponse)(nil), // 5: google.cloud.asset.v1p4beta1.ExportIamPolicyAnalysisResponse 1330 (*IamPolicyAnalysisQuery_ResourceSelector)(nil), // 6: google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.ResourceSelector 1331 (*IamPolicyAnalysisQuery_IdentitySelector)(nil), // 7: google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.IdentitySelector 1332 (*IamPolicyAnalysisQuery_AccessSelector)(nil), // 8: google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.AccessSelector 1333 (*AnalyzeIamPolicyRequest_Options)(nil), // 9: google.cloud.asset.v1p4beta1.AnalyzeIamPolicyRequest.Options 1334 (*AnalyzeIamPolicyResponse_IamPolicyAnalysis)(nil), // 10: google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.IamPolicyAnalysis 1335 (*IamPolicyAnalysisOutputConfig_GcsDestination)(nil), // 11: google.cloud.asset.v1p4beta1.IamPolicyAnalysisOutputConfig.GcsDestination 1336 (*ExportIamPolicyAnalysisRequest_Options)(nil), // 12: google.cloud.asset.v1p4beta1.ExportIamPolicyAnalysisRequest.Options 1337 (*IamPolicyAnalysisResult_AnalysisState)(nil), // 13: google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult.AnalysisState 1338 (*durationpb.Duration)(nil), // 14: google.protobuf.Duration 1339 (*IamPolicyAnalysisResult)(nil), // 15: google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult 1340 (*longrunning.Operation)(nil), // 16: google.longrunning.Operation 1341} 1342var file_google_cloud_asset_v1p4beta1_asset_service_proto_depIdxs = []int32{ 1343 6, // 0: google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.resource_selector:type_name -> google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.ResourceSelector 1344 7, // 1: google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.identity_selector:type_name -> google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.IdentitySelector 1345 8, // 2: google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.access_selector:type_name -> google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery.AccessSelector 1346 0, // 3: google.cloud.asset.v1p4beta1.AnalyzeIamPolicyRequest.analysis_query:type_name -> google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery 1347 9, // 4: google.cloud.asset.v1p4beta1.AnalyzeIamPolicyRequest.options:type_name -> google.cloud.asset.v1p4beta1.AnalyzeIamPolicyRequest.Options 1348 10, // 5: google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.main_analysis:type_name -> google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.IamPolicyAnalysis 1349 10, // 6: google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis:type_name -> google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.IamPolicyAnalysis 1350 13, // 7: google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.non_critical_errors:type_name -> google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult.AnalysisState 1351 11, // 8: google.cloud.asset.v1p4beta1.IamPolicyAnalysisOutputConfig.gcs_destination:type_name -> google.cloud.asset.v1p4beta1.IamPolicyAnalysisOutputConfig.GcsDestination 1352 0, // 9: google.cloud.asset.v1p4beta1.ExportIamPolicyAnalysisRequest.analysis_query:type_name -> google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery 1353 12, // 10: google.cloud.asset.v1p4beta1.ExportIamPolicyAnalysisRequest.options:type_name -> google.cloud.asset.v1p4beta1.ExportIamPolicyAnalysisRequest.Options 1354 3, // 11: google.cloud.asset.v1p4beta1.ExportIamPolicyAnalysisRequest.output_config:type_name -> google.cloud.asset.v1p4beta1.IamPolicyAnalysisOutputConfig 1355 3, // 12: google.cloud.asset.v1p4beta1.ExportIamPolicyAnalysisResponse.output_config:type_name -> google.cloud.asset.v1p4beta1.IamPolicyAnalysisOutputConfig 1356 14, // 13: google.cloud.asset.v1p4beta1.AnalyzeIamPolicyRequest.Options.execution_timeout:type_name -> google.protobuf.Duration 1357 0, // 14: google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.IamPolicyAnalysis.analysis_query:type_name -> google.cloud.asset.v1p4beta1.IamPolicyAnalysisQuery 1358 15, // 15: google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse.IamPolicyAnalysis.analysis_results:type_name -> google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult 1359 1, // 16: google.cloud.asset.v1p4beta1.AssetService.AnalyzeIamPolicy:input_type -> google.cloud.asset.v1p4beta1.AnalyzeIamPolicyRequest 1360 4, // 17: google.cloud.asset.v1p4beta1.AssetService.ExportIamPolicyAnalysis:input_type -> google.cloud.asset.v1p4beta1.ExportIamPolicyAnalysisRequest 1361 2, // 18: google.cloud.asset.v1p4beta1.AssetService.AnalyzeIamPolicy:output_type -> google.cloud.asset.v1p4beta1.AnalyzeIamPolicyResponse 1362 16, // 19: google.cloud.asset.v1p4beta1.AssetService.ExportIamPolicyAnalysis:output_type -> google.longrunning.Operation 1363 18, // [18:20] is the sub-list for method output_type 1364 16, // [16:18] is the sub-list for method input_type 1365 16, // [16:16] is the sub-list for extension type_name 1366 16, // [16:16] is the sub-list for extension extendee 1367 0, // [0:16] is the sub-list for field type_name 1368} 1369 1370func init() { file_google_cloud_asset_v1p4beta1_asset_service_proto_init() } 1371func file_google_cloud_asset_v1p4beta1_asset_service_proto_init() { 1372 if File_google_cloud_asset_v1p4beta1_asset_service_proto != nil { 1373 return 1374 } 1375 file_google_cloud_asset_v1p4beta1_assets_proto_init() 1376 if !protoimpl.UnsafeEnabled { 1377 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 1378 switch v := v.(*IamPolicyAnalysisQuery); i { 1379 case 0: 1380 return &v.state 1381 case 1: 1382 return &v.sizeCache 1383 case 2: 1384 return &v.unknownFields 1385 default: 1386 return nil 1387 } 1388 } 1389 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 1390 switch v := v.(*AnalyzeIamPolicyRequest); i { 1391 case 0: 1392 return &v.state 1393 case 1: 1394 return &v.sizeCache 1395 case 2: 1396 return &v.unknownFields 1397 default: 1398 return nil 1399 } 1400 } 1401 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 1402 switch v := v.(*AnalyzeIamPolicyResponse); i { 1403 case 0: 1404 return &v.state 1405 case 1: 1406 return &v.sizeCache 1407 case 2: 1408 return &v.unknownFields 1409 default: 1410 return nil 1411 } 1412 } 1413 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 1414 switch v := v.(*IamPolicyAnalysisOutputConfig); i { 1415 case 0: 1416 return &v.state 1417 case 1: 1418 return &v.sizeCache 1419 case 2: 1420 return &v.unknownFields 1421 default: 1422 return nil 1423 } 1424 } 1425 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 1426 switch v := v.(*ExportIamPolicyAnalysisRequest); i { 1427 case 0: 1428 return &v.state 1429 case 1: 1430 return &v.sizeCache 1431 case 2: 1432 return &v.unknownFields 1433 default: 1434 return nil 1435 } 1436 } 1437 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 1438 switch v := v.(*ExportIamPolicyAnalysisResponse); i { 1439 case 0: 1440 return &v.state 1441 case 1: 1442 return &v.sizeCache 1443 case 2: 1444 return &v.unknownFields 1445 default: 1446 return nil 1447 } 1448 } 1449 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 1450 switch v := v.(*IamPolicyAnalysisQuery_ResourceSelector); i { 1451 case 0: 1452 return &v.state 1453 case 1: 1454 return &v.sizeCache 1455 case 2: 1456 return &v.unknownFields 1457 default: 1458 return nil 1459 } 1460 } 1461 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 1462 switch v := v.(*IamPolicyAnalysisQuery_IdentitySelector); i { 1463 case 0: 1464 return &v.state 1465 case 1: 1466 return &v.sizeCache 1467 case 2: 1468 return &v.unknownFields 1469 default: 1470 return nil 1471 } 1472 } 1473 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 1474 switch v := v.(*IamPolicyAnalysisQuery_AccessSelector); i { 1475 case 0: 1476 return &v.state 1477 case 1: 1478 return &v.sizeCache 1479 case 2: 1480 return &v.unknownFields 1481 default: 1482 return nil 1483 } 1484 } 1485 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 1486 switch v := v.(*AnalyzeIamPolicyRequest_Options); i { 1487 case 0: 1488 return &v.state 1489 case 1: 1490 return &v.sizeCache 1491 case 2: 1492 return &v.unknownFields 1493 default: 1494 return nil 1495 } 1496 } 1497 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 1498 switch v := v.(*AnalyzeIamPolicyResponse_IamPolicyAnalysis); i { 1499 case 0: 1500 return &v.state 1501 case 1: 1502 return &v.sizeCache 1503 case 2: 1504 return &v.unknownFields 1505 default: 1506 return nil 1507 } 1508 } 1509 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 1510 switch v := v.(*IamPolicyAnalysisOutputConfig_GcsDestination); i { 1511 case 0: 1512 return &v.state 1513 case 1: 1514 return &v.sizeCache 1515 case 2: 1516 return &v.unknownFields 1517 default: 1518 return nil 1519 } 1520 } 1521 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 1522 switch v := v.(*ExportIamPolicyAnalysisRequest_Options); i { 1523 case 0: 1524 return &v.state 1525 case 1: 1526 return &v.sizeCache 1527 case 2: 1528 return &v.unknownFields 1529 default: 1530 return nil 1531 } 1532 } 1533 } 1534 file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes[3].OneofWrappers = []interface{}{ 1535 (*IamPolicyAnalysisOutputConfig_GcsDestination_)(nil), 1536 } 1537 type x struct{} 1538 out := protoimpl.TypeBuilder{ 1539 File: protoimpl.DescBuilder{ 1540 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1541 RawDescriptor: file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDesc, 1542 NumEnums: 0, 1543 NumMessages: 13, 1544 NumExtensions: 0, 1545 NumServices: 1, 1546 }, 1547 GoTypes: file_google_cloud_asset_v1p4beta1_asset_service_proto_goTypes, 1548 DependencyIndexes: file_google_cloud_asset_v1p4beta1_asset_service_proto_depIdxs, 1549 MessageInfos: file_google_cloud_asset_v1p4beta1_asset_service_proto_msgTypes, 1550 }.Build() 1551 File_google_cloud_asset_v1p4beta1_asset_service_proto = out.File 1552 file_google_cloud_asset_v1p4beta1_asset_service_proto_rawDesc = nil 1553 file_google_cloud_asset_v1p4beta1_asset_service_proto_goTypes = nil 1554 file_google_cloud_asset_v1p4beta1_asset_service_proto_depIdxs = nil 1555} 1556 1557// Reference imports to suppress errors if they are not otherwise used. 1558var _ context.Context 1559var _ grpc.ClientConnInterface 1560 1561// This is a compile-time assertion to ensure that this generated file 1562// is compatible with the grpc package it is being compiled against. 1563const _ = grpc.SupportPackageIsVersion6 1564 1565// AssetServiceClient is the client API for AssetService service. 1566// 1567// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 1568type AssetServiceClient interface { 1569 // Analyzes IAM policies based on the specified request. Returns 1570 // a list of [IamPolicyAnalysisResult][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult] matching the request. 1571 AnalyzeIamPolicy(ctx context.Context, in *AnalyzeIamPolicyRequest, opts ...grpc.CallOption) (*AnalyzeIamPolicyResponse, error) 1572 // Exports IAM policy analysis based on the specified request. This API 1573 // implements the [google.longrunning.Operation][google.longrunning.Operation] API allowing you to keep 1574 // track of the export. The metadata contains the request to help callers to 1575 // map responses to requests. 1576 ExportIamPolicyAnalysis(ctx context.Context, in *ExportIamPolicyAnalysisRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 1577} 1578 1579type assetServiceClient struct { 1580 cc grpc.ClientConnInterface 1581} 1582 1583func NewAssetServiceClient(cc grpc.ClientConnInterface) AssetServiceClient { 1584 return &assetServiceClient{cc} 1585} 1586 1587func (c *assetServiceClient) AnalyzeIamPolicy(ctx context.Context, in *AnalyzeIamPolicyRequest, opts ...grpc.CallOption) (*AnalyzeIamPolicyResponse, error) { 1588 out := new(AnalyzeIamPolicyResponse) 1589 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1p4beta1.AssetService/AnalyzeIamPolicy", in, out, opts...) 1590 if err != nil { 1591 return nil, err 1592 } 1593 return out, nil 1594} 1595 1596func (c *assetServiceClient) ExportIamPolicyAnalysis(ctx context.Context, in *ExportIamPolicyAnalysisRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 1597 out := new(longrunning.Operation) 1598 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1p4beta1.AssetService/ExportIamPolicyAnalysis", in, out, opts...) 1599 if err != nil { 1600 return nil, err 1601 } 1602 return out, nil 1603} 1604 1605// AssetServiceServer is the server API for AssetService service. 1606type AssetServiceServer interface { 1607 // Analyzes IAM policies based on the specified request. Returns 1608 // a list of [IamPolicyAnalysisResult][google.cloud.asset.v1p4beta1.IamPolicyAnalysisResult] matching the request. 1609 AnalyzeIamPolicy(context.Context, *AnalyzeIamPolicyRequest) (*AnalyzeIamPolicyResponse, error) 1610 // Exports IAM policy analysis based on the specified request. This API 1611 // implements the [google.longrunning.Operation][google.longrunning.Operation] API allowing you to keep 1612 // track of the export. The metadata contains the request to help callers to 1613 // map responses to requests. 1614 ExportIamPolicyAnalysis(context.Context, *ExportIamPolicyAnalysisRequest) (*longrunning.Operation, error) 1615} 1616 1617// UnimplementedAssetServiceServer can be embedded to have forward compatible implementations. 1618type UnimplementedAssetServiceServer struct { 1619} 1620 1621func (*UnimplementedAssetServiceServer) AnalyzeIamPolicy(context.Context, *AnalyzeIamPolicyRequest) (*AnalyzeIamPolicyResponse, error) { 1622 return nil, status.Errorf(codes.Unimplemented, "method AnalyzeIamPolicy not implemented") 1623} 1624func (*UnimplementedAssetServiceServer) ExportIamPolicyAnalysis(context.Context, *ExportIamPolicyAnalysisRequest) (*longrunning.Operation, error) { 1625 return nil, status.Errorf(codes.Unimplemented, "method ExportIamPolicyAnalysis not implemented") 1626} 1627 1628func RegisterAssetServiceServer(s *grpc.Server, srv AssetServiceServer) { 1629 s.RegisterService(&_AssetService_serviceDesc, srv) 1630} 1631 1632func _AssetService_AnalyzeIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 1633 in := new(AnalyzeIamPolicyRequest) 1634 if err := dec(in); err != nil { 1635 return nil, err 1636 } 1637 if interceptor == nil { 1638 return srv.(AssetServiceServer).AnalyzeIamPolicy(ctx, in) 1639 } 1640 info := &grpc.UnaryServerInfo{ 1641 Server: srv, 1642 FullMethod: "/google.cloud.asset.v1p4beta1.AssetService/AnalyzeIamPolicy", 1643 } 1644 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 1645 return srv.(AssetServiceServer).AnalyzeIamPolicy(ctx, req.(*AnalyzeIamPolicyRequest)) 1646 } 1647 return interceptor(ctx, in, info, handler) 1648} 1649 1650func _AssetService_ExportIamPolicyAnalysis_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 1651 in := new(ExportIamPolicyAnalysisRequest) 1652 if err := dec(in); err != nil { 1653 return nil, err 1654 } 1655 if interceptor == nil { 1656 return srv.(AssetServiceServer).ExportIamPolicyAnalysis(ctx, in) 1657 } 1658 info := &grpc.UnaryServerInfo{ 1659 Server: srv, 1660 FullMethod: "/google.cloud.asset.v1p4beta1.AssetService/ExportIamPolicyAnalysis", 1661 } 1662 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 1663 return srv.(AssetServiceServer).ExportIamPolicyAnalysis(ctx, req.(*ExportIamPolicyAnalysisRequest)) 1664 } 1665 return interceptor(ctx, in, info, handler) 1666} 1667 1668var _AssetService_serviceDesc = grpc.ServiceDesc{ 1669 ServiceName: "google.cloud.asset.v1p4beta1.AssetService", 1670 HandlerType: (*AssetServiceServer)(nil), 1671 Methods: []grpc.MethodDesc{ 1672 { 1673 MethodName: "AnalyzeIamPolicy", 1674 Handler: _AssetService_AnalyzeIamPolicy_Handler, 1675 }, 1676 { 1677 MethodName: "ExportIamPolicyAnalysis", 1678 Handler: _AssetService_ExportIamPolicyAnalysis_Handler, 1679 }, 1680 }, 1681 Streams: []grpc.StreamDesc{}, 1682 Metadata: "google/cloud/asset/v1p4beta1/asset_service.proto", 1683} 1684