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/cloud/asset/v1/assets.proto 20 21package asset 22 23import ( 24 reflect "reflect" 25 sync "sync" 26 27 _ "google.golang.org/genproto/googleapis/api/annotations" 28 v11 "google.golang.org/genproto/googleapis/cloud/orgpolicy/v1" 29 v12 "google.golang.org/genproto/googleapis/cloud/osconfig/v1" 30 v1 "google.golang.org/genproto/googleapis/iam/v1" 31 v13 "google.golang.org/genproto/googleapis/identity/accesscontextmanager/v1" 32 code "google.golang.org/genproto/googleapis/rpc/code" 33 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 34 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 35 _ "google.golang.org/protobuf/types/known/anypb" 36 structpb "google.golang.org/protobuf/types/known/structpb" 37 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 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// State of prior asset. 48type TemporalAsset_PriorAssetState int32 49 50const ( 51 // prior_asset is not applicable for the current asset. 52 TemporalAsset_PRIOR_ASSET_STATE_UNSPECIFIED TemporalAsset_PriorAssetState = 0 53 // prior_asset is populated correctly. 54 TemporalAsset_PRESENT TemporalAsset_PriorAssetState = 1 55 // Failed to set prior_asset. 56 TemporalAsset_INVALID TemporalAsset_PriorAssetState = 2 57 // Current asset is the first known state. 58 TemporalAsset_DOES_NOT_EXIST TemporalAsset_PriorAssetState = 3 59 // prior_asset is a deletion. 60 TemporalAsset_DELETED TemporalAsset_PriorAssetState = 4 61) 62 63// Enum value maps for TemporalAsset_PriorAssetState. 64var ( 65 TemporalAsset_PriorAssetState_name = map[int32]string{ 66 0: "PRIOR_ASSET_STATE_UNSPECIFIED", 67 1: "PRESENT", 68 2: "INVALID", 69 3: "DOES_NOT_EXIST", 70 4: "DELETED", 71 } 72 TemporalAsset_PriorAssetState_value = map[string]int32{ 73 "PRIOR_ASSET_STATE_UNSPECIFIED": 0, 74 "PRESENT": 1, 75 "INVALID": 2, 76 "DOES_NOT_EXIST": 3, 77 "DELETED": 4, 78 } 79) 80 81func (x TemporalAsset_PriorAssetState) Enum() *TemporalAsset_PriorAssetState { 82 p := new(TemporalAsset_PriorAssetState) 83 *p = x 84 return p 85} 86 87func (x TemporalAsset_PriorAssetState) String() string { 88 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 89} 90 91func (TemporalAsset_PriorAssetState) Descriptor() protoreflect.EnumDescriptor { 92 return file_google_cloud_asset_v1_assets_proto_enumTypes[0].Descriptor() 93} 94 95func (TemporalAsset_PriorAssetState) Type() protoreflect.EnumType { 96 return &file_google_cloud_asset_v1_assets_proto_enumTypes[0] 97} 98 99func (x TemporalAsset_PriorAssetState) Number() protoreflect.EnumNumber { 100 return protoreflect.EnumNumber(x) 101} 102 103// Deprecated: Use TemporalAsset_PriorAssetState.Descriptor instead. 104func (TemporalAsset_PriorAssetState) EnumDescriptor() ([]byte, []int) { 105 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{0, 0} 106} 107 108// Value of this expression. 109type ConditionEvaluation_EvaluationValue int32 110 111const ( 112 // Reserved for future use. 113 ConditionEvaluation_EVALUATION_VALUE_UNSPECIFIED ConditionEvaluation_EvaluationValue = 0 114 // The evaluation result is `true`. 115 ConditionEvaluation_TRUE ConditionEvaluation_EvaluationValue = 1 116 // The evaluation result is `false`. 117 ConditionEvaluation_FALSE ConditionEvaluation_EvaluationValue = 2 118 // The evaluation result is `conditional` when the condition expression 119 // contains variables that are either missing input values or have not been 120 // supported by Analyzer yet. 121 ConditionEvaluation_CONDITIONAL ConditionEvaluation_EvaluationValue = 3 122) 123 124// Enum value maps for ConditionEvaluation_EvaluationValue. 125var ( 126 ConditionEvaluation_EvaluationValue_name = map[int32]string{ 127 0: "EVALUATION_VALUE_UNSPECIFIED", 128 1: "TRUE", 129 2: "FALSE", 130 3: "CONDITIONAL", 131 } 132 ConditionEvaluation_EvaluationValue_value = map[string]int32{ 133 "EVALUATION_VALUE_UNSPECIFIED": 0, 134 "TRUE": 1, 135 "FALSE": 2, 136 "CONDITIONAL": 3, 137 } 138) 139 140func (x ConditionEvaluation_EvaluationValue) Enum() *ConditionEvaluation_EvaluationValue { 141 p := new(ConditionEvaluation_EvaluationValue) 142 *p = x 143 return p 144} 145 146func (x ConditionEvaluation_EvaluationValue) String() string { 147 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 148} 149 150func (ConditionEvaluation_EvaluationValue) Descriptor() protoreflect.EnumDescriptor { 151 return file_google_cloud_asset_v1_assets_proto_enumTypes[1].Descriptor() 152} 153 154func (ConditionEvaluation_EvaluationValue) Type() protoreflect.EnumType { 155 return &file_google_cloud_asset_v1_assets_proto_enumTypes[1] 156} 157 158func (x ConditionEvaluation_EvaluationValue) Number() protoreflect.EnumNumber { 159 return protoreflect.EnumNumber(x) 160} 161 162// Deprecated: Use ConditionEvaluation_EvaluationValue.Descriptor instead. 163func (ConditionEvaluation_EvaluationValue) EnumDescriptor() ([]byte, []int) { 164 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{12, 0} 165} 166 167// An asset in Google Cloud and its temporal metadata, including the time window 168// when it was observed and its status during that window. 169type TemporalAsset struct { 170 state protoimpl.MessageState 171 sizeCache protoimpl.SizeCache 172 unknownFields protoimpl.UnknownFields 173 174 // The time window when the asset data and state was observed. 175 Window *TimeWindow `protobuf:"bytes,1,opt,name=window,proto3" json:"window,omitempty"` 176 // Whether the asset has been deleted or not. 177 Deleted bool `protobuf:"varint,2,opt,name=deleted,proto3" json:"deleted,omitempty"` 178 // An asset in Google Cloud. 179 Asset *Asset `protobuf:"bytes,3,opt,name=asset,proto3" json:"asset,omitempty"` 180 // State of prior_asset. 181 PriorAssetState TemporalAsset_PriorAssetState `protobuf:"varint,4,opt,name=prior_asset_state,json=priorAssetState,proto3,enum=google.cloud.asset.v1.TemporalAsset_PriorAssetState" json:"prior_asset_state,omitempty"` 182 // Prior copy of the asset. Populated if prior_asset_state is PRESENT. 183 // Currently this is only set for responses in Real-Time Feed. 184 PriorAsset *Asset `protobuf:"bytes,5,opt,name=prior_asset,json=priorAsset,proto3" json:"prior_asset,omitempty"` 185} 186 187func (x *TemporalAsset) Reset() { 188 *x = TemporalAsset{} 189 if protoimpl.UnsafeEnabled { 190 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[0] 191 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 192 ms.StoreMessageInfo(mi) 193 } 194} 195 196func (x *TemporalAsset) String() string { 197 return protoimpl.X.MessageStringOf(x) 198} 199 200func (*TemporalAsset) ProtoMessage() {} 201 202func (x *TemporalAsset) ProtoReflect() protoreflect.Message { 203 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[0] 204 if protoimpl.UnsafeEnabled && x != nil { 205 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 206 if ms.LoadMessageInfo() == nil { 207 ms.StoreMessageInfo(mi) 208 } 209 return ms 210 } 211 return mi.MessageOf(x) 212} 213 214// Deprecated: Use TemporalAsset.ProtoReflect.Descriptor instead. 215func (*TemporalAsset) Descriptor() ([]byte, []int) { 216 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{0} 217} 218 219func (x *TemporalAsset) GetWindow() *TimeWindow { 220 if x != nil { 221 return x.Window 222 } 223 return nil 224} 225 226func (x *TemporalAsset) GetDeleted() bool { 227 if x != nil { 228 return x.Deleted 229 } 230 return false 231} 232 233func (x *TemporalAsset) GetAsset() *Asset { 234 if x != nil { 235 return x.Asset 236 } 237 return nil 238} 239 240func (x *TemporalAsset) GetPriorAssetState() TemporalAsset_PriorAssetState { 241 if x != nil { 242 return x.PriorAssetState 243 } 244 return TemporalAsset_PRIOR_ASSET_STATE_UNSPECIFIED 245} 246 247func (x *TemporalAsset) GetPriorAsset() *Asset { 248 if x != nil { 249 return x.PriorAsset 250 } 251 return nil 252} 253 254// A time window specified by its `start_time` and `end_time`. 255type TimeWindow struct { 256 state protoimpl.MessageState 257 sizeCache protoimpl.SizeCache 258 unknownFields protoimpl.UnknownFields 259 260 // Start time of the time window (exclusive). 261 StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 262 // End time of the time window (inclusive). If not specified, the current 263 // timestamp is used instead. 264 EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 265} 266 267func (x *TimeWindow) Reset() { 268 *x = TimeWindow{} 269 if protoimpl.UnsafeEnabled { 270 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[1] 271 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 272 ms.StoreMessageInfo(mi) 273 } 274} 275 276func (x *TimeWindow) String() string { 277 return protoimpl.X.MessageStringOf(x) 278} 279 280func (*TimeWindow) ProtoMessage() {} 281 282func (x *TimeWindow) ProtoReflect() protoreflect.Message { 283 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[1] 284 if protoimpl.UnsafeEnabled && x != nil { 285 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 286 if ms.LoadMessageInfo() == nil { 287 ms.StoreMessageInfo(mi) 288 } 289 return ms 290 } 291 return mi.MessageOf(x) 292} 293 294// Deprecated: Use TimeWindow.ProtoReflect.Descriptor instead. 295func (*TimeWindow) Descriptor() ([]byte, []int) { 296 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{1} 297} 298 299func (x *TimeWindow) GetStartTime() *timestamppb.Timestamp { 300 if x != nil { 301 return x.StartTime 302 } 303 return nil 304} 305 306func (x *TimeWindow) GetEndTime() *timestamppb.Timestamp { 307 if x != nil { 308 return x.EndTime 309 } 310 return nil 311} 312 313// An asset in Google Cloud. An asset can be any resource in the Google Cloud 314// [resource 315// hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), 316// a resource outside the Google Cloud resource hierarchy (such as Google 317// Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy), 318// or a relationship (e.g. an INSTANCE_TO_INSTANCEGROUP relationship). 319// See [Supported asset 320// types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) 321// for more information. 322type Asset struct { 323 state protoimpl.MessageState 324 sizeCache protoimpl.SizeCache 325 unknownFields protoimpl.UnknownFields 326 327 // The last update timestamp of an asset. update_time is updated when 328 // create/update/delete operation is performed. 329 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 330 // The full name of the asset. Example: 331 // `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1` 332 // 333 // See [Resource 334 // names](https://cloud.google.com/apis/design/resource_names#full_resource_name) 335 // for more information. 336 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 337 // The type of the asset. Example: `compute.googleapis.com/Disk` 338 // 339 // See [Supported asset 340 // types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) 341 // for more information. 342 AssetType string `protobuf:"bytes,2,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` 343 // A representation of the resource. 344 Resource *Resource `protobuf:"bytes,3,opt,name=resource,proto3" json:"resource,omitempty"` 345 // A representation of the Cloud IAM policy set on a Google Cloud resource. 346 // There can be a maximum of one Cloud IAM policy set on any given resource. 347 // In addition, Cloud IAM policies inherit their granted access scope from any 348 // policies set on parent resources in the resource hierarchy. Therefore, the 349 // effectively policy is the union of both the policy set on this resource 350 // and each policy set on all of the resource's ancestry resource levels in 351 // the hierarchy. See 352 // [this topic](https://cloud.google.com/iam/docs/policies#inheritance) for 353 // more information. 354 IamPolicy *v1.Policy `protobuf:"bytes,4,opt,name=iam_policy,json=iamPolicy,proto3" json:"iam_policy,omitempty"` 355 // A representation of an [organization 356 // policy](https://cloud.google.com/resource-manager/docs/organization-policy/overview#organization_policy). 357 // There can be more than one organization policy with different constraints 358 // set on a given resource. 359 OrgPolicy []*v11.Policy `protobuf:"bytes,6,rep,name=org_policy,json=orgPolicy,proto3" json:"org_policy,omitempty"` 360 // A representation of an [access 361 // policy](https://cloud.google.com/access-context-manager/docs/overview#access-policies). 362 // 363 // Types that are assignable to AccessContextPolicy: 364 // *Asset_AccessPolicy 365 // *Asset_AccessLevel 366 // *Asset_ServicePerimeter 367 AccessContextPolicy isAsset_AccessContextPolicy `protobuf_oneof:"access_context_policy"` 368 // A representation of runtime OS Inventory information. See [this 369 // topic](https://cloud.google.com/compute/docs/instances/os-inventory-management) 370 // for more information. 371 OsInventory *v12.Inventory `protobuf:"bytes,12,opt,name=os_inventory,json=osInventory,proto3" json:"os_inventory,omitempty"` 372 // The related assets of the asset of one relationship type. 373 // One asset only represents one type of relationship. 374 RelatedAssets *RelatedAssets `protobuf:"bytes,13,opt,name=related_assets,json=relatedAssets,proto3" json:"related_assets,omitempty"` 375 // The ancestry path of an asset in Google Cloud [resource 376 // hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), 377 // represented as a list of relative resource names. An ancestry path starts 378 // with the closest ancestor in the hierarchy and ends at root. If the asset 379 // is a project, folder, or organization, the ancestry path starts from the 380 // asset itself. 381 // 382 // Example: `["projects/123456789", "folders/5432", "organizations/1234"]` 383 Ancestors []string `protobuf:"bytes,10,rep,name=ancestors,proto3" json:"ancestors,omitempty"` 384} 385 386func (x *Asset) Reset() { 387 *x = Asset{} 388 if protoimpl.UnsafeEnabled { 389 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[2] 390 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 391 ms.StoreMessageInfo(mi) 392 } 393} 394 395func (x *Asset) String() string { 396 return protoimpl.X.MessageStringOf(x) 397} 398 399func (*Asset) ProtoMessage() {} 400 401func (x *Asset) ProtoReflect() protoreflect.Message { 402 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[2] 403 if protoimpl.UnsafeEnabled && x != nil { 404 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 405 if ms.LoadMessageInfo() == nil { 406 ms.StoreMessageInfo(mi) 407 } 408 return ms 409 } 410 return mi.MessageOf(x) 411} 412 413// Deprecated: Use Asset.ProtoReflect.Descriptor instead. 414func (*Asset) Descriptor() ([]byte, []int) { 415 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{2} 416} 417 418func (x *Asset) GetUpdateTime() *timestamppb.Timestamp { 419 if x != nil { 420 return x.UpdateTime 421 } 422 return nil 423} 424 425func (x *Asset) GetName() string { 426 if x != nil { 427 return x.Name 428 } 429 return "" 430} 431 432func (x *Asset) GetAssetType() string { 433 if x != nil { 434 return x.AssetType 435 } 436 return "" 437} 438 439func (x *Asset) GetResource() *Resource { 440 if x != nil { 441 return x.Resource 442 } 443 return nil 444} 445 446func (x *Asset) GetIamPolicy() *v1.Policy { 447 if x != nil { 448 return x.IamPolicy 449 } 450 return nil 451} 452 453func (x *Asset) GetOrgPolicy() []*v11.Policy { 454 if x != nil { 455 return x.OrgPolicy 456 } 457 return nil 458} 459 460func (m *Asset) GetAccessContextPolicy() isAsset_AccessContextPolicy { 461 if m != nil { 462 return m.AccessContextPolicy 463 } 464 return nil 465} 466 467func (x *Asset) GetAccessPolicy() *v13.AccessPolicy { 468 if x, ok := x.GetAccessContextPolicy().(*Asset_AccessPolicy); ok { 469 return x.AccessPolicy 470 } 471 return nil 472} 473 474func (x *Asset) GetAccessLevel() *v13.AccessLevel { 475 if x, ok := x.GetAccessContextPolicy().(*Asset_AccessLevel); ok { 476 return x.AccessLevel 477 } 478 return nil 479} 480 481func (x *Asset) GetServicePerimeter() *v13.ServicePerimeter { 482 if x, ok := x.GetAccessContextPolicy().(*Asset_ServicePerimeter); ok { 483 return x.ServicePerimeter 484 } 485 return nil 486} 487 488func (x *Asset) GetOsInventory() *v12.Inventory { 489 if x != nil { 490 return x.OsInventory 491 } 492 return nil 493} 494 495func (x *Asset) GetRelatedAssets() *RelatedAssets { 496 if x != nil { 497 return x.RelatedAssets 498 } 499 return nil 500} 501 502func (x *Asset) GetAncestors() []string { 503 if x != nil { 504 return x.Ancestors 505 } 506 return nil 507} 508 509type isAsset_AccessContextPolicy interface { 510 isAsset_AccessContextPolicy() 511} 512 513type Asset_AccessPolicy struct { 514 // Please also refer to the [access policy user 515 // guide](https://cloud.google.com/access-context-manager/docs/overview#access-policies). 516 AccessPolicy *v13.AccessPolicy `protobuf:"bytes,7,opt,name=access_policy,json=accessPolicy,proto3,oneof"` 517} 518 519type Asset_AccessLevel struct { 520 // Please also refer to the [access level user 521 // guide](https://cloud.google.com/access-context-manager/docs/overview#access-levels). 522 AccessLevel *v13.AccessLevel `protobuf:"bytes,8,opt,name=access_level,json=accessLevel,proto3,oneof"` 523} 524 525type Asset_ServicePerimeter struct { 526 // Please also refer to the [service perimeter user 527 // guide](https://cloud.google.com/vpc-service-controls/docs/overview). 528 ServicePerimeter *v13.ServicePerimeter `protobuf:"bytes,9,opt,name=service_perimeter,json=servicePerimeter,proto3,oneof"` 529} 530 531func (*Asset_AccessPolicy) isAsset_AccessContextPolicy() {} 532 533func (*Asset_AccessLevel) isAsset_AccessContextPolicy() {} 534 535func (*Asset_ServicePerimeter) isAsset_AccessContextPolicy() {} 536 537// A representation of a Google Cloud resource. 538type Resource struct { 539 state protoimpl.MessageState 540 sizeCache protoimpl.SizeCache 541 unknownFields protoimpl.UnknownFields 542 543 // The API version. Example: `v1` 544 Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` 545 // The URL of the discovery document containing the resource's JSON schema. 546 // Example: 547 // `https://www.googleapis.com/discovery/v1/apis/compute/v1/rest` 548 // 549 // This value is unspecified for resources that do not have an API based on a 550 // discovery document, such as Cloud Bigtable. 551 DiscoveryDocumentUri string `protobuf:"bytes,2,opt,name=discovery_document_uri,json=discoveryDocumentUri,proto3" json:"discovery_document_uri,omitempty"` 552 // The JSON schema name listed in the discovery document. Example: 553 // `Project` 554 // 555 // This value is unspecified for resources that do not have an API based on a 556 // discovery document, such as Cloud Bigtable. 557 DiscoveryName string `protobuf:"bytes,3,opt,name=discovery_name,json=discoveryName,proto3" json:"discovery_name,omitempty"` 558 // The REST URL for accessing the resource. An HTTP `GET` request using this 559 // URL returns the resource itself. Example: 560 // `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123` 561 // 562 // This value is unspecified for resources without a REST API. 563 ResourceUrl string `protobuf:"bytes,4,opt,name=resource_url,json=resourceUrl,proto3" json:"resource_url,omitempty"` 564 // The full name of the immediate parent of this resource. See 565 // [Resource 566 // Names](https://cloud.google.com/apis/design/resource_names#full_resource_name) 567 // for more information. 568 // 569 // For Google Cloud assets, this value is the parent resource defined in the 570 // [Cloud IAM policy 571 // hierarchy](https://cloud.google.com/iam/docs/overview#policy_hierarchy). 572 // Example: 573 // `//cloudresourcemanager.googleapis.com/projects/my_project_123` 574 // 575 // For third-party assets, this field may be set differently. 576 Parent string `protobuf:"bytes,5,opt,name=parent,proto3" json:"parent,omitempty"` 577 // The content of the resource, in which some sensitive fields are removed 578 // and may not be present. 579 Data *structpb.Struct `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"` 580 // The location of the resource in Google Cloud, such as its zone and region. 581 // For more information, see https://cloud.google.com/about/locations/. 582 Location string `protobuf:"bytes,8,opt,name=location,proto3" json:"location,omitempty"` 583} 584 585func (x *Resource) Reset() { 586 *x = Resource{} 587 if protoimpl.UnsafeEnabled { 588 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[3] 589 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 590 ms.StoreMessageInfo(mi) 591 } 592} 593 594func (x *Resource) String() string { 595 return protoimpl.X.MessageStringOf(x) 596} 597 598func (*Resource) ProtoMessage() {} 599 600func (x *Resource) ProtoReflect() protoreflect.Message { 601 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[3] 602 if protoimpl.UnsafeEnabled && x != nil { 603 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 604 if ms.LoadMessageInfo() == nil { 605 ms.StoreMessageInfo(mi) 606 } 607 return ms 608 } 609 return mi.MessageOf(x) 610} 611 612// Deprecated: Use Resource.ProtoReflect.Descriptor instead. 613func (*Resource) Descriptor() ([]byte, []int) { 614 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{3} 615} 616 617func (x *Resource) GetVersion() string { 618 if x != nil { 619 return x.Version 620 } 621 return "" 622} 623 624func (x *Resource) GetDiscoveryDocumentUri() string { 625 if x != nil { 626 return x.DiscoveryDocumentUri 627 } 628 return "" 629} 630 631func (x *Resource) GetDiscoveryName() string { 632 if x != nil { 633 return x.DiscoveryName 634 } 635 return "" 636} 637 638func (x *Resource) GetResourceUrl() string { 639 if x != nil { 640 return x.ResourceUrl 641 } 642 return "" 643} 644 645func (x *Resource) GetParent() string { 646 if x != nil { 647 return x.Parent 648 } 649 return "" 650} 651 652func (x *Resource) GetData() *structpb.Struct { 653 if x != nil { 654 return x.Data 655 } 656 return nil 657} 658 659func (x *Resource) GetLocation() string { 660 if x != nil { 661 return x.Location 662 } 663 return "" 664} 665 666// The detailed related assets with the `relationship_type`. 667type RelatedAssets struct { 668 state protoimpl.MessageState 669 sizeCache protoimpl.SizeCache 670 unknownFields protoimpl.UnknownFields 671 672 // The detailed relationship attributes. 673 RelationshipAttributes *RelationshipAttributes `protobuf:"bytes,1,opt,name=relationship_attributes,json=relationshipAttributes,proto3" json:"relationship_attributes,omitempty"` 674 // The peer resources of the relationship. 675 Assets []*RelatedAsset `protobuf:"bytes,2,rep,name=assets,proto3" json:"assets,omitempty"` 676} 677 678func (x *RelatedAssets) Reset() { 679 *x = RelatedAssets{} 680 if protoimpl.UnsafeEnabled { 681 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[4] 682 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 683 ms.StoreMessageInfo(mi) 684 } 685} 686 687func (x *RelatedAssets) String() string { 688 return protoimpl.X.MessageStringOf(x) 689} 690 691func (*RelatedAssets) ProtoMessage() {} 692 693func (x *RelatedAssets) ProtoReflect() protoreflect.Message { 694 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[4] 695 if protoimpl.UnsafeEnabled && x != nil { 696 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 697 if ms.LoadMessageInfo() == nil { 698 ms.StoreMessageInfo(mi) 699 } 700 return ms 701 } 702 return mi.MessageOf(x) 703} 704 705// Deprecated: Use RelatedAssets.ProtoReflect.Descriptor instead. 706func (*RelatedAssets) Descriptor() ([]byte, []int) { 707 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{4} 708} 709 710func (x *RelatedAssets) GetRelationshipAttributes() *RelationshipAttributes { 711 if x != nil { 712 return x.RelationshipAttributes 713 } 714 return nil 715} 716 717func (x *RelatedAssets) GetAssets() []*RelatedAsset { 718 if x != nil { 719 return x.Assets 720 } 721 return nil 722} 723 724// The relationship attributes which include `type`, `source_resource_type`, 725// `target_resource_type` and `action`. 726type RelationshipAttributes struct { 727 state protoimpl.MessageState 728 sizeCache protoimpl.SizeCache 729 unknownFields protoimpl.UnknownFields 730 731 // The unique identifier of the relationship type. Example: 732 // `INSTANCE_TO_INSTANCEGROUP` 733 Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` 734 // The source asset type. Example: `compute.googleapis.com/Instance` 735 SourceResourceType string `protobuf:"bytes,1,opt,name=source_resource_type,json=sourceResourceType,proto3" json:"source_resource_type,omitempty"` 736 // The target asset type. Example: `compute.googleapis.com/Disk` 737 TargetResourceType string `protobuf:"bytes,2,opt,name=target_resource_type,json=targetResourceType,proto3" json:"target_resource_type,omitempty"` 738 // The detail of the relationship, e.g. `contains`, `attaches` 739 Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"` 740} 741 742func (x *RelationshipAttributes) Reset() { 743 *x = RelationshipAttributes{} 744 if protoimpl.UnsafeEnabled { 745 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[5] 746 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 747 ms.StoreMessageInfo(mi) 748 } 749} 750 751func (x *RelationshipAttributes) String() string { 752 return protoimpl.X.MessageStringOf(x) 753} 754 755func (*RelationshipAttributes) ProtoMessage() {} 756 757func (x *RelationshipAttributes) ProtoReflect() protoreflect.Message { 758 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[5] 759 if protoimpl.UnsafeEnabled && x != nil { 760 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 761 if ms.LoadMessageInfo() == nil { 762 ms.StoreMessageInfo(mi) 763 } 764 return ms 765 } 766 return mi.MessageOf(x) 767} 768 769// Deprecated: Use RelationshipAttributes.ProtoReflect.Descriptor instead. 770func (*RelationshipAttributes) Descriptor() ([]byte, []int) { 771 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{5} 772} 773 774func (x *RelationshipAttributes) GetType() string { 775 if x != nil { 776 return x.Type 777 } 778 return "" 779} 780 781func (x *RelationshipAttributes) GetSourceResourceType() string { 782 if x != nil { 783 return x.SourceResourceType 784 } 785 return "" 786} 787 788func (x *RelationshipAttributes) GetTargetResourceType() string { 789 if x != nil { 790 return x.TargetResourceType 791 } 792 return "" 793} 794 795func (x *RelationshipAttributes) GetAction() string { 796 if x != nil { 797 return x.Action 798 } 799 return "" 800} 801 802// An asset identify in Google Cloud which contains its name, type and 803// ancestors. An asset can be any resource in the Google Cloud [resource 804// hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), 805// a resource outside the Google Cloud resource hierarchy (such as Google 806// Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). 807// See [Supported asset 808// types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) 809// for more information. 810type RelatedAsset struct { 811 state protoimpl.MessageState 812 sizeCache protoimpl.SizeCache 813 unknownFields protoimpl.UnknownFields 814 815 // The full name of the asset. Example: 816 // `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1` 817 // 818 // See [Resource 819 // names](https://cloud.google.com/apis/design/resource_names#full_resource_name) 820 // for more information. 821 Asset string `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"` 822 // The type of the asset. Example: `compute.googleapis.com/Disk` 823 // 824 // See [Supported asset 825 // types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) 826 // for more information. 827 AssetType string `protobuf:"bytes,2,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` 828 // The ancestors of an asset in Google Cloud [resource 829 // hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), 830 // represented as a list of relative resource names. An ancestry path starts 831 // with the closest ancestor in the hierarchy and ends at root. 832 // 833 // Example: `["projects/123456789", "folders/5432", "organizations/1234"]` 834 Ancestors []string `protobuf:"bytes,3,rep,name=ancestors,proto3" json:"ancestors,omitempty"` 835} 836 837func (x *RelatedAsset) Reset() { 838 *x = RelatedAsset{} 839 if protoimpl.UnsafeEnabled { 840 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[6] 841 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 842 ms.StoreMessageInfo(mi) 843 } 844} 845 846func (x *RelatedAsset) String() string { 847 return protoimpl.X.MessageStringOf(x) 848} 849 850func (*RelatedAsset) ProtoMessage() {} 851 852func (x *RelatedAsset) ProtoReflect() protoreflect.Message { 853 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[6] 854 if protoimpl.UnsafeEnabled && x != nil { 855 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 856 if ms.LoadMessageInfo() == nil { 857 ms.StoreMessageInfo(mi) 858 } 859 return ms 860 } 861 return mi.MessageOf(x) 862} 863 864// Deprecated: Use RelatedAsset.ProtoReflect.Descriptor instead. 865func (*RelatedAsset) Descriptor() ([]byte, []int) { 866 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{6} 867} 868 869func (x *RelatedAsset) GetAsset() string { 870 if x != nil { 871 return x.Asset 872 } 873 return "" 874} 875 876func (x *RelatedAsset) GetAssetType() string { 877 if x != nil { 878 return x.AssetType 879 } 880 return "" 881} 882 883func (x *RelatedAsset) GetAncestors() []string { 884 if x != nil { 885 return x.Ancestors 886 } 887 return nil 888} 889 890// A result of Resource Search, containing information of a cloud resource. 891type ResourceSearchResult struct { 892 state protoimpl.MessageState 893 sizeCache protoimpl.SizeCache 894 unknownFields protoimpl.UnknownFields 895 896 // The full resource name of this resource. Example: 897 // `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`. 898 // See [Cloud Asset Inventory Resource Name 899 // Format](https://cloud.google.com/asset-inventory/docs/resource-name-format) 900 // for more information. 901 // 902 // To search against the `name`: 903 // 904 // * use a field query. Example: `name:instance1` 905 // * use a free text query. Example: `instance1` 906 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 907 // The type of this resource. Example: `compute.googleapis.com/Disk`. 908 // 909 // To search against the `asset_type`: 910 // 911 // * specify the `asset_type` field in your search request. 912 AssetType string `protobuf:"bytes,2,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` 913 // The project that this resource belongs to, in the form of 914 // projects/{PROJECT_NUMBER}. This field is available when the resource 915 // belongs to a project. 916 // 917 // To search against `project`: 918 // 919 // * use a field query. Example: `project:12345` 920 // * use a free text query. Example: `12345` 921 // * specify the `scope` field as this project in your search request. 922 Project string `protobuf:"bytes,3,opt,name=project,proto3" json:"project,omitempty"` 923 // The folder(s) that this resource belongs to, in the form of 924 // folders/{FOLDER_NUMBER}. This field is available when the resource 925 // belongs to one or more folders. 926 // 927 // To search against `folders`: 928 // 929 // * use a field query. Example: `folders:(123 OR 456)` 930 // * use a free text query. Example: `123` 931 // * specify the `scope` field as this folder in your search request. 932 Folders []string `protobuf:"bytes,17,rep,name=folders,proto3" json:"folders,omitempty"` 933 // The organization that this resource belongs to, in the form of 934 // organizations/{ORGANIZATION_NUMBER}. This field is available when the 935 // resource belongs to an organization. 936 // 937 // To search against `organization`: 938 // 939 // * use a field query. Example: `organization:123` 940 // * use a free text query. Example: `123` 941 // * specify the `scope` field as this organization in your search request. 942 Organization string `protobuf:"bytes,18,opt,name=organization,proto3" json:"organization,omitempty"` 943 // The display name of this resource. This field is available only when the 944 // resource's proto contains it. 945 // 946 // To search against the `display_name`: 947 // 948 // * use a field query. Example: `displayName:"My Instance"` 949 // * use a free text query. Example: `"My Instance"` 950 DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 951 // One or more paragraphs of text description of this resource. Maximum length 952 // could be up to 1M bytes. This field is available only when the resource's 953 // proto contains it. 954 // 955 // To search against the `description`: 956 // 957 // * use a field query. Example: `description:"important instance"` 958 // * use a free text query. Example: `"important instance"` 959 Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` 960 // Location can be `global`, regional like `us-east1`, or zonal like 961 // `us-west1-b`. This field is available only when the resource's proto 962 // contains it. 963 // 964 // To search against the `location`: 965 // 966 // * use a field query. Example: `location:us-west*` 967 // * use a free text query. Example: `us-west*` 968 Location string `protobuf:"bytes,6,opt,name=location,proto3" json:"location,omitempty"` 969 // Labels associated with this resource. See [Labelling and grouping GCP 970 // resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) 971 // for more information. This field is available only when the resource's 972 // proto contains it. 973 // 974 // To search against the `labels`: 975 // 976 // * use a field query: 977 // - query on any label's key or value. Example: `labels:prod` 978 // - query by a given label. Example: `labels.env:prod` 979 // - query by a given label's existence. Example: `labels.env:*` 980 // * use a free text query. Example: `prod` 981 Labels map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 982 // Network tags associated with this resource. Like labels, network tags are a 983 // type of annotations used to group GCP resources. See [Labelling GCP 984 // resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) 985 // for more information. This field is available only when the resource's 986 // proto contains it. 987 // 988 // To search against the `network_tags`: 989 // 990 // * use a field query. Example: `networkTags:internal` 991 // * use a free text query. Example: `internal` 992 NetworkTags []string `protobuf:"bytes,8,rep,name=network_tags,json=networkTags,proto3" json:"network_tags,omitempty"` 993 // The Cloud KMS 994 // [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys?hl=en) 995 // name or 996 // [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions?hl=en) 997 // name. This field is available only when the resource's proto contains it. 998 // 999 // To search against the `kms_key`: 1000 // 1001 // * use a field query. Example: `kmsKey:key` 1002 // * use a free text query. Example: `key` 1003 KmsKey string `protobuf:"bytes,10,opt,name=kms_key,json=kmsKey,proto3" json:"kms_key,omitempty"` 1004 // The create timestamp of this resource, at which the resource was created. 1005 // The granularity is in seconds. Timestamp.nanos will always be 0. This field 1006 // is available only when the resource's proto contains it. 1007 // 1008 // To search against `create_time`: 1009 // 1010 // * use a field query. 1011 // - value in seconds since unix epoch. Example: `createTime > 1609459200` 1012 // - value in date string. Example: `createTime > 2021-01-01` 1013 // - value in date-time string (must be quoted). Example: `createTime > 1014 // "2021-01-01T00:00:00"` 1015 CreateTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 1016 // The last update timestamp of this resource, at which the resource was last 1017 // modified or deleted. The granularity is in seconds. Timestamp.nanos will 1018 // always be 0. This field is available only when the resource's proto 1019 // contains it. 1020 // 1021 // To search against `update_time`: 1022 // 1023 // * use a field query. 1024 // - value in seconds since unix epoch. Example: `updateTime < 1609459200` 1025 // - value in date string. Example: `updateTime < 2021-01-01` 1026 // - value in date-time string (must be quoted). Example: `updateTime < 1027 // "2021-01-01T00:00:00"` 1028 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 1029 // The state of this resource. Different resources types have different state 1030 // definitions that are mapped from various fields of different resource 1031 // types. This field is available only when the resource's proto contains it. 1032 // 1033 // Example: 1034 // If the resource is an instance provided by Compute Engine, 1035 // its state will include PROVISIONING, STAGING, RUNNING, STOPPING, 1036 // SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. See `status` definition 1037 // in [API 1038 // Reference](https://cloud.google.com/compute/docs/reference/rest/v1/instances). 1039 // If the resource is a project provided by Cloud Resource Manager, its state 1040 // will include LIFECYCLE_STATE_UNSPECIFIED, ACTIVE, DELETE_REQUESTED and 1041 // DELETE_IN_PROGRESS. See `lifecycleState` definition in [API 1042 // Reference](https://cloud.google.com/resource-manager/reference/rest/v1/projects). 1043 // 1044 // To search against the `state`: 1045 // 1046 // * use a field query. Example: `state:RUNNING` 1047 // * use a free text query. Example: `RUNNING` 1048 State string `protobuf:"bytes,13,opt,name=state,proto3" json:"state,omitempty"` 1049 // The additional searchable attributes of this resource. The attributes may 1050 // vary from one resource type to another. Examples: `projectId` for Project, 1051 // `dnsName` for DNS ManagedZone. This field contains a subset of the resource 1052 // metadata fields that are returned by the List or Get APIs provided by the 1053 // corresponding GCP service (e.g., Compute Engine). see [API references and 1054 // supported searchable 1055 // attributes](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types) 1056 // to see which fields are included. 1057 // 1058 // You can search values of these fields through free text search. However, 1059 // you should not consume the field programically as the field names and 1060 // values may change as the GCP service updates to a new incompatible API 1061 // version. 1062 // 1063 // To search against the `additional_attributes`: 1064 // 1065 // * use a free text query to match the attributes values. Example: to search 1066 // `additional_attributes = { dnsName: "foobar" }`, you can issue a query 1067 // `foobar`. 1068 AdditionalAttributes *structpb.Struct `protobuf:"bytes,9,opt,name=additional_attributes,json=additionalAttributes,proto3" json:"additional_attributes,omitempty"` 1069 // The full resource name of this resource's parent, if it has one. 1070 // To search against the `parent_full_resource_name`: 1071 // 1072 // * use a field query. Example: 1073 // `parentFullResourceName:"project-name"` 1074 // * use a free text query. Example: 1075 // `project-name` 1076 ParentFullResourceName string `protobuf:"bytes,19,opt,name=parent_full_resource_name,json=parentFullResourceName,proto3" json:"parent_full_resource_name,omitempty"` 1077 // Versioned resource representations of this resource. This is repeated 1078 // because there could be multiple versions of resource representations during 1079 // version migration. 1080 // 1081 // This `versioned_resources` field is not searchable. Some attributes of the 1082 // resource representations are exposed in `additional_attributes` field, so 1083 // as to allow users to search on them. 1084 VersionedResources []*VersionedResource `protobuf:"bytes,16,rep,name=versioned_resources,json=versionedResources,proto3" json:"versioned_resources,omitempty"` 1085 // Attached resources of this resource. For example, an OSConfig 1086 // Inventory is an attached resource of a Compute Instance. This field is 1087 // repeated because a resource could have multiple attached resources. 1088 // 1089 // This `attached_resources` field is not searchable. Some attributes 1090 // of the attached resources are exposed in `additional_attributes` field, so 1091 // as to allow users to search on them. 1092 AttachedResources []*AttachedResource `protobuf:"bytes,20,rep,name=attached_resources,json=attachedResources,proto3" json:"attached_resources,omitempty"` 1093 // The type of this resource's immediate parent, if there is one. 1094 // 1095 // To search against the `parent_asset_type`: 1096 // 1097 // * use a field query. Example: 1098 // `parentAssetType:"cloudresourcemanager.googleapis.com/Project"` 1099 // * use a free text query. Example: 1100 // `cloudresourcemanager.googleapis.com/Project` 1101 ParentAssetType string `protobuf:"bytes,103,opt,name=parent_asset_type,json=parentAssetType,proto3" json:"parent_asset_type,omitempty"` 1102} 1103 1104func (x *ResourceSearchResult) Reset() { 1105 *x = ResourceSearchResult{} 1106 if protoimpl.UnsafeEnabled { 1107 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[7] 1108 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1109 ms.StoreMessageInfo(mi) 1110 } 1111} 1112 1113func (x *ResourceSearchResult) String() string { 1114 return protoimpl.X.MessageStringOf(x) 1115} 1116 1117func (*ResourceSearchResult) ProtoMessage() {} 1118 1119func (x *ResourceSearchResult) ProtoReflect() protoreflect.Message { 1120 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[7] 1121 if protoimpl.UnsafeEnabled && x != nil { 1122 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1123 if ms.LoadMessageInfo() == nil { 1124 ms.StoreMessageInfo(mi) 1125 } 1126 return ms 1127 } 1128 return mi.MessageOf(x) 1129} 1130 1131// Deprecated: Use ResourceSearchResult.ProtoReflect.Descriptor instead. 1132func (*ResourceSearchResult) Descriptor() ([]byte, []int) { 1133 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{7} 1134} 1135 1136func (x *ResourceSearchResult) GetName() string { 1137 if x != nil { 1138 return x.Name 1139 } 1140 return "" 1141} 1142 1143func (x *ResourceSearchResult) GetAssetType() string { 1144 if x != nil { 1145 return x.AssetType 1146 } 1147 return "" 1148} 1149 1150func (x *ResourceSearchResult) GetProject() string { 1151 if x != nil { 1152 return x.Project 1153 } 1154 return "" 1155} 1156 1157func (x *ResourceSearchResult) GetFolders() []string { 1158 if x != nil { 1159 return x.Folders 1160 } 1161 return nil 1162} 1163 1164func (x *ResourceSearchResult) GetOrganization() string { 1165 if x != nil { 1166 return x.Organization 1167 } 1168 return "" 1169} 1170 1171func (x *ResourceSearchResult) GetDisplayName() string { 1172 if x != nil { 1173 return x.DisplayName 1174 } 1175 return "" 1176} 1177 1178func (x *ResourceSearchResult) GetDescription() string { 1179 if x != nil { 1180 return x.Description 1181 } 1182 return "" 1183} 1184 1185func (x *ResourceSearchResult) GetLocation() string { 1186 if x != nil { 1187 return x.Location 1188 } 1189 return "" 1190} 1191 1192func (x *ResourceSearchResult) GetLabels() map[string]string { 1193 if x != nil { 1194 return x.Labels 1195 } 1196 return nil 1197} 1198 1199func (x *ResourceSearchResult) GetNetworkTags() []string { 1200 if x != nil { 1201 return x.NetworkTags 1202 } 1203 return nil 1204} 1205 1206func (x *ResourceSearchResult) GetKmsKey() string { 1207 if x != nil { 1208 return x.KmsKey 1209 } 1210 return "" 1211} 1212 1213func (x *ResourceSearchResult) GetCreateTime() *timestamppb.Timestamp { 1214 if x != nil { 1215 return x.CreateTime 1216 } 1217 return nil 1218} 1219 1220func (x *ResourceSearchResult) GetUpdateTime() *timestamppb.Timestamp { 1221 if x != nil { 1222 return x.UpdateTime 1223 } 1224 return nil 1225} 1226 1227func (x *ResourceSearchResult) GetState() string { 1228 if x != nil { 1229 return x.State 1230 } 1231 return "" 1232} 1233 1234func (x *ResourceSearchResult) GetAdditionalAttributes() *structpb.Struct { 1235 if x != nil { 1236 return x.AdditionalAttributes 1237 } 1238 return nil 1239} 1240 1241func (x *ResourceSearchResult) GetParentFullResourceName() string { 1242 if x != nil { 1243 return x.ParentFullResourceName 1244 } 1245 return "" 1246} 1247 1248func (x *ResourceSearchResult) GetVersionedResources() []*VersionedResource { 1249 if x != nil { 1250 return x.VersionedResources 1251 } 1252 return nil 1253} 1254 1255func (x *ResourceSearchResult) GetAttachedResources() []*AttachedResource { 1256 if x != nil { 1257 return x.AttachedResources 1258 } 1259 return nil 1260} 1261 1262func (x *ResourceSearchResult) GetParentAssetType() string { 1263 if x != nil { 1264 return x.ParentAssetType 1265 } 1266 return "" 1267} 1268 1269// Resource representation as defined by the corresponding service providing the 1270// resource for a given API version. 1271type VersionedResource struct { 1272 state protoimpl.MessageState 1273 sizeCache protoimpl.SizeCache 1274 unknownFields protoimpl.UnknownFields 1275 1276 // API version of the resource. 1277 // 1278 // Example: 1279 // If the resource is an instance provided by Compute Engine v1 API as defined 1280 // in `https://cloud.google.com/compute/docs/reference/rest/v1/instances`, 1281 // version will be "v1". 1282 Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` 1283 // JSON representation of the resource as defined by the corresponding 1284 // service providing this resource. 1285 // 1286 // Example: 1287 // If the resource is an instance provided by Compute Engine, this field will 1288 // contain the JSON representation of the instance as defined by Compute 1289 // Engine: 1290 // `https://cloud.google.com/compute/docs/reference/rest/v1/instances`. 1291 // 1292 // You can find the resource definition for each supported resource type in 1293 // this table: 1294 // `https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types` 1295 Resource *structpb.Struct `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"` 1296} 1297 1298func (x *VersionedResource) Reset() { 1299 *x = VersionedResource{} 1300 if protoimpl.UnsafeEnabled { 1301 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[8] 1302 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1303 ms.StoreMessageInfo(mi) 1304 } 1305} 1306 1307func (x *VersionedResource) String() string { 1308 return protoimpl.X.MessageStringOf(x) 1309} 1310 1311func (*VersionedResource) ProtoMessage() {} 1312 1313func (x *VersionedResource) ProtoReflect() protoreflect.Message { 1314 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[8] 1315 if protoimpl.UnsafeEnabled && x != nil { 1316 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1317 if ms.LoadMessageInfo() == nil { 1318 ms.StoreMessageInfo(mi) 1319 } 1320 return ms 1321 } 1322 return mi.MessageOf(x) 1323} 1324 1325// Deprecated: Use VersionedResource.ProtoReflect.Descriptor instead. 1326func (*VersionedResource) Descriptor() ([]byte, []int) { 1327 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{8} 1328} 1329 1330func (x *VersionedResource) GetVersion() string { 1331 if x != nil { 1332 return x.Version 1333 } 1334 return "" 1335} 1336 1337func (x *VersionedResource) GetResource() *structpb.Struct { 1338 if x != nil { 1339 return x.Resource 1340 } 1341 return nil 1342} 1343 1344// Attached resource representation, which is defined by the corresponding 1345// service provider. It represents an attached resource's payload. 1346type AttachedResource struct { 1347 state protoimpl.MessageState 1348 sizeCache protoimpl.SizeCache 1349 unknownFields protoimpl.UnknownFields 1350 1351 // The type of this attached resource. 1352 // 1353 // Example: `osconfig.googleapis.com/Inventory` 1354 // 1355 // You can find the supported attached asset types of each resource in this 1356 // table: 1357 // `https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types` 1358 AssetType string `protobuf:"bytes,1,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` 1359 // Versioned resource representations of this attached resource. This is 1360 // repeated because there could be multiple versions of the attached resource 1361 // representations during version migration. 1362 VersionedResources []*VersionedResource `protobuf:"bytes,3,rep,name=versioned_resources,json=versionedResources,proto3" json:"versioned_resources,omitempty"` 1363} 1364 1365func (x *AttachedResource) Reset() { 1366 *x = AttachedResource{} 1367 if protoimpl.UnsafeEnabled { 1368 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[9] 1369 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1370 ms.StoreMessageInfo(mi) 1371 } 1372} 1373 1374func (x *AttachedResource) String() string { 1375 return protoimpl.X.MessageStringOf(x) 1376} 1377 1378func (*AttachedResource) ProtoMessage() {} 1379 1380func (x *AttachedResource) ProtoReflect() protoreflect.Message { 1381 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[9] 1382 if protoimpl.UnsafeEnabled && x != nil { 1383 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1384 if ms.LoadMessageInfo() == nil { 1385 ms.StoreMessageInfo(mi) 1386 } 1387 return ms 1388 } 1389 return mi.MessageOf(x) 1390} 1391 1392// Deprecated: Use AttachedResource.ProtoReflect.Descriptor instead. 1393func (*AttachedResource) Descriptor() ([]byte, []int) { 1394 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{9} 1395} 1396 1397func (x *AttachedResource) GetAssetType() string { 1398 if x != nil { 1399 return x.AssetType 1400 } 1401 return "" 1402} 1403 1404func (x *AttachedResource) GetVersionedResources() []*VersionedResource { 1405 if x != nil { 1406 return x.VersionedResources 1407 } 1408 return nil 1409} 1410 1411// A result of IAM Policy search, containing information of an IAM policy. 1412type IamPolicySearchResult struct { 1413 state protoimpl.MessageState 1414 sizeCache protoimpl.SizeCache 1415 unknownFields protoimpl.UnknownFields 1416 1417 // The full resource name of the resource associated with this IAM policy. 1418 // Example: 1419 // `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`. 1420 // See [Cloud Asset Inventory Resource Name 1421 // Format](https://cloud.google.com/asset-inventory/docs/resource-name-format) 1422 // for more information. 1423 // 1424 // To search against the `resource`: 1425 // 1426 // * use a field query. Example: `resource:organizations/123` 1427 Resource string `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"` 1428 // The type of the resource associated with this IAM policy. Example: 1429 // `compute.googleapis.com/Disk`. 1430 // 1431 // To search against the `asset_type`: 1432 // 1433 // * specify the `asset_types` field in your search request. 1434 AssetType string `protobuf:"bytes,5,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` 1435 // The project that the associated GCP resource belongs to, in the form of 1436 // projects/{PROJECT_NUMBER}. If an IAM policy is set on a resource (like VM 1437 // instance, Cloud Storage bucket), the project field will indicate the 1438 // project that contains the resource. If an IAM policy is set on a folder or 1439 // orgnization, this field will be empty. 1440 // 1441 // To search against the `project`: 1442 // 1443 // * specify the `scope` field as this project in your search request. 1444 Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` 1445 // The folder(s) that the IAM policy belongs to, in the form of 1446 // folders/{FOLDER_NUMBER}. This field is available when the IAM policy 1447 // belongs to one or more folders. 1448 // 1449 // To search against `folders`: 1450 // 1451 // * use a field query. Example: `folders:(123 OR 456)` 1452 // * use a free text query. Example: `123` 1453 // * specify the `scope` field as this folder in your search request. 1454 Folders []string `protobuf:"bytes,6,rep,name=folders,proto3" json:"folders,omitempty"` 1455 // The organization that the IAM policy belongs to, in the form 1456 // of organizations/{ORGANIZATION_NUMBER}. This field is available when the 1457 // IAM policy belongs to an organization. 1458 // 1459 // To search against `organization`: 1460 // 1461 // * use a field query. Example: `organization:123` 1462 // * use a free text query. Example: `123` 1463 // * specify the `scope` field as this organization in your search request. 1464 Organization string `protobuf:"bytes,7,opt,name=organization,proto3" json:"organization,omitempty"` 1465 // The IAM policy directly set on the given resource. Note that the original 1466 // IAM policy can contain multiple bindings. This only contains the bindings 1467 // that match the given query. For queries that don't contain a constrain on 1468 // policies (e.g., an empty query), this contains all the bindings. 1469 // 1470 // To search against the `policy` bindings: 1471 // 1472 // * use a field query: 1473 // - query by the policy contained members. Example: 1474 // `policy:amy@gmail.com` 1475 // - query by the policy contained roles. Example: 1476 // `policy:roles/compute.admin` 1477 // - query by the policy contained roles' included permissions. Example: 1478 // `policy.role.permissions:compute.instances.create` 1479 Policy *v1.Policy `protobuf:"bytes,3,opt,name=policy,proto3" json:"policy,omitempty"` 1480 // Explanation about the IAM policy search result. It contains additional 1481 // information to explain why the search result matches the query. 1482 Explanation *IamPolicySearchResult_Explanation `protobuf:"bytes,4,opt,name=explanation,proto3" json:"explanation,omitempty"` 1483} 1484 1485func (x *IamPolicySearchResult) Reset() { 1486 *x = IamPolicySearchResult{} 1487 if protoimpl.UnsafeEnabled { 1488 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[10] 1489 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1490 ms.StoreMessageInfo(mi) 1491 } 1492} 1493 1494func (x *IamPolicySearchResult) String() string { 1495 return protoimpl.X.MessageStringOf(x) 1496} 1497 1498func (*IamPolicySearchResult) ProtoMessage() {} 1499 1500func (x *IamPolicySearchResult) ProtoReflect() protoreflect.Message { 1501 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[10] 1502 if protoimpl.UnsafeEnabled && x != nil { 1503 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1504 if ms.LoadMessageInfo() == nil { 1505 ms.StoreMessageInfo(mi) 1506 } 1507 return ms 1508 } 1509 return mi.MessageOf(x) 1510} 1511 1512// Deprecated: Use IamPolicySearchResult.ProtoReflect.Descriptor instead. 1513func (*IamPolicySearchResult) Descriptor() ([]byte, []int) { 1514 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{10} 1515} 1516 1517func (x *IamPolicySearchResult) GetResource() string { 1518 if x != nil { 1519 return x.Resource 1520 } 1521 return "" 1522} 1523 1524func (x *IamPolicySearchResult) GetAssetType() string { 1525 if x != nil { 1526 return x.AssetType 1527 } 1528 return "" 1529} 1530 1531func (x *IamPolicySearchResult) GetProject() string { 1532 if x != nil { 1533 return x.Project 1534 } 1535 return "" 1536} 1537 1538func (x *IamPolicySearchResult) GetFolders() []string { 1539 if x != nil { 1540 return x.Folders 1541 } 1542 return nil 1543} 1544 1545func (x *IamPolicySearchResult) GetOrganization() string { 1546 if x != nil { 1547 return x.Organization 1548 } 1549 return "" 1550} 1551 1552func (x *IamPolicySearchResult) GetPolicy() *v1.Policy { 1553 if x != nil { 1554 return x.Policy 1555 } 1556 return nil 1557} 1558 1559func (x *IamPolicySearchResult) GetExplanation() *IamPolicySearchResult_Explanation { 1560 if x != nil { 1561 return x.Explanation 1562 } 1563 return nil 1564} 1565 1566// Represents the detailed state of an entity under analysis, such as a 1567// resource, an identity or an access. 1568type IamPolicyAnalysisState struct { 1569 state protoimpl.MessageState 1570 sizeCache protoimpl.SizeCache 1571 unknownFields protoimpl.UnknownFields 1572 1573 // The Google standard error code that best describes the state. 1574 // For example: 1575 // - OK means the analysis on this entity has been successfully finished; 1576 // - PERMISSION_DENIED means an access denied error is encountered; 1577 // - DEADLINE_EXCEEDED means the analysis on this entity hasn't been started 1578 // in time; 1579 Code code.Code `protobuf:"varint,1,opt,name=code,proto3,enum=google.rpc.Code" json:"code,omitempty"` 1580 // The human-readable description of the cause of failure. 1581 Cause string `protobuf:"bytes,2,opt,name=cause,proto3" json:"cause,omitempty"` 1582} 1583 1584func (x *IamPolicyAnalysisState) Reset() { 1585 *x = IamPolicyAnalysisState{} 1586 if protoimpl.UnsafeEnabled { 1587 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[11] 1588 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1589 ms.StoreMessageInfo(mi) 1590 } 1591} 1592 1593func (x *IamPolicyAnalysisState) String() string { 1594 return protoimpl.X.MessageStringOf(x) 1595} 1596 1597func (*IamPolicyAnalysisState) ProtoMessage() {} 1598 1599func (x *IamPolicyAnalysisState) ProtoReflect() protoreflect.Message { 1600 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[11] 1601 if protoimpl.UnsafeEnabled && x != nil { 1602 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1603 if ms.LoadMessageInfo() == nil { 1604 ms.StoreMessageInfo(mi) 1605 } 1606 return ms 1607 } 1608 return mi.MessageOf(x) 1609} 1610 1611// Deprecated: Use IamPolicyAnalysisState.ProtoReflect.Descriptor instead. 1612func (*IamPolicyAnalysisState) Descriptor() ([]byte, []int) { 1613 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{11} 1614} 1615 1616func (x *IamPolicyAnalysisState) GetCode() code.Code { 1617 if x != nil { 1618 return x.Code 1619 } 1620 return code.Code_OK 1621} 1622 1623func (x *IamPolicyAnalysisState) GetCause() string { 1624 if x != nil { 1625 return x.Cause 1626 } 1627 return "" 1628} 1629 1630// The Condition evaluation. 1631type ConditionEvaluation struct { 1632 state protoimpl.MessageState 1633 sizeCache protoimpl.SizeCache 1634 unknownFields protoimpl.UnknownFields 1635 1636 // The evaluation result. 1637 EvaluationValue ConditionEvaluation_EvaluationValue `protobuf:"varint,1,opt,name=evaluation_value,json=evaluationValue,proto3,enum=google.cloud.asset.v1.ConditionEvaluation_EvaluationValue" json:"evaluation_value,omitempty"` 1638} 1639 1640func (x *ConditionEvaluation) Reset() { 1641 *x = ConditionEvaluation{} 1642 if protoimpl.UnsafeEnabled { 1643 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[12] 1644 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1645 ms.StoreMessageInfo(mi) 1646 } 1647} 1648 1649func (x *ConditionEvaluation) String() string { 1650 return protoimpl.X.MessageStringOf(x) 1651} 1652 1653func (*ConditionEvaluation) ProtoMessage() {} 1654 1655func (x *ConditionEvaluation) ProtoReflect() protoreflect.Message { 1656 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[12] 1657 if protoimpl.UnsafeEnabled && x != nil { 1658 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1659 if ms.LoadMessageInfo() == nil { 1660 ms.StoreMessageInfo(mi) 1661 } 1662 return ms 1663 } 1664 return mi.MessageOf(x) 1665} 1666 1667// Deprecated: Use ConditionEvaluation.ProtoReflect.Descriptor instead. 1668func (*ConditionEvaluation) Descriptor() ([]byte, []int) { 1669 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{12} 1670} 1671 1672func (x *ConditionEvaluation) GetEvaluationValue() ConditionEvaluation_EvaluationValue { 1673 if x != nil { 1674 return x.EvaluationValue 1675 } 1676 return ConditionEvaluation_EVALUATION_VALUE_UNSPECIFIED 1677} 1678 1679// IAM Policy analysis result, consisting of one IAM policy binding and derived 1680// access control lists. 1681type IamPolicyAnalysisResult struct { 1682 state protoimpl.MessageState 1683 sizeCache protoimpl.SizeCache 1684 unknownFields protoimpl.UnknownFields 1685 1686 // The [full resource 1687 // name](https://cloud.google.com/asset-inventory/docs/resource-name-format) 1688 // of the resource to which the [iam_binding][google.cloud.asset.v1.IamPolicyAnalysisResult.iam_binding] policy attaches. 1689 AttachedResourceFullName string `protobuf:"bytes,1,opt,name=attached_resource_full_name,json=attachedResourceFullName,proto3" json:"attached_resource_full_name,omitempty"` 1690 // The Cloud IAM policy binding under analysis. 1691 IamBinding *v1.Binding `protobuf:"bytes,2,opt,name=iam_binding,json=iamBinding,proto3" json:"iam_binding,omitempty"` 1692 // The access control lists derived from the [iam_binding][google.cloud.asset.v1.IamPolicyAnalysisResult.iam_binding] that match or 1693 // potentially match resource and access selectors specified in the request. 1694 AccessControlLists []*IamPolicyAnalysisResult_AccessControlList `protobuf:"bytes,3,rep,name=access_control_lists,json=accessControlLists,proto3" json:"access_control_lists,omitempty"` 1695 // The identity list derived from members of the [iam_binding][google.cloud.asset.v1.IamPolicyAnalysisResult.iam_binding] that match or 1696 // potentially match identity selector specified in the request. 1697 IdentityList *IamPolicyAnalysisResult_IdentityList `protobuf:"bytes,4,opt,name=identity_list,json=identityList,proto3" json:"identity_list,omitempty"` 1698 // Represents whether all analyses on the [iam_binding][google.cloud.asset.v1.IamPolicyAnalysisResult.iam_binding] have successfully 1699 // finished. 1700 FullyExplored bool `protobuf:"varint,5,opt,name=fully_explored,json=fullyExplored,proto3" json:"fully_explored,omitempty"` 1701} 1702 1703func (x *IamPolicyAnalysisResult) Reset() { 1704 *x = IamPolicyAnalysisResult{} 1705 if protoimpl.UnsafeEnabled { 1706 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[13] 1707 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1708 ms.StoreMessageInfo(mi) 1709 } 1710} 1711 1712func (x *IamPolicyAnalysisResult) String() string { 1713 return protoimpl.X.MessageStringOf(x) 1714} 1715 1716func (*IamPolicyAnalysisResult) ProtoMessage() {} 1717 1718func (x *IamPolicyAnalysisResult) ProtoReflect() protoreflect.Message { 1719 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[13] 1720 if protoimpl.UnsafeEnabled && x != nil { 1721 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1722 if ms.LoadMessageInfo() == nil { 1723 ms.StoreMessageInfo(mi) 1724 } 1725 return ms 1726 } 1727 return mi.MessageOf(x) 1728} 1729 1730// Deprecated: Use IamPolicyAnalysisResult.ProtoReflect.Descriptor instead. 1731func (*IamPolicyAnalysisResult) Descriptor() ([]byte, []int) { 1732 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{13} 1733} 1734 1735func (x *IamPolicyAnalysisResult) GetAttachedResourceFullName() string { 1736 if x != nil { 1737 return x.AttachedResourceFullName 1738 } 1739 return "" 1740} 1741 1742func (x *IamPolicyAnalysisResult) GetIamBinding() *v1.Binding { 1743 if x != nil { 1744 return x.IamBinding 1745 } 1746 return nil 1747} 1748 1749func (x *IamPolicyAnalysisResult) GetAccessControlLists() []*IamPolicyAnalysisResult_AccessControlList { 1750 if x != nil { 1751 return x.AccessControlLists 1752 } 1753 return nil 1754} 1755 1756func (x *IamPolicyAnalysisResult) GetIdentityList() *IamPolicyAnalysisResult_IdentityList { 1757 if x != nil { 1758 return x.IdentityList 1759 } 1760 return nil 1761} 1762 1763func (x *IamPolicyAnalysisResult) GetFullyExplored() bool { 1764 if x != nil { 1765 return x.FullyExplored 1766 } 1767 return false 1768} 1769 1770// Explanation about the IAM policy search result. 1771type IamPolicySearchResult_Explanation struct { 1772 state protoimpl.MessageState 1773 sizeCache protoimpl.SizeCache 1774 unknownFields protoimpl.UnknownFields 1775 1776 // The map from roles to their included permissions that match the 1777 // permission query (i.e., a query containing `policy.role.permissions:`). 1778 // Example: if query `policy.role.permissions:compute.disk.get` 1779 // matches a policy binding that contains owner role, the 1780 // matched_permissions will be `{"roles/owner": ["compute.disk.get"]}`. The 1781 // roles can also be found in the returned `policy` bindings. Note that the 1782 // map is populated only for requests with permission queries. 1783 MatchedPermissions map[string]*IamPolicySearchResult_Explanation_Permissions `protobuf:"bytes,1,rep,name=matched_permissions,json=matchedPermissions,proto3" json:"matched_permissions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1784} 1785 1786func (x *IamPolicySearchResult_Explanation) Reset() { 1787 *x = IamPolicySearchResult_Explanation{} 1788 if protoimpl.UnsafeEnabled { 1789 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[15] 1790 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1791 ms.StoreMessageInfo(mi) 1792 } 1793} 1794 1795func (x *IamPolicySearchResult_Explanation) String() string { 1796 return protoimpl.X.MessageStringOf(x) 1797} 1798 1799func (*IamPolicySearchResult_Explanation) ProtoMessage() {} 1800 1801func (x *IamPolicySearchResult_Explanation) ProtoReflect() protoreflect.Message { 1802 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[15] 1803 if protoimpl.UnsafeEnabled && x != nil { 1804 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1805 if ms.LoadMessageInfo() == nil { 1806 ms.StoreMessageInfo(mi) 1807 } 1808 return ms 1809 } 1810 return mi.MessageOf(x) 1811} 1812 1813// Deprecated: Use IamPolicySearchResult_Explanation.ProtoReflect.Descriptor instead. 1814func (*IamPolicySearchResult_Explanation) Descriptor() ([]byte, []int) { 1815 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{10, 0} 1816} 1817 1818func (x *IamPolicySearchResult_Explanation) GetMatchedPermissions() map[string]*IamPolicySearchResult_Explanation_Permissions { 1819 if x != nil { 1820 return x.MatchedPermissions 1821 } 1822 return nil 1823} 1824 1825// IAM permissions 1826type IamPolicySearchResult_Explanation_Permissions struct { 1827 state protoimpl.MessageState 1828 sizeCache protoimpl.SizeCache 1829 unknownFields protoimpl.UnknownFields 1830 1831 // A list of permissions. A sample permission string: `compute.disk.get`. 1832 Permissions []string `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty"` 1833} 1834 1835func (x *IamPolicySearchResult_Explanation_Permissions) Reset() { 1836 *x = IamPolicySearchResult_Explanation_Permissions{} 1837 if protoimpl.UnsafeEnabled { 1838 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[16] 1839 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1840 ms.StoreMessageInfo(mi) 1841 } 1842} 1843 1844func (x *IamPolicySearchResult_Explanation_Permissions) String() string { 1845 return protoimpl.X.MessageStringOf(x) 1846} 1847 1848func (*IamPolicySearchResult_Explanation_Permissions) ProtoMessage() {} 1849 1850func (x *IamPolicySearchResult_Explanation_Permissions) ProtoReflect() protoreflect.Message { 1851 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[16] 1852 if protoimpl.UnsafeEnabled && x != nil { 1853 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1854 if ms.LoadMessageInfo() == nil { 1855 ms.StoreMessageInfo(mi) 1856 } 1857 return ms 1858 } 1859 return mi.MessageOf(x) 1860} 1861 1862// Deprecated: Use IamPolicySearchResult_Explanation_Permissions.ProtoReflect.Descriptor instead. 1863func (*IamPolicySearchResult_Explanation_Permissions) Descriptor() ([]byte, []int) { 1864 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{10, 0, 0} 1865} 1866 1867func (x *IamPolicySearchResult_Explanation_Permissions) GetPermissions() []string { 1868 if x != nil { 1869 return x.Permissions 1870 } 1871 return nil 1872} 1873 1874// A Google Cloud resource under analysis. 1875type IamPolicyAnalysisResult_Resource struct { 1876 state protoimpl.MessageState 1877 sizeCache protoimpl.SizeCache 1878 unknownFields protoimpl.UnknownFields 1879 1880 // The [full resource 1881 // name](https://cloud.google.com/asset-inventory/docs/resource-name-format) 1882 FullResourceName string `protobuf:"bytes,1,opt,name=full_resource_name,json=fullResourceName,proto3" json:"full_resource_name,omitempty"` 1883 // The analysis state of this resource. 1884 AnalysisState *IamPolicyAnalysisState `protobuf:"bytes,2,opt,name=analysis_state,json=analysisState,proto3" json:"analysis_state,omitempty"` 1885} 1886 1887func (x *IamPolicyAnalysisResult_Resource) Reset() { 1888 *x = IamPolicyAnalysisResult_Resource{} 1889 if protoimpl.UnsafeEnabled { 1890 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[18] 1891 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1892 ms.StoreMessageInfo(mi) 1893 } 1894} 1895 1896func (x *IamPolicyAnalysisResult_Resource) String() string { 1897 return protoimpl.X.MessageStringOf(x) 1898} 1899 1900func (*IamPolicyAnalysisResult_Resource) ProtoMessage() {} 1901 1902func (x *IamPolicyAnalysisResult_Resource) ProtoReflect() protoreflect.Message { 1903 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[18] 1904 if protoimpl.UnsafeEnabled && x != nil { 1905 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1906 if ms.LoadMessageInfo() == nil { 1907 ms.StoreMessageInfo(mi) 1908 } 1909 return ms 1910 } 1911 return mi.MessageOf(x) 1912} 1913 1914// Deprecated: Use IamPolicyAnalysisResult_Resource.ProtoReflect.Descriptor instead. 1915func (*IamPolicyAnalysisResult_Resource) Descriptor() ([]byte, []int) { 1916 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{13, 0} 1917} 1918 1919func (x *IamPolicyAnalysisResult_Resource) GetFullResourceName() string { 1920 if x != nil { 1921 return x.FullResourceName 1922 } 1923 return "" 1924} 1925 1926func (x *IamPolicyAnalysisResult_Resource) GetAnalysisState() *IamPolicyAnalysisState { 1927 if x != nil { 1928 return x.AnalysisState 1929 } 1930 return nil 1931} 1932 1933// An IAM role or permission under analysis. 1934type IamPolicyAnalysisResult_Access struct { 1935 state protoimpl.MessageState 1936 sizeCache protoimpl.SizeCache 1937 unknownFields protoimpl.UnknownFields 1938 1939 // Types that are assignable to OneofAccess: 1940 // *IamPolicyAnalysisResult_Access_Role 1941 // *IamPolicyAnalysisResult_Access_Permission 1942 OneofAccess isIamPolicyAnalysisResult_Access_OneofAccess `protobuf_oneof:"oneof_access"` 1943 // The analysis state of this access. 1944 AnalysisState *IamPolicyAnalysisState `protobuf:"bytes,3,opt,name=analysis_state,json=analysisState,proto3" json:"analysis_state,omitempty"` 1945} 1946 1947func (x *IamPolicyAnalysisResult_Access) Reset() { 1948 *x = IamPolicyAnalysisResult_Access{} 1949 if protoimpl.UnsafeEnabled { 1950 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[19] 1951 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1952 ms.StoreMessageInfo(mi) 1953 } 1954} 1955 1956func (x *IamPolicyAnalysisResult_Access) String() string { 1957 return protoimpl.X.MessageStringOf(x) 1958} 1959 1960func (*IamPolicyAnalysisResult_Access) ProtoMessage() {} 1961 1962func (x *IamPolicyAnalysisResult_Access) ProtoReflect() protoreflect.Message { 1963 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[19] 1964 if protoimpl.UnsafeEnabled && x != nil { 1965 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1966 if ms.LoadMessageInfo() == nil { 1967 ms.StoreMessageInfo(mi) 1968 } 1969 return ms 1970 } 1971 return mi.MessageOf(x) 1972} 1973 1974// Deprecated: Use IamPolicyAnalysisResult_Access.ProtoReflect.Descriptor instead. 1975func (*IamPolicyAnalysisResult_Access) Descriptor() ([]byte, []int) { 1976 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{13, 1} 1977} 1978 1979func (m *IamPolicyAnalysisResult_Access) GetOneofAccess() isIamPolicyAnalysisResult_Access_OneofAccess { 1980 if m != nil { 1981 return m.OneofAccess 1982 } 1983 return nil 1984} 1985 1986func (x *IamPolicyAnalysisResult_Access) GetRole() string { 1987 if x, ok := x.GetOneofAccess().(*IamPolicyAnalysisResult_Access_Role); ok { 1988 return x.Role 1989 } 1990 return "" 1991} 1992 1993func (x *IamPolicyAnalysisResult_Access) GetPermission() string { 1994 if x, ok := x.GetOneofAccess().(*IamPolicyAnalysisResult_Access_Permission); ok { 1995 return x.Permission 1996 } 1997 return "" 1998} 1999 2000func (x *IamPolicyAnalysisResult_Access) GetAnalysisState() *IamPolicyAnalysisState { 2001 if x != nil { 2002 return x.AnalysisState 2003 } 2004 return nil 2005} 2006 2007type isIamPolicyAnalysisResult_Access_OneofAccess interface { 2008 isIamPolicyAnalysisResult_Access_OneofAccess() 2009} 2010 2011type IamPolicyAnalysisResult_Access_Role struct { 2012 // The role. 2013 Role string `protobuf:"bytes,1,opt,name=role,proto3,oneof"` 2014} 2015 2016type IamPolicyAnalysisResult_Access_Permission struct { 2017 // The permission. 2018 Permission string `protobuf:"bytes,2,opt,name=permission,proto3,oneof"` 2019} 2020 2021func (*IamPolicyAnalysisResult_Access_Role) isIamPolicyAnalysisResult_Access_OneofAccess() {} 2022 2023func (*IamPolicyAnalysisResult_Access_Permission) isIamPolicyAnalysisResult_Access_OneofAccess() {} 2024 2025// An identity under analysis. 2026type IamPolicyAnalysisResult_Identity struct { 2027 state protoimpl.MessageState 2028 sizeCache protoimpl.SizeCache 2029 unknownFields protoimpl.UnknownFields 2030 2031 // The identity name in any form of members appear in 2032 // [IAM policy 2033 // binding](https://cloud.google.com/iam/reference/rest/v1/Binding), such 2034 // as: 2035 // - user:foo@google.com 2036 // - group:group1@google.com 2037 // - serviceAccount:s1@prj1.iam.gserviceaccount.com 2038 // - projectOwner:some_project_id 2039 // - domain:google.com 2040 // - allUsers 2041 // - etc. 2042 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2043 // The analysis state of this identity. 2044 AnalysisState *IamPolicyAnalysisState `protobuf:"bytes,2,opt,name=analysis_state,json=analysisState,proto3" json:"analysis_state,omitempty"` 2045} 2046 2047func (x *IamPolicyAnalysisResult_Identity) Reset() { 2048 *x = IamPolicyAnalysisResult_Identity{} 2049 if protoimpl.UnsafeEnabled { 2050 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[20] 2051 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2052 ms.StoreMessageInfo(mi) 2053 } 2054} 2055 2056func (x *IamPolicyAnalysisResult_Identity) String() string { 2057 return protoimpl.X.MessageStringOf(x) 2058} 2059 2060func (*IamPolicyAnalysisResult_Identity) ProtoMessage() {} 2061 2062func (x *IamPolicyAnalysisResult_Identity) ProtoReflect() protoreflect.Message { 2063 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[20] 2064 if protoimpl.UnsafeEnabled && x != nil { 2065 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2066 if ms.LoadMessageInfo() == nil { 2067 ms.StoreMessageInfo(mi) 2068 } 2069 return ms 2070 } 2071 return mi.MessageOf(x) 2072} 2073 2074// Deprecated: Use IamPolicyAnalysisResult_Identity.ProtoReflect.Descriptor instead. 2075func (*IamPolicyAnalysisResult_Identity) Descriptor() ([]byte, []int) { 2076 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{13, 2} 2077} 2078 2079func (x *IamPolicyAnalysisResult_Identity) GetName() string { 2080 if x != nil { 2081 return x.Name 2082 } 2083 return "" 2084} 2085 2086func (x *IamPolicyAnalysisResult_Identity) GetAnalysisState() *IamPolicyAnalysisState { 2087 if x != nil { 2088 return x.AnalysisState 2089 } 2090 return nil 2091} 2092 2093// A directional edge. 2094type IamPolicyAnalysisResult_Edge struct { 2095 state protoimpl.MessageState 2096 sizeCache protoimpl.SizeCache 2097 unknownFields protoimpl.UnknownFields 2098 2099 // The source node of the edge. For example, it could be a full resource 2100 // name for a resource node or an email of an identity. 2101 SourceNode string `protobuf:"bytes,1,opt,name=source_node,json=sourceNode,proto3" json:"source_node,omitempty"` 2102 // The target node of the edge. For example, it could be a full resource 2103 // name for a resource node or an email of an identity. 2104 TargetNode string `protobuf:"bytes,2,opt,name=target_node,json=targetNode,proto3" json:"target_node,omitempty"` 2105} 2106 2107func (x *IamPolicyAnalysisResult_Edge) Reset() { 2108 *x = IamPolicyAnalysisResult_Edge{} 2109 if protoimpl.UnsafeEnabled { 2110 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[21] 2111 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2112 ms.StoreMessageInfo(mi) 2113 } 2114} 2115 2116func (x *IamPolicyAnalysisResult_Edge) String() string { 2117 return protoimpl.X.MessageStringOf(x) 2118} 2119 2120func (*IamPolicyAnalysisResult_Edge) ProtoMessage() {} 2121 2122func (x *IamPolicyAnalysisResult_Edge) ProtoReflect() protoreflect.Message { 2123 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[21] 2124 if protoimpl.UnsafeEnabled && x != nil { 2125 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2126 if ms.LoadMessageInfo() == nil { 2127 ms.StoreMessageInfo(mi) 2128 } 2129 return ms 2130 } 2131 return mi.MessageOf(x) 2132} 2133 2134// Deprecated: Use IamPolicyAnalysisResult_Edge.ProtoReflect.Descriptor instead. 2135func (*IamPolicyAnalysisResult_Edge) Descriptor() ([]byte, []int) { 2136 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{13, 3} 2137} 2138 2139func (x *IamPolicyAnalysisResult_Edge) GetSourceNode() string { 2140 if x != nil { 2141 return x.SourceNode 2142 } 2143 return "" 2144} 2145 2146func (x *IamPolicyAnalysisResult_Edge) GetTargetNode() string { 2147 if x != nil { 2148 return x.TargetNode 2149 } 2150 return "" 2151} 2152 2153// An access control list, derived from the above IAM policy binding, which 2154// contains a set of resources and accesses. May include one 2155// item from each set to compose an access control entry. 2156// 2157// NOTICE that there could be multiple access control lists for one IAM policy 2158// binding. The access control lists are created based on resource and access 2159// combinations. 2160// 2161// For example, assume we have the following cases in one IAM policy binding: 2162// - Permission P1 and P2 apply to resource R1 and R2; 2163// - Permission P3 applies to resource R2 and R3; 2164// 2165// This will result in the following access control lists: 2166// - AccessControlList 1: [R1, R2], [P1, P2] 2167// - AccessControlList 2: [R2, R3], [P3] 2168type IamPolicyAnalysisResult_AccessControlList struct { 2169 state protoimpl.MessageState 2170 sizeCache protoimpl.SizeCache 2171 unknownFields protoimpl.UnknownFields 2172 2173 // The resources that match one of the following conditions: 2174 // - The resource_selector, if it is specified in request; 2175 // - Otherwise, resources reachable from the policy attached resource. 2176 Resources []*IamPolicyAnalysisResult_Resource `protobuf:"bytes,1,rep,name=resources,proto3" json:"resources,omitempty"` 2177 // The accesses that match one of the following conditions: 2178 // - The access_selector, if it is specified in request; 2179 // - Otherwise, access specifiers reachable from the policy binding's role. 2180 Accesses []*IamPolicyAnalysisResult_Access `protobuf:"bytes,2,rep,name=accesses,proto3" json:"accesses,omitempty"` 2181 // Resource edges of the graph starting from the policy attached 2182 // resource to any descendant resources. The [Edge.source_node][google.cloud.asset.v1.IamPolicyAnalysisResult.Edge.source_node] contains 2183 // the full resource name of a parent resource and [Edge.target_node][google.cloud.asset.v1.IamPolicyAnalysisResult.Edge.target_node] 2184 // contains the full resource name of a child resource. This field is 2185 // present only if the output_resource_edges option is enabled in request. 2186 ResourceEdges []*IamPolicyAnalysisResult_Edge `protobuf:"bytes,3,rep,name=resource_edges,json=resourceEdges,proto3" json:"resource_edges,omitempty"` 2187 // Condition evaluation for this AccessControlList, if there is a condition 2188 // defined in the above IAM policy binding. 2189 ConditionEvaluation *ConditionEvaluation `protobuf:"bytes,4,opt,name=condition_evaluation,json=conditionEvaluation,proto3" json:"condition_evaluation,omitempty"` 2190} 2191 2192func (x *IamPolicyAnalysisResult_AccessControlList) Reset() { 2193 *x = IamPolicyAnalysisResult_AccessControlList{} 2194 if protoimpl.UnsafeEnabled { 2195 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[22] 2196 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2197 ms.StoreMessageInfo(mi) 2198 } 2199} 2200 2201func (x *IamPolicyAnalysisResult_AccessControlList) String() string { 2202 return protoimpl.X.MessageStringOf(x) 2203} 2204 2205func (*IamPolicyAnalysisResult_AccessControlList) ProtoMessage() {} 2206 2207func (x *IamPolicyAnalysisResult_AccessControlList) ProtoReflect() protoreflect.Message { 2208 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[22] 2209 if protoimpl.UnsafeEnabled && x != nil { 2210 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2211 if ms.LoadMessageInfo() == nil { 2212 ms.StoreMessageInfo(mi) 2213 } 2214 return ms 2215 } 2216 return mi.MessageOf(x) 2217} 2218 2219// Deprecated: Use IamPolicyAnalysisResult_AccessControlList.ProtoReflect.Descriptor instead. 2220func (*IamPolicyAnalysisResult_AccessControlList) Descriptor() ([]byte, []int) { 2221 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{13, 4} 2222} 2223 2224func (x *IamPolicyAnalysisResult_AccessControlList) GetResources() []*IamPolicyAnalysisResult_Resource { 2225 if x != nil { 2226 return x.Resources 2227 } 2228 return nil 2229} 2230 2231func (x *IamPolicyAnalysisResult_AccessControlList) GetAccesses() []*IamPolicyAnalysisResult_Access { 2232 if x != nil { 2233 return x.Accesses 2234 } 2235 return nil 2236} 2237 2238func (x *IamPolicyAnalysisResult_AccessControlList) GetResourceEdges() []*IamPolicyAnalysisResult_Edge { 2239 if x != nil { 2240 return x.ResourceEdges 2241 } 2242 return nil 2243} 2244 2245func (x *IamPolicyAnalysisResult_AccessControlList) GetConditionEvaluation() *ConditionEvaluation { 2246 if x != nil { 2247 return x.ConditionEvaluation 2248 } 2249 return nil 2250} 2251 2252// The identities and group edges. 2253type IamPolicyAnalysisResult_IdentityList struct { 2254 state protoimpl.MessageState 2255 sizeCache protoimpl.SizeCache 2256 unknownFields protoimpl.UnknownFields 2257 2258 // Only the identities that match one of the following conditions will be 2259 // presented: 2260 // - The identity_selector, if it is specified in request; 2261 // - Otherwise, identities reachable from the policy binding's members. 2262 Identities []*IamPolicyAnalysisResult_Identity `protobuf:"bytes,1,rep,name=identities,proto3" json:"identities,omitempty"` 2263 // Group identity edges of the graph starting from the binding's 2264 // group members to any node of the [identities][google.cloud.asset.v1.IamPolicyAnalysisResult.IdentityList.identities]. The [Edge.source_node][google.cloud.asset.v1.IamPolicyAnalysisResult.Edge.source_node] 2265 // contains a group, such as `group:parent@google.com`. The 2266 // [Edge.target_node][google.cloud.asset.v1.IamPolicyAnalysisResult.Edge.target_node] contains a member of the group, 2267 // such as `group:child@google.com` or `user:foo@google.com`. 2268 // This field is present only if the output_group_edges option is enabled in 2269 // request. 2270 GroupEdges []*IamPolicyAnalysisResult_Edge `protobuf:"bytes,2,rep,name=group_edges,json=groupEdges,proto3" json:"group_edges,omitempty"` 2271} 2272 2273func (x *IamPolicyAnalysisResult_IdentityList) Reset() { 2274 *x = IamPolicyAnalysisResult_IdentityList{} 2275 if protoimpl.UnsafeEnabled { 2276 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[23] 2277 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2278 ms.StoreMessageInfo(mi) 2279 } 2280} 2281 2282func (x *IamPolicyAnalysisResult_IdentityList) String() string { 2283 return protoimpl.X.MessageStringOf(x) 2284} 2285 2286func (*IamPolicyAnalysisResult_IdentityList) ProtoMessage() {} 2287 2288func (x *IamPolicyAnalysisResult_IdentityList) ProtoReflect() protoreflect.Message { 2289 mi := &file_google_cloud_asset_v1_assets_proto_msgTypes[23] 2290 if protoimpl.UnsafeEnabled && x != nil { 2291 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2292 if ms.LoadMessageInfo() == nil { 2293 ms.StoreMessageInfo(mi) 2294 } 2295 return ms 2296 } 2297 return mi.MessageOf(x) 2298} 2299 2300// Deprecated: Use IamPolicyAnalysisResult_IdentityList.ProtoReflect.Descriptor instead. 2301func (*IamPolicyAnalysisResult_IdentityList) Descriptor() ([]byte, []int) { 2302 return file_google_cloud_asset_v1_assets_proto_rawDescGZIP(), []int{13, 5} 2303} 2304 2305func (x *IamPolicyAnalysisResult_IdentityList) GetIdentities() []*IamPolicyAnalysisResult_Identity { 2306 if x != nil { 2307 return x.Identities 2308 } 2309 return nil 2310} 2311 2312func (x *IamPolicyAnalysisResult_IdentityList) GetGroupEdges() []*IamPolicyAnalysisResult_Edge { 2313 if x != nil { 2314 return x.GroupEdges 2315 } 2316 return nil 2317} 2318 2319var File_google_cloud_asset_v1_assets_proto protoreflect.FileDescriptor 2320 2321var file_google_cloud_asset_v1_assets_proto_rawDesc = []byte{ 2322 0x0a, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 2323 0x73, 0x73, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2e, 0x70, 2324 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2325 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 2326 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 2327 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 2328 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6f, 0x72, 0x67, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2f, 0x76, 2329 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2330 0x6f, 0x1a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x69, 0x61, 0x6d, 0x2f, 0x76, 0x31, 2331 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3a, 0x67, 2332 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x61, 2333 0x63, 0x63, 0x65, 0x73, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x6d, 0x61, 0x6e, 0x61, 2334 0x67, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x65, 2335 0x76, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2336 0x65, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 2337 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 2338 0x76, 0x31, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 2339 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 2340 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6f, 0x73, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 2341 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2342 0x1a, 0x3f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 2343 0x79, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x6d, 2344 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 2345 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2346 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2347 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 2348 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 2349 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 2350 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 2351 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x67, 0x6f, 0x6f, 2352 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2353 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 2354 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2355 0x22, 0xaa, 0x03, 0x0a, 0x0d, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x41, 0x73, 0x73, 2356 0x65, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 2357 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2358 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x57, 2359 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x18, 0x0a, 2360 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 2361 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 2362 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2363 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 2364 0x73, 0x73, 0x65, 0x74, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x60, 0x0a, 0x11, 0x70, 2365 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 2366 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2367 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x54, 2368 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x50, 0x72, 0x69, 2369 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x70, 0x72, 2370 0x69, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 2371 0x0b, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 2372 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2373 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 2374 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x22, 0x6f, 0x0a, 0x0f, 2375 0x50, 0x72, 0x69, 0x6f, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 2376 0x21, 0x0a, 0x1d, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x5f, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x53, 2377 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 2378 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 2379 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 2380 0x44, 0x4f, 0x45, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x10, 0x03, 2381 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x04, 0x22, 0x7e, 0x0a, 2382 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x39, 0x0a, 0x0a, 0x73, 2383 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 2384 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2385 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 2386 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 2387 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2388 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 2389 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc4, 0x06, 2390 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 2391 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 2392 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 2393 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 2394 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 2395 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 2396 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 2397 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 2398 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2399 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 2400 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 2401 0x75, 0x72, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x69, 0x61, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 2402 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2403 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 2404 0x09, 0x69, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x40, 0x0a, 0x0a, 0x6f, 0x72, 2405 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 2406 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 2407 0x67, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 2408 0x79, 0x52, 0x09, 0x6f, 0x72, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x5c, 0x0a, 0x0d, 2409 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x07, 0x20, 2410 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x64, 0x65, 2411 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x63, 0x6f, 0x6e, 0x74, 2412 0x65, 0x78, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 2413 0x63, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 2414 0x63, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x59, 0x0a, 0x0c, 0x61, 0x63, 2415 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 2416 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 2417 0x74, 0x79, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 2418 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 2419 0x73, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 2420 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x68, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 2421 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 2422 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 2423 0x74, 0x79, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 2424 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 2425 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x73, 2426 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 2427 0x46, 0x0a, 0x0c, 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x18, 2428 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2429 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x73, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 2430 0x2e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0b, 0x6f, 0x73, 0x49, 0x6e, 2431 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x4b, 0x0a, 0x0e, 0x72, 0x65, 0x6c, 0x61, 0x74, 2432 0x65, 0x64, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 2433 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 2434 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x41, 2435 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x41, 0x73, 2436 0x73, 0x65, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 2437 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 2438 0x72, 0x73, 0x3a, 0x27, 0xea, 0x41, 0x24, 0x0a, 0x1f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x73, 2439 0x73, 0x65, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 2440 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x01, 0x2a, 0x42, 0x17, 0x0a, 0x15, 0x61, 2441 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x6f, 2442 0x6c, 0x69, 0x63, 0x79, 0x22, 0x85, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 2443 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 2444 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x64, 2445 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 2446 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x64, 0x69, 0x73, 2447 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 2448 0x69, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6e, 2449 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 2450 0x76, 0x65, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x6f, 2451 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 2452 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x70, 2453 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 2454 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 2455 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2456 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 2457 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 2458 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb4, 0x01, 0x0a, 2459 0x0d, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x66, 2460 0x0a, 0x17, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x61, 2461 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 2462 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 2463 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2464 0x73, 0x68, 0x69, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x16, 2465 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x41, 0x74, 0x74, 0x72, 2466 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 2467 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2468 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x52, 2469 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x06, 0x61, 0x73, 0x73, 2470 0x65, 0x74, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2471 0x73, 0x68, 0x69, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x12, 2472 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 2473 0x70, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 2474 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 2475 0x52, 0x12, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 2476 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 2477 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 2478 0x28, 0x09, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 2479 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 2480 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x87, 2481 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 2482 0x3a, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 2483 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 2484 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 2485 0x73, 0x73, 0x65, 0x74, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 2486 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 2487 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6e, 2488 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 2489 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xc2, 0x07, 0x0a, 0x14, 0x52, 0x65, 0x73, 2490 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 2491 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 2492 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 2493 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 2494 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 2495 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x18, 2496 0x0a, 0x07, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 2497 0x07, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 2498 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 2499 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 2500 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 2501 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 2502 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 2503 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 2504 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 2505 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 2506 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 2507 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 2508 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 2509 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 2510 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 2511 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 2512 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x61, 0x67, 2513 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 2514 0x28, 0x09, 0x52, 0x06, 0x6b, 0x6d, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 2515 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 2516 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2517 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 2518 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 2519 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 2520 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 2521 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 2522 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 2523 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4c, 0x0a, 0x15, 0x61, 0x64, 2524 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 2525 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2526 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 2527 0x63, 0x74, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x74, 2528 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x70, 0x61, 0x72, 0x65, 2529 0x6e, 0x74, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 2530 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x70, 0x61, 0x72, 2531 0x65, 0x6e, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 2532 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 2533 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 2534 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2535 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 2536 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x12, 0x76, 0x65, 0x72, 0x73, 2537 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x56, 2538 0x0a, 0x12, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 2539 0x72, 0x63, 0x65, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 2540 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 2541 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 2542 0x72, 0x63, 0x65, 0x52, 0x11, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x73, 2543 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 2544 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x67, 0x20, 0x01, 0x28, 2545 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 2546 0x70, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 2547 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 2548 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 2549 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x62, 0x0a, 2550 0x11, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 2551 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 2552 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x08, 2553 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 2554 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2555 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 2556 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x10, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 2557 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 2558 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 2559 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 2560 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 2561 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2562 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 2563 0x6f, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x12, 0x76, 0x65, 2564 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 2565 0x22, 0x88, 0x05, 0x0a, 0x15, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 2566 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 2567 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 2568 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 2569 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 2570 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 2571 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 2572 0x18, 0x0a, 0x07, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 2573 0x52, 0x07, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 2574 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 2575 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 2576 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 2577 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 2578 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x5a, 0x0a, 0x0b, 2579 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 2580 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2581 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 2582 0x69, 0x63, 0x79, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 2583 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x78, 0x70, 2584 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xd0, 0x02, 0x0a, 0x0b, 0x45, 0x78, 0x70, 2585 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x81, 0x01, 0x0a, 0x13, 0x6d, 0x61, 0x74, 2586 0x63, 0x68, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 2587 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2588 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 2589 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 2590 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2591 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 2592 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 2593 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x2f, 0x0a, 0x0b, 2594 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 2595 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 2596 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x8b, 0x01, 2597 0x0a, 0x17, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 2598 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 2599 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x5a, 0x0a, 0x05, 0x76, 2600 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 2601 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 2602 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x61, 0x72, 2603 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 2604 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 2605 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x54, 0x0a, 0x16, 0x49, 2606 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 2607 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 2608 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 2609 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 2610 0x61, 0x75, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x75, 0x73, 2611 0x65, 0x22, 0xd7, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 2612 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x10, 0x65, 0x76, 0x61, 2613 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 2614 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2615 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 2616 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 2617 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 2618 0x0f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 2619 0x22, 0x59, 0x0a, 0x0f, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 2620 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 2621 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 2622 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x52, 0x55, 0x45, 0x10, 0x01, 0x12, 2623 0x09, 0x0a, 0x05, 0x46, 0x41, 0x4c, 0x53, 0x45, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 2624 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x22, 0xc3, 0x0b, 0x0a, 0x17, 2625 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 2626 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3d, 0x0a, 0x1b, 0x61, 0x74, 0x74, 0x61, 0x63, 2627 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x75, 0x6c, 2628 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x61, 0x74, 2629 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x75, 2630 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x69, 0x61, 0x6d, 0x5f, 0x62, 0x69, 2631 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 2632 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 2633 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x69, 0x61, 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 2634 0x72, 0x0a, 0x14, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 2635 0x6c, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 2636 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 2637 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 2638 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x41, 0x63, 2639 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 2640 0x12, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x69, 2641 0x73, 0x74, 0x73, 0x12, 0x60, 0x0a, 0x0d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 2642 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 2643 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 2644 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 2645 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 2646 0x69, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 2647 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x5f, 0x65, 2648 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 2649 0x75, 0x6c, 0x6c, 0x79, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x64, 0x1a, 0x8e, 0x01, 0x0a, 2650 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x75, 0x6c, 2651 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 2652 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 2653 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 2654 0x73, 0x69, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 2655 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 2656 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 2657 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 2658 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0xa6, 0x01, 2659 0x0a, 0x06, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 2660 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x20, 2661 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 2662 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 2663 0x12, 0x54, 0x0a, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x73, 0x74, 0x61, 2664 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2665 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 2666 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 2667 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 2668 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 2669 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x1a, 0x74, 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 2670 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 2671 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 2672 0x69, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 2673 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 2674 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 2675 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x61, 2676 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x48, 0x0a, 0x04, 2677 0x45, 0x64, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 2678 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 2679 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 2680 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 2681 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0xf8, 0x02, 0x0a, 0x11, 0x41, 0x63, 0x63, 0x65, 0x73, 2682 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x09, 2683 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 2684 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 2685 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 2686 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 2687 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 2688 0x63, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 2689 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2690 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 2691 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 2692 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x08, 0x61, 0x63, 2693 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 2694 0x63, 0x65, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 2695 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 2696 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 2697 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 2698 0x64, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x64, 0x67, 2699 0x65, 0x73, 0x12, 0x5d, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 2700 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 2701 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2702 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 2703 0x6f, 0x6e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x63, 0x6f, 2704 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 2705 0x6e, 0x1a, 0xbd, 0x01, 0x0a, 0x0c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x69, 2706 0x73, 0x74, 0x12, 0x57, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 2707 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2708 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 2709 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 2710 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 2711 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0b, 0x67, 2712 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 2713 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2714 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 2715 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 2716 0x2e, 0x45, 0x64, 0x67, 0x65, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x64, 0x67, 0x65, 2717 0x73, 0x42, 0x98, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2718 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x42, 2719 0x0a, 0x41, 0x73, 0x73, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x67, 2720 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 2721 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2722 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 2723 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x73, 0x73, 0x65, 0x74, 0xf8, 0x01, 0x01, 0xaa, 0x02, 0x15, 0x47, 2724 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x73, 0x73, 0x65, 2725 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 2726 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 2727 0x6f, 0x74, 0x6f, 0x33, 2728} 2729 2730var ( 2731 file_google_cloud_asset_v1_assets_proto_rawDescOnce sync.Once 2732 file_google_cloud_asset_v1_assets_proto_rawDescData = file_google_cloud_asset_v1_assets_proto_rawDesc 2733) 2734 2735func file_google_cloud_asset_v1_assets_proto_rawDescGZIP() []byte { 2736 file_google_cloud_asset_v1_assets_proto_rawDescOnce.Do(func() { 2737 file_google_cloud_asset_v1_assets_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_asset_v1_assets_proto_rawDescData) 2738 }) 2739 return file_google_cloud_asset_v1_assets_proto_rawDescData 2740} 2741 2742var file_google_cloud_asset_v1_assets_proto_enumTypes = make([]protoimpl.EnumInfo, 2) 2743var file_google_cloud_asset_v1_assets_proto_msgTypes = make([]protoimpl.MessageInfo, 24) 2744var file_google_cloud_asset_v1_assets_proto_goTypes = []interface{}{ 2745 (TemporalAsset_PriorAssetState)(0), // 0: google.cloud.asset.v1.TemporalAsset.PriorAssetState 2746 (ConditionEvaluation_EvaluationValue)(0), // 1: google.cloud.asset.v1.ConditionEvaluation.EvaluationValue 2747 (*TemporalAsset)(nil), // 2: google.cloud.asset.v1.TemporalAsset 2748 (*TimeWindow)(nil), // 3: google.cloud.asset.v1.TimeWindow 2749 (*Asset)(nil), // 4: google.cloud.asset.v1.Asset 2750 (*Resource)(nil), // 5: google.cloud.asset.v1.Resource 2751 (*RelatedAssets)(nil), // 6: google.cloud.asset.v1.RelatedAssets 2752 (*RelationshipAttributes)(nil), // 7: google.cloud.asset.v1.RelationshipAttributes 2753 (*RelatedAsset)(nil), // 8: google.cloud.asset.v1.RelatedAsset 2754 (*ResourceSearchResult)(nil), // 9: google.cloud.asset.v1.ResourceSearchResult 2755 (*VersionedResource)(nil), // 10: google.cloud.asset.v1.VersionedResource 2756 (*AttachedResource)(nil), // 11: google.cloud.asset.v1.AttachedResource 2757 (*IamPolicySearchResult)(nil), // 12: google.cloud.asset.v1.IamPolicySearchResult 2758 (*IamPolicyAnalysisState)(nil), // 13: google.cloud.asset.v1.IamPolicyAnalysisState 2759 (*ConditionEvaluation)(nil), // 14: google.cloud.asset.v1.ConditionEvaluation 2760 (*IamPolicyAnalysisResult)(nil), // 15: google.cloud.asset.v1.IamPolicyAnalysisResult 2761 nil, // 16: google.cloud.asset.v1.ResourceSearchResult.LabelsEntry 2762 (*IamPolicySearchResult_Explanation)(nil), // 17: google.cloud.asset.v1.IamPolicySearchResult.Explanation 2763 (*IamPolicySearchResult_Explanation_Permissions)(nil), // 18: google.cloud.asset.v1.IamPolicySearchResult.Explanation.Permissions 2764 nil, // 19: google.cloud.asset.v1.IamPolicySearchResult.Explanation.MatchedPermissionsEntry 2765 (*IamPolicyAnalysisResult_Resource)(nil), // 20: google.cloud.asset.v1.IamPolicyAnalysisResult.Resource 2766 (*IamPolicyAnalysisResult_Access)(nil), // 21: google.cloud.asset.v1.IamPolicyAnalysisResult.Access 2767 (*IamPolicyAnalysisResult_Identity)(nil), // 22: google.cloud.asset.v1.IamPolicyAnalysisResult.Identity 2768 (*IamPolicyAnalysisResult_Edge)(nil), // 23: google.cloud.asset.v1.IamPolicyAnalysisResult.Edge 2769 (*IamPolicyAnalysisResult_AccessControlList)(nil), // 24: google.cloud.asset.v1.IamPolicyAnalysisResult.AccessControlList 2770 (*IamPolicyAnalysisResult_IdentityList)(nil), // 25: google.cloud.asset.v1.IamPolicyAnalysisResult.IdentityList 2771 (*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp 2772 (*v1.Policy)(nil), // 27: google.iam.v1.Policy 2773 (*v11.Policy)(nil), // 28: google.cloud.orgpolicy.v1.Policy 2774 (*v13.AccessPolicy)(nil), // 29: google.identity.accesscontextmanager.v1.AccessPolicy 2775 (*v13.AccessLevel)(nil), // 30: google.identity.accesscontextmanager.v1.AccessLevel 2776 (*v13.ServicePerimeter)(nil), // 31: google.identity.accesscontextmanager.v1.ServicePerimeter 2777 (*v12.Inventory)(nil), // 32: google.cloud.osconfig.v1.Inventory 2778 (*structpb.Struct)(nil), // 33: google.protobuf.Struct 2779 (code.Code)(0), // 34: google.rpc.Code 2780 (*v1.Binding)(nil), // 35: google.iam.v1.Binding 2781} 2782var file_google_cloud_asset_v1_assets_proto_depIdxs = []int32{ 2783 3, // 0: google.cloud.asset.v1.TemporalAsset.window:type_name -> google.cloud.asset.v1.TimeWindow 2784 4, // 1: google.cloud.asset.v1.TemporalAsset.asset:type_name -> google.cloud.asset.v1.Asset 2785 0, // 2: google.cloud.asset.v1.TemporalAsset.prior_asset_state:type_name -> google.cloud.asset.v1.TemporalAsset.PriorAssetState 2786 4, // 3: google.cloud.asset.v1.TemporalAsset.prior_asset:type_name -> google.cloud.asset.v1.Asset 2787 26, // 4: google.cloud.asset.v1.TimeWindow.start_time:type_name -> google.protobuf.Timestamp 2788 26, // 5: google.cloud.asset.v1.TimeWindow.end_time:type_name -> google.protobuf.Timestamp 2789 26, // 6: google.cloud.asset.v1.Asset.update_time:type_name -> google.protobuf.Timestamp 2790 5, // 7: google.cloud.asset.v1.Asset.resource:type_name -> google.cloud.asset.v1.Resource 2791 27, // 8: google.cloud.asset.v1.Asset.iam_policy:type_name -> google.iam.v1.Policy 2792 28, // 9: google.cloud.asset.v1.Asset.org_policy:type_name -> google.cloud.orgpolicy.v1.Policy 2793 29, // 10: google.cloud.asset.v1.Asset.access_policy:type_name -> google.identity.accesscontextmanager.v1.AccessPolicy 2794 30, // 11: google.cloud.asset.v1.Asset.access_level:type_name -> google.identity.accesscontextmanager.v1.AccessLevel 2795 31, // 12: google.cloud.asset.v1.Asset.service_perimeter:type_name -> google.identity.accesscontextmanager.v1.ServicePerimeter 2796 32, // 13: google.cloud.asset.v1.Asset.os_inventory:type_name -> google.cloud.osconfig.v1.Inventory 2797 6, // 14: google.cloud.asset.v1.Asset.related_assets:type_name -> google.cloud.asset.v1.RelatedAssets 2798 33, // 15: google.cloud.asset.v1.Resource.data:type_name -> google.protobuf.Struct 2799 7, // 16: google.cloud.asset.v1.RelatedAssets.relationship_attributes:type_name -> google.cloud.asset.v1.RelationshipAttributes 2800 8, // 17: google.cloud.asset.v1.RelatedAssets.assets:type_name -> google.cloud.asset.v1.RelatedAsset 2801 16, // 18: google.cloud.asset.v1.ResourceSearchResult.labels:type_name -> google.cloud.asset.v1.ResourceSearchResult.LabelsEntry 2802 26, // 19: google.cloud.asset.v1.ResourceSearchResult.create_time:type_name -> google.protobuf.Timestamp 2803 26, // 20: google.cloud.asset.v1.ResourceSearchResult.update_time:type_name -> google.protobuf.Timestamp 2804 33, // 21: google.cloud.asset.v1.ResourceSearchResult.additional_attributes:type_name -> google.protobuf.Struct 2805 10, // 22: google.cloud.asset.v1.ResourceSearchResult.versioned_resources:type_name -> google.cloud.asset.v1.VersionedResource 2806 11, // 23: google.cloud.asset.v1.ResourceSearchResult.attached_resources:type_name -> google.cloud.asset.v1.AttachedResource 2807 33, // 24: google.cloud.asset.v1.VersionedResource.resource:type_name -> google.protobuf.Struct 2808 10, // 25: google.cloud.asset.v1.AttachedResource.versioned_resources:type_name -> google.cloud.asset.v1.VersionedResource 2809 27, // 26: google.cloud.asset.v1.IamPolicySearchResult.policy:type_name -> google.iam.v1.Policy 2810 17, // 27: google.cloud.asset.v1.IamPolicySearchResult.explanation:type_name -> google.cloud.asset.v1.IamPolicySearchResult.Explanation 2811 34, // 28: google.cloud.asset.v1.IamPolicyAnalysisState.code:type_name -> google.rpc.Code 2812 1, // 29: google.cloud.asset.v1.ConditionEvaluation.evaluation_value:type_name -> google.cloud.asset.v1.ConditionEvaluation.EvaluationValue 2813 35, // 30: google.cloud.asset.v1.IamPolicyAnalysisResult.iam_binding:type_name -> google.iam.v1.Binding 2814 24, // 31: google.cloud.asset.v1.IamPolicyAnalysisResult.access_control_lists:type_name -> google.cloud.asset.v1.IamPolicyAnalysisResult.AccessControlList 2815 25, // 32: google.cloud.asset.v1.IamPolicyAnalysisResult.identity_list:type_name -> google.cloud.asset.v1.IamPolicyAnalysisResult.IdentityList 2816 19, // 33: google.cloud.asset.v1.IamPolicySearchResult.Explanation.matched_permissions:type_name -> google.cloud.asset.v1.IamPolicySearchResult.Explanation.MatchedPermissionsEntry 2817 18, // 34: google.cloud.asset.v1.IamPolicySearchResult.Explanation.MatchedPermissionsEntry.value:type_name -> google.cloud.asset.v1.IamPolicySearchResult.Explanation.Permissions 2818 13, // 35: google.cloud.asset.v1.IamPolicyAnalysisResult.Resource.analysis_state:type_name -> google.cloud.asset.v1.IamPolicyAnalysisState 2819 13, // 36: google.cloud.asset.v1.IamPolicyAnalysisResult.Access.analysis_state:type_name -> google.cloud.asset.v1.IamPolicyAnalysisState 2820 13, // 37: google.cloud.asset.v1.IamPolicyAnalysisResult.Identity.analysis_state:type_name -> google.cloud.asset.v1.IamPolicyAnalysisState 2821 20, // 38: google.cloud.asset.v1.IamPolicyAnalysisResult.AccessControlList.resources:type_name -> google.cloud.asset.v1.IamPolicyAnalysisResult.Resource 2822 21, // 39: google.cloud.asset.v1.IamPolicyAnalysisResult.AccessControlList.accesses:type_name -> google.cloud.asset.v1.IamPolicyAnalysisResult.Access 2823 23, // 40: google.cloud.asset.v1.IamPolicyAnalysisResult.AccessControlList.resource_edges:type_name -> google.cloud.asset.v1.IamPolicyAnalysisResult.Edge 2824 14, // 41: google.cloud.asset.v1.IamPolicyAnalysisResult.AccessControlList.condition_evaluation:type_name -> google.cloud.asset.v1.ConditionEvaluation 2825 22, // 42: google.cloud.asset.v1.IamPolicyAnalysisResult.IdentityList.identities:type_name -> google.cloud.asset.v1.IamPolicyAnalysisResult.Identity 2826 23, // 43: google.cloud.asset.v1.IamPolicyAnalysisResult.IdentityList.group_edges:type_name -> google.cloud.asset.v1.IamPolicyAnalysisResult.Edge 2827 44, // [44:44] is the sub-list for method output_type 2828 44, // [44:44] is the sub-list for method input_type 2829 44, // [44:44] is the sub-list for extension type_name 2830 44, // [44:44] is the sub-list for extension extendee 2831 0, // [0:44] is the sub-list for field type_name 2832} 2833 2834func init() { file_google_cloud_asset_v1_assets_proto_init() } 2835func file_google_cloud_asset_v1_assets_proto_init() { 2836 if File_google_cloud_asset_v1_assets_proto != nil { 2837 return 2838 } 2839 if !protoimpl.UnsafeEnabled { 2840 file_google_cloud_asset_v1_assets_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2841 switch v := v.(*TemporalAsset); i { 2842 case 0: 2843 return &v.state 2844 case 1: 2845 return &v.sizeCache 2846 case 2: 2847 return &v.unknownFields 2848 default: 2849 return nil 2850 } 2851 } 2852 file_google_cloud_asset_v1_assets_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2853 switch v := v.(*TimeWindow); i { 2854 case 0: 2855 return &v.state 2856 case 1: 2857 return &v.sizeCache 2858 case 2: 2859 return &v.unknownFields 2860 default: 2861 return nil 2862 } 2863 } 2864 file_google_cloud_asset_v1_assets_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2865 switch v := v.(*Asset); i { 2866 case 0: 2867 return &v.state 2868 case 1: 2869 return &v.sizeCache 2870 case 2: 2871 return &v.unknownFields 2872 default: 2873 return nil 2874 } 2875 } 2876 file_google_cloud_asset_v1_assets_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2877 switch v := v.(*Resource); i { 2878 case 0: 2879 return &v.state 2880 case 1: 2881 return &v.sizeCache 2882 case 2: 2883 return &v.unknownFields 2884 default: 2885 return nil 2886 } 2887 } 2888 file_google_cloud_asset_v1_assets_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2889 switch v := v.(*RelatedAssets); i { 2890 case 0: 2891 return &v.state 2892 case 1: 2893 return &v.sizeCache 2894 case 2: 2895 return &v.unknownFields 2896 default: 2897 return nil 2898 } 2899 } 2900 file_google_cloud_asset_v1_assets_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2901 switch v := v.(*RelationshipAttributes); i { 2902 case 0: 2903 return &v.state 2904 case 1: 2905 return &v.sizeCache 2906 case 2: 2907 return &v.unknownFields 2908 default: 2909 return nil 2910 } 2911 } 2912 file_google_cloud_asset_v1_assets_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2913 switch v := v.(*RelatedAsset); i { 2914 case 0: 2915 return &v.state 2916 case 1: 2917 return &v.sizeCache 2918 case 2: 2919 return &v.unknownFields 2920 default: 2921 return nil 2922 } 2923 } 2924 file_google_cloud_asset_v1_assets_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2925 switch v := v.(*ResourceSearchResult); i { 2926 case 0: 2927 return &v.state 2928 case 1: 2929 return &v.sizeCache 2930 case 2: 2931 return &v.unknownFields 2932 default: 2933 return nil 2934 } 2935 } 2936 file_google_cloud_asset_v1_assets_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2937 switch v := v.(*VersionedResource); i { 2938 case 0: 2939 return &v.state 2940 case 1: 2941 return &v.sizeCache 2942 case 2: 2943 return &v.unknownFields 2944 default: 2945 return nil 2946 } 2947 } 2948 file_google_cloud_asset_v1_assets_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2949 switch v := v.(*AttachedResource); i { 2950 case 0: 2951 return &v.state 2952 case 1: 2953 return &v.sizeCache 2954 case 2: 2955 return &v.unknownFields 2956 default: 2957 return nil 2958 } 2959 } 2960 file_google_cloud_asset_v1_assets_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2961 switch v := v.(*IamPolicySearchResult); i { 2962 case 0: 2963 return &v.state 2964 case 1: 2965 return &v.sizeCache 2966 case 2: 2967 return &v.unknownFields 2968 default: 2969 return nil 2970 } 2971 } 2972 file_google_cloud_asset_v1_assets_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2973 switch v := v.(*IamPolicyAnalysisState); i { 2974 case 0: 2975 return &v.state 2976 case 1: 2977 return &v.sizeCache 2978 case 2: 2979 return &v.unknownFields 2980 default: 2981 return nil 2982 } 2983 } 2984 file_google_cloud_asset_v1_assets_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2985 switch v := v.(*ConditionEvaluation); i { 2986 case 0: 2987 return &v.state 2988 case 1: 2989 return &v.sizeCache 2990 case 2: 2991 return &v.unknownFields 2992 default: 2993 return nil 2994 } 2995 } 2996 file_google_cloud_asset_v1_assets_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2997 switch v := v.(*IamPolicyAnalysisResult); i { 2998 case 0: 2999 return &v.state 3000 case 1: 3001 return &v.sizeCache 3002 case 2: 3003 return &v.unknownFields 3004 default: 3005 return nil 3006 } 3007 } 3008 file_google_cloud_asset_v1_assets_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 3009 switch v := v.(*IamPolicySearchResult_Explanation); i { 3010 case 0: 3011 return &v.state 3012 case 1: 3013 return &v.sizeCache 3014 case 2: 3015 return &v.unknownFields 3016 default: 3017 return nil 3018 } 3019 } 3020 file_google_cloud_asset_v1_assets_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 3021 switch v := v.(*IamPolicySearchResult_Explanation_Permissions); i { 3022 case 0: 3023 return &v.state 3024 case 1: 3025 return &v.sizeCache 3026 case 2: 3027 return &v.unknownFields 3028 default: 3029 return nil 3030 } 3031 } 3032 file_google_cloud_asset_v1_assets_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 3033 switch v := v.(*IamPolicyAnalysisResult_Resource); i { 3034 case 0: 3035 return &v.state 3036 case 1: 3037 return &v.sizeCache 3038 case 2: 3039 return &v.unknownFields 3040 default: 3041 return nil 3042 } 3043 } 3044 file_google_cloud_asset_v1_assets_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 3045 switch v := v.(*IamPolicyAnalysisResult_Access); i { 3046 case 0: 3047 return &v.state 3048 case 1: 3049 return &v.sizeCache 3050 case 2: 3051 return &v.unknownFields 3052 default: 3053 return nil 3054 } 3055 } 3056 file_google_cloud_asset_v1_assets_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 3057 switch v := v.(*IamPolicyAnalysisResult_Identity); i { 3058 case 0: 3059 return &v.state 3060 case 1: 3061 return &v.sizeCache 3062 case 2: 3063 return &v.unknownFields 3064 default: 3065 return nil 3066 } 3067 } 3068 file_google_cloud_asset_v1_assets_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 3069 switch v := v.(*IamPolicyAnalysisResult_Edge); i { 3070 case 0: 3071 return &v.state 3072 case 1: 3073 return &v.sizeCache 3074 case 2: 3075 return &v.unknownFields 3076 default: 3077 return nil 3078 } 3079 } 3080 file_google_cloud_asset_v1_assets_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 3081 switch v := v.(*IamPolicyAnalysisResult_AccessControlList); i { 3082 case 0: 3083 return &v.state 3084 case 1: 3085 return &v.sizeCache 3086 case 2: 3087 return &v.unknownFields 3088 default: 3089 return nil 3090 } 3091 } 3092 file_google_cloud_asset_v1_assets_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 3093 switch v := v.(*IamPolicyAnalysisResult_IdentityList); i { 3094 case 0: 3095 return &v.state 3096 case 1: 3097 return &v.sizeCache 3098 case 2: 3099 return &v.unknownFields 3100 default: 3101 return nil 3102 } 3103 } 3104 } 3105 file_google_cloud_asset_v1_assets_proto_msgTypes[2].OneofWrappers = []interface{}{ 3106 (*Asset_AccessPolicy)(nil), 3107 (*Asset_AccessLevel)(nil), 3108 (*Asset_ServicePerimeter)(nil), 3109 } 3110 file_google_cloud_asset_v1_assets_proto_msgTypes[19].OneofWrappers = []interface{}{ 3111 (*IamPolicyAnalysisResult_Access_Role)(nil), 3112 (*IamPolicyAnalysisResult_Access_Permission)(nil), 3113 } 3114 type x struct{} 3115 out := protoimpl.TypeBuilder{ 3116 File: protoimpl.DescBuilder{ 3117 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 3118 RawDescriptor: file_google_cloud_asset_v1_assets_proto_rawDesc, 3119 NumEnums: 2, 3120 NumMessages: 24, 3121 NumExtensions: 0, 3122 NumServices: 0, 3123 }, 3124 GoTypes: file_google_cloud_asset_v1_assets_proto_goTypes, 3125 DependencyIndexes: file_google_cloud_asset_v1_assets_proto_depIdxs, 3126 EnumInfos: file_google_cloud_asset_v1_assets_proto_enumTypes, 3127 MessageInfos: file_google_cloud_asset_v1_assets_proto_msgTypes, 3128 }.Build() 3129 File_google_cloud_asset_v1_assets_proto = out.File 3130 file_google_cloud_asset_v1_assets_proto_rawDesc = nil 3131 file_google_cloud_asset_v1_assets_proto_goTypes = nil 3132 file_google_cloud_asset_v1_assets_proto_depIdxs = nil 3133} 3134