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