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/asset_service.proto 20 21package asset 22 23import ( 24 context "context" 25 reflect "reflect" 26 sync "sync" 27 28 _ "google.golang.org/genproto/googleapis/api/annotations" 29 longrunning "google.golang.org/genproto/googleapis/longrunning" 30 status "google.golang.org/genproto/googleapis/rpc/status" 31 expr "google.golang.org/genproto/googleapis/type/expr" 32 grpc "google.golang.org/grpc" 33 codes "google.golang.org/grpc/codes" 34 status1 "google.golang.org/grpc/status" 35 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 36 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 37 durationpb "google.golang.org/protobuf/types/known/durationpb" 38 emptypb "google.golang.org/protobuf/types/known/emptypb" 39 fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 40 _ "google.golang.org/protobuf/types/known/structpb" 41 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 42) 43 44const ( 45 // Verify that this generated code is sufficiently up-to-date. 46 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 47 // Verify that runtime/protoimpl is sufficiently up-to-date. 48 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 49) 50 51// Asset content type. 52type ContentType int32 53 54const ( 55 // Unspecified content type. 56 ContentType_CONTENT_TYPE_UNSPECIFIED ContentType = 0 57 // Resource metadata. 58 ContentType_RESOURCE ContentType = 1 59 // The actual IAM policy set on a resource. 60 ContentType_IAM_POLICY ContentType = 2 61 // The Cloud Organization Policy set on an asset. 62 ContentType_ORG_POLICY ContentType = 4 63 // The Cloud Access context manager Policy set on an asset. 64 ContentType_ACCESS_POLICY ContentType = 5 65 // The runtime OS Inventory information. 66 ContentType_OS_INVENTORY ContentType = 6 67 // The related resources. 68 ContentType_RELATIONSHIP ContentType = 7 69) 70 71// Enum value maps for ContentType. 72var ( 73 ContentType_name = map[int32]string{ 74 0: "CONTENT_TYPE_UNSPECIFIED", 75 1: "RESOURCE", 76 2: "IAM_POLICY", 77 4: "ORG_POLICY", 78 5: "ACCESS_POLICY", 79 6: "OS_INVENTORY", 80 7: "RELATIONSHIP", 81 } 82 ContentType_value = map[string]int32{ 83 "CONTENT_TYPE_UNSPECIFIED": 0, 84 "RESOURCE": 1, 85 "IAM_POLICY": 2, 86 "ORG_POLICY": 4, 87 "ACCESS_POLICY": 5, 88 "OS_INVENTORY": 6, 89 "RELATIONSHIP": 7, 90 } 91) 92 93func (x ContentType) Enum() *ContentType { 94 p := new(ContentType) 95 *p = x 96 return p 97} 98 99func (x ContentType) String() string { 100 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 101} 102 103func (ContentType) Descriptor() protoreflect.EnumDescriptor { 104 return file_google_cloud_asset_v1_asset_service_proto_enumTypes[0].Descriptor() 105} 106 107func (ContentType) Type() protoreflect.EnumType { 108 return &file_google_cloud_asset_v1_asset_service_proto_enumTypes[0] 109} 110 111func (x ContentType) Number() protoreflect.EnumNumber { 112 return protoreflect.EnumNumber(x) 113} 114 115// Deprecated: Use ContentType.Descriptor instead. 116func (ContentType) EnumDescriptor() ([]byte, []int) { 117 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{0} 118} 119 120// This enum is used to determine the partition key column when exporting 121// assets to BigQuery partitioned table(s). Note that, if the partition key is 122// a timestamp column, the actual partition is based on its date value 123// (expressed in UTC. see details in 124// https://cloud.google.com/bigquery/docs/partitioned-tables#date_timestamp_partitioned_tables). 125type PartitionSpec_PartitionKey int32 126 127const ( 128 // Unspecified partition key. If used, it means using non-partitioned table. 129 PartitionSpec_PARTITION_KEY_UNSPECIFIED PartitionSpec_PartitionKey = 0 130 // The time when the snapshot is taken. If specified as partition key, the 131 // result table(s) is partitoned by the additional timestamp column, 132 // readTime. If [read_time] in ExportAssetsRequest is specified, the 133 // readTime column's value will be the same as it. Otherwise, its value will 134 // be the current time that is used to take the snapshot. 135 PartitionSpec_READ_TIME PartitionSpec_PartitionKey = 1 136 // The time when the request is received and started to be processed. If 137 // specified as partition key, the result table(s) is partitoned by the 138 // requestTime column, an additional timestamp column representing when the 139 // request was received. 140 PartitionSpec_REQUEST_TIME PartitionSpec_PartitionKey = 2 141) 142 143// Enum value maps for PartitionSpec_PartitionKey. 144var ( 145 PartitionSpec_PartitionKey_name = map[int32]string{ 146 0: "PARTITION_KEY_UNSPECIFIED", 147 1: "READ_TIME", 148 2: "REQUEST_TIME", 149 } 150 PartitionSpec_PartitionKey_value = map[string]int32{ 151 "PARTITION_KEY_UNSPECIFIED": 0, 152 "READ_TIME": 1, 153 "REQUEST_TIME": 2, 154 } 155) 156 157func (x PartitionSpec_PartitionKey) Enum() *PartitionSpec_PartitionKey { 158 p := new(PartitionSpec_PartitionKey) 159 *p = x 160 return p 161} 162 163func (x PartitionSpec_PartitionKey) String() string { 164 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 165} 166 167func (PartitionSpec_PartitionKey) Descriptor() protoreflect.EnumDescriptor { 168 return file_google_cloud_asset_v1_asset_service_proto_enumTypes[1].Descriptor() 169} 170 171func (PartitionSpec_PartitionKey) Type() protoreflect.EnumType { 172 return &file_google_cloud_asset_v1_asset_service_proto_enumTypes[1] 173} 174 175func (x PartitionSpec_PartitionKey) Number() protoreflect.EnumNumber { 176 return protoreflect.EnumNumber(x) 177} 178 179// Deprecated: Use PartitionSpec_PartitionKey.Descriptor instead. 180func (PartitionSpec_PartitionKey) EnumDescriptor() ([]byte, []int) { 181 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{18, 0} 182} 183 184// This enum determines the partition key column for the bigquery tables. 185// Partitioning can improve query performance and reduce query cost by 186// filtering partitions. Refer to 187// https://cloud.google.com/bigquery/docs/partitioned-tables for details. 188type IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey int32 189 190const ( 191 // Unspecified partition key. Tables won't be partitioned using this 192 // option. 193 IamPolicyAnalysisOutputConfig_BigQueryDestination_PARTITION_KEY_UNSPECIFIED IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey = 0 194 // The time when the request is received. If specified as partition key, 195 // the result table(s) is partitoned by the RequestTime column, an 196 // additional timestamp column representing when the request was received. 197 IamPolicyAnalysisOutputConfig_BigQueryDestination_REQUEST_TIME IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey = 1 198) 199 200// Enum value maps for IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey. 201var ( 202 IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey_name = map[int32]string{ 203 0: "PARTITION_KEY_UNSPECIFIED", 204 1: "REQUEST_TIME", 205 } 206 IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey_value = map[string]int32{ 207 "PARTITION_KEY_UNSPECIFIED": 0, 208 "REQUEST_TIME": 1, 209 } 210) 211 212func (x IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey) Enum() *IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey { 213 p := new(IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey) 214 *p = x 215 return p 216} 217 218func (x IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey) String() string { 219 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 220} 221 222func (IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey) Descriptor() protoreflect.EnumDescriptor { 223 return file_google_cloud_asset_v1_asset_service_proto_enumTypes[2].Descriptor() 224} 225 226func (IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey) Type() protoreflect.EnumType { 227 return &file_google_cloud_asset_v1_asset_service_proto_enumTypes[2] 228} 229 230func (x IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey) Number() protoreflect.EnumNumber { 231 return protoreflect.EnumNumber(x) 232} 233 234// Deprecated: Use IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey.Descriptor instead. 235func (IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey) EnumDescriptor() ([]byte, []int) { 236 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{29, 1, 0} 237} 238 239// View enum for supporting partial analysis responses. 240type AnalyzeMoveRequest_AnalysisView int32 241 242const ( 243 // The default/unset value. 244 // The API will default to the FULL view. 245 AnalyzeMoveRequest_ANALYSIS_VIEW_UNSPECIFIED AnalyzeMoveRequest_AnalysisView = 0 246 // Full analysis including all level of impacts of the specified resource 247 // move. 248 AnalyzeMoveRequest_FULL AnalyzeMoveRequest_AnalysisView = 1 249 // Basic analysis only including blockers which will prevent the specified 250 // resource move at runtime. 251 AnalyzeMoveRequest_BASIC AnalyzeMoveRequest_AnalysisView = 2 252) 253 254// Enum value maps for AnalyzeMoveRequest_AnalysisView. 255var ( 256 AnalyzeMoveRequest_AnalysisView_name = map[int32]string{ 257 0: "ANALYSIS_VIEW_UNSPECIFIED", 258 1: "FULL", 259 2: "BASIC", 260 } 261 AnalyzeMoveRequest_AnalysisView_value = map[string]int32{ 262 "ANALYSIS_VIEW_UNSPECIFIED": 0, 263 "FULL": 1, 264 "BASIC": 2, 265 } 266) 267 268func (x AnalyzeMoveRequest_AnalysisView) Enum() *AnalyzeMoveRequest_AnalysisView { 269 p := new(AnalyzeMoveRequest_AnalysisView) 270 *p = x 271 return p 272} 273 274func (x AnalyzeMoveRequest_AnalysisView) String() string { 275 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 276} 277 278func (AnalyzeMoveRequest_AnalysisView) Descriptor() protoreflect.EnumDescriptor { 279 return file_google_cloud_asset_v1_asset_service_proto_enumTypes[3].Descriptor() 280} 281 282func (AnalyzeMoveRequest_AnalysisView) Type() protoreflect.EnumType { 283 return &file_google_cloud_asset_v1_asset_service_proto_enumTypes[3] 284} 285 286func (x AnalyzeMoveRequest_AnalysisView) Number() protoreflect.EnumNumber { 287 return protoreflect.EnumNumber(x) 288} 289 290// Deprecated: Use AnalyzeMoveRequest_AnalysisView.Descriptor instead. 291func (AnalyzeMoveRequest_AnalysisView) EnumDescriptor() ([]byte, []int) { 292 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{32, 0} 293} 294 295// Represents the metadata of the longrunning operation for the 296// AnalyzeIamPolicyLongrunning rpc. 297type AnalyzeIamPolicyLongrunningMetadata struct { 298 state protoimpl.MessageState 299 sizeCache protoimpl.SizeCache 300 unknownFields protoimpl.UnknownFields 301 302 // Output only. The time the operation was created. 303 CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 304} 305 306func (x *AnalyzeIamPolicyLongrunningMetadata) Reset() { 307 *x = AnalyzeIamPolicyLongrunningMetadata{} 308 if protoimpl.UnsafeEnabled { 309 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[0] 310 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 311 ms.StoreMessageInfo(mi) 312 } 313} 314 315func (x *AnalyzeIamPolicyLongrunningMetadata) String() string { 316 return protoimpl.X.MessageStringOf(x) 317} 318 319func (*AnalyzeIamPolicyLongrunningMetadata) ProtoMessage() {} 320 321func (x *AnalyzeIamPolicyLongrunningMetadata) ProtoReflect() protoreflect.Message { 322 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[0] 323 if protoimpl.UnsafeEnabled && x != nil { 324 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 325 if ms.LoadMessageInfo() == nil { 326 ms.StoreMessageInfo(mi) 327 } 328 return ms 329 } 330 return mi.MessageOf(x) 331} 332 333// Deprecated: Use AnalyzeIamPolicyLongrunningMetadata.ProtoReflect.Descriptor instead. 334func (*AnalyzeIamPolicyLongrunningMetadata) Descriptor() ([]byte, []int) { 335 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{0} 336} 337 338func (x *AnalyzeIamPolicyLongrunningMetadata) GetCreateTime() *timestamppb.Timestamp { 339 if x != nil { 340 return x.CreateTime 341 } 342 return nil 343} 344 345// Export asset request. 346type ExportAssetsRequest struct { 347 state protoimpl.MessageState 348 sizeCache protoimpl.SizeCache 349 unknownFields protoimpl.UnknownFields 350 351 // Required. The relative name of the root asset. This can only be an 352 // organization number (such as "organizations/123"), a project ID (such as 353 // "projects/my-project-id"), or a project number (such as "projects/12345"), 354 // or a folder number (such as "folders/123"). 355 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 356 // Timestamp to take an asset snapshot. This can only be set to a timestamp 357 // between the current time and the current time minus 35 days (inclusive). 358 // If not specified, the current time will be used. Due to delays in resource 359 // data collection and indexing, there is a volatile window during which 360 // running the same query may get different results. 361 ReadTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"` 362 // A list of asset types to take a snapshot for. For example: 363 // "compute.googleapis.com/Disk". 364 // 365 // Regular expressions are also supported. For example: 366 // 367 // * "compute.googleapis.com.*" snapshots resources whose asset type starts 368 // with "compute.googleapis.com". 369 // * ".*Instance" snapshots resources whose asset type ends with "Instance". 370 // * ".*Instance.*" snapshots resources whose asset type contains "Instance". 371 // 372 // See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported 373 // regular expression syntax. If the regular expression does not match any 374 // supported asset type, an INVALID_ARGUMENT error will be returned. 375 // 376 // If specified, only matching assets will be returned, otherwise, it will 377 // snapshot all asset types. See [Introduction to Cloud Asset 378 // Inventory](https://cloud.google.com/asset-inventory/docs/overview) 379 // for all supported asset types. 380 AssetTypes []string `protobuf:"bytes,3,rep,name=asset_types,json=assetTypes,proto3" json:"asset_types,omitempty"` 381 // Asset content type. If not specified, no content but the asset name will be 382 // returned. 383 ContentType ContentType `protobuf:"varint,4,opt,name=content_type,json=contentType,proto3,enum=google.cloud.asset.v1.ContentType" json:"content_type,omitempty"` 384 // Required. Output configuration indicating where the results will be output to. 385 OutputConfig *OutputConfig `protobuf:"bytes,5,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 386 // A list of relationship types to export, for example: 387 // `INSTANCE_TO_INSTANCEGROUP`. This field should only be specified if 388 // content_type=RELATIONSHIP. 389 // * If specified: 390 // it snapshots specified relationships. It returns an error if 391 // any of the [relationship_types] doesn't belong to the supported 392 // relationship types of the [asset_types] or if any of the [asset_types] 393 // doesn't belong to the source types of the [relationship_types]. 394 // * Otherwise: 395 // it snapshots the supported relationships for all [asset_types] or returns 396 // an error if any of the [asset_types] has no relationship support. 397 // An unspecified asset types field means all supported asset_types. 398 // See [Introduction to Cloud Asset 399 // Inventory](https://cloud.google.com/asset-inventory/docs/overview) for all 400 // supported asset types and relationship types. 401 RelationshipTypes []string `protobuf:"bytes,6,rep,name=relationship_types,json=relationshipTypes,proto3" json:"relationship_types,omitempty"` 402} 403 404func (x *ExportAssetsRequest) Reset() { 405 *x = ExportAssetsRequest{} 406 if protoimpl.UnsafeEnabled { 407 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[1] 408 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 409 ms.StoreMessageInfo(mi) 410 } 411} 412 413func (x *ExportAssetsRequest) String() string { 414 return protoimpl.X.MessageStringOf(x) 415} 416 417func (*ExportAssetsRequest) ProtoMessage() {} 418 419func (x *ExportAssetsRequest) ProtoReflect() protoreflect.Message { 420 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[1] 421 if protoimpl.UnsafeEnabled && x != nil { 422 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 423 if ms.LoadMessageInfo() == nil { 424 ms.StoreMessageInfo(mi) 425 } 426 return ms 427 } 428 return mi.MessageOf(x) 429} 430 431// Deprecated: Use ExportAssetsRequest.ProtoReflect.Descriptor instead. 432func (*ExportAssetsRequest) Descriptor() ([]byte, []int) { 433 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{1} 434} 435 436func (x *ExportAssetsRequest) GetParent() string { 437 if x != nil { 438 return x.Parent 439 } 440 return "" 441} 442 443func (x *ExportAssetsRequest) GetReadTime() *timestamppb.Timestamp { 444 if x != nil { 445 return x.ReadTime 446 } 447 return nil 448} 449 450func (x *ExportAssetsRequest) GetAssetTypes() []string { 451 if x != nil { 452 return x.AssetTypes 453 } 454 return nil 455} 456 457func (x *ExportAssetsRequest) GetContentType() ContentType { 458 if x != nil { 459 return x.ContentType 460 } 461 return ContentType_CONTENT_TYPE_UNSPECIFIED 462} 463 464func (x *ExportAssetsRequest) GetOutputConfig() *OutputConfig { 465 if x != nil { 466 return x.OutputConfig 467 } 468 return nil 469} 470 471func (x *ExportAssetsRequest) GetRelationshipTypes() []string { 472 if x != nil { 473 return x.RelationshipTypes 474 } 475 return nil 476} 477 478// The export asset response. This message is returned by the 479// [google.longrunning.Operations.GetOperation][google.longrunning.Operations.GetOperation] method in the returned 480// [google.longrunning.Operation.response][google.longrunning.Operation.response] field. 481type ExportAssetsResponse struct { 482 state protoimpl.MessageState 483 sizeCache protoimpl.SizeCache 484 unknownFields protoimpl.UnknownFields 485 486 // Time the snapshot was taken. 487 ReadTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"` 488 // Output configuration indicating where the results were output to. 489 OutputConfig *OutputConfig `protobuf:"bytes,2,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 490 // Output result indicating where the assets were exported to. For example, a 491 // set of actual Google Cloud Storage object uris where the assets are 492 // exported to. The uris can be different from what [output_config] has 493 // specified, as the service will split the output object into multiple ones 494 // once it exceeds a single Google Cloud Storage object limit. 495 OutputResult *OutputResult `protobuf:"bytes,3,opt,name=output_result,json=outputResult,proto3" json:"output_result,omitempty"` 496} 497 498func (x *ExportAssetsResponse) Reset() { 499 *x = ExportAssetsResponse{} 500 if protoimpl.UnsafeEnabled { 501 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[2] 502 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 503 ms.StoreMessageInfo(mi) 504 } 505} 506 507func (x *ExportAssetsResponse) String() string { 508 return protoimpl.X.MessageStringOf(x) 509} 510 511func (*ExportAssetsResponse) ProtoMessage() {} 512 513func (x *ExportAssetsResponse) ProtoReflect() protoreflect.Message { 514 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[2] 515 if protoimpl.UnsafeEnabled && x != nil { 516 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 517 if ms.LoadMessageInfo() == nil { 518 ms.StoreMessageInfo(mi) 519 } 520 return ms 521 } 522 return mi.MessageOf(x) 523} 524 525// Deprecated: Use ExportAssetsResponse.ProtoReflect.Descriptor instead. 526func (*ExportAssetsResponse) Descriptor() ([]byte, []int) { 527 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{2} 528} 529 530func (x *ExportAssetsResponse) GetReadTime() *timestamppb.Timestamp { 531 if x != nil { 532 return x.ReadTime 533 } 534 return nil 535} 536 537func (x *ExportAssetsResponse) GetOutputConfig() *OutputConfig { 538 if x != nil { 539 return x.OutputConfig 540 } 541 return nil 542} 543 544func (x *ExportAssetsResponse) GetOutputResult() *OutputResult { 545 if x != nil { 546 return x.OutputResult 547 } 548 return nil 549} 550 551// ListAssets request. 552type ListAssetsRequest struct { 553 state protoimpl.MessageState 554 sizeCache protoimpl.SizeCache 555 unknownFields protoimpl.UnknownFields 556 557 // Required. Name of the organization or project the assets belong to. Format: 558 // "organizations/[organization-number]" (such as "organizations/123"), 559 // "projects/[project-id]" (such as "projects/my-project-id"), or 560 // "projects/[project-number]" (such as "projects/12345"). 561 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 562 // Timestamp to take an asset snapshot. This can only be set to a timestamp 563 // between the current time and the current time minus 35 days (inclusive). 564 // If not specified, the current time will be used. Due to delays in resource 565 // data collection and indexing, there is a volatile window during which 566 // running the same query may get different results. 567 ReadTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"` 568 // A list of asset types to take a snapshot for. For example: 569 // "compute.googleapis.com/Disk". 570 // 571 // Regular expression is also supported. For example: 572 // 573 // * "compute.googleapis.com.*" snapshots resources whose asset type starts 574 // with "compute.googleapis.com". 575 // * ".*Instance" snapshots resources whose asset type ends with "Instance". 576 // * ".*Instance.*" snapshots resources whose asset type contains "Instance". 577 // 578 // See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported 579 // regular expression syntax. If the regular expression does not match any 580 // supported asset type, an INVALID_ARGUMENT error will be returned. 581 // 582 // If specified, only matching assets will be returned, otherwise, it will 583 // snapshot all asset types. See [Introduction to Cloud Asset 584 // Inventory](https://cloud.google.com/asset-inventory/docs/overview) 585 // for all supported asset types. 586 AssetTypes []string `protobuf:"bytes,3,rep,name=asset_types,json=assetTypes,proto3" json:"asset_types,omitempty"` 587 // Asset content type. If not specified, no content but the asset name will 588 // be returned. 589 ContentType ContentType `protobuf:"varint,4,opt,name=content_type,json=contentType,proto3,enum=google.cloud.asset.v1.ContentType" json:"content_type,omitempty"` 590 // The maximum number of assets to be returned in a single response. Default 591 // is 100, minimum is 1, and maximum is 1000. 592 PageSize int32 `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 593 // The `next_page_token` returned from the previous `ListAssetsResponse`, or 594 // unspecified for the first `ListAssetsRequest`. It is a continuation of a 595 // prior `ListAssets` call, and the API should return the next page of assets. 596 PageToken string `protobuf:"bytes,6,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 597 // A list of relationship types to output, for example: 598 // `INSTANCE_TO_INSTANCEGROUP`. This field should only be specified if 599 // content_type=RELATIONSHIP. 600 // * If specified: 601 // it snapshots specified relationships. It returns an error if 602 // any of the [relationship_types] doesn't belong to the supported 603 // relationship types of the [asset_types] or if any of the [asset_types] 604 // doesn't belong to the source types of the [relationship_types]. 605 // * Otherwise: 606 // it snapshots the supported relationships for all [asset_types] or returns 607 // an error if any of the [asset_types] has no relationship support. 608 // An unspecified asset types field means all supported asset_types. 609 // See [Introduction to Cloud Asset 610 // Inventory](https://cloud.google.com/asset-inventory/docs/overview) 611 // for all supported asset types and relationship types. 612 RelationshipTypes []string `protobuf:"bytes,7,rep,name=relationship_types,json=relationshipTypes,proto3" json:"relationship_types,omitempty"` 613} 614 615func (x *ListAssetsRequest) Reset() { 616 *x = ListAssetsRequest{} 617 if protoimpl.UnsafeEnabled { 618 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[3] 619 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 620 ms.StoreMessageInfo(mi) 621 } 622} 623 624func (x *ListAssetsRequest) String() string { 625 return protoimpl.X.MessageStringOf(x) 626} 627 628func (*ListAssetsRequest) ProtoMessage() {} 629 630func (x *ListAssetsRequest) ProtoReflect() protoreflect.Message { 631 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[3] 632 if protoimpl.UnsafeEnabled && x != nil { 633 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 634 if ms.LoadMessageInfo() == nil { 635 ms.StoreMessageInfo(mi) 636 } 637 return ms 638 } 639 return mi.MessageOf(x) 640} 641 642// Deprecated: Use ListAssetsRequest.ProtoReflect.Descriptor instead. 643func (*ListAssetsRequest) Descriptor() ([]byte, []int) { 644 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{3} 645} 646 647func (x *ListAssetsRequest) GetParent() string { 648 if x != nil { 649 return x.Parent 650 } 651 return "" 652} 653 654func (x *ListAssetsRequest) GetReadTime() *timestamppb.Timestamp { 655 if x != nil { 656 return x.ReadTime 657 } 658 return nil 659} 660 661func (x *ListAssetsRequest) GetAssetTypes() []string { 662 if x != nil { 663 return x.AssetTypes 664 } 665 return nil 666} 667 668func (x *ListAssetsRequest) GetContentType() ContentType { 669 if x != nil { 670 return x.ContentType 671 } 672 return ContentType_CONTENT_TYPE_UNSPECIFIED 673} 674 675func (x *ListAssetsRequest) GetPageSize() int32 { 676 if x != nil { 677 return x.PageSize 678 } 679 return 0 680} 681 682func (x *ListAssetsRequest) GetPageToken() string { 683 if x != nil { 684 return x.PageToken 685 } 686 return "" 687} 688 689func (x *ListAssetsRequest) GetRelationshipTypes() []string { 690 if x != nil { 691 return x.RelationshipTypes 692 } 693 return nil 694} 695 696// ListAssets response. 697type ListAssetsResponse struct { 698 state protoimpl.MessageState 699 sizeCache protoimpl.SizeCache 700 unknownFields protoimpl.UnknownFields 701 702 // Time the snapshot was taken. 703 ReadTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"` 704 // Assets. 705 Assets []*Asset `protobuf:"bytes,2,rep,name=assets,proto3" json:"assets,omitempty"` 706 // Token to retrieve the next page of results. It expires 72 hours after the 707 // page token for the first page is generated. Set to empty if there are no 708 // remaining results. 709 NextPageToken string `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 710} 711 712func (x *ListAssetsResponse) Reset() { 713 *x = ListAssetsResponse{} 714 if protoimpl.UnsafeEnabled { 715 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[4] 716 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 717 ms.StoreMessageInfo(mi) 718 } 719} 720 721func (x *ListAssetsResponse) String() string { 722 return protoimpl.X.MessageStringOf(x) 723} 724 725func (*ListAssetsResponse) ProtoMessage() {} 726 727func (x *ListAssetsResponse) ProtoReflect() protoreflect.Message { 728 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[4] 729 if protoimpl.UnsafeEnabled && x != nil { 730 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 731 if ms.LoadMessageInfo() == nil { 732 ms.StoreMessageInfo(mi) 733 } 734 return ms 735 } 736 return mi.MessageOf(x) 737} 738 739// Deprecated: Use ListAssetsResponse.ProtoReflect.Descriptor instead. 740func (*ListAssetsResponse) Descriptor() ([]byte, []int) { 741 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{4} 742} 743 744func (x *ListAssetsResponse) GetReadTime() *timestamppb.Timestamp { 745 if x != nil { 746 return x.ReadTime 747 } 748 return nil 749} 750 751func (x *ListAssetsResponse) GetAssets() []*Asset { 752 if x != nil { 753 return x.Assets 754 } 755 return nil 756} 757 758func (x *ListAssetsResponse) GetNextPageToken() string { 759 if x != nil { 760 return x.NextPageToken 761 } 762 return "" 763} 764 765// Batch get assets history request. 766type BatchGetAssetsHistoryRequest struct { 767 state protoimpl.MessageState 768 sizeCache protoimpl.SizeCache 769 unknownFields protoimpl.UnknownFields 770 771 // Required. The relative name of the root asset. It can only be an 772 // organization number (such as "organizations/123"), a project ID (such as 773 // "projects/my-project-id")", or a project number (such as "projects/12345"). 774 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 775 // A list of the full names of the assets. 776 // See: https://cloud.google.com/asset-inventory/docs/resource-name-format 777 // Example: 778 // 779 // `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`. 780 // 781 // The request becomes a no-op if the asset name list is empty, and the max 782 // size of the asset name list is 100 in one request. 783 AssetNames []string `protobuf:"bytes,2,rep,name=asset_names,json=assetNames,proto3" json:"asset_names,omitempty"` 784 // Optional. The content type. 785 ContentType ContentType `protobuf:"varint,3,opt,name=content_type,json=contentType,proto3,enum=google.cloud.asset.v1.ContentType" json:"content_type,omitempty"` 786 // Optional. The time window for the asset history. Both start_time and 787 // end_time are optional and if set, it must be after the current time minus 788 // 35 days. If end_time is not set, it is default to current timestamp. 789 // If start_time is not set, the snapshot of the assets at end_time will be 790 // returned. The returned results contain all temporal assets whose time 791 // window overlap with read_time_window. 792 ReadTimeWindow *TimeWindow `protobuf:"bytes,4,opt,name=read_time_window,json=readTimeWindow,proto3" json:"read_time_window,omitempty"` 793 // Optional. A list of relationship types to output, for example: 794 // `INSTANCE_TO_INSTANCEGROUP`. This field should only be specified if 795 // content_type=RELATIONSHIP. 796 // * If specified: 797 // it outputs specified relationships' history on the [asset_names]. It 798 // returns an error if any of the [relationship_types] doesn't belong to the 799 // supported relationship types of the [asset_names] or if any of the 800 // [asset_names]'s types doesn't belong to the source types of the 801 // [relationship_types]. 802 // * Otherwise: 803 // it outputs the supported relationships' history on the [asset_names] or 804 // returns an error if any of the [asset_names]'s types has no relationship 805 // support. 806 // See [Introduction to Cloud Asset 807 // Inventory](https://cloud.google.com/asset-inventory/docs/overview) for all 808 // supported asset types and relationship types. 809 RelationshipTypes []string `protobuf:"bytes,5,rep,name=relationship_types,json=relationshipTypes,proto3" json:"relationship_types,omitempty"` 810} 811 812func (x *BatchGetAssetsHistoryRequest) Reset() { 813 *x = BatchGetAssetsHistoryRequest{} 814 if protoimpl.UnsafeEnabled { 815 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[5] 816 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 817 ms.StoreMessageInfo(mi) 818 } 819} 820 821func (x *BatchGetAssetsHistoryRequest) String() string { 822 return protoimpl.X.MessageStringOf(x) 823} 824 825func (*BatchGetAssetsHistoryRequest) ProtoMessage() {} 826 827func (x *BatchGetAssetsHistoryRequest) ProtoReflect() protoreflect.Message { 828 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[5] 829 if protoimpl.UnsafeEnabled && x != nil { 830 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 831 if ms.LoadMessageInfo() == nil { 832 ms.StoreMessageInfo(mi) 833 } 834 return ms 835 } 836 return mi.MessageOf(x) 837} 838 839// Deprecated: Use BatchGetAssetsHistoryRequest.ProtoReflect.Descriptor instead. 840func (*BatchGetAssetsHistoryRequest) Descriptor() ([]byte, []int) { 841 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{5} 842} 843 844func (x *BatchGetAssetsHistoryRequest) GetParent() string { 845 if x != nil { 846 return x.Parent 847 } 848 return "" 849} 850 851func (x *BatchGetAssetsHistoryRequest) GetAssetNames() []string { 852 if x != nil { 853 return x.AssetNames 854 } 855 return nil 856} 857 858func (x *BatchGetAssetsHistoryRequest) GetContentType() ContentType { 859 if x != nil { 860 return x.ContentType 861 } 862 return ContentType_CONTENT_TYPE_UNSPECIFIED 863} 864 865func (x *BatchGetAssetsHistoryRequest) GetReadTimeWindow() *TimeWindow { 866 if x != nil { 867 return x.ReadTimeWindow 868 } 869 return nil 870} 871 872func (x *BatchGetAssetsHistoryRequest) GetRelationshipTypes() []string { 873 if x != nil { 874 return x.RelationshipTypes 875 } 876 return nil 877} 878 879// Batch get assets history response. 880type BatchGetAssetsHistoryResponse struct { 881 state protoimpl.MessageState 882 sizeCache protoimpl.SizeCache 883 unknownFields protoimpl.UnknownFields 884 885 // A list of assets with valid time windows. 886 Assets []*TemporalAsset `protobuf:"bytes,1,rep,name=assets,proto3" json:"assets,omitempty"` 887} 888 889func (x *BatchGetAssetsHistoryResponse) Reset() { 890 *x = BatchGetAssetsHistoryResponse{} 891 if protoimpl.UnsafeEnabled { 892 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[6] 893 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 894 ms.StoreMessageInfo(mi) 895 } 896} 897 898func (x *BatchGetAssetsHistoryResponse) String() string { 899 return protoimpl.X.MessageStringOf(x) 900} 901 902func (*BatchGetAssetsHistoryResponse) ProtoMessage() {} 903 904func (x *BatchGetAssetsHistoryResponse) ProtoReflect() protoreflect.Message { 905 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[6] 906 if protoimpl.UnsafeEnabled && x != nil { 907 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 908 if ms.LoadMessageInfo() == nil { 909 ms.StoreMessageInfo(mi) 910 } 911 return ms 912 } 913 return mi.MessageOf(x) 914} 915 916// Deprecated: Use BatchGetAssetsHistoryResponse.ProtoReflect.Descriptor instead. 917func (*BatchGetAssetsHistoryResponse) Descriptor() ([]byte, []int) { 918 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{6} 919} 920 921func (x *BatchGetAssetsHistoryResponse) GetAssets() []*TemporalAsset { 922 if x != nil { 923 return x.Assets 924 } 925 return nil 926} 927 928// Create asset feed request. 929type CreateFeedRequest struct { 930 state protoimpl.MessageState 931 sizeCache protoimpl.SizeCache 932 unknownFields protoimpl.UnknownFields 933 934 // Required. The name of the project/folder/organization where this feed 935 // should be created in. It can only be an organization number (such as 936 // "organizations/123"), a folder number (such as "folders/123"), a project ID 937 // (such as "projects/my-project-id")", or a project number (such as 938 // "projects/12345"). 939 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 940 // Required. This is the client-assigned asset feed identifier and it needs to 941 // be unique under a specific parent project/folder/organization. 942 FeedId string `protobuf:"bytes,2,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"` 943 // Required. The feed details. The field `name` must be empty and it will be generated 944 // in the format of: 945 // projects/project_number/feeds/feed_id 946 // folders/folder_number/feeds/feed_id 947 // organizations/organization_number/feeds/feed_id 948 Feed *Feed `protobuf:"bytes,3,opt,name=feed,proto3" json:"feed,omitempty"` 949} 950 951func (x *CreateFeedRequest) Reset() { 952 *x = CreateFeedRequest{} 953 if protoimpl.UnsafeEnabled { 954 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[7] 955 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 956 ms.StoreMessageInfo(mi) 957 } 958} 959 960func (x *CreateFeedRequest) String() string { 961 return protoimpl.X.MessageStringOf(x) 962} 963 964func (*CreateFeedRequest) ProtoMessage() {} 965 966func (x *CreateFeedRequest) ProtoReflect() protoreflect.Message { 967 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[7] 968 if protoimpl.UnsafeEnabled && x != nil { 969 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 970 if ms.LoadMessageInfo() == nil { 971 ms.StoreMessageInfo(mi) 972 } 973 return ms 974 } 975 return mi.MessageOf(x) 976} 977 978// Deprecated: Use CreateFeedRequest.ProtoReflect.Descriptor instead. 979func (*CreateFeedRequest) Descriptor() ([]byte, []int) { 980 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{7} 981} 982 983func (x *CreateFeedRequest) GetParent() string { 984 if x != nil { 985 return x.Parent 986 } 987 return "" 988} 989 990func (x *CreateFeedRequest) GetFeedId() string { 991 if x != nil { 992 return x.FeedId 993 } 994 return "" 995} 996 997func (x *CreateFeedRequest) GetFeed() *Feed { 998 if x != nil { 999 return x.Feed 1000 } 1001 return nil 1002} 1003 1004// Get asset feed request. 1005type GetFeedRequest struct { 1006 state protoimpl.MessageState 1007 sizeCache protoimpl.SizeCache 1008 unknownFields protoimpl.UnknownFields 1009 1010 // Required. The name of the Feed and it must be in the format of: 1011 // projects/project_number/feeds/feed_id 1012 // folders/folder_number/feeds/feed_id 1013 // organizations/organization_number/feeds/feed_id 1014 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1015} 1016 1017func (x *GetFeedRequest) Reset() { 1018 *x = GetFeedRequest{} 1019 if protoimpl.UnsafeEnabled { 1020 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[8] 1021 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1022 ms.StoreMessageInfo(mi) 1023 } 1024} 1025 1026func (x *GetFeedRequest) String() string { 1027 return protoimpl.X.MessageStringOf(x) 1028} 1029 1030func (*GetFeedRequest) ProtoMessage() {} 1031 1032func (x *GetFeedRequest) ProtoReflect() protoreflect.Message { 1033 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[8] 1034 if protoimpl.UnsafeEnabled && x != nil { 1035 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1036 if ms.LoadMessageInfo() == nil { 1037 ms.StoreMessageInfo(mi) 1038 } 1039 return ms 1040 } 1041 return mi.MessageOf(x) 1042} 1043 1044// Deprecated: Use GetFeedRequest.ProtoReflect.Descriptor instead. 1045func (*GetFeedRequest) Descriptor() ([]byte, []int) { 1046 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{8} 1047} 1048 1049func (x *GetFeedRequest) GetName() string { 1050 if x != nil { 1051 return x.Name 1052 } 1053 return "" 1054} 1055 1056// List asset feeds request. 1057type ListFeedsRequest struct { 1058 state protoimpl.MessageState 1059 sizeCache protoimpl.SizeCache 1060 unknownFields protoimpl.UnknownFields 1061 1062 // Required. The parent project/folder/organization whose feeds are to be 1063 // listed. It can only be using project/folder/organization number (such as 1064 // "folders/12345")", or a project ID (such as "projects/my-project-id"). 1065 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 1066} 1067 1068func (x *ListFeedsRequest) Reset() { 1069 *x = ListFeedsRequest{} 1070 if protoimpl.UnsafeEnabled { 1071 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[9] 1072 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1073 ms.StoreMessageInfo(mi) 1074 } 1075} 1076 1077func (x *ListFeedsRequest) String() string { 1078 return protoimpl.X.MessageStringOf(x) 1079} 1080 1081func (*ListFeedsRequest) ProtoMessage() {} 1082 1083func (x *ListFeedsRequest) ProtoReflect() protoreflect.Message { 1084 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[9] 1085 if protoimpl.UnsafeEnabled && x != nil { 1086 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1087 if ms.LoadMessageInfo() == nil { 1088 ms.StoreMessageInfo(mi) 1089 } 1090 return ms 1091 } 1092 return mi.MessageOf(x) 1093} 1094 1095// Deprecated: Use ListFeedsRequest.ProtoReflect.Descriptor instead. 1096func (*ListFeedsRequest) Descriptor() ([]byte, []int) { 1097 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{9} 1098} 1099 1100func (x *ListFeedsRequest) GetParent() string { 1101 if x != nil { 1102 return x.Parent 1103 } 1104 return "" 1105} 1106 1107type ListFeedsResponse struct { 1108 state protoimpl.MessageState 1109 sizeCache protoimpl.SizeCache 1110 unknownFields protoimpl.UnknownFields 1111 1112 // A list of feeds. 1113 Feeds []*Feed `protobuf:"bytes,1,rep,name=feeds,proto3" json:"feeds,omitempty"` 1114} 1115 1116func (x *ListFeedsResponse) Reset() { 1117 *x = ListFeedsResponse{} 1118 if protoimpl.UnsafeEnabled { 1119 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[10] 1120 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1121 ms.StoreMessageInfo(mi) 1122 } 1123} 1124 1125func (x *ListFeedsResponse) String() string { 1126 return protoimpl.X.MessageStringOf(x) 1127} 1128 1129func (*ListFeedsResponse) ProtoMessage() {} 1130 1131func (x *ListFeedsResponse) ProtoReflect() protoreflect.Message { 1132 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[10] 1133 if protoimpl.UnsafeEnabled && x != nil { 1134 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1135 if ms.LoadMessageInfo() == nil { 1136 ms.StoreMessageInfo(mi) 1137 } 1138 return ms 1139 } 1140 return mi.MessageOf(x) 1141} 1142 1143// Deprecated: Use ListFeedsResponse.ProtoReflect.Descriptor instead. 1144func (*ListFeedsResponse) Descriptor() ([]byte, []int) { 1145 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{10} 1146} 1147 1148func (x *ListFeedsResponse) GetFeeds() []*Feed { 1149 if x != nil { 1150 return x.Feeds 1151 } 1152 return nil 1153} 1154 1155// Update asset feed request. 1156type UpdateFeedRequest struct { 1157 state protoimpl.MessageState 1158 sizeCache protoimpl.SizeCache 1159 unknownFields protoimpl.UnknownFields 1160 1161 // Required. The new values of feed details. It must match an existing feed and the 1162 // field `name` must be in the format of: 1163 // projects/project_number/feeds/feed_id or 1164 // folders/folder_number/feeds/feed_id or 1165 // organizations/organization_number/feeds/feed_id. 1166 Feed *Feed `protobuf:"bytes,1,opt,name=feed,proto3" json:"feed,omitempty"` 1167 // Required. Only updates the `feed` fields indicated by this mask. 1168 // The field mask must not be empty, and it must not contain fields that 1169 // are immutable or only set by the server. 1170 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 1171} 1172 1173func (x *UpdateFeedRequest) Reset() { 1174 *x = UpdateFeedRequest{} 1175 if protoimpl.UnsafeEnabled { 1176 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[11] 1177 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1178 ms.StoreMessageInfo(mi) 1179 } 1180} 1181 1182func (x *UpdateFeedRequest) String() string { 1183 return protoimpl.X.MessageStringOf(x) 1184} 1185 1186func (*UpdateFeedRequest) ProtoMessage() {} 1187 1188func (x *UpdateFeedRequest) ProtoReflect() protoreflect.Message { 1189 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[11] 1190 if protoimpl.UnsafeEnabled && x != nil { 1191 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1192 if ms.LoadMessageInfo() == nil { 1193 ms.StoreMessageInfo(mi) 1194 } 1195 return ms 1196 } 1197 return mi.MessageOf(x) 1198} 1199 1200// Deprecated: Use UpdateFeedRequest.ProtoReflect.Descriptor instead. 1201func (*UpdateFeedRequest) Descriptor() ([]byte, []int) { 1202 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{11} 1203} 1204 1205func (x *UpdateFeedRequest) GetFeed() *Feed { 1206 if x != nil { 1207 return x.Feed 1208 } 1209 return nil 1210} 1211 1212func (x *UpdateFeedRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 1213 if x != nil { 1214 return x.UpdateMask 1215 } 1216 return nil 1217} 1218 1219type DeleteFeedRequest struct { 1220 state protoimpl.MessageState 1221 sizeCache protoimpl.SizeCache 1222 unknownFields protoimpl.UnknownFields 1223 1224 // Required. The name of the feed and it must be in the format of: 1225 // projects/project_number/feeds/feed_id 1226 // folders/folder_number/feeds/feed_id 1227 // organizations/organization_number/feeds/feed_id 1228 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1229} 1230 1231func (x *DeleteFeedRequest) Reset() { 1232 *x = DeleteFeedRequest{} 1233 if protoimpl.UnsafeEnabled { 1234 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[12] 1235 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1236 ms.StoreMessageInfo(mi) 1237 } 1238} 1239 1240func (x *DeleteFeedRequest) String() string { 1241 return protoimpl.X.MessageStringOf(x) 1242} 1243 1244func (*DeleteFeedRequest) ProtoMessage() {} 1245 1246func (x *DeleteFeedRequest) ProtoReflect() protoreflect.Message { 1247 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[12] 1248 if protoimpl.UnsafeEnabled && x != nil { 1249 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1250 if ms.LoadMessageInfo() == nil { 1251 ms.StoreMessageInfo(mi) 1252 } 1253 return ms 1254 } 1255 return mi.MessageOf(x) 1256} 1257 1258// Deprecated: Use DeleteFeedRequest.ProtoReflect.Descriptor instead. 1259func (*DeleteFeedRequest) Descriptor() ([]byte, []int) { 1260 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{12} 1261} 1262 1263func (x *DeleteFeedRequest) GetName() string { 1264 if x != nil { 1265 return x.Name 1266 } 1267 return "" 1268} 1269 1270// Output configuration for export assets destination. 1271type OutputConfig struct { 1272 state protoimpl.MessageState 1273 sizeCache protoimpl.SizeCache 1274 unknownFields protoimpl.UnknownFields 1275 1276 // Asset export destination. 1277 // 1278 // Types that are assignable to Destination: 1279 // *OutputConfig_GcsDestination 1280 // *OutputConfig_BigqueryDestination 1281 Destination isOutputConfig_Destination `protobuf_oneof:"destination"` 1282} 1283 1284func (x *OutputConfig) Reset() { 1285 *x = OutputConfig{} 1286 if protoimpl.UnsafeEnabled { 1287 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[13] 1288 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1289 ms.StoreMessageInfo(mi) 1290 } 1291} 1292 1293func (x *OutputConfig) String() string { 1294 return protoimpl.X.MessageStringOf(x) 1295} 1296 1297func (*OutputConfig) ProtoMessage() {} 1298 1299func (x *OutputConfig) ProtoReflect() protoreflect.Message { 1300 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[13] 1301 if protoimpl.UnsafeEnabled && x != nil { 1302 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1303 if ms.LoadMessageInfo() == nil { 1304 ms.StoreMessageInfo(mi) 1305 } 1306 return ms 1307 } 1308 return mi.MessageOf(x) 1309} 1310 1311// Deprecated: Use OutputConfig.ProtoReflect.Descriptor instead. 1312func (*OutputConfig) Descriptor() ([]byte, []int) { 1313 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{13} 1314} 1315 1316func (m *OutputConfig) GetDestination() isOutputConfig_Destination { 1317 if m != nil { 1318 return m.Destination 1319 } 1320 return nil 1321} 1322 1323func (x *OutputConfig) GetGcsDestination() *GcsDestination { 1324 if x, ok := x.GetDestination().(*OutputConfig_GcsDestination); ok { 1325 return x.GcsDestination 1326 } 1327 return nil 1328} 1329 1330func (x *OutputConfig) GetBigqueryDestination() *BigQueryDestination { 1331 if x, ok := x.GetDestination().(*OutputConfig_BigqueryDestination); ok { 1332 return x.BigqueryDestination 1333 } 1334 return nil 1335} 1336 1337type isOutputConfig_Destination interface { 1338 isOutputConfig_Destination() 1339} 1340 1341type OutputConfig_GcsDestination struct { 1342 // Destination on Cloud Storage. 1343 GcsDestination *GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination,proto3,oneof"` 1344} 1345 1346type OutputConfig_BigqueryDestination struct { 1347 // Destination on BigQuery. The output table stores the fields in asset 1348 // proto as columns in BigQuery. 1349 BigqueryDestination *BigQueryDestination `protobuf:"bytes,2,opt,name=bigquery_destination,json=bigqueryDestination,proto3,oneof"` 1350} 1351 1352func (*OutputConfig_GcsDestination) isOutputConfig_Destination() {} 1353 1354func (*OutputConfig_BigqueryDestination) isOutputConfig_Destination() {} 1355 1356// Output result of export assets. 1357type OutputResult struct { 1358 state protoimpl.MessageState 1359 sizeCache protoimpl.SizeCache 1360 unknownFields protoimpl.UnknownFields 1361 1362 // Asset export result. 1363 // 1364 // Types that are assignable to Result: 1365 // *OutputResult_GcsResult 1366 Result isOutputResult_Result `protobuf_oneof:"result"` 1367} 1368 1369func (x *OutputResult) Reset() { 1370 *x = OutputResult{} 1371 if protoimpl.UnsafeEnabled { 1372 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[14] 1373 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1374 ms.StoreMessageInfo(mi) 1375 } 1376} 1377 1378func (x *OutputResult) String() string { 1379 return protoimpl.X.MessageStringOf(x) 1380} 1381 1382func (*OutputResult) ProtoMessage() {} 1383 1384func (x *OutputResult) ProtoReflect() protoreflect.Message { 1385 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[14] 1386 if protoimpl.UnsafeEnabled && x != nil { 1387 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1388 if ms.LoadMessageInfo() == nil { 1389 ms.StoreMessageInfo(mi) 1390 } 1391 return ms 1392 } 1393 return mi.MessageOf(x) 1394} 1395 1396// Deprecated: Use OutputResult.ProtoReflect.Descriptor instead. 1397func (*OutputResult) Descriptor() ([]byte, []int) { 1398 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{14} 1399} 1400 1401func (m *OutputResult) GetResult() isOutputResult_Result { 1402 if m != nil { 1403 return m.Result 1404 } 1405 return nil 1406} 1407 1408func (x *OutputResult) GetGcsResult() *GcsOutputResult { 1409 if x, ok := x.GetResult().(*OutputResult_GcsResult); ok { 1410 return x.GcsResult 1411 } 1412 return nil 1413} 1414 1415type isOutputResult_Result interface { 1416 isOutputResult_Result() 1417} 1418 1419type OutputResult_GcsResult struct { 1420 // Export result on Cloud Storage. 1421 GcsResult *GcsOutputResult `protobuf:"bytes,1,opt,name=gcs_result,json=gcsResult,proto3,oneof"` 1422} 1423 1424func (*OutputResult_GcsResult) isOutputResult_Result() {} 1425 1426// A Cloud Storage output result. 1427type GcsOutputResult struct { 1428 state protoimpl.MessageState 1429 sizeCache protoimpl.SizeCache 1430 unknownFields protoimpl.UnknownFields 1431 1432 // List of uris of the Cloud Storage objects. Example: 1433 // "gs://bucket_name/object_name". 1434 Uris []string `protobuf:"bytes,1,rep,name=uris,proto3" json:"uris,omitempty"` 1435} 1436 1437func (x *GcsOutputResult) Reset() { 1438 *x = GcsOutputResult{} 1439 if protoimpl.UnsafeEnabled { 1440 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[15] 1441 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1442 ms.StoreMessageInfo(mi) 1443 } 1444} 1445 1446func (x *GcsOutputResult) String() string { 1447 return protoimpl.X.MessageStringOf(x) 1448} 1449 1450func (*GcsOutputResult) ProtoMessage() {} 1451 1452func (x *GcsOutputResult) ProtoReflect() protoreflect.Message { 1453 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[15] 1454 if protoimpl.UnsafeEnabled && x != nil { 1455 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1456 if ms.LoadMessageInfo() == nil { 1457 ms.StoreMessageInfo(mi) 1458 } 1459 return ms 1460 } 1461 return mi.MessageOf(x) 1462} 1463 1464// Deprecated: Use GcsOutputResult.ProtoReflect.Descriptor instead. 1465func (*GcsOutputResult) Descriptor() ([]byte, []int) { 1466 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{15} 1467} 1468 1469func (x *GcsOutputResult) GetUris() []string { 1470 if x != nil { 1471 return x.Uris 1472 } 1473 return nil 1474} 1475 1476// A Cloud Storage location. 1477type GcsDestination struct { 1478 state protoimpl.MessageState 1479 sizeCache protoimpl.SizeCache 1480 unknownFields protoimpl.UnknownFields 1481 1482 // Required. 1483 // 1484 // Types that are assignable to ObjectUri: 1485 // *GcsDestination_Uri 1486 // *GcsDestination_UriPrefix 1487 ObjectUri isGcsDestination_ObjectUri `protobuf_oneof:"object_uri"` 1488} 1489 1490func (x *GcsDestination) Reset() { 1491 *x = GcsDestination{} 1492 if protoimpl.UnsafeEnabled { 1493 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[16] 1494 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1495 ms.StoreMessageInfo(mi) 1496 } 1497} 1498 1499func (x *GcsDestination) String() string { 1500 return protoimpl.X.MessageStringOf(x) 1501} 1502 1503func (*GcsDestination) ProtoMessage() {} 1504 1505func (x *GcsDestination) ProtoReflect() protoreflect.Message { 1506 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[16] 1507 if protoimpl.UnsafeEnabled && x != nil { 1508 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1509 if ms.LoadMessageInfo() == nil { 1510 ms.StoreMessageInfo(mi) 1511 } 1512 return ms 1513 } 1514 return mi.MessageOf(x) 1515} 1516 1517// Deprecated: Use GcsDestination.ProtoReflect.Descriptor instead. 1518func (*GcsDestination) Descriptor() ([]byte, []int) { 1519 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{16} 1520} 1521 1522func (m *GcsDestination) GetObjectUri() isGcsDestination_ObjectUri { 1523 if m != nil { 1524 return m.ObjectUri 1525 } 1526 return nil 1527} 1528 1529func (x *GcsDestination) GetUri() string { 1530 if x, ok := x.GetObjectUri().(*GcsDestination_Uri); ok { 1531 return x.Uri 1532 } 1533 return "" 1534} 1535 1536func (x *GcsDestination) GetUriPrefix() string { 1537 if x, ok := x.GetObjectUri().(*GcsDestination_UriPrefix); ok { 1538 return x.UriPrefix 1539 } 1540 return "" 1541} 1542 1543type isGcsDestination_ObjectUri interface { 1544 isGcsDestination_ObjectUri() 1545} 1546 1547type GcsDestination_Uri struct { 1548 // The uri of the Cloud Storage object. It's the same uri that is used by 1549 // gsutil. Example: "gs://bucket_name/object_name". See [Viewing and 1550 // Editing Object 1551 // Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) 1552 // for more information. 1553 // 1554 // If the specified Cloud Storage object already exists and there is no 1555 // [hold](https://cloud.google.com/storage/docs/object-holds), it will be 1556 // overwritten with the exported result. 1557 Uri string `protobuf:"bytes,1,opt,name=uri,proto3,oneof"` 1558} 1559 1560type GcsDestination_UriPrefix struct { 1561 // The uri prefix of all generated Cloud Storage objects. Example: 1562 // "gs://bucket_name/object_name_prefix". Each object uri is in format: 1563 // "gs://bucket_name/object_name_prefix/<asset type>/<shard number> and only 1564 // contains assets for that type. <shard number> starts from 0. Example: 1565 // "gs://bucket_name/object_name_prefix/compute.googleapis.com/Disk/0" is 1566 // the first shard of output objects containing all 1567 // compute.googleapis.com/Disk assets. An INVALID_ARGUMENT error will be 1568 // returned if file with the same name "gs://bucket_name/object_name_prefix" 1569 // already exists. 1570 UriPrefix string `protobuf:"bytes,2,opt,name=uri_prefix,json=uriPrefix,proto3,oneof"` 1571} 1572 1573func (*GcsDestination_Uri) isGcsDestination_ObjectUri() {} 1574 1575func (*GcsDestination_UriPrefix) isGcsDestination_ObjectUri() {} 1576 1577// A BigQuery destination for exporting assets to. 1578type BigQueryDestination struct { 1579 state protoimpl.MessageState 1580 sizeCache protoimpl.SizeCache 1581 unknownFields protoimpl.UnknownFields 1582 1583 // Required. The BigQuery dataset in format 1584 // "projects/projectId/datasets/datasetId", to which the snapshot result 1585 // should be exported. If this dataset does not exist, the export call returns 1586 // an INVALID_ARGUMENT error. 1587 Dataset string `protobuf:"bytes,1,opt,name=dataset,proto3" json:"dataset,omitempty"` 1588 // Required. The BigQuery table to which the snapshot result should be 1589 // written. If this table does not exist, a new table with the given name 1590 // will be created. 1591 Table string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"` 1592 // If the destination table already exists and this flag is `TRUE`, the 1593 // table will be overwritten by the contents of assets snapshot. If the flag 1594 // is `FALSE` or unset and the destination table already exists, the export 1595 // call returns an INVALID_ARGUMEMT error. 1596 Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"` 1597 // [partition_spec] determines whether to export to partitioned table(s) and 1598 // how to partition the data. 1599 // 1600 // If [partition_spec] is unset or [partition_spec.partition_key] is unset or 1601 // `PARTITION_KEY_UNSPECIFIED`, the snapshot results will be exported to 1602 // non-partitioned table(s). [force] will decide whether to overwrite existing 1603 // table(s). 1604 // 1605 // If [partition_spec] is specified. First, the snapshot results will be 1606 // written to partitioned table(s) with two additional timestamp columns, 1607 // readTime and requestTime, one of which will be the partition key. Secondly, 1608 // in the case when any destination table already exists, it will first try to 1609 // update existing table's schema as necessary by appending additional 1610 // columns. Then, if [force] is `TRUE`, the corresponding partition will be 1611 // overwritten by the snapshot results (data in different partitions will 1612 // remain intact); if [force] is unset or `FALSE`, it will append the data. An 1613 // error will be returned if the schema update or data appension fails. 1614 PartitionSpec *PartitionSpec `protobuf:"bytes,4,opt,name=partition_spec,json=partitionSpec,proto3" json:"partition_spec,omitempty"` 1615 // If this flag is `TRUE`, the snapshot results will be written to one or 1616 // multiple tables, each of which contains results of one asset type. The 1617 // [force] and [partition_spec] fields will apply to each of them. 1618 // 1619 // Field [table] will be concatenated with "_" and the asset type names (see 1620 // https://cloud.google.com/asset-inventory/docs/supported-asset-types for 1621 // supported asset types) to construct per-asset-type table names, in which 1622 // all non-alphanumeric characters like "." and "/" will be substituted by 1623 // "_". Example: if field [table] is "mytable" and snapshot results 1624 // contain "storage.googleapis.com/Bucket" assets, the corresponding table 1625 // name will be "mytable_storage_googleapis_com_Bucket". If any of these 1626 // tables does not exist, a new table with the concatenated name will be 1627 // created. 1628 // 1629 // When [content_type] in the ExportAssetsRequest is `RESOURCE`, the schema of 1630 // each table will include RECORD-type columns mapped to the nested fields in 1631 // the Asset.resource.data field of that asset type (up to the 15 nested level 1632 // BigQuery supports 1633 // (https://cloud.google.com/bigquery/docs/nested-repeated#limitations)). The 1634 // fields in >15 nested levels will be stored in JSON format string as a child 1635 // column of its parent RECORD column. 1636 // 1637 // If error occurs when exporting to any table, the whole export call will 1638 // return an error but the export results that already succeed will persist. 1639 // Example: if exporting to table_type_A succeeds when exporting to 1640 // table_type_B fails during one export call, the results in table_type_A will 1641 // persist and there will not be partial results persisting in a table. 1642 SeparateTablesPerAssetType bool `protobuf:"varint,5,opt,name=separate_tables_per_asset_type,json=separateTablesPerAssetType,proto3" json:"separate_tables_per_asset_type,omitempty"` 1643} 1644 1645func (x *BigQueryDestination) Reset() { 1646 *x = BigQueryDestination{} 1647 if protoimpl.UnsafeEnabled { 1648 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[17] 1649 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1650 ms.StoreMessageInfo(mi) 1651 } 1652} 1653 1654func (x *BigQueryDestination) String() string { 1655 return protoimpl.X.MessageStringOf(x) 1656} 1657 1658func (*BigQueryDestination) ProtoMessage() {} 1659 1660func (x *BigQueryDestination) ProtoReflect() protoreflect.Message { 1661 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[17] 1662 if protoimpl.UnsafeEnabled && x != nil { 1663 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1664 if ms.LoadMessageInfo() == nil { 1665 ms.StoreMessageInfo(mi) 1666 } 1667 return ms 1668 } 1669 return mi.MessageOf(x) 1670} 1671 1672// Deprecated: Use BigQueryDestination.ProtoReflect.Descriptor instead. 1673func (*BigQueryDestination) Descriptor() ([]byte, []int) { 1674 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{17} 1675} 1676 1677func (x *BigQueryDestination) GetDataset() string { 1678 if x != nil { 1679 return x.Dataset 1680 } 1681 return "" 1682} 1683 1684func (x *BigQueryDestination) GetTable() string { 1685 if x != nil { 1686 return x.Table 1687 } 1688 return "" 1689} 1690 1691func (x *BigQueryDestination) GetForce() bool { 1692 if x != nil { 1693 return x.Force 1694 } 1695 return false 1696} 1697 1698func (x *BigQueryDestination) GetPartitionSpec() *PartitionSpec { 1699 if x != nil { 1700 return x.PartitionSpec 1701 } 1702 return nil 1703} 1704 1705func (x *BigQueryDestination) GetSeparateTablesPerAssetType() bool { 1706 if x != nil { 1707 return x.SeparateTablesPerAssetType 1708 } 1709 return false 1710} 1711 1712// Specifications of BigQuery partitioned table as export destination. 1713type PartitionSpec struct { 1714 state protoimpl.MessageState 1715 sizeCache protoimpl.SizeCache 1716 unknownFields protoimpl.UnknownFields 1717 1718 // The partition key for BigQuery partitioned table. 1719 PartitionKey PartitionSpec_PartitionKey `protobuf:"varint,1,opt,name=partition_key,json=partitionKey,proto3,enum=google.cloud.asset.v1.PartitionSpec_PartitionKey" json:"partition_key,omitempty"` 1720} 1721 1722func (x *PartitionSpec) Reset() { 1723 *x = PartitionSpec{} 1724 if protoimpl.UnsafeEnabled { 1725 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[18] 1726 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1727 ms.StoreMessageInfo(mi) 1728 } 1729} 1730 1731func (x *PartitionSpec) String() string { 1732 return protoimpl.X.MessageStringOf(x) 1733} 1734 1735func (*PartitionSpec) ProtoMessage() {} 1736 1737func (x *PartitionSpec) ProtoReflect() protoreflect.Message { 1738 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[18] 1739 if protoimpl.UnsafeEnabled && x != nil { 1740 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1741 if ms.LoadMessageInfo() == nil { 1742 ms.StoreMessageInfo(mi) 1743 } 1744 return ms 1745 } 1746 return mi.MessageOf(x) 1747} 1748 1749// Deprecated: Use PartitionSpec.ProtoReflect.Descriptor instead. 1750func (*PartitionSpec) Descriptor() ([]byte, []int) { 1751 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{18} 1752} 1753 1754func (x *PartitionSpec) GetPartitionKey() PartitionSpec_PartitionKey { 1755 if x != nil { 1756 return x.PartitionKey 1757 } 1758 return PartitionSpec_PARTITION_KEY_UNSPECIFIED 1759} 1760 1761// A Pub/Sub destination. 1762type PubsubDestination struct { 1763 state protoimpl.MessageState 1764 sizeCache protoimpl.SizeCache 1765 unknownFields protoimpl.UnknownFields 1766 1767 // The name of the Pub/Sub topic to publish to. 1768 // Example: `projects/PROJECT_ID/topics/TOPIC_ID`. 1769 Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` 1770} 1771 1772func (x *PubsubDestination) Reset() { 1773 *x = PubsubDestination{} 1774 if protoimpl.UnsafeEnabled { 1775 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[19] 1776 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1777 ms.StoreMessageInfo(mi) 1778 } 1779} 1780 1781func (x *PubsubDestination) String() string { 1782 return protoimpl.X.MessageStringOf(x) 1783} 1784 1785func (*PubsubDestination) ProtoMessage() {} 1786 1787func (x *PubsubDestination) ProtoReflect() protoreflect.Message { 1788 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[19] 1789 if protoimpl.UnsafeEnabled && x != nil { 1790 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1791 if ms.LoadMessageInfo() == nil { 1792 ms.StoreMessageInfo(mi) 1793 } 1794 return ms 1795 } 1796 return mi.MessageOf(x) 1797} 1798 1799// Deprecated: Use PubsubDestination.ProtoReflect.Descriptor instead. 1800func (*PubsubDestination) Descriptor() ([]byte, []int) { 1801 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{19} 1802} 1803 1804func (x *PubsubDestination) GetTopic() string { 1805 if x != nil { 1806 return x.Topic 1807 } 1808 return "" 1809} 1810 1811// Output configuration for asset feed destination. 1812type FeedOutputConfig struct { 1813 state protoimpl.MessageState 1814 sizeCache protoimpl.SizeCache 1815 unknownFields protoimpl.UnknownFields 1816 1817 // Asset feed destination. 1818 // 1819 // Types that are assignable to Destination: 1820 // *FeedOutputConfig_PubsubDestination 1821 Destination isFeedOutputConfig_Destination `protobuf_oneof:"destination"` 1822} 1823 1824func (x *FeedOutputConfig) Reset() { 1825 *x = FeedOutputConfig{} 1826 if protoimpl.UnsafeEnabled { 1827 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[20] 1828 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1829 ms.StoreMessageInfo(mi) 1830 } 1831} 1832 1833func (x *FeedOutputConfig) String() string { 1834 return protoimpl.X.MessageStringOf(x) 1835} 1836 1837func (*FeedOutputConfig) ProtoMessage() {} 1838 1839func (x *FeedOutputConfig) ProtoReflect() protoreflect.Message { 1840 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[20] 1841 if protoimpl.UnsafeEnabled && x != nil { 1842 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1843 if ms.LoadMessageInfo() == nil { 1844 ms.StoreMessageInfo(mi) 1845 } 1846 return ms 1847 } 1848 return mi.MessageOf(x) 1849} 1850 1851// Deprecated: Use FeedOutputConfig.ProtoReflect.Descriptor instead. 1852func (*FeedOutputConfig) Descriptor() ([]byte, []int) { 1853 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{20} 1854} 1855 1856func (m *FeedOutputConfig) GetDestination() isFeedOutputConfig_Destination { 1857 if m != nil { 1858 return m.Destination 1859 } 1860 return nil 1861} 1862 1863func (x *FeedOutputConfig) GetPubsubDestination() *PubsubDestination { 1864 if x, ok := x.GetDestination().(*FeedOutputConfig_PubsubDestination); ok { 1865 return x.PubsubDestination 1866 } 1867 return nil 1868} 1869 1870type isFeedOutputConfig_Destination interface { 1871 isFeedOutputConfig_Destination() 1872} 1873 1874type FeedOutputConfig_PubsubDestination struct { 1875 // Destination on Pub/Sub. 1876 PubsubDestination *PubsubDestination `protobuf:"bytes,1,opt,name=pubsub_destination,json=pubsubDestination,proto3,oneof"` 1877} 1878 1879func (*FeedOutputConfig_PubsubDestination) isFeedOutputConfig_Destination() {} 1880 1881// An asset feed used to export asset updates to a destinations. 1882// An asset feed filter controls what updates are exported. 1883// The asset feed must be created within a project, organization, or 1884// folder. Supported destinations are: 1885// Pub/Sub topics. 1886type Feed struct { 1887 state protoimpl.MessageState 1888 sizeCache protoimpl.SizeCache 1889 unknownFields protoimpl.UnknownFields 1890 1891 // Required. The format will be 1892 // projects/{project_number}/feeds/{client-assigned_feed_identifier} or 1893 // folders/{folder_number}/feeds/{client-assigned_feed_identifier} or 1894 // organizations/{organization_number}/feeds/{client-assigned_feed_identifier} 1895 // 1896 // The client-assigned feed identifier must be unique within the parent 1897 // project/folder/organization. 1898 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1899 // A list of the full names of the assets to receive updates. You must specify 1900 // either or both of asset_names and asset_types. Only asset updates matching 1901 // specified asset_names or asset_types are exported to the feed. 1902 // Example: 1903 // `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`. 1904 // See [Resource 1905 // Names](https://cloud.google.com/apis/design/resource_names#full_resource_name) 1906 // for more info. 1907 AssetNames []string `protobuf:"bytes,2,rep,name=asset_names,json=assetNames,proto3" json:"asset_names,omitempty"` 1908 // A list of types of the assets to receive updates. You must specify either 1909 // or both of asset_names and asset_types. Only asset updates matching 1910 // specified asset_names or asset_types are exported to the feed. 1911 // Example: `"compute.googleapis.com/Disk"` 1912 // 1913 // See [this 1914 // topic](https://cloud.google.com/asset-inventory/docs/supported-asset-types) 1915 // for a list of all supported asset types. 1916 AssetTypes []string `protobuf:"bytes,3,rep,name=asset_types,json=assetTypes,proto3" json:"asset_types,omitempty"` 1917 // Asset content type. If not specified, no content but the asset name and 1918 // type will be returned. 1919 ContentType ContentType `protobuf:"varint,4,opt,name=content_type,json=contentType,proto3,enum=google.cloud.asset.v1.ContentType" json:"content_type,omitempty"` 1920 // Required. Feed output configuration defining where the asset updates are 1921 // published to. 1922 FeedOutputConfig *FeedOutputConfig `protobuf:"bytes,5,opt,name=feed_output_config,json=feedOutputConfig,proto3" json:"feed_output_config,omitempty"` 1923 // A condition which determines whether an asset update should be published. 1924 // If specified, an asset will be returned only when the expression evaluates 1925 // to true. 1926 // When set, `expression` field in the `Expr` must be a valid [CEL expression] 1927 // (https://github.com/google/cel-spec) on a TemporalAsset with name 1928 // `temporal_asset`. Example: a Feed with expression ("temporal_asset.deleted 1929 // == true") will only publish Asset deletions. Other fields of `Expr` are 1930 // optional. 1931 // 1932 // See our [user 1933 // guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes-with-condition) 1934 // for detailed instructions. 1935 Condition *expr.Expr `protobuf:"bytes,6,opt,name=condition,proto3" json:"condition,omitempty"` 1936 // A list of relationship types to output, for example: 1937 // `INSTANCE_TO_INSTANCEGROUP`. This field should only be specified if 1938 // content_type=RELATIONSHIP. 1939 // * If specified: 1940 // it outputs specified relationship updates on the [asset_names] or the 1941 // [asset_types]. It returns an error if any of the [relationship_types] 1942 // doesn't belong to the supported relationship types of the [asset_names] or 1943 // [asset_types], or any of the [asset_names] or the [asset_types] doesn't 1944 // belong to the source types of the [relationship_types]. 1945 // * Otherwise: 1946 // it outputs the supported relationships of the types of [asset_names] and 1947 // [asset_types] or returns an error if any of the [asset_names] or the 1948 // [asset_types] has no replationship support. 1949 // See [Introduction to Cloud Asset 1950 // Inventory](https://cloud.google.com/asset-inventory/docs/overview) 1951 // for all supported asset types and relationship types. 1952 RelationshipTypes []string `protobuf:"bytes,7,rep,name=relationship_types,json=relationshipTypes,proto3" json:"relationship_types,omitempty"` 1953} 1954 1955func (x *Feed) Reset() { 1956 *x = Feed{} 1957 if protoimpl.UnsafeEnabled { 1958 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[21] 1959 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1960 ms.StoreMessageInfo(mi) 1961 } 1962} 1963 1964func (x *Feed) String() string { 1965 return protoimpl.X.MessageStringOf(x) 1966} 1967 1968func (*Feed) ProtoMessage() {} 1969 1970func (x *Feed) ProtoReflect() protoreflect.Message { 1971 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[21] 1972 if protoimpl.UnsafeEnabled && x != nil { 1973 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1974 if ms.LoadMessageInfo() == nil { 1975 ms.StoreMessageInfo(mi) 1976 } 1977 return ms 1978 } 1979 return mi.MessageOf(x) 1980} 1981 1982// Deprecated: Use Feed.ProtoReflect.Descriptor instead. 1983func (*Feed) Descriptor() ([]byte, []int) { 1984 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{21} 1985} 1986 1987func (x *Feed) GetName() string { 1988 if x != nil { 1989 return x.Name 1990 } 1991 return "" 1992} 1993 1994func (x *Feed) GetAssetNames() []string { 1995 if x != nil { 1996 return x.AssetNames 1997 } 1998 return nil 1999} 2000 2001func (x *Feed) GetAssetTypes() []string { 2002 if x != nil { 2003 return x.AssetTypes 2004 } 2005 return nil 2006} 2007 2008func (x *Feed) GetContentType() ContentType { 2009 if x != nil { 2010 return x.ContentType 2011 } 2012 return ContentType_CONTENT_TYPE_UNSPECIFIED 2013} 2014 2015func (x *Feed) GetFeedOutputConfig() *FeedOutputConfig { 2016 if x != nil { 2017 return x.FeedOutputConfig 2018 } 2019 return nil 2020} 2021 2022func (x *Feed) GetCondition() *expr.Expr { 2023 if x != nil { 2024 return x.Condition 2025 } 2026 return nil 2027} 2028 2029func (x *Feed) GetRelationshipTypes() []string { 2030 if x != nil { 2031 return x.RelationshipTypes 2032 } 2033 return nil 2034} 2035 2036// Search all resources request. 2037type SearchAllResourcesRequest struct { 2038 state protoimpl.MessageState 2039 sizeCache protoimpl.SizeCache 2040 unknownFields protoimpl.UnknownFields 2041 2042 // Required. A scope can be a project, a folder, or an organization. The search is 2043 // limited to the resources within the `scope`. The caller must be granted the 2044 // [`cloudasset.assets.searchAllResources`](https://cloud.google.com/asset-inventory/docs/access-control#required_permissions) 2045 // permission on the desired scope. 2046 // 2047 // The allowed values are: 2048 // 2049 // * projects/{PROJECT_ID} (e.g., "projects/foo-bar") 2050 // * projects/{PROJECT_NUMBER} (e.g., "projects/12345678") 2051 // * folders/{FOLDER_NUMBER} (e.g., "folders/1234567") 2052 // * organizations/{ORGANIZATION_NUMBER} (e.g., "organizations/123456") 2053 Scope string `protobuf:"bytes,1,opt,name=scope,proto3" json:"scope,omitempty"` 2054 // Optional. The query statement. See [how to construct a 2055 // query](https://cloud.google.com/asset-inventory/docs/searching-resources#how_to_construct_a_query) 2056 // for more information. If not specified or empty, it will search all the 2057 // resources within the specified `scope`. 2058 // 2059 // Examples: 2060 // 2061 // * `name:Important` to find Cloud resources whose name contains 2062 // "Important" as a word. 2063 // * `name=Important` to find the Cloud resource whose name is exactly 2064 // "Important". 2065 // * `displayName:Impor*` to find Cloud resources whose display name 2066 // contains "Impor" as a prefix of any word in the field. 2067 // * `location:us-west*` to find Cloud resources whose location contains both 2068 // "us" and "west" as prefixes. 2069 // * `labels:prod` to find Cloud resources whose labels contain "prod" as 2070 // a key or value. 2071 // * `labels.env:prod` to find Cloud resources that have a label "env" 2072 // and its value is "prod". 2073 // * `labels.env:*` to find Cloud resources that have a label "env". 2074 // * `kmsKey:key` to find Cloud resources encrypted with a customer-managed 2075 // encryption key whose name contains the word "key". 2076 // * `state:ACTIVE` to find Cloud resources whose state contains "ACTIVE" as a 2077 // word. 2078 // * `NOT state:ACTIVE` to find Cloud resources whose state doesn't contain 2079 // "ACTIVE" as a word. 2080 // * `createTime<1609459200` to find Cloud resources that were created before 2081 // "2021-01-01 00:00:00 UTC". 1609459200 is the epoch timestamp of 2082 // "2021-01-01 00:00:00 UTC" in seconds. 2083 // * `updateTime>1609459200` to find Cloud resources that were updated after 2084 // "2021-01-01 00:00:00 UTC". 1609459200 is the epoch timestamp of 2085 // "2021-01-01 00:00:00 UTC" in seconds. 2086 // * `Important` to find Cloud resources that contain "Important" as a word 2087 // in any of the searchable fields. 2088 // * `Impor*` to find Cloud resources that contain "Impor" as a prefix of any 2089 // word in any of the searchable fields. 2090 // * `Important location:(us-west1 OR global)` to find Cloud 2091 // resources that contain "Important" as a word in any of the searchable 2092 // fields and are also located in the "us-west1" region or the "global" 2093 // location. 2094 Query string `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` 2095 // Optional. A list of asset types that this request searches for. If empty, it will 2096 // search all the [searchable asset 2097 // types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types). 2098 // 2099 // Regular expressions are also supported. For example: 2100 // 2101 // * "compute.googleapis.com.*" snapshots resources whose asset type starts 2102 // with "compute.googleapis.com". 2103 // * ".*Instance" snapshots resources whose asset type ends with "Instance". 2104 // * ".*Instance.*" snapshots resources whose asset type contains "Instance". 2105 // 2106 // See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported 2107 // regular expression syntax. If the regular expression does not match any 2108 // supported asset type, an INVALID_ARGUMENT error will be returned. 2109 AssetTypes []string `protobuf:"bytes,3,rep,name=asset_types,json=assetTypes,proto3" json:"asset_types,omitempty"` 2110 // Optional. The page size for search result pagination. Page size is capped at 500 even 2111 // if a larger value is given. If set to zero, server will pick an appropriate 2112 // default. Returned results may be fewer than requested. When this happens, 2113 // there could be more results as long as `next_page_token` is returned. 2114 PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 2115 // Optional. If present, then retrieve the next batch of results from the preceding call 2116 // to this method. `page_token` must be the value of `next_page_token` from 2117 // the previous response. The values of all other method parameters, must be 2118 // identical to those in the previous call. 2119 PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 2120 // Optional. A comma-separated list of fields specifying the sorting order of the 2121 // results. The default order is ascending. Add " DESC" after the field name 2122 // to indicate descending order. Redundant space characters are ignored. 2123 // Example: "location DESC, name". 2124 // Only singular primitive fields in the response are sortable: 2125 // 2126 // * name 2127 // * assetType 2128 // * project 2129 // * displayName 2130 // * description 2131 // * location 2132 // * kmsKey 2133 // * createTime 2134 // * updateTime 2135 // * state 2136 // * parentFullResourceName 2137 // * parentAssetType 2138 // 2139 // All the other fields such as repeated fields (e.g., `networkTags`), map 2140 // fields (e.g., `labels`) and struct fields (e.g., `additionalAttributes`) 2141 // are not supported. 2142 OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 2143 // Optional. A comma-separated list of fields specifying which fields to be returned in 2144 // ResourceSearchResult. Only '*' or combination of top level fields can be 2145 // specified. Field names of both snake_case and camelCase are supported. 2146 // Examples: `"*"`, `"name,location"`, `"name,versionedResources"`. 2147 // 2148 // The read_mask paths must be valid field paths listed but not limited to 2149 // (both snake_case and camelCase are supported): 2150 // 2151 // * name 2152 // * assetType 2153 // * project 2154 // * displayName 2155 // * description 2156 // * location 2157 // * labels 2158 // * networkTags 2159 // * kmsKey 2160 // * createTime 2161 // * updateTime 2162 // * state 2163 // * additionalAttributes 2164 // * versionedResources 2165 // 2166 // If read_mask is not specified, all fields except versionedResources will 2167 // be returned. 2168 // If only '*' is specified, all fields including versionedResources will be 2169 // returned. 2170 // Any invalid field path will trigger INVALID_ARGUMENT error. 2171 ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,8,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"` 2172} 2173 2174func (x *SearchAllResourcesRequest) Reset() { 2175 *x = SearchAllResourcesRequest{} 2176 if protoimpl.UnsafeEnabled { 2177 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[22] 2178 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2179 ms.StoreMessageInfo(mi) 2180 } 2181} 2182 2183func (x *SearchAllResourcesRequest) String() string { 2184 return protoimpl.X.MessageStringOf(x) 2185} 2186 2187func (*SearchAllResourcesRequest) ProtoMessage() {} 2188 2189func (x *SearchAllResourcesRequest) ProtoReflect() protoreflect.Message { 2190 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[22] 2191 if protoimpl.UnsafeEnabled && x != nil { 2192 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2193 if ms.LoadMessageInfo() == nil { 2194 ms.StoreMessageInfo(mi) 2195 } 2196 return ms 2197 } 2198 return mi.MessageOf(x) 2199} 2200 2201// Deprecated: Use SearchAllResourcesRequest.ProtoReflect.Descriptor instead. 2202func (*SearchAllResourcesRequest) Descriptor() ([]byte, []int) { 2203 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{22} 2204} 2205 2206func (x *SearchAllResourcesRequest) GetScope() string { 2207 if x != nil { 2208 return x.Scope 2209 } 2210 return "" 2211} 2212 2213func (x *SearchAllResourcesRequest) GetQuery() string { 2214 if x != nil { 2215 return x.Query 2216 } 2217 return "" 2218} 2219 2220func (x *SearchAllResourcesRequest) GetAssetTypes() []string { 2221 if x != nil { 2222 return x.AssetTypes 2223 } 2224 return nil 2225} 2226 2227func (x *SearchAllResourcesRequest) GetPageSize() int32 { 2228 if x != nil { 2229 return x.PageSize 2230 } 2231 return 0 2232} 2233 2234func (x *SearchAllResourcesRequest) GetPageToken() string { 2235 if x != nil { 2236 return x.PageToken 2237 } 2238 return "" 2239} 2240 2241func (x *SearchAllResourcesRequest) GetOrderBy() string { 2242 if x != nil { 2243 return x.OrderBy 2244 } 2245 return "" 2246} 2247 2248func (x *SearchAllResourcesRequest) GetReadMask() *fieldmaskpb.FieldMask { 2249 if x != nil { 2250 return x.ReadMask 2251 } 2252 return nil 2253} 2254 2255// Search all resources response. 2256type SearchAllResourcesResponse struct { 2257 state protoimpl.MessageState 2258 sizeCache protoimpl.SizeCache 2259 unknownFields protoimpl.UnknownFields 2260 2261 // A list of Resources that match the search query. It contains the resource 2262 // standard metadata information. 2263 Results []*ResourceSearchResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` 2264 // If there are more results than those appearing in this response, then 2265 // `next_page_token` is included. To get the next set of results, call this 2266 // method again using the value of `next_page_token` as `page_token`. 2267 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 2268} 2269 2270func (x *SearchAllResourcesResponse) Reset() { 2271 *x = SearchAllResourcesResponse{} 2272 if protoimpl.UnsafeEnabled { 2273 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[23] 2274 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2275 ms.StoreMessageInfo(mi) 2276 } 2277} 2278 2279func (x *SearchAllResourcesResponse) String() string { 2280 return protoimpl.X.MessageStringOf(x) 2281} 2282 2283func (*SearchAllResourcesResponse) ProtoMessage() {} 2284 2285func (x *SearchAllResourcesResponse) ProtoReflect() protoreflect.Message { 2286 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[23] 2287 if protoimpl.UnsafeEnabled && x != nil { 2288 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2289 if ms.LoadMessageInfo() == nil { 2290 ms.StoreMessageInfo(mi) 2291 } 2292 return ms 2293 } 2294 return mi.MessageOf(x) 2295} 2296 2297// Deprecated: Use SearchAllResourcesResponse.ProtoReflect.Descriptor instead. 2298func (*SearchAllResourcesResponse) Descriptor() ([]byte, []int) { 2299 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{23} 2300} 2301 2302func (x *SearchAllResourcesResponse) GetResults() []*ResourceSearchResult { 2303 if x != nil { 2304 return x.Results 2305 } 2306 return nil 2307} 2308 2309func (x *SearchAllResourcesResponse) GetNextPageToken() string { 2310 if x != nil { 2311 return x.NextPageToken 2312 } 2313 return "" 2314} 2315 2316// Search all IAM policies request. 2317type SearchAllIamPoliciesRequest struct { 2318 state protoimpl.MessageState 2319 sizeCache protoimpl.SizeCache 2320 unknownFields protoimpl.UnknownFields 2321 2322 // Required. A scope can be a project, a folder, or an organization. The search is 2323 // limited to the IAM policies within the `scope`. The caller must be granted 2324 // the 2325 // [`cloudasset.assets.searchAllIamPolicies`](https://cloud.google.com/asset-inventory/docs/access-control#required_permissions) 2326 // permission on the desired scope. 2327 // 2328 // The allowed values are: 2329 // 2330 // * projects/{PROJECT_ID} (e.g., "projects/foo-bar") 2331 // * projects/{PROJECT_NUMBER} (e.g., "projects/12345678") 2332 // * folders/{FOLDER_NUMBER} (e.g., "folders/1234567") 2333 // * organizations/{ORGANIZATION_NUMBER} (e.g., "organizations/123456") 2334 Scope string `protobuf:"bytes,1,opt,name=scope,proto3" json:"scope,omitempty"` 2335 // Optional. The query statement. See [how to construct a 2336 // query](https://cloud.google.com/asset-inventory/docs/searching-iam-policies#how_to_construct_a_query) 2337 // for more information. If not specified or empty, it will search all the 2338 // IAM policies within the specified `scope`. Note that the query string is 2339 // compared against each Cloud IAM policy binding, including its members, 2340 // roles, and Cloud IAM conditions. The returned Cloud IAM policies will only 2341 // contain the bindings that match your query. To learn more about the IAM 2342 // policy structure, see [IAM policy 2343 // doc](https://cloud.google.com/iam/docs/policies#structure). 2344 // 2345 // Examples: 2346 // 2347 // * `policy:amy@gmail.com` to find IAM policy bindings that specify user 2348 // "amy@gmail.com". 2349 // * `policy:roles/compute.admin` to find IAM policy bindings that specify 2350 // the Compute Admin role. 2351 // * `policy:comp*` to find IAM policy bindings that contain "comp" as a 2352 // prefix of any word in the binding. 2353 // * `policy.role.permissions:storage.buckets.update` to find IAM policy 2354 // bindings that specify a role containing "storage.buckets.update" 2355 // permission. Note that if callers don't have `iam.roles.get` access to a 2356 // role's included permissions, policy bindings that specify this role will 2357 // be dropped from the search results. 2358 // * `policy.role.permissions:upd*` to find IAM policy bindings that specify a 2359 // role containing "upd" as a prefix of any word in the role permission. 2360 // Note that if callers don't have `iam.roles.get` access to a role's 2361 // included permissions, policy bindings that specify this role will be 2362 // dropped from the search results. 2363 // * `resource:organizations/123456` to find IAM policy bindings 2364 // that are set on "organizations/123456". 2365 // * `resource=//cloudresourcemanager.googleapis.com/projects/myproject` to 2366 // find IAM policy bindings that are set on the project named "myproject". 2367 // * `Important` to find IAM policy bindings that contain "Important" as a 2368 // word in any of the searchable fields (except for the included 2369 // permissions). 2370 // * `resource:(instance1 OR instance2) policy:amy` to find 2371 // IAM policy bindings that are set on resources "instance1" or 2372 // "instance2" and also specify user "amy". 2373 // * `roles:roles/compute.admin` to find IAM policy bindings that specify the 2374 // Compute Admin role. 2375 // * `memberTypes:user` to find IAM policy bindings that contain the "user" 2376 // member type. 2377 Query string `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` 2378 // Optional. The page size for search result pagination. Page size is capped at 500 even 2379 // if a larger value is given. If set to zero, server will pick an appropriate 2380 // default. Returned results may be fewer than requested. When this happens, 2381 // there could be more results as long as `next_page_token` is returned. 2382 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 2383 // Optional. If present, retrieve the next batch of results from the preceding call to 2384 // this method. `page_token` must be the value of `next_page_token` from the 2385 // previous response. The values of all other method parameters must be 2386 // identical to those in the previous call. 2387 PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 2388 // Optional. A list of asset types that the IAM policies are attached to. If empty, it 2389 // will search the IAM policies that are attached to all the [searchable asset 2390 // types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types). 2391 // 2392 // Regular expressions are also supported. For example: 2393 // 2394 // * "compute.googleapis.com.*" snapshots IAM policies attached to asset type 2395 // starts with "compute.googleapis.com". 2396 // * ".*Instance" snapshots IAM policies attached to asset type ends with 2397 // "Instance". 2398 // * ".*Instance.*" snapshots IAM policies attached to asset type contains 2399 // "Instance". 2400 // 2401 // See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported 2402 // regular expression syntax. If the regular expression does not match any 2403 // supported asset type, an INVALID_ARGUMENT error will be returned. 2404 AssetTypes []string `protobuf:"bytes,5,rep,name=asset_types,json=assetTypes,proto3" json:"asset_types,omitempty"` 2405 // Optional. A comma-separated list of fields specifying the sorting order of the 2406 // results. The default order is ascending. Add " DESC" after the field name 2407 // to indicate descending order. Redundant space characters are ignored. 2408 // Example: "assetType DESC, resource". 2409 // Only singular primitive fields in the response are sortable: 2410 // * resource 2411 // * assetType 2412 // * project 2413 // All the other fields such as repeated fields (e.g., `folders`) and 2414 // non-primitive fields (e.g., `policy`) are not supported. 2415 OrderBy string `protobuf:"bytes,7,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 2416} 2417 2418func (x *SearchAllIamPoliciesRequest) Reset() { 2419 *x = SearchAllIamPoliciesRequest{} 2420 if protoimpl.UnsafeEnabled { 2421 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[24] 2422 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2423 ms.StoreMessageInfo(mi) 2424 } 2425} 2426 2427func (x *SearchAllIamPoliciesRequest) String() string { 2428 return protoimpl.X.MessageStringOf(x) 2429} 2430 2431func (*SearchAllIamPoliciesRequest) ProtoMessage() {} 2432 2433func (x *SearchAllIamPoliciesRequest) ProtoReflect() protoreflect.Message { 2434 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[24] 2435 if protoimpl.UnsafeEnabled && x != nil { 2436 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2437 if ms.LoadMessageInfo() == nil { 2438 ms.StoreMessageInfo(mi) 2439 } 2440 return ms 2441 } 2442 return mi.MessageOf(x) 2443} 2444 2445// Deprecated: Use SearchAllIamPoliciesRequest.ProtoReflect.Descriptor instead. 2446func (*SearchAllIamPoliciesRequest) Descriptor() ([]byte, []int) { 2447 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{24} 2448} 2449 2450func (x *SearchAllIamPoliciesRequest) GetScope() string { 2451 if x != nil { 2452 return x.Scope 2453 } 2454 return "" 2455} 2456 2457func (x *SearchAllIamPoliciesRequest) GetQuery() string { 2458 if x != nil { 2459 return x.Query 2460 } 2461 return "" 2462} 2463 2464func (x *SearchAllIamPoliciesRequest) GetPageSize() int32 { 2465 if x != nil { 2466 return x.PageSize 2467 } 2468 return 0 2469} 2470 2471func (x *SearchAllIamPoliciesRequest) GetPageToken() string { 2472 if x != nil { 2473 return x.PageToken 2474 } 2475 return "" 2476} 2477 2478func (x *SearchAllIamPoliciesRequest) GetAssetTypes() []string { 2479 if x != nil { 2480 return x.AssetTypes 2481 } 2482 return nil 2483} 2484 2485func (x *SearchAllIamPoliciesRequest) GetOrderBy() string { 2486 if x != nil { 2487 return x.OrderBy 2488 } 2489 return "" 2490} 2491 2492// Search all IAM policies response. 2493type SearchAllIamPoliciesResponse struct { 2494 state protoimpl.MessageState 2495 sizeCache protoimpl.SizeCache 2496 unknownFields protoimpl.UnknownFields 2497 2498 // A list of IamPolicy that match the search query. Related information such 2499 // as the associated resource is returned along with the policy. 2500 Results []*IamPolicySearchResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` 2501 // Set if there are more results than those appearing in this response; to get 2502 // the next set of results, call this method again, using this value as the 2503 // `page_token`. 2504 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 2505} 2506 2507func (x *SearchAllIamPoliciesResponse) Reset() { 2508 *x = SearchAllIamPoliciesResponse{} 2509 if protoimpl.UnsafeEnabled { 2510 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[25] 2511 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2512 ms.StoreMessageInfo(mi) 2513 } 2514} 2515 2516func (x *SearchAllIamPoliciesResponse) String() string { 2517 return protoimpl.X.MessageStringOf(x) 2518} 2519 2520func (*SearchAllIamPoliciesResponse) ProtoMessage() {} 2521 2522func (x *SearchAllIamPoliciesResponse) ProtoReflect() protoreflect.Message { 2523 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[25] 2524 if protoimpl.UnsafeEnabled && x != nil { 2525 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2526 if ms.LoadMessageInfo() == nil { 2527 ms.StoreMessageInfo(mi) 2528 } 2529 return ms 2530 } 2531 return mi.MessageOf(x) 2532} 2533 2534// Deprecated: Use SearchAllIamPoliciesResponse.ProtoReflect.Descriptor instead. 2535func (*SearchAllIamPoliciesResponse) Descriptor() ([]byte, []int) { 2536 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{25} 2537} 2538 2539func (x *SearchAllIamPoliciesResponse) GetResults() []*IamPolicySearchResult { 2540 if x != nil { 2541 return x.Results 2542 } 2543 return nil 2544} 2545 2546func (x *SearchAllIamPoliciesResponse) GetNextPageToken() string { 2547 if x != nil { 2548 return x.NextPageToken 2549 } 2550 return "" 2551} 2552 2553// ## IAM policy analysis query message. 2554type IamPolicyAnalysisQuery struct { 2555 state protoimpl.MessageState 2556 sizeCache protoimpl.SizeCache 2557 unknownFields protoimpl.UnknownFields 2558 2559 // Required. The relative name of the root asset. Only resources and IAM policies within 2560 // the scope will be analyzed. 2561 // 2562 // This can only be an organization number (such as "organizations/123"), a 2563 // folder number (such as "folders/123"), a project ID (such as 2564 // "projects/my-project-id"), or a project number (such as "projects/12345"). 2565 // 2566 // To know how to get organization id, visit [here 2567 // ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). 2568 // 2569 // To know how to get folder or project id, visit [here 2570 // ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects). 2571 Scope string `protobuf:"bytes,1,opt,name=scope,proto3" json:"scope,omitempty"` 2572 // Optional. Specifies a resource for analysis. 2573 ResourceSelector *IamPolicyAnalysisQuery_ResourceSelector `protobuf:"bytes,2,opt,name=resource_selector,json=resourceSelector,proto3" json:"resource_selector,omitempty"` 2574 // Optional. Specifies an identity for analysis. 2575 IdentitySelector *IamPolicyAnalysisQuery_IdentitySelector `protobuf:"bytes,3,opt,name=identity_selector,json=identitySelector,proto3" json:"identity_selector,omitempty"` 2576 // Optional. Specifies roles or permissions for analysis. This is optional. 2577 AccessSelector *IamPolicyAnalysisQuery_AccessSelector `protobuf:"bytes,4,opt,name=access_selector,json=accessSelector,proto3" json:"access_selector,omitempty"` 2578 // Optional. The query options. 2579 Options *IamPolicyAnalysisQuery_Options `protobuf:"bytes,5,opt,name=options,proto3" json:"options,omitempty"` 2580 // Optional. The hypothetical context for IAM conditions evaluation. 2581 ConditionContext *IamPolicyAnalysisQuery_ConditionContext `protobuf:"bytes,6,opt,name=condition_context,json=conditionContext,proto3" json:"condition_context,omitempty"` 2582} 2583 2584func (x *IamPolicyAnalysisQuery) Reset() { 2585 *x = IamPolicyAnalysisQuery{} 2586 if protoimpl.UnsafeEnabled { 2587 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[26] 2588 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2589 ms.StoreMessageInfo(mi) 2590 } 2591} 2592 2593func (x *IamPolicyAnalysisQuery) String() string { 2594 return protoimpl.X.MessageStringOf(x) 2595} 2596 2597func (*IamPolicyAnalysisQuery) ProtoMessage() {} 2598 2599func (x *IamPolicyAnalysisQuery) ProtoReflect() protoreflect.Message { 2600 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[26] 2601 if protoimpl.UnsafeEnabled && x != nil { 2602 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2603 if ms.LoadMessageInfo() == nil { 2604 ms.StoreMessageInfo(mi) 2605 } 2606 return ms 2607 } 2608 return mi.MessageOf(x) 2609} 2610 2611// Deprecated: Use IamPolicyAnalysisQuery.ProtoReflect.Descriptor instead. 2612func (*IamPolicyAnalysisQuery) Descriptor() ([]byte, []int) { 2613 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{26} 2614} 2615 2616func (x *IamPolicyAnalysisQuery) GetScope() string { 2617 if x != nil { 2618 return x.Scope 2619 } 2620 return "" 2621} 2622 2623func (x *IamPolicyAnalysisQuery) GetResourceSelector() *IamPolicyAnalysisQuery_ResourceSelector { 2624 if x != nil { 2625 return x.ResourceSelector 2626 } 2627 return nil 2628} 2629 2630func (x *IamPolicyAnalysisQuery) GetIdentitySelector() *IamPolicyAnalysisQuery_IdentitySelector { 2631 if x != nil { 2632 return x.IdentitySelector 2633 } 2634 return nil 2635} 2636 2637func (x *IamPolicyAnalysisQuery) GetAccessSelector() *IamPolicyAnalysisQuery_AccessSelector { 2638 if x != nil { 2639 return x.AccessSelector 2640 } 2641 return nil 2642} 2643 2644func (x *IamPolicyAnalysisQuery) GetOptions() *IamPolicyAnalysisQuery_Options { 2645 if x != nil { 2646 return x.Options 2647 } 2648 return nil 2649} 2650 2651func (x *IamPolicyAnalysisQuery) GetConditionContext() *IamPolicyAnalysisQuery_ConditionContext { 2652 if x != nil { 2653 return x.ConditionContext 2654 } 2655 return nil 2656} 2657 2658// A request message for [AssetService.AnalyzeIamPolicy][google.cloud.asset.v1.AssetService.AnalyzeIamPolicy]. 2659type AnalyzeIamPolicyRequest struct { 2660 state protoimpl.MessageState 2661 sizeCache protoimpl.SizeCache 2662 unknownFields protoimpl.UnknownFields 2663 2664 // Required. The request query. 2665 AnalysisQuery *IamPolicyAnalysisQuery `protobuf:"bytes,1,opt,name=analysis_query,json=analysisQuery,proto3" json:"analysis_query,omitempty"` 2666 // Optional. Amount of time executable has to complete. See JSON representation of 2667 // [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json). 2668 // 2669 // If this field is set with a value less than the RPC deadline, and the 2670 // execution of your query hasn't finished in the specified 2671 // execution timeout, you will get a response with partial result. 2672 // Otherwise, your query's execution will continue until the RPC deadline. 2673 // If it's not finished until then, you will get a DEADLINE_EXCEEDED error. 2674 // 2675 // Default is empty. 2676 ExecutionTimeout *durationpb.Duration `protobuf:"bytes,2,opt,name=execution_timeout,json=executionTimeout,proto3" json:"execution_timeout,omitempty"` 2677} 2678 2679func (x *AnalyzeIamPolicyRequest) Reset() { 2680 *x = AnalyzeIamPolicyRequest{} 2681 if protoimpl.UnsafeEnabled { 2682 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[27] 2683 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2684 ms.StoreMessageInfo(mi) 2685 } 2686} 2687 2688func (x *AnalyzeIamPolicyRequest) String() string { 2689 return protoimpl.X.MessageStringOf(x) 2690} 2691 2692func (*AnalyzeIamPolicyRequest) ProtoMessage() {} 2693 2694func (x *AnalyzeIamPolicyRequest) ProtoReflect() protoreflect.Message { 2695 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[27] 2696 if protoimpl.UnsafeEnabled && x != nil { 2697 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2698 if ms.LoadMessageInfo() == nil { 2699 ms.StoreMessageInfo(mi) 2700 } 2701 return ms 2702 } 2703 return mi.MessageOf(x) 2704} 2705 2706// Deprecated: Use AnalyzeIamPolicyRequest.ProtoReflect.Descriptor instead. 2707func (*AnalyzeIamPolicyRequest) Descriptor() ([]byte, []int) { 2708 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{27} 2709} 2710 2711func (x *AnalyzeIamPolicyRequest) GetAnalysisQuery() *IamPolicyAnalysisQuery { 2712 if x != nil { 2713 return x.AnalysisQuery 2714 } 2715 return nil 2716} 2717 2718func (x *AnalyzeIamPolicyRequest) GetExecutionTimeout() *durationpb.Duration { 2719 if x != nil { 2720 return x.ExecutionTimeout 2721 } 2722 return nil 2723} 2724 2725// A response message for [AssetService.AnalyzeIamPolicy][google.cloud.asset.v1.AssetService.AnalyzeIamPolicy]. 2726type AnalyzeIamPolicyResponse struct { 2727 state protoimpl.MessageState 2728 sizeCache protoimpl.SizeCache 2729 unknownFields protoimpl.UnknownFields 2730 2731 // The main analysis that matches the original request. 2732 MainAnalysis *AnalyzeIamPolicyResponse_IamPolicyAnalysis `protobuf:"bytes,1,opt,name=main_analysis,json=mainAnalysis,proto3" json:"main_analysis,omitempty"` 2733 // The service account impersonation analysis if 2734 // [AnalyzeIamPolicyRequest.analyze_service_account_impersonation][] is 2735 // enabled. 2736 ServiceAccountImpersonationAnalysis []*AnalyzeIamPolicyResponse_IamPolicyAnalysis `protobuf:"bytes,2,rep,name=service_account_impersonation_analysis,json=serviceAccountImpersonationAnalysis,proto3" json:"service_account_impersonation_analysis,omitempty"` 2737 // Represents whether all entries in the [main_analysis][google.cloud.asset.v1.AnalyzeIamPolicyResponse.main_analysis] and 2738 // [service_account_impersonation_analysis][google.cloud.asset.v1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis] have been fully explored to 2739 // answer the query in the request. 2740 FullyExplored bool `protobuf:"varint,3,opt,name=fully_explored,json=fullyExplored,proto3" json:"fully_explored,omitempty"` 2741} 2742 2743func (x *AnalyzeIamPolicyResponse) Reset() { 2744 *x = AnalyzeIamPolicyResponse{} 2745 if protoimpl.UnsafeEnabled { 2746 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[28] 2747 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2748 ms.StoreMessageInfo(mi) 2749 } 2750} 2751 2752func (x *AnalyzeIamPolicyResponse) String() string { 2753 return protoimpl.X.MessageStringOf(x) 2754} 2755 2756func (*AnalyzeIamPolicyResponse) ProtoMessage() {} 2757 2758func (x *AnalyzeIamPolicyResponse) ProtoReflect() protoreflect.Message { 2759 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[28] 2760 if protoimpl.UnsafeEnabled && x != nil { 2761 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2762 if ms.LoadMessageInfo() == nil { 2763 ms.StoreMessageInfo(mi) 2764 } 2765 return ms 2766 } 2767 return mi.MessageOf(x) 2768} 2769 2770// Deprecated: Use AnalyzeIamPolicyResponse.ProtoReflect.Descriptor instead. 2771func (*AnalyzeIamPolicyResponse) Descriptor() ([]byte, []int) { 2772 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{28} 2773} 2774 2775func (x *AnalyzeIamPolicyResponse) GetMainAnalysis() *AnalyzeIamPolicyResponse_IamPolicyAnalysis { 2776 if x != nil { 2777 return x.MainAnalysis 2778 } 2779 return nil 2780} 2781 2782func (x *AnalyzeIamPolicyResponse) GetServiceAccountImpersonationAnalysis() []*AnalyzeIamPolicyResponse_IamPolicyAnalysis { 2783 if x != nil { 2784 return x.ServiceAccountImpersonationAnalysis 2785 } 2786 return nil 2787} 2788 2789func (x *AnalyzeIamPolicyResponse) GetFullyExplored() bool { 2790 if x != nil { 2791 return x.FullyExplored 2792 } 2793 return false 2794} 2795 2796// Output configuration for export IAM policy analysis destination. 2797type IamPolicyAnalysisOutputConfig struct { 2798 state protoimpl.MessageState 2799 sizeCache protoimpl.SizeCache 2800 unknownFields protoimpl.UnknownFields 2801 2802 // IAM policy analysis export destination. 2803 // 2804 // Types that are assignable to Destination: 2805 // *IamPolicyAnalysisOutputConfig_GcsDestination_ 2806 // *IamPolicyAnalysisOutputConfig_BigqueryDestination 2807 Destination isIamPolicyAnalysisOutputConfig_Destination `protobuf_oneof:"destination"` 2808} 2809 2810func (x *IamPolicyAnalysisOutputConfig) Reset() { 2811 *x = IamPolicyAnalysisOutputConfig{} 2812 if protoimpl.UnsafeEnabled { 2813 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[29] 2814 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2815 ms.StoreMessageInfo(mi) 2816 } 2817} 2818 2819func (x *IamPolicyAnalysisOutputConfig) String() string { 2820 return protoimpl.X.MessageStringOf(x) 2821} 2822 2823func (*IamPolicyAnalysisOutputConfig) ProtoMessage() {} 2824 2825func (x *IamPolicyAnalysisOutputConfig) ProtoReflect() protoreflect.Message { 2826 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[29] 2827 if protoimpl.UnsafeEnabled && x != nil { 2828 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2829 if ms.LoadMessageInfo() == nil { 2830 ms.StoreMessageInfo(mi) 2831 } 2832 return ms 2833 } 2834 return mi.MessageOf(x) 2835} 2836 2837// Deprecated: Use IamPolicyAnalysisOutputConfig.ProtoReflect.Descriptor instead. 2838func (*IamPolicyAnalysisOutputConfig) Descriptor() ([]byte, []int) { 2839 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{29} 2840} 2841 2842func (m *IamPolicyAnalysisOutputConfig) GetDestination() isIamPolicyAnalysisOutputConfig_Destination { 2843 if m != nil { 2844 return m.Destination 2845 } 2846 return nil 2847} 2848 2849func (x *IamPolicyAnalysisOutputConfig) GetGcsDestination() *IamPolicyAnalysisOutputConfig_GcsDestination { 2850 if x, ok := x.GetDestination().(*IamPolicyAnalysisOutputConfig_GcsDestination_); ok { 2851 return x.GcsDestination 2852 } 2853 return nil 2854} 2855 2856func (x *IamPolicyAnalysisOutputConfig) GetBigqueryDestination() *IamPolicyAnalysisOutputConfig_BigQueryDestination { 2857 if x, ok := x.GetDestination().(*IamPolicyAnalysisOutputConfig_BigqueryDestination); ok { 2858 return x.BigqueryDestination 2859 } 2860 return nil 2861} 2862 2863type isIamPolicyAnalysisOutputConfig_Destination interface { 2864 isIamPolicyAnalysisOutputConfig_Destination() 2865} 2866 2867type IamPolicyAnalysisOutputConfig_GcsDestination_ struct { 2868 // Destination on Cloud Storage. 2869 GcsDestination *IamPolicyAnalysisOutputConfig_GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination,proto3,oneof"` 2870} 2871 2872type IamPolicyAnalysisOutputConfig_BigqueryDestination struct { 2873 // Destination on BigQuery. 2874 BigqueryDestination *IamPolicyAnalysisOutputConfig_BigQueryDestination `protobuf:"bytes,2,opt,name=bigquery_destination,json=bigqueryDestination,proto3,oneof"` 2875} 2876 2877func (*IamPolicyAnalysisOutputConfig_GcsDestination_) isIamPolicyAnalysisOutputConfig_Destination() {} 2878 2879func (*IamPolicyAnalysisOutputConfig_BigqueryDestination) isIamPolicyAnalysisOutputConfig_Destination() { 2880} 2881 2882// A request message for [AssetService.AnalyzeIamPolicyLongrunning][google.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning]. 2883type AnalyzeIamPolicyLongrunningRequest struct { 2884 state protoimpl.MessageState 2885 sizeCache protoimpl.SizeCache 2886 unknownFields protoimpl.UnknownFields 2887 2888 // Required. The request query. 2889 AnalysisQuery *IamPolicyAnalysisQuery `protobuf:"bytes,1,opt,name=analysis_query,json=analysisQuery,proto3" json:"analysis_query,omitempty"` 2890 // Required. Output configuration indicating where the results will be output to. 2891 OutputConfig *IamPolicyAnalysisOutputConfig `protobuf:"bytes,2,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 2892} 2893 2894func (x *AnalyzeIamPolicyLongrunningRequest) Reset() { 2895 *x = AnalyzeIamPolicyLongrunningRequest{} 2896 if protoimpl.UnsafeEnabled { 2897 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[30] 2898 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2899 ms.StoreMessageInfo(mi) 2900 } 2901} 2902 2903func (x *AnalyzeIamPolicyLongrunningRequest) String() string { 2904 return protoimpl.X.MessageStringOf(x) 2905} 2906 2907func (*AnalyzeIamPolicyLongrunningRequest) ProtoMessage() {} 2908 2909func (x *AnalyzeIamPolicyLongrunningRequest) ProtoReflect() protoreflect.Message { 2910 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[30] 2911 if protoimpl.UnsafeEnabled && x != nil { 2912 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2913 if ms.LoadMessageInfo() == nil { 2914 ms.StoreMessageInfo(mi) 2915 } 2916 return ms 2917 } 2918 return mi.MessageOf(x) 2919} 2920 2921// Deprecated: Use AnalyzeIamPolicyLongrunningRequest.ProtoReflect.Descriptor instead. 2922func (*AnalyzeIamPolicyLongrunningRequest) Descriptor() ([]byte, []int) { 2923 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{30} 2924} 2925 2926func (x *AnalyzeIamPolicyLongrunningRequest) GetAnalysisQuery() *IamPolicyAnalysisQuery { 2927 if x != nil { 2928 return x.AnalysisQuery 2929 } 2930 return nil 2931} 2932 2933func (x *AnalyzeIamPolicyLongrunningRequest) GetOutputConfig() *IamPolicyAnalysisOutputConfig { 2934 if x != nil { 2935 return x.OutputConfig 2936 } 2937 return nil 2938} 2939 2940// A response message for [AssetService.AnalyzeIamPolicyLongrunning][google.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning]. 2941type AnalyzeIamPolicyLongrunningResponse struct { 2942 state protoimpl.MessageState 2943 sizeCache protoimpl.SizeCache 2944 unknownFields protoimpl.UnknownFields 2945} 2946 2947func (x *AnalyzeIamPolicyLongrunningResponse) Reset() { 2948 *x = AnalyzeIamPolicyLongrunningResponse{} 2949 if protoimpl.UnsafeEnabled { 2950 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[31] 2951 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2952 ms.StoreMessageInfo(mi) 2953 } 2954} 2955 2956func (x *AnalyzeIamPolicyLongrunningResponse) String() string { 2957 return protoimpl.X.MessageStringOf(x) 2958} 2959 2960func (*AnalyzeIamPolicyLongrunningResponse) ProtoMessage() {} 2961 2962func (x *AnalyzeIamPolicyLongrunningResponse) ProtoReflect() protoreflect.Message { 2963 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[31] 2964 if protoimpl.UnsafeEnabled && x != nil { 2965 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2966 if ms.LoadMessageInfo() == nil { 2967 ms.StoreMessageInfo(mi) 2968 } 2969 return ms 2970 } 2971 return mi.MessageOf(x) 2972} 2973 2974// Deprecated: Use AnalyzeIamPolicyLongrunningResponse.ProtoReflect.Descriptor instead. 2975func (*AnalyzeIamPolicyLongrunningResponse) Descriptor() ([]byte, []int) { 2976 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{31} 2977} 2978 2979// The request message for performing resource move analysis. 2980type AnalyzeMoveRequest struct { 2981 state protoimpl.MessageState 2982 sizeCache protoimpl.SizeCache 2983 unknownFields protoimpl.UnknownFields 2984 2985 // Required. Name of the resource to perform the analysis against. 2986 // Only GCP Project are supported as of today. Hence, this can only be Project 2987 // ID (such as "projects/my-project-id") or a Project Number (such as 2988 // "projects/12345"). 2989 Resource string `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"` 2990 // Required. Name of the GCP Folder or Organization to reparent the target 2991 // resource. The analysis will be performed against hypothetically moving the 2992 // resource to this specified desitination parent. This can only be a Folder 2993 // number (such as "folders/123") or an Organization number (such as 2994 // "organizations/123"). 2995 DestinationParent string `protobuf:"bytes,2,opt,name=destination_parent,json=destinationParent,proto3" json:"destination_parent,omitempty"` 2996 // Analysis view indicating what information should be included in the 2997 // analysis response. If unspecified, the default view is FULL. 2998 View AnalyzeMoveRequest_AnalysisView `protobuf:"varint,3,opt,name=view,proto3,enum=google.cloud.asset.v1.AnalyzeMoveRequest_AnalysisView" json:"view,omitempty"` 2999} 3000 3001func (x *AnalyzeMoveRequest) Reset() { 3002 *x = AnalyzeMoveRequest{} 3003 if protoimpl.UnsafeEnabled { 3004 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[32] 3005 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3006 ms.StoreMessageInfo(mi) 3007 } 3008} 3009 3010func (x *AnalyzeMoveRequest) String() string { 3011 return protoimpl.X.MessageStringOf(x) 3012} 3013 3014func (*AnalyzeMoveRequest) ProtoMessage() {} 3015 3016func (x *AnalyzeMoveRequest) ProtoReflect() protoreflect.Message { 3017 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[32] 3018 if protoimpl.UnsafeEnabled && x != nil { 3019 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3020 if ms.LoadMessageInfo() == nil { 3021 ms.StoreMessageInfo(mi) 3022 } 3023 return ms 3024 } 3025 return mi.MessageOf(x) 3026} 3027 3028// Deprecated: Use AnalyzeMoveRequest.ProtoReflect.Descriptor instead. 3029func (*AnalyzeMoveRequest) Descriptor() ([]byte, []int) { 3030 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{32} 3031} 3032 3033func (x *AnalyzeMoveRequest) GetResource() string { 3034 if x != nil { 3035 return x.Resource 3036 } 3037 return "" 3038} 3039 3040func (x *AnalyzeMoveRequest) GetDestinationParent() string { 3041 if x != nil { 3042 return x.DestinationParent 3043 } 3044 return "" 3045} 3046 3047func (x *AnalyzeMoveRequest) GetView() AnalyzeMoveRequest_AnalysisView { 3048 if x != nil { 3049 return x.View 3050 } 3051 return AnalyzeMoveRequest_ANALYSIS_VIEW_UNSPECIFIED 3052} 3053 3054// The response message for resource move analysis. 3055type AnalyzeMoveResponse struct { 3056 state protoimpl.MessageState 3057 sizeCache protoimpl.SizeCache 3058 unknownFields protoimpl.UnknownFields 3059 3060 // The list of analyses returned from performing the intended resource move 3061 // analysis. The analysis is grouped by different Cloud services. 3062 MoveAnalysis []*MoveAnalysis `protobuf:"bytes,1,rep,name=move_analysis,json=moveAnalysis,proto3" json:"move_analysis,omitempty"` 3063} 3064 3065func (x *AnalyzeMoveResponse) Reset() { 3066 *x = AnalyzeMoveResponse{} 3067 if protoimpl.UnsafeEnabled { 3068 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[33] 3069 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3070 ms.StoreMessageInfo(mi) 3071 } 3072} 3073 3074func (x *AnalyzeMoveResponse) String() string { 3075 return protoimpl.X.MessageStringOf(x) 3076} 3077 3078func (*AnalyzeMoveResponse) ProtoMessage() {} 3079 3080func (x *AnalyzeMoveResponse) ProtoReflect() protoreflect.Message { 3081 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[33] 3082 if protoimpl.UnsafeEnabled && x != nil { 3083 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3084 if ms.LoadMessageInfo() == nil { 3085 ms.StoreMessageInfo(mi) 3086 } 3087 return ms 3088 } 3089 return mi.MessageOf(x) 3090} 3091 3092// Deprecated: Use AnalyzeMoveResponse.ProtoReflect.Descriptor instead. 3093func (*AnalyzeMoveResponse) Descriptor() ([]byte, []int) { 3094 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{33} 3095} 3096 3097func (x *AnalyzeMoveResponse) GetMoveAnalysis() []*MoveAnalysis { 3098 if x != nil { 3099 return x.MoveAnalysis 3100 } 3101 return nil 3102} 3103 3104// A message to group the analysis information. 3105type MoveAnalysis struct { 3106 state protoimpl.MessageState 3107 sizeCache protoimpl.SizeCache 3108 unknownFields protoimpl.UnknownFields 3109 3110 // The user friendly display name of the analysis. E.g. IAM, Organization 3111 // Policy etc. 3112 DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 3113 // Types that are assignable to Result: 3114 // *MoveAnalysis_Analysis 3115 // *MoveAnalysis_Error 3116 Result isMoveAnalysis_Result `protobuf_oneof:"result"` 3117} 3118 3119func (x *MoveAnalysis) Reset() { 3120 *x = MoveAnalysis{} 3121 if protoimpl.UnsafeEnabled { 3122 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[34] 3123 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3124 ms.StoreMessageInfo(mi) 3125 } 3126} 3127 3128func (x *MoveAnalysis) String() string { 3129 return protoimpl.X.MessageStringOf(x) 3130} 3131 3132func (*MoveAnalysis) ProtoMessage() {} 3133 3134func (x *MoveAnalysis) ProtoReflect() protoreflect.Message { 3135 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[34] 3136 if protoimpl.UnsafeEnabled && x != nil { 3137 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3138 if ms.LoadMessageInfo() == nil { 3139 ms.StoreMessageInfo(mi) 3140 } 3141 return ms 3142 } 3143 return mi.MessageOf(x) 3144} 3145 3146// Deprecated: Use MoveAnalysis.ProtoReflect.Descriptor instead. 3147func (*MoveAnalysis) Descriptor() ([]byte, []int) { 3148 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{34} 3149} 3150 3151func (x *MoveAnalysis) GetDisplayName() string { 3152 if x != nil { 3153 return x.DisplayName 3154 } 3155 return "" 3156} 3157 3158func (m *MoveAnalysis) GetResult() isMoveAnalysis_Result { 3159 if m != nil { 3160 return m.Result 3161 } 3162 return nil 3163} 3164 3165func (x *MoveAnalysis) GetAnalysis() *MoveAnalysisResult { 3166 if x, ok := x.GetResult().(*MoveAnalysis_Analysis); ok { 3167 return x.Analysis 3168 } 3169 return nil 3170} 3171 3172func (x *MoveAnalysis) GetError() *status.Status { 3173 if x, ok := x.GetResult().(*MoveAnalysis_Error); ok { 3174 return x.Error 3175 } 3176 return nil 3177} 3178 3179type isMoveAnalysis_Result interface { 3180 isMoveAnalysis_Result() 3181} 3182 3183type MoveAnalysis_Analysis struct { 3184 // Analysis result of moving the target resource. 3185 Analysis *MoveAnalysisResult `protobuf:"bytes,2,opt,name=analysis,proto3,oneof"` 3186} 3187 3188type MoveAnalysis_Error struct { 3189 // Description of error encountered when performing the analysis. 3190 Error *status.Status `protobuf:"bytes,3,opt,name=error,proto3,oneof"` 3191} 3192 3193func (*MoveAnalysis_Analysis) isMoveAnalysis_Result() {} 3194 3195func (*MoveAnalysis_Error) isMoveAnalysis_Result() {} 3196 3197// An analysis result including blockers and warnings. 3198type MoveAnalysisResult struct { 3199 state protoimpl.MessageState 3200 sizeCache protoimpl.SizeCache 3201 unknownFields protoimpl.UnknownFields 3202 3203 // Blocking information that would prevent the target resource from moving 3204 // to the specified destination at runtime. 3205 Blockers []*MoveImpact `protobuf:"bytes,1,rep,name=blockers,proto3" json:"blockers,omitempty"` 3206 // Warning information indicating that moving the target resource to the 3207 // specified destination might be unsafe. This can include important policy 3208 // information and configuration changes, but will not block moves at runtime. 3209 Warnings []*MoveImpact `protobuf:"bytes,2,rep,name=warnings,proto3" json:"warnings,omitempty"` 3210} 3211 3212func (x *MoveAnalysisResult) Reset() { 3213 *x = MoveAnalysisResult{} 3214 if protoimpl.UnsafeEnabled { 3215 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[35] 3216 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3217 ms.StoreMessageInfo(mi) 3218 } 3219} 3220 3221func (x *MoveAnalysisResult) String() string { 3222 return protoimpl.X.MessageStringOf(x) 3223} 3224 3225func (*MoveAnalysisResult) ProtoMessage() {} 3226 3227func (x *MoveAnalysisResult) ProtoReflect() protoreflect.Message { 3228 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[35] 3229 if protoimpl.UnsafeEnabled && x != nil { 3230 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3231 if ms.LoadMessageInfo() == nil { 3232 ms.StoreMessageInfo(mi) 3233 } 3234 return ms 3235 } 3236 return mi.MessageOf(x) 3237} 3238 3239// Deprecated: Use MoveAnalysisResult.ProtoReflect.Descriptor instead. 3240func (*MoveAnalysisResult) Descriptor() ([]byte, []int) { 3241 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{35} 3242} 3243 3244func (x *MoveAnalysisResult) GetBlockers() []*MoveImpact { 3245 if x != nil { 3246 return x.Blockers 3247 } 3248 return nil 3249} 3250 3251func (x *MoveAnalysisResult) GetWarnings() []*MoveImpact { 3252 if x != nil { 3253 return x.Warnings 3254 } 3255 return nil 3256} 3257 3258// A message to group impacts of moving the target resource. 3259type MoveImpact struct { 3260 state protoimpl.MessageState 3261 sizeCache protoimpl.SizeCache 3262 unknownFields protoimpl.UnknownFields 3263 3264 // User friendly impact detail in a free form message. 3265 Detail string `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail,omitempty"` 3266} 3267 3268func (x *MoveImpact) Reset() { 3269 *x = MoveImpact{} 3270 if protoimpl.UnsafeEnabled { 3271 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[36] 3272 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3273 ms.StoreMessageInfo(mi) 3274 } 3275} 3276 3277func (x *MoveImpact) String() string { 3278 return protoimpl.X.MessageStringOf(x) 3279} 3280 3281func (*MoveImpact) ProtoMessage() {} 3282 3283func (x *MoveImpact) ProtoReflect() protoreflect.Message { 3284 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[36] 3285 if protoimpl.UnsafeEnabled && x != nil { 3286 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3287 if ms.LoadMessageInfo() == nil { 3288 ms.StoreMessageInfo(mi) 3289 } 3290 return ms 3291 } 3292 return mi.MessageOf(x) 3293} 3294 3295// Deprecated: Use MoveImpact.ProtoReflect.Descriptor instead. 3296func (*MoveImpact) Descriptor() ([]byte, []int) { 3297 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{36} 3298} 3299 3300func (x *MoveImpact) GetDetail() string { 3301 if x != nil { 3302 return x.Detail 3303 } 3304 return "" 3305} 3306 3307// Specifies the resource to analyze for access policies, which may be set 3308// directly on the resource, or on ancestors such as organizations, folders or 3309// projects. 3310type IamPolicyAnalysisQuery_ResourceSelector struct { 3311 state protoimpl.MessageState 3312 sizeCache protoimpl.SizeCache 3313 unknownFields protoimpl.UnknownFields 3314 3315 // Required. The [full resource name] 3316 // (https://cloud.google.com/asset-inventory/docs/resource-name-format) 3317 // of a resource of [supported resource 3318 // types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#analyzable_asset_types). 3319 FullResourceName string `protobuf:"bytes,1,opt,name=full_resource_name,json=fullResourceName,proto3" json:"full_resource_name,omitempty"` 3320} 3321 3322func (x *IamPolicyAnalysisQuery_ResourceSelector) Reset() { 3323 *x = IamPolicyAnalysisQuery_ResourceSelector{} 3324 if protoimpl.UnsafeEnabled { 3325 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[37] 3326 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3327 ms.StoreMessageInfo(mi) 3328 } 3329} 3330 3331func (x *IamPolicyAnalysisQuery_ResourceSelector) String() string { 3332 return protoimpl.X.MessageStringOf(x) 3333} 3334 3335func (*IamPolicyAnalysisQuery_ResourceSelector) ProtoMessage() {} 3336 3337func (x *IamPolicyAnalysisQuery_ResourceSelector) ProtoReflect() protoreflect.Message { 3338 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[37] 3339 if protoimpl.UnsafeEnabled && x != nil { 3340 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3341 if ms.LoadMessageInfo() == nil { 3342 ms.StoreMessageInfo(mi) 3343 } 3344 return ms 3345 } 3346 return mi.MessageOf(x) 3347} 3348 3349// Deprecated: Use IamPolicyAnalysisQuery_ResourceSelector.ProtoReflect.Descriptor instead. 3350func (*IamPolicyAnalysisQuery_ResourceSelector) Descriptor() ([]byte, []int) { 3351 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{26, 0} 3352} 3353 3354func (x *IamPolicyAnalysisQuery_ResourceSelector) GetFullResourceName() string { 3355 if x != nil { 3356 return x.FullResourceName 3357 } 3358 return "" 3359} 3360 3361// Specifies an identity for which to determine resource access, based on 3362// roles assigned either directly to them or to the groups they belong to, 3363// directly or indirectly. 3364type IamPolicyAnalysisQuery_IdentitySelector struct { 3365 state protoimpl.MessageState 3366 sizeCache protoimpl.SizeCache 3367 unknownFields protoimpl.UnknownFields 3368 3369 // Required. The identity appear in the form of members in 3370 // [IAM policy 3371 // binding](https://cloud.google.com/iam/reference/rest/v1/Binding). 3372 // 3373 // The examples of supported forms are: 3374 // "user:mike@example.com", 3375 // "group:admins@example.com", 3376 // "domain:google.com", 3377 // "serviceAccount:my-project-id@appspot.gserviceaccount.com". 3378 // 3379 // Notice that wildcard characters (such as * and ?) are not supported. 3380 // You must give a specific identity. 3381 Identity string `protobuf:"bytes,1,opt,name=identity,proto3" json:"identity,omitempty"` 3382} 3383 3384func (x *IamPolicyAnalysisQuery_IdentitySelector) Reset() { 3385 *x = IamPolicyAnalysisQuery_IdentitySelector{} 3386 if protoimpl.UnsafeEnabled { 3387 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[38] 3388 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3389 ms.StoreMessageInfo(mi) 3390 } 3391} 3392 3393func (x *IamPolicyAnalysisQuery_IdentitySelector) String() string { 3394 return protoimpl.X.MessageStringOf(x) 3395} 3396 3397func (*IamPolicyAnalysisQuery_IdentitySelector) ProtoMessage() {} 3398 3399func (x *IamPolicyAnalysisQuery_IdentitySelector) ProtoReflect() protoreflect.Message { 3400 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[38] 3401 if protoimpl.UnsafeEnabled && x != nil { 3402 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3403 if ms.LoadMessageInfo() == nil { 3404 ms.StoreMessageInfo(mi) 3405 } 3406 return ms 3407 } 3408 return mi.MessageOf(x) 3409} 3410 3411// Deprecated: Use IamPolicyAnalysisQuery_IdentitySelector.ProtoReflect.Descriptor instead. 3412func (*IamPolicyAnalysisQuery_IdentitySelector) Descriptor() ([]byte, []int) { 3413 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{26, 1} 3414} 3415 3416func (x *IamPolicyAnalysisQuery_IdentitySelector) GetIdentity() string { 3417 if x != nil { 3418 return x.Identity 3419 } 3420 return "" 3421} 3422 3423// Specifies roles and/or permissions to analyze, to determine both the 3424// identities possessing them and the resources they control. If multiple 3425// values are specified, results will include roles or permissions matching 3426// any of them. The total number of roles and permissions should be equal or 3427// less than 10. 3428type IamPolicyAnalysisQuery_AccessSelector struct { 3429 state protoimpl.MessageState 3430 sizeCache protoimpl.SizeCache 3431 unknownFields protoimpl.UnknownFields 3432 3433 // Optional. The roles to appear in result. 3434 Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` 3435 // Optional. The permissions to appear in result. 3436 Permissions []string `protobuf:"bytes,2,rep,name=permissions,proto3" json:"permissions,omitempty"` 3437} 3438 3439func (x *IamPolicyAnalysisQuery_AccessSelector) Reset() { 3440 *x = IamPolicyAnalysisQuery_AccessSelector{} 3441 if protoimpl.UnsafeEnabled { 3442 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[39] 3443 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3444 ms.StoreMessageInfo(mi) 3445 } 3446} 3447 3448func (x *IamPolicyAnalysisQuery_AccessSelector) String() string { 3449 return protoimpl.X.MessageStringOf(x) 3450} 3451 3452func (*IamPolicyAnalysisQuery_AccessSelector) ProtoMessage() {} 3453 3454func (x *IamPolicyAnalysisQuery_AccessSelector) ProtoReflect() protoreflect.Message { 3455 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[39] 3456 if protoimpl.UnsafeEnabled && x != nil { 3457 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3458 if ms.LoadMessageInfo() == nil { 3459 ms.StoreMessageInfo(mi) 3460 } 3461 return ms 3462 } 3463 return mi.MessageOf(x) 3464} 3465 3466// Deprecated: Use IamPolicyAnalysisQuery_AccessSelector.ProtoReflect.Descriptor instead. 3467func (*IamPolicyAnalysisQuery_AccessSelector) Descriptor() ([]byte, []int) { 3468 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{26, 2} 3469} 3470 3471func (x *IamPolicyAnalysisQuery_AccessSelector) GetRoles() []string { 3472 if x != nil { 3473 return x.Roles 3474 } 3475 return nil 3476} 3477 3478func (x *IamPolicyAnalysisQuery_AccessSelector) GetPermissions() []string { 3479 if x != nil { 3480 return x.Permissions 3481 } 3482 return nil 3483} 3484 3485// Contains query options. 3486type IamPolicyAnalysisQuery_Options struct { 3487 state protoimpl.MessageState 3488 sizeCache protoimpl.SizeCache 3489 unknownFields protoimpl.UnknownFields 3490 3491 // Optional. If true, the identities section of the result will expand any 3492 // Google groups appearing in an IAM policy binding. 3493 // 3494 // If [IamPolicyAnalysisQuery.identity_selector][google.cloud.asset.v1.IamPolicyAnalysisQuery.identity_selector] is specified, the 3495 // identity in the result will be determined by the selector, and this flag 3496 // is not allowed to set. 3497 // 3498 // Default is false. 3499 ExpandGroups bool `protobuf:"varint,1,opt,name=expand_groups,json=expandGroups,proto3" json:"expand_groups,omitempty"` 3500 // Optional. If true, the access section of result will expand any roles 3501 // appearing in IAM policy bindings to include their permissions. 3502 // 3503 // If [IamPolicyAnalysisQuery.access_selector][google.cloud.asset.v1.IamPolicyAnalysisQuery.access_selector] is specified, the access 3504 // section of the result will be determined by the selector, and this flag 3505 // is not allowed to set. 3506 // 3507 // Default is false. 3508 ExpandRoles bool `protobuf:"varint,2,opt,name=expand_roles,json=expandRoles,proto3" json:"expand_roles,omitempty"` 3509 // Optional. If true and [IamPolicyAnalysisQuery.resource_selector][google.cloud.asset.v1.IamPolicyAnalysisQuery.resource_selector] is not 3510 // specified, the resource section of the result will expand any resource 3511 // attached to an IAM policy to include resources lower in the resource 3512 // hierarchy. 3513 // 3514 // For example, if the request analyzes for which resources user A has 3515 // permission P, and the results include an IAM policy with P on a GCP 3516 // folder, the results will also include resources in that folder with 3517 // permission P. 3518 // 3519 // If true and [IamPolicyAnalysisQuery.resource_selector][google.cloud.asset.v1.IamPolicyAnalysisQuery.resource_selector] is specified, 3520 // the resource section of the result will expand the specified resource to 3521 // include resources lower in the resource hierarchy. Only project or 3522 // lower resources are supported. Folder and organization resource cannot be 3523 // used together with this option. 3524 // 3525 // For example, if the request analyzes for which users have permission P on 3526 // a GCP project with this option enabled, the results will include all 3527 // users who have permission P on that project or any lower resource. 3528 // 3529 // Default is false. 3530 ExpandResources bool `protobuf:"varint,3,opt,name=expand_resources,json=expandResources,proto3" json:"expand_resources,omitempty"` 3531 // Optional. If true, the result will output resource edges, starting 3532 // from the policy attached resource, to any expanded resources. 3533 // Default is false. 3534 OutputResourceEdges bool `protobuf:"varint,4,opt,name=output_resource_edges,json=outputResourceEdges,proto3" json:"output_resource_edges,omitempty"` 3535 // Optional. If true, the result will output group identity edges, starting 3536 // from the binding's group members, to any expanded identities. 3537 // Default is false. 3538 OutputGroupEdges bool `protobuf:"varint,5,opt,name=output_group_edges,json=outputGroupEdges,proto3" json:"output_group_edges,omitempty"` 3539 // Optional. If true, the response will include access analysis from identities to 3540 // resources via service account impersonation. This is a very expensive 3541 // operation, because many derived queries will be executed. We highly 3542 // recommend you use [AssetService.AnalyzeIamPolicyLongrunning][google.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning] rpc 3543 // instead. 3544 // 3545 // For example, if the request analyzes for which resources user A has 3546 // permission P, and there's an IAM policy states user A has 3547 // iam.serviceAccounts.getAccessToken permission to a service account SA, 3548 // and there's another IAM policy states service account SA has permission P 3549 // to a GCP folder F, then user A potentially has access to the GCP folder 3550 // F. And those advanced analysis results will be included in 3551 // [AnalyzeIamPolicyResponse.service_account_impersonation_analysis][google.cloud.asset.v1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis]. 3552 // 3553 // Another example, if the request analyzes for who has 3554 // permission P to a GCP folder F, and there's an IAM policy states user A 3555 // has iam.serviceAccounts.actAs permission to a service account SA, and 3556 // there's another IAM policy states service account SA has permission P to 3557 // the GCP folder F, then user A potentially has access to the GCP folder 3558 // F. And those advanced analysis results will be included in 3559 // [AnalyzeIamPolicyResponse.service_account_impersonation_analysis][google.cloud.asset.v1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis]. 3560 // 3561 // Default is false. 3562 AnalyzeServiceAccountImpersonation bool `protobuf:"varint,6,opt,name=analyze_service_account_impersonation,json=analyzeServiceAccountImpersonation,proto3" json:"analyze_service_account_impersonation,omitempty"` 3563} 3564 3565func (x *IamPolicyAnalysisQuery_Options) Reset() { 3566 *x = IamPolicyAnalysisQuery_Options{} 3567 if protoimpl.UnsafeEnabled { 3568 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[40] 3569 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3570 ms.StoreMessageInfo(mi) 3571 } 3572} 3573 3574func (x *IamPolicyAnalysisQuery_Options) String() string { 3575 return protoimpl.X.MessageStringOf(x) 3576} 3577 3578func (*IamPolicyAnalysisQuery_Options) ProtoMessage() {} 3579 3580func (x *IamPolicyAnalysisQuery_Options) ProtoReflect() protoreflect.Message { 3581 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[40] 3582 if protoimpl.UnsafeEnabled && x != nil { 3583 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3584 if ms.LoadMessageInfo() == nil { 3585 ms.StoreMessageInfo(mi) 3586 } 3587 return ms 3588 } 3589 return mi.MessageOf(x) 3590} 3591 3592// Deprecated: Use IamPolicyAnalysisQuery_Options.ProtoReflect.Descriptor instead. 3593func (*IamPolicyAnalysisQuery_Options) Descriptor() ([]byte, []int) { 3594 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{26, 3} 3595} 3596 3597func (x *IamPolicyAnalysisQuery_Options) GetExpandGroups() bool { 3598 if x != nil { 3599 return x.ExpandGroups 3600 } 3601 return false 3602} 3603 3604func (x *IamPolicyAnalysisQuery_Options) GetExpandRoles() bool { 3605 if x != nil { 3606 return x.ExpandRoles 3607 } 3608 return false 3609} 3610 3611func (x *IamPolicyAnalysisQuery_Options) GetExpandResources() bool { 3612 if x != nil { 3613 return x.ExpandResources 3614 } 3615 return false 3616} 3617 3618func (x *IamPolicyAnalysisQuery_Options) GetOutputResourceEdges() bool { 3619 if x != nil { 3620 return x.OutputResourceEdges 3621 } 3622 return false 3623} 3624 3625func (x *IamPolicyAnalysisQuery_Options) GetOutputGroupEdges() bool { 3626 if x != nil { 3627 return x.OutputGroupEdges 3628 } 3629 return false 3630} 3631 3632func (x *IamPolicyAnalysisQuery_Options) GetAnalyzeServiceAccountImpersonation() bool { 3633 if x != nil { 3634 return x.AnalyzeServiceAccountImpersonation 3635 } 3636 return false 3637} 3638 3639// The IAM conditions context. 3640type IamPolicyAnalysisQuery_ConditionContext struct { 3641 state protoimpl.MessageState 3642 sizeCache protoimpl.SizeCache 3643 unknownFields protoimpl.UnknownFields 3644 3645 // The IAM conditions time context. 3646 // 3647 // Types that are assignable to TimeContext: 3648 // *IamPolicyAnalysisQuery_ConditionContext_AccessTime 3649 TimeContext isIamPolicyAnalysisQuery_ConditionContext_TimeContext `protobuf_oneof:"TimeContext"` 3650} 3651 3652func (x *IamPolicyAnalysisQuery_ConditionContext) Reset() { 3653 *x = IamPolicyAnalysisQuery_ConditionContext{} 3654 if protoimpl.UnsafeEnabled { 3655 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[41] 3656 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3657 ms.StoreMessageInfo(mi) 3658 } 3659} 3660 3661func (x *IamPolicyAnalysisQuery_ConditionContext) String() string { 3662 return protoimpl.X.MessageStringOf(x) 3663} 3664 3665func (*IamPolicyAnalysisQuery_ConditionContext) ProtoMessage() {} 3666 3667func (x *IamPolicyAnalysisQuery_ConditionContext) ProtoReflect() protoreflect.Message { 3668 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[41] 3669 if protoimpl.UnsafeEnabled && x != nil { 3670 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3671 if ms.LoadMessageInfo() == nil { 3672 ms.StoreMessageInfo(mi) 3673 } 3674 return ms 3675 } 3676 return mi.MessageOf(x) 3677} 3678 3679// Deprecated: Use IamPolicyAnalysisQuery_ConditionContext.ProtoReflect.Descriptor instead. 3680func (*IamPolicyAnalysisQuery_ConditionContext) Descriptor() ([]byte, []int) { 3681 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{26, 4} 3682} 3683 3684func (m *IamPolicyAnalysisQuery_ConditionContext) GetTimeContext() isIamPolicyAnalysisQuery_ConditionContext_TimeContext { 3685 if m != nil { 3686 return m.TimeContext 3687 } 3688 return nil 3689} 3690 3691func (x *IamPolicyAnalysisQuery_ConditionContext) GetAccessTime() *timestamppb.Timestamp { 3692 if x, ok := x.GetTimeContext().(*IamPolicyAnalysisQuery_ConditionContext_AccessTime); ok { 3693 return x.AccessTime 3694 } 3695 return nil 3696} 3697 3698type isIamPolicyAnalysisQuery_ConditionContext_TimeContext interface { 3699 isIamPolicyAnalysisQuery_ConditionContext_TimeContext() 3700} 3701 3702type IamPolicyAnalysisQuery_ConditionContext_AccessTime struct { 3703 // The hypothetical access timestamp to evaluate IAM conditions. Note that 3704 // this value must not be earlier than the current time; otherwise, an 3705 // INVALID_ARGUMENT error will be returned. 3706 AccessTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=access_time,json=accessTime,proto3,oneof"` 3707} 3708 3709func (*IamPolicyAnalysisQuery_ConditionContext_AccessTime) isIamPolicyAnalysisQuery_ConditionContext_TimeContext() { 3710} 3711 3712// An analysis message to group the query and results. 3713type AnalyzeIamPolicyResponse_IamPolicyAnalysis struct { 3714 state protoimpl.MessageState 3715 sizeCache protoimpl.SizeCache 3716 unknownFields protoimpl.UnknownFields 3717 3718 // The analysis query. 3719 AnalysisQuery *IamPolicyAnalysisQuery `protobuf:"bytes,1,opt,name=analysis_query,json=analysisQuery,proto3" json:"analysis_query,omitempty"` 3720 // A list of [IamPolicyAnalysisResult][google.cloud.asset.v1.IamPolicyAnalysisResult] that matches the analysis query, or 3721 // empty if no result is found. 3722 AnalysisResults []*IamPolicyAnalysisResult `protobuf:"bytes,2,rep,name=analysis_results,json=analysisResults,proto3" json:"analysis_results,omitempty"` 3723 // Represents whether all entries in the [analysis_results][google.cloud.asset.v1.AnalyzeIamPolicyResponse.IamPolicyAnalysis.analysis_results] have been 3724 // fully explored to answer the query. 3725 FullyExplored bool `protobuf:"varint,3,opt,name=fully_explored,json=fullyExplored,proto3" json:"fully_explored,omitempty"` 3726 // A list of non-critical errors happened during the query handling. 3727 NonCriticalErrors []*IamPolicyAnalysisState `protobuf:"bytes,5,rep,name=non_critical_errors,json=nonCriticalErrors,proto3" json:"non_critical_errors,omitempty"` 3728} 3729 3730func (x *AnalyzeIamPolicyResponse_IamPolicyAnalysis) Reset() { 3731 *x = AnalyzeIamPolicyResponse_IamPolicyAnalysis{} 3732 if protoimpl.UnsafeEnabled { 3733 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[42] 3734 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3735 ms.StoreMessageInfo(mi) 3736 } 3737} 3738 3739func (x *AnalyzeIamPolicyResponse_IamPolicyAnalysis) String() string { 3740 return protoimpl.X.MessageStringOf(x) 3741} 3742 3743func (*AnalyzeIamPolicyResponse_IamPolicyAnalysis) ProtoMessage() {} 3744 3745func (x *AnalyzeIamPolicyResponse_IamPolicyAnalysis) ProtoReflect() protoreflect.Message { 3746 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[42] 3747 if protoimpl.UnsafeEnabled && x != nil { 3748 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3749 if ms.LoadMessageInfo() == nil { 3750 ms.StoreMessageInfo(mi) 3751 } 3752 return ms 3753 } 3754 return mi.MessageOf(x) 3755} 3756 3757// Deprecated: Use AnalyzeIamPolicyResponse_IamPolicyAnalysis.ProtoReflect.Descriptor instead. 3758func (*AnalyzeIamPolicyResponse_IamPolicyAnalysis) Descriptor() ([]byte, []int) { 3759 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{28, 0} 3760} 3761 3762func (x *AnalyzeIamPolicyResponse_IamPolicyAnalysis) GetAnalysisQuery() *IamPolicyAnalysisQuery { 3763 if x != nil { 3764 return x.AnalysisQuery 3765 } 3766 return nil 3767} 3768 3769func (x *AnalyzeIamPolicyResponse_IamPolicyAnalysis) GetAnalysisResults() []*IamPolicyAnalysisResult { 3770 if x != nil { 3771 return x.AnalysisResults 3772 } 3773 return nil 3774} 3775 3776func (x *AnalyzeIamPolicyResponse_IamPolicyAnalysis) GetFullyExplored() bool { 3777 if x != nil { 3778 return x.FullyExplored 3779 } 3780 return false 3781} 3782 3783func (x *AnalyzeIamPolicyResponse_IamPolicyAnalysis) GetNonCriticalErrors() []*IamPolicyAnalysisState { 3784 if x != nil { 3785 return x.NonCriticalErrors 3786 } 3787 return nil 3788} 3789 3790// A Cloud Storage location. 3791type IamPolicyAnalysisOutputConfig_GcsDestination struct { 3792 state protoimpl.MessageState 3793 sizeCache protoimpl.SizeCache 3794 unknownFields protoimpl.UnknownFields 3795 3796 // Required. The uri of the Cloud Storage object. It's the same uri that is used by 3797 // gsutil. Example: "gs://bucket_name/object_name". See [Viewing and 3798 // Editing Object 3799 // Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) 3800 // for more information. 3801 // 3802 // If the specified Cloud Storage object already exists and there is no 3803 // [hold](https://cloud.google.com/storage/docs/object-holds), it will be 3804 // overwritten with the analysis result. 3805 Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` 3806} 3807 3808func (x *IamPolicyAnalysisOutputConfig_GcsDestination) Reset() { 3809 *x = IamPolicyAnalysisOutputConfig_GcsDestination{} 3810 if protoimpl.UnsafeEnabled { 3811 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[43] 3812 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3813 ms.StoreMessageInfo(mi) 3814 } 3815} 3816 3817func (x *IamPolicyAnalysisOutputConfig_GcsDestination) String() string { 3818 return protoimpl.X.MessageStringOf(x) 3819} 3820 3821func (*IamPolicyAnalysisOutputConfig_GcsDestination) ProtoMessage() {} 3822 3823func (x *IamPolicyAnalysisOutputConfig_GcsDestination) ProtoReflect() protoreflect.Message { 3824 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[43] 3825 if protoimpl.UnsafeEnabled && x != nil { 3826 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3827 if ms.LoadMessageInfo() == nil { 3828 ms.StoreMessageInfo(mi) 3829 } 3830 return ms 3831 } 3832 return mi.MessageOf(x) 3833} 3834 3835// Deprecated: Use IamPolicyAnalysisOutputConfig_GcsDestination.ProtoReflect.Descriptor instead. 3836func (*IamPolicyAnalysisOutputConfig_GcsDestination) Descriptor() ([]byte, []int) { 3837 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{29, 0} 3838} 3839 3840func (x *IamPolicyAnalysisOutputConfig_GcsDestination) GetUri() string { 3841 if x != nil { 3842 return x.Uri 3843 } 3844 return "" 3845} 3846 3847// A BigQuery destination. 3848type IamPolicyAnalysisOutputConfig_BigQueryDestination struct { 3849 state protoimpl.MessageState 3850 sizeCache protoimpl.SizeCache 3851 unknownFields protoimpl.UnknownFields 3852 3853 // Required. The BigQuery dataset in format "projects/projectId/datasets/datasetId", 3854 // to which the analysis results should be exported. If this dataset does 3855 // not exist, the export call will return an INVALID_ARGUMENT error. 3856 Dataset string `protobuf:"bytes,1,opt,name=dataset,proto3" json:"dataset,omitempty"` 3857 // Required. The prefix of the BigQuery tables to which the analysis results will be 3858 // written. Tables will be created based on this table_prefix if not exist: 3859 // * <table_prefix>_analysis table will contain export operation's metadata. 3860 // * <table_prefix>_analysis_result will contain all the 3861 // [IamPolicyAnalysisResult][google.cloud.asset.v1.IamPolicyAnalysisResult]. 3862 // When [partition_key] is specified, both tables will be partitioned based 3863 // on the [partition_key]. 3864 TablePrefix string `protobuf:"bytes,2,opt,name=table_prefix,json=tablePrefix,proto3" json:"table_prefix,omitempty"` 3865 // The partition key for BigQuery partitioned table. 3866 PartitionKey IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey `protobuf:"varint,3,opt,name=partition_key,json=partitionKey,proto3,enum=google.cloud.asset.v1.IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey" json:"partition_key,omitempty"` 3867 // Optional. Specifies the action that occurs if the destination table or partition 3868 // already exists. The following values are supported: 3869 // 3870 // * WRITE_TRUNCATE: If the table or partition already exists, BigQuery 3871 // overwrites the entire table or all the partitions data. 3872 // * WRITE_APPEND: If the table or partition already exists, BigQuery 3873 // appends the data to the table or the latest partition. 3874 // * WRITE_EMPTY: If the table already exists and contains data, an error is 3875 // returned. 3876 // 3877 // The default value is WRITE_APPEND. Each action is atomic and only occurs 3878 // if BigQuery is able to complete the job successfully. Details are at 3879 // https://cloud.google.com/bigquery/docs/loading-data-local#appending_to_or_overwriting_a_table_using_a_local_file. 3880 WriteDisposition string `protobuf:"bytes,4,opt,name=write_disposition,json=writeDisposition,proto3" json:"write_disposition,omitempty"` 3881} 3882 3883func (x *IamPolicyAnalysisOutputConfig_BigQueryDestination) Reset() { 3884 *x = IamPolicyAnalysisOutputConfig_BigQueryDestination{} 3885 if protoimpl.UnsafeEnabled { 3886 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[44] 3887 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3888 ms.StoreMessageInfo(mi) 3889 } 3890} 3891 3892func (x *IamPolicyAnalysisOutputConfig_BigQueryDestination) String() string { 3893 return protoimpl.X.MessageStringOf(x) 3894} 3895 3896func (*IamPolicyAnalysisOutputConfig_BigQueryDestination) ProtoMessage() {} 3897 3898func (x *IamPolicyAnalysisOutputConfig_BigQueryDestination) ProtoReflect() protoreflect.Message { 3899 mi := &file_google_cloud_asset_v1_asset_service_proto_msgTypes[44] 3900 if protoimpl.UnsafeEnabled && x != nil { 3901 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3902 if ms.LoadMessageInfo() == nil { 3903 ms.StoreMessageInfo(mi) 3904 } 3905 return ms 3906 } 3907 return mi.MessageOf(x) 3908} 3909 3910// Deprecated: Use IamPolicyAnalysisOutputConfig_BigQueryDestination.ProtoReflect.Descriptor instead. 3911func (*IamPolicyAnalysisOutputConfig_BigQueryDestination) Descriptor() ([]byte, []int) { 3912 return file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP(), []int{29, 1} 3913} 3914 3915func (x *IamPolicyAnalysisOutputConfig_BigQueryDestination) GetDataset() string { 3916 if x != nil { 3917 return x.Dataset 3918 } 3919 return "" 3920} 3921 3922func (x *IamPolicyAnalysisOutputConfig_BigQueryDestination) GetTablePrefix() string { 3923 if x != nil { 3924 return x.TablePrefix 3925 } 3926 return "" 3927} 3928 3929func (x *IamPolicyAnalysisOutputConfig_BigQueryDestination) GetPartitionKey() IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey { 3930 if x != nil { 3931 return x.PartitionKey 3932 } 3933 return IamPolicyAnalysisOutputConfig_BigQueryDestination_PARTITION_KEY_UNSPECIFIED 3934} 3935 3936func (x *IamPolicyAnalysisOutputConfig_BigQueryDestination) GetWriteDisposition() string { 3937 if x != nil { 3938 return x.WriteDisposition 3939 } 3940 return "" 3941} 3942 3943var File_google_cloud_asset_v1_asset_service_proto protoreflect.FileDescriptor 3944 3945var file_google_cloud_asset_v1_asset_service_proto_rawDesc = []byte{ 3946 0x0a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 3947 0x73, 0x73, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x65, 3948 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x67, 0x6f, 0x6f, 3949 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 3950 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 3951 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3952 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 3953 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3954 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 3955 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 3956 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 3957 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 3958 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x73, 0x73, 3959 0x65, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3960 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 3961 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 3962 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 3963 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 3964 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 3965 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 3966 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 3967 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 3968 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 3969 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 3970 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 3971 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 3972 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 3973 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 3974 0x70, 0x65, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x67, 0x0a, 3975 0x23, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 3976 0x79, 0x4c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 3977 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 3978 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3979 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 3980 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 3981 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xf5, 0x02, 0x0a, 0x13, 0x45, 0x78, 0x70, 0x6f, 0x72, 3982 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 3983 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 3984 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x12, 0x1f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x73, 0x73, 3985 0x65, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 3986 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 3987 0x37, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 3988 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3989 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 3990 0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 3991 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 3992 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 3993 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 3994 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 3995 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 3996 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 3997 0x12, 0x4d, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 3998 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3999 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 4000 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 4001 0x02, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 4002 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x5f, 4003 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6c, 4004 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0xe3, 4005 0x01, 0x0a, 0x14, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 4006 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 4007 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 4008 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 4009 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 4010 0x12, 0x48, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 4011 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4012 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 4013 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x6f, 0x75, 4014 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x48, 0x0a, 0x0d, 0x6f, 0x75, 4015 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 4016 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 4017 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 4018 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 4019 0x73, 0x75, 0x6c, 0x74, 0x22, 0xe0, 0x02, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 4020 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 4021 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 4022 0x41, 0x21, 0x12, 0x1f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x67, 4023 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, 4024 0x73, 0x65, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x72, 4025 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 4026 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 4027 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 4028 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 4029 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 4030 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 4031 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6f, 4032 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 4033 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 4034 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 4035 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 4036 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 4037 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 4038 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 4039 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x07, 4040 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 4041 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0xab, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 4042 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 4043 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 4044 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 4045 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x72, 4046 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 4047 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4048 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 4049 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x26, 0x0a, 4050 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 4051 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 4052 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xd2, 0x02, 0x0a, 0x1c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 4053 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 4054 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 4055 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x12, 0x1f, 4056 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4057 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 4058 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 4059 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x73, 4060 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 4061 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 4062 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 4063 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 4064 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 4065 0x54, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 4066 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 4067 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 4068 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 4069 0x77, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 4070 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 4071 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 4072 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 4073 0x6e, 0x73, 0x68, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x5d, 0x0a, 0x1d, 0x42, 0x61, 4074 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 4075 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x61, 4076 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 4077 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 4078 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x41, 0x73, 0x73, 0x65, 4079 0x74, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x11, 0x43, 0x72, 4080 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 4081 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 4082 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x07, 4083 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 4084 0x41, 0x02, 0x52, 0x06, 0x66, 0x65, 0x65, 0x64, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x04, 0x66, 0x65, 4085 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4086 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 4087 0x2e, 0x46, 0x65, 0x65, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x66, 0x65, 0x65, 0x64, 4088 0x22, 0x4c, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 4089 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 4090 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 4091 0x73, 0x73, 0x65, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 4092 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x65, 0x64, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2f, 4093 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x65, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 4094 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 4095 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 4096 0x46, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x65, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 4097 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x66, 0x65, 0x65, 0x64, 0x73, 0x18, 0x01, 0x20, 4098 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 4099 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x64, 4100 0x52, 0x05, 0x66, 0x65, 0x65, 0x64, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 4101 0x74, 0x65, 0x46, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 4102 0x04, 0x66, 0x65, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 4103 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 4104 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x66, 4105 0x65, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 4106 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4107 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 4108 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 4109 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x4f, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 4110 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 4111 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 4112 0x0a, 0x1e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 4113 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x65, 0x64, 4114 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x75, 4115 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x50, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 0x64, 4116 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 4117 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 4118 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 4119 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x63, 0x73, 0x44, 0x65, 4120 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x14, 0x62, 0x69, 0x67, 4121 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 4122 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4123 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 4124 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 4125 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x44, 4126 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 4127 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x61, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 4128 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x47, 0x0a, 0x0a, 0x67, 0x63, 0x73, 4129 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 4130 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 4131 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 4132 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x52, 0x65, 0x73, 0x75, 4133 0x6c, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x25, 0x0a, 0x0f, 4134 0x47, 0x63, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 4135 0x12, 0x0a, 0x04, 0x75, 0x72, 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x75, 4136 0x72, 0x69, 0x73, 0x22, 0x53, 0x0a, 0x0e, 0x47, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 4137 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 4138 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x1f, 0x0a, 0x0a, 0x75, 0x72, 0x69, 4139 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 4140 0x09, 0x75, 0x72, 0x69, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x6f, 0x62, 4141 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x22, 0xf6, 0x01, 0x0a, 0x13, 0x42, 0x69, 0x67, 4142 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4143 0x12, 0x1d, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 4144 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 4145 0x19, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 4146 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 4147 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 4148 0x12, 0x4b, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 4149 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4150 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 4151 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0d, 4152 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x42, 0x0a, 4153 0x1e, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 4154 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 4155 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x54, 4156 0x61, 0x62, 0x6c, 0x65, 0x73, 0x50, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 4157 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 4158 0x70, 0x65, 0x63, 0x12, 0x56, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 4159 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 4160 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 4161 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 4162 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x52, 0x0c, 0x70, 4163 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x22, 0x4e, 0x0a, 0x0c, 0x50, 4164 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x19, 0x50, 4165 0x41, 0x52, 0x54, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 4166 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 4167 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, 0x51, 4168 0x55, 0x45, 0x53, 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x02, 0x22, 0x29, 0x0a, 0x11, 0x50, 4169 0x75, 0x62, 0x73, 0x75, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4170 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 4171 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x7c, 0x0a, 0x10, 0x46, 0x65, 0x65, 0x64, 0x4f, 0x75, 4172 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x59, 0x0a, 0x12, 0x70, 0x75, 4173 0x62, 0x73, 0x75, 0x62, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4174 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4175 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 4176 0x75, 0x62, 0x73, 0x75, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4177 0x48, 0x00, 0x52, 0x11, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 4178 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 4179 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf8, 0x03, 0x0a, 0x04, 0x46, 0x65, 0x65, 0x64, 0x12, 0x17, 0x0a, 4180 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 4181 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 4182 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x73, 0x73, 4183 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 4184 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x73, 4185 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 4186 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 4187 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 4188 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 4189 0x70, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 4190 0x5a, 0x0a, 0x12, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 4191 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 4192 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 4193 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 4194 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x66, 0x65, 0x65, 0x64, 0x4f, 4195 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x09, 0x63, 4196 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 4197 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x78, 0x70, 4198 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 4199 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 4200 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 4201 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x73, 0x3a, 0x91, 0x01, 0xea, 0x41, 4202 0x8d, 0x01, 0x0a, 0x1e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x67, 4203 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 4204 0x65, 0x64, 0x12, 0x1f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 4205 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x66, 0x65, 0x65, 0x64, 0x73, 0x2f, 0x7b, 0x66, 0x65, 4206 0x65, 0x64, 0x7d, 0x12, 0x1d, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x6f, 4207 0x6c, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x66, 0x65, 0x65, 0x64, 0x73, 0x2f, 0x7b, 0x66, 0x65, 0x65, 4208 0x64, 0x7d, 0x12, 0x29, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4209 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 4210 0x2f, 0x66, 0x65, 0x65, 0x64, 0x73, 0x2f, 0x7b, 0x66, 0x65, 0x65, 0x64, 0x7d, 0x20, 0x01, 0x22, 4211 0x9b, 0x02, 0x0a, 0x19, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 4212 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 4213 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 4214 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 4215 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x71, 0x75, 4216 0x65, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 4217 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x61, 4218 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 4219 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 4220 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 4221 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 4222 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 4223 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 4224 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 4225 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x08, 0x20, 0x01, 4226 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 4227 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 4228 0xe0, 0x41, 0x01, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x8b, 0x01, 4229 0x0a, 0x1a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 4230 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x07, 4231 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 4232 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 4233 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 4234 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 4235 0x6c, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 4236 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 4237 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xdf, 0x01, 0x0a, 0x1b, 4238 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 4239 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 4240 0x63, 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 4241 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 4242 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 4243 0x79, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 4244 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 4245 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 4246 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 4247 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 4248 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 4249 0x01, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1e, 0x0a, 4250 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 4251 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x8e, 0x01, 4252 0x0a, 0x1c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x49, 0x61, 0x6d, 0x50, 0x6f, 4253 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 4254 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 4255 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 4256 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 4257 0x79, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 4258 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 4259 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 4260 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xcf, 4261 0x09, 0x0a, 0x16, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 4262 0x79, 0x73, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x63, 0x6f, 4263 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x73, 4264 0x63, 0x6f, 0x70, 0x65, 0x12, 0x70, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 4265 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 4266 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 4267 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 4268 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 4269 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 4270 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 4271 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x70, 0x0a, 0x11, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 4272 0x74, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 4273 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 4274 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 4275 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 4276 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 4277 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 4278 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x6a, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 4279 0x73, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 4280 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 4281 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 4282 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 4283 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 4284 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x65, 0x6c, 0x65, 4285 0x63, 0x74, 0x6f, 0x72, 0x12, 0x54, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 4286 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 4287 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 4288 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 4289 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x03, 0xe0, 0x41, 4290 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x70, 0x0a, 0x11, 0x63, 0x6f, 4291 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 4292 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 4293 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 4294 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 4295 0x75, 0x65, 0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 4296 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x64, 4297 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x1a, 0x45, 0x0a, 0x10, 4298 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 4299 0x12, 0x31, 0x0a, 0x12, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 4300 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 4301 0x02, 0x52, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 4302 0x61, 0x6d, 0x65, 0x1a, 0x33, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 4303 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 4304 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 4305 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x52, 0x0a, 0x0e, 0x41, 0x63, 0x63, 0x65, 4306 0x73, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x72, 0x6f, 4307 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 4308 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 4309 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 4310 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xcf, 0x02, 0x0a, 4311 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x61, 4312 0x6e, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 4313 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 4314 0x70, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 4315 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x65, 4316 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x65, 0x78, 4317 0x70, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 4318 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x61, 0x6e, 4319 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x15, 0x6f, 0x75, 4320 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x64, 4321 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 4322 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x64, 4323 0x67, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 4324 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 4325 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 4326 0x70, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x25, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 4327 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 4328 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 4329 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x22, 0x61, 0x6e, 0x61, 0x6c, 4330 0x79, 0x7a, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 4331 0x74, 0x49, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x60, 4332 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 4333 0x78, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 4334 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4335 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 4336 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 4337 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 4338 0x22, 0xc1, 0x01, 0x0a, 0x17, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 4339 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x59, 0x0a, 0x0e, 4340 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 4341 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 4342 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 4343 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 0x75, 4344 0x65, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 4345 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 4346 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 4347 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 4348 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 4349 0x41, 0x01, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 4350 0x65, 0x6f, 0x75, 0x74, 0x22, 0x8f, 0x05, 0x0a, 0x18, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 4351 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 4352 0x65, 0x12, 0x66, 0x0a, 0x0d, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 4353 0x69, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4354 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 4355 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 4356 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 4357 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x0c, 0x6d, 0x61, 0x69, 4358 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x96, 0x01, 0x0a, 0x26, 0x73, 0x65, 4359 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6d, 4360 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 4361 0x79, 0x73, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 4362 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 4363 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 4364 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x61, 0x6d, 0x50, 4365 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x23, 0x73, 4366 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6d, 0x70, 4367 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 4368 0x69, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x5f, 0x65, 0x78, 0x70, 0x6c, 4369 0x6f, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x75, 0x6c, 0x6c, 4370 0x79, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x64, 0x1a, 0xca, 0x02, 0x0a, 0x11, 0x49, 0x61, 4371 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 4372 0x54, 0x0a, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x72, 4373 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4374 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 4375 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 4376 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x0d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 4377 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x59, 0x0a, 0x10, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 4378 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 4379 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 4380 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 4381 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 4382 0x0f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 4383 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 4384 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x45, 4385 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x64, 0x12, 0x5d, 0x0a, 0x13, 0x6e, 0x6f, 0x6e, 0x5f, 0x63, 4386 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x05, 4387 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 4388 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 4389 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 4390 0x61, 0x74, 0x65, 0x52, 0x11, 0x6e, 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 4391 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x94, 0x05, 0x0a, 0x1d, 0x49, 0x61, 0x6d, 0x50, 0x6f, 4392 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4f, 0x75, 0x74, 0x70, 4393 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6e, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 4394 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 4395 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 4396 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 4397 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 4398 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 4399 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x63, 0x73, 0x44, 0x65, 0x73, 4400 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7d, 0x0a, 0x14, 0x62, 0x69, 0x67, 0x71, 4401 0x75, 0x65, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4402 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4403 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 4404 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 4405 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x69, 0x67, 4406 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4407 0x48, 0x00, 0x52, 0x13, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 4408 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x27, 0x0a, 0x0e, 0x47, 0x63, 0x73, 0x44, 0x65, 4409 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x69, 4410 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x75, 0x72, 0x69, 4411 0x1a, 0xcb, 0x02, 0x0a, 0x13, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 4412 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 4413 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 4414 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 4415 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 4416 0x41, 0x02, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 4417 0x7a, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 4418 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4419 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 4420 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 4421 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x69, 0x67, 4422 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4423 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x52, 0x0c, 0x70, 4424 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x11, 0x77, 4425 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 4426 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x77, 0x72, 0x69, 4427 0x74, 0x65, 0x44, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3f, 0x0a, 4428 0x0c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 4429 0x19, 0x50, 0x41, 0x52, 0x54, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x55, 4430 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 4431 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x42, 0x0d, 4432 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xdf, 0x01, 4433 0x0a, 0x22, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 4434 0x63, 0x79, 0x4c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 4435 0x75, 0x65, 0x73, 0x74, 0x12, 0x59, 0x0a, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 4436 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 4437 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 4438 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 4439 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 4440 0x52, 0x0d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 4441 0x5e, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 4442 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4443 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 4444 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 4445 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 4446 0x02, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 4447 0x25, 0x0a, 0x23, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 4448 0x69, 0x63, 0x79, 0x4c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 4449 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf9, 0x01, 0x0a, 0x12, 0x41, 0x6e, 0x61, 0x6c, 0x79, 4450 0x7a, 0x65, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 4451 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 4452 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x32, 4453 0x0a, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 4454 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 4455 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 4456 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x04, 0x76, 0x69, 0x65, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 4457 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 4458 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 4459 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 4460 0x79, 0x73, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x76, 0x69, 0x65, 0x77, 0x22, 0x42, 4461 0x0a, 0x0c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1d, 4462 0x0a, 0x19, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 4463 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 4464 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x41, 0x53, 0x49, 0x43, 4465 0x10, 0x02, 0x22, 0x5f, 0x0a, 0x13, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x4d, 0x6f, 0x76, 4466 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0d, 0x6d, 0x6f, 0x76, 4467 0x65, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 4468 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 4469 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x41, 0x6e, 0x61, 4470 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x0c, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 4471 0x73, 0x69, 0x73, 0x22, 0xb0, 0x01, 0x0a, 0x0c, 0x4d, 0x6f, 0x76, 0x65, 0x41, 0x6e, 0x61, 0x6c, 4472 0x79, 0x73, 0x69, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 4473 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 4474 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x61, 0x6e, 0x61, 0x6c, 0x79, 4475 0x73, 0x69, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 4476 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 4477 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 4478 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x08, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 4479 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 4480 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 4481 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 4482 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x12, 0x4d, 0x6f, 0x76, 0x65, 0x41, 4483 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3d, 0x0a, 4484 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 4485 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 4486 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x49, 0x6d, 0x70, 0x61, 4487 0x63, 0x74, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x08, 4488 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 4489 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 4490 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x49, 0x6d, 0x70, 0x61, 0x63, 4491 0x74, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x24, 0x0a, 0x0a, 0x4d, 4492 0x6f, 0x76, 0x65, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 4493 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 4494 0x6c, 0x2a, 0x90, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 4495 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 4496 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 4497 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 4498 0x0a, 0x49, 0x41, 0x4d, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x02, 0x12, 0x0e, 0x0a, 4499 0x0a, 0x4f, 0x52, 0x47, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x04, 0x12, 0x11, 0x0a, 4500 0x0d, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x05, 4501 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x53, 0x5f, 0x49, 0x4e, 0x56, 0x45, 0x4e, 0x54, 0x4f, 0x52, 0x59, 4502 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x48, 4503 0x49, 0x50, 0x10, 0x07, 0x32, 0xf7, 0x11, 0x0a, 0x0c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x65, 4504 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xde, 0x01, 0x0a, 0x0c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 4505 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4506 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 4507 0x78, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 4508 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 4509 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 4510 0x6e, 0x22, 0x82, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 4511 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x2a, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x78, 0x70, 4512 0x6f, 0x72, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x57, 0x0a, 4513 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 4514 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x73, 0x73, 4515 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x67, 0x6f, 0x6f, 4516 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 4517 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 4518 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 4519 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 4520 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 4521 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 4522 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 4523 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 4524 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 4525 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 4526 0x2a, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 4527 0x72, 0x65, 0x6e, 0x74, 0x12, 0xb2, 0x01, 0x0a, 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 4528 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x33, 4529 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 4530 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x41, 4531 0x73, 0x73, 0x65, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 4532 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 4533 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 4534 0x68, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 4535 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 4536 0x28, 0x12, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x2a, 4537 0x2f, 0x2a, 0x7d, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 4538 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x7f, 0x0a, 0x0a, 0x43, 0x72, 0x65, 4539 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x64, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4540 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 4541 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 4542 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 4543 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x64, 0x22, 0x2a, 4544 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 4545 0x65, 0x6e, 0x74, 0x3d, 0x2a, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x65, 0x64, 0x73, 0x3a, 0x01, 4546 0x2a, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x74, 0x0a, 0x07, 0x47, 0x65, 4547 0x74, 0x46, 0x65, 0x65, 0x64, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 4548 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 4549 0x74, 0x46, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 4550 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 4551 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x64, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 4552 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x2a, 0x2f, 0x2a, 4553 0x2f, 0x66, 0x65, 0x65, 0x64, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 4554 0x12, 0x87, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x65, 0x64, 0x73, 0x12, 0x27, 4555 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 4556 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x65, 0x64, 0x73, 4557 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4558 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 4559 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x65, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 4560 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 4561 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x2a, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x65, 0x64, 4562 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x82, 0x01, 0x0a, 0x0a, 0x55, 4563 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x64, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 4564 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 4565 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 4566 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 4567 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x64, 4568 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x32, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x66, 4569 0x65, 0x65, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x2a, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x65, 4570 0x64, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x66, 0x65, 0x65, 0x64, 0x12, 4571 0x75, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x65, 0x64, 0x12, 0x28, 0x2e, 4572 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 4573 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x65, 0x64, 4574 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4575 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 4576 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 4577 0x6d, 0x65, 0x3d, 0x2a, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x65, 0x64, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 4578 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xbf, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 4579 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x30, 0x2e, 4580 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 4581 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x52, 4582 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 4583 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 4584 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c, 4585 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 4586 0x73, 0x65, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x76, 0x31, 0x2f, 4587 0x7b, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x3d, 0x2a, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x61, 0x72, 4588 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0xda, 0x41, 4589 0x17, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x2c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2c, 0x61, 0x73, 0x73, 4590 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0xbb, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x61, 4591 0x72, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 4592 0x73, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 4593 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 4594 0x41, 0x6c, 0x6c, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 4595 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 4596 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 4597 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 4598 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 4599 0x02, 0x26, 0x12, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x3d, 0x2a, 4600 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x49, 0x61, 0x6d, 4601 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0xda, 0x41, 0x0b, 0x73, 0x63, 0x6f, 0x70, 0x65, 4602 0x2c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0xac, 0x01, 0x0a, 0x10, 0x41, 0x6e, 0x61, 0x6c, 0x79, 4603 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 4604 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 4605 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 4606 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 4607 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 4608 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 4609 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 4610 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 4611 0x73, 0x69, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x3d, 4612 0x2a, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 4613 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0xb8, 0x02, 0x0a, 0x1b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 4614 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 4615 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 4616 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 4617 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4c, 0x6f, 4618 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 4619 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 4620 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 4621 0xbe, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x22, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 4622 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x63, 4623 0x6f, 0x70, 0x65, 0x3d, 0x2a, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 4624 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 4625 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x76, 0x0a, 0x39, 0x67, 0x6f, 0x6f, 0x67, 4626 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 4627 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 4628 0x63, 0x79, 0x4c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 4629 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 4630 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 4631 0x6c, 0x79, 0x7a, 0x65, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4c, 0x6f, 0x6e, 4632 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 4633 0x12, 0x8c, 0x01, 0x0a, 0x0b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x4d, 0x6f, 0x76, 0x65, 4634 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 4635 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 4636 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x6f, 4637 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 4638 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x4d, 0x6f, 0x76, 0x65, 0x52, 4639 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 4640 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3d, 0x2a, 4641 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x4d, 0x6f, 0x76, 0x65, 0x1a, 4642 0x4d, 0xca, 0x41, 0x19, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x67, 4643 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 4644 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 4645 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 4646 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x9c, 4647 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 4648 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x41, 0x73, 4649 0x73, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 4650 0x01, 0x5a, 0x3a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 4651 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 4652 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 4653 0x73, 0x73, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x73, 0x73, 0x65, 0x74, 0xaa, 0x02, 0x15, 4654 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x73, 0x73, 4655 0x65, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 4656 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x06, 0x70, 4657 0x72, 0x6f, 0x74, 0x6f, 0x33, 4658} 4659 4660var ( 4661 file_google_cloud_asset_v1_asset_service_proto_rawDescOnce sync.Once 4662 file_google_cloud_asset_v1_asset_service_proto_rawDescData = file_google_cloud_asset_v1_asset_service_proto_rawDesc 4663) 4664 4665func file_google_cloud_asset_v1_asset_service_proto_rawDescGZIP() []byte { 4666 file_google_cloud_asset_v1_asset_service_proto_rawDescOnce.Do(func() { 4667 file_google_cloud_asset_v1_asset_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_asset_v1_asset_service_proto_rawDescData) 4668 }) 4669 return file_google_cloud_asset_v1_asset_service_proto_rawDescData 4670} 4671 4672var file_google_cloud_asset_v1_asset_service_proto_enumTypes = make([]protoimpl.EnumInfo, 4) 4673var file_google_cloud_asset_v1_asset_service_proto_msgTypes = make([]protoimpl.MessageInfo, 45) 4674var file_google_cloud_asset_v1_asset_service_proto_goTypes = []interface{}{ 4675 (ContentType)(0), // 0: google.cloud.asset.v1.ContentType 4676 (PartitionSpec_PartitionKey)(0), // 1: google.cloud.asset.v1.PartitionSpec.PartitionKey 4677 (IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey)(0), // 2: google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.BigQueryDestination.PartitionKey 4678 (AnalyzeMoveRequest_AnalysisView)(0), // 3: google.cloud.asset.v1.AnalyzeMoveRequest.AnalysisView 4679 (*AnalyzeIamPolicyLongrunningMetadata)(nil), // 4: google.cloud.asset.v1.AnalyzeIamPolicyLongrunningMetadata 4680 (*ExportAssetsRequest)(nil), // 5: google.cloud.asset.v1.ExportAssetsRequest 4681 (*ExportAssetsResponse)(nil), // 6: google.cloud.asset.v1.ExportAssetsResponse 4682 (*ListAssetsRequest)(nil), // 7: google.cloud.asset.v1.ListAssetsRequest 4683 (*ListAssetsResponse)(nil), // 8: google.cloud.asset.v1.ListAssetsResponse 4684 (*BatchGetAssetsHistoryRequest)(nil), // 9: google.cloud.asset.v1.BatchGetAssetsHistoryRequest 4685 (*BatchGetAssetsHistoryResponse)(nil), // 10: google.cloud.asset.v1.BatchGetAssetsHistoryResponse 4686 (*CreateFeedRequest)(nil), // 11: google.cloud.asset.v1.CreateFeedRequest 4687 (*GetFeedRequest)(nil), // 12: google.cloud.asset.v1.GetFeedRequest 4688 (*ListFeedsRequest)(nil), // 13: google.cloud.asset.v1.ListFeedsRequest 4689 (*ListFeedsResponse)(nil), // 14: google.cloud.asset.v1.ListFeedsResponse 4690 (*UpdateFeedRequest)(nil), // 15: google.cloud.asset.v1.UpdateFeedRequest 4691 (*DeleteFeedRequest)(nil), // 16: google.cloud.asset.v1.DeleteFeedRequest 4692 (*OutputConfig)(nil), // 17: google.cloud.asset.v1.OutputConfig 4693 (*OutputResult)(nil), // 18: google.cloud.asset.v1.OutputResult 4694 (*GcsOutputResult)(nil), // 19: google.cloud.asset.v1.GcsOutputResult 4695 (*GcsDestination)(nil), // 20: google.cloud.asset.v1.GcsDestination 4696 (*BigQueryDestination)(nil), // 21: google.cloud.asset.v1.BigQueryDestination 4697 (*PartitionSpec)(nil), // 22: google.cloud.asset.v1.PartitionSpec 4698 (*PubsubDestination)(nil), // 23: google.cloud.asset.v1.PubsubDestination 4699 (*FeedOutputConfig)(nil), // 24: google.cloud.asset.v1.FeedOutputConfig 4700 (*Feed)(nil), // 25: google.cloud.asset.v1.Feed 4701 (*SearchAllResourcesRequest)(nil), // 26: google.cloud.asset.v1.SearchAllResourcesRequest 4702 (*SearchAllResourcesResponse)(nil), // 27: google.cloud.asset.v1.SearchAllResourcesResponse 4703 (*SearchAllIamPoliciesRequest)(nil), // 28: google.cloud.asset.v1.SearchAllIamPoliciesRequest 4704 (*SearchAllIamPoliciesResponse)(nil), // 29: google.cloud.asset.v1.SearchAllIamPoliciesResponse 4705 (*IamPolicyAnalysisQuery)(nil), // 30: google.cloud.asset.v1.IamPolicyAnalysisQuery 4706 (*AnalyzeIamPolicyRequest)(nil), // 31: google.cloud.asset.v1.AnalyzeIamPolicyRequest 4707 (*AnalyzeIamPolicyResponse)(nil), // 32: google.cloud.asset.v1.AnalyzeIamPolicyResponse 4708 (*IamPolicyAnalysisOutputConfig)(nil), // 33: google.cloud.asset.v1.IamPolicyAnalysisOutputConfig 4709 (*AnalyzeIamPolicyLongrunningRequest)(nil), // 34: google.cloud.asset.v1.AnalyzeIamPolicyLongrunningRequest 4710 (*AnalyzeIamPolicyLongrunningResponse)(nil), // 35: google.cloud.asset.v1.AnalyzeIamPolicyLongrunningResponse 4711 (*AnalyzeMoveRequest)(nil), // 36: google.cloud.asset.v1.AnalyzeMoveRequest 4712 (*AnalyzeMoveResponse)(nil), // 37: google.cloud.asset.v1.AnalyzeMoveResponse 4713 (*MoveAnalysis)(nil), // 38: google.cloud.asset.v1.MoveAnalysis 4714 (*MoveAnalysisResult)(nil), // 39: google.cloud.asset.v1.MoveAnalysisResult 4715 (*MoveImpact)(nil), // 40: google.cloud.asset.v1.MoveImpact 4716 (*IamPolicyAnalysisQuery_ResourceSelector)(nil), // 41: google.cloud.asset.v1.IamPolicyAnalysisQuery.ResourceSelector 4717 (*IamPolicyAnalysisQuery_IdentitySelector)(nil), // 42: google.cloud.asset.v1.IamPolicyAnalysisQuery.IdentitySelector 4718 (*IamPolicyAnalysisQuery_AccessSelector)(nil), // 43: google.cloud.asset.v1.IamPolicyAnalysisQuery.AccessSelector 4719 (*IamPolicyAnalysisQuery_Options)(nil), // 44: google.cloud.asset.v1.IamPolicyAnalysisQuery.Options 4720 (*IamPolicyAnalysisQuery_ConditionContext)(nil), // 45: google.cloud.asset.v1.IamPolicyAnalysisQuery.ConditionContext 4721 (*AnalyzeIamPolicyResponse_IamPolicyAnalysis)(nil), // 46: google.cloud.asset.v1.AnalyzeIamPolicyResponse.IamPolicyAnalysis 4722 (*IamPolicyAnalysisOutputConfig_GcsDestination)(nil), // 47: google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.GcsDestination 4723 (*IamPolicyAnalysisOutputConfig_BigQueryDestination)(nil), // 48: google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.BigQueryDestination 4724 (*timestamppb.Timestamp)(nil), // 49: google.protobuf.Timestamp 4725 (*Asset)(nil), // 50: google.cloud.asset.v1.Asset 4726 (*TimeWindow)(nil), // 51: google.cloud.asset.v1.TimeWindow 4727 (*TemporalAsset)(nil), // 52: google.cloud.asset.v1.TemporalAsset 4728 (*fieldmaskpb.FieldMask)(nil), // 53: google.protobuf.FieldMask 4729 (*expr.Expr)(nil), // 54: google.type.Expr 4730 (*ResourceSearchResult)(nil), // 55: google.cloud.asset.v1.ResourceSearchResult 4731 (*IamPolicySearchResult)(nil), // 56: google.cloud.asset.v1.IamPolicySearchResult 4732 (*durationpb.Duration)(nil), // 57: google.protobuf.Duration 4733 (*status.Status)(nil), // 58: google.rpc.Status 4734 (*IamPolicyAnalysisResult)(nil), // 59: google.cloud.asset.v1.IamPolicyAnalysisResult 4735 (*IamPolicyAnalysisState)(nil), // 60: google.cloud.asset.v1.IamPolicyAnalysisState 4736 (*longrunning.Operation)(nil), // 61: google.longrunning.Operation 4737 (*emptypb.Empty)(nil), // 62: google.protobuf.Empty 4738} 4739var file_google_cloud_asset_v1_asset_service_proto_depIdxs = []int32{ 4740 49, // 0: google.cloud.asset.v1.AnalyzeIamPolicyLongrunningMetadata.create_time:type_name -> google.protobuf.Timestamp 4741 49, // 1: google.cloud.asset.v1.ExportAssetsRequest.read_time:type_name -> google.protobuf.Timestamp 4742 0, // 2: google.cloud.asset.v1.ExportAssetsRequest.content_type:type_name -> google.cloud.asset.v1.ContentType 4743 17, // 3: google.cloud.asset.v1.ExportAssetsRequest.output_config:type_name -> google.cloud.asset.v1.OutputConfig 4744 49, // 4: google.cloud.asset.v1.ExportAssetsResponse.read_time:type_name -> google.protobuf.Timestamp 4745 17, // 5: google.cloud.asset.v1.ExportAssetsResponse.output_config:type_name -> google.cloud.asset.v1.OutputConfig 4746 18, // 6: google.cloud.asset.v1.ExportAssetsResponse.output_result:type_name -> google.cloud.asset.v1.OutputResult 4747 49, // 7: google.cloud.asset.v1.ListAssetsRequest.read_time:type_name -> google.protobuf.Timestamp 4748 0, // 8: google.cloud.asset.v1.ListAssetsRequest.content_type:type_name -> google.cloud.asset.v1.ContentType 4749 49, // 9: google.cloud.asset.v1.ListAssetsResponse.read_time:type_name -> google.protobuf.Timestamp 4750 50, // 10: google.cloud.asset.v1.ListAssetsResponse.assets:type_name -> google.cloud.asset.v1.Asset 4751 0, // 11: google.cloud.asset.v1.BatchGetAssetsHistoryRequest.content_type:type_name -> google.cloud.asset.v1.ContentType 4752 51, // 12: google.cloud.asset.v1.BatchGetAssetsHistoryRequest.read_time_window:type_name -> google.cloud.asset.v1.TimeWindow 4753 52, // 13: google.cloud.asset.v1.BatchGetAssetsHistoryResponse.assets:type_name -> google.cloud.asset.v1.TemporalAsset 4754 25, // 14: google.cloud.asset.v1.CreateFeedRequest.feed:type_name -> google.cloud.asset.v1.Feed 4755 25, // 15: google.cloud.asset.v1.ListFeedsResponse.feeds:type_name -> google.cloud.asset.v1.Feed 4756 25, // 16: google.cloud.asset.v1.UpdateFeedRequest.feed:type_name -> google.cloud.asset.v1.Feed 4757 53, // 17: google.cloud.asset.v1.UpdateFeedRequest.update_mask:type_name -> google.protobuf.FieldMask 4758 20, // 18: google.cloud.asset.v1.OutputConfig.gcs_destination:type_name -> google.cloud.asset.v1.GcsDestination 4759 21, // 19: google.cloud.asset.v1.OutputConfig.bigquery_destination:type_name -> google.cloud.asset.v1.BigQueryDestination 4760 19, // 20: google.cloud.asset.v1.OutputResult.gcs_result:type_name -> google.cloud.asset.v1.GcsOutputResult 4761 22, // 21: google.cloud.asset.v1.BigQueryDestination.partition_spec:type_name -> google.cloud.asset.v1.PartitionSpec 4762 1, // 22: google.cloud.asset.v1.PartitionSpec.partition_key:type_name -> google.cloud.asset.v1.PartitionSpec.PartitionKey 4763 23, // 23: google.cloud.asset.v1.FeedOutputConfig.pubsub_destination:type_name -> google.cloud.asset.v1.PubsubDestination 4764 0, // 24: google.cloud.asset.v1.Feed.content_type:type_name -> google.cloud.asset.v1.ContentType 4765 24, // 25: google.cloud.asset.v1.Feed.feed_output_config:type_name -> google.cloud.asset.v1.FeedOutputConfig 4766 54, // 26: google.cloud.asset.v1.Feed.condition:type_name -> google.type.Expr 4767 53, // 27: google.cloud.asset.v1.SearchAllResourcesRequest.read_mask:type_name -> google.protobuf.FieldMask 4768 55, // 28: google.cloud.asset.v1.SearchAllResourcesResponse.results:type_name -> google.cloud.asset.v1.ResourceSearchResult 4769 56, // 29: google.cloud.asset.v1.SearchAllIamPoliciesResponse.results:type_name -> google.cloud.asset.v1.IamPolicySearchResult 4770 41, // 30: google.cloud.asset.v1.IamPolicyAnalysisQuery.resource_selector:type_name -> google.cloud.asset.v1.IamPolicyAnalysisQuery.ResourceSelector 4771 42, // 31: google.cloud.asset.v1.IamPolicyAnalysisQuery.identity_selector:type_name -> google.cloud.asset.v1.IamPolicyAnalysisQuery.IdentitySelector 4772 43, // 32: google.cloud.asset.v1.IamPolicyAnalysisQuery.access_selector:type_name -> google.cloud.asset.v1.IamPolicyAnalysisQuery.AccessSelector 4773 44, // 33: google.cloud.asset.v1.IamPolicyAnalysisQuery.options:type_name -> google.cloud.asset.v1.IamPolicyAnalysisQuery.Options 4774 45, // 34: google.cloud.asset.v1.IamPolicyAnalysisQuery.condition_context:type_name -> google.cloud.asset.v1.IamPolicyAnalysisQuery.ConditionContext 4775 30, // 35: google.cloud.asset.v1.AnalyzeIamPolicyRequest.analysis_query:type_name -> google.cloud.asset.v1.IamPolicyAnalysisQuery 4776 57, // 36: google.cloud.asset.v1.AnalyzeIamPolicyRequest.execution_timeout:type_name -> google.protobuf.Duration 4777 46, // 37: google.cloud.asset.v1.AnalyzeIamPolicyResponse.main_analysis:type_name -> google.cloud.asset.v1.AnalyzeIamPolicyResponse.IamPolicyAnalysis 4778 46, // 38: google.cloud.asset.v1.AnalyzeIamPolicyResponse.service_account_impersonation_analysis:type_name -> google.cloud.asset.v1.AnalyzeIamPolicyResponse.IamPolicyAnalysis 4779 47, // 39: google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.gcs_destination:type_name -> google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.GcsDestination 4780 48, // 40: google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.bigquery_destination:type_name -> google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.BigQueryDestination 4781 30, // 41: google.cloud.asset.v1.AnalyzeIamPolicyLongrunningRequest.analysis_query:type_name -> google.cloud.asset.v1.IamPolicyAnalysisQuery 4782 33, // 42: google.cloud.asset.v1.AnalyzeIamPolicyLongrunningRequest.output_config:type_name -> google.cloud.asset.v1.IamPolicyAnalysisOutputConfig 4783 3, // 43: google.cloud.asset.v1.AnalyzeMoveRequest.view:type_name -> google.cloud.asset.v1.AnalyzeMoveRequest.AnalysisView 4784 38, // 44: google.cloud.asset.v1.AnalyzeMoveResponse.move_analysis:type_name -> google.cloud.asset.v1.MoveAnalysis 4785 39, // 45: google.cloud.asset.v1.MoveAnalysis.analysis:type_name -> google.cloud.asset.v1.MoveAnalysisResult 4786 58, // 46: google.cloud.asset.v1.MoveAnalysis.error:type_name -> google.rpc.Status 4787 40, // 47: google.cloud.asset.v1.MoveAnalysisResult.blockers:type_name -> google.cloud.asset.v1.MoveImpact 4788 40, // 48: google.cloud.asset.v1.MoveAnalysisResult.warnings:type_name -> google.cloud.asset.v1.MoveImpact 4789 49, // 49: google.cloud.asset.v1.IamPolicyAnalysisQuery.ConditionContext.access_time:type_name -> google.protobuf.Timestamp 4790 30, // 50: google.cloud.asset.v1.AnalyzeIamPolicyResponse.IamPolicyAnalysis.analysis_query:type_name -> google.cloud.asset.v1.IamPolicyAnalysisQuery 4791 59, // 51: google.cloud.asset.v1.AnalyzeIamPolicyResponse.IamPolicyAnalysis.analysis_results:type_name -> google.cloud.asset.v1.IamPolicyAnalysisResult 4792 60, // 52: google.cloud.asset.v1.AnalyzeIamPolicyResponse.IamPolicyAnalysis.non_critical_errors:type_name -> google.cloud.asset.v1.IamPolicyAnalysisState 4793 2, // 53: google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.BigQueryDestination.partition_key:type_name -> google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.BigQueryDestination.PartitionKey 4794 5, // 54: google.cloud.asset.v1.AssetService.ExportAssets:input_type -> google.cloud.asset.v1.ExportAssetsRequest 4795 7, // 55: google.cloud.asset.v1.AssetService.ListAssets:input_type -> google.cloud.asset.v1.ListAssetsRequest 4796 9, // 56: google.cloud.asset.v1.AssetService.BatchGetAssetsHistory:input_type -> google.cloud.asset.v1.BatchGetAssetsHistoryRequest 4797 11, // 57: google.cloud.asset.v1.AssetService.CreateFeed:input_type -> google.cloud.asset.v1.CreateFeedRequest 4798 12, // 58: google.cloud.asset.v1.AssetService.GetFeed:input_type -> google.cloud.asset.v1.GetFeedRequest 4799 13, // 59: google.cloud.asset.v1.AssetService.ListFeeds:input_type -> google.cloud.asset.v1.ListFeedsRequest 4800 15, // 60: google.cloud.asset.v1.AssetService.UpdateFeed:input_type -> google.cloud.asset.v1.UpdateFeedRequest 4801 16, // 61: google.cloud.asset.v1.AssetService.DeleteFeed:input_type -> google.cloud.asset.v1.DeleteFeedRequest 4802 26, // 62: google.cloud.asset.v1.AssetService.SearchAllResources:input_type -> google.cloud.asset.v1.SearchAllResourcesRequest 4803 28, // 63: google.cloud.asset.v1.AssetService.SearchAllIamPolicies:input_type -> google.cloud.asset.v1.SearchAllIamPoliciesRequest 4804 31, // 64: google.cloud.asset.v1.AssetService.AnalyzeIamPolicy:input_type -> google.cloud.asset.v1.AnalyzeIamPolicyRequest 4805 34, // 65: google.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning:input_type -> google.cloud.asset.v1.AnalyzeIamPolicyLongrunningRequest 4806 36, // 66: google.cloud.asset.v1.AssetService.AnalyzeMove:input_type -> google.cloud.asset.v1.AnalyzeMoveRequest 4807 61, // 67: google.cloud.asset.v1.AssetService.ExportAssets:output_type -> google.longrunning.Operation 4808 8, // 68: google.cloud.asset.v1.AssetService.ListAssets:output_type -> google.cloud.asset.v1.ListAssetsResponse 4809 10, // 69: google.cloud.asset.v1.AssetService.BatchGetAssetsHistory:output_type -> google.cloud.asset.v1.BatchGetAssetsHistoryResponse 4810 25, // 70: google.cloud.asset.v1.AssetService.CreateFeed:output_type -> google.cloud.asset.v1.Feed 4811 25, // 71: google.cloud.asset.v1.AssetService.GetFeed:output_type -> google.cloud.asset.v1.Feed 4812 14, // 72: google.cloud.asset.v1.AssetService.ListFeeds:output_type -> google.cloud.asset.v1.ListFeedsResponse 4813 25, // 73: google.cloud.asset.v1.AssetService.UpdateFeed:output_type -> google.cloud.asset.v1.Feed 4814 62, // 74: google.cloud.asset.v1.AssetService.DeleteFeed:output_type -> google.protobuf.Empty 4815 27, // 75: google.cloud.asset.v1.AssetService.SearchAllResources:output_type -> google.cloud.asset.v1.SearchAllResourcesResponse 4816 29, // 76: google.cloud.asset.v1.AssetService.SearchAllIamPolicies:output_type -> google.cloud.asset.v1.SearchAllIamPoliciesResponse 4817 32, // 77: google.cloud.asset.v1.AssetService.AnalyzeIamPolicy:output_type -> google.cloud.asset.v1.AnalyzeIamPolicyResponse 4818 61, // 78: google.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning:output_type -> google.longrunning.Operation 4819 37, // 79: google.cloud.asset.v1.AssetService.AnalyzeMove:output_type -> google.cloud.asset.v1.AnalyzeMoveResponse 4820 67, // [67:80] is the sub-list for method output_type 4821 54, // [54:67] is the sub-list for method input_type 4822 54, // [54:54] is the sub-list for extension type_name 4823 54, // [54:54] is the sub-list for extension extendee 4824 0, // [0:54] is the sub-list for field type_name 4825} 4826 4827func init() { file_google_cloud_asset_v1_asset_service_proto_init() } 4828func file_google_cloud_asset_v1_asset_service_proto_init() { 4829 if File_google_cloud_asset_v1_asset_service_proto != nil { 4830 return 4831 } 4832 file_google_cloud_asset_v1_assets_proto_init() 4833 if !protoimpl.UnsafeEnabled { 4834 file_google_cloud_asset_v1_asset_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 4835 switch v := v.(*AnalyzeIamPolicyLongrunningMetadata); i { 4836 case 0: 4837 return &v.state 4838 case 1: 4839 return &v.sizeCache 4840 case 2: 4841 return &v.unknownFields 4842 default: 4843 return nil 4844 } 4845 } 4846 file_google_cloud_asset_v1_asset_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 4847 switch v := v.(*ExportAssetsRequest); i { 4848 case 0: 4849 return &v.state 4850 case 1: 4851 return &v.sizeCache 4852 case 2: 4853 return &v.unknownFields 4854 default: 4855 return nil 4856 } 4857 } 4858 file_google_cloud_asset_v1_asset_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 4859 switch v := v.(*ExportAssetsResponse); i { 4860 case 0: 4861 return &v.state 4862 case 1: 4863 return &v.sizeCache 4864 case 2: 4865 return &v.unknownFields 4866 default: 4867 return nil 4868 } 4869 } 4870 file_google_cloud_asset_v1_asset_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 4871 switch v := v.(*ListAssetsRequest); i { 4872 case 0: 4873 return &v.state 4874 case 1: 4875 return &v.sizeCache 4876 case 2: 4877 return &v.unknownFields 4878 default: 4879 return nil 4880 } 4881 } 4882 file_google_cloud_asset_v1_asset_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 4883 switch v := v.(*ListAssetsResponse); i { 4884 case 0: 4885 return &v.state 4886 case 1: 4887 return &v.sizeCache 4888 case 2: 4889 return &v.unknownFields 4890 default: 4891 return nil 4892 } 4893 } 4894 file_google_cloud_asset_v1_asset_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 4895 switch v := v.(*BatchGetAssetsHistoryRequest); i { 4896 case 0: 4897 return &v.state 4898 case 1: 4899 return &v.sizeCache 4900 case 2: 4901 return &v.unknownFields 4902 default: 4903 return nil 4904 } 4905 } 4906 file_google_cloud_asset_v1_asset_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 4907 switch v := v.(*BatchGetAssetsHistoryResponse); i { 4908 case 0: 4909 return &v.state 4910 case 1: 4911 return &v.sizeCache 4912 case 2: 4913 return &v.unknownFields 4914 default: 4915 return nil 4916 } 4917 } 4918 file_google_cloud_asset_v1_asset_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 4919 switch v := v.(*CreateFeedRequest); i { 4920 case 0: 4921 return &v.state 4922 case 1: 4923 return &v.sizeCache 4924 case 2: 4925 return &v.unknownFields 4926 default: 4927 return nil 4928 } 4929 } 4930 file_google_cloud_asset_v1_asset_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 4931 switch v := v.(*GetFeedRequest); i { 4932 case 0: 4933 return &v.state 4934 case 1: 4935 return &v.sizeCache 4936 case 2: 4937 return &v.unknownFields 4938 default: 4939 return nil 4940 } 4941 } 4942 file_google_cloud_asset_v1_asset_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 4943 switch v := v.(*ListFeedsRequest); i { 4944 case 0: 4945 return &v.state 4946 case 1: 4947 return &v.sizeCache 4948 case 2: 4949 return &v.unknownFields 4950 default: 4951 return nil 4952 } 4953 } 4954 file_google_cloud_asset_v1_asset_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 4955 switch v := v.(*ListFeedsResponse); i { 4956 case 0: 4957 return &v.state 4958 case 1: 4959 return &v.sizeCache 4960 case 2: 4961 return &v.unknownFields 4962 default: 4963 return nil 4964 } 4965 } 4966 file_google_cloud_asset_v1_asset_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 4967 switch v := v.(*UpdateFeedRequest); i { 4968 case 0: 4969 return &v.state 4970 case 1: 4971 return &v.sizeCache 4972 case 2: 4973 return &v.unknownFields 4974 default: 4975 return nil 4976 } 4977 } 4978 file_google_cloud_asset_v1_asset_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 4979 switch v := v.(*DeleteFeedRequest); i { 4980 case 0: 4981 return &v.state 4982 case 1: 4983 return &v.sizeCache 4984 case 2: 4985 return &v.unknownFields 4986 default: 4987 return nil 4988 } 4989 } 4990 file_google_cloud_asset_v1_asset_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 4991 switch v := v.(*OutputConfig); i { 4992 case 0: 4993 return &v.state 4994 case 1: 4995 return &v.sizeCache 4996 case 2: 4997 return &v.unknownFields 4998 default: 4999 return nil 5000 } 5001 } 5002 file_google_cloud_asset_v1_asset_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 5003 switch v := v.(*OutputResult); i { 5004 case 0: 5005 return &v.state 5006 case 1: 5007 return &v.sizeCache 5008 case 2: 5009 return &v.unknownFields 5010 default: 5011 return nil 5012 } 5013 } 5014 file_google_cloud_asset_v1_asset_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 5015 switch v := v.(*GcsOutputResult); i { 5016 case 0: 5017 return &v.state 5018 case 1: 5019 return &v.sizeCache 5020 case 2: 5021 return &v.unknownFields 5022 default: 5023 return nil 5024 } 5025 } 5026 file_google_cloud_asset_v1_asset_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 5027 switch v := v.(*GcsDestination); i { 5028 case 0: 5029 return &v.state 5030 case 1: 5031 return &v.sizeCache 5032 case 2: 5033 return &v.unknownFields 5034 default: 5035 return nil 5036 } 5037 } 5038 file_google_cloud_asset_v1_asset_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 5039 switch v := v.(*BigQueryDestination); i { 5040 case 0: 5041 return &v.state 5042 case 1: 5043 return &v.sizeCache 5044 case 2: 5045 return &v.unknownFields 5046 default: 5047 return nil 5048 } 5049 } 5050 file_google_cloud_asset_v1_asset_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 5051 switch v := v.(*PartitionSpec); i { 5052 case 0: 5053 return &v.state 5054 case 1: 5055 return &v.sizeCache 5056 case 2: 5057 return &v.unknownFields 5058 default: 5059 return nil 5060 } 5061 } 5062 file_google_cloud_asset_v1_asset_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 5063 switch v := v.(*PubsubDestination); i { 5064 case 0: 5065 return &v.state 5066 case 1: 5067 return &v.sizeCache 5068 case 2: 5069 return &v.unknownFields 5070 default: 5071 return nil 5072 } 5073 } 5074 file_google_cloud_asset_v1_asset_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 5075 switch v := v.(*FeedOutputConfig); i { 5076 case 0: 5077 return &v.state 5078 case 1: 5079 return &v.sizeCache 5080 case 2: 5081 return &v.unknownFields 5082 default: 5083 return nil 5084 } 5085 } 5086 file_google_cloud_asset_v1_asset_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 5087 switch v := v.(*Feed); i { 5088 case 0: 5089 return &v.state 5090 case 1: 5091 return &v.sizeCache 5092 case 2: 5093 return &v.unknownFields 5094 default: 5095 return nil 5096 } 5097 } 5098 file_google_cloud_asset_v1_asset_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 5099 switch v := v.(*SearchAllResourcesRequest); i { 5100 case 0: 5101 return &v.state 5102 case 1: 5103 return &v.sizeCache 5104 case 2: 5105 return &v.unknownFields 5106 default: 5107 return nil 5108 } 5109 } 5110 file_google_cloud_asset_v1_asset_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 5111 switch v := v.(*SearchAllResourcesResponse); i { 5112 case 0: 5113 return &v.state 5114 case 1: 5115 return &v.sizeCache 5116 case 2: 5117 return &v.unknownFields 5118 default: 5119 return nil 5120 } 5121 } 5122 file_google_cloud_asset_v1_asset_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 5123 switch v := v.(*SearchAllIamPoliciesRequest); i { 5124 case 0: 5125 return &v.state 5126 case 1: 5127 return &v.sizeCache 5128 case 2: 5129 return &v.unknownFields 5130 default: 5131 return nil 5132 } 5133 } 5134 file_google_cloud_asset_v1_asset_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 5135 switch v := v.(*SearchAllIamPoliciesResponse); i { 5136 case 0: 5137 return &v.state 5138 case 1: 5139 return &v.sizeCache 5140 case 2: 5141 return &v.unknownFields 5142 default: 5143 return nil 5144 } 5145 } 5146 file_google_cloud_asset_v1_asset_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 5147 switch v := v.(*IamPolicyAnalysisQuery); i { 5148 case 0: 5149 return &v.state 5150 case 1: 5151 return &v.sizeCache 5152 case 2: 5153 return &v.unknownFields 5154 default: 5155 return nil 5156 } 5157 } 5158 file_google_cloud_asset_v1_asset_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 5159 switch v := v.(*AnalyzeIamPolicyRequest); i { 5160 case 0: 5161 return &v.state 5162 case 1: 5163 return &v.sizeCache 5164 case 2: 5165 return &v.unknownFields 5166 default: 5167 return nil 5168 } 5169 } 5170 file_google_cloud_asset_v1_asset_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 5171 switch v := v.(*AnalyzeIamPolicyResponse); i { 5172 case 0: 5173 return &v.state 5174 case 1: 5175 return &v.sizeCache 5176 case 2: 5177 return &v.unknownFields 5178 default: 5179 return nil 5180 } 5181 } 5182 file_google_cloud_asset_v1_asset_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 5183 switch v := v.(*IamPolicyAnalysisOutputConfig); i { 5184 case 0: 5185 return &v.state 5186 case 1: 5187 return &v.sizeCache 5188 case 2: 5189 return &v.unknownFields 5190 default: 5191 return nil 5192 } 5193 } 5194 file_google_cloud_asset_v1_asset_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 5195 switch v := v.(*AnalyzeIamPolicyLongrunningRequest); i { 5196 case 0: 5197 return &v.state 5198 case 1: 5199 return &v.sizeCache 5200 case 2: 5201 return &v.unknownFields 5202 default: 5203 return nil 5204 } 5205 } 5206 file_google_cloud_asset_v1_asset_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 5207 switch v := v.(*AnalyzeIamPolicyLongrunningResponse); i { 5208 case 0: 5209 return &v.state 5210 case 1: 5211 return &v.sizeCache 5212 case 2: 5213 return &v.unknownFields 5214 default: 5215 return nil 5216 } 5217 } 5218 file_google_cloud_asset_v1_asset_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 5219 switch v := v.(*AnalyzeMoveRequest); i { 5220 case 0: 5221 return &v.state 5222 case 1: 5223 return &v.sizeCache 5224 case 2: 5225 return &v.unknownFields 5226 default: 5227 return nil 5228 } 5229 } 5230 file_google_cloud_asset_v1_asset_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 5231 switch v := v.(*AnalyzeMoveResponse); i { 5232 case 0: 5233 return &v.state 5234 case 1: 5235 return &v.sizeCache 5236 case 2: 5237 return &v.unknownFields 5238 default: 5239 return nil 5240 } 5241 } 5242 file_google_cloud_asset_v1_asset_service_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 5243 switch v := v.(*MoveAnalysis); i { 5244 case 0: 5245 return &v.state 5246 case 1: 5247 return &v.sizeCache 5248 case 2: 5249 return &v.unknownFields 5250 default: 5251 return nil 5252 } 5253 } 5254 file_google_cloud_asset_v1_asset_service_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 5255 switch v := v.(*MoveAnalysisResult); i { 5256 case 0: 5257 return &v.state 5258 case 1: 5259 return &v.sizeCache 5260 case 2: 5261 return &v.unknownFields 5262 default: 5263 return nil 5264 } 5265 } 5266 file_google_cloud_asset_v1_asset_service_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { 5267 switch v := v.(*MoveImpact); i { 5268 case 0: 5269 return &v.state 5270 case 1: 5271 return &v.sizeCache 5272 case 2: 5273 return &v.unknownFields 5274 default: 5275 return nil 5276 } 5277 } 5278 file_google_cloud_asset_v1_asset_service_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { 5279 switch v := v.(*IamPolicyAnalysisQuery_ResourceSelector); i { 5280 case 0: 5281 return &v.state 5282 case 1: 5283 return &v.sizeCache 5284 case 2: 5285 return &v.unknownFields 5286 default: 5287 return nil 5288 } 5289 } 5290 file_google_cloud_asset_v1_asset_service_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { 5291 switch v := v.(*IamPolicyAnalysisQuery_IdentitySelector); i { 5292 case 0: 5293 return &v.state 5294 case 1: 5295 return &v.sizeCache 5296 case 2: 5297 return &v.unknownFields 5298 default: 5299 return nil 5300 } 5301 } 5302 file_google_cloud_asset_v1_asset_service_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { 5303 switch v := v.(*IamPolicyAnalysisQuery_AccessSelector); i { 5304 case 0: 5305 return &v.state 5306 case 1: 5307 return &v.sizeCache 5308 case 2: 5309 return &v.unknownFields 5310 default: 5311 return nil 5312 } 5313 } 5314 file_google_cloud_asset_v1_asset_service_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { 5315 switch v := v.(*IamPolicyAnalysisQuery_Options); i { 5316 case 0: 5317 return &v.state 5318 case 1: 5319 return &v.sizeCache 5320 case 2: 5321 return &v.unknownFields 5322 default: 5323 return nil 5324 } 5325 } 5326 file_google_cloud_asset_v1_asset_service_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { 5327 switch v := v.(*IamPolicyAnalysisQuery_ConditionContext); i { 5328 case 0: 5329 return &v.state 5330 case 1: 5331 return &v.sizeCache 5332 case 2: 5333 return &v.unknownFields 5334 default: 5335 return nil 5336 } 5337 } 5338 file_google_cloud_asset_v1_asset_service_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { 5339 switch v := v.(*AnalyzeIamPolicyResponse_IamPolicyAnalysis); i { 5340 case 0: 5341 return &v.state 5342 case 1: 5343 return &v.sizeCache 5344 case 2: 5345 return &v.unknownFields 5346 default: 5347 return nil 5348 } 5349 } 5350 file_google_cloud_asset_v1_asset_service_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { 5351 switch v := v.(*IamPolicyAnalysisOutputConfig_GcsDestination); i { 5352 case 0: 5353 return &v.state 5354 case 1: 5355 return &v.sizeCache 5356 case 2: 5357 return &v.unknownFields 5358 default: 5359 return nil 5360 } 5361 } 5362 file_google_cloud_asset_v1_asset_service_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { 5363 switch v := v.(*IamPolicyAnalysisOutputConfig_BigQueryDestination); i { 5364 case 0: 5365 return &v.state 5366 case 1: 5367 return &v.sizeCache 5368 case 2: 5369 return &v.unknownFields 5370 default: 5371 return nil 5372 } 5373 } 5374 } 5375 file_google_cloud_asset_v1_asset_service_proto_msgTypes[13].OneofWrappers = []interface{}{ 5376 (*OutputConfig_GcsDestination)(nil), 5377 (*OutputConfig_BigqueryDestination)(nil), 5378 } 5379 file_google_cloud_asset_v1_asset_service_proto_msgTypes[14].OneofWrappers = []interface{}{ 5380 (*OutputResult_GcsResult)(nil), 5381 } 5382 file_google_cloud_asset_v1_asset_service_proto_msgTypes[16].OneofWrappers = []interface{}{ 5383 (*GcsDestination_Uri)(nil), 5384 (*GcsDestination_UriPrefix)(nil), 5385 } 5386 file_google_cloud_asset_v1_asset_service_proto_msgTypes[20].OneofWrappers = []interface{}{ 5387 (*FeedOutputConfig_PubsubDestination)(nil), 5388 } 5389 file_google_cloud_asset_v1_asset_service_proto_msgTypes[29].OneofWrappers = []interface{}{ 5390 (*IamPolicyAnalysisOutputConfig_GcsDestination_)(nil), 5391 (*IamPolicyAnalysisOutputConfig_BigqueryDestination)(nil), 5392 } 5393 file_google_cloud_asset_v1_asset_service_proto_msgTypes[34].OneofWrappers = []interface{}{ 5394 (*MoveAnalysis_Analysis)(nil), 5395 (*MoveAnalysis_Error)(nil), 5396 } 5397 file_google_cloud_asset_v1_asset_service_proto_msgTypes[41].OneofWrappers = []interface{}{ 5398 (*IamPolicyAnalysisQuery_ConditionContext_AccessTime)(nil), 5399 } 5400 type x struct{} 5401 out := protoimpl.TypeBuilder{ 5402 File: protoimpl.DescBuilder{ 5403 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 5404 RawDescriptor: file_google_cloud_asset_v1_asset_service_proto_rawDesc, 5405 NumEnums: 4, 5406 NumMessages: 45, 5407 NumExtensions: 0, 5408 NumServices: 1, 5409 }, 5410 GoTypes: file_google_cloud_asset_v1_asset_service_proto_goTypes, 5411 DependencyIndexes: file_google_cloud_asset_v1_asset_service_proto_depIdxs, 5412 EnumInfos: file_google_cloud_asset_v1_asset_service_proto_enumTypes, 5413 MessageInfos: file_google_cloud_asset_v1_asset_service_proto_msgTypes, 5414 }.Build() 5415 File_google_cloud_asset_v1_asset_service_proto = out.File 5416 file_google_cloud_asset_v1_asset_service_proto_rawDesc = nil 5417 file_google_cloud_asset_v1_asset_service_proto_goTypes = nil 5418 file_google_cloud_asset_v1_asset_service_proto_depIdxs = nil 5419} 5420 5421// Reference imports to suppress errors if they are not otherwise used. 5422var _ context.Context 5423var _ grpc.ClientConnInterface 5424 5425// This is a compile-time assertion to ensure that this generated file 5426// is compatible with the grpc package it is being compiled against. 5427const _ = grpc.SupportPackageIsVersion6 5428 5429// AssetServiceClient is the client API for AssetService service. 5430// 5431// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 5432type AssetServiceClient interface { 5433 // Exports assets with time and resource types to a given Cloud Storage 5434 // location/BigQuery table. For Cloud Storage location destinations, the 5435 // output format is newline-delimited JSON. Each line represents a 5436 // [google.cloud.asset.v1.Asset][google.cloud.asset.v1.Asset] in the JSON format; for BigQuery table 5437 // destinations, the output table stores the fields in asset proto as columns. 5438 // This API implements the [google.longrunning.Operation][google.longrunning.Operation] API 5439 // , which allows you to keep track of the export. We recommend intervals of 5440 // at least 2 seconds with exponential retry to poll the export operation 5441 // result. For regular-size resource parent, the export operation usually 5442 // finishes within 5 minutes. 5443 ExportAssets(ctx context.Context, in *ExportAssetsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 5444 // Lists assets with time and resource types and returns paged results in 5445 // response. 5446 ListAssets(ctx context.Context, in *ListAssetsRequest, opts ...grpc.CallOption) (*ListAssetsResponse, error) 5447 // Batch gets the update history of assets that overlap a time window. 5448 // For IAM_POLICY content, this API outputs history when the asset and its 5449 // attached IAM POLICY both exist. This can create gaps in the output history. 5450 // Otherwise, this API outputs history with asset in both non-delete or 5451 // deleted status. 5452 // If a specified asset does not exist, this API returns an INVALID_ARGUMENT 5453 // error. 5454 BatchGetAssetsHistory(ctx context.Context, in *BatchGetAssetsHistoryRequest, opts ...grpc.CallOption) (*BatchGetAssetsHistoryResponse, error) 5455 // Creates a feed in a parent project/folder/organization to listen to its 5456 // asset updates. 5457 CreateFeed(ctx context.Context, in *CreateFeedRequest, opts ...grpc.CallOption) (*Feed, error) 5458 // Gets details about an asset feed. 5459 GetFeed(ctx context.Context, in *GetFeedRequest, opts ...grpc.CallOption) (*Feed, error) 5460 // Lists all asset feeds in a parent project/folder/organization. 5461 ListFeeds(ctx context.Context, in *ListFeedsRequest, opts ...grpc.CallOption) (*ListFeedsResponse, error) 5462 // Updates an asset feed configuration. 5463 UpdateFeed(ctx context.Context, in *UpdateFeedRequest, opts ...grpc.CallOption) (*Feed, error) 5464 // Deletes an asset feed. 5465 DeleteFeed(ctx context.Context, in *DeleteFeedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 5466 // Searches all Cloud resources within the specified scope, such as a project, 5467 // folder, or organization. The caller must be granted the 5468 // `cloudasset.assets.searchAllResources` permission on the desired scope, 5469 // otherwise the request will be rejected. 5470 SearchAllResources(ctx context.Context, in *SearchAllResourcesRequest, opts ...grpc.CallOption) (*SearchAllResourcesResponse, error) 5471 // Searches all IAM policies within the specified scope, such as a project, 5472 // folder, or organization. The caller must be granted the 5473 // `cloudasset.assets.searchAllIamPolicies` permission on the desired scope, 5474 // otherwise the request will be rejected. 5475 SearchAllIamPolicies(ctx context.Context, in *SearchAllIamPoliciesRequest, opts ...grpc.CallOption) (*SearchAllIamPoliciesResponse, error) 5476 // Analyzes IAM policies to answer which identities have what accesses on 5477 // which resources. 5478 AnalyzeIamPolicy(ctx context.Context, in *AnalyzeIamPolicyRequest, opts ...grpc.CallOption) (*AnalyzeIamPolicyResponse, error) 5479 // Analyzes IAM policies asynchronously to answer which identities have what 5480 // accesses on which resources, and writes the analysis results to a Google 5481 // Cloud Storage or a BigQuery destination. For Cloud Storage destination, the 5482 // output format is the JSON format that represents a 5483 // [AnalyzeIamPolicyResponse][google.cloud.asset.v1.AnalyzeIamPolicyResponse]. This method implements the 5484 // [google.longrunning.Operation][google.longrunning.Operation], which allows you to track the operation 5485 // status. We recommend intervals of at least 2 seconds with exponential 5486 // backoff retry to poll the operation result. The metadata contains the 5487 // metadata for the long-running operation. 5488 AnalyzeIamPolicyLongrunning(ctx context.Context, in *AnalyzeIamPolicyLongrunningRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 5489 // Analyze moving a resource to a specified destination without kicking off 5490 // the actual move. The analysis is best effort depending on the user's 5491 // permissions of viewing different hierarchical policies and configurations. 5492 // The policies and configuration are subject to change before the actual 5493 // resource migration takes place. 5494 AnalyzeMove(ctx context.Context, in *AnalyzeMoveRequest, opts ...grpc.CallOption) (*AnalyzeMoveResponse, error) 5495} 5496 5497type assetServiceClient struct { 5498 cc grpc.ClientConnInterface 5499} 5500 5501func NewAssetServiceClient(cc grpc.ClientConnInterface) AssetServiceClient { 5502 return &assetServiceClient{cc} 5503} 5504 5505func (c *assetServiceClient) ExportAssets(ctx context.Context, in *ExportAssetsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 5506 out := new(longrunning.Operation) 5507 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1.AssetService/ExportAssets", in, out, opts...) 5508 if err != nil { 5509 return nil, err 5510 } 5511 return out, nil 5512} 5513 5514func (c *assetServiceClient) ListAssets(ctx context.Context, in *ListAssetsRequest, opts ...grpc.CallOption) (*ListAssetsResponse, error) { 5515 out := new(ListAssetsResponse) 5516 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1.AssetService/ListAssets", in, out, opts...) 5517 if err != nil { 5518 return nil, err 5519 } 5520 return out, nil 5521} 5522 5523func (c *assetServiceClient) BatchGetAssetsHistory(ctx context.Context, in *BatchGetAssetsHistoryRequest, opts ...grpc.CallOption) (*BatchGetAssetsHistoryResponse, error) { 5524 out := new(BatchGetAssetsHistoryResponse) 5525 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1.AssetService/BatchGetAssetsHistory", in, out, opts...) 5526 if err != nil { 5527 return nil, err 5528 } 5529 return out, nil 5530} 5531 5532func (c *assetServiceClient) CreateFeed(ctx context.Context, in *CreateFeedRequest, opts ...grpc.CallOption) (*Feed, error) { 5533 out := new(Feed) 5534 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1.AssetService/CreateFeed", in, out, opts...) 5535 if err != nil { 5536 return nil, err 5537 } 5538 return out, nil 5539} 5540 5541func (c *assetServiceClient) GetFeed(ctx context.Context, in *GetFeedRequest, opts ...grpc.CallOption) (*Feed, error) { 5542 out := new(Feed) 5543 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1.AssetService/GetFeed", in, out, opts...) 5544 if err != nil { 5545 return nil, err 5546 } 5547 return out, nil 5548} 5549 5550func (c *assetServiceClient) ListFeeds(ctx context.Context, in *ListFeedsRequest, opts ...grpc.CallOption) (*ListFeedsResponse, error) { 5551 out := new(ListFeedsResponse) 5552 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1.AssetService/ListFeeds", in, out, opts...) 5553 if err != nil { 5554 return nil, err 5555 } 5556 return out, nil 5557} 5558 5559func (c *assetServiceClient) UpdateFeed(ctx context.Context, in *UpdateFeedRequest, opts ...grpc.CallOption) (*Feed, error) { 5560 out := new(Feed) 5561 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1.AssetService/UpdateFeed", in, out, opts...) 5562 if err != nil { 5563 return nil, err 5564 } 5565 return out, nil 5566} 5567 5568func (c *assetServiceClient) DeleteFeed(ctx context.Context, in *DeleteFeedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 5569 out := new(emptypb.Empty) 5570 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1.AssetService/DeleteFeed", in, out, opts...) 5571 if err != nil { 5572 return nil, err 5573 } 5574 return out, nil 5575} 5576 5577func (c *assetServiceClient) SearchAllResources(ctx context.Context, in *SearchAllResourcesRequest, opts ...grpc.CallOption) (*SearchAllResourcesResponse, error) { 5578 out := new(SearchAllResourcesResponse) 5579 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1.AssetService/SearchAllResources", in, out, opts...) 5580 if err != nil { 5581 return nil, err 5582 } 5583 return out, nil 5584} 5585 5586func (c *assetServiceClient) SearchAllIamPolicies(ctx context.Context, in *SearchAllIamPoliciesRequest, opts ...grpc.CallOption) (*SearchAllIamPoliciesResponse, error) { 5587 out := new(SearchAllIamPoliciesResponse) 5588 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1.AssetService/SearchAllIamPolicies", in, out, opts...) 5589 if err != nil { 5590 return nil, err 5591 } 5592 return out, nil 5593} 5594 5595func (c *assetServiceClient) AnalyzeIamPolicy(ctx context.Context, in *AnalyzeIamPolicyRequest, opts ...grpc.CallOption) (*AnalyzeIamPolicyResponse, error) { 5596 out := new(AnalyzeIamPolicyResponse) 5597 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1.AssetService/AnalyzeIamPolicy", in, out, opts...) 5598 if err != nil { 5599 return nil, err 5600 } 5601 return out, nil 5602} 5603 5604func (c *assetServiceClient) AnalyzeIamPolicyLongrunning(ctx context.Context, in *AnalyzeIamPolicyLongrunningRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 5605 out := new(longrunning.Operation) 5606 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1.AssetService/AnalyzeIamPolicyLongrunning", in, out, opts...) 5607 if err != nil { 5608 return nil, err 5609 } 5610 return out, nil 5611} 5612 5613func (c *assetServiceClient) AnalyzeMove(ctx context.Context, in *AnalyzeMoveRequest, opts ...grpc.CallOption) (*AnalyzeMoveResponse, error) { 5614 out := new(AnalyzeMoveResponse) 5615 err := c.cc.Invoke(ctx, "/google.cloud.asset.v1.AssetService/AnalyzeMove", in, out, opts...) 5616 if err != nil { 5617 return nil, err 5618 } 5619 return out, nil 5620} 5621 5622// AssetServiceServer is the server API for AssetService service. 5623type AssetServiceServer interface { 5624 // Exports assets with time and resource types to a given Cloud Storage 5625 // location/BigQuery table. For Cloud Storage location destinations, the 5626 // output format is newline-delimited JSON. Each line represents a 5627 // [google.cloud.asset.v1.Asset][google.cloud.asset.v1.Asset] in the JSON format; for BigQuery table 5628 // destinations, the output table stores the fields in asset proto as columns. 5629 // This API implements the [google.longrunning.Operation][google.longrunning.Operation] API 5630 // , which allows you to keep track of the export. We recommend intervals of 5631 // at least 2 seconds with exponential retry to poll the export operation 5632 // result. For regular-size resource parent, the export operation usually 5633 // finishes within 5 minutes. 5634 ExportAssets(context.Context, *ExportAssetsRequest) (*longrunning.Operation, error) 5635 // Lists assets with time and resource types and returns paged results in 5636 // response. 5637 ListAssets(context.Context, *ListAssetsRequest) (*ListAssetsResponse, error) 5638 // Batch gets the update history of assets that overlap a time window. 5639 // For IAM_POLICY content, this API outputs history when the asset and its 5640 // attached IAM POLICY both exist. This can create gaps in the output history. 5641 // Otherwise, this API outputs history with asset in both non-delete or 5642 // deleted status. 5643 // If a specified asset does not exist, this API returns an INVALID_ARGUMENT 5644 // error. 5645 BatchGetAssetsHistory(context.Context, *BatchGetAssetsHistoryRequest) (*BatchGetAssetsHistoryResponse, error) 5646 // Creates a feed in a parent project/folder/organization to listen to its 5647 // asset updates. 5648 CreateFeed(context.Context, *CreateFeedRequest) (*Feed, error) 5649 // Gets details about an asset feed. 5650 GetFeed(context.Context, *GetFeedRequest) (*Feed, error) 5651 // Lists all asset feeds in a parent project/folder/organization. 5652 ListFeeds(context.Context, *ListFeedsRequest) (*ListFeedsResponse, error) 5653 // Updates an asset feed configuration. 5654 UpdateFeed(context.Context, *UpdateFeedRequest) (*Feed, error) 5655 // Deletes an asset feed. 5656 DeleteFeed(context.Context, *DeleteFeedRequest) (*emptypb.Empty, error) 5657 // Searches all Cloud resources within the specified scope, such as a project, 5658 // folder, or organization. The caller must be granted the 5659 // `cloudasset.assets.searchAllResources` permission on the desired scope, 5660 // otherwise the request will be rejected. 5661 SearchAllResources(context.Context, *SearchAllResourcesRequest) (*SearchAllResourcesResponse, error) 5662 // Searches all IAM policies within the specified scope, such as a project, 5663 // folder, or organization. The caller must be granted the 5664 // `cloudasset.assets.searchAllIamPolicies` permission on the desired scope, 5665 // otherwise the request will be rejected. 5666 SearchAllIamPolicies(context.Context, *SearchAllIamPoliciesRequest) (*SearchAllIamPoliciesResponse, error) 5667 // Analyzes IAM policies to answer which identities have what accesses on 5668 // which resources. 5669 AnalyzeIamPolicy(context.Context, *AnalyzeIamPolicyRequest) (*AnalyzeIamPolicyResponse, error) 5670 // Analyzes IAM policies asynchronously to answer which identities have what 5671 // accesses on which resources, and writes the analysis results to a Google 5672 // Cloud Storage or a BigQuery destination. For Cloud Storage destination, the 5673 // output format is the JSON format that represents a 5674 // [AnalyzeIamPolicyResponse][google.cloud.asset.v1.AnalyzeIamPolicyResponse]. This method implements the 5675 // [google.longrunning.Operation][google.longrunning.Operation], which allows you to track the operation 5676 // status. We recommend intervals of at least 2 seconds with exponential 5677 // backoff retry to poll the operation result. The metadata contains the 5678 // metadata for the long-running operation. 5679 AnalyzeIamPolicyLongrunning(context.Context, *AnalyzeIamPolicyLongrunningRequest) (*longrunning.Operation, error) 5680 // Analyze moving a resource to a specified destination without kicking off 5681 // the actual move. The analysis is best effort depending on the user's 5682 // permissions of viewing different hierarchical policies and configurations. 5683 // The policies and configuration are subject to change before the actual 5684 // resource migration takes place. 5685 AnalyzeMove(context.Context, *AnalyzeMoveRequest) (*AnalyzeMoveResponse, error) 5686} 5687 5688// UnimplementedAssetServiceServer can be embedded to have forward compatible implementations. 5689type UnimplementedAssetServiceServer struct { 5690} 5691 5692func (*UnimplementedAssetServiceServer) ExportAssets(context.Context, *ExportAssetsRequest) (*longrunning.Operation, error) { 5693 return nil, status1.Errorf(codes.Unimplemented, "method ExportAssets not implemented") 5694} 5695func (*UnimplementedAssetServiceServer) ListAssets(context.Context, *ListAssetsRequest) (*ListAssetsResponse, error) { 5696 return nil, status1.Errorf(codes.Unimplemented, "method ListAssets not implemented") 5697} 5698func (*UnimplementedAssetServiceServer) BatchGetAssetsHistory(context.Context, *BatchGetAssetsHistoryRequest) (*BatchGetAssetsHistoryResponse, error) { 5699 return nil, status1.Errorf(codes.Unimplemented, "method BatchGetAssetsHistory not implemented") 5700} 5701func (*UnimplementedAssetServiceServer) CreateFeed(context.Context, *CreateFeedRequest) (*Feed, error) { 5702 return nil, status1.Errorf(codes.Unimplemented, "method CreateFeed not implemented") 5703} 5704func (*UnimplementedAssetServiceServer) GetFeed(context.Context, *GetFeedRequest) (*Feed, error) { 5705 return nil, status1.Errorf(codes.Unimplemented, "method GetFeed not implemented") 5706} 5707func (*UnimplementedAssetServiceServer) ListFeeds(context.Context, *ListFeedsRequest) (*ListFeedsResponse, error) { 5708 return nil, status1.Errorf(codes.Unimplemented, "method ListFeeds not implemented") 5709} 5710func (*UnimplementedAssetServiceServer) UpdateFeed(context.Context, *UpdateFeedRequest) (*Feed, error) { 5711 return nil, status1.Errorf(codes.Unimplemented, "method UpdateFeed not implemented") 5712} 5713func (*UnimplementedAssetServiceServer) DeleteFeed(context.Context, *DeleteFeedRequest) (*emptypb.Empty, error) { 5714 return nil, status1.Errorf(codes.Unimplemented, "method DeleteFeed not implemented") 5715} 5716func (*UnimplementedAssetServiceServer) SearchAllResources(context.Context, *SearchAllResourcesRequest) (*SearchAllResourcesResponse, error) { 5717 return nil, status1.Errorf(codes.Unimplemented, "method SearchAllResources not implemented") 5718} 5719func (*UnimplementedAssetServiceServer) SearchAllIamPolicies(context.Context, *SearchAllIamPoliciesRequest) (*SearchAllIamPoliciesResponse, error) { 5720 return nil, status1.Errorf(codes.Unimplemented, "method SearchAllIamPolicies not implemented") 5721} 5722func (*UnimplementedAssetServiceServer) AnalyzeIamPolicy(context.Context, *AnalyzeIamPolicyRequest) (*AnalyzeIamPolicyResponse, error) { 5723 return nil, status1.Errorf(codes.Unimplemented, "method AnalyzeIamPolicy not implemented") 5724} 5725func (*UnimplementedAssetServiceServer) AnalyzeIamPolicyLongrunning(context.Context, *AnalyzeIamPolicyLongrunningRequest) (*longrunning.Operation, error) { 5726 return nil, status1.Errorf(codes.Unimplemented, "method AnalyzeIamPolicyLongrunning not implemented") 5727} 5728func (*UnimplementedAssetServiceServer) AnalyzeMove(context.Context, *AnalyzeMoveRequest) (*AnalyzeMoveResponse, error) { 5729 return nil, status1.Errorf(codes.Unimplemented, "method AnalyzeMove not implemented") 5730} 5731 5732func RegisterAssetServiceServer(s *grpc.Server, srv AssetServiceServer) { 5733 s.RegisterService(&_AssetService_serviceDesc, srv) 5734} 5735 5736func _AssetService_ExportAssets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5737 in := new(ExportAssetsRequest) 5738 if err := dec(in); err != nil { 5739 return nil, err 5740 } 5741 if interceptor == nil { 5742 return srv.(AssetServiceServer).ExportAssets(ctx, in) 5743 } 5744 info := &grpc.UnaryServerInfo{ 5745 Server: srv, 5746 FullMethod: "/google.cloud.asset.v1.AssetService/ExportAssets", 5747 } 5748 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5749 return srv.(AssetServiceServer).ExportAssets(ctx, req.(*ExportAssetsRequest)) 5750 } 5751 return interceptor(ctx, in, info, handler) 5752} 5753 5754func _AssetService_ListAssets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5755 in := new(ListAssetsRequest) 5756 if err := dec(in); err != nil { 5757 return nil, err 5758 } 5759 if interceptor == nil { 5760 return srv.(AssetServiceServer).ListAssets(ctx, in) 5761 } 5762 info := &grpc.UnaryServerInfo{ 5763 Server: srv, 5764 FullMethod: "/google.cloud.asset.v1.AssetService/ListAssets", 5765 } 5766 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5767 return srv.(AssetServiceServer).ListAssets(ctx, req.(*ListAssetsRequest)) 5768 } 5769 return interceptor(ctx, in, info, handler) 5770} 5771 5772func _AssetService_BatchGetAssetsHistory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5773 in := new(BatchGetAssetsHistoryRequest) 5774 if err := dec(in); err != nil { 5775 return nil, err 5776 } 5777 if interceptor == nil { 5778 return srv.(AssetServiceServer).BatchGetAssetsHistory(ctx, in) 5779 } 5780 info := &grpc.UnaryServerInfo{ 5781 Server: srv, 5782 FullMethod: "/google.cloud.asset.v1.AssetService/BatchGetAssetsHistory", 5783 } 5784 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5785 return srv.(AssetServiceServer).BatchGetAssetsHistory(ctx, req.(*BatchGetAssetsHistoryRequest)) 5786 } 5787 return interceptor(ctx, in, info, handler) 5788} 5789 5790func _AssetService_CreateFeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5791 in := new(CreateFeedRequest) 5792 if err := dec(in); err != nil { 5793 return nil, err 5794 } 5795 if interceptor == nil { 5796 return srv.(AssetServiceServer).CreateFeed(ctx, in) 5797 } 5798 info := &grpc.UnaryServerInfo{ 5799 Server: srv, 5800 FullMethod: "/google.cloud.asset.v1.AssetService/CreateFeed", 5801 } 5802 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5803 return srv.(AssetServiceServer).CreateFeed(ctx, req.(*CreateFeedRequest)) 5804 } 5805 return interceptor(ctx, in, info, handler) 5806} 5807 5808func _AssetService_GetFeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5809 in := new(GetFeedRequest) 5810 if err := dec(in); err != nil { 5811 return nil, err 5812 } 5813 if interceptor == nil { 5814 return srv.(AssetServiceServer).GetFeed(ctx, in) 5815 } 5816 info := &grpc.UnaryServerInfo{ 5817 Server: srv, 5818 FullMethod: "/google.cloud.asset.v1.AssetService/GetFeed", 5819 } 5820 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5821 return srv.(AssetServiceServer).GetFeed(ctx, req.(*GetFeedRequest)) 5822 } 5823 return interceptor(ctx, in, info, handler) 5824} 5825 5826func _AssetService_ListFeeds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5827 in := new(ListFeedsRequest) 5828 if err := dec(in); err != nil { 5829 return nil, err 5830 } 5831 if interceptor == nil { 5832 return srv.(AssetServiceServer).ListFeeds(ctx, in) 5833 } 5834 info := &grpc.UnaryServerInfo{ 5835 Server: srv, 5836 FullMethod: "/google.cloud.asset.v1.AssetService/ListFeeds", 5837 } 5838 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5839 return srv.(AssetServiceServer).ListFeeds(ctx, req.(*ListFeedsRequest)) 5840 } 5841 return interceptor(ctx, in, info, handler) 5842} 5843 5844func _AssetService_UpdateFeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5845 in := new(UpdateFeedRequest) 5846 if err := dec(in); err != nil { 5847 return nil, err 5848 } 5849 if interceptor == nil { 5850 return srv.(AssetServiceServer).UpdateFeed(ctx, in) 5851 } 5852 info := &grpc.UnaryServerInfo{ 5853 Server: srv, 5854 FullMethod: "/google.cloud.asset.v1.AssetService/UpdateFeed", 5855 } 5856 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5857 return srv.(AssetServiceServer).UpdateFeed(ctx, req.(*UpdateFeedRequest)) 5858 } 5859 return interceptor(ctx, in, info, handler) 5860} 5861 5862func _AssetService_DeleteFeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5863 in := new(DeleteFeedRequest) 5864 if err := dec(in); err != nil { 5865 return nil, err 5866 } 5867 if interceptor == nil { 5868 return srv.(AssetServiceServer).DeleteFeed(ctx, in) 5869 } 5870 info := &grpc.UnaryServerInfo{ 5871 Server: srv, 5872 FullMethod: "/google.cloud.asset.v1.AssetService/DeleteFeed", 5873 } 5874 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5875 return srv.(AssetServiceServer).DeleteFeed(ctx, req.(*DeleteFeedRequest)) 5876 } 5877 return interceptor(ctx, in, info, handler) 5878} 5879 5880func _AssetService_SearchAllResources_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5881 in := new(SearchAllResourcesRequest) 5882 if err := dec(in); err != nil { 5883 return nil, err 5884 } 5885 if interceptor == nil { 5886 return srv.(AssetServiceServer).SearchAllResources(ctx, in) 5887 } 5888 info := &grpc.UnaryServerInfo{ 5889 Server: srv, 5890 FullMethod: "/google.cloud.asset.v1.AssetService/SearchAllResources", 5891 } 5892 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5893 return srv.(AssetServiceServer).SearchAllResources(ctx, req.(*SearchAllResourcesRequest)) 5894 } 5895 return interceptor(ctx, in, info, handler) 5896} 5897 5898func _AssetService_SearchAllIamPolicies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5899 in := new(SearchAllIamPoliciesRequest) 5900 if err := dec(in); err != nil { 5901 return nil, err 5902 } 5903 if interceptor == nil { 5904 return srv.(AssetServiceServer).SearchAllIamPolicies(ctx, in) 5905 } 5906 info := &grpc.UnaryServerInfo{ 5907 Server: srv, 5908 FullMethod: "/google.cloud.asset.v1.AssetService/SearchAllIamPolicies", 5909 } 5910 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5911 return srv.(AssetServiceServer).SearchAllIamPolicies(ctx, req.(*SearchAllIamPoliciesRequest)) 5912 } 5913 return interceptor(ctx, in, info, handler) 5914} 5915 5916func _AssetService_AnalyzeIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5917 in := new(AnalyzeIamPolicyRequest) 5918 if err := dec(in); err != nil { 5919 return nil, err 5920 } 5921 if interceptor == nil { 5922 return srv.(AssetServiceServer).AnalyzeIamPolicy(ctx, in) 5923 } 5924 info := &grpc.UnaryServerInfo{ 5925 Server: srv, 5926 FullMethod: "/google.cloud.asset.v1.AssetService/AnalyzeIamPolicy", 5927 } 5928 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5929 return srv.(AssetServiceServer).AnalyzeIamPolicy(ctx, req.(*AnalyzeIamPolicyRequest)) 5930 } 5931 return interceptor(ctx, in, info, handler) 5932} 5933 5934func _AssetService_AnalyzeIamPolicyLongrunning_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5935 in := new(AnalyzeIamPolicyLongrunningRequest) 5936 if err := dec(in); err != nil { 5937 return nil, err 5938 } 5939 if interceptor == nil { 5940 return srv.(AssetServiceServer).AnalyzeIamPolicyLongrunning(ctx, in) 5941 } 5942 info := &grpc.UnaryServerInfo{ 5943 Server: srv, 5944 FullMethod: "/google.cloud.asset.v1.AssetService/AnalyzeIamPolicyLongrunning", 5945 } 5946 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5947 return srv.(AssetServiceServer).AnalyzeIamPolicyLongrunning(ctx, req.(*AnalyzeIamPolicyLongrunningRequest)) 5948 } 5949 return interceptor(ctx, in, info, handler) 5950} 5951 5952func _AssetService_AnalyzeMove_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 5953 in := new(AnalyzeMoveRequest) 5954 if err := dec(in); err != nil { 5955 return nil, err 5956 } 5957 if interceptor == nil { 5958 return srv.(AssetServiceServer).AnalyzeMove(ctx, in) 5959 } 5960 info := &grpc.UnaryServerInfo{ 5961 Server: srv, 5962 FullMethod: "/google.cloud.asset.v1.AssetService/AnalyzeMove", 5963 } 5964 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 5965 return srv.(AssetServiceServer).AnalyzeMove(ctx, req.(*AnalyzeMoveRequest)) 5966 } 5967 return interceptor(ctx, in, info, handler) 5968} 5969 5970var _AssetService_serviceDesc = grpc.ServiceDesc{ 5971 ServiceName: "google.cloud.asset.v1.AssetService", 5972 HandlerType: (*AssetServiceServer)(nil), 5973 Methods: []grpc.MethodDesc{ 5974 { 5975 MethodName: "ExportAssets", 5976 Handler: _AssetService_ExportAssets_Handler, 5977 }, 5978 { 5979 MethodName: "ListAssets", 5980 Handler: _AssetService_ListAssets_Handler, 5981 }, 5982 { 5983 MethodName: "BatchGetAssetsHistory", 5984 Handler: _AssetService_BatchGetAssetsHistory_Handler, 5985 }, 5986 { 5987 MethodName: "CreateFeed", 5988 Handler: _AssetService_CreateFeed_Handler, 5989 }, 5990 { 5991 MethodName: "GetFeed", 5992 Handler: _AssetService_GetFeed_Handler, 5993 }, 5994 { 5995 MethodName: "ListFeeds", 5996 Handler: _AssetService_ListFeeds_Handler, 5997 }, 5998 { 5999 MethodName: "UpdateFeed", 6000 Handler: _AssetService_UpdateFeed_Handler, 6001 }, 6002 { 6003 MethodName: "DeleteFeed", 6004 Handler: _AssetService_DeleteFeed_Handler, 6005 }, 6006 { 6007 MethodName: "SearchAllResources", 6008 Handler: _AssetService_SearchAllResources_Handler, 6009 }, 6010 { 6011 MethodName: "SearchAllIamPolicies", 6012 Handler: _AssetService_SearchAllIamPolicies_Handler, 6013 }, 6014 { 6015 MethodName: "AnalyzeIamPolicy", 6016 Handler: _AssetService_AnalyzeIamPolicy_Handler, 6017 }, 6018 { 6019 MethodName: "AnalyzeIamPolicyLongrunning", 6020 Handler: _AssetService_AnalyzeIamPolicyLongrunning_Handler, 6021 }, 6022 { 6023 MethodName: "AnalyzeMove", 6024 Handler: _AssetService_AnalyzeMove_Handler, 6025 }, 6026 }, 6027 Streams: []grpc.StreamDesc{}, 6028 Metadata: "google/cloud/asset/v1/asset_service.proto", 6029} 6030