// 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) ) // Maximum access settings that Firebase user receive on the linked Analytics // property. type MaximumUserAccess int32 const ( // Unspecified maximum user access. MaximumUserAccess_MAXIMUM_USER_ACCESS_UNSPECIFIED MaximumUserAccess = 0 // Firebase users have no access to the Analytics property. MaximumUserAccess_NO_ACCESS MaximumUserAccess = 1 // Firebase users have Read & Analyze access to the Analytics property. MaximumUserAccess_READ_AND_ANALYZE MaximumUserAccess = 2 // Firebase users have edit access to the Analytics property, but may not // manage the Firebase link. MaximumUserAccess_EDITOR_WITHOUT_LINK_MANAGEMENT MaximumUserAccess = 3 // Firebase users have edit access to the Analytics property and may manage // the Firebase link. MaximumUserAccess_EDITOR_INCLUDING_LINK_MANAGEMENT MaximumUserAccess = 4 ) // Enum value maps for MaximumUserAccess. var ( MaximumUserAccess_name = map[int32]string{ 0: "MAXIMUM_USER_ACCESS_UNSPECIFIED", 1: "NO_ACCESS", 2: "READ_AND_ANALYZE", 3: "EDITOR_WITHOUT_LINK_MANAGEMENT", 4: "EDITOR_INCLUDING_LINK_MANAGEMENT", } MaximumUserAccess_value = map[string]int32{ "MAXIMUM_USER_ACCESS_UNSPECIFIED": 0, "NO_ACCESS": 1, "READ_AND_ANALYZE": 2, "EDITOR_WITHOUT_LINK_MANAGEMENT": 3, "EDITOR_INCLUDING_LINK_MANAGEMENT": 4, } ) func (x MaximumUserAccess) Enum() *MaximumUserAccess { p := new(MaximumUserAccess) *p = x return p } func (x MaximumUserAccess) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MaximumUserAccess) Descriptor() protoreflect.EnumDescriptor { return file_google_analytics_admin_v1alpha_resources_proto_enumTypes[0].Descriptor() } func (MaximumUserAccess) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[0] } func (x MaximumUserAccess) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use MaximumUserAccess.Descriptor instead. func (MaximumUserAccess) EnumDescriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{0} } // 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[1].Descriptor() } func (IndustryCategory) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[1] } 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{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 ) // 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", } 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, } ) 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} } // 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[7].Descriptor() } func (CustomDimension_DimensionScope) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[7] } 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{19, 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[8].Descriptor() } func (CustomMetric_MeasurementUnit) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[8] } 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{20, 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[9].Descriptor() } func (CustomMetric_MetricScope) Type() protoreflect.EnumType { return &file_google_analytics_admin_v1alpha_resources_proto_enumTypes[9] } 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{20, 1} } // 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. 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) 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"` // Maximum user access to the GA4 property allowed to admins of // the linked Firebase project. MaximumUserAccess MaximumUserAccess `protobuf:"varint,4,opt,name=maximum_user_access,json=maximumUserAccess,proto3,enum=google.analytics.admin.v1alpha.MaximumUserAccess" json:"maximum_user_access,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 } func (x *FirebaseLink) GetMaximumUserAccess() MaximumUserAccess { if x != nil { return x.MaximumUserAccess } return MaximumUserAccess_MAXIMUM_USER_ACCESS_UNSPECIFIED } // 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. Email address of the user that created the link. // An empty string will be returned if the email address can't be retrieved. EmailAddress string `protobuf:"bytes,6,opt,name=email_address,json=emailAddress,proto3" json:"email_address,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"` } 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) GetEmailAddress() string { if x != nil { return x.EmailAddress } return "" } 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 } // 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 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. IsDeletable bool `protobuf:"varint,4,opt,name=is_deletable,json=isDeletable,proto3" json:"is_deletable,omitempty"` } func (x *ConversionEvent) Reset() { *x = ConversionEvent{} 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 *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[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 ConversionEvent.ProtoReflect.Descriptor instead. func (*ConversionEvent) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{17} } 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) GetIsDeletable() bool { if x != nil { return x.IsDeletable } 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[18] 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[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 GoogleSignalsSettings.ProtoReflect.Descriptor instead. func (*GoogleSignalsSettings) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{18} } 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[19] 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[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 CustomDimension.ProtoReflect.Descriptor instead. func (*CustomDimension) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{19} } 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. Immutable. 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[20] 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[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 CustomMetric.ProtoReflect.Descriptor instead. func (*CustomMetric) Descriptor() ([]byte, []int) { return file_google_analytics_admin_v1alpha_resources_proto_rawDescGZIP(), []int{20} } 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 } // 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_ConversionEvent // *ChangeHistoryChange_ChangeHistoryResource_MeasurementProtocolSecret // *ChangeHistoryChange_ChangeHistoryResource_CustomDimension // *ChangeHistoryChange_ChangeHistoryResource_CustomMetric 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[21] 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[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 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) 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 } 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_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"` } 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_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() { } 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, 0xda, 0x04, 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, 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, 0xd1, 0x02, 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, 0x12, 0x61, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x04, 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, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 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, 0xf5, 0x03, 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, 0x28, 0x0a, 0x0d, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 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, 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, 0x80, 0x0c, 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, 0x88, 0x09, 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, 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, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xa7, 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, 0x26, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x69, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x61, 0x62, 0x6c, 0x65, 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, 0xb6, 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, 0x6f, 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, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 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, 0x2a, 0xa7, 0x01, 0x0a, 0x11, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x44, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x44, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x04, 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, 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, 0xd4, 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, 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, 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, 10) var file_google_analytics_admin_v1alpha_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_google_analytics_admin_v1alpha_resources_proto_goTypes = []interface{}{ (MaximumUserAccess)(0), // 0: google.analytics.admin.v1alpha.MaximumUserAccess (IndustryCategory)(0), // 1: google.analytics.admin.v1alpha.IndustryCategory (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 (CustomDimension_DimensionScope)(0), // 7: google.analytics.admin.v1alpha.CustomDimension.DimensionScope (CustomMetric_MeasurementUnit)(0), // 8: google.analytics.admin.v1alpha.CustomMetric.MeasurementUnit (CustomMetric_MetricScope)(0), // 9: google.analytics.admin.v1alpha.CustomMetric.MetricScope (*Account)(nil), // 10: google.analytics.admin.v1alpha.Account (*Property)(nil), // 11: google.analytics.admin.v1alpha.Property (*AndroidAppDataStream)(nil), // 12: google.analytics.admin.v1alpha.AndroidAppDataStream (*IosAppDataStream)(nil), // 13: google.analytics.admin.v1alpha.IosAppDataStream (*WebDataStream)(nil), // 14: google.analytics.admin.v1alpha.WebDataStream (*UserLink)(nil), // 15: google.analytics.admin.v1alpha.UserLink (*AuditUserLink)(nil), // 16: google.analytics.admin.v1alpha.AuditUserLink (*EnhancedMeasurementSettings)(nil), // 17: google.analytics.admin.v1alpha.EnhancedMeasurementSettings (*FirebaseLink)(nil), // 18: google.analytics.admin.v1alpha.FirebaseLink (*GlobalSiteTag)(nil), // 19: google.analytics.admin.v1alpha.GlobalSiteTag (*GoogleAdsLink)(nil), // 20: google.analytics.admin.v1alpha.GoogleAdsLink (*DataSharingSettings)(nil), // 21: google.analytics.admin.v1alpha.DataSharingSettings (*AccountSummary)(nil), // 22: google.analytics.admin.v1alpha.AccountSummary (*PropertySummary)(nil), // 23: google.analytics.admin.v1alpha.PropertySummary (*MeasurementProtocolSecret)(nil), // 24: google.analytics.admin.v1alpha.MeasurementProtocolSecret (*ChangeHistoryEvent)(nil), // 25: google.analytics.admin.v1alpha.ChangeHistoryEvent (*ChangeHistoryChange)(nil), // 26: google.analytics.admin.v1alpha.ChangeHistoryChange (*ConversionEvent)(nil), // 27: google.analytics.admin.v1alpha.ConversionEvent (*GoogleSignalsSettings)(nil), // 28: google.analytics.admin.v1alpha.GoogleSignalsSettings (*CustomDimension)(nil), // 29: google.analytics.admin.v1alpha.CustomDimension (*CustomMetric)(nil), // 30: google.analytics.admin.v1alpha.CustomMetric (*ChangeHistoryChange_ChangeHistoryResource)(nil), // 31: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource (*timestamppb.Timestamp)(nil), // 32: google.protobuf.Timestamp (*wrapperspb.BoolValue)(nil), // 33: google.protobuf.BoolValue } var file_google_analytics_admin_v1alpha_resources_proto_depIdxs = []int32{ 32, // 0: google.analytics.admin.v1alpha.Account.create_time:type_name -> google.protobuf.Timestamp 32, // 1: google.analytics.admin.v1alpha.Account.update_time:type_name -> google.protobuf.Timestamp 32, // 2: google.analytics.admin.v1alpha.Property.create_time:type_name -> google.protobuf.Timestamp 32, // 3: google.analytics.admin.v1alpha.Property.update_time:type_name -> google.protobuf.Timestamp 1, // 4: google.analytics.admin.v1alpha.Property.industry_category:type_name -> google.analytics.admin.v1alpha.IndustryCategory 32, // 5: google.analytics.admin.v1alpha.Property.delete_time:type_name -> google.protobuf.Timestamp 32, // 6: google.analytics.admin.v1alpha.Property.expire_time:type_name -> google.protobuf.Timestamp 32, // 7: google.analytics.admin.v1alpha.AndroidAppDataStream.create_time:type_name -> google.protobuf.Timestamp 32, // 8: google.analytics.admin.v1alpha.AndroidAppDataStream.update_time:type_name -> google.protobuf.Timestamp 32, // 9: google.analytics.admin.v1alpha.IosAppDataStream.create_time:type_name -> google.protobuf.Timestamp 32, // 10: google.analytics.admin.v1alpha.IosAppDataStream.update_time:type_name -> google.protobuf.Timestamp 32, // 11: google.analytics.admin.v1alpha.WebDataStream.create_time:type_name -> google.protobuf.Timestamp 32, // 12: google.analytics.admin.v1alpha.WebDataStream.update_time:type_name -> google.protobuf.Timestamp 32, // 13: google.analytics.admin.v1alpha.FirebaseLink.create_time:type_name -> google.protobuf.Timestamp 0, // 14: google.analytics.admin.v1alpha.FirebaseLink.maximum_user_access:type_name -> google.analytics.admin.v1alpha.MaximumUserAccess 33, // 15: google.analytics.admin.v1alpha.GoogleAdsLink.ads_personalization_enabled:type_name -> google.protobuf.BoolValue 32, // 16: google.analytics.admin.v1alpha.GoogleAdsLink.create_time:type_name -> google.protobuf.Timestamp 32, // 17: google.analytics.admin.v1alpha.GoogleAdsLink.update_time:type_name -> google.protobuf.Timestamp 23, // 18: google.analytics.admin.v1alpha.AccountSummary.property_summaries:type_name -> google.analytics.admin.v1alpha.PropertySummary 32, // 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 26, // 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 31, // 23: google.analytics.admin.v1alpha.ChangeHistoryChange.resource_before_change:type_name -> google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource 31, // 24: google.analytics.admin.v1alpha.ChangeHistoryChange.resource_after_change:type_name -> google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource 32, // 25: google.analytics.admin.v1alpha.ConversionEvent.create_time:type_name -> google.protobuf.Timestamp 5, // 26: google.analytics.admin.v1alpha.GoogleSignalsSettings.state:type_name -> google.analytics.admin.v1alpha.GoogleSignalsState 6, // 27: google.analytics.admin.v1alpha.GoogleSignalsSettings.consent:type_name -> google.analytics.admin.v1alpha.GoogleSignalsConsent 7, // 28: google.analytics.admin.v1alpha.CustomDimension.scope:type_name -> google.analytics.admin.v1alpha.CustomDimension.DimensionScope 8, // 29: google.analytics.admin.v1alpha.CustomMetric.measurement_unit:type_name -> google.analytics.admin.v1alpha.CustomMetric.MeasurementUnit 9, // 30: google.analytics.admin.v1alpha.CustomMetric.scope:type_name -> google.analytics.admin.v1alpha.CustomMetric.MetricScope 10, // 31: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.account:type_name -> google.analytics.admin.v1alpha.Account 11, // 32: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.property:type_name -> google.analytics.admin.v1alpha.Property 14, // 33: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.web_data_stream:type_name -> google.analytics.admin.v1alpha.WebDataStream 12, // 34: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.android_app_data_stream:type_name -> google.analytics.admin.v1alpha.AndroidAppDataStream 13, // 35: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.ios_app_data_stream:type_name -> google.analytics.admin.v1alpha.IosAppDataStream 18, // 36: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.firebase_link:type_name -> google.analytics.admin.v1alpha.FirebaseLink 20, // 37: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.google_ads_link:type_name -> google.analytics.admin.v1alpha.GoogleAdsLink 28, // 38: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.google_signals_settings:type_name -> google.analytics.admin.v1alpha.GoogleSignalsSettings 27, // 39: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.conversion_event:type_name -> google.analytics.admin.v1alpha.ConversionEvent 24, // 40: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.measurement_protocol_secret:type_name -> google.analytics.admin.v1alpha.MeasurementProtocolSecret 29, // 41: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.custom_dimension:type_name -> google.analytics.admin.v1alpha.CustomDimension 30, // 42: google.analytics.admin.v1alpha.ChangeHistoryChange.ChangeHistoryResource.custom_metric:type_name -> google.analytics.admin.v1alpha.CustomMetric 43, // [43:43] is the sub-list for method output_type 43, // [43:43] is the sub-list for method input_type 43, // [43:43] is the sub-list for extension type_name 43, // [43:43] is the sub-list for extension extendee 0, // [0:43] 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.(*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[18].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[19].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[20].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[21].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[21].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_ConversionEvent)(nil), (*ChangeHistoryChange_ChangeHistoryResource_MeasurementProtocolSecret)(nil), (*ChangeHistoryChange_ChangeHistoryResource_CustomDimension)(nil), (*ChangeHistoryChange_ChangeHistoryResource_CustomMetric)(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: 10, NumMessages: 22, 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 }