// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 // protoc v3.12.2 // source: google/analytics/admin/v1alpha/resources.proto package admin import ( reflect "reflect" sync "sync" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // The category selected for this property, used for industry benchmarking. type IndustryCategory int32 const ( // Industry category unspecified IndustryCategory_INDUSTRY_CATEGORY_UNSPECIFIED IndustryCategory = 0 // Automotive IndustryCategory_AUTOMOTIVE IndustryCategory = 1 // Business and industrial markets IndustryCategory_BUSINESS_AND_INDUSTRIAL_MARKETS IndustryCategory = 2 // Finance IndustryCategory_FINANCE IndustryCategory = 3 // Healthcare IndustryCategory_HEALTHCARE IndustryCategory = 4 // Technology IndustryCategory_TECHNOLOGY IndustryCategory = 5 // Travel IndustryCategory_TRAVEL IndustryCategory = 6 // Other IndustryCategory_OTHER IndustryCategory = 7 // Arts and entertainment IndustryCategory_ARTS_AND_ENTERTAINMENT IndustryCategory = 8 // Beauty and fitness IndustryCategory_BEAUTY_AND_FITNESS IndustryCategory = 9 // Books and literature IndustryCategory_BOOKS_AND_LITERATURE IndustryCategory = 10 // Food and drink IndustryCategory_FOOD_AND_DRINK IndustryCategory = 11 // Games IndustryCategory_GAMES IndustryCategory = 12 // Hobbies and leisure IndustryCategory_HOBBIES_AND_LEISURE IndustryCategory = 13 // Home and garden IndustryCategory_HOME_AND_GARDEN IndustryCategory = 14 // Internet and telecom IndustryCategory_INTERNET_AND_TELECOM IndustryCategory = 15 // Law and government IndustryCategory_LAW_AND_GOVERNMENT IndustryCategory = 16 // News IndustryCategory_NEWS IndustryCategory = 17 // Online communities IndustryCategory_ONLINE_COMMUNITIES IndustryCategory = 18 // People and society IndustryCategory_PEOPLE_AND_SOCIETY IndustryCategory = 19 // Pets and animals IndustryCategory_PETS_AND_ANIMALS IndustryCategory = 20 // Real estate IndustryCategory_REAL_ESTATE IndustryCategory = 21 // Reference IndustryCategory_REFERENCE IndustryCategory = 22 // Science IndustryCategory_SCIENCE IndustryCategory = 23 // Sports IndustryCategory_SPORTS IndustryCategory = 24 // Jobs and education IndustryCategory_JOBS_AND_EDUCATION IndustryCategory = 25 // Shopping IndustryCategory_SHOPPING IndustryCategory = 26 ) // Enum value maps for IndustryCategory. var ( IndustryCategory_name = map[int32]string{ 0: "INDUSTRY_CATEGORY_UNSPECIFIED", 1: "AUTOMOTIVE", 2: "BUSINESS_AND_INDUSTRIAL_MARKETS", 3: "FINANCE", 4: "HEALTHCARE", 5: "TECHNOLOGY", 6: "TRAVEL", 7: "OTHER", 8: "ARTS_AND_ENTERTAINMENT", 9: "BEAUTY_AND_FITNESS", 10: "BOOKS_AND_LITERATURE", 11: "FOOD_AND_DRINK", 12: "GAMES", 13: "HOBBIES_AND_LEISURE", 14: "HOME_AND_GARDEN", 15: "INTERNET_AND_TELECOM", 16: "LAW_AND_GOVERNMENT", 17: "NEWS", 18: "ONLINE_COMMUNITIES", 19: "PEOPLE_AND_SOCIETY", 20: "PETS_AND_ANIMALS", 21: "REAL_ESTATE", 22: "REFERENCE", 23: "SCIENCE", 24: "SPORTS", 25: "JOBS_AND_EDUCATION", 26: "SHOPPING", } IndustryCategory_value = map[string]int32{ "INDUSTRY_CATEGORY_UNSPECIFIED": 0, "AUTOMOTIVE": 1, "BUSINESS_AND_INDUSTRIAL_MARKETS": 2, "FINANCE": 3, "HEALTHCARE": 4, "TECHNOLOGY": 5, "TRAVEL": 6, "OTHER": 7, "ARTS_AND_ENTERTAINMENT": 8, "BEAUTY_AND_FITNESS": 9, "BOOKS_AND_LITERATURE": 10, "FOOD_AND_DRINK": 11, "GAMES": 12, "HOBBIES_AND_LEISURE": 13, "HOME_AND_GARDEN": 14, "INTERNET_AND_TELECOM": 15, "LAW_AND_GOVERNMENT": 16, "NEWS": 17, "ONLINE_COMMUNITIES": 18, "PEOPLE_AND_SOCIETY": 19, "PETS_AND_ANIMALS": 20, "REAL_ESTATE": 21, "REFERENCE": 22, "SCIENCE": 23, "SPORTS": 24, "JOBS_AND_EDUCATION": 25, "SHOPPING": 26, } ) func (x IndustryCategory) Enum() *IndustryCategory { p := new(IndustryCategory) *p = x return p } func (x IndustryCategory) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (IndustryCategory) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[0].Descriptor() } func (IndustryCategory) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[0] } func (x IndustryCategory) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use IndustryCategory.Descriptor instead. func (IndustryCategory) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{0} } // Various levels of service for Google Analytics. type ServiceLevel int32 const ( // Service level not specified or invalid. ServiceLevel_SERVICE_LEVEL_UNSPECIFIED ServiceLevel = 0 // The standard version of Google Analytics. ServiceLevel_GOOGLE_ANALYTICS_STANDARD ServiceLevel = 1 // The paid, premium version of Google Analytics. ServiceLevel_GOOGLE_ANALYTICS_360 ServiceLevel = 2 ) // Enum value maps for ServiceLevel. var ( ServiceLevel_name = map[int32]string{ 0: "SERVICE_LEVEL_UNSPECIFIED", 1: "GOOGLE_ANALYTICS_STANDARD", 2: "GOOGLE_ANALYTICS_360", } ServiceLevel_value = map[string]int32{ "SERVICE_LEVEL_UNSPECIFIED": 0, "GOOGLE_ANALYTICS_STANDARD": 1, "GOOGLE_ANALYTICS_360": 2, } ) func (x ServiceLevel) Enum() *ServiceLevel { p := new(ServiceLevel) *p = x return p } func (x ServiceLevel) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ServiceLevel) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[1].Descriptor() } func (ServiceLevel) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[1] } func (x ServiceLevel) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ServiceLevel.Descriptor instead. func (ServiceLevel) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{1} } // Different kinds of actors that can make changes to Google Analytics // resources. type ActorType int32 const ( // Unknown or unspecified actor type. ActorType_ACTOR_TYPE_UNSPECIFIED ActorType = 0 // Changes made by the user specified in actor_email. ActorType_USER ActorType = 1 // Changes made by the Google Analytics system. ActorType_SYSTEM ActorType = 2 // Changes made by Google Analytics support team staff. ActorType_SUPPORT ActorType = 3 ) // Enum value maps for ActorType. var ( ActorType_name = map[int32]string{ 0: "ACTOR_TYPE_UNSPECIFIED", 1: "USER", 2: "SYSTEM", 3: "SUPPORT", } ActorType_value = map[string]int32{ "ACTOR_TYPE_UNSPECIFIED": 0, "USER": 1, "SYSTEM": 2, "SUPPORT": 3, } ) func (x ActorType) Enum() *ActorType { p := new(ActorType) *p = x return p } func (x ActorType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ActorType) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[2].Descriptor() } func (ActorType) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[2] } func (x ActorType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ActorType.Descriptor instead. func (ActorType) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{2} } // Types of actions that may change a resource. type ActionType int32 const ( // Action type unknown or not specified. ActionType_ACTION_TYPE_UNSPECIFIED ActionType = 0 // Resource was created in this change. ActionType_CREATED ActionType = 1 // Resource was updated in this change. ActionType_UPDATED ActionType = 2 // Resource was deleted in this change. ActionType_DELETED ActionType = 3 ) // Enum value maps for ActionType. var ( ActionType_name = map[int32]string{ 0: "ACTION_TYPE_UNSPECIFIED", 1: "CREATED", 2: "UPDATED", 3: "DELETED", } ActionType_value = map[string]int32{ "ACTION_TYPE_UNSPECIFIED": 0, "CREATED": 1, "UPDATED": 2, "DELETED": 3, } ) func (x ActionType) Enum() *ActionType { p := new(ActionType) *p = x return p } func (x ActionType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ActionType) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[3].Descriptor() } func (ActionType) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[3] } func (x ActionType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ActionType.Descriptor instead. func (ActionType) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{3} } // Types of resources whose changes may be returned from change history. type ChangeHistoryResourceType int32 const ( // Resource type unknown or not specified. ChangeHistoryResourceType_CHANGE_HISTORY_RESOURCE_TYPE_UNSPECIFIED ChangeHistoryResourceType = 0 // Account resource ChangeHistoryResourceType_ACCOUNT ChangeHistoryResourceType = 1 // Property resource ChangeHistoryResourceType_PROPERTY ChangeHistoryResourceType = 2 // WebDataStream resource ChangeHistoryResourceType_WEB_DATA_STREAM ChangeHistoryResourceType = 3 // AndroidAppDataStream resource ChangeHistoryResourceType_ANDROID_APP_DATA_STREAM ChangeHistoryResourceType = 4 // IosAppDataStream resource ChangeHistoryResourceType_IOS_APP_DATA_STREAM ChangeHistoryResourceType = 5 // FirebaseLink resource ChangeHistoryResourceType_FIREBASE_LINK ChangeHistoryResourceType = 6 // GoogleAdsLink resource ChangeHistoryResourceType_GOOGLE_ADS_LINK ChangeHistoryResourceType = 7 // GoogleSignalsSettings resource ChangeHistoryResourceType_GOOGLE_SIGNALS_SETTINGS ChangeHistoryResourceType = 8 // ConversionEvent resource ChangeHistoryResourceType_CONVERSION_EVENT ChangeHistoryResourceType = 9 // MeasurementProtocolSecret resource ChangeHistoryResourceType_MEASUREMENT_PROTOCOL_SECRET ChangeHistoryResourceType = 10 // CustomDimension resource ChangeHistoryResourceType_CUSTOM_DIMENSION ChangeHistoryResourceType = 11 // CustomMetric resource ChangeHistoryResourceType_CUSTOM_METRIC ChangeHistoryResourceType = 12 // DataRetentionSettings resource ChangeHistoryResourceType_DATA_RETENTION_SETTINGS ChangeHistoryResourceType = 13 ) // Enum value maps for ChangeHistoryResourceType. var ( ChangeHistoryResourceType_name = map[int32]string{ 0: "CHANGE_HISTORY_RESOURCE_TYPE_UNSPECIFIED", 1: "ACCOUNT", 2: "PROPERTY", 3: "WEB_DATA_STREAM", 4: "ANDROID_APP_DATA_STREAM", 5: "IOS_APP_DATA_STREAM", 6: "FIREBASE_LINK", 7: "GOOGLE_ADS_LINK", 8: "GOOGLE_SIGNALS_SETTINGS", 9: "CONVERSION_EVENT", 10: "MEASUREMENT_PROTOCOL_SECRET", 11: "CUSTOM_DIMENSION", 12: "CUSTOM_METRIC", 13: "DATA_RETENTION_SETTINGS", } ChangeHistoryResourceType_value = map[string]int32{ "CHANGE_HISTORY_RESOURCE_TYPE_UNSPECIFIED": 0, "ACCOUNT": 1, "PROPERTY": 2, "WEB_DATA_STREAM": 3, "ANDROID_APP_DATA_STREAM": 4, "IOS_APP_DATA_STREAM": 5, "FIREBASE_LINK": 6, "GOOGLE_ADS_LINK": 7, "GOOGLE_SIGNALS_SETTINGS": 8, "CONVERSION_EVENT": 9, "MEASUREMENT_PROTOCOL_SECRET": 10, "CUSTOM_DIMENSION": 11, "CUSTOM_METRIC": 12, "DATA_RETENTION_SETTINGS": 13, } ) func (x ChangeHistoryResourceType) Enum() *ChangeHistoryResourceType { p := new(ChangeHistoryResourceType) *p = x return p } func (x ChangeHistoryResourceType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ChangeHistoryResourceType) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[4].Descriptor() } func (ChangeHistoryResourceType) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[4] } func (x ChangeHistoryResourceType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ChangeHistoryResourceType.Descriptor instead. func (ChangeHistoryResourceType) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{4} } // Status of the Google Signals settings (i.e., whether this feature has been // enabled for the property). type GoogleSignalsState int32 const ( // Google Signals status defaults to GOOGLE_SIGNALS_STATE_UNSPECIFIED to // represent that the user has not made an explicit choice. GoogleSignalsState_GOOGLE_SIGNALS_STATE_UNSPECIFIED GoogleSignalsState = 0 // Google Signals is enabled. GoogleSignalsState_GOOGLE_SIGNALS_ENABLED GoogleSignalsState = 1 // Google Signals is disabled. GoogleSignalsState_GOOGLE_SIGNALS_DISABLED GoogleSignalsState = 2 ) // Enum value maps for GoogleSignalsState. var ( GoogleSignalsState_name = map[int32]string{ 0: "GOOGLE_SIGNALS_STATE_UNSPECIFIED", 1: "GOOGLE_SIGNALS_ENABLED", 2: "GOOGLE_SIGNALS_DISABLED", } GoogleSignalsState_value = map[string]int32{ "GOOGLE_SIGNALS_STATE_UNSPECIFIED": 0, "GOOGLE_SIGNALS_ENABLED": 1, "GOOGLE_SIGNALS_DISABLED": 2, } ) func (x GoogleSignalsState) Enum() *GoogleSignalsState { p := new(GoogleSignalsState) *p = x return p } func (x GoogleSignalsState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (GoogleSignalsState) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[5].Descriptor() } func (GoogleSignalsState) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[5] } func (x GoogleSignalsState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use GoogleSignalsState.Descriptor instead. func (GoogleSignalsState) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{5} } // Consent field of the Google Signals settings (i.e., whether the user has // consented to the Google Signals terms of service.) type GoogleSignalsConsent int32 const ( // Google Signals consent value defaults to // GOOGLE_SIGNALS_CONSENT_UNSPECIFIED. This will be treated as // GOOGLE_SIGNALS_CONSENT_NOT_CONSENTED. GoogleSignalsConsent_GOOGLE_SIGNALS_CONSENT_UNSPECIFIED GoogleSignalsConsent = 0 // Terms of service have been accepted GoogleSignalsConsent_GOOGLE_SIGNALS_CONSENT_CONSENTED GoogleSignalsConsent = 2 // Terms of service have not been accepted GoogleSignalsConsent_GOOGLE_SIGNALS_CONSENT_NOT_CONSENTED GoogleSignalsConsent = 1 ) // Enum value maps for GoogleSignalsConsent. var ( GoogleSignalsConsent_name = map[int32]string{ 0: "GOOGLE_SIGNALS_CONSENT_UNSPECIFIED", 2: "GOOGLE_SIGNALS_CONSENT_CONSENTED", 1: "GOOGLE_SIGNALS_CONSENT_NOT_CONSENTED", } GoogleSignalsConsent_value = map[string]int32{ "GOOGLE_SIGNALS_CONSENT_UNSPECIFIED": 0, "GOOGLE_SIGNALS_CONSENT_CONSENTED": 2, "GOOGLE_SIGNALS_CONSENT_NOT_CONSENTED": 1, } ) func (x GoogleSignalsConsent) Enum() *GoogleSignalsConsent { p := new(GoogleSignalsConsent) *p = x return p } func (x GoogleSignalsConsent) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (GoogleSignalsConsent) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[6].Descriptor() } func (GoogleSignalsConsent) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[6] } func (x GoogleSignalsConsent) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use GoogleSignalsConsent.Descriptor instead. func (GoogleSignalsConsent) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{6} } // An indication of which product the user initiated a link proposal from. type LinkProposalInitiatingProduct int32 const ( // Unspecified product. LinkProposalInitiatingProduct_LINK_PROPOSAL_INITIATING_PRODUCT_UNSPECIFIED LinkProposalInitiatingProduct = 0 // This proposal was created by a user from Google Analytics. LinkProposalInitiatingProduct_GOOGLE_ANALYTICS LinkProposalInitiatingProduct = 1 // This proposal was created by a user from a linked product (not Google // Analytics). LinkProposalInitiatingProduct_LINKED_PRODUCT LinkProposalInitiatingProduct = 2 ) // Enum value maps for LinkProposalInitiatingProduct. var ( LinkProposalInitiatingProduct_name = map[int32]string{ 0: "LINK_PROPOSAL_INITIATING_PRODUCT_UNSPECIFIED", 1: "GOOGLE_ANALYTICS", 2: "LINKED_PRODUCT", } LinkProposalInitiatingProduct_value = map[string]int32{ "LINK_PROPOSAL_INITIATING_PRODUCT_UNSPECIFIED": 0, "GOOGLE_ANALYTICS": 1, "LINKED_PRODUCT": 2, } ) func (x LinkProposalInitiatingProduct) Enum() *LinkProposalInitiatingProduct { p := new(LinkProposalInitiatingProduct) *p = x return p } func (x LinkProposalInitiatingProduct) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (LinkProposalInitiatingProduct) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[7].Descriptor() } func (LinkProposalInitiatingProduct) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[7] } func (x LinkProposalInitiatingProduct) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use LinkProposalInitiatingProduct.Descriptor instead. func (LinkProposalInitiatingProduct) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{7} } // The state of a link proposal resource. type LinkProposalState int32 const ( // Unspecified state LinkProposalState_LINK_PROPOSAL_STATE_UNSPECIFIED LinkProposalState = 0 // This proposal is awaiting review from a Google Analytics user. This // proposal will automatically expire after some time. LinkProposalState_AWAITING_REVIEW_FROM_GOOGLE_ANALYTICS LinkProposalState = 1 // This proposal is awaiting review from a user of a linked product. This // proposal will automatically expire after some time. LinkProposalState_AWAITING_REVIEW_FROM_LINKED_PRODUCT LinkProposalState = 2 // This proposal has been withdrawn by an admin on the initiating product. // This proposal will be automatically deleted after some time. LinkProposalState_WITHDRAWN LinkProposalState = 3 // This proposal has been declined by an admin on the receiving product. This // proposal will be automatically deleted after some time. LinkProposalState_DECLINED LinkProposalState = 4 // This proposal expired due to lack of response from an admin on the // receiving product. This proposal will be automatically deleted after some // time. LinkProposalState_EXPIRED LinkProposalState = 5 // This proposal has become obsolete because a link was directly created to // the same external product resource that this proposal specifies. This // proposal will be automatically deleted after some time. LinkProposalState_OBSOLETE LinkProposalState = 6 ) // Enum value maps for LinkProposalState. var ( LinkProposalState_name = map[int32]string{ 0: "LINK_PROPOSAL_STATE_UNSPECIFIED", 1: "AWAITING_REVIEW_FROM_GOOGLE_ANALYTICS", 2: "AWAITING_REVIEW_FROM_LINKED_PRODUCT", 3: "WITHDRAWN", 4: "DECLINED", 5: "EXPIRED", 6: "OBSOLETE", } LinkProposalState_value = map[string]int32{ "LINK_PROPOSAL_STATE_UNSPECIFIED": 0, "AWAITING_REVIEW_FROM_GOOGLE_ANALYTICS": 1, "AWAITING_REVIEW_FROM_LINKED_PRODUCT": 2, "WITHDRAWN": 3, "DECLINED": 4, "EXPIRED": 5, "OBSOLETE": 6, } ) func (x LinkProposalState) Enum() *LinkProposalState { p := new(LinkProposalState) *p = x return p } func (x LinkProposalState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (LinkProposalState) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[8].Descriptor() } func (LinkProposalState) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[8] } func (x LinkProposalState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use LinkProposalState.Descriptor instead. func (LinkProposalState) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{8} } // Valid values for the scope of this dimension. type CustomDimension_DimensionScope int32 const ( // Scope unknown or not specified. CustomDimension_DIMENSION_SCOPE_UNSPECIFIED CustomDimension_DimensionScope = 0 // Dimension scoped to an event. CustomDimension_EVENT CustomDimension_DimensionScope = 1 // Dimension scoped to a user. CustomDimension_USER CustomDimension_DimensionScope = 2 ) // Enum value maps for CustomDimension_DimensionScope. var ( CustomDimension_DimensionScope_name = map[int32]string{ 0: "DIMENSION_SCOPE_UNSPECIFIED", 1: "EVENT", 2: "USER", } CustomDimension_DimensionScope_value = map[string]int32{ "DIMENSION_SCOPE_UNSPECIFIED": 0, "EVENT": 1, "USER": 2, } ) func (x CustomDimension_DimensionScope) Enum() *CustomDimension_DimensionScope { p := new(CustomDimension_DimensionScope) *p = x return p } func (x CustomDimension_DimensionScope) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CustomDimension_DimensionScope) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[9].Descriptor() } func (CustomDimension_DimensionScope) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[9] } func (x CustomDimension_DimensionScope) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CustomDimension_DimensionScope.Descriptor instead. func (CustomDimension_DimensionScope) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{22, 0} } // Possible types of representing the custom metric's value. // // Currency representation may change in the future, requiring a breaking API // change. type CustomMetric_MeasurementUnit int32 const ( // MeasurementUnit unspecified or missing. CustomMetric_MEASUREMENT_UNIT_UNSPECIFIED CustomMetric_MeasurementUnit = 0 // This metric uses default units. CustomMetric_STANDARD CustomMetric_MeasurementUnit = 1 // This metric measures a currency. CustomMetric_CURRENCY CustomMetric_MeasurementUnit = 2 // This metric measures feet. CustomMetric_FEET CustomMetric_MeasurementUnit = 3 // This metric measures meters. CustomMetric_METERS CustomMetric_MeasurementUnit = 4 // This metric measures kilometers. CustomMetric_KILOMETERS CustomMetric_MeasurementUnit = 5 // This metric measures miles. CustomMetric_MILES CustomMetric_MeasurementUnit = 6 // This metric measures milliseconds. CustomMetric_MILLISECONDS CustomMetric_MeasurementUnit = 7 // This metric measures seconds. CustomMetric_SECONDS CustomMetric_MeasurementUnit = 8 // This metric measures minutes. CustomMetric_MINUTES CustomMetric_MeasurementUnit = 9 // This metric measures hours. CustomMetric_HOURS CustomMetric_MeasurementUnit = 10 ) // Enum value maps for CustomMetric_MeasurementUnit. var ( CustomMetric_MeasurementUnit_name = map[int32]string{ 0: "MEASUREMENT_UNIT_UNSPECIFIED", 1: "STANDARD", 2: "CURRENCY", 3: "FEET", 4: "METERS", 5: "KILOMETERS", 6: "MILES", 7: "MILLISECONDS", 8: "SECONDS", 9: "MINUTES", 10: "HOURS", } CustomMetric_MeasurementUnit_value = map[string]int32{ "MEASUREMENT_UNIT_UNSPECIFIED": 0, "STANDARD": 1, "CURRENCY": 2, "FEET": 3, "METERS": 4, "KILOMETERS": 5, "MILES": 6, "MILLISECONDS": 7, "SECONDS": 8, "MINUTES": 9, "HOURS": 10, } ) func (x CustomMetric_MeasurementUnit) Enum() *CustomMetric_MeasurementUnit { p := new(CustomMetric_MeasurementUnit) *p = x return p } func (x CustomMetric_MeasurementUnit) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CustomMetric_MeasurementUnit) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[10].Descriptor() } func (CustomMetric_MeasurementUnit) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[10] } func (x CustomMetric_MeasurementUnit) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CustomMetric_MeasurementUnit.Descriptor instead. func (CustomMetric_MeasurementUnit) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{23, 0} } // The scope of this metric. type CustomMetric_MetricScope int32 const ( // Scope unknown or not specified. CustomMetric_METRIC_SCOPE_UNSPECIFIED CustomMetric_MetricScope = 0 // Metric scoped to an event. CustomMetric_EVENT CustomMetric_MetricScope = 1 ) // Enum value maps for CustomMetric_MetricScope. var ( CustomMetric_MetricScope_name = map[int32]string{ 0: "METRIC_SCOPE_UNSPECIFIED", 1: "EVENT", } CustomMetric_MetricScope_value = map[string]int32{ "METRIC_SCOPE_UNSPECIFIED": 0, "EVENT": 1, } ) func (x CustomMetric_MetricScope) Enum() *CustomMetric_MetricScope { p := new(CustomMetric_MetricScope) *p = x return p } func (x CustomMetric_MetricScope) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CustomMetric_MetricScope) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[11].Descriptor() } func (CustomMetric_MetricScope) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[11] } func (x CustomMetric_MetricScope) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CustomMetric_MetricScope.Descriptor instead. func (CustomMetric_MetricScope) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{23, 1} } // Valid values for the data retention duration. type DataRetentionSettings_RetentionDuration int32 const ( // Data retention time duration is not specified. DataRetentionSettings_RETENTION_DURATION_UNSPECIFIED DataRetentionSettings_RetentionDuration = 0 // The data retention time duration is 2 months. DataRetentionSettings_TWO_MONTHS DataRetentionSettings_RetentionDuration = 1 // The data retention time duration is 14 months. DataRetentionSettings_FOURTEEN_MONTHS DataRetentionSettings_RetentionDuration = 3 // The data retention time duration is 26 months. // Available to 360 properties only. DataRetentionSettings_TWENTY_SIX_MONTHS DataRetentionSettings_RetentionDuration = 4 // The data retention time duration is 38 months. // Available to 360 properties only. DataRetentionSettings_THIRTY_EIGHT_MONTHS DataRetentionSettings_RetentionDuration = 5 // The data retention time duration is 50 months. // Available to 360 properties only. DataRetentionSettings_FIFTY_MONTHS DataRetentionSettings_RetentionDuration = 6 ) // Enum value maps for DataRetentionSettings_RetentionDuration. var ( DataRetentionSettings_RetentionDuration_name = map[int32]string{ 0: "RETENTION_DURATION_UNSPECIFIED", 1: "TWO_MONTHS", 3: "FOURTEEN_MONTHS", 4: "TWENTY_SIX_MONTHS", 5: "THIRTY_EIGHT_MONTHS", 6: "FIFTY_MONTHS", } DataRetentionSettings_RetentionDuration_value = map[string]int32{ "RETENTION_DURATION_UNSPECIFIED": 0, "TWO_MONTHS": 1, "FOURTEEN_MONTHS": 3, "TWENTY_SIX_MONTHS": 4, "THIRTY_EIGHT_MONTHS": 5, "FIFTY_MONTHS": 6, } ) func (x DataRetentionSettings_RetentionDuration) Enum() *DataRetentionSettings_RetentionDuration { p := new(DataRetentionSettings_RetentionDuration) *p = x return p } func (x DataRetentionSettings_RetentionDuration) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DataRetentionSettings_RetentionDuration) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[12].Descriptor() } func (DataRetentionSettings_RetentionDuration) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[12] } func (x DataRetentionSettings_RetentionDuration) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use DataRetentionSettings_RetentionDuration.Descriptor instead. func (DataRetentionSettings_RetentionDuration) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{24, 0} } // A resource message representing a Google Analytics account. type Account struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name of this account. // Format: accounts/{account} // Example: "accounts/100" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Output only. Time when this account was originally created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // Output only. Time when account payload fields were last updated. UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // Required. Human-readable display name for this account. DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // Country of business. Must be a Unicode CLDR region code. RegionCode string `protobuf:"bytes,5,opt,name=region_code,json=regionCode,proto3" json:"region_code,omitempty"` // Output only. Indicates whether this Account is soft-deleted or not. Deleted // accounts are excluded from List results unless specifically requested. Deleted bool `protobuf:"varint,6,opt,name=deleted,proto3" json:"deleted,omitempty"` } func (x *Account) Reset() { *x = Account{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Account) String() string { return protoimpl.X.MessageStringOf(x) } func (*Account) ProtoMessage() {} func (x *Account) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Account.ProtoReflect.Descriptor instead. func (*Account) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{0} } func (x *Account) GetName() string { if x != nil { return x.Name } return "" } func (x *Account) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *Account) GetUpdateTime() *timestamppb.Timestamp { if x != nil { return x.UpdateTime } return nil } func (x *Account) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *Account) GetRegionCode() string { if x != nil { return x.RegionCode } return "" } func (x *Account) GetDeleted() bool { if x != nil { return x.Deleted } return false } // A resource message representing a Google Analytics GA4 property. type Property struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name of this property. // Format: properties/{property_id} // Example: "properties/1000" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Output only. Time when the entity was originally created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // Output only. Time when entity payload fields were last updated. UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // Immutable. Resource name of this property's logical parent. // // Note: The Property-Moving UI can be used to change the parent. // Format: accounts/{account} // Example: "accounts/100" Parent string `protobuf:"bytes,2,opt,name=parent,proto3" json:"parent,omitempty"` // Required. Human-readable display name for this property. // // The max allowed display name length is 100 UTF-16 code units. DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // Industry associated with this property // Example: AUTOMOTIVE, FOOD_AND_DRINK IndustryCategory IndustryCategory `protobuf:"varint,6,opt,name=industry_category,json=industryCategory,proto3,enum=google.analytics.admin.v1alpha.IndustryCategory" json:"industry_category,omitempty"` // Required. Reporting Time Zone, used as the day boundary for reports, regardless of // where the data originates. If the time zone honors DST, Analytics will // automatically adjust for the changes. // // NOTE: Changing the time zone only affects data going forward, and is not // applied retroactively. // // Format: https://www.iana.org/time-zones // Example: "America/Los_Angeles" TimeZone string `protobuf:"bytes,7,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"` // The currency type used in reports involving monetary values. // // // Format: https://en.wikipedia.org/wiki/ISO_4217 // Examples: "USD", "EUR", "JPY" CurrencyCode string `protobuf:"bytes,8,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"` // Output only. The Google Analytics service level that applies to this property. ServiceLevel ServiceLevel `protobuf:"varint,10,opt,name=service_level,json=serviceLevel,proto3,enum=google.analytics.admin.v1alpha.ServiceLevel" json:"service_level,omitempty"` // Output only. If set, the time at which this property was trashed. If not set, then this // property is not currently in the trash can. DeleteTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"` // Output only. If set, the time at which this trashed property will be permanently // deleted. If not set, then this property is not currently in the trash can // and is not slated to be deleted. ExpireTime *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` } func (x *Property) Reset() { *x = Property{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Property) String() string { return protoimpl.X.MessageStringOf(x) } func (*Property) ProtoMessage() {} func (x *Property) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Property.ProtoReflect.Descriptor instead. func (*Property) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{1} } func (x *Property) GetName() string { if x != nil { return x.Name } return "" } func (x *Property) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *Property) GetUpdateTime() *timestamppb.Timestamp { if x != nil { return x.UpdateTime } return nil } func (x *Property) GetParent() string { if x != nil { return x.Parent } return "" } func (x *Property) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *Property) GetIndustryCategory() IndustryCategory { if x != nil { return x.IndustryCategory } return IndustryCategory_INDUSTRY_CATEGORY_UNSPECIFIED } func (x *Property) GetTimeZone() string { if x != nil { return x.TimeZone } return "" } func (x *Property) GetCurrencyCode() string { if x != nil { return x.CurrencyCode } return "" } func (x *Property) GetServiceLevel() ServiceLevel { if x != nil { return x.ServiceLevel } return ServiceLevel_SERVICE_LEVEL_UNSPECIFIED } func (x *Property) GetDeleteTime() *timestamppb.Timestamp { if x != nil { return x.DeleteTime } return nil } func (x *Property) GetExpireTime() *timestamppb.Timestamp { if x != nil { return x.ExpireTime } return nil } // A resource message representing a Google Analytics Android app stream. type AndroidAppDataStream struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name of this Data Stream. // Format: properties/{property_id}/androidAppDataStreams/{stream_id} // Example: "properties/1000/androidAppDataStreams/2000" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Output only. ID of the corresponding Android app in Firebase, if any. // This ID can change if the Android app is deleted and recreated. FirebaseAppId string `protobuf:"bytes,2,opt,name=firebase_app_id,json=firebaseAppId,proto3" json:"firebase_app_id,omitempty"` // Output only. Time when this stream was originally created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // Output only. Time when stream payload fields were last updated. UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // Immutable. The package name for the app being measured. // Example: "com.example.myandroidapp" PackageName string `protobuf:"bytes,5,opt,name=package_name,json=packageName,proto3" json:"package_name,omitempty"` // Human-readable display name for the Data Stream. // // The max allowed display name length is 255 UTF-16 code units. DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` } func (x *AndroidAppDataStream) Reset() { *x = AndroidAppDataStream{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AndroidAppDataStream) String() string { return protoimpl.X.MessageStringOf(x) } func (*AndroidAppDataStream) ProtoMessage() {} func (x *AndroidAppDataStream) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AndroidAppDataStream.ProtoReflect.Descriptor instead. func (*AndroidAppDataStream) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{2} } func (x *AndroidAppDataStream) GetName() string { if x != nil { return x.Name } return "" } func (x *AndroidAppDataStream) GetFirebaseAppId() string { if x != nil { return x.FirebaseAppId } return "" } func (x *AndroidAppDataStream) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *AndroidAppDataStream) GetUpdateTime() *timestamppb.Timestamp { if x != nil { return x.UpdateTime } return nil } func (x *AndroidAppDataStream) GetPackageName() string { if x != nil { return x.PackageName } return "" } func (x *AndroidAppDataStream) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } // A resource message representing a Google Analytics IOS app stream. type IosAppDataStream struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name of this Data Stream. // Format: properties/{property_id}/iosAppDataStreams/{stream_id} // Example: "properties/1000/iosAppDataStreams/2000" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Output only. ID of the corresponding iOS app in Firebase, if any. // This ID can change if the iOS app is deleted and recreated. FirebaseAppId string `protobuf:"bytes,2,opt,name=firebase_app_id,json=firebaseAppId,proto3" json:"firebase_app_id,omitempty"` // Output only. Time when this stream was originally created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // Output only. Time when stream payload fields were last updated. UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // Required. Immutable. The Apple App Store Bundle ID for the app // Example: "com.example.myiosapp" BundleId string `protobuf:"bytes,5,opt,name=bundle_id,json=bundleId,proto3" json:"bundle_id,omitempty"` // Human-readable display name for the Data Stream. // // The max allowed display name length is 255 UTF-16 code units. DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` } func (x *IosAppDataStream) Reset() { *x = IosAppDataStream{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IosAppDataStream) String() string { return protoimpl.X.MessageStringOf(x) } func (*IosAppDataStream) ProtoMessage() {} func (x *IosAppDataStream) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use IosAppDataStream.ProtoReflect.Descriptor instead. func (*IosAppDataStream) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{3} } func (x *IosAppDataStream) GetName() string { if x != nil { return x.Name } return "" } func (x *IosAppDataStream) GetFirebaseAppId() string { if x != nil { return x.FirebaseAppId } return "" } func (x *IosAppDataStream) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *IosAppDataStream) GetUpdateTime() *timestamppb.Timestamp { if x != nil { return x.UpdateTime } return nil } func (x *IosAppDataStream) GetBundleId() string { if x != nil { return x.BundleId } return "" } func (x *IosAppDataStream) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } // A resource message representing a Google Analytics web stream. type WebDataStream struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name of this Data Stream. // Format: properties/{property_id}/webDataStreams/{stream_id} // Example: "properties/1000/webDataStreams/2000" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Output only. Analytics "Measurement ID", without the "G-" prefix. // Example: "G-1A2BCD345E" would just be "1A2BCD345E" MeasurementId string `protobuf:"bytes,2,opt,name=measurement_id,json=measurementId,proto3" json:"measurement_id,omitempty"` // Output only. ID of the corresponding web app in Firebase, if any. // This ID can change if the web app is deleted and recreated. FirebaseAppId string `protobuf:"bytes,3,opt,name=firebase_app_id,json=firebaseAppId,proto3" json:"firebase_app_id,omitempty"` // Output only. Time when this stream was originally created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // Output only. Time when stream payload fields were last updated. UpdateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // Immutable. Domain name of the web app being measured, or empty. // Example: "http://www.google.com", "https://www.google.com" DefaultUri string `protobuf:"bytes,6,opt,name=default_uri,json=defaultUri,proto3" json:"default_uri,omitempty"` // Required. Human-readable display name for the Data Stream. // // The max allowed display name length is 100 UTF-16 code units. DisplayName string `protobuf:"bytes,7,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` } func (x *WebDataStream) Reset() { *x = WebDataStream{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WebDataStream) String() string { return protoimpl.X.MessageStringOf(x) } func (*WebDataStream) ProtoMessage() {} func (x *WebDataStream) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WebDataStream.ProtoReflect.Descriptor instead. func (*WebDataStream) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{4} } func (x *WebDataStream) GetName() string { if x != nil { return x.Name } return "" } func (x *WebDataStream) GetMeasurementId() string { if x != nil { return x.MeasurementId } return "" } func (x *WebDataStream) GetFirebaseAppId() string { if x != nil { return x.FirebaseAppId } return "" } func (x *WebDataStream) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *WebDataStream) GetUpdateTime() *timestamppb.Timestamp { if x != nil { return x.UpdateTime } return nil } func (x *WebDataStream) GetDefaultUri() string { if x != nil { return x.DefaultUri } return "" } func (x *WebDataStream) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } // A resource message representing a user's permissions on an Account or // Property resource. type UserLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Example format: properties/1234/userLinks/5678 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Immutable. Email address of the user to link EmailAddress string `protobuf:"bytes,2,opt,name=email_address,json=emailAddress,proto3" json:"email_address,omitempty"` // Roles directly assigned to this user for this account or property. // // Valid values: // predefinedRoles/read // predefinedRoles/collaborate // predefinedRoles/edit // predefinedRoles/manage-users // // Excludes roles that are inherited from a higher-level entity, group, // or organization admin role. // // A UserLink that is updated to have an empty list of direct_roles will be // deleted. DirectRoles []string `protobuf:"bytes,3,rep,name=direct_roles,json=directRoles,proto3" json:"direct_roles,omitempty"` } func (x *UserLink) Reset() { *x = UserLink{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserLink) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserLink) ProtoMessage() {} func (x *UserLink) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserLink.ProtoReflect.Descriptor instead. func (*UserLink) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{5} } func (x *UserLink) GetName() string { if x != nil { return x.Name } return "" } func (x *UserLink) GetEmailAddress() string { if x != nil { return x.EmailAddress } return "" } func (x *UserLink) GetDirectRoles() []string { if x != nil { return x.DirectRoles } return nil } // Read-only resource used to summarize a principal's effective roles. type AuditUserLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Example format: properties/1234/userLinks/5678 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Email address of the linked user EmailAddress string `protobuf:"bytes,2,opt,name=email_address,json=emailAddress,proto3" json:"email_address,omitempty"` // Roles directly assigned to this user for this entity. // // Format: predefinedRoles/read // // Excludes roles that are inherited from an account (if this is for a // property), group, or organization admin role. DirectRoles []string `protobuf:"bytes,3,rep,name=direct_roles,json=directRoles,proto3" json:"direct_roles,omitempty"` // Union of all permissions a user has at this account or property (includes // direct permissions, group-inherited permissions, etc.). // // Format: predefinedRoles/read EffectiveRoles []string `protobuf:"bytes,4,rep,name=effective_roles,json=effectiveRoles,proto3" json:"effective_roles,omitempty"` } func (x *AuditUserLink) Reset() { *x = AuditUserLink{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AuditUserLink) String() string { return protoimpl.X.MessageStringOf(x) } func (*AuditUserLink) ProtoMessage() {} func (x *AuditUserLink) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AuditUserLink.ProtoReflect.Descriptor instead. func (*AuditUserLink) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{6} } func (x *AuditUserLink) GetName() string { if x != nil { return x.Name } return "" } func (x *AuditUserLink) GetEmailAddress() string { if x != nil { return x.EmailAddress } return "" } func (x *AuditUserLink) GetDirectRoles() []string { if x != nil { return x.DirectRoles } return nil } func (x *AuditUserLink) GetEffectiveRoles() []string { if x != nil { return x.EffectiveRoles } return nil } // Singleton resource under a WebDataStream, configuring measurement of // additional site interactions and content. type EnhancedMeasurementSettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name of this Data Stream. // Format: // properties/{property_id}/webDataStreams/{stream_id}/enhancedMeasurementSettings // Example: "properties/1000/webDataStreams/2000/enhancedMeasurementSettings" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Indicates whether Enhanced Measurement Settings will be used to // automatically measure interactions and content on this web stream. // // Changing this value does not affect the settings themselves, but determines // whether they are respected. StreamEnabled bool `protobuf:"varint,2,opt,name=stream_enabled,json=streamEnabled,proto3" json:"stream_enabled,omitempty"` // Output only. If enabled, capture a page view event each time a page loads or the // website changes the browser history state. PageViewsEnabled bool `protobuf:"varint,3,opt,name=page_views_enabled,json=pageViewsEnabled,proto3" json:"page_views_enabled,omitempty"` // If enabled, capture scroll events each time a visitor gets to the bottom of // a page. ScrollsEnabled bool `protobuf:"varint,4,opt,name=scrolls_enabled,json=scrollsEnabled,proto3" json:"scrolls_enabled,omitempty"` // If enabled, capture an outbound click event each time a visitor clicks a // link that leads them away from your domain. OutboundClicksEnabled bool `protobuf:"varint,5,opt,name=outbound_clicks_enabled,json=outboundClicksEnabled,proto3" json:"outbound_clicks_enabled,omitempty"` // If enabled, capture a view search results event each time a visitor // performs a search on your site (based on a query parameter). SiteSearchEnabled bool `protobuf:"varint,7,opt,name=site_search_enabled,json=siteSearchEnabled,proto3" json:"site_search_enabled,omitempty"` // If enabled, capture video play, progress, and complete events as visitors // view embedded videos on your site. VideoEngagementEnabled bool `protobuf:"varint,9,opt,name=video_engagement_enabled,json=videoEngagementEnabled,proto3" json:"video_engagement_enabled,omitempty"` // If enabled, capture a file download event each time a link is clicked with // a common document, compressed file, application, video, or audio extension. FileDownloadsEnabled bool `protobuf:"varint,10,opt,name=file_downloads_enabled,json=fileDownloadsEnabled,proto3" json:"file_downloads_enabled,omitempty"` // Output only. If enabled, capture a page view event each time a page loads. PageLoadsEnabled bool `protobuf:"varint,12,opt,name=page_loads_enabled,json=pageLoadsEnabled,proto3" json:"page_loads_enabled,omitempty"` // If enabled, capture a page view event each time the website changes the // browser history state. PageChangesEnabled bool `protobuf:"varint,13,opt,name=page_changes_enabled,json=pageChangesEnabled,proto3" json:"page_changes_enabled,omitempty"` // Required. URL query parameters to interpret as site search parameters. // Max length is 1024 characters. Must not be empty. SearchQueryParameter string `protobuf:"bytes,16,opt,name=search_query_parameter,json=searchQueryParameter,proto3" json:"search_query_parameter,omitempty"` // Additional URL query parameters. // Max length is 1024 characters. UriQueryParameter string `protobuf:"bytes,17,opt,name=uri_query_parameter,json=uriQueryParameter,proto3" json:"uri_query_parameter,omitempty"` } func (x *EnhancedMeasurementSettings) Reset() { *x = EnhancedMeasurementSettings{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EnhancedMeasurementSettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*EnhancedMeasurementSettings) ProtoMessage() {} func (x *EnhancedMeasurementSettings) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EnhancedMeasurementSettings.ProtoReflect.Descriptor instead. func (*EnhancedMeasurementSettings) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{7} } func (x *EnhancedMeasurementSettings) GetName() string { if x != nil { return x.Name } return "" } func (x *EnhancedMeasurementSettings) GetStreamEnabled() bool { if x != nil { return x.StreamEnabled } return false } func (x *EnhancedMeasurementSettings) GetPageViewsEnabled() bool { if x != nil { return x.PageViewsEnabled } return false } func (x *EnhancedMeasurementSettings) GetScrollsEnabled() bool { if x != nil { return x.ScrollsEnabled } return false } func (x *EnhancedMeasurementSettings) GetOutboundClicksEnabled() bool { if x != nil { return x.OutboundClicksEnabled } return false } func (x *EnhancedMeasurementSettings) GetSiteSearchEnabled() bool { if x != nil { return x.SiteSearchEnabled } return false } func (x *EnhancedMeasurementSettings) GetVideoEngagementEnabled() bool { if x != nil { return x.VideoEngagementEnabled } return false } func (x *EnhancedMeasurementSettings) GetFileDownloadsEnabled() bool { if x != nil { return x.FileDownloadsEnabled } return false } func (x *EnhancedMeasurementSettings) GetPageLoadsEnabled() bool { if x != nil { return x.PageLoadsEnabled } return false } func (x *EnhancedMeasurementSettings) GetPageChangesEnabled() bool { if x != nil { return x.PageChangesEnabled } return false } func (x *EnhancedMeasurementSettings) GetSearchQueryParameter() string { if x != nil { return x.SearchQueryParameter } return "" } func (x *EnhancedMeasurementSettings) GetUriQueryParameter() string { if x != nil { return x.UriQueryParameter } return "" } // A link between an GA4 property and a Firebase project. type FirebaseLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Example format: properties/1234/firebaseLinks/5678 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Immutable. Firebase project resource name. When creating a FirebaseLink, you may // provide this resource name using either a project number or project ID. // Once this resource has been created, returned FirebaseLinks will always // have a project_name that contains a project number. // // Format: 'projects/{project number}' // Example: 'projects/1234' Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` // Output only. Time when this FirebaseLink was originally created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` } func (x *FirebaseLink) Reset() { *x = FirebaseLink{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FirebaseLink) String() string { return protoimpl.X.MessageStringOf(x) } func (*FirebaseLink) ProtoMessage() {} func (x *FirebaseLink) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FirebaseLink.ProtoReflect.Descriptor instead. func (*FirebaseLink) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{8} } func (x *FirebaseLink) GetName() string { if x != nil { return x.Name } return "" } func (x *FirebaseLink) GetProject() string { if x != nil { return x.Project } return "" } func (x *FirebaseLink) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } // Read-only resource with the tag for sending data from a website to a // WebDataStream. type GlobalSiteTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name for this GlobalSiteTag resource. // Format: properties/{propertyId}/globalSiteTag Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Immutable. JavaScript code snippet to be pasted as the first item into the head tag of // every webpage to measure. Snippet string `protobuf:"bytes,2,opt,name=snippet,proto3" json:"snippet,omitempty"` } func (x *GlobalSiteTag) Reset() { *x = GlobalSiteTag{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GlobalSiteTag) String() string { return protoimpl.X.MessageStringOf(x) } func (*GlobalSiteTag) ProtoMessage() {} func (x *GlobalSiteTag) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GlobalSiteTag.ProtoReflect.Descriptor instead. func (*GlobalSiteTag) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{9} } func (x *GlobalSiteTag) GetName() string { if x != nil { return x.Name } return "" } func (x *GlobalSiteTag) GetSnippet() string { if x != nil { return x.Snippet } return "" } // A link between an GA4 property and a Google Ads account. type GoogleAdsLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} // // Note: googleAdsLinkId is not the Google Ads customer ID. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Immutable. Google Ads customer ID. CustomerId string `protobuf:"bytes,3,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` // Output only. If true, this link is for a Google Ads manager account. CanManageClients bool `protobuf:"varint,4,opt,name=can_manage_clients,json=canManageClients,proto3" json:"can_manage_clients,omitempty"` // Enable personalized advertising features with this integration. // Automatically publish my Google Analytics audience lists and Google // Analytics remarketing events/parameters to the linked Google Ads account. // If this field is not set on create/update, it will be defaulted to true. AdsPersonalizationEnabled *wrapperspb.BoolValue `protobuf:"bytes,5,opt,name=ads_personalization_enabled,json=adsPersonalizationEnabled,proto3" json:"ads_personalization_enabled,omitempty"` // Output only. Time when this link was originally created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // Output only. Time when this link was last updated. UpdateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // Output only. Email address of the user that created the link. // An empty string will be returned if the email address can't be retrieved. CreatorEmailAddress string `protobuf:"bytes,9,opt,name=creator_email_address,json=creatorEmailAddress,proto3" json:"creator_email_address,omitempty"` } func (x *GoogleAdsLink) Reset() { *x = GoogleAdsLink{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoogleAdsLink) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoogleAdsLink) ProtoMessage() {} func (x *GoogleAdsLink) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GoogleAdsLink.ProtoReflect.Descriptor instead. func (*GoogleAdsLink) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{10} } func (x *GoogleAdsLink) GetName() string { if x != nil { return x.Name } return "" } func (x *GoogleAdsLink) GetCustomerId() string { if x != nil { return x.CustomerId } return "" } func (x *GoogleAdsLink) GetCanManageClients() bool { if x != nil { return x.CanManageClients } return false } func (x *GoogleAdsLink) GetAdsPersonalizationEnabled() *wrapperspb.BoolValue { if x != nil { return x.AdsPersonalizationEnabled } return nil } func (x *GoogleAdsLink) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *GoogleAdsLink) GetUpdateTime() *timestamppb.Timestamp { if x != nil { return x.UpdateTime } return nil } func (x *GoogleAdsLink) GetCreatorEmailAddress() string { if x != nil { return x.CreatorEmailAddress } return "" } // A resource message representing data sharing settings of a Google Analytics // account. type DataSharingSettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name. // Format: accounts/{account}/dataSharingSettings // Example: "accounts/1000/dataSharingSettings" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Allows Google support to access the data in order to help troubleshoot // issues. SharingWithGoogleSupportEnabled bool `protobuf:"varint,2,opt,name=sharing_with_google_support_enabled,json=sharingWithGoogleSupportEnabled,proto3" json:"sharing_with_google_support_enabled,omitempty"` // Allows Google sales teams that are assigned to the customer to access the // data in order to suggest configuration changes to improve results. // Sales team restrictions still apply when enabled. SharingWithGoogleAssignedSalesEnabled bool `protobuf:"varint,3,opt,name=sharing_with_google_assigned_sales_enabled,json=sharingWithGoogleAssignedSalesEnabled,proto3" json:"sharing_with_google_assigned_sales_enabled,omitempty"` // Allows any of Google sales to access the data in order to suggest // configuration changes to improve results. SharingWithGoogleAnySalesEnabled bool `protobuf:"varint,4,opt,name=sharing_with_google_any_sales_enabled,json=sharingWithGoogleAnySalesEnabled,proto3" json:"sharing_with_google_any_sales_enabled,omitempty"` // Allows Google to use the data to improve other Google products or services. SharingWithGoogleProductsEnabled bool `protobuf:"varint,5,opt,name=sharing_with_google_products_enabled,json=sharingWithGoogleProductsEnabled,proto3" json:"sharing_with_google_products_enabled,omitempty"` // Allows Google to share the data anonymously in aggregate form with others. SharingWithOthersEnabled bool `protobuf:"varint,6,opt,name=sharing_with_others_enabled,json=sharingWithOthersEnabled,proto3" json:"sharing_with_others_enabled,omitempty"` } func (x *DataSharingSettings) Reset() { *x = DataSharingSettings{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DataSharingSettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*DataSharingSettings) ProtoMessage() {} func (x *DataSharingSettings) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DataSharingSettings.ProtoReflect.Descriptor instead. func (*DataSharingSettings) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{11} } func (x *DataSharingSettings) GetName() string { if x != nil { return x.Name } return "" } func (x *DataSharingSettings) GetSharingWithGoogleSupportEnabled() bool { if x != nil { return x.SharingWithGoogleSupportEnabled } return false } func (x *DataSharingSettings) GetSharingWithGoogleAssignedSalesEnabled() bool { if x != nil { return x.SharingWithGoogleAssignedSalesEnabled } return false } func (x *DataSharingSettings) GetSharingWithGoogleAnySalesEnabled() bool { if x != nil { return x.SharingWithGoogleAnySalesEnabled } return false } func (x *DataSharingSettings) GetSharingWithGoogleProductsEnabled() bool { if x != nil { return x.SharingWithGoogleProductsEnabled } return false } func (x *DataSharingSettings) GetSharingWithOthersEnabled() bool { if x != nil { return x.SharingWithOthersEnabled } return false } // A virtual resource representing an overview of an account and // all its child GA4 properties. type AccountSummary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Resource name for this account summary. // Format: accountSummaries/{account_id} // Example: "accountSummaries/1000" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Resource name of account referred to by this account summary // Format: accounts/{account_id} // Example: "accounts/1000" Account string `protobuf:"bytes,2,opt,name=account,proto3" json:"account,omitempty"` // Display name for the account referred to in this account summary. DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // List of summaries for child accounts of this account. PropertySummaries []*PropertySummary `protobuf:"bytes,4,rep,name=property_summaries,json=propertySummaries,proto3" json:"property_summaries,omitempty"` } func (x *AccountSummary) Reset() { *x = AccountSummary{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AccountSummary) String() string { return protoimpl.X.MessageStringOf(x) } func (*AccountSummary) ProtoMessage() {} func (x *AccountSummary) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AccountSummary.ProtoReflect.Descriptor instead. func (*AccountSummary) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{12} } func (x *AccountSummary) GetName() string { if x != nil { return x.Name } return "" } func (x *AccountSummary) GetAccount() string { if x != nil { return x.Account } return "" } func (x *AccountSummary) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *AccountSummary) GetPropertySummaries() []*PropertySummary { if x != nil { return x.PropertySummaries } return nil } // A virtual resource representing metadata for an GA4 property. type PropertySummary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Resource name of property referred to by this property summary // Format: properties/{property_id} // Example: "properties/1000" Property string `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"` // Display name for the property referred to in this account summary. DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` } func (x *PropertySummary) Reset() { *x = PropertySummary{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PropertySummary) String() string { return protoimpl.X.MessageStringOf(x) } func (*PropertySummary) ProtoMessage() {} func (x *PropertySummary) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PropertySummary.ProtoReflect.Descriptor instead. func (*PropertySummary) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{13} } func (x *PropertySummary) GetProperty() string { if x != nil { return x.Property } return "" } func (x *PropertySummary) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } // A secret value used for sending hits to Measurement Protocol. type MeasurementProtocolSecret struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name of this secret. This secret may be a child of any type of // stream. // Format: // properties/{property}/webDataStreams/{webDataStream}/measurementProtocolSecrets/{measurementProtocolSecret} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Required. Human-readable display name for this secret. DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // Output only. The measurement protocol secret value. Pass this value to the api_secret // field of the Measurement Protocol API when sending hits to this // secret's parent property. SecretValue string `protobuf:"bytes,3,opt,name=secret_value,json=secretValue,proto3" json:"secret_value,omitempty"` } func (x *MeasurementProtocolSecret) Reset() { *x = MeasurementProtocolSecret{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MeasurementProtocolSecret) String() string { return protoimpl.X.MessageStringOf(x) } func (*MeasurementProtocolSecret) ProtoMessage() {} func (x *MeasurementProtocolSecret) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MeasurementProtocolSecret.ProtoReflect.Descriptor instead. func (*MeasurementProtocolSecret) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{14} } func (x *MeasurementProtocolSecret) GetName() string { if x != nil { return x.Name } return "" } func (x *MeasurementProtocolSecret) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *MeasurementProtocolSecret) GetSecretValue() string { if x != nil { return x.SecretValue } return "" } // A set of changes within a Google Analytics account or its child properties // that resulted from the same cause. Common causes would be updates made in the // Google Analytics UI, changes from customer support, or automatic Google // Analytics system changes. type ChangeHistoryEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // ID of this change history event. This ID is unique across Google Analytics. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Time when change was made. ChangeTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=change_time,json=changeTime,proto3" json:"change_time,omitempty"` // The type of actor that made this change. ActorType ActorType `protobuf:"varint,3,opt,name=actor_type,json=actorType,proto3,enum=google.analytics.admin.v1alpha.ActorType" json:"actor_type,omitempty"` // Email address of the Google account that made the change. This will be a // valid email address if the actor field is set to USER, and empty otherwise. // Google accounts that have been deleted will cause an error. UserActorEmail string `protobuf:"bytes,4,opt,name=user_actor_email,json=userActorEmail,proto3" json:"user_actor_email,omitempty"` // If true, then the list of changes returned was filtered, and does not // represent all changes that occurred in this event. ChangesFiltered bool `protobuf:"varint,5,opt,name=changes_filtered,json=changesFiltered,proto3" json:"changes_filtered,omitempty"` // A list of changes made in this change history event that fit the filters // specified in SearchChangeHistoryEventsRequest. Changes []*ChangeHistoryChange `protobuf:"bytes,6,rep,name=changes,proto3" json:"changes,omitempty"` } func (x *ChangeHistoryEvent) Reset() { *x = ChangeHistoryEvent{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChangeHistoryEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChangeHistoryEvent) ProtoMessage() {} func (x *ChangeHistoryEvent) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ChangeHistoryEvent.ProtoReflect.Descriptor instead. func (*ChangeHistoryEvent) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{15} } func (x *ChangeHistoryEvent) GetId() string { if x != nil { return x.Id } return "" } func (x *ChangeHistoryEvent) GetChangeTime() *timestamppb.Timestamp { if x != nil { return x.ChangeTime } return nil } func (x *ChangeHistoryEvent) GetActorType() ActorType { if x != nil { return x.ActorType } return ActorType_ACTOR_TYPE_UNSPECIFIED } func (x *ChangeHistoryEvent) GetUserActorEmail() string { if x != nil { return x.UserActorEmail } return "" } func (x *ChangeHistoryEvent) GetChangesFiltered() bool { if x != nil { return x.ChangesFiltered } return false } func (x *ChangeHistoryEvent) GetChanges() []*ChangeHistoryChange { if x != nil { return x.Changes } return nil } // A description of a change to a single Google Analytics resource. type ChangeHistoryChange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Resource name of the resource whose changes are described by this entry. Resource string `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"` // The type of action that changed this resource. Action ActionType `protobuf:"varint,2,opt,name=action,proto3,enum=google.analytics.admin.v1alpha.ActionType" json:"action,omitempty"` // Resource contents from before the change was made. If this resource was // created in this change, this field will be missing. ResourceBeforeChange *ChangeHistoryChange_ChangeHistoryResource `protobuf:"bytes,3,opt,name=resource_before_change,json=resourceBeforeChange,proto3" json:"resource_before_change,omitempty"` // Resource contents from after the change was made. If this resource was // deleted in this change, this field will be missing. ResourceAfterChange *ChangeHistoryChange_ChangeHistoryResource `protobuf:"bytes,4,opt,name=resource_after_change,json=resourceAfterChange,proto3" json:"resource_after_change,omitempty"` } func (x *ChangeHistoryChange) Reset() { *x = ChangeHistoryChange{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChangeHistoryChange) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChangeHistoryChange) ProtoMessage() {} func (x *ChangeHistoryChange) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ChangeHistoryChange.ProtoReflect.Descriptor instead. func (*ChangeHistoryChange) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{16} } func (x *ChangeHistoryChange) GetResource() string { if x != nil { return x.Resource } return "" } func (x *ChangeHistoryChange) GetAction() ActionType { if x != nil { return x.Action } return ActionType_ACTION_TYPE_UNSPECIFIED } func (x *ChangeHistoryChange) GetResourceBeforeChange() *ChangeHistoryChange_ChangeHistoryResource { if x != nil { return x.ResourceBeforeChange } return nil } func (x *ChangeHistoryChange) GetResourceAfterChange() *ChangeHistoryChange_ChangeHistoryResource { if x != nil { return x.ResourceAfterChange } return nil } // A link between a GA4 property and a Display & Video 360 advertiser. type DisplayVideo360AdvertiserLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. The resource name for this DisplayVideo360AdvertiserLink resource. // Format: properties/{propertyId}/displayVideo360AdvertiserLinks/{linkId} // // Note: linkId is not the Display & Video 360 Advertiser ID Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Immutable. The Display & Video 360 Advertiser's advertiser ID. AdvertiserId string `protobuf:"bytes,2,opt,name=advertiser_id,json=advertiserId,proto3" json:"advertiser_id,omitempty"` // Output only. The display name of the Display & Video 360 Advertiser. AdvertiserDisplayName string `protobuf:"bytes,3,opt,name=advertiser_display_name,json=advertiserDisplayName,proto3" json:"advertiser_display_name,omitempty"` // Enables personalized advertising features with this integration. // If this field is not set on create/update, it will be defaulted to true. AdsPersonalizationEnabled *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=ads_personalization_enabled,json=adsPersonalizationEnabled,proto3" json:"ads_personalization_enabled,omitempty"` // Immutable. Enables the import of campaign data from Display & Video 360 into the GA4 // property. After link creation, this can only be updated from the Display & // Video 360 product. // If this field is not set on create, it will be defaulted to true. CampaignDataSharingEnabled *wrapperspb.BoolValue `protobuf:"bytes,5,opt,name=campaign_data_sharing_enabled,json=campaignDataSharingEnabled,proto3" json:"campaign_data_sharing_enabled,omitempty"` // Immutable. Enables the import of cost data from Display & Video 360 into the GA4 // property. This can only be enabled if campaign_data_import_enabled is // enabled. After link creation, this can only be updated from the Display & // Video 360 product. // If this field is not set on create, it will be defaulted to true. CostDataSharingEnabled *wrapperspb.BoolValue `protobuf:"bytes,6,opt,name=cost_data_sharing_enabled,json=costDataSharingEnabled,proto3" json:"cost_data_sharing_enabled,omitempty"` } func (x *DisplayVideo360AdvertiserLink) Reset() { *x = DisplayVideo360AdvertiserLink{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DisplayVideo360AdvertiserLink) String() string { return protoimpl.X.MessageStringOf(x) } func (*DisplayVideo360AdvertiserLink) ProtoMessage() {} func (x *DisplayVideo360AdvertiserLink) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DisplayVideo360AdvertiserLink.ProtoReflect.Descriptor instead. func (*DisplayVideo360AdvertiserLink) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{17} } func (x *DisplayVideo360AdvertiserLink) GetName() string { if x != nil { return x.Name } return "" } func (x *DisplayVideo360AdvertiserLink) GetAdvertiserId() string { if x != nil { return x.AdvertiserId } return "" } func (x *DisplayVideo360AdvertiserLink) GetAdvertiserDisplayName() string { if x != nil { return x.AdvertiserDisplayName } return "" } func (x *DisplayVideo360AdvertiserLink) GetAdsPersonalizationEnabled() *wrapperspb.BoolValue { if x != nil { return x.AdsPersonalizationEnabled } return nil } func (x *DisplayVideo360AdvertiserLink) GetCampaignDataSharingEnabled() *wrapperspb.BoolValue { if x != nil { return x.CampaignDataSharingEnabled } return nil } func (x *DisplayVideo360AdvertiserLink) GetCostDataSharingEnabled() *wrapperspb.BoolValue { if x != nil { return x.CostDataSharingEnabled } return nil } // A proposal for a link between an GA4 property and a Display & Video 360 // advertiser. // // A proposal is converted to a DisplayVideo360AdvertiserLink once approved. // Google Analytics admins approve inbound proposals while Display & Video 360 // admins approve outbound proposals. type DisplayVideo360AdvertiserLinkProposal struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. The resource name for this DisplayVideo360AdvertiserLinkProposal resource. // Format: // properties/{propertyId}/displayVideo360AdvertiserLinkProposals/{proposalId} // // Note: proposalId is not the Display & Video 360 Advertiser ID Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Immutable. The Display & Video 360 Advertiser's advertiser ID. AdvertiserId string `protobuf:"bytes,2,opt,name=advertiser_id,json=advertiserId,proto3" json:"advertiser_id,omitempty"` // Output only. The status information for this link proposal. LinkProposalStatusDetails *LinkProposalStatusDetails `protobuf:"bytes,3,opt,name=link_proposal_status_details,json=linkProposalStatusDetails,proto3" json:"link_proposal_status_details,omitempty"` // Output only. The display name of the Display & Video Advertiser. // Only populated for proposals that originated from Display & Video 360. AdvertiserDisplayName string `protobuf:"bytes,4,opt,name=advertiser_display_name,json=advertiserDisplayName,proto3" json:"advertiser_display_name,omitempty"` // Input only. On a proposal being sent to Display & Video 360, this field must be set to // the email address of an admin on the target advertiser. This is used to // verify that the Google Analytics admin is aware of at least one admin on // the Display & Video 360 Advertiser. This does not restrict approval of the // proposal to a single user. Any admin on the Display & Video 360 Advertiser // may approve the proposal. ValidationEmail string `protobuf:"bytes,5,opt,name=validation_email,json=validationEmail,proto3" json:"validation_email,omitempty"` // Immutable. Enables personalized advertising features with this integration. // If this field is not set on create, it will be defaulted to true. AdsPersonalizationEnabled *wrapperspb.BoolValue `protobuf:"bytes,6,opt,name=ads_personalization_enabled,json=adsPersonalizationEnabled,proto3" json:"ads_personalization_enabled,omitempty"` // Immutable. Enables the import of campaign data from Display & Video 360. // If this field is not set on create, it will be defaulted to true. CampaignDataSharingEnabled *wrapperspb.BoolValue `protobuf:"bytes,7,opt,name=campaign_data_sharing_enabled,json=campaignDataSharingEnabled,proto3" json:"campaign_data_sharing_enabled,omitempty"` // Immutable. Enables the import of cost data from Display & Video 360. // This can only be enabled if campaign_data_import_enabled is enabled. // If this field is not set on create, it will be defaulted to true. CostDataSharingEnabled *wrapperspb.BoolValue `protobuf:"bytes,8,opt,name=cost_data_sharing_enabled,json=costDataSharingEnabled,proto3" json:"cost_data_sharing_enabled,omitempty"` } func (x *DisplayVideo360AdvertiserLinkProposal) Reset() { *x = DisplayVideo360AdvertiserLinkProposal{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DisplayVideo360AdvertiserLinkProposal) String() string { return protoimpl.X.MessageStringOf(x) } func (*DisplayVideo360AdvertiserLinkProposal) ProtoMessage() {} func (x *DisplayVideo360AdvertiserLinkProposal) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DisplayVideo360AdvertiserLinkProposal.ProtoReflect.Descriptor instead. func (*DisplayVideo360AdvertiserLinkProposal) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{18} } func (x *DisplayVideo360AdvertiserLinkProposal) GetName() string { if x != nil { return x.Name } return "" } func (x *DisplayVideo360AdvertiserLinkProposal) GetAdvertiserId() string { if x != nil { return x.AdvertiserId } return "" } func (x *DisplayVideo360AdvertiserLinkProposal) GetLinkProposalStatusDetails() *LinkProposalStatusDetails { if x != nil { return x.LinkProposalStatusDetails } return nil } func (x *DisplayVideo360AdvertiserLinkProposal) GetAdvertiserDisplayName() string { if x != nil { return x.AdvertiserDisplayName } return "" } func (x *DisplayVideo360AdvertiserLinkProposal) GetValidationEmail() string { if x != nil { return x.ValidationEmail } return "" } func (x *DisplayVideo360AdvertiserLinkProposal) GetAdsPersonalizationEnabled() *wrapperspb.BoolValue { if x != nil { return x.AdsPersonalizationEnabled } return nil } func (x *DisplayVideo360AdvertiserLinkProposal) GetCampaignDataSharingEnabled() *wrapperspb.BoolValue { if x != nil { return x.CampaignDataSharingEnabled } return nil } func (x *DisplayVideo360AdvertiserLinkProposal) GetCostDataSharingEnabled() *wrapperspb.BoolValue { if x != nil { return x.CostDataSharingEnabled } return nil } // Status information for a link proposal. type LinkProposalStatusDetails struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. The source of this proposal. LinkProposalInitiatingProduct LinkProposalInitiatingProduct `protobuf:"varint,1,opt,name=link_proposal_initiating_product,json=linkProposalInitiatingProduct,proto3,enum=google.analytics.admin.v1alpha.LinkProposalInitiatingProduct" json:"link_proposal_initiating_product,omitempty"` // Output only. The email address of the user that proposed this linkage. RequestorEmail string `protobuf:"bytes,2,opt,name=requestor_email,json=requestorEmail,proto3" json:"requestor_email,omitempty"` // Output only. The state of this proposal. LinkProposalState LinkProposalState `protobuf:"varint,3,opt,name=link_proposal_state,json=linkProposalState,proto3,enum=google.analytics.admin.v1alpha.LinkProposalState" json:"link_proposal_state,omitempty"` } func (x *LinkProposalStatusDetails) Reset() { *x = LinkProposalStatusDetails{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LinkProposalStatusDetails) String() string { return protoimpl.X.MessageStringOf(x) } func (*LinkProposalStatusDetails) ProtoMessage() {} func (x *LinkProposalStatusDetails) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LinkProposalStatusDetails.ProtoReflect.Descriptor instead. func (*LinkProposalStatusDetails) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{19} } func (x *LinkProposalStatusDetails) GetLinkProposalInitiatingProduct() LinkProposalInitiatingProduct { if x != nil { return x.LinkProposalInitiatingProduct } return LinkProposalInitiatingProduct_LINK_PROPOSAL_INITIATING_PRODUCT_UNSPECIFIED } func (x *LinkProposalStatusDetails) GetRequestorEmail() string { if x != nil { return x.RequestorEmail } return "" } func (x *LinkProposalStatusDetails) GetLinkProposalState() LinkProposalState { if x != nil { return x.LinkProposalState } return LinkProposalState_LINK_PROPOSAL_STATE_UNSPECIFIED } // A conversion event in a Google Analytics property. type ConversionEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name of this conversion event. // Format: properties/{property}/conversionEvents/{conversion_event} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Immutable. The event name for this conversion event. // Examples: 'click', 'purchase' EventName string `protobuf:"bytes,2,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"` // Output only. Time when this conversion event was created in the property. CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // Output only. If set, this event can currently be deleted via DeleteConversionEvent. Deletable bool `protobuf:"varint,4,opt,name=deletable,proto3" json:"deletable,omitempty"` // Output only. If set to true, this conversion event refers to a custom event. If set to // false, this conversion event refers to a default event in GA. Default // events typically have special meaning in GA. Default events are usually // created for you by the GA system, but in some cases can be created by // property admins. Custom events count towards the maximum number of // custom conversion events that may be created per property. Custom bool `protobuf:"varint,5,opt,name=custom,proto3" json:"custom,omitempty"` } func (x *ConversionEvent) Reset() { *x = ConversionEvent{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConversionEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConversionEvent) ProtoMessage() {} func (x *ConversionEvent) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConversionEvent.ProtoReflect.Descriptor instead. func (*ConversionEvent) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{20} } func (x *ConversionEvent) GetName() string { if x != nil { return x.Name } return "" } func (x *ConversionEvent) GetEventName() string { if x != nil { return x.EventName } return "" } func (x *ConversionEvent) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *ConversionEvent) GetDeletable() bool { if x != nil { return x.Deletable } return false } func (x *ConversionEvent) GetCustom() bool { if x != nil { return x.Custom } return false } // Settings values for Google Signals. This is a singleton resource. type GoogleSignalsSettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name of this setting. // Format: properties/{property_id}/googleSignalsSettings // Example: "properties/1000/googleSignalsSettings" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Status of this setting. State GoogleSignalsState `protobuf:"varint,3,opt,name=state,proto3,enum=google.analytics.admin.v1alpha.GoogleSignalsState" json:"state,omitempty"` // Output only. Terms of Service acceptance. Consent GoogleSignalsConsent `protobuf:"varint,4,opt,name=consent,proto3,enum=google.analytics.admin.v1alpha.GoogleSignalsConsent" json:"consent,omitempty"` } func (x *GoogleSignalsSettings) Reset() { *x = GoogleSignalsSettings{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoogleSignalsSettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoogleSignalsSettings) ProtoMessage() {} func (x *GoogleSignalsSettings) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GoogleSignalsSettings.ProtoReflect.Descriptor instead. func (*GoogleSignalsSettings) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{21} } func (x *GoogleSignalsSettings) GetName() string { if x != nil { return x.Name } return "" } func (x *GoogleSignalsSettings) GetState() GoogleSignalsState { if x != nil { return x.State } return GoogleSignalsState_GOOGLE_SIGNALS_STATE_UNSPECIFIED } func (x *GoogleSignalsSettings) GetConsent() GoogleSignalsConsent { if x != nil { return x.Consent } return GoogleSignalsConsent_GOOGLE_SIGNALS_CONSENT_UNSPECIFIED } // A definition for a CustomDimension. type CustomDimension struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name for this CustomDimension resource. // Format: properties/{property}/customDimensions/{customDimension} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Required. Immutable. Tagging parameter name for this custom dimension. // // If this is a user-scoped dimension, then this is the user property name. // If this is an event-scoped dimension, then this is the event parameter // name. // // May only contain alphanumeric and underscore characters, starting with a // letter. Max length of 24 characters for user-scoped dimensions, 40 // characters for event-scoped dimensions. ParameterName string `protobuf:"bytes,2,opt,name=parameter_name,json=parameterName,proto3" json:"parameter_name,omitempty"` // Required. Display name for this custom dimension as shown in the Analytics UI. // Max length of 82 characters, alphanumeric plus space and underscore // starting with a letter. Legacy system-generated display names may contain // square brackets, but updates to this field will never permit square // brackets. DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // Optional. Description for this custom dimension. Max length of 150 characters. Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` // Required. Immutable. The scope of this dimension. Scope CustomDimension_DimensionScope `protobuf:"varint,5,opt,name=scope,proto3,enum=google.analytics.admin.v1alpha.CustomDimension_DimensionScope" json:"scope,omitempty"` // Optional. If set to true, sets this dimension as NPA and excludes it from ads // personalization. // // This is currently only supported by user-scoped custom dimensions. DisallowAdsPersonalization bool `protobuf:"varint,6,opt,name=disallow_ads_personalization,json=disallowAdsPersonalization,proto3" json:"disallow_ads_personalization,omitempty"` } func (x *CustomDimension) Reset() { *x = CustomDimension{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CustomDimension) String() string { return protoimpl.X.MessageStringOf(x) } func (*CustomDimension) ProtoMessage() {} func (x *CustomDimension) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CustomDimension.ProtoReflect.Descriptor instead. func (*CustomDimension) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{22} } func (x *CustomDimension) GetName() string { if x != nil { return x.Name } return "" } func (x *CustomDimension) GetParameterName() string { if x != nil { return x.ParameterName } return "" } func (x *CustomDimension) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *CustomDimension) GetDescription() string { if x != nil { return x.Description } return "" } func (x *CustomDimension) GetScope() CustomDimension_DimensionScope { if x != nil { return x.Scope } return CustomDimension_DIMENSION_SCOPE_UNSPECIFIED } func (x *CustomDimension) GetDisallowAdsPersonalization() bool { if x != nil { return x.DisallowAdsPersonalization } return false } // A definition for a custom metric. type CustomMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name for this CustomMetric resource. // Format: properties/{property}/customMetrics/{customMetric} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Required. Immutable. Tagging name for this custom metric. // // If this is an event-scoped metric, then this is the event parameter // name. // // May only contain alphanumeric and underscore charactes, starting with a // letter. Max length of 40 characters for event-scoped metrics. ParameterName string `protobuf:"bytes,2,opt,name=parameter_name,json=parameterName,proto3" json:"parameter_name,omitempty"` // Required. Display name for this custom metric as shown in the Analytics UI. // Max length of 82 characters, alphanumeric plus space and underscore // starting with a letter. Legacy system-generated display names may contain // square brackets, but updates to this field will never permit square // brackets. DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // Optional. Description for this custom dimension. // Max length of 150 characters. Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` // Required. The type for the custom metric's value. MeasurementUnit CustomMetric_MeasurementUnit `protobuf:"varint,5,opt,name=measurement_unit,json=measurementUnit,proto3,enum=google.analytics.admin.v1alpha.CustomMetric_MeasurementUnit" json:"measurement_unit,omitempty"` // Required. Immutable. The scope of this custom metric. Scope CustomMetric_MetricScope `protobuf:"varint,6,opt,name=scope,proto3,enum=google.analytics.admin.v1alpha.CustomMetric_MetricScope" json:"scope,omitempty"` } func (x *CustomMetric) Reset() { *x = CustomMetric{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CustomMetric) String() string { return protoimpl.X.MessageStringOf(x) } func (*CustomMetric) ProtoMessage() {} func (x *CustomMetric) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CustomMetric.ProtoReflect.Descriptor instead. func (*CustomMetric) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{23} } func (x *CustomMetric) GetName() string { if x != nil { return x.Name } return "" } func (x *CustomMetric) GetParameterName() string { if x != nil { return x.ParameterName } return "" } func (x *CustomMetric) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *CustomMetric) GetDescription() string { if x != nil { return x.Description } return "" } func (x *CustomMetric) GetMeasurementUnit() CustomMetric_MeasurementUnit { if x != nil { return x.MeasurementUnit } return CustomMetric_MEASUREMENT_UNIT_UNSPECIFIED } func (x *CustomMetric) GetScope() CustomMetric_MetricScope { if x != nil { return x.Scope } return CustomMetric_METRIC_SCOPE_UNSPECIFIED } // Settings values for data retention. This is a singleton resource. type DataRetentionSettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name for this DataRetentionSetting resource. // Format: properties/{property}/dataRetentionSettings Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The length of time that event-level data is retained. EventDataRetention DataRetentionSettings_RetentionDuration `protobuf:"varint,2,opt,name=event_data_retention,json=eventDataRetention,proto3,enum=google.analytics.admin.v1alpha.DataRetentionSettings_RetentionDuration" json:"event_data_retention,omitempty"` // If true, reset the retention period for the user identifier with every // event from that user. ResetUserDataOnNewActivity bool `protobuf:"varint,3,opt,name=reset_user_data_on_new_activity,json=resetUserDataOnNewActivity,proto3" json:"reset_user_data_on_new_activity,omitempty"` } func (x *DataRetentionSettings) Reset() { *x = DataRetentionSettings{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DataRetentionSettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*DataRetentionSettings) ProtoMessage() {} func (x *DataRetentionSettings) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DataRetentionSettings.ProtoReflect.Descriptor instead. func (*DataRetentionSettings) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{24} } func (x *DataRetentionSettings) GetName() string { if x != nil { return x.Name } return "" } func (x *DataRetentionSettings) GetEventDataRetention() DataRetentionSettings_RetentionDuration { if x != nil { return x.EventDataRetention } return DataRetentionSettings_RETENTION_DURATION_UNSPECIFIED } func (x *DataRetentionSettings) GetResetUserDataOnNewActivity() bool { if x != nil { return x.ResetUserDataOnNewActivity } return false } // A snapshot of a resource as before or after the result of a change in // change history. type ChangeHistoryChange_ChangeHistoryResource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Resource: // *ChangeHistoryChange_ChangeHistoryResource_Account // *ChangeHistoryChange_ChangeHistoryResource_Property // *ChangeHistoryChange_ChangeHistoryResource_WebDataStream // *ChangeHistoryChange_ChangeHistoryResource_AndroidAppDataStream // *ChangeHistoryChange_ChangeHistoryResource_IosAppDataStream // *ChangeHistoryChange_ChangeHistoryResource_FirebaseLink // *ChangeHistoryChange_ChangeHistoryResource_GoogleAdsLink // *ChangeHistoryChange_ChangeHistoryResource_GoogleSignalsSettings // *ChangeHistoryChange_ChangeHistoryResource_DisplayVideo_360AdvertiserLink // *ChangeHistoryChange_ChangeHistoryResource_DisplayVideo_360AdvertiserLinkProposal // *ChangeHistoryChange_ChangeHistoryResource_ConversionEvent // *ChangeHistoryChange_ChangeHistoryResource_MeasurementProtocolSecret // *ChangeHistoryChange_ChangeHistoryResource_CustomDimension // *ChangeHistoryChange_ChangeHistoryResource_CustomMetric // *ChangeHistoryChange_ChangeHistoryResource_DataRetentionSettings Resource isChangeHistoryChange_ChangeHistoryResource_Resource `protobuf_oneof:"resource"` } func (x *ChangeHistoryChange_ChangeHistoryResource) Reset() { *x = ChangeHistoryChange_ChangeHistoryResource{} if protoimpl.UnsafeEnabled { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChangeHistoryChange_ChangeHistoryResource) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChangeHistoryChange_ChangeHistoryResource) ProtoMessage() {} func (x *ChangeHistoryChange_ChangeHistoryResource) ProtoReflect() protoreflect.Message { mi := &file_google_analytics_admin_v1alpha_resources_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ChangeHistoryChange_ChangeHistoryResource.ProtoReflect.Descriptor instead. func (*ChangeHistoryChange_ChangeHistoryResource) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{16, 0} } func (m *ChangeHistoryChange_ChangeHistoryResource) GetResource() isChangeHistoryChange_ChangeHistoryResource_Resource { if m != nil { return m.Resource } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetAccount() *Account { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_Account); ok { return x.Account } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetProperty() *Property { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_Property); ok { return x.Property } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetWebDataStream() *WebDataStream { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_WebDataStream); ok { return x.WebDataStream } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetAndroidAppDataStream() *AndroidAppDataStream { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_AndroidAppDataStream); ok { return x.AndroidAppDataStream } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetIosAppDataStream() *IosAppDataStream { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_IosAppDataStream); ok { return x.IosAppDataStream } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetFirebaseLink() *FirebaseLink { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_FirebaseLink); ok { return x.FirebaseLink } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetGoogleAdsLink() *GoogleAdsLink { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_GoogleAdsLink); ok { return x.GoogleAdsLink } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetGoogleSignalsSettings() *GoogleSignalsSettings { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_GoogleSignalsSettings); ok { return x.GoogleSignalsSettings } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetDisplayVideo_360AdvertiserLink() *DisplayVideo360AdvertiserLink { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_DisplayVideo_360AdvertiserLink); ok { return x.DisplayVideo_360AdvertiserLink } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetDisplayVideo_360AdvertiserLinkProposal() *DisplayVideo360AdvertiserLinkProposal { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_DisplayVideo_360AdvertiserLinkProposal); ok { return x.DisplayVideo_360AdvertiserLinkProposal } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetConversionEvent() *ConversionEvent { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_ConversionEvent); ok { return x.ConversionEvent } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetMeasurementProtocolSecret() *MeasurementProtocolSecret { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_MeasurementProtocolSecret); ok { return x.MeasurementProtocolSecret } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetCustomDimension() *CustomDimension { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_CustomDimension); ok { return x.CustomDimension } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetCustomMetric() *CustomMetric { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_CustomMetric); ok { return x.CustomMetric } return nil } func (x *ChangeHistoryChange_ChangeHistoryResource) GetDataRetentionSettings() *DataRetentionSettings { if x, ok := x.GetResource().(*ChangeHistoryChange_ChangeHistoryResource_DataRetentionSettings); ok { return x.DataRetentionSettings } return nil } type isChangeHistoryChange_ChangeHistoryResource_Resource interface { isChangeHistoryChange_ChangeHistoryResource_Resource() } type ChangeHistoryChange_ChangeHistoryResource_Account struct { // A snapshot of an Account resource in change history. Account *Account `protobuf:"bytes,1,opt,name=account,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_Property struct { // A snapshot of a Property resource in change history. Property *Property `protobuf:"bytes,2,opt,name=property,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_WebDataStream struct { // A snapshot of a WebDataStream resource in change history. WebDataStream *WebDataStream `protobuf:"bytes,3,opt,name=web_data_stream,json=webDataStream,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_AndroidAppDataStream struct { // A snapshot of an AndroidAppDataStream resource in change history. AndroidAppDataStream *AndroidAppDataStream `protobuf:"bytes,4,opt,name=android_app_data_stream,json=androidAppDataStream,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_IosAppDataStream struct { // A snapshot of an IosAppDataStream resource in change history. IosAppDataStream *IosAppDataStream `protobuf:"bytes,5,opt,name=ios_app_data_stream,json=iosAppDataStream,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_FirebaseLink struct { // A snapshot of a FirebaseLink resource in change history. FirebaseLink *FirebaseLink `protobuf:"bytes,6,opt,name=firebase_link,json=firebaseLink,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_GoogleAdsLink struct { // A snapshot of a GoogleAdsLink resource in change history. GoogleAdsLink *GoogleAdsLink `protobuf:"bytes,7,opt,name=google_ads_link,json=googleAdsLink,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_GoogleSignalsSettings struct { // A snapshot of a GoogleSignalsSettings resource in change history. GoogleSignalsSettings *GoogleSignalsSettings `protobuf:"bytes,8,opt,name=google_signals_settings,json=googleSignalsSettings,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_DisplayVideo_360AdvertiserLink struct { // A snapshot of a DisplayVideo360AdvertiserLink resource in change // history. DisplayVideo_360AdvertiserLink *DisplayVideo360AdvertiserLink `protobuf:"bytes,9,opt,name=display_video_360_advertiser_link,json=displayVideo360AdvertiserLink,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_DisplayVideo_360AdvertiserLinkProposal struct { // A snapshot of a DisplayVideo360AdvertiserLinkProposal resource in // change history. DisplayVideo_360AdvertiserLinkProposal *DisplayVideo360AdvertiserLinkProposal `protobuf:"bytes,10,opt,name=display_video_360_advertiser_link_proposal,json=displayVideo360AdvertiserLinkProposal,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_ConversionEvent struct { // A snapshot of a ConversionEvent resource in change history. ConversionEvent *ConversionEvent `protobuf:"bytes,11,opt,name=conversion_event,json=conversionEvent,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_MeasurementProtocolSecret struct { // A snapshot of a MeasurementProtocolSecret resource in change history. MeasurementProtocolSecret *MeasurementProtocolSecret `protobuf:"bytes,12,opt,name=measurement_protocol_secret,json=measurementProtocolSecret,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_CustomDimension struct { // A snapshot of a CustomDimension resource in change history. CustomDimension *CustomDimension `protobuf:"bytes,13,opt,name=custom_dimension,json=customDimension,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_CustomMetric struct { // A snapshot of a CustomMetric resource in change history. CustomMetric *CustomMetric `protobuf:"bytes,14,opt,name=custom_metric,json=customMetric,proto3,oneof"` } type ChangeHistoryChange_ChangeHistoryResource_DataRetentionSettings struct { // A snapshot of a data retention settings resource in change history. DataRetentionSettings *DataRetentionSettings `protobuf:"bytes,15,opt,name=data_retention_settings,json=dataRetentionSettings,proto3,oneof"` } func (*ChangeHistoryChange_ChangeHistoryResource_Account) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_Property) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_WebDataStream) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_AndroidAppDataStream) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_IosAppDataStream) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_FirebaseLink) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_GoogleAdsLink) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_GoogleSignalsSettings) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_DisplayVideo_360AdvertiserLink) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_DisplayVideo_360AdvertiserLinkProposal) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_ConversionEvent) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_MeasurementProtocolSecret) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_CustomDimension) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_CustomMetric) isChangeHistoryChange_ChangeHistoryResource_Resource() { } func (*ChangeHistoryChange_ChangeHistoryResource_DataRetentionSettings) isChangeHistoryChange_ChangeHistoryResource_Resource() { } var File_google_analytics_admin_v1alpha_resources_proto protoreflect.FileDescriptor var file_google_analytics_admin_v1alpha_resources_proto_rawDesc = []byte{ 0x0a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xce, 0x02, 0x0a, 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x3a, 0x3e, 0xea, 0x41, 0x3b, 0x0a, 0x25, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x22, 0xb2, 0x05, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x5d, 0x0a, 0x11, 0x69, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x10, 0x69, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x56, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x42, 0xea, 0x41, 0x3f, 0x0a, 0x26, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x15, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x22, 0xab, 0x03, 0x0a, 0x14, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x66, 0x69, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x66, 0x69, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x41, 0x70, 0x70, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x7e, 0xea, 0x41, 0x7b, 0x0a, 0x32, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x45, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x7d, 0x22, 0x98, 0x03, 0x0a, 0x10, 0x49, 0x6f, 0x73, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x66, 0x69, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x66, 0x69, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x41, 0x70, 0x70, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x05, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x72, 0xea, 0x41, 0x6f, 0x0a, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6f, 0x73, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x3d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x69, 0x6f, 0x73, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x7b, 0x69, 0x6f, 0x73, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x7d, 0x22, 0xbd, 0x03, 0x0a, 0x0d, 0x57, 0x65, 0x62, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x66, 0x69, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x66, 0x69, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x41, 0x70, 0x70, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x68, 0xea, 0x41, 0x65, 0x0a, 0x2b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x57, 0x65, 0x62, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x36, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x77, 0x65, 0x62, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x7b, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x7d, 0x22, 0xf5, 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x3a, 0x82, 0x01, 0xea, 0x41, 0x7f, 0x0a, 0x26, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x28, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x7d, 0x12, 0x2b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x7d, 0x22, 0x94, 0x01, 0x0a, 0x0d, 0x41, 0x75, 0x64, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0xf7, 0x05, 0x0a, 0x1b, 0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x70, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x73, 0x69, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x65, 0x6e, 0x67, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x45, 0x6e, 0x67, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x70, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x61, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x16, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x72, 0x69, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x75, 0x72, 0x69, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x3a, 0x93, 0x01, 0xea, 0x41, 0x8f, 0x01, 0x0a, 0x39, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x52, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x77, 0x65, 0x62, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x7b, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x7d, 0x2f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xee, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x64, 0xea, 0x41, 0x61, 0x0a, 0x2a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x69, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x33, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x2f, 0x7b, 0x66, 0x69, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x7d, 0x22, 0x9e, 0x01, 0x0a, 0x0d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x07, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x3a, 0x55, 0xea, 0x41, 0x52, 0x0a, 0x2b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x23, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x74, 0x65, 0x54, 0x61, 0x67, 0x22, 0x84, 0x04, 0x0a, 0x0d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x63, 0x61, 0x6e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x5a, 0x0a, 0x1b, 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x68, 0xea, 0x41, 0x65, 0x0a, 0x2b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x36, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x2f, 0x7b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x64, 0x73, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x7d, 0x22, 0x97, 0x04, 0x0a, 0x13, 0x44, 0x61, 0x74, 0x61, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x23, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x69, 0x74, 0x68, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x59, 0x0a, 0x2a, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x61, 0x6c, 0x65, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x25, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x69, 0x74, 0x68, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x4f, 0x0a, 0x25, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x73, 0x61, 0x6c, 0x65, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x20, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x69, 0x74, 0x68, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x6e, 0x79, 0x53, 0x61, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x24, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x20, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x69, 0x74, 0x68, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x1b, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x69, 0x74, 0x68, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x5e, 0xea, 0x41, 0x5b, 0x0a, 0x31, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x26, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xc4, 0x02, 0x0a, 0x0e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x5e, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x55, 0xea, 0x41, 0x52, 0x0a, 0x2c, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x22, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x7d, 0x22, 0x7d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x47, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb5, 0x02, 0x0a, 0x19, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0xae, 0x01, 0xea, 0x41, 0xaa, 0x01, 0x0a, 0x37, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x6f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x77, 0x65, 0x62, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x7b, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x7d, 0x2f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x7d, 0x22, 0xcf, 0x02, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x4d, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0xa2, 0x0f, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7f, 0x0a, 0x16, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x7d, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0xaa, 0x0c, 0x0a, 0x15, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x57, 0x0a, 0x0f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x57, 0x65, 0x62, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x65, 0x62, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x6d, 0x0a, 0x17, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x00, 0x52, 0x14, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x61, 0x0a, 0x13, 0x69, 0x6f, 0x73, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6f, 0x73, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6f, 0x73, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x53, 0x0a, 0x0d, 0x66, 0x69, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x69, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x69, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x57, 0x0a, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x64, 0x73, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x6f, 0x0a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x00, 0x52, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x89, 0x01, 0x0a, 0x21, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x33, 0x36, 0x30, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x33, 0x36, 0x30, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x1d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x33, 0x36, 0x30, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0xa2, 0x01, 0x0a, 0x2a, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x33, 0x36, 0x30, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x33, 0x36, 0x30, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x25, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x33, 0x36, 0x30, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x5c, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x7b, 0x0a, 0x1b, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x48, 0x00, 0x52, 0x19, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x5c, 0x0a, 0x10, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x6f, 0x0a, 0x17, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x00, 0x52, 0x15, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xd9, 0x04, 0x0a, 0x1d, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x33, 0x36, 0x30, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0c, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x17, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x1b, 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x62, 0x0a, 0x1d, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x1a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x19, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x16, 0x63, 0x6f, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x9b, 0x01, 0xea, 0x41, 0x97, 0x01, 0x0a, 0x3b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x33, 0x36, 0x30, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x58, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x33, 0x36, 0x30, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x33, 0x36, 0x30, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x7d, 0x22, 0xb0, 0x06, 0x0a, 0x25, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x33, 0x36, 0x30, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0c, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x7f, 0x0a, 0x1c, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x6c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3b, 0x0a, 0x17, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x04, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x5f, 0x0a, 0x1b, 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x19, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x62, 0x0a, 0x1d, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x1a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x19, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x16, 0x63, 0x6f, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0xb4, 0x01, 0xea, 0x41, 0xb0, 0x01, 0x0a, 0x43, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x33, 0x36, 0x30, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x69, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x33, 0x36, 0x30, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x33, 0x36, 0x30, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x7d, 0x22, 0xbf, 0x02, 0x0a, 0x19, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1d, 0x6c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x66, 0x0a, 0x13, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x6c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xbf, 0x02, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x3a, 0x6d, 0xea, 0x41, 0x6a, 0x0a, 0x2d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0xb6, 0x02, 0x0a, 0x15, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x53, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x3a, 0x65, 0xea, 0x41, 0x62, 0x0a, 0x33, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xf1, 0x03, 0x0a, 0x0f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x1c, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1a, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x64, 0x73, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x46, 0x0a, 0x0e, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x49, 0x4d, 0x45, 0x4e, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52, 0x10, 0x02, 0x3a, 0x5a, 0xea, 0x41, 0x57, 0x0a, 0x2d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xb3, 0x05, 0x0a, 0x0c, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6c, 0x0a, 0x10, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x56, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x45, 0x45, 0x54, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x4b, 0x49, 0x4c, 0x4f, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x49, 0x4c, 0x45, 0x53, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x49, 0x4c, 0x4c, 0x49, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x53, 0x10, 0x09, 0x12, 0x09, 0x0a, 0x05, 0x48, 0x4f, 0x55, 0x52, 0x53, 0x10, 0x0a, 0x22, 0x36, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x3a, 0x54, 0xea, 0x41, 0x51, 0x0a, 0x2a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x23, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xf8, 0x03, 0x0a, 0x15, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x79, 0x0a, 0x14, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x1f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x72, 0x65, 0x73, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x6e, 0x4e, 0x65, 0x77, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x9e, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x57, 0x4f, 0x5f, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x53, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x4f, 0x55, 0x52, 0x54, 0x45, 0x45, 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x53, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x57, 0x45, 0x4e, 0x54, 0x59, 0x5f, 0x53, 0x49, 0x58, 0x5f, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x53, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x48, 0x49, 0x52, 0x54, 0x59, 0x5f, 0x45, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x53, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x49, 0x46, 0x54, 0x59, 0x5f, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x53, 0x10, 0x06, 0x3a, 0x65, 0xea, 0x41, 0x62, 0x0a, 0x33, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2a, 0xaa, 0x04, 0x0a, 0x10, 0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x44, 0x55, 0x53, 0x54, 0x52, 0x59, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x4f, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x55, 0x53, 0x49, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x49, 0x4e, 0x44, 0x55, 0x53, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x49, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x43, 0x41, 0x52, 0x45, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x43, 0x48, 0x4e, 0x4f, 0x4c, 0x4f, 0x47, 0x59, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x52, 0x41, 0x56, 0x45, 0x4c, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x52, 0x54, 0x53, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x54, 0x41, 0x49, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x45, 0x41, 0x55, 0x54, 0x59, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x4f, 0x4f, 0x4b, 0x53, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x4c, 0x49, 0x54, 0x45, 0x52, 0x41, 0x54, 0x55, 0x52, 0x45, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x4f, 0x4f, 0x44, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x44, 0x52, 0x49, 0x4e, 0x4b, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x17, 0x0a, 0x13, 0x48, 0x4f, 0x42, 0x42, 0x49, 0x45, 0x53, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x4c, 0x45, 0x49, 0x53, 0x55, 0x52, 0x45, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x48, 0x4f, 0x4d, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x47, 0x41, 0x52, 0x44, 0x45, 0x4e, 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x45, 0x54, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x43, 0x4f, 0x4d, 0x10, 0x0f, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x41, 0x57, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x47, 0x4f, 0x56, 0x45, 0x52, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x45, 0x57, 0x53, 0x10, 0x11, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x55, 0x4e, 0x49, 0x54, 0x49, 0x45, 0x53, 0x10, 0x12, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x45, 0x4f, 0x50, 0x4c, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x53, 0x4f, 0x43, 0x49, 0x45, 0x54, 0x59, 0x10, 0x13, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x45, 0x54, 0x53, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x41, 0x4e, 0x49, 0x4d, 0x41, 0x4c, 0x53, 0x10, 0x14, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x41, 0x4c, 0x5f, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x15, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x10, 0x16, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x43, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x10, 0x17, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x18, 0x12, 0x16, 0x0a, 0x12, 0x4a, 0x4f, 0x42, 0x53, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x45, 0x44, 0x55, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x19, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x48, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x1a, 0x2a, 0x66, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x54, 0x49, 0x43, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x54, 0x49, 0x43, 0x53, 0x5f, 0x33, 0x36, 0x30, 0x10, 0x02, 0x2a, 0x4a, 0x0a, 0x09, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x03, 0x2a, 0x50, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x2a, 0xf1, 0x02, 0x0a, 0x19, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x28, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x4f, 0x50, 0x45, 0x52, 0x54, 0x59, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x57, 0x45, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x5f, 0x41, 0x50, 0x50, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4f, 0x53, 0x5f, 0x41, 0x50, 0x50, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x49, 0x52, 0x45, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x41, 0x44, 0x53, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x53, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x53, 0x10, 0x08, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x09, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x44, 0x49, 0x4d, 0x45, 0x4e, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x53, 0x10, 0x0d, 0x2a, 0x73, 0x0a, 0x12, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x53, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x53, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x8e, 0x01, 0x0a, 0x14, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x28, 0x0a, 0x24, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x54, 0x45, 0x44, 0x10, 0x01, 0x2a, 0x7b, 0x0a, 0x1d, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x30, 0x0a, 0x2c, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x54, 0x49, 0x43, 0x53, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x49, 0x4e, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x54, 0x10, 0x02, 0x2a, 0xc4, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x54, 0x49, 0x43, 0x53, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x54, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x4e, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x06, 0x42, 0x7b, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_analytics_admin_v1alpha_resources_proto_rawDescOnce sync.Once file_google_analytics_admin_v1alpha_resources_proto_rawDescData = file_google_analytics_admin_v1alpha_resources_proto_rawDesc ) func file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP() []byte { file_google_analytics_admin_v1alpha_resources_proto_rawDescOnce.Do(func() { file_google_analytics_admin_v1alpha_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_analytics_admin_v1alpha_resources_proto_rawDescData) }) return file_google_analytics_admin_v1alpha_resources_proto_rawDescData } var file_google_analytics_admin_v1alpha_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 13) var file_google_analytics_admin_v1alpha_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 26) var file_google_analytics_admin_v1alpha_resources_proto_goTypes = []interface{}{ (IndustryCategory)(0), // 0: google.analytics.admin.v1alpha.IndustryCategory (ServiceLevel)(0), // 1: google.analytics.admin.v1alpha.ServiceLevel (ActorType)(0), // 2: google.analytics.admin.v1alpha.ActorType (ActionType)(0), // 3: google.analytics.admin.v1alpha.ActionType (ChangeHistoryResourceType)(0), // 4: google.analytics.admin.v1alpha.ChangeHistoryResourceType (GoogleSignalsState)(0), // 5: google.analytics.admin.v1alpha.GoogleSignalsState (GoogleSignalsConsent)(0), // 6: google.analytics.admin.v1alpha.GoogleSignalsConsent (LinkProposalInitiatingProduct)(0), // 7: google.analytics.admin.v1alpha.LinkProposalInitiatingProduct (LinkProposalState)(0), // 8: google.analytics.admin.v1alpha.LinkProposalState (CustomDimension_DimensionScope)(0), // 9: google.analytics.admin.v1alpha.CustomDimension.DimensionScope (CustomMetric_MeasurementUnit)(0), // 10: google.analytics.admin.v1alpha.CustomMetric.MeasurementUnit (CustomMetric_MetricScope)(0), // 11: google.analytics.admin.v1alpha.CustomMetric.MetricScope (DataRetentionSettings_RetentionDuration)(0), // 12: google.analytics.admin.v1alpha.DataRetentionSettings.RetentionDuration (*Account)(nil), // 13: google.analytics.admin.v1alpha.Account (*Property)(nil), // 14: google.analytics.admin.v1alpha.Property (*AndroidAppDataStream)(nil), // 15: google.analytics.admin.v1alpha.AndroidAppDataStream (*IosAppDataStream)(nil), // 16: google.analytics.admin.v1alpha.IosAppDataStream (*WebDataStream)(nil), // 17: google.analytics.admin.v1alpha.WebDataStream (*UserLink)(nil), // 18: google.analytics.admin.v1alpha.UserLink (*AuditUserLink)(nil), // 19: google.analytics.admin.v1alpha.AuditUserLink (*EnhancedMeasurementSettings)(nil), // 20: google.analytics.admin.v1alpha.EnhancedMeasurementSettings (*FirebaseLink)(nil), // 21: google.analytics.admin.v1alpha.FirebaseLink (*GlobalSiteTag)(nil), // 22: google.analytics.admin.v1alpha.GlobalSiteTag (*GoogleAdsLink)(nil), // 23: google.analytics.admin.v1alpha.GoogleAdsLink (*DataSharingSettings)(nil), // 24: google.analytics.admin.v1alpha.DataSharingSettings (*AccountSummary)(nil), // 25: google.analytics.admin.v1alpha.AccountSummary (*PropertySummary)(nil), // 26: google.analytics.admin.v1alpha.PropertySummary (*MeasurementProtocolSecret)(nil), // 27: google.analytics.admin.v1alpha.MeasurementProtocolSecret (*ChangeHistoryEvent)(nil), // 28: google.analytics.admin.v1alpha.ChangeHistoryEvent (*ChangeHistoryChange)(nil), // 29: google.analytics.admin.v1alpha.ChangeHistoryChange (*DisplayVideo360AdvertiserLink)(nil), // 30: google.analytics.admin.v1alpha.DisplayVideo360AdvertiserLink (*DisplayVideo360AdvertiserLinkProposal)(nil), // 31: google.analytics.admin.v1alpha.DisplayVideo360AdvertiserLinkProposal (*LinkProposalStatusDetails)(nil), // 32: google.analytics.admin.v1alpha.LinkProposalStatusDetails (*ConversionEvent)(nil), // 33: google.analytics.admin.v1alpha.ConversionEvent (*GoogleSignalsSettings)(nil), // 34: google.analytics.admin.v1alpha.GoogleSignalsSettings (*CustomDimension)(nil), // 35: google.analytics.admin.v1alpha.CustomDimension (*CustomMetric)(nil), // 36: google.analytics.admin.v1alpha.CustomMetric (*DataRetentionSettings)(nil), // 37: google.analytics.admin.v1alpha.DataRetentionSettings (*ChangeHistoryChange_ChangeHistoryResource)(nil), // 38: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource (*timestamppb.Timestamp)(nil), // 39: google.protobuf.Timestamp (*wrapperspb.BoolValue)(nil), // 40: google.protobuf.BoolValue } var file_google_analytics_admin_v1alpha_resources_proto_depIdxs = []int32{ 39, // 0: google.analytics.admin.v1alpha.Account.create_time:type_name -> google.protobuf.Timestamp 39, // 1: google.analytics.admin.v1alpha.Account.update_time:type_name -> google.protobuf.Timestamp 39, // 2: google.analytics.admin.v1alpha.Property.create_time:type_name -> google.protobuf.Timestamp 39, // 3: google.analytics.admin.v1alpha.Property.update_time:type_name -> google.protobuf.Timestamp 0, // 4: google.analytics.admin.v1alpha.Property.industry_category:type_name -> google.analytics.admin.v1alpha.IndustryCategory 1, // 5: google.analytics.admin.v1alpha.Property.service_level:type_name -> google.analytics.admin.v1alpha.ServiceLevel 39, // 6: google.analytics.admin.v1alpha.Property.delete_time:type_name -> google.protobuf.Timestamp 39, // 7: google.analytics.admin.v1alpha.Property.expire_time:type_name -> google.protobuf.Timestamp 39, // 8: google.analytics.admin.v1alpha.AndroidAppDataStream.create_time:type_name -> google.protobuf.Timestamp 39, // 9: google.analytics.admin.v1alpha.AndroidAppDataStream.update_time:type_name -> google.protobuf.Timestamp 39, // 10: google.analytics.admin.v1alpha.IosAppDataStream.create_time:type_name -> google.protobuf.Timestamp 39, // 11: google.analytics.admin.v1alpha.IosAppDataStream.update_time:type_name -> google.protobuf.Timestamp 39, // 12: google.analytics.admin.v1alpha.WebDataStream.create_time:type_name -> google.protobuf.Timestamp 39, // 13: google.analytics.admin.v1alpha.WebDataStream.update_time:type_name -> google.protobuf.Timestamp 39, // 14: google.analytics.admin.v1alpha.FirebaseLink.create_time:type_name -> google.protobuf.Timestamp 40, // 15: google.analytics.admin.v1alpha.GoogleAdsLink.ads_personalization_enabled:type_name -> google.protobuf.BoolValue 39, // 16: google.analytics.admin.v1alpha.GoogleAdsLink.create_time:type_name -> google.protobuf.Timestamp 39, // 17: google.analytics.admin.v1alpha.GoogleAdsLink.update_time:type_name -> google.protobuf.Timestamp 26, // 18: google.analytics.admin.v1alpha.AccountSummary.property_summaries:type_name -> google.analytics.admin.v1alpha.PropertySummary 39, // 19: google.analytics.admin.v1alpha.ChangeHistoryEvent.change_time:type_name -> google.protobuf.Timestamp 2, // 20: google.analytics.admin.v1alpha.ChangeHistoryEvent.actor_type:type_name -> google.analytics.admin.v1alpha.ActorType 29, // 21: google.analytics.admin.v1alpha.ChangeHistoryEvent.changes:type_name -> google.analytics.admin.v1alpha.ChangeHistoryChange 3, // 22: google.analytics.admin.v1alpha.ChangeHistoryChange.action:type_name -> google.analytics.admin.v1alpha.ActionType 38, // 23: google.analytics.admin.v1alpha.ChangeHistoryChange.resource_before_change:type_name -> google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource 38, // 24: google.analytics.admin.v1alpha.ChangeHistoryChange.resource_after_change:type_name -> google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource 40, // 25: google.analytics.admin.v1alpha.DisplayVideo360AdvertiserLink.ads_personalization_enabled:type_name -> google.protobuf.BoolValue 40, // 26: google.analytics.admin.v1alpha.DisplayVideo360AdvertiserLink.campaign_data_sharing_enabled:type_name -> google.protobuf.BoolValue 40, // 27: google.analytics.admin.v1alpha.DisplayVideo360AdvertiserLink.cost_data_sharing_enabled:type_name -> google.protobuf.BoolValue 32, // 28: google.analytics.admin.v1alpha.DisplayVideo360AdvertiserLinkProposal.link_proposal_status_details:type_name -> google.analytics.admin.v1alpha.LinkProposalStatusDetails 40, // 29: google.analytics.admin.v1alpha.DisplayVideo360AdvertiserLinkProposal.ads_personalization_enabled:type_name -> google.protobuf.BoolValue 40, // 30: google.analytics.admin.v1alpha.DisplayVideo360AdvertiserLinkProposal.campaign_data_sharing_enabled:type_name -> google.protobuf.BoolValue 40, // 31: google.analytics.admin.v1alpha.DisplayVideo360AdvertiserLinkProposal.cost_data_sharing_enabled:type_name -> google.protobuf.BoolValue 7, // 32: google.analytics.admin.v1alpha.LinkProposalStatusDetails.link_proposal_initiating_product:type_name -> google.analytics.admin.v1alpha.LinkProposalInitiatingProduct 8, // 33: google.analytics.admin.v1alpha.LinkProposalStatusDetails.link_proposal_state:type_name -> google.analytics.admin.v1alpha.LinkProposalState 39, // 34: google.analytics.admin.v1alpha.ConversionEvent.create_time:type_name -> google.protobuf.Timestamp 5, // 35: google.analytics.admin.v1alpha.GoogleSignalsSettings.state:type_name -> google.analytics.admin.v1alpha.GoogleSignalsState 6, // 36: google.analytics.admin.v1alpha.GoogleSignalsSettings.consent:type_name -> google.analytics.admin.v1alpha.GoogleSignalsConsent 9, // 37: google.analytics.admin.v1alpha.CustomDimension.scope:type_name -> google.analytics.admin.v1alpha.CustomDimension.DimensionScope 10, // 38: google.analytics.admin.v1alpha.CustomMetric.measurement_unit:type_name -> google.analytics.admin.v1alpha.CustomMetric.MeasurementUnit 11, // 39: google.analytics.admin.v1alpha.CustomMetric.scope:type_name -> google.analytics.admin.v1alpha.CustomMetric.MetricScope 12, // 40: google.analytics.admin.v1alpha.DataRetentionSettings.event_data_retention:type_name -> google.analytics.admin.v1alpha.DataRetentionSettings.RetentionDuration 13, // 41: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.account:type_name -> google.analytics.admin.v1alpha.Account 14, // 42: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.property:type_name -> google.analytics.admin.v1alpha.Property 17, // 43: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.web_data_stream:type_name -> google.analytics.admin.v1alpha.WebDataStream 15, // 44: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.android_app_data_stream:type_name -> google.analytics.admin.v1alpha.AndroidAppDataStream 16, // 45: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.ios_app_data_stream:type_name -> google.analytics.admin.v1alpha.IosAppDataStream 21, // 46: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.firebase_link:type_name -> google.analytics.admin.v1alpha.FirebaseLink 23, // 47: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.google_ads_link:type_name -> google.analytics.admin.v1alpha.GoogleAdsLink 34, // 48: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.google_signals_settings:type_name -> google.analytics.admin.v1alpha.GoogleSignalsSettings 30, // 49: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.display_video_360_advertiser_link:type_name -> google.analytics.admin.v1alpha.DisplayVideo360AdvertiserLink 31, // 50: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.display_video_360_advertiser_link_proposal:type_name -> google.analytics.admin.v1alpha.DisplayVideo360AdvertiserLinkProposal 33, // 51: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.conversion_event:type_name -> google.analytics.admin.v1alpha.ConversionEvent 27, // 52: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.measurement_protocol_secret:type_name -> google.analytics.admin.v1alpha.MeasurementProtocolSecret 35, // 53: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.custom_dimension:type_name -> google.analytics.admin.v1alpha.CustomDimension 36, // 54: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.custom_metric:type_name -> google.analytics.admin.v1alpha.CustomMetric 37, // 55: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.data_retention_settings:type_name -> google.analytics.admin.v1alpha.DataRetentionSettings 56, // [56:56] is the sub-list for method output_type 56, // [56:56] is the sub-list for method input_type 56, // [56:56] is the sub-list for extension type_name 56, // [56:56] is the sub-list for extension extendee 0, // [0:56] is the sub-list for field type_name } func init() { file_google_analytics_admin_v1alpha_resources_proto_init() } func file_google_analytics_admin_v1alpha_resources_proto_init() { if File_google_analytics_admin_v1alpha_resources_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_analytics_admin_v1alpha_resources_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Account); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Property); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AndroidAppDataStream); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IosAppDataStream); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebDataStream); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserLink); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuditUserLink); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnhancedMeasurementSettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FirebaseLink); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GlobalSiteTag); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoogleAdsLink); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataSharingSettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountSummary); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PropertySummary); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MeasurementProtocolSecret); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChangeHistoryEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChangeHistoryChange); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DisplayVideo360AdvertiserLink); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DisplayVideo360AdvertiserLinkProposal); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LinkProposalStatusDetails); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConversionEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoogleSignalsSettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomDimension); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomMetric); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataRetentionSettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChangeHistoryChange_ChangeHistoryResource); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_google_analytics_admin_v1alpha_resources_proto_msgTypes[25].OneofWrappers = []interface{}{ (*ChangeHistoryChange_ChangeHistoryResource_Account)(nil), (*ChangeHistoryChange_ChangeHistoryResource_Property)(nil), (*ChangeHistoryChange_ChangeHistoryResource_WebDataStream)(nil), (*ChangeHistoryChange_ChangeHistoryResource_AndroidAppDataStream)(nil), (*ChangeHistoryChange_ChangeHistoryResource_IosAppDataStream)(nil), (*ChangeHistoryChange_ChangeHistoryResource_FirebaseLink)(nil), (*ChangeHistoryChange_ChangeHistoryResource_GoogleAdsLink)(nil), (*ChangeHistoryChange_ChangeHistoryResource_GoogleSignalsSettings)(nil), (*ChangeHistoryChange_ChangeHistoryResource_DisplayVideo_360AdvertiserLink)(nil), (*ChangeHistoryChange_ChangeHistoryResource_DisplayVideo_360AdvertiserLinkProposal)(nil), (*ChangeHistoryChange_ChangeHistoryResource_ConversionEvent)(nil), (*ChangeHistoryChange_ChangeHistoryResource_MeasurementProtocolSecret)(nil), (*ChangeHistoryChange_ChangeHistoryResource_CustomDimension)(nil), (*ChangeHistoryChange_ChangeHistoryResource_CustomMetric)(nil), (*ChangeHistoryChange_ChangeHistoryResource_DataRetentionSettings)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_analytics_admin_v1alpha_resources_proto_rawDesc, NumEnums: 13, NumMessages: 26, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_analytics_admin_v1alpha_resources_proto_goTypes, DependencyIndexes: file_google_analytics_admin_v1alpha_resources_proto_depIdxs, EnumInfos: file_google_analytics_admin_v1alpha_resources_proto_enumTypes, MessageInfos: file_google_analytics_admin_v1alpha_resources_proto_msgTypes, }.Build() File_google_analytics_admin_v1alpha_resources_proto = out.File file_google_analytics_admin_v1alpha_resources_proto_rawDesc = nil file_google_analytics_admin_v1alpha_resources_proto_goTypes = nil file_google_analytics_admin_v1alpha_resources_proto_depIdxs = nil }