| // Copyright 2022 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/data/v1alpha/data.proto |
| |
| package data |
| |
| import ( |
| reflect "reflect" |
| sync "sync" |
| |
| protoreflect "google.golang.org/protobuf/reflect/protoreflect" |
| protoimpl "google.golang.org/protobuf/runtime/protoimpl" |
| durationpb "google.golang.org/protobuf/types/known/durationpb" |
| ) |
| |
| 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) |
| ) |
| |
| // Scoping specifies which events are considered when evaluating if a user |
| // meets a criteria. |
| type UserCriteriaScoping int32 |
| |
| const ( |
| // Unspecified criteria scoping. Do not specify. |
| UserCriteriaScoping_USER_CRITERIA_SCOPING_UNSPECIFIED UserCriteriaScoping = 0 |
| // If the criteria is satisfied within one event, the user matches the |
| // criteria. |
| UserCriteriaScoping_USER_CRITERIA_WITHIN_SAME_EVENT UserCriteriaScoping = 1 |
| // If the criteria is satisfied within one session, the user matches the |
| // criteria. |
| UserCriteriaScoping_USER_CRITERIA_WITHIN_SAME_SESSION UserCriteriaScoping = 2 |
| // If the criteria is satisfied by any events for the user, the user |
| // matches the criteria. |
| UserCriteriaScoping_USER_CRITERIA_ACROSS_ALL_SESSIONS UserCriteriaScoping = 3 |
| ) |
| |
| // Enum value maps for UserCriteriaScoping. |
| var ( |
| UserCriteriaScoping_name = map[int32]string{ |
| 0: "USER_CRITERIA_SCOPING_UNSPECIFIED", |
| 1: "USER_CRITERIA_WITHIN_SAME_EVENT", |
| 2: "USER_CRITERIA_WITHIN_SAME_SESSION", |
| 3: "USER_CRITERIA_ACROSS_ALL_SESSIONS", |
| } |
| UserCriteriaScoping_value = map[string]int32{ |
| "USER_CRITERIA_SCOPING_UNSPECIFIED": 0, |
| "USER_CRITERIA_WITHIN_SAME_EVENT": 1, |
| "USER_CRITERIA_WITHIN_SAME_SESSION": 2, |
| "USER_CRITERIA_ACROSS_ALL_SESSIONS": 3, |
| } |
| ) |
| |
| func (x UserCriteriaScoping) Enum() *UserCriteriaScoping { |
| p := new(UserCriteriaScoping) |
| *p = x |
| return p |
| } |
| |
| func (x UserCriteriaScoping) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (UserCriteriaScoping) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_analytics_data_v1alpha_data_proto_enumTypes[0].Descriptor() |
| } |
| |
| func (UserCriteriaScoping) Type() protoreflect.EnumType { |
| return &file_google_analytics_data_v1alpha_data_proto_enumTypes[0] |
| } |
| |
| func (x UserCriteriaScoping) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use UserCriteriaScoping.Descriptor instead. |
| func (UserCriteriaScoping) EnumDescriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{0} |
| } |
| |
| // Enumerates options for how long an exclusion will last if a user matches |
| // the `userExclusionCriteria`. |
| type UserExclusionDuration int32 |
| |
| const ( |
| // Unspecified exclusion duration. Do not specify. |
| UserExclusionDuration_USER_EXCLUSION_DURATION_UNSPECIFIED UserExclusionDuration = 0 |
| // Temporarily exclude users from the segment during periods when the |
| // user meets the `userExclusionCriteria` condition. |
| UserExclusionDuration_USER_EXCLUSION_TEMPORARY UserExclusionDuration = 1 |
| // Permanently exclude users from the segment if the user ever meets the |
| // `userExclusionCriteria` condition. |
| UserExclusionDuration_USER_EXCLUSION_PERMANENT UserExclusionDuration = 2 |
| ) |
| |
| // Enum value maps for UserExclusionDuration. |
| var ( |
| UserExclusionDuration_name = map[int32]string{ |
| 0: "USER_EXCLUSION_DURATION_UNSPECIFIED", |
| 1: "USER_EXCLUSION_TEMPORARY", |
| 2: "USER_EXCLUSION_PERMANENT", |
| } |
| UserExclusionDuration_value = map[string]int32{ |
| "USER_EXCLUSION_DURATION_UNSPECIFIED": 0, |
| "USER_EXCLUSION_TEMPORARY": 1, |
| "USER_EXCLUSION_PERMANENT": 2, |
| } |
| ) |
| |
| func (x UserExclusionDuration) Enum() *UserExclusionDuration { |
| p := new(UserExclusionDuration) |
| *p = x |
| return p |
| } |
| |
| func (x UserExclusionDuration) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (UserExclusionDuration) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_analytics_data_v1alpha_data_proto_enumTypes[1].Descriptor() |
| } |
| |
| func (UserExclusionDuration) Type() protoreflect.EnumType { |
| return &file_google_analytics_data_v1alpha_data_proto_enumTypes[1] |
| } |
| |
| func (x UserExclusionDuration) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use UserExclusionDuration.Descriptor instead. |
| func (UserExclusionDuration) EnumDescriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{1} |
| } |
| |
| // Scoping specifies which events are considered when evaluating if a |
| // session meets a criteria. |
| type SessionCriteriaScoping int32 |
| |
| const ( |
| // Unspecified criteria scoping. Do not specify. |
| SessionCriteriaScoping_SESSION_CRITERIA_SCOPING_UNSPECIFIED SessionCriteriaScoping = 0 |
| // If the criteria is satisfied within one event, the session matches the |
| // criteria. |
| SessionCriteriaScoping_SESSION_CRITERIA_WITHIN_SAME_EVENT SessionCriteriaScoping = 1 |
| // If the criteria is satisfied within one session, the session matches |
| // the criteria. |
| SessionCriteriaScoping_SESSION_CRITERIA_WITHIN_SAME_SESSION SessionCriteriaScoping = 2 |
| ) |
| |
| // Enum value maps for SessionCriteriaScoping. |
| var ( |
| SessionCriteriaScoping_name = map[int32]string{ |
| 0: "SESSION_CRITERIA_SCOPING_UNSPECIFIED", |
| 1: "SESSION_CRITERIA_WITHIN_SAME_EVENT", |
| 2: "SESSION_CRITERIA_WITHIN_SAME_SESSION", |
| } |
| SessionCriteriaScoping_value = map[string]int32{ |
| "SESSION_CRITERIA_SCOPING_UNSPECIFIED": 0, |
| "SESSION_CRITERIA_WITHIN_SAME_EVENT": 1, |
| "SESSION_CRITERIA_WITHIN_SAME_SESSION": 2, |
| } |
| ) |
| |
| func (x SessionCriteriaScoping) Enum() *SessionCriteriaScoping { |
| p := new(SessionCriteriaScoping) |
| *p = x |
| return p |
| } |
| |
| func (x SessionCriteriaScoping) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (SessionCriteriaScoping) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_analytics_data_v1alpha_data_proto_enumTypes[2].Descriptor() |
| } |
| |
| func (SessionCriteriaScoping) Type() protoreflect.EnumType { |
| return &file_google_analytics_data_v1alpha_data_proto_enumTypes[2] |
| } |
| |
| func (x SessionCriteriaScoping) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use SessionCriteriaScoping.Descriptor instead. |
| func (SessionCriteriaScoping) EnumDescriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{2} |
| } |
| |
| // Enumerates options for how long an exclusion will last if a session |
| // matches the `sessionExclusionCriteria`. |
| type SessionExclusionDuration int32 |
| |
| const ( |
| // Unspecified exclusion duration. Do not specify. |
| SessionExclusionDuration_SESSION_EXCLUSION_DURATION_UNSPECIFIED SessionExclusionDuration = 0 |
| // Temporarily exclude sessions from the segment during periods when the |
| // session meets the `sessionExclusionCriteria` condition. |
| SessionExclusionDuration_SESSION_EXCLUSION_TEMPORARY SessionExclusionDuration = 1 |
| // Permanently exclude sessions from the segment if the session ever meets |
| // the `sessionExclusionCriteria` condition. |
| SessionExclusionDuration_SESSION_EXCLUSION_PERMANENT SessionExclusionDuration = 2 |
| ) |
| |
| // Enum value maps for SessionExclusionDuration. |
| var ( |
| SessionExclusionDuration_name = map[int32]string{ |
| 0: "SESSION_EXCLUSION_DURATION_UNSPECIFIED", |
| 1: "SESSION_EXCLUSION_TEMPORARY", |
| 2: "SESSION_EXCLUSION_PERMANENT", |
| } |
| SessionExclusionDuration_value = map[string]int32{ |
| "SESSION_EXCLUSION_DURATION_UNSPECIFIED": 0, |
| "SESSION_EXCLUSION_TEMPORARY": 1, |
| "SESSION_EXCLUSION_PERMANENT": 2, |
| } |
| ) |
| |
| func (x SessionExclusionDuration) Enum() *SessionExclusionDuration { |
| p := new(SessionExclusionDuration) |
| *p = x |
| return p |
| } |
| |
| func (x SessionExclusionDuration) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (SessionExclusionDuration) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_analytics_data_v1alpha_data_proto_enumTypes[3].Descriptor() |
| } |
| |
| func (SessionExclusionDuration) Type() protoreflect.EnumType { |
| return &file_google_analytics_data_v1alpha_data_proto_enumTypes[3] |
| } |
| |
| func (x SessionExclusionDuration) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use SessionExclusionDuration.Descriptor instead. |
| func (SessionExclusionDuration) EnumDescriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{3} |
| } |
| |
| // Scoping specifies which events are considered when evaluating if an event |
| // meets a criteria. |
| type EventCriteriaScoping int32 |
| |
| const ( |
| // Unspecified criteria scoping. Do not specify. |
| EventCriteriaScoping_EVENT_CRITERIA_SCOPING_UNSPECIFIED EventCriteriaScoping = 0 |
| // If the criteria is satisfied within one event, the event matches the |
| // criteria. |
| EventCriteriaScoping_EVENT_CRITERIA_WITHIN_SAME_EVENT EventCriteriaScoping = 1 |
| ) |
| |
| // Enum value maps for EventCriteriaScoping. |
| var ( |
| EventCriteriaScoping_name = map[int32]string{ |
| 0: "EVENT_CRITERIA_SCOPING_UNSPECIFIED", |
| 1: "EVENT_CRITERIA_WITHIN_SAME_EVENT", |
| } |
| EventCriteriaScoping_value = map[string]int32{ |
| "EVENT_CRITERIA_SCOPING_UNSPECIFIED": 0, |
| "EVENT_CRITERIA_WITHIN_SAME_EVENT": 1, |
| } |
| ) |
| |
| func (x EventCriteriaScoping) Enum() *EventCriteriaScoping { |
| p := new(EventCriteriaScoping) |
| *p = x |
| return p |
| } |
| |
| func (x EventCriteriaScoping) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (EventCriteriaScoping) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_analytics_data_v1alpha_data_proto_enumTypes[4].Descriptor() |
| } |
| |
| func (EventCriteriaScoping) Type() protoreflect.EnumType { |
| return &file_google_analytics_data_v1alpha_data_proto_enumTypes[4] |
| } |
| |
| func (x EventCriteriaScoping) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use EventCriteriaScoping.Descriptor instead. |
| func (EventCriteriaScoping) EnumDescriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{4} |
| } |
| |
| // Enumerates options for how long an exclusion will last if an event |
| // matches the `eventExclusionCriteria`. |
| type EventExclusionDuration int32 |
| |
| const ( |
| // Unspecified exclusion duration. Do not specify. |
| EventExclusionDuration_EVENT_EXCLUSION_DURATION_UNSPECIFIED EventExclusionDuration = 0 |
| // Permanently exclude events from the segment if the event ever meets |
| // the `eventExclusionCriteria` condition. |
| EventExclusionDuration_EVENT_EXCLUSION_PERMANENT EventExclusionDuration = 1 |
| ) |
| |
| // Enum value maps for EventExclusionDuration. |
| var ( |
| EventExclusionDuration_name = map[int32]string{ |
| 0: "EVENT_EXCLUSION_DURATION_UNSPECIFIED", |
| 1: "EVENT_EXCLUSION_PERMANENT", |
| } |
| EventExclusionDuration_value = map[string]int32{ |
| "EVENT_EXCLUSION_DURATION_UNSPECIFIED": 0, |
| "EVENT_EXCLUSION_PERMANENT": 1, |
| } |
| ) |
| |
| func (x EventExclusionDuration) Enum() *EventExclusionDuration { |
| p := new(EventExclusionDuration) |
| *p = x |
| return p |
| } |
| |
| func (x EventExclusionDuration) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (EventExclusionDuration) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_analytics_data_v1alpha_data_proto_enumTypes[5].Descriptor() |
| } |
| |
| func (EventExclusionDuration) Type() protoreflect.EnumType { |
| return &file_google_analytics_data_v1alpha_data_proto_enumTypes[5] |
| } |
| |
| func (x EventExclusionDuration) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use EventExclusionDuration.Descriptor instead. |
| func (EventExclusionDuration) EnumDescriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{5} |
| } |
| |
| // A metric's value type. |
| type MetricType int32 |
| |
| const ( |
| // Unspecified type. |
| MetricType_METRIC_TYPE_UNSPECIFIED MetricType = 0 |
| // Integer type. |
| MetricType_TYPE_INTEGER MetricType = 1 |
| // Floating point type. |
| MetricType_TYPE_FLOAT MetricType = 2 |
| // A duration of seconds; a special floating point type. |
| MetricType_TYPE_SECONDS MetricType = 4 |
| // A duration in milliseconds; a special floating point type. |
| MetricType_TYPE_MILLISECONDS MetricType = 5 |
| // A duration in minutes; a special floating point type. |
| MetricType_TYPE_MINUTES MetricType = 6 |
| // A duration in hours; a special floating point type. |
| MetricType_TYPE_HOURS MetricType = 7 |
| // A custom metric of standard type; a special floating point type. |
| MetricType_TYPE_STANDARD MetricType = 8 |
| // An amount of money; a special floating point type. |
| MetricType_TYPE_CURRENCY MetricType = 9 |
| // A length in feet; a special floating point type. |
| MetricType_TYPE_FEET MetricType = 10 |
| // A length in miles; a special floating point type. |
| MetricType_TYPE_MILES MetricType = 11 |
| // A length in meters; a special floating point type. |
| MetricType_TYPE_METERS MetricType = 12 |
| // A length in kilometers; a special floating point type. |
| MetricType_TYPE_KILOMETERS MetricType = 13 |
| ) |
| |
| // Enum value maps for MetricType. |
| var ( |
| MetricType_name = map[int32]string{ |
| 0: "METRIC_TYPE_UNSPECIFIED", |
| 1: "TYPE_INTEGER", |
| 2: "TYPE_FLOAT", |
| 4: "TYPE_SECONDS", |
| 5: "TYPE_MILLISECONDS", |
| 6: "TYPE_MINUTES", |
| 7: "TYPE_HOURS", |
| 8: "TYPE_STANDARD", |
| 9: "TYPE_CURRENCY", |
| 10: "TYPE_FEET", |
| 11: "TYPE_MILES", |
| 12: "TYPE_METERS", |
| 13: "TYPE_KILOMETERS", |
| } |
| MetricType_value = map[string]int32{ |
| "METRIC_TYPE_UNSPECIFIED": 0, |
| "TYPE_INTEGER": 1, |
| "TYPE_FLOAT": 2, |
| "TYPE_SECONDS": 4, |
| "TYPE_MILLISECONDS": 5, |
| "TYPE_MINUTES": 6, |
| "TYPE_HOURS": 7, |
| "TYPE_STANDARD": 8, |
| "TYPE_CURRENCY": 9, |
| "TYPE_FEET": 10, |
| "TYPE_MILES": 11, |
| "TYPE_METERS": 12, |
| "TYPE_KILOMETERS": 13, |
| } |
| ) |
| |
| func (x MetricType) Enum() *MetricType { |
| p := new(MetricType) |
| *p = x |
| return p |
| } |
| |
| func (x MetricType) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (MetricType) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_analytics_data_v1alpha_data_proto_enumTypes[6].Descriptor() |
| } |
| |
| func (MetricType) Type() protoreflect.EnumType { |
| return &file_google_analytics_data_v1alpha_data_proto_enumTypes[6] |
| } |
| |
| func (x MetricType) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use MetricType.Descriptor instead. |
| func (MetricType) EnumDescriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{6} |
| } |
| |
| // The match type of a string filter |
| type StringFilter_MatchType int32 |
| |
| const ( |
| // Unspecified |
| StringFilter_MATCH_TYPE_UNSPECIFIED StringFilter_MatchType = 0 |
| // Exact match of the string value. |
| StringFilter_EXACT StringFilter_MatchType = 1 |
| // Begins with the string value. |
| StringFilter_BEGINS_WITH StringFilter_MatchType = 2 |
| // Ends with the string value. |
| StringFilter_ENDS_WITH StringFilter_MatchType = 3 |
| // Contains the string value. |
| StringFilter_CONTAINS StringFilter_MatchType = 4 |
| // Full match for the regular expression with the string value. |
| StringFilter_FULL_REGEXP StringFilter_MatchType = 5 |
| // Partial match for the regular expression with the string value. |
| StringFilter_PARTIAL_REGEXP StringFilter_MatchType = 6 |
| ) |
| |
| // Enum value maps for StringFilter_MatchType. |
| var ( |
| StringFilter_MatchType_name = map[int32]string{ |
| 0: "MATCH_TYPE_UNSPECIFIED", |
| 1: "EXACT", |
| 2: "BEGINS_WITH", |
| 3: "ENDS_WITH", |
| 4: "CONTAINS", |
| 5: "FULL_REGEXP", |
| 6: "PARTIAL_REGEXP", |
| } |
| StringFilter_MatchType_value = map[string]int32{ |
| "MATCH_TYPE_UNSPECIFIED": 0, |
| "EXACT": 1, |
| "BEGINS_WITH": 2, |
| "ENDS_WITH": 3, |
| "CONTAINS": 4, |
| "FULL_REGEXP": 5, |
| "PARTIAL_REGEXP": 6, |
| } |
| ) |
| |
| func (x StringFilter_MatchType) Enum() *StringFilter_MatchType { |
| p := new(StringFilter_MatchType) |
| *p = x |
| return p |
| } |
| |
| func (x StringFilter_MatchType) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (StringFilter_MatchType) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_analytics_data_v1alpha_data_proto_enumTypes[7].Descriptor() |
| } |
| |
| func (StringFilter_MatchType) Type() protoreflect.EnumType { |
| return &file_google_analytics_data_v1alpha_data_proto_enumTypes[7] |
| } |
| |
| func (x StringFilter_MatchType) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use StringFilter_MatchType.Descriptor instead. |
| func (StringFilter_MatchType) EnumDescriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{6, 0} |
| } |
| |
| // The operation applied to a numeric filter |
| type NumericFilter_Operation int32 |
| |
| const ( |
| // Unspecified. |
| NumericFilter_OPERATION_UNSPECIFIED NumericFilter_Operation = 0 |
| // Equal |
| NumericFilter_EQUAL NumericFilter_Operation = 1 |
| // Less than |
| NumericFilter_LESS_THAN NumericFilter_Operation = 2 |
| // Less than or equal |
| NumericFilter_LESS_THAN_OR_EQUAL NumericFilter_Operation = 3 |
| // Greater than |
| NumericFilter_GREATER_THAN NumericFilter_Operation = 4 |
| // Greater than or equal |
| NumericFilter_GREATER_THAN_OR_EQUAL NumericFilter_Operation = 5 |
| ) |
| |
| // Enum value maps for NumericFilter_Operation. |
| var ( |
| NumericFilter_Operation_name = map[int32]string{ |
| 0: "OPERATION_UNSPECIFIED", |
| 1: "EQUAL", |
| 2: "LESS_THAN", |
| 3: "LESS_THAN_OR_EQUAL", |
| 4: "GREATER_THAN", |
| 5: "GREATER_THAN_OR_EQUAL", |
| } |
| NumericFilter_Operation_value = map[string]int32{ |
| "OPERATION_UNSPECIFIED": 0, |
| "EQUAL": 1, |
| "LESS_THAN": 2, |
| "LESS_THAN_OR_EQUAL": 3, |
| "GREATER_THAN": 4, |
| "GREATER_THAN_OR_EQUAL": 5, |
| } |
| ) |
| |
| func (x NumericFilter_Operation) Enum() *NumericFilter_Operation { |
| p := new(NumericFilter_Operation) |
| *p = x |
| return p |
| } |
| |
| func (x NumericFilter_Operation) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (NumericFilter_Operation) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_analytics_data_v1alpha_data_proto_enumTypes[8].Descriptor() |
| } |
| |
| func (NumericFilter_Operation) Type() protoreflect.EnumType { |
| return &file_google_analytics_data_v1alpha_data_proto_enumTypes[8] |
| } |
| |
| func (x NumericFilter_Operation) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use NumericFilter_Operation.Descriptor instead. |
| func (NumericFilter_Operation) EnumDescriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{8, 0} |
| } |
| |
| // A contiguous set of days: startDate, startDate + 1, ..., endDate. Requests |
| // are allowed up to 4 date ranges. |
| type DateRange struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot |
| // be after `end_date`. The format `NdaysAgo`, `yesterday`, or `today` is also |
| // accepted, and in that case, the date is inferred based on the property's |
| // reporting time zone. |
| StartDate string `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` |
| // The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot |
| // be before `start_date`. The format `NdaysAgo`, `yesterday`, or `today` is |
| // also accepted, and in that case, the date is inferred based on the |
| // property's reporting time zone. |
| EndDate string `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` |
| // Assigns a name to this date range. The dimension `dateRange` is valued to |
| // this name in a report response. If set, cannot begin with `date_range_` or |
| // `RESERVED_`. If not set, date ranges are named by their zero based index in |
| // the request: `date_range_0`, `date_range_1`, etc. |
| Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` |
| } |
| |
| func (x *DateRange) Reset() { |
| *x = DateRange{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[0] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DateRange) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DateRange) ProtoMessage() {} |
| |
| func (x *DateRange) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 DateRange.ProtoReflect.Descriptor instead. |
| func (*DateRange) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (x *DateRange) GetStartDate() string { |
| if x != nil { |
| return x.StartDate |
| } |
| return "" |
| } |
| |
| func (x *DateRange) GetEndDate() string { |
| if x != nil { |
| return x.EndDate |
| } |
| return "" |
| } |
| |
| func (x *DateRange) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| // Dimensions are attributes of your data. For example, the dimension city |
| // indicates the city from which an event originates. Dimension values in report |
| // responses are strings; for example, the city could be "Paris" or "New York". |
| type Dimension struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The name of the dimension. See the [API |
| // Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) |
| // for the list of dimension names. |
| // |
| // If `dimensionExpression` is specified, `name` can be any string that you |
| // would like within the allowed character set. For example if a |
| // `dimensionExpression` concatenates `country` and `city`, you could call |
| // that dimension `countryAndCity`. Dimension names that you choose must match |
| // the regular expression `^[a-zA-Z0-9_]$`. |
| // |
| // Dimensions are referenced by `name` in `dimensionFilter`, `orderBys`, |
| // `dimensionExpression`, and `pivots`. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // One dimension can be the result of an expression of multiple dimensions. |
| // For example, dimension "country, city": concatenate(country, ", ", city). |
| DimensionExpression *DimensionExpression `protobuf:"bytes,2,opt,name=dimension_expression,json=dimensionExpression,proto3" json:"dimension_expression,omitempty"` |
| } |
| |
| func (x *Dimension) Reset() { |
| *x = Dimension{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[1] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Dimension) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Dimension) ProtoMessage() {} |
| |
| func (x *Dimension) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 Dimension.ProtoReflect.Descriptor instead. |
| func (*Dimension) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{1} |
| } |
| |
| func (x *Dimension) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *Dimension) GetDimensionExpression() *DimensionExpression { |
| if x != nil { |
| return x.DimensionExpression |
| } |
| return nil |
| } |
| |
| // Used to express a dimension which is the result of a formula of multiple |
| // dimensions. Example usages: |
| // 1) lower_case(dimension) |
| // 2) concatenate(dimension1, symbol, dimension2). |
| type DimensionExpression struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Specify one type of dimension expression for `DimensionExpression`. |
| // |
| // Types that are assignable to OneExpression: |
| // *DimensionExpression_LowerCase |
| // *DimensionExpression_UpperCase |
| // *DimensionExpression_Concatenate |
| OneExpression isDimensionExpression_OneExpression `protobuf_oneof:"one_expression"` |
| } |
| |
| func (x *DimensionExpression) Reset() { |
| *x = DimensionExpression{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DimensionExpression) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DimensionExpression) ProtoMessage() {} |
| |
| func (x *DimensionExpression) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 DimensionExpression.ProtoReflect.Descriptor instead. |
| func (*DimensionExpression) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{2} |
| } |
| |
| func (m *DimensionExpression) GetOneExpression() isDimensionExpression_OneExpression { |
| if m != nil { |
| return m.OneExpression |
| } |
| return nil |
| } |
| |
| func (x *DimensionExpression) GetLowerCase() *DimensionExpression_CaseExpression { |
| if x, ok := x.GetOneExpression().(*DimensionExpression_LowerCase); ok { |
| return x.LowerCase |
| } |
| return nil |
| } |
| |
| func (x *DimensionExpression) GetUpperCase() *DimensionExpression_CaseExpression { |
| if x, ok := x.GetOneExpression().(*DimensionExpression_UpperCase); ok { |
| return x.UpperCase |
| } |
| return nil |
| } |
| |
| func (x *DimensionExpression) GetConcatenate() *DimensionExpression_ConcatenateExpression { |
| if x, ok := x.GetOneExpression().(*DimensionExpression_Concatenate); ok { |
| return x.Concatenate |
| } |
| return nil |
| } |
| |
| type isDimensionExpression_OneExpression interface { |
| isDimensionExpression_OneExpression() |
| } |
| |
| type DimensionExpression_LowerCase struct { |
| // Used to convert a dimension value to lower case. |
| LowerCase *DimensionExpression_CaseExpression `protobuf:"bytes,4,opt,name=lower_case,json=lowerCase,proto3,oneof"` |
| } |
| |
| type DimensionExpression_UpperCase struct { |
| // Used to convert a dimension value to upper case. |
| UpperCase *DimensionExpression_CaseExpression `protobuf:"bytes,5,opt,name=upper_case,json=upperCase,proto3,oneof"` |
| } |
| |
| type DimensionExpression_Concatenate struct { |
| // Used to combine dimension values to a single dimension. |
| // For example, dimension "country, city": concatenate(country, ", ", city). |
| Concatenate *DimensionExpression_ConcatenateExpression `protobuf:"bytes,6,opt,name=concatenate,proto3,oneof"` |
| } |
| |
| func (*DimensionExpression_LowerCase) isDimensionExpression_OneExpression() {} |
| |
| func (*DimensionExpression_UpperCase) isDimensionExpression_OneExpression() {} |
| |
| func (*DimensionExpression_Concatenate) isDimensionExpression_OneExpression() {} |
| |
| // To express dimension or metric filters. The fields in the same |
| // FilterExpression need to be either all dimensions or all metrics. |
| type FilterExpression struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Specify one type of filter expression for `FilterExpression`. |
| // |
| // Types that are assignable to Expr: |
| // *FilterExpression_AndGroup |
| // *FilterExpression_OrGroup |
| // *FilterExpression_NotExpression |
| // *FilterExpression_Filter |
| Expr isFilterExpression_Expr `protobuf_oneof:"expr"` |
| } |
| |
| func (x *FilterExpression) Reset() { |
| *x = FilterExpression{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FilterExpression) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FilterExpression) ProtoMessage() {} |
| |
| func (x *FilterExpression) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 FilterExpression.ProtoReflect.Descriptor instead. |
| func (*FilterExpression) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{3} |
| } |
| |
| func (m *FilterExpression) GetExpr() isFilterExpression_Expr { |
| if m != nil { |
| return m.Expr |
| } |
| return nil |
| } |
| |
| func (x *FilterExpression) GetAndGroup() *FilterExpressionList { |
| if x, ok := x.GetExpr().(*FilterExpression_AndGroup); ok { |
| return x.AndGroup |
| } |
| return nil |
| } |
| |
| func (x *FilterExpression) GetOrGroup() *FilterExpressionList { |
| if x, ok := x.GetExpr().(*FilterExpression_OrGroup); ok { |
| return x.OrGroup |
| } |
| return nil |
| } |
| |
| func (x *FilterExpression) GetNotExpression() *FilterExpression { |
| if x, ok := x.GetExpr().(*FilterExpression_NotExpression); ok { |
| return x.NotExpression |
| } |
| return nil |
| } |
| |
| func (x *FilterExpression) GetFilter() *Filter { |
| if x, ok := x.GetExpr().(*FilterExpression_Filter); ok { |
| return x.Filter |
| } |
| return nil |
| } |
| |
| type isFilterExpression_Expr interface { |
| isFilterExpression_Expr() |
| } |
| |
| type FilterExpression_AndGroup struct { |
| // The FilterExpressions in and_group have an AND relationship. |
| AndGroup *FilterExpressionList `protobuf:"bytes,1,opt,name=and_group,json=andGroup,proto3,oneof"` |
| } |
| |
| type FilterExpression_OrGroup struct { |
| // The FilterExpressions in or_group have an OR relationship. |
| OrGroup *FilterExpressionList `protobuf:"bytes,2,opt,name=or_group,json=orGroup,proto3,oneof"` |
| } |
| |
| type FilterExpression_NotExpression struct { |
| // The FilterExpression is NOT of not_expression. |
| NotExpression *FilterExpression `protobuf:"bytes,3,opt,name=not_expression,json=notExpression,proto3,oneof"` |
| } |
| |
| type FilterExpression_Filter struct { |
| // A primitive filter. In the same FilterExpression, all of the filter's |
| // field names need to be either all dimensions or all metrics. |
| Filter *Filter `protobuf:"bytes,4,opt,name=filter,proto3,oneof"` |
| } |
| |
| func (*FilterExpression_AndGroup) isFilterExpression_Expr() {} |
| |
| func (*FilterExpression_OrGroup) isFilterExpression_Expr() {} |
| |
| func (*FilterExpression_NotExpression) isFilterExpression_Expr() {} |
| |
| func (*FilterExpression_Filter) isFilterExpression_Expr() {} |
| |
| // A list of filter expressions. |
| type FilterExpressionList struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A list of filter expressions. |
| Expressions []*FilterExpression `protobuf:"bytes,1,rep,name=expressions,proto3" json:"expressions,omitempty"` |
| } |
| |
| func (x *FilterExpressionList) Reset() { |
| *x = FilterExpressionList{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FilterExpressionList) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FilterExpressionList) ProtoMessage() {} |
| |
| func (x *FilterExpressionList) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 FilterExpressionList.ProtoReflect.Descriptor instead. |
| func (*FilterExpressionList) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{4} |
| } |
| |
| func (x *FilterExpressionList) GetExpressions() []*FilterExpression { |
| if x != nil { |
| return x.Expressions |
| } |
| return nil |
| } |
| |
| // An expression to filter dimension or metric values. |
| type Filter struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The dimension name or metric name. Must be a name defined in dimensions |
| // or metrics. |
| FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` |
| // Specify one type of filter for `Filter`. |
| // |
| // Types that are assignable to OneFilter: |
| // *Filter_StringFilter |
| // *Filter_InListFilter |
| // *Filter_NumericFilter |
| // *Filter_BetweenFilter |
| OneFilter isFilter_OneFilter `protobuf_oneof:"one_filter"` |
| } |
| |
| func (x *Filter) Reset() { |
| *x = Filter{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[5] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Filter) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Filter) ProtoMessage() {} |
| |
| func (x *Filter) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 Filter.ProtoReflect.Descriptor instead. |
| func (*Filter) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{5} |
| } |
| |
| func (x *Filter) GetFieldName() string { |
| if x != nil { |
| return x.FieldName |
| } |
| return "" |
| } |
| |
| func (m *Filter) GetOneFilter() isFilter_OneFilter { |
| if m != nil { |
| return m.OneFilter |
| } |
| return nil |
| } |
| |
| func (x *Filter) GetStringFilter() *StringFilter { |
| if x, ok := x.GetOneFilter().(*Filter_StringFilter); ok { |
| return x.StringFilter |
| } |
| return nil |
| } |
| |
| func (x *Filter) GetInListFilter() *InListFilter { |
| if x, ok := x.GetOneFilter().(*Filter_InListFilter); ok { |
| return x.InListFilter |
| } |
| return nil |
| } |
| |
| func (x *Filter) GetNumericFilter() *NumericFilter { |
| if x, ok := x.GetOneFilter().(*Filter_NumericFilter); ok { |
| return x.NumericFilter |
| } |
| return nil |
| } |
| |
| func (x *Filter) GetBetweenFilter() *BetweenFilter { |
| if x, ok := x.GetOneFilter().(*Filter_BetweenFilter); ok { |
| return x.BetweenFilter |
| } |
| return nil |
| } |
| |
| type isFilter_OneFilter interface { |
| isFilter_OneFilter() |
| } |
| |
| type Filter_StringFilter struct { |
| // Strings related filter. |
| StringFilter *StringFilter `protobuf:"bytes,2,opt,name=string_filter,json=stringFilter,proto3,oneof"` |
| } |
| |
| type Filter_InListFilter struct { |
| // A filter for in list values. |
| InListFilter *InListFilter `protobuf:"bytes,3,opt,name=in_list_filter,json=inListFilter,proto3,oneof"` |
| } |
| |
| type Filter_NumericFilter struct { |
| // A filter for numeric or date values. |
| NumericFilter *NumericFilter `protobuf:"bytes,4,opt,name=numeric_filter,json=numericFilter,proto3,oneof"` |
| } |
| |
| type Filter_BetweenFilter struct { |
| // A filter for between two values. |
| BetweenFilter *BetweenFilter `protobuf:"bytes,5,opt,name=between_filter,json=betweenFilter,proto3,oneof"` |
| } |
| |
| func (*Filter_StringFilter) isFilter_OneFilter() {} |
| |
| func (*Filter_InListFilter) isFilter_OneFilter() {} |
| |
| func (*Filter_NumericFilter) isFilter_OneFilter() {} |
| |
| func (*Filter_BetweenFilter) isFilter_OneFilter() {} |
| |
| // The filter for string |
| type StringFilter struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The match type for this filter. |
| MatchType StringFilter_MatchType `protobuf:"varint,1,opt,name=match_type,json=matchType,proto3,enum=google.analytics.data.v1alpha.StringFilter_MatchType" json:"match_type,omitempty"` |
| // The string value used for the matching. |
| Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` |
| // If true, the string value is case sensitive. |
| CaseSensitive bool `protobuf:"varint,3,opt,name=case_sensitive,json=caseSensitive,proto3" json:"case_sensitive,omitempty"` |
| } |
| |
| func (x *StringFilter) Reset() { |
| *x = StringFilter{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[6] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StringFilter) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StringFilter) ProtoMessage() {} |
| |
| func (x *StringFilter) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 StringFilter.ProtoReflect.Descriptor instead. |
| func (*StringFilter) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{6} |
| } |
| |
| func (x *StringFilter) GetMatchType() StringFilter_MatchType { |
| if x != nil { |
| return x.MatchType |
| } |
| return StringFilter_MATCH_TYPE_UNSPECIFIED |
| } |
| |
| func (x *StringFilter) GetValue() string { |
| if x != nil { |
| return x.Value |
| } |
| return "" |
| } |
| |
| func (x *StringFilter) GetCaseSensitive() bool { |
| if x != nil { |
| return x.CaseSensitive |
| } |
| return false |
| } |
| |
| // The result needs to be in a list of string values. |
| type InListFilter struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The list of string values. |
| // Must be non-empty. |
| Values []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` |
| // If true, the string value is case sensitive. |
| CaseSensitive bool `protobuf:"varint,2,opt,name=case_sensitive,json=caseSensitive,proto3" json:"case_sensitive,omitempty"` |
| } |
| |
| func (x *InListFilter) Reset() { |
| *x = InListFilter{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[7] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *InListFilter) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*InListFilter) ProtoMessage() {} |
| |
| func (x *InListFilter) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 InListFilter.ProtoReflect.Descriptor instead. |
| func (*InListFilter) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{7} |
| } |
| |
| func (x *InListFilter) GetValues() []string { |
| if x != nil { |
| return x.Values |
| } |
| return nil |
| } |
| |
| func (x *InListFilter) GetCaseSensitive() bool { |
| if x != nil { |
| return x.CaseSensitive |
| } |
| return false |
| } |
| |
| // Filters for numeric or date values. |
| type NumericFilter struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The operation type for this filter. |
| Operation NumericFilter_Operation `protobuf:"varint,1,opt,name=operation,proto3,enum=google.analytics.data.v1alpha.NumericFilter_Operation" json:"operation,omitempty"` |
| // A numeric value or a date value. |
| Value *NumericValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` |
| } |
| |
| func (x *NumericFilter) Reset() { |
| *x = NumericFilter{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[8] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *NumericFilter) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*NumericFilter) ProtoMessage() {} |
| |
| func (x *NumericFilter) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 NumericFilter.ProtoReflect.Descriptor instead. |
| func (*NumericFilter) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{8} |
| } |
| |
| func (x *NumericFilter) GetOperation() NumericFilter_Operation { |
| if x != nil { |
| return x.Operation |
| } |
| return NumericFilter_OPERATION_UNSPECIFIED |
| } |
| |
| func (x *NumericFilter) GetValue() *NumericValue { |
| if x != nil { |
| return x.Value |
| } |
| return nil |
| } |
| |
| // To express that the result needs to be between two numbers (inclusive). |
| type BetweenFilter struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Begins with this number. |
| FromValue *NumericValue `protobuf:"bytes,1,opt,name=from_value,json=fromValue,proto3" json:"from_value,omitempty"` |
| // Ends with this number. |
| ToValue *NumericValue `protobuf:"bytes,2,opt,name=to_value,json=toValue,proto3" json:"to_value,omitempty"` |
| } |
| |
| func (x *BetweenFilter) Reset() { |
| *x = BetweenFilter{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[9] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BetweenFilter) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BetweenFilter) ProtoMessage() {} |
| |
| func (x *BetweenFilter) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 BetweenFilter.ProtoReflect.Descriptor instead. |
| func (*BetweenFilter) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{9} |
| } |
| |
| func (x *BetweenFilter) GetFromValue() *NumericValue { |
| if x != nil { |
| return x.FromValue |
| } |
| return nil |
| } |
| |
| func (x *BetweenFilter) GetToValue() *NumericValue { |
| if x != nil { |
| return x.ToValue |
| } |
| return nil |
| } |
| |
| // To represent a number. |
| type NumericValue struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // One of a numeric value |
| // |
| // Types that are assignable to OneValue: |
| // *NumericValue_Int64Value |
| // *NumericValue_DoubleValue |
| OneValue isNumericValue_OneValue `protobuf_oneof:"one_value"` |
| } |
| |
| func (x *NumericValue) Reset() { |
| *x = NumericValue{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[10] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *NumericValue) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*NumericValue) ProtoMessage() {} |
| |
| func (x *NumericValue) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 NumericValue.ProtoReflect.Descriptor instead. |
| func (*NumericValue) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{10} |
| } |
| |
| func (m *NumericValue) GetOneValue() isNumericValue_OneValue { |
| if m != nil { |
| return m.OneValue |
| } |
| return nil |
| } |
| |
| func (x *NumericValue) GetInt64Value() int64 { |
| if x, ok := x.GetOneValue().(*NumericValue_Int64Value); ok { |
| return x.Int64Value |
| } |
| return 0 |
| } |
| |
| func (x *NumericValue) GetDoubleValue() float64 { |
| if x, ok := x.GetOneValue().(*NumericValue_DoubleValue); ok { |
| return x.DoubleValue |
| } |
| return 0 |
| } |
| |
| type isNumericValue_OneValue interface { |
| isNumericValue_OneValue() |
| } |
| |
| type NumericValue_Int64Value struct { |
| // Integer value |
| Int64Value int64 `protobuf:"varint,1,opt,name=int64_value,json=int64Value,proto3,oneof"` |
| } |
| |
| type NumericValue_DoubleValue struct { |
| // Double value |
| DoubleValue float64 `protobuf:"fixed64,2,opt,name=double_value,json=doubleValue,proto3,oneof"` |
| } |
| |
| func (*NumericValue_Int64Value) isNumericValue_OneValue() {} |
| |
| func (*NumericValue_DoubleValue) isNumericValue_OneValue() {} |
| |
| // Describes a dimension column in the report. Dimensions requested in a report |
| // produce column entries within rows and DimensionHeaders. However, dimensions |
| // used exclusively within filters or expressions do not produce columns in a |
| // report; correspondingly, those dimensions do not produce headers. |
| type DimensionHeader struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The dimension's name. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| } |
| |
| func (x *DimensionHeader) Reset() { |
| *x = DimensionHeader{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[11] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DimensionHeader) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DimensionHeader) ProtoMessage() {} |
| |
| func (x *DimensionHeader) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 DimensionHeader.ProtoReflect.Descriptor instead. |
| func (*DimensionHeader) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{11} |
| } |
| |
| func (x *DimensionHeader) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| // Describes a metric column in the report. Visible metrics requested in a |
| // report produce column entries within rows and MetricHeaders. However, |
| // metrics used exclusively within filters or expressions do not produce columns |
| // in a report; correspondingly, those metrics do not produce headers. |
| type MetricHeader struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The metric's name. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // The metric's data type. |
| Type MetricType `protobuf:"varint,2,opt,name=type,proto3,enum=google.analytics.data.v1alpha.MetricType" json:"type,omitempty"` |
| } |
| |
| func (x *MetricHeader) Reset() { |
| *x = MetricHeader{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[12] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *MetricHeader) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*MetricHeader) ProtoMessage() {} |
| |
| func (x *MetricHeader) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 MetricHeader.ProtoReflect.Descriptor instead. |
| func (*MetricHeader) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{12} |
| } |
| |
| func (x *MetricHeader) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *MetricHeader) GetType() MetricType { |
| if x != nil { |
| return x.Type |
| } |
| return MetricType_METRIC_TYPE_UNSPECIFIED |
| } |
| |
| // Report data for each row. |
| // For example if RunReportRequest contains: |
| // |
| // ```none |
| // "dimensions": [ |
| // |
| // { |
| // "name": "eventName" |
| // }, |
| // { |
| // "name": "countryId" |
| // } |
| // |
| // ], |
| // "metrics": [ |
| // |
| // { |
| // "name": "eventCount" |
| // } |
| // |
| // ] |
| // ``` |
| // |
| // One row with 'in_app_purchase' as the eventName, 'JP' as the countryId, and |
| // 15 as the eventCount, would be: |
| // |
| // ```none |
| // "dimensionValues": [ |
| // |
| // { |
| // "value": "in_app_purchase" |
| // }, |
| // { |
| // "value": "JP" |
| // } |
| // |
| // ], |
| // "metricValues": [ |
| // |
| // { |
| // "value": "15" |
| // } |
| // |
| // ] |
| // ``` |
| type Row struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // List of requested dimension values. In a PivotReport, dimension_values |
| // are only listed for dimensions included in a pivot. |
| DimensionValues []*DimensionValue `protobuf:"bytes,1,rep,name=dimension_values,json=dimensionValues,proto3" json:"dimension_values,omitempty"` |
| // List of requested visible metric values. |
| MetricValues []*MetricValue `protobuf:"bytes,2,rep,name=metric_values,json=metricValues,proto3" json:"metric_values,omitempty"` |
| } |
| |
| func (x *Row) Reset() { |
| *x = Row{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[13] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Row) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Row) ProtoMessage() {} |
| |
| func (x *Row) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 Row.ProtoReflect.Descriptor instead. |
| func (*Row) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{13} |
| } |
| |
| func (x *Row) GetDimensionValues() []*DimensionValue { |
| if x != nil { |
| return x.DimensionValues |
| } |
| return nil |
| } |
| |
| func (x *Row) GetMetricValues() []*MetricValue { |
| if x != nil { |
| return x.MetricValues |
| } |
| return nil |
| } |
| |
| // The value of a dimension. |
| type DimensionValue struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // One kind of dimension value |
| // |
| // Types that are assignable to OneValue: |
| // *DimensionValue_Value |
| OneValue isDimensionValue_OneValue `protobuf_oneof:"one_value"` |
| } |
| |
| func (x *DimensionValue) Reset() { |
| *x = DimensionValue{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[14] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DimensionValue) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DimensionValue) ProtoMessage() {} |
| |
| func (x *DimensionValue) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 DimensionValue.ProtoReflect.Descriptor instead. |
| func (*DimensionValue) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{14} |
| } |
| |
| func (m *DimensionValue) GetOneValue() isDimensionValue_OneValue { |
| if m != nil { |
| return m.OneValue |
| } |
| return nil |
| } |
| |
| func (x *DimensionValue) GetValue() string { |
| if x, ok := x.GetOneValue().(*DimensionValue_Value); ok { |
| return x.Value |
| } |
| return "" |
| } |
| |
| type isDimensionValue_OneValue interface { |
| isDimensionValue_OneValue() |
| } |
| |
| type DimensionValue_Value struct { |
| // Value as a string if the dimension type is a string. |
| Value string `protobuf:"bytes,1,opt,name=value,proto3,oneof"` |
| } |
| |
| func (*DimensionValue_Value) isDimensionValue_OneValue() {} |
| |
| // The value of a metric. |
| type MetricValue struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // One of metric value |
| // |
| // Types that are assignable to OneValue: |
| // *MetricValue_Value |
| OneValue isMetricValue_OneValue `protobuf_oneof:"one_value"` |
| } |
| |
| func (x *MetricValue) Reset() { |
| *x = MetricValue{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[15] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *MetricValue) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*MetricValue) ProtoMessage() {} |
| |
| func (x *MetricValue) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 MetricValue.ProtoReflect.Descriptor instead. |
| func (*MetricValue) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{15} |
| } |
| |
| func (m *MetricValue) GetOneValue() isMetricValue_OneValue { |
| if m != nil { |
| return m.OneValue |
| } |
| return nil |
| } |
| |
| func (x *MetricValue) GetValue() string { |
| if x, ok := x.GetOneValue().(*MetricValue_Value); ok { |
| return x.Value |
| } |
| return "" |
| } |
| |
| type isMetricValue_OneValue interface { |
| isMetricValue_OneValue() |
| } |
| |
| type MetricValue_Value struct { |
| // Measurement value. See MetricHeader for type. |
| Value string `protobuf:"bytes,4,opt,name=value,proto3,oneof"` |
| } |
| |
| func (*MetricValue_Value) isMetricValue_OneValue() {} |
| |
| // Current state of all quotas for this Analytics Property. If any quota for a |
| // property is exhausted, all requests to that property will return Resource |
| // Exhausted errors. |
| type PropertyQuota struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Standard Analytics Properties can use up to 25,000 tokens per day; |
| // Analytics 360 Properties can use 250,000 tokens per day. Most requests |
| // consume fewer than 10 tokens. |
| TokensPerDay *QuotaStatus `protobuf:"bytes,1,opt,name=tokens_per_day,json=tokensPerDay,proto3" json:"tokens_per_day,omitempty"` |
| // Standard Analytics Properties can use up to 5,000 tokens per hour; |
| // Analytics 360 Properties can use 50,000 tokens per hour. An API request |
| // consumes a single number of tokens, and that number is deducted from both |
| // the hourly and daily quotas. |
| TokensPerHour *QuotaStatus `protobuf:"bytes,2,opt,name=tokens_per_hour,json=tokensPerHour,proto3" json:"tokens_per_hour,omitempty"` |
| // Standard Analytics Properties can send up to 10 concurrent requests; |
| // Analytics 360 Properties can use up to 50 concurrent requests. |
| ConcurrentRequests *QuotaStatus `protobuf:"bytes,3,opt,name=concurrent_requests,json=concurrentRequests,proto3" json:"concurrent_requests,omitempty"` |
| // Standard Analytics Properties and cloud project pairs can have up to 10 |
| // server errors per hour; Analytics 360 Properties and cloud project pairs |
| // can have up to 50 server errors per hour. |
| ServerErrorsPerProjectPerHour *QuotaStatus `protobuf:"bytes,4,opt,name=server_errors_per_project_per_hour,json=serverErrorsPerProjectPerHour,proto3" json:"server_errors_per_project_per_hour,omitempty"` |
| // Analytics Properties can send up to 120 requests with potentially |
| // thresholded dimensions per hour. In a batch request, each report request |
| // is individually counted for this quota if the request contains potentially |
| // thresholded dimensions. |
| PotentiallyThresholdedRequestsPerHour *QuotaStatus `protobuf:"bytes,5,opt,name=potentially_thresholded_requests_per_hour,json=potentiallyThresholdedRequestsPerHour,proto3" json:"potentially_thresholded_requests_per_hour,omitempty"` |
| } |
| |
| func (x *PropertyQuota) Reset() { |
| *x = PropertyQuota{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[16] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *PropertyQuota) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*PropertyQuota) ProtoMessage() {} |
| |
| func (x *PropertyQuota) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 PropertyQuota.ProtoReflect.Descriptor instead. |
| func (*PropertyQuota) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{16} |
| } |
| |
| func (x *PropertyQuota) GetTokensPerDay() *QuotaStatus { |
| if x != nil { |
| return x.TokensPerDay |
| } |
| return nil |
| } |
| |
| func (x *PropertyQuota) GetTokensPerHour() *QuotaStatus { |
| if x != nil { |
| return x.TokensPerHour |
| } |
| return nil |
| } |
| |
| func (x *PropertyQuota) GetConcurrentRequests() *QuotaStatus { |
| if x != nil { |
| return x.ConcurrentRequests |
| } |
| return nil |
| } |
| |
| func (x *PropertyQuota) GetServerErrorsPerProjectPerHour() *QuotaStatus { |
| if x != nil { |
| return x.ServerErrorsPerProjectPerHour |
| } |
| return nil |
| } |
| |
| func (x *PropertyQuota) GetPotentiallyThresholdedRequestsPerHour() *QuotaStatus { |
| if x != nil { |
| return x.PotentiallyThresholdedRequestsPerHour |
| } |
| return nil |
| } |
| |
| // Current state for a particular quota group. |
| type QuotaStatus struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Quota consumed by this request. |
| Consumed int32 `protobuf:"varint,1,opt,name=consumed,proto3" json:"consumed,omitempty"` |
| // Quota remaining after this request. |
| Remaining int32 `protobuf:"varint,2,opt,name=remaining,proto3" json:"remaining,omitempty"` |
| } |
| |
| func (x *QuotaStatus) Reset() { |
| *x = QuotaStatus{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[17] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *QuotaStatus) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*QuotaStatus) ProtoMessage() {} |
| |
| func (x *QuotaStatus) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 QuotaStatus.ProtoReflect.Descriptor instead. |
| func (*QuotaStatus) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{17} |
| } |
| |
| func (x *QuotaStatus) GetConsumed() int32 { |
| if x != nil { |
| return x.Consumed |
| } |
| return 0 |
| } |
| |
| func (x *QuotaStatus) GetRemaining() int32 { |
| if x != nil { |
| return x.Remaining |
| } |
| return 0 |
| } |
| |
| // Breakdowns add a dimension to the funnel table sub report response. |
| type FunnelBreakdown struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The dimension column added to the funnel table sub report response. The |
| // breakdown dimension breaks down each funnel step. A valid |
| // `breakdownDimension` is required if `funnelBreakdown` is specified. |
| BreakdownDimension *Dimension `protobuf:"bytes,1,opt,name=breakdown_dimension,json=breakdownDimension,proto3" json:"breakdown_dimension,omitempty"` |
| // The maximum number of distinct values of the breakdown dimension to return |
| // in the response. A `limit` of `5` is used if limit is not specified. Limit |
| // must exceed zero and cannot exceed 15. |
| Limit *int64 `protobuf:"varint,2,opt,name=limit,proto3,oneof" json:"limit,omitempty"` |
| } |
| |
| func (x *FunnelBreakdown) Reset() { |
| *x = FunnelBreakdown{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[18] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FunnelBreakdown) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FunnelBreakdown) ProtoMessage() {} |
| |
| func (x *FunnelBreakdown) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 FunnelBreakdown.ProtoReflect.Descriptor instead. |
| func (*FunnelBreakdown) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{18} |
| } |
| |
| func (x *FunnelBreakdown) GetBreakdownDimension() *Dimension { |
| if x != nil { |
| return x.BreakdownDimension |
| } |
| return nil |
| } |
| |
| func (x *FunnelBreakdown) GetLimit() int64 { |
| if x != nil && x.Limit != nil { |
| return *x.Limit |
| } |
| return 0 |
| } |
| |
| // Next actions state the value for a dimension after the user has achieved |
| // a step but before the same user has achieved the next step. For example if |
| // the `nextActionDimension` is `eventName`, then `nextActionDimension` in the |
| // `i`th funnel step row will return first event after the event that qualified |
| // the user into the `i`th funnel step but before the user achieved the `i+1`th |
| // funnel step. |
| type FunnelNextAction struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The dimension column added to the funnel visualization sub report response. |
| // The next action dimension returns the next dimension value of this |
| // dimension after the user has attained the `i`th funnel step. |
| // |
| // `nextActionDimension` currently only supports `eventName` and most Page / |
| // Screen dimensions like `pageTitle` and `pagePath`. `nextActionDimension` |
| // cannot be a dimension expression. |
| NextActionDimension *Dimension `protobuf:"bytes,1,opt,name=next_action_dimension,json=nextActionDimension,proto3" json:"next_action_dimension,omitempty"` |
| // The maximum number of distinct values of the breakdown dimension to return |
| // in the response. A `limit` of `5` is used if limit is not specified. Limit |
| // must exceed zero and cannot exceed 5. |
| Limit *int64 `protobuf:"varint,2,opt,name=limit,proto3,oneof" json:"limit,omitempty"` |
| } |
| |
| func (x *FunnelNextAction) Reset() { |
| *x = FunnelNextAction{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[19] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FunnelNextAction) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FunnelNextAction) ProtoMessage() {} |
| |
| func (x *FunnelNextAction) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 FunnelNextAction.ProtoReflect.Descriptor instead. |
| func (*FunnelNextAction) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{19} |
| } |
| |
| func (x *FunnelNextAction) GetNextActionDimension() *Dimension { |
| if x != nil { |
| return x.NextActionDimension |
| } |
| return nil |
| } |
| |
| func (x *FunnelNextAction) GetLimit() int64 { |
| if x != nil && x.Limit != nil { |
| return *x.Limit |
| } |
| return 0 |
| } |
| |
| // Configures the funnel in a funnel report request. A funnel reports on users |
| // as they pass through a sequence of steps. |
| // |
| // Funnel exploration lets you visualize the steps your users take to complete a |
| // task and quickly see how well they are succeeding or failing at each step. |
| // For example, how do prospects become shoppers and then become buyers? How do |
| // one time buyers become repeat buyers? With this information, you can improve |
| // inefficient or abandoned customer journeys. |
| type Funnel struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // In an open funnel, users can enter the funnel in any step, and in a closed |
| // funnel, users must enter the funnel in the first step. Optional. If |
| // unspecified, a closed funnel is used. |
| IsOpenFunnel bool `protobuf:"varint,1,opt,name=is_open_funnel,json=isOpenFunnel,proto3" json:"is_open_funnel,omitempty"` |
| // The sequential steps of this funnel. |
| Steps []*FunnelStep `protobuf:"bytes,2,rep,name=steps,proto3" json:"steps,omitempty"` |
| } |
| |
| func (x *Funnel) Reset() { |
| *x = Funnel{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[20] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Funnel) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Funnel) ProtoMessage() {} |
| |
| func (x *Funnel) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 Funnel.ProtoReflect.Descriptor instead. |
| func (*Funnel) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{20} |
| } |
| |
| func (x *Funnel) GetIsOpenFunnel() bool { |
| if x != nil { |
| return x.IsOpenFunnel |
| } |
| return false |
| } |
| |
| func (x *Funnel) GetSteps() []*FunnelStep { |
| if x != nil { |
| return x.Steps |
| } |
| return nil |
| } |
| |
| // Steps define the user journey you want to measure. Steps contain one or |
| // more conditions that your users must meet to be included in that step of |
| // the funnel journey. |
| type FunnelStep struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The distinctive name for this step. If unspecified, steps will be named |
| // by a 1 based indexed name (i.e. "0. ", "1. ", etc.). This name defines |
| // string value returned by the `funnelStepName` dimension. For example, |
| // specifying `name = Purchase` in the request's third funnel step will |
| // produce `3. Purchase` in the funnel report response. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // If true, this step must directly follow the previous step. If false, |
| // there can be events between the previous step and this step. If |
| // unspecified, `isDirectlyFollowedBy` is treated as false. |
| IsDirectlyFollowedBy bool `protobuf:"varint,2,opt,name=is_directly_followed_by,json=isDirectlyFollowedBy,proto3" json:"is_directly_followed_by,omitempty"` |
| // If specified, this step must complete within this duration of the |
| // completion of the prior step. `withinDurationFromPriorStep` is inclusive |
| // of the endpoint at the microsecond granularity. For example a duration of |
| // 5 seconds can be completed at 4.9 or 5.0 seconds, but not 5 seconds and 1 |
| // microsecond. |
| // |
| // `withinDurationFromPriorStep` is optional, and if unspecified, steps may |
| // be separated by any time duration. |
| WithinDurationFromPriorStep *durationpb.Duration `protobuf:"bytes,3,opt,name=within_duration_from_prior_step,json=withinDurationFromPriorStep,proto3,oneof" json:"within_duration_from_prior_step,omitempty"` |
| // The condition that your users must meet to be included in this step of |
| // the funnel journey. |
| FilterExpression *FunnelFilterExpression `protobuf:"bytes,4,opt,name=filter_expression,json=filterExpression,proto3" json:"filter_expression,omitempty"` |
| } |
| |
| func (x *FunnelStep) Reset() { |
| *x = FunnelStep{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[21] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FunnelStep) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FunnelStep) ProtoMessage() {} |
| |
| func (x *FunnelStep) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_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 FunnelStep.ProtoReflect.Descriptor instead. |
| func (*FunnelStep) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{21} |
| } |
| |
| func (x *FunnelStep) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *FunnelStep) GetIsDirectlyFollowedBy() bool { |
| if x != nil { |
| return x.IsDirectlyFollowedBy |
| } |
| return false |
| } |
| |
| func (x *FunnelStep) GetWithinDurationFromPriorStep() *durationpb.Duration { |
| if x != nil { |
| return x.WithinDurationFromPriorStep |
| } |
| return nil |
| } |
| |
| func (x *FunnelStep) GetFilterExpression() *FunnelFilterExpression { |
| if x != nil { |
| return x.FilterExpression |
| } |
| return nil |
| } |
| |
| // Funnel sub reports contain the dimension and metric data values. For example, |
| // 12 users reached the second step of the funnel. |
| type FunnelSubReport struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Describes dimension columns. Funnel reports always include the funnel step |
| // dimension in sub report responses. Additional dimensions like breakdowns, |
| // dates, and next actions may be present in the response if requested. |
| DimensionHeaders []*DimensionHeader `protobuf:"bytes,1,rep,name=dimension_headers,json=dimensionHeaders,proto3" json:"dimension_headers,omitempty"` |
| // Describes metric columns. Funnel reports always include active users in sub |
| // report responses. The funnel table includes additional metrics like |
| // completion rate, abandonments, and abandonments rate. |
| MetricHeaders []*MetricHeader `protobuf:"bytes,2,rep,name=metric_headers,json=metricHeaders,proto3" json:"metric_headers,omitempty"` |
| // Rows of dimension value combinations and metric values in the report. |
| Rows []*Row `protobuf:"bytes,3,rep,name=rows,proto3" json:"rows,omitempty"` |
| // Metadata for the funnel report. |
| Metadata *FunnelResponseMetadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"` |
| } |
| |
| func (x *FunnelSubReport) Reset() { |
| *x = FunnelSubReport{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[22] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FunnelSubReport) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FunnelSubReport) ProtoMessage() {} |
| |
| func (x *FunnelSubReport) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[22] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use FunnelSubReport.ProtoReflect.Descriptor instead. |
| func (*FunnelSubReport) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{22} |
| } |
| |
| func (x *FunnelSubReport) GetDimensionHeaders() []*DimensionHeader { |
| if x != nil { |
| return x.DimensionHeaders |
| } |
| return nil |
| } |
| |
| func (x *FunnelSubReport) GetMetricHeaders() []*MetricHeader { |
| if x != nil { |
| return x.MetricHeaders |
| } |
| return nil |
| } |
| |
| func (x *FunnelSubReport) GetRows() []*Row { |
| if x != nil { |
| return x.Rows |
| } |
| return nil |
| } |
| |
| func (x *FunnelSubReport) GetMetadata() *FunnelResponseMetadata { |
| if x != nil { |
| return x.Metadata |
| } |
| return nil |
| } |
| |
| // User segments are subsets of users who engaged with your site or app. For |
| // example, users who have previously purchased; users who added items to their |
| // shopping carts, but didn’t complete a purchase. |
| type UserSegment struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Defines which users are included in this segment. Optional. |
| UserInclusionCriteria *UserSegmentCriteria `protobuf:"bytes,1,opt,name=user_inclusion_criteria,json=userInclusionCriteria,proto3" json:"user_inclusion_criteria,omitempty"` |
| // Defines which users are excluded in this segment. Optional. |
| Exclusion *UserSegmentExclusion `protobuf:"bytes,2,opt,name=exclusion,proto3" json:"exclusion,omitempty"` |
| } |
| |
| func (x *UserSegment) Reset() { |
| *x = UserSegment{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[23] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UserSegment) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UserSegment) ProtoMessage() {} |
| |
| func (x *UserSegment) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[23] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use UserSegment.ProtoReflect.Descriptor instead. |
| func (*UserSegment) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{23} |
| } |
| |
| func (x *UserSegment) GetUserInclusionCriteria() *UserSegmentCriteria { |
| if x != nil { |
| return x.UserInclusionCriteria |
| } |
| return nil |
| } |
| |
| func (x *UserSegment) GetExclusion() *UserSegmentExclusion { |
| if x != nil { |
| return x.Exclusion |
| } |
| return nil |
| } |
| |
| // A user matches a criteria if the user's events meet the conditions in the |
| // criteria. |
| type UserSegmentCriteria struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A user matches this criteria if the user matches each of these |
| // `andConditionGroups` and each of the `andSequenceGroups`. |
| // `andConditionGroups` may be empty if `andSequenceGroups` are specified. |
| AndConditionGroups []*UserSegmentConditionGroup `protobuf:"bytes,1,rep,name=and_condition_groups,json=andConditionGroups,proto3" json:"and_condition_groups,omitempty"` |
| // A user matches this criteria if the user matches each of these |
| // `andSequenceGroups` and each of the `andConditionGroups`. |
| // `andSequenceGroups` may be empty if `andConditionGroups` are specified. |
| AndSequenceGroups []*UserSegmentSequenceGroup `protobuf:"bytes,2,rep,name=and_sequence_groups,json=andSequenceGroups,proto3" json:"and_sequence_groups,omitempty"` |
| } |
| |
| func (x *UserSegmentCriteria) Reset() { |
| *x = UserSegmentCriteria{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[24] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UserSegmentCriteria) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UserSegmentCriteria) ProtoMessage() {} |
| |
| func (x *UserSegmentCriteria) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[24] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use UserSegmentCriteria.ProtoReflect.Descriptor instead. |
| func (*UserSegmentCriteria) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{24} |
| } |
| |
| func (x *UserSegmentCriteria) GetAndConditionGroups() []*UserSegmentConditionGroup { |
| if x != nil { |
| return x.AndConditionGroups |
| } |
| return nil |
| } |
| |
| func (x *UserSegmentCriteria) GetAndSequenceGroups() []*UserSegmentSequenceGroup { |
| if x != nil { |
| return x.AndSequenceGroups |
| } |
| return nil |
| } |
| |
| // Conditions tell Analytics what data to include in or exclude from the |
| // segment. |
| type UserSegmentConditionGroup struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Data is included or excluded from the segment based on if it matches |
| // the condition group. This scoping defines how many events the |
| // `segmentFilterExpression` is evaluated on before the condition group |
| // is determined to be matched or not. For example if `conditionScoping = |
| // USER_CRITERIA_WITHIN_SAME_SESSION`, the expression is evaluated on all |
| // events in a session, and then, the condition group is determined to be |
| // matched or not for this user. For example if `conditionScoping = |
| // USER_CRITERIA_WITHIN_SAME_EVENT`, the expression is evaluated on a single |
| // event, and then, the condition group is determined to be matched or not for |
| // this user. |
| // |
| // Optional. If unspecified, `conditionScoping = ACROSS_ALL_SESSIONS` is |
| // used. |
| ConditionScoping UserCriteriaScoping `protobuf:"varint,1,opt,name=condition_scoping,json=conditionScoping,proto3,enum=google.analytics.data.v1alpha.UserCriteriaScoping" json:"condition_scoping,omitempty"` |
| // Data is included or excluded from the segment based on if it matches |
| // this expression. Expressions express criteria on dimension, metrics, |
| // and/or parameters. |
| SegmentFilterExpression *SegmentFilterExpression `protobuf:"bytes,2,opt,name=segment_filter_expression,json=segmentFilterExpression,proto3" json:"segment_filter_expression,omitempty"` |
| } |
| |
| func (x *UserSegmentConditionGroup) Reset() { |
| *x = UserSegmentConditionGroup{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[25] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UserSegmentConditionGroup) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UserSegmentConditionGroup) ProtoMessage() {} |
| |
| func (x *UserSegmentConditionGroup) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[25] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use UserSegmentConditionGroup.ProtoReflect.Descriptor instead. |
| func (*UserSegmentConditionGroup) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{25} |
| } |
| |
| func (x *UserSegmentConditionGroup) GetConditionScoping() UserCriteriaScoping { |
| if x != nil { |
| return x.ConditionScoping |
| } |
| return UserCriteriaScoping_USER_CRITERIA_SCOPING_UNSPECIFIED |
| } |
| |
| func (x *UserSegmentConditionGroup) GetSegmentFilterExpression() *SegmentFilterExpression { |
| if x != nil { |
| return x.SegmentFilterExpression |
| } |
| return nil |
| } |
| |
| // Define conditions that must occur in a specific order for the user to be |
| // a member of the segment. |
| type UserSegmentSequenceGroup struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // All sequence steps must be satisfied in the scoping for the user to |
| // match the sequence. For example if `sequenceScoping = |
| // USER_CRITERIA_WITHIN_SAME_SESSION`, all sequence steps must complete within |
| // one session for the user to match the sequence. `sequenceScoping = |
| // USER_CRITERIA_WITHIN_SAME_EVENT` is not supported. |
| // |
| // Optional. If unspecified, `conditionScoping = ACROSS_ALL_SESSIONS` is |
| // used. |
| SequenceScoping UserCriteriaScoping `protobuf:"varint,1,opt,name=sequence_scoping,json=sequenceScoping,proto3,enum=google.analytics.data.v1alpha.UserCriteriaScoping" json:"sequence_scoping,omitempty"` |
| // Defines the time period in which the whole sequence must occur; for |
| // example, 30 Minutes. `sequenceMaximumDuration` is inclusive |
| // of the endpoint at the microsecond granularity. For example a sequence |
| // with a maximum duration of 5 seconds can be completed at 4.9 or 5.0 |
| // seconds, but not 5 seconds and 1 microsecond. |
| // |
| // `sequenceMaximumDuration` is optional, and if unspecified, sequences can |
| // be completed in any time duration. |
| SequenceMaximumDuration *durationpb.Duration `protobuf:"bytes,2,opt,name=sequence_maximum_duration,json=sequenceMaximumDuration,proto3" json:"sequence_maximum_duration,omitempty"` |
| // An ordered sequence of condition steps. A user's events must complete |
| // each step in order for the user to match the |
| // `UserSegmentSequenceGroup`. |
| UserSequenceSteps []*UserSequenceStep `protobuf:"bytes,3,rep,name=user_sequence_steps,json=userSequenceSteps,proto3" json:"user_sequence_steps,omitempty"` |
| } |
| |
| func (x *UserSegmentSequenceGroup) Reset() { |
| *x = UserSegmentSequenceGroup{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[26] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UserSegmentSequenceGroup) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UserSegmentSequenceGroup) ProtoMessage() {} |
| |
| func (x *UserSegmentSequenceGroup) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[26] |
| 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 UserSegmentSequenceGroup.ProtoReflect.Descriptor instead. |
| func (*UserSegmentSequenceGroup) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{26} |
| } |
| |
| func (x *UserSegmentSequenceGroup) GetSequenceScoping() UserCriteriaScoping { |
| if x != nil { |
| return x.SequenceScoping |
| } |
| return UserCriteriaScoping_USER_CRITERIA_SCOPING_UNSPECIFIED |
| } |
| |
| func (x *UserSegmentSequenceGroup) GetSequenceMaximumDuration() *durationpb.Duration { |
| if x != nil { |
| return x.SequenceMaximumDuration |
| } |
| return nil |
| } |
| |
| func (x *UserSegmentSequenceGroup) GetUserSequenceSteps() []*UserSequenceStep { |
| if x != nil { |
| return x.UserSequenceSteps |
| } |
| return nil |
| } |
| |
| // A condition that must occur in the specified step order for this user |
| // to match the sequence. |
| type UserSequenceStep struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // If true, the event satisfying this step must be the very next event |
| // after the event satifying the last step. If false, this step indirectly |
| // follows the prior step; for example, there may be events between the |
| // prior step and this step. `isDirectlyFollowedBy` must be false for |
| // the first step. |
| IsDirectlyFollowedBy bool `protobuf:"varint,1,opt,name=is_directly_followed_by,json=isDirectlyFollowedBy,proto3" json:"is_directly_followed_by,omitempty"` |
| // This sequence step must be satisfied in the scoping for the user to |
| // match the sequence. For example if `sequenceScoping = |
| // WITHIN_SAME_SESSION`, this sequence steps must complete within one |
| // session for the user to match the sequence. `stepScoping = |
| // ACROSS_ALL_SESSIONS` is only allowed if the `sequenceScoping = |
| // ACROSS_ALL_SESSIONS`. |
| // |
| // Optional. If unspecified, `stepScoping` uses the same |
| // `UserCriteriaScoping` as the `sequenceScoping`. |
| StepScoping UserCriteriaScoping `protobuf:"varint,2,opt,name=step_scoping,json=stepScoping,proto3,enum=google.analytics.data.v1alpha.UserCriteriaScoping" json:"step_scoping,omitempty"` |
| // A user matches this sequence step if their events match this |
| // expression. Expressions express criteria on dimension, metrics, |
| // and/or parameters. |
| SegmentFilterExpression *SegmentFilterExpression `protobuf:"bytes,3,opt,name=segment_filter_expression,json=segmentFilterExpression,proto3" json:"segment_filter_expression,omitempty"` |
| } |
| |
| func (x *UserSequenceStep) Reset() { |
| *x = UserSequenceStep{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[27] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UserSequenceStep) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UserSequenceStep) ProtoMessage() {} |
| |
| func (x *UserSequenceStep) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[27] |
| 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 UserSequenceStep.ProtoReflect.Descriptor instead. |
| func (*UserSequenceStep) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{27} |
| } |
| |
| func (x *UserSequenceStep) GetIsDirectlyFollowedBy() bool { |
| if x != nil { |
| return x.IsDirectlyFollowedBy |
| } |
| return false |
| } |
| |
| func (x *UserSequenceStep) GetStepScoping() UserCriteriaScoping { |
| if x != nil { |
| return x.StepScoping |
| } |
| return UserCriteriaScoping_USER_CRITERIA_SCOPING_UNSPECIFIED |
| } |
| |
| func (x *UserSequenceStep) GetSegmentFilterExpression() *SegmentFilterExpression { |
| if x != nil { |
| return x.SegmentFilterExpression |
| } |
| return nil |
| } |
| |
| // Specifies which users are excluded in this segment. |
| type UserSegmentExclusion struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Specifies how long an exclusion will last if a user matches the |
| // `userExclusionCriteria`. |
| // |
| // Optional. If unspecified, `userExclusionDuration` of |
| // `USER_EXCLUSION_TEMPORARY` is used. |
| UserExclusionDuration UserExclusionDuration `protobuf:"varint,1,opt,name=user_exclusion_duration,json=userExclusionDuration,proto3,enum=google.analytics.data.v1alpha.UserExclusionDuration" json:"user_exclusion_duration,omitempty"` |
| // If a user meets this condition, the user is excluded from membership in |
| // the segment for the `userExclusionDuration`. |
| UserExclusionCriteria *UserSegmentCriteria `protobuf:"bytes,2,opt,name=user_exclusion_criteria,json=userExclusionCriteria,proto3" json:"user_exclusion_criteria,omitempty"` |
| } |
| |
| func (x *UserSegmentExclusion) Reset() { |
| *x = UserSegmentExclusion{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[28] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UserSegmentExclusion) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UserSegmentExclusion) ProtoMessage() {} |
| |
| func (x *UserSegmentExclusion) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[28] |
| 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 UserSegmentExclusion.ProtoReflect.Descriptor instead. |
| func (*UserSegmentExclusion) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{28} |
| } |
| |
| func (x *UserSegmentExclusion) GetUserExclusionDuration() UserExclusionDuration { |
| if x != nil { |
| return x.UserExclusionDuration |
| } |
| return UserExclusionDuration_USER_EXCLUSION_DURATION_UNSPECIFIED |
| } |
| |
| func (x *UserSegmentExclusion) GetUserExclusionCriteria() *UserSegmentCriteria { |
| if x != nil { |
| return x.UserExclusionCriteria |
| } |
| return nil |
| } |
| |
| // Session segments are subsets of the sessions that occurred on your site or |
| // app: for example, all the sessions that originated from a particular |
| // advertising campaign. |
| type SessionSegment struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Defines which sessions are included in this segment. Optional. |
| SessionInclusionCriteria *SessionSegmentCriteria `protobuf:"bytes,1,opt,name=session_inclusion_criteria,json=sessionInclusionCriteria,proto3" json:"session_inclusion_criteria,omitempty"` |
| // Defines which sessions are excluded in this segment. Optional. |
| Exclusion *SessionSegmentExclusion `protobuf:"bytes,2,opt,name=exclusion,proto3" json:"exclusion,omitempty"` |
| } |
| |
| func (x *SessionSegment) Reset() { |
| *x = SessionSegment{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[29] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SessionSegment) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SessionSegment) ProtoMessage() {} |
| |
| func (x *SessionSegment) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[29] |
| 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 SessionSegment.ProtoReflect.Descriptor instead. |
| func (*SessionSegment) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{29} |
| } |
| |
| func (x *SessionSegment) GetSessionInclusionCriteria() *SessionSegmentCriteria { |
| if x != nil { |
| return x.SessionInclusionCriteria |
| } |
| return nil |
| } |
| |
| func (x *SessionSegment) GetExclusion() *SessionSegmentExclusion { |
| if x != nil { |
| return x.Exclusion |
| } |
| return nil |
| } |
| |
| // A session matches a criteria if the session's events meet the conditions in |
| // the criteria. |
| type SessionSegmentCriteria struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A session matches this criteria if the session matches each of these |
| // `andConditionGroups`. |
| AndConditionGroups []*SessionSegmentConditionGroup `protobuf:"bytes,1,rep,name=and_condition_groups,json=andConditionGroups,proto3" json:"and_condition_groups,omitempty"` |
| } |
| |
| func (x *SessionSegmentCriteria) Reset() { |
| *x = SessionSegmentCriteria{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[30] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SessionSegmentCriteria) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SessionSegmentCriteria) ProtoMessage() {} |
| |
| func (x *SessionSegmentCriteria) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[30] |
| 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 SessionSegmentCriteria.ProtoReflect.Descriptor instead. |
| func (*SessionSegmentCriteria) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{30} |
| } |
| |
| func (x *SessionSegmentCriteria) GetAndConditionGroups() []*SessionSegmentConditionGroup { |
| if x != nil { |
| return x.AndConditionGroups |
| } |
| return nil |
| } |
| |
| // Conditions tell Analytics what data to include in or exclude from the |
| // segment. |
| type SessionSegmentConditionGroup struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Data is included or excluded from the segment based on if it matches |
| // the condition group. This scoping defines how many events the |
| // `segmentFilterExpression` is evaluated on before the condition group |
| // is determined to be matched or not. For example if `conditionScoping = |
| // SESSION_CRITERIA_WITHIN_SAME_SESSION`, the expression is evaluated on all |
| // events in a session, and then, the condition group is determined to be |
| // matched or not for this session. For example if `conditionScoping = |
| // SESSION_CRITERIA_WITHIN_SAME_EVENT`, the expression is evaluated on a |
| // single event, and then, the condition group is determined to be matched or |
| // not for this session. |
| // |
| // Optional. If unspecified, a `conditionScoping` of `WITHIN_SAME_SESSION` |
| // is used. |
| ConditionScoping SessionCriteriaScoping `protobuf:"varint,1,opt,name=condition_scoping,json=conditionScoping,proto3,enum=google.analytics.data.v1alpha.SessionCriteriaScoping" json:"condition_scoping,omitempty"` |
| // Data is included or excluded from the segment based on if it matches |
| // this expression. Expressions express criteria on dimension, metrics, |
| // and/or parameters. |
| SegmentFilterExpression *SegmentFilterExpression `protobuf:"bytes,2,opt,name=segment_filter_expression,json=segmentFilterExpression,proto3" json:"segment_filter_expression,omitempty"` |
| } |
| |
| func (x *SessionSegmentConditionGroup) Reset() { |
| *x = SessionSegmentConditionGroup{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[31] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SessionSegmentConditionGroup) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SessionSegmentConditionGroup) ProtoMessage() {} |
| |
| func (x *SessionSegmentConditionGroup) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[31] |
| 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 SessionSegmentConditionGroup.ProtoReflect.Descriptor instead. |
| func (*SessionSegmentConditionGroup) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{31} |
| } |
| |
| func (x *SessionSegmentConditionGroup) GetConditionScoping() SessionCriteriaScoping { |
| if x != nil { |
| return x.ConditionScoping |
| } |
| return SessionCriteriaScoping_SESSION_CRITERIA_SCOPING_UNSPECIFIED |
| } |
| |
| func (x *SessionSegmentConditionGroup) GetSegmentFilterExpression() *SegmentFilterExpression { |
| if x != nil { |
| return x.SegmentFilterExpression |
| } |
| return nil |
| } |
| |
| // Specifies which sessions are excluded in this segment. |
| type SessionSegmentExclusion struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Specifies how long an exclusion will last if a session matches the |
| // `sessionExclusionCriteria`. |
| // |
| // Optional. If unspecified, a `sessionExclusionDuration` of |
| // `SESSION_EXCLUSION_TEMPORARY` is used. |
| SessionExclusionDuration SessionExclusionDuration `protobuf:"varint,1,opt,name=session_exclusion_duration,json=sessionExclusionDuration,proto3,enum=google.analytics.data.v1alpha.SessionExclusionDuration" json:"session_exclusion_duration,omitempty"` |
| // If a session meets this condition, the session is excluded from |
| // membership in the segment for the `sessionExclusionDuration`. |
| SessionExclusionCriteria *SessionSegmentCriteria `protobuf:"bytes,2,opt,name=session_exclusion_criteria,json=sessionExclusionCriteria,proto3" json:"session_exclusion_criteria,omitempty"` |
| } |
| |
| func (x *SessionSegmentExclusion) Reset() { |
| *x = SessionSegmentExclusion{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[32] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SessionSegmentExclusion) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SessionSegmentExclusion) ProtoMessage() {} |
| |
| func (x *SessionSegmentExclusion) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[32] |
| 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 SessionSegmentExclusion.ProtoReflect.Descriptor instead. |
| func (*SessionSegmentExclusion) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{32} |
| } |
| |
| func (x *SessionSegmentExclusion) GetSessionExclusionDuration() SessionExclusionDuration { |
| if x != nil { |
| return x.SessionExclusionDuration |
| } |
| return SessionExclusionDuration_SESSION_EXCLUSION_DURATION_UNSPECIFIED |
| } |
| |
| func (x *SessionSegmentExclusion) GetSessionExclusionCriteria() *SessionSegmentCriteria { |
| if x != nil { |
| return x.SessionExclusionCriteria |
| } |
| return nil |
| } |
| |
| // Event segments are subsets of events that were triggered on your site or app. |
| // for example, all purchase events made in a particular location; app_exception |
| // events that occurred on a specific operating system. |
| type EventSegment struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Defines which events are included in this segment. Optional. |
| EventInclusionCriteria *EventSegmentCriteria `protobuf:"bytes,1,opt,name=event_inclusion_criteria,json=eventInclusionCriteria,proto3" json:"event_inclusion_criteria,omitempty"` |
| // Defines which events are excluded in this segment. Optional. |
| Exclusion *EventSegmentExclusion `protobuf:"bytes,2,opt,name=exclusion,proto3" json:"exclusion,omitempty"` |
| } |
| |
| func (x *EventSegment) Reset() { |
| *x = EventSegment{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[33] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EventSegment) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EventSegment) ProtoMessage() {} |
| |
| func (x *EventSegment) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[33] |
| 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 EventSegment.ProtoReflect.Descriptor instead. |
| func (*EventSegment) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{33} |
| } |
| |
| func (x *EventSegment) GetEventInclusionCriteria() *EventSegmentCriteria { |
| if x != nil { |
| return x.EventInclusionCriteria |
| } |
| return nil |
| } |
| |
| func (x *EventSegment) GetExclusion() *EventSegmentExclusion { |
| if x != nil { |
| return x.Exclusion |
| } |
| return nil |
| } |
| |
| // An event matches a criteria if the event meet the conditions in the |
| // criteria. |
| type EventSegmentCriteria struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // An event matches this criteria if the event matches each of these |
| // `andConditionGroups`. |
| AndConditionGroups []*EventSegmentConditionGroup `protobuf:"bytes,1,rep,name=and_condition_groups,json=andConditionGroups,proto3" json:"and_condition_groups,omitempty"` |
| } |
| |
| func (x *EventSegmentCriteria) Reset() { |
| *x = EventSegmentCriteria{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[34] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EventSegmentCriteria) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EventSegmentCriteria) ProtoMessage() {} |
| |
| func (x *EventSegmentCriteria) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[34] |
| 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 EventSegmentCriteria.ProtoReflect.Descriptor instead. |
| func (*EventSegmentCriteria) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{34} |
| } |
| |
| func (x *EventSegmentCriteria) GetAndConditionGroups() []*EventSegmentConditionGroup { |
| if x != nil { |
| return x.AndConditionGroups |
| } |
| return nil |
| } |
| |
| // Conditions tell Analytics what data to include in or exclude from the |
| // segment. |
| type EventSegmentConditionGroup struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // `conditionScoping` should always be `EVENT_CRITERIA_WITHIN_SAME_EVENT`. |
| // |
| // Optional. If unspecified, a `conditionScoping` of |
| // `EVENT_CRITERIA_WITHIN_SAME_EVENT` is used. |
| ConditionScoping EventCriteriaScoping `protobuf:"varint,1,opt,name=condition_scoping,json=conditionScoping,proto3,enum=google.analytics.data.v1alpha.EventCriteriaScoping" json:"condition_scoping,omitempty"` |
| // Data is included or excluded from the segment based on if it matches |
| // this expression. Expressions express criteria on dimension, metrics, |
| // and/or parameters. |
| SegmentFilterExpression *SegmentFilterExpression `protobuf:"bytes,2,opt,name=segment_filter_expression,json=segmentFilterExpression,proto3" json:"segment_filter_expression,omitempty"` |
| } |
| |
| func (x *EventSegmentConditionGroup) Reset() { |
| *x = EventSegmentConditionGroup{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[35] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EventSegmentConditionGroup) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EventSegmentConditionGroup) ProtoMessage() {} |
| |
| func (x *EventSegmentConditionGroup) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[35] |
| 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 EventSegmentConditionGroup.ProtoReflect.Descriptor instead. |
| func (*EventSegmentConditionGroup) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{35} |
| } |
| |
| func (x *EventSegmentConditionGroup) GetConditionScoping() EventCriteriaScoping { |
| if x != nil { |
| return x.ConditionScoping |
| } |
| return EventCriteriaScoping_EVENT_CRITERIA_SCOPING_UNSPECIFIED |
| } |
| |
| func (x *EventSegmentConditionGroup) GetSegmentFilterExpression() *SegmentFilterExpression { |
| if x != nil { |
| return x.SegmentFilterExpression |
| } |
| return nil |
| } |
| |
| // Specifies which events are excluded in this segment. |
| type EventSegmentExclusion struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // `eventExclusionDuration` should always be `PERMANENTLY_EXCLUDE`. |
| // |
| // Optional. If unspecified, an `eventExclusionDuration` of |
| // `EVENT_EXCLUSION_PERMANENT` is used. |
| EventExclusionDuration EventExclusionDuration `protobuf:"varint,1,opt,name=event_exclusion_duration,json=eventExclusionDuration,proto3,enum=google.analytics.data.v1alpha.EventExclusionDuration" json:"event_exclusion_duration,omitempty"` |
| // If an event meets this condition, the event is excluded from membership |
| // in the segment for the `eventExclusionDuration`. |
| EventExclusionCriteria *EventSegmentCriteria `protobuf:"bytes,2,opt,name=event_exclusion_criteria,json=eventExclusionCriteria,proto3" json:"event_exclusion_criteria,omitempty"` |
| } |
| |
| func (x *EventSegmentExclusion) Reset() { |
| *x = EventSegmentExclusion{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[36] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EventSegmentExclusion) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EventSegmentExclusion) ProtoMessage() {} |
| |
| func (x *EventSegmentExclusion) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[36] |
| 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 EventSegmentExclusion.ProtoReflect.Descriptor instead. |
| func (*EventSegmentExclusion) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{36} |
| } |
| |
| func (x *EventSegmentExclusion) GetEventExclusionDuration() EventExclusionDuration { |
| if x != nil { |
| return x.EventExclusionDuration |
| } |
| return EventExclusionDuration_EVENT_EXCLUSION_DURATION_UNSPECIFIED |
| } |
| |
| func (x *EventSegmentExclusion) GetEventExclusionCriteria() *EventSegmentCriteria { |
| if x != nil { |
| return x.EventExclusionCriteria |
| } |
| return nil |
| } |
| |
| // A segment is a subset of your Analytics data. For example, of your entire set |
| // of users, one segment might be users from a particular country or city. |
| // Another segment might be users who purchase a particular line of products or |
| // who visit a specific part of your site or trigger certain events in your app. |
| // |
| // To learn more, see [GA4 Segment |
| // Builder](https://support.google.com/analytics/answer/9304353). |
| type Segment struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The name for this segment. If unspecified, segments are named "Segment". |
| // This name defines string value returned by the `segment` dimension. The |
| // `segment` dimension prefixes segment names by the 1-based index number of |
| // the segment in the request (i.e. "1. Segment", "2. Segment", etc.). |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // A segment is specified in one scope. |
| // |
| // Types that are assignable to OneSegmentScope: |
| // *Segment_UserSegment |
| // *Segment_SessionSegment |
| // *Segment_EventSegment |
| OneSegmentScope isSegment_OneSegmentScope `protobuf_oneof:"one_segment_scope"` |
| } |
| |
| func (x *Segment) Reset() { |
| *x = Segment{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[37] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Segment) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Segment) ProtoMessage() {} |
| |
| func (x *Segment) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[37] |
| 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 Segment.ProtoReflect.Descriptor instead. |
| func (*Segment) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{37} |
| } |
| |
| func (x *Segment) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (m *Segment) GetOneSegmentScope() isSegment_OneSegmentScope { |
| if m != nil { |
| return m.OneSegmentScope |
| } |
| return nil |
| } |
| |
| func (x *Segment) GetUserSegment() *UserSegment { |
| if x, ok := x.GetOneSegmentScope().(*Segment_UserSegment); ok { |
| return x.UserSegment |
| } |
| return nil |
| } |
| |
| func (x *Segment) GetSessionSegment() *SessionSegment { |
| if x, ok := x.GetOneSegmentScope().(*Segment_SessionSegment); ok { |
| return x.SessionSegment |
| } |
| return nil |
| } |
| |
| func (x *Segment) GetEventSegment() *EventSegment { |
| if x, ok := x.GetOneSegmentScope().(*Segment_EventSegment); ok { |
| return x.EventSegment |
| } |
| return nil |
| } |
| |
| type isSegment_OneSegmentScope interface { |
| isSegment_OneSegmentScope() |
| } |
| |
| type Segment_UserSegment struct { |
| // User segments are subsets of users who engaged with your site or app. |
| UserSegment *UserSegment `protobuf:"bytes,2,opt,name=user_segment,json=userSegment,proto3,oneof"` |
| } |
| |
| type Segment_SessionSegment struct { |
| // Session segments are subsets of the sessions that occurred on your site |
| // or app. |
| SessionSegment *SessionSegment `protobuf:"bytes,3,opt,name=session_segment,json=sessionSegment,proto3,oneof"` |
| } |
| |
| type Segment_EventSegment struct { |
| // Event segments are subsets of events that were triggered on your site or |
| // app. |
| EventSegment *EventSegment `protobuf:"bytes,4,opt,name=event_segment,json=eventSegment,proto3,oneof"` |
| } |
| |
| func (*Segment_UserSegment) isSegment_OneSegmentScope() {} |
| |
| func (*Segment_SessionSegment) isSegment_OneSegmentScope() {} |
| |
| func (*Segment_EventSegment) isSegment_OneSegmentScope() {} |
| |
| // Expresses combinations of segment filters. |
| type SegmentFilterExpression struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Specify one type of filter for `SegmentFilterExpression`. |
| // |
| // Types that are assignable to Expr: |
| // *SegmentFilterExpression_AndGroup |
| // *SegmentFilterExpression_OrGroup |
| // *SegmentFilterExpression_NotExpression |
| // *SegmentFilterExpression_SegmentFilter |
| // *SegmentFilterExpression_SegmentEventFilter |
| Expr isSegmentFilterExpression_Expr `protobuf_oneof:"expr"` |
| } |
| |
| func (x *SegmentFilterExpression) Reset() { |
| *x = SegmentFilterExpression{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[38] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SegmentFilterExpression) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SegmentFilterExpression) ProtoMessage() {} |
| |
| func (x *SegmentFilterExpression) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[38] |
| 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 SegmentFilterExpression.ProtoReflect.Descriptor instead. |
| func (*SegmentFilterExpression) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{38} |
| } |
| |
| func (m *SegmentFilterExpression) GetExpr() isSegmentFilterExpression_Expr { |
| if m != nil { |
| return m.Expr |
| } |
| return nil |
| } |
| |
| func (x *SegmentFilterExpression) GetAndGroup() *SegmentFilterExpressionList { |
| if x, ok := x.GetExpr().(*SegmentFilterExpression_AndGroup); ok { |
| return x.AndGroup |
| } |
| return nil |
| } |
| |
| func (x *SegmentFilterExpression) GetOrGroup() *SegmentFilterExpressionList { |
| if x, ok := x.GetExpr().(*SegmentFilterExpression_OrGroup); ok { |
| return x.OrGroup |
| } |
| return nil |
| } |
| |
| func (x *SegmentFilterExpression) GetNotExpression() *SegmentFilterExpression { |
| if x, ok := x.GetExpr().(*SegmentFilterExpression_NotExpression); ok { |
| return x.NotExpression |
| } |
| return nil |
| } |
| |
| func (x *SegmentFilterExpression) GetSegmentFilter() *SegmentFilter { |
| if x, ok := x.GetExpr().(*SegmentFilterExpression_SegmentFilter); ok { |
| return x.SegmentFilter |
| } |
| return nil |
| } |
| |
| func (x *SegmentFilterExpression) GetSegmentEventFilter() *SegmentEventFilter { |
| if x, ok := x.GetExpr().(*SegmentFilterExpression_SegmentEventFilter); ok { |
| return x.SegmentEventFilter |
| } |
| return nil |
| } |
| |
| type isSegmentFilterExpression_Expr interface { |
| isSegmentFilterExpression_Expr() |
| } |
| |
| type SegmentFilterExpression_AndGroup struct { |
| // The SegmentFilterExpression in `andGroup` have an AND relationship. |
| AndGroup *SegmentFilterExpressionList `protobuf:"bytes,1,opt,name=and_group,json=andGroup,proto3,oneof"` |
| } |
| |
| type SegmentFilterExpression_OrGroup struct { |
| // The SegmentFilterExpression in `orGroup` have an OR relationship. |
| OrGroup *SegmentFilterExpressionList `protobuf:"bytes,2,opt,name=or_group,json=orGroup,proto3,oneof"` |
| } |
| |
| type SegmentFilterExpression_NotExpression struct { |
| // The SegmentFilterExpression is NOT of `notExpression`. |
| NotExpression *SegmentFilterExpression `protobuf:"bytes,3,opt,name=not_expression,json=notExpression,proto3,oneof"` |
| } |
| |
| type SegmentFilterExpression_SegmentFilter struct { |
| // A primitive segment filter. |
| SegmentFilter *SegmentFilter `protobuf:"bytes,4,opt,name=segment_filter,json=segmentFilter,proto3,oneof"` |
| } |
| |
| type SegmentFilterExpression_SegmentEventFilter struct { |
| // Creates a filter that matches events of a single event name. If a |
| // parameter filter expression is specified, only the subset of events that |
| // match both the single event name and the parameter filter expressions |
| // match this event filter. |
| SegmentEventFilter *SegmentEventFilter `protobuf:"bytes,5,opt,name=segment_event_filter,json=segmentEventFilter,proto3,oneof"` |
| } |
| |
| func (*SegmentFilterExpression_AndGroup) isSegmentFilterExpression_Expr() {} |
| |
| func (*SegmentFilterExpression_OrGroup) isSegmentFilterExpression_Expr() {} |
| |
| func (*SegmentFilterExpression_NotExpression) isSegmentFilterExpression_Expr() {} |
| |
| func (*SegmentFilterExpression_SegmentFilter) isSegmentFilterExpression_Expr() {} |
| |
| func (*SegmentFilterExpression_SegmentEventFilter) isSegmentFilterExpression_Expr() {} |
| |
| // A list of segment filter expressions. |
| type SegmentFilterExpressionList struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The list of segment filter expressions |
| Expressions []*SegmentFilterExpression `protobuf:"bytes,1,rep,name=expressions,proto3" json:"expressions,omitempty"` |
| } |
| |
| func (x *SegmentFilterExpressionList) Reset() { |
| *x = SegmentFilterExpressionList{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[39] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SegmentFilterExpressionList) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SegmentFilterExpressionList) ProtoMessage() {} |
| |
| func (x *SegmentFilterExpressionList) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[39] |
| 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 SegmentFilterExpressionList.ProtoReflect.Descriptor instead. |
| func (*SegmentFilterExpressionList) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{39} |
| } |
| |
| func (x *SegmentFilterExpressionList) GetExpressions() []*SegmentFilterExpression { |
| if x != nil { |
| return x.Expressions |
| } |
| return nil |
| } |
| |
| // An expression to filter dimension or metric values. |
| type SegmentFilter struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The dimension name or metric name. |
| FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` |
| // Specify one type of filter for `Filter`. |
| // |
| // Types that are assignable to OneFilter: |
| // *SegmentFilter_StringFilter |
| // *SegmentFilter_InListFilter |
| // *SegmentFilter_NumericFilter |
| // *SegmentFilter_BetweenFilter |
| OneFilter isSegmentFilter_OneFilter `protobuf_oneof:"one_filter"` |
| // Specifies the scope for the filter. |
| FilterScoping *SegmentFilterScoping `protobuf:"bytes,8,opt,name=filter_scoping,json=filterScoping,proto3" json:"filter_scoping,omitempty"` |
| } |
| |
| func (x *SegmentFilter) Reset() { |
| *x = SegmentFilter{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[40] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SegmentFilter) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SegmentFilter) ProtoMessage() {} |
| |
| func (x *SegmentFilter) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[40] |
| 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 SegmentFilter.ProtoReflect.Descriptor instead. |
| func (*SegmentFilter) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{40} |
| } |
| |
| func (x *SegmentFilter) GetFieldName() string { |
| if x != nil { |
| return x.FieldName |
| } |
| return "" |
| } |
| |
| func (m *SegmentFilter) GetOneFilter() isSegmentFilter_OneFilter { |
| if m != nil { |
| return m.OneFilter |
| } |
| return nil |
| } |
| |
| func (x *SegmentFilter) GetStringFilter() *StringFilter { |
| if x, ok := x.GetOneFilter().(*SegmentFilter_StringFilter); ok { |
| return x.StringFilter |
| } |
| return nil |
| } |
| |
| func (x *SegmentFilter) GetInListFilter() *InListFilter { |
| if x, ok := x.GetOneFilter().(*SegmentFilter_InListFilter); ok { |
| return x.InListFilter |
| } |
| return nil |
| } |
| |
| func (x *SegmentFilter) GetNumericFilter() *NumericFilter { |
| if x, ok := x.GetOneFilter().(*SegmentFilter_NumericFilter); ok { |
| return x.NumericFilter |
| } |
| return nil |
| } |
| |
| func (x *SegmentFilter) GetBetweenFilter() *BetweenFilter { |
| if x, ok := x.GetOneFilter().(*SegmentFilter_BetweenFilter); ok { |
| return x.BetweenFilter |
| } |
| return nil |
| } |
| |
| func (x *SegmentFilter) GetFilterScoping() *SegmentFilterScoping { |
| if x != nil { |
| return x.FilterScoping |
| } |
| return nil |
| } |
| |
| type isSegmentFilter_OneFilter interface { |
| isSegmentFilter_OneFilter() |
| } |
| |
| type SegmentFilter_StringFilter struct { |
| // Strings related filter. |
| StringFilter *StringFilter `protobuf:"bytes,4,opt,name=string_filter,json=stringFilter,proto3,oneof"` |
| } |
| |
| type SegmentFilter_InListFilter struct { |
| // A filter for in list values. |
| InListFilter *InListFilter `protobuf:"bytes,5,opt,name=in_list_filter,json=inListFilter,proto3,oneof"` |
| } |
| |
| type SegmentFilter_NumericFilter struct { |
| // A filter for numeric or date values. |
| NumericFilter *NumericFilter `protobuf:"bytes,6,opt,name=numeric_filter,json=numericFilter,proto3,oneof"` |
| } |
| |
| type SegmentFilter_BetweenFilter struct { |
| // A filter for between two values. |
| BetweenFilter *BetweenFilter `protobuf:"bytes,7,opt,name=between_filter,json=betweenFilter,proto3,oneof"` |
| } |
| |
| func (*SegmentFilter_StringFilter) isSegmentFilter_OneFilter() {} |
| |
| func (*SegmentFilter_InListFilter) isSegmentFilter_OneFilter() {} |
| |
| func (*SegmentFilter_NumericFilter) isSegmentFilter_OneFilter() {} |
| |
| func (*SegmentFilter_BetweenFilter) isSegmentFilter_OneFilter() {} |
| |
| // Scopings specify how the dimensions & metrics of multiple events |
| // should be considered when evaluating a segment filter. |
| type SegmentFilterScoping struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // If `atAnyPointInTime` is true, this filter evaluates to true for all |
| // events if it evaluates to true for any event in the date range of the |
| // request. |
| // |
| // This `atAnyPointInTime` parameter does not extend the date range of |
| // events in the report. If `atAnyPointInTime` is true, only events within |
| // the report's date range are considered when evaluating this filter. |
| // |
| // This `atAnyPointInTime` is only able to be specified if the criteria |
| // scoping is `ACROSS_ALL_SESSIONS` and is not able to be specified in |
| // sequences. |
| // |
| // If the criteria scoping is `ACROSS_ALL_SESSIONS`, `atAnyPointInTime` = |
| // false is used if unspecified. |
| AtAnyPointInTime *bool `protobuf:"varint,1,opt,name=at_any_point_in_time,json=atAnyPointInTime,proto3,oneof" json:"at_any_point_in_time,omitempty"` |
| } |
| |
| func (x *SegmentFilterScoping) Reset() { |
| *x = SegmentFilterScoping{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[41] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SegmentFilterScoping) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SegmentFilterScoping) ProtoMessage() {} |
| |
| func (x *SegmentFilterScoping) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[41] |
| 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 SegmentFilterScoping.ProtoReflect.Descriptor instead. |
| func (*SegmentFilterScoping) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{41} |
| } |
| |
| func (x *SegmentFilterScoping) GetAtAnyPointInTime() bool { |
| if x != nil && x.AtAnyPointInTime != nil { |
| return *x.AtAnyPointInTime |
| } |
| return false |
| } |
| |
| // Creates a filter that matches events of a single event name. If a parameter |
| // filter expression is specified, only the subset of events that match both the |
| // single event name and the parameter filter expressions match this event |
| // filter. |
| type SegmentEventFilter struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // This filter matches events of this single event name. Event name is |
| // required. |
| EventName *string `protobuf:"bytes,1,opt,name=event_name,json=eventName,proto3,oneof" json:"event_name,omitempty"` |
| // If specified, this filter matches events that match both the single event |
| // name and the parameter filter expressions. |
| // |
| // Inside the parameter filter expression, only parameter filters are |
| // available. |
| SegmentParameterFilterExpression *SegmentParameterFilterExpression `protobuf:"bytes,2,opt,name=segment_parameter_filter_expression,json=segmentParameterFilterExpression,proto3,oneof" json:"segment_parameter_filter_expression,omitempty"` |
| } |
| |
| func (x *SegmentEventFilter) Reset() { |
| *x = SegmentEventFilter{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[42] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SegmentEventFilter) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SegmentEventFilter) ProtoMessage() {} |
| |
| func (x *SegmentEventFilter) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[42] |
| 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 SegmentEventFilter.ProtoReflect.Descriptor instead. |
| func (*SegmentEventFilter) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{42} |
| } |
| |
| func (x *SegmentEventFilter) GetEventName() string { |
| if x != nil && x.EventName != nil { |
| return *x.EventName |
| } |
| return "" |
| } |
| |
| func (x *SegmentEventFilter) GetSegmentParameterFilterExpression() *SegmentParameterFilterExpression { |
| if x != nil { |
| return x.SegmentParameterFilterExpression |
| } |
| return nil |
| } |
| |
| // Expresses combinations of segment filter on parameters. |
| type SegmentParameterFilterExpression struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Specify one type of filter for `SegmentParameterFilterExpression`. |
| // |
| // Types that are assignable to Expr: |
| // *SegmentParameterFilterExpression_AndGroup |
| // *SegmentParameterFilterExpression_OrGroup |
| // *SegmentParameterFilterExpression_NotExpression |
| // *SegmentParameterFilterExpression_SegmentParameterFilter |
| Expr isSegmentParameterFilterExpression_Expr `protobuf_oneof:"expr"` |
| } |
| |
| func (x *SegmentParameterFilterExpression) Reset() { |
| *x = SegmentParameterFilterExpression{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[43] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SegmentParameterFilterExpression) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SegmentParameterFilterExpression) ProtoMessage() {} |
| |
| func (x *SegmentParameterFilterExpression) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[43] |
| 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 SegmentParameterFilterExpression.ProtoReflect.Descriptor instead. |
| func (*SegmentParameterFilterExpression) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{43} |
| } |
| |
| func (m *SegmentParameterFilterExpression) GetExpr() isSegmentParameterFilterExpression_Expr { |
| if m != nil { |
| return m.Expr |
| } |
| return nil |
| } |
| |
| func (x *SegmentParameterFilterExpression) GetAndGroup() *SegmentParameterFilterExpressionList { |
| if x, ok := x.GetExpr().(*SegmentParameterFilterExpression_AndGroup); ok { |
| return x.AndGroup |
| } |
| return nil |
| } |
| |
| func (x *SegmentParameterFilterExpression) GetOrGroup() *SegmentParameterFilterExpressionList { |
| if x, ok := x.GetExpr().(*SegmentParameterFilterExpression_OrGroup); ok { |
| return x.OrGroup |
| } |
| return nil |
| } |
| |
| func (x *SegmentParameterFilterExpression) GetNotExpression() *SegmentParameterFilterExpression { |
| if x, ok := x.GetExpr().(*SegmentParameterFilterExpression_NotExpression); ok { |
| return x.NotExpression |
| } |
| return nil |
| } |
| |
| func (x *SegmentParameterFilterExpression) GetSegmentParameterFilter() *SegmentParameterFilter { |
| if x, ok := x.GetExpr().(*SegmentParameterFilterExpression_SegmentParameterFilter); ok { |
| return x.SegmentParameterFilter |
| } |
| return nil |
| } |
| |
| type isSegmentParameterFilterExpression_Expr interface { |
| isSegmentParameterFilterExpression_Expr() |
| } |
| |
| type SegmentParameterFilterExpression_AndGroup struct { |
| // The SegmentParameterFilterExpression in `andGroup` have an AND |
| // relationship. |
| AndGroup *SegmentParameterFilterExpressionList `protobuf:"bytes,1,opt,name=and_group,json=andGroup,proto3,oneof"` |
| } |
| |
| type SegmentParameterFilterExpression_OrGroup struct { |
| // The SegmentParameterFilterExpression in `orGroup` have an OR |
| // relationship. |
| OrGroup *SegmentParameterFilterExpressionList `protobuf:"bytes,2,opt,name=or_group,json=orGroup,proto3,oneof"` |
| } |
| |
| type SegmentParameterFilterExpression_NotExpression struct { |
| // The SegmentParameterFilterExpression is NOT of `notExpression`. |
| NotExpression *SegmentParameterFilterExpression `protobuf:"bytes,3,opt,name=not_expression,json=notExpression,proto3,oneof"` |
| } |
| |
| type SegmentParameterFilterExpression_SegmentParameterFilter struct { |
| // A primitive segment parameter filter. |
| SegmentParameterFilter *SegmentParameterFilter `protobuf:"bytes,4,opt,name=segment_parameter_filter,json=segmentParameterFilter,proto3,oneof"` |
| } |
| |
| func (*SegmentParameterFilterExpression_AndGroup) isSegmentParameterFilterExpression_Expr() {} |
| |
| func (*SegmentParameterFilterExpression_OrGroup) isSegmentParameterFilterExpression_Expr() {} |
| |
| func (*SegmentParameterFilterExpression_NotExpression) isSegmentParameterFilterExpression_Expr() {} |
| |
| func (*SegmentParameterFilterExpression_SegmentParameterFilter) isSegmentParameterFilterExpression_Expr() { |
| } |
| |
| // A list of segment parameter filter expressions. |
| type SegmentParameterFilterExpressionList struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The list of segment parameter filter expressions. |
| Expressions []*SegmentParameterFilterExpression `protobuf:"bytes,1,rep,name=expressions,proto3" json:"expressions,omitempty"` |
| } |
| |
| func (x *SegmentParameterFilterExpressionList) Reset() { |
| *x = SegmentParameterFilterExpressionList{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[44] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SegmentParameterFilterExpressionList) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SegmentParameterFilterExpressionList) ProtoMessage() {} |
| |
| func (x *SegmentParameterFilterExpressionList) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[44] |
| 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 SegmentParameterFilterExpressionList.ProtoReflect.Descriptor instead. |
| func (*SegmentParameterFilterExpressionList) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{44} |
| } |
| |
| func (x *SegmentParameterFilterExpressionList) GetExpressions() []*SegmentParameterFilterExpression { |
| if x != nil { |
| return x.Expressions |
| } |
| return nil |
| } |
| |
| // An expression to filter parameter values in a segment. |
| type SegmentParameterFilter struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The field that is being filtered. |
| // |
| // Types that are assignable to OneParameter: |
| // *SegmentParameterFilter_EventParameterName |
| // *SegmentParameterFilter_ItemParameterName |
| OneParameter isSegmentParameterFilter_OneParameter `protobuf_oneof:"one_parameter"` |
| // Specify one type of filter. |
| // |
| // Types that are assignable to OneFilter: |
| // *SegmentParameterFilter_StringFilter |
| // *SegmentParameterFilter_InListFilter |
| // *SegmentParameterFilter_NumericFilter |
| // *SegmentParameterFilter_BetweenFilter |
| OneFilter isSegmentParameterFilter_OneFilter `protobuf_oneof:"one_filter"` |
| // Specifies the scope for the filter. |
| FilterScoping *SegmentParameterFilterScoping `protobuf:"bytes,8,opt,name=filter_scoping,json=filterScoping,proto3" json:"filter_scoping,omitempty"` |
| } |
| |
| func (x *SegmentParameterFilter) Reset() { |
| *x = SegmentParameterFilter{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[45] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SegmentParameterFilter) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SegmentParameterFilter) ProtoMessage() {} |
| |
| func (x *SegmentParameterFilter) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[45] |
| 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 SegmentParameterFilter.ProtoReflect.Descriptor instead. |
| func (*SegmentParameterFilter) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{45} |
| } |
| |
| func (m *SegmentParameterFilter) GetOneParameter() isSegmentParameterFilter_OneParameter { |
| if m != nil { |
| return m.OneParameter |
| } |
| return nil |
| } |
| |
| func (x *SegmentParameterFilter) GetEventParameterName() string { |
| if x, ok := x.GetOneParameter().(*SegmentParameterFilter_EventParameterName); ok { |
| return x.EventParameterName |
| } |
| return "" |
| } |
| |
| func (x *SegmentParameterFilter) GetItemParameterName() string { |
| if x, ok := x.GetOneParameter().(*SegmentParameterFilter_ItemParameterName); ok { |
| return x.ItemParameterName |
| } |
| return "" |
| } |
| |
| func (m *SegmentParameterFilter) GetOneFilter() isSegmentParameterFilter_OneFilter { |
| if m != nil { |
| return m.OneFilter |
| } |
| return nil |
| } |
| |
| func (x *SegmentParameterFilter) GetStringFilter() *StringFilter { |
| if x, ok := x.GetOneFilter().(*SegmentParameterFilter_StringFilter); ok { |
| return x.StringFilter |
| } |
| return nil |
| } |
| |
| func (x *SegmentParameterFilter) GetInListFilter() *InListFilter { |
| if x, ok := x.GetOneFilter().(*SegmentParameterFilter_InListFilter); ok { |
| return x.InListFilter |
| } |
| return nil |
| } |
| |
| func (x *SegmentParameterFilter) GetNumericFilter() *NumericFilter { |
| if x, ok := x.GetOneFilter().(*SegmentParameterFilter_NumericFilter); ok { |
| return x.NumericFilter |
| } |
| return nil |
| } |
| |
| func (x *SegmentParameterFilter) GetBetweenFilter() *BetweenFilter { |
| if x, ok := x.GetOneFilter().(*SegmentParameterFilter_BetweenFilter); ok { |
| return x.BetweenFilter |
| } |
| return nil |
| } |
| |
| func (x *SegmentParameterFilter) GetFilterScoping() *SegmentParameterFilterScoping { |
| if x != nil { |
| return x.FilterScoping |
| } |
| return nil |
| } |
| |
| type isSegmentParameterFilter_OneParameter interface { |
| isSegmentParameterFilter_OneParameter() |
| } |
| |
| type SegmentParameterFilter_EventParameterName struct { |
| // This filter will be evaluated on the specified event parameter. Event |
| // parameters are logged as parameters of the event. Event parameters |
| // include fields like "firebase_screen" & "currency". |
| // |
| // Event parameters can only be used in segments & funnels and can only be |
| // used in a descendent filter from an EventFilter. In a descendent filter |
| // from an EventFilter either event or item parameters should be used. |
| EventParameterName string `protobuf:"bytes,1,opt,name=event_parameter_name,json=eventParameterName,proto3,oneof"` |
| } |
| |
| type SegmentParameterFilter_ItemParameterName struct { |
| // This filter will be evaluated on the specified item parameter. Item |
| // parameters are logged as parameters in the item array. Item parameters |
| // include fields like "item_name" & "item_category". |
| // |
| // Item parameters can only be used in segments & funnels and can only be |
| // used in a descendent filter from an EventFilter. In a descendent filter |
| // from an EventFilter either event or item parameters should be used. |
| // |
| // Item parameters are only available in ecommerce events. To learn more |
| // about ecommerce events, see the [Measure ecommerce] |
| // (https://developers.google.com/analytics/devguides/collection/ga4/ecommerce) |
| // guide. |
| ItemParameterName string `protobuf:"bytes,2,opt,name=item_parameter_name,json=itemParameterName,proto3,oneof"` |
| } |
| |
| func (*SegmentParameterFilter_EventParameterName) isSegmentParameterFilter_OneParameter() {} |
| |
| func (*SegmentParameterFilter_ItemParameterName) isSegmentParameterFilter_OneParameter() {} |
| |
| type isSegmentParameterFilter_OneFilter interface { |
| isSegmentParameterFilter_OneFilter() |
| } |
| |
| type SegmentParameterFilter_StringFilter struct { |
| // Strings related filter. |
| StringFilter *StringFilter `protobuf:"bytes,4,opt,name=string_filter,json=stringFilter,proto3,oneof"` |
| } |
| |
| type SegmentParameterFilter_InListFilter struct { |
| // A filter for in list values. |
| InListFilter *InListFilter `protobuf:"bytes,5,opt,name=in_list_filter,json=inListFilter,proto3,oneof"` |
| } |
| |
| type SegmentParameterFilter_NumericFilter struct { |
| // A filter for numeric or date values. |
| NumericFilter *NumericFilter `protobuf:"bytes,6,opt,name=numeric_filter,json=numericFilter,proto3,oneof"` |
| } |
| |
| type SegmentParameterFilter_BetweenFilter struct { |
| // A filter for between two values. |
| BetweenFilter *BetweenFilter `protobuf:"bytes,7,opt,name=between_filter,json=betweenFilter,proto3,oneof"` |
| } |
| |
| func (*SegmentParameterFilter_StringFilter) isSegmentParameterFilter_OneFilter() {} |
| |
| func (*SegmentParameterFilter_InListFilter) isSegmentParameterFilter_OneFilter() {} |
| |
| func (*SegmentParameterFilter_NumericFilter) isSegmentParameterFilter_OneFilter() {} |
| |
| func (*SegmentParameterFilter_BetweenFilter) isSegmentParameterFilter_OneFilter() {} |
| |
| // Scopings specify how multiple events should be considered when evaluating a |
| // segment parameter filter. |
| type SegmentParameterFilterScoping struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Accumulates the parameter over the specified period of days before |
| // applying the filter. Only supported if criteria scoping is |
| // `ACROSS_ALL_SESSIONS` or `WITHIN_SAME_SESSION`. Only supported if the |
| // parameter is `event_count`. |
| // |
| // For example if `inAnyNDayPeriod` is 3, the event_name is "purchase", |
| // the event parameter is "event_count", and the Filter's criteria is |
| // greater than 5, this filter will accumulate the event count of purchase |
| // events over every 3 consecutive day period in the report's date range; a |
| // user will pass this Filter's criteria to be included in this segment if |
| // their count of purchase events exceeds 5 in any 3 consecutive day period. |
| // For example, the periods 2021-11-01 to 2021-11-03, 2021-11-02 to |
| // 2021-11-04, 2021-11-03 to 2021-11-05, and etc. will be considered. |
| // |
| // The date range is not extended for the purpose of having a full N day |
| // window near the start of the date range. For example if a report is for |
| // 2021-11-01 to 2021-11-10 and `inAnyNDayPeriod` = 3, the first two day |
| // period will be effectively shortened because no event data outside the |
| // report's date range will be read. For example, the first four periods |
| // will effectively be: 2021-11-01 to 2021-11-01, 2021-11-01 to 2021-11-02, |
| // 2021-11-01 to 2021-11-03, and 2021-11-02 to 2021-11-04. |
| // |
| // `inAnyNDayPeriod` is optional. If not specified, the |
| // `segmentParameterFilter` is applied to each event individually. |
| InAnyNDayPeriod *int64 `protobuf:"varint,1,opt,name=in_any_n_day_period,json=inAnyNDayPeriod,proto3,oneof" json:"in_any_n_day_period,omitempty"` |
| } |
| |
| func (x *SegmentParameterFilterScoping) Reset() { |
| *x = SegmentParameterFilterScoping{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[46] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SegmentParameterFilterScoping) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SegmentParameterFilterScoping) ProtoMessage() {} |
| |
| func (x *SegmentParameterFilterScoping) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[46] |
| 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 SegmentParameterFilterScoping.ProtoReflect.Descriptor instead. |
| func (*SegmentParameterFilterScoping) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{46} |
| } |
| |
| func (x *SegmentParameterFilterScoping) GetInAnyNDayPeriod() int64 { |
| if x != nil && x.InAnyNDayPeriod != nil { |
| return *x.InAnyNDayPeriod |
| } |
| return 0 |
| } |
| |
| // Expresses combinations of funnel filters. |
| type FunnelFilterExpression struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Specify one type of filter for `FunnelFilterExpression`. |
| // |
| // Types that are assignable to Expr: |
| // *FunnelFilterExpression_AndGroup |
| // *FunnelFilterExpression_OrGroup |
| // *FunnelFilterExpression_NotExpression |
| // *FunnelFilterExpression_FunnelFieldFilter |
| // *FunnelFilterExpression_FunnelEventFilter |
| Expr isFunnelFilterExpression_Expr `protobuf_oneof:"expr"` |
| } |
| |
| func (x *FunnelFilterExpression) Reset() { |
| *x = FunnelFilterExpression{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[47] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FunnelFilterExpression) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FunnelFilterExpression) ProtoMessage() {} |
| |
| func (x *FunnelFilterExpression) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[47] |
| 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 FunnelFilterExpression.ProtoReflect.Descriptor instead. |
| func (*FunnelFilterExpression) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{47} |
| } |
| |
| func (m *FunnelFilterExpression) GetExpr() isFunnelFilterExpression_Expr { |
| if m != nil { |
| return m.Expr |
| } |
| return nil |
| } |
| |
| func (x *FunnelFilterExpression) GetAndGroup() *FunnelFilterExpressionList { |
| if x, ok := x.GetExpr().(*FunnelFilterExpression_AndGroup); ok { |
| return x.AndGroup |
| } |
| return nil |
| } |
| |
| func (x *FunnelFilterExpression) GetOrGroup() *FunnelFilterExpressionList { |
| if x, ok := x.GetExpr().(*FunnelFilterExpression_OrGroup); ok { |
| return x.OrGroup |
| } |
| return nil |
| } |
| |
| func (x *FunnelFilterExpression) GetNotExpression() *FunnelFilterExpression { |
| if x, ok := x.GetExpr().(*FunnelFilterExpression_NotExpression); ok { |
| return x.NotExpression |
| } |
| return nil |
| } |
| |
| func (x *FunnelFilterExpression) GetFunnelFieldFilter() *FunnelFieldFilter { |
| if x, ok := x.GetExpr().(*FunnelFilterExpression_FunnelFieldFilter); ok { |
| return x.FunnelFieldFilter |
| } |
| return nil |
| } |
| |
| func (x *FunnelFilterExpression) GetFunnelEventFilter() *FunnelEventFilter { |
| if x, ok := x.GetExpr().(*FunnelFilterExpression_FunnelEventFilter); ok { |
| return x.FunnelEventFilter |
| } |
| return nil |
| } |
| |
| type isFunnelFilterExpression_Expr interface { |
| isFunnelFilterExpression_Expr() |
| } |
| |
| type FunnelFilterExpression_AndGroup struct { |
| // The FunnelFilterExpression in `andGroup` have an AND relationship. |
| AndGroup *FunnelFilterExpressionList `protobuf:"bytes,1,opt,name=and_group,json=andGroup,proto3,oneof"` |
| } |
| |
| type FunnelFilterExpression_OrGroup struct { |
| // The FunnelFilterExpression in `orGroup` have an OR relationship. |
| OrGroup *FunnelFilterExpressionList `protobuf:"bytes,2,opt,name=or_group,json=orGroup,proto3,oneof"` |
| } |
| |
| type FunnelFilterExpression_NotExpression struct { |
| // The FunnelFilterExpression is NOT of `notExpression`. |
| NotExpression *FunnelFilterExpression `protobuf:"bytes,3,opt,name=not_expression,json=notExpression,proto3,oneof"` |
| } |
| |
| type FunnelFilterExpression_FunnelFieldFilter struct { |
| // A funnel filter for a dimension or metric. |
| FunnelFieldFilter *FunnelFieldFilter `protobuf:"bytes,4,opt,name=funnel_field_filter,json=funnelFieldFilter,proto3,oneof"` |
| } |
| |
| type FunnelFilterExpression_FunnelEventFilter struct { |
| // Creates a filter that matches events of a single event name. If a |
| // parameter filter expression is specified, only the subset of events that |
| // match both the single event name and the parameter filter expressions |
| // match this event filter. |
| FunnelEventFilter *FunnelEventFilter `protobuf:"bytes,5,opt,name=funnel_event_filter,json=funnelEventFilter,proto3,oneof"` |
| } |
| |
| func (*FunnelFilterExpression_AndGroup) isFunnelFilterExpression_Expr() {} |
| |
| func (*FunnelFilterExpression_OrGroup) isFunnelFilterExpression_Expr() {} |
| |
| func (*FunnelFilterExpression_NotExpression) isFunnelFilterExpression_Expr() {} |
| |
| func (*FunnelFilterExpression_FunnelFieldFilter) isFunnelFilterExpression_Expr() {} |
| |
| func (*FunnelFilterExpression_FunnelEventFilter) isFunnelFilterExpression_Expr() {} |
| |
| // A list of funnel filter expressions. |
| type FunnelFilterExpressionList struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The list of funnel filter expressions. |
| Expressions []*FunnelFilterExpression `protobuf:"bytes,1,rep,name=expressions,proto3" json:"expressions,omitempty"` |
| } |
| |
| func (x *FunnelFilterExpressionList) Reset() { |
| *x = FunnelFilterExpressionList{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[48] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FunnelFilterExpressionList) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FunnelFilterExpressionList) ProtoMessage() {} |
| |
| func (x *FunnelFilterExpressionList) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[48] |
| 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 FunnelFilterExpressionList.ProtoReflect.Descriptor instead. |
| func (*FunnelFilterExpressionList) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{48} |
| } |
| |
| func (x *FunnelFilterExpressionList) GetExpressions() []*FunnelFilterExpression { |
| if x != nil { |
| return x.Expressions |
| } |
| return nil |
| } |
| |
| // An expression to filter dimension or metric values. |
| type FunnelFieldFilter struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The dimension name or metric name. |
| FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` |
| // Specify one type of filter. |
| // |
| // Types that are assignable to OneFilter: |
| // *FunnelFieldFilter_StringFilter |
| // *FunnelFieldFilter_InListFilter |
| // *FunnelFieldFilter_NumericFilter |
| // *FunnelFieldFilter_BetweenFilter |
| OneFilter isFunnelFieldFilter_OneFilter `protobuf_oneof:"one_filter"` |
| } |
| |
| func (x *FunnelFieldFilter) Reset() { |
| *x = FunnelFieldFilter{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[49] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FunnelFieldFilter) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FunnelFieldFilter) ProtoMessage() {} |
| |
| func (x *FunnelFieldFilter) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[49] |
| 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 FunnelFieldFilter.ProtoReflect.Descriptor instead. |
| func (*FunnelFieldFilter) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{49} |
| } |
| |
| func (x *FunnelFieldFilter) GetFieldName() string { |
| if x != nil { |
| return x.FieldName |
| } |
| return "" |
| } |
| |
| func (m *FunnelFieldFilter) GetOneFilter() isFunnelFieldFilter_OneFilter { |
| if m != nil { |
| return m.OneFilter |
| } |
| return nil |
| } |
| |
| func (x *FunnelFieldFilter) GetStringFilter() *StringFilter { |
| if x, ok := x.GetOneFilter().(*FunnelFieldFilter_StringFilter); ok { |
| return x.StringFilter |
| } |
| return nil |
| } |
| |
| func (x *FunnelFieldFilter) GetInListFilter() *InListFilter { |
| if x, ok := x.GetOneFilter().(*FunnelFieldFilter_InListFilter); ok { |
| return x.InListFilter |
| } |
| return nil |
| } |
| |
| func (x *FunnelFieldFilter) GetNumericFilter() *NumericFilter { |
| if x, ok := x.GetOneFilter().(*FunnelFieldFilter_NumericFilter); ok { |
| return x.NumericFilter |
| } |
| return nil |
| } |
| |
| func (x *FunnelFieldFilter) GetBetweenFilter() *BetweenFilter { |
| if x, ok := x.GetOneFilter().(*FunnelFieldFilter_BetweenFilter); ok { |
| return x.BetweenFilter |
| } |
| return nil |
| } |
| |
| type isFunnelFieldFilter_OneFilter interface { |
| isFunnelFieldFilter_OneFilter() |
| } |
| |
| type FunnelFieldFilter_StringFilter struct { |
| // Strings related filter. |
| StringFilter *StringFilter `protobuf:"bytes,4,opt,name=string_filter,json=stringFilter,proto3,oneof"` |
| } |
| |
| type FunnelFieldFilter_InListFilter struct { |
| // A filter for in list values. |
| InListFilter *InListFilter `protobuf:"bytes,5,opt,name=in_list_filter,json=inListFilter,proto3,oneof"` |
| } |
| |
| type FunnelFieldFilter_NumericFilter struct { |
| // A filter for numeric or date values. |
| NumericFilter *NumericFilter `protobuf:"bytes,6,opt,name=numeric_filter,json=numericFilter,proto3,oneof"` |
| } |
| |
| type FunnelFieldFilter_BetweenFilter struct { |
| // A filter for between two values. |
| BetweenFilter *BetweenFilter `protobuf:"bytes,7,opt,name=between_filter,json=betweenFilter,proto3,oneof"` |
| } |
| |
| func (*FunnelFieldFilter_StringFilter) isFunnelFieldFilter_OneFilter() {} |
| |
| func (*FunnelFieldFilter_InListFilter) isFunnelFieldFilter_OneFilter() {} |
| |
| func (*FunnelFieldFilter_NumericFilter) isFunnelFieldFilter_OneFilter() {} |
| |
| func (*FunnelFieldFilter_BetweenFilter) isFunnelFieldFilter_OneFilter() {} |
| |
| // Creates a filter that matches events of a single event name. If a parameter |
| // filter expression is specified, only the subset of events that match both the |
| // single event name and the parameter filter expressions match this event |
| // filter. |
| type FunnelEventFilter struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // This filter matches events of this single event name. Event name is |
| // required. |
| EventName *string `protobuf:"bytes,1,opt,name=event_name,json=eventName,proto3,oneof" json:"event_name,omitempty"` |
| // If specified, this filter matches events that match both the single event |
| // name and the parameter filter expressions. |
| // |
| // Inside the parameter filter expression, only parameter filters are |
| // available. |
| FunnelParameterFilterExpression *FunnelParameterFilterExpression `protobuf:"bytes,2,opt,name=funnel_parameter_filter_expression,json=funnelParameterFilterExpression,proto3,oneof" json:"funnel_parameter_filter_expression,omitempty"` |
| } |
| |
| func (x *FunnelEventFilter) Reset() { |
| *x = FunnelEventFilter{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[50] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FunnelEventFilter) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FunnelEventFilter) ProtoMessage() {} |
| |
| func (x *FunnelEventFilter) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[50] |
| 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 FunnelEventFilter.ProtoReflect.Descriptor instead. |
| func (*FunnelEventFilter) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{50} |
| } |
| |
| func (x *FunnelEventFilter) GetEventName() string { |
| if x != nil && x.EventName != nil { |
| return *x.EventName |
| } |
| return "" |
| } |
| |
| func (x *FunnelEventFilter) GetFunnelParameterFilterExpression() *FunnelParameterFilterExpression { |
| if x != nil { |
| return x.FunnelParameterFilterExpression |
| } |
| return nil |
| } |
| |
| // Expresses combinations of funnel filters on parameters. |
| type FunnelParameterFilterExpression struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Specify one type of filter for `FunnelParameterFilterExpression`. |
| // |
| // Types that are assignable to Expr: |
| // *FunnelParameterFilterExpression_AndGroup |
| // *FunnelParameterFilterExpression_OrGroup |
| // *FunnelParameterFilterExpression_NotExpression |
| // *FunnelParameterFilterExpression_FunnelParameterFilter |
| Expr isFunnelParameterFilterExpression_Expr `protobuf_oneof:"expr"` |
| } |
| |
| func (x *FunnelParameterFilterExpression) Reset() { |
| *x = FunnelParameterFilterExpression{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[51] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FunnelParameterFilterExpression) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FunnelParameterFilterExpression) ProtoMessage() {} |
| |
| func (x *FunnelParameterFilterExpression) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[51] |
| 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 FunnelParameterFilterExpression.ProtoReflect.Descriptor instead. |
| func (*FunnelParameterFilterExpression) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{51} |
| } |
| |
| func (m *FunnelParameterFilterExpression) GetExpr() isFunnelParameterFilterExpression_Expr { |
| if m != nil { |
| return m.Expr |
| } |
| return nil |
| } |
| |
| func (x *FunnelParameterFilterExpression) GetAndGroup() *FunnelParameterFilterExpressionList { |
| if x, ok := x.GetExpr().(*FunnelParameterFilterExpression_AndGroup); ok { |
| return x.AndGroup |
| } |
| return nil |
| } |
| |
| func (x *FunnelParameterFilterExpression) GetOrGroup() *FunnelParameterFilterExpressionList { |
| if x, ok := x.GetExpr().(*FunnelParameterFilterExpression_OrGroup); ok { |
| return x.OrGroup |
| } |
| return nil |
| } |
| |
| func (x *FunnelParameterFilterExpression) GetNotExpression() *FunnelParameterFilterExpression { |
| if x, ok := x.GetExpr().(*FunnelParameterFilterExpression_NotExpression); ok { |
| return x.NotExpression |
| } |
| return nil |
| } |
| |
| func (x *FunnelParameterFilterExpression) GetFunnelParameterFilter() *FunnelParameterFilter { |
| if x, ok := x.GetExpr().(*FunnelParameterFilterExpression_FunnelParameterFilter); ok { |
| return x.FunnelParameterFilter |
| } |
| return nil |
| } |
| |
| type isFunnelParameterFilterExpression_Expr interface { |
| isFunnelParameterFilterExpression_Expr() |
| } |
| |
| type FunnelParameterFilterExpression_AndGroup struct { |
| // The FunnelParameterFilterExpression in `andGroup` have an AND |
| // relationship. |
| AndGroup *FunnelParameterFilterExpressionList `protobuf:"bytes,1,opt,name=and_group,json=andGroup,proto3,oneof"` |
| } |
| |
| type FunnelParameterFilterExpression_OrGroup struct { |
| // The FunnelParameterFilterExpression in `orGroup` have an OR |
| // relationship. |
| OrGroup *FunnelParameterFilterExpressionList `protobuf:"bytes,2,opt,name=or_group,json=orGroup,proto3,oneof"` |
| } |
| |
| type FunnelParameterFilterExpression_NotExpression struct { |
| // The FunnelParameterFilterExpression is NOT of `notExpression`. |
| NotExpression *FunnelParameterFilterExpression `protobuf:"bytes,3,opt,name=not_expression,json=notExpression,proto3,oneof"` |
| } |
| |
| type FunnelParameterFilterExpression_FunnelParameterFilter struct { |
| // A primitive funnel parameter filter. |
| FunnelParameterFilter *FunnelParameterFilter `protobuf:"bytes,4,opt,name=funnel_parameter_filter,json=funnelParameterFilter,proto3,oneof"` |
| } |
| |
| func (*FunnelParameterFilterExpression_AndGroup) isFunnelParameterFilterExpression_Expr() {} |
| |
| func (*FunnelParameterFilterExpression_OrGroup) isFunnelParameterFilterExpression_Expr() {} |
| |
| func (*FunnelParameterFilterExpression_NotExpression) isFunnelParameterFilterExpression_Expr() {} |
| |
| func (*FunnelParameterFilterExpression_FunnelParameterFilter) isFunnelParameterFilterExpression_Expr() { |
| } |
| |
| // A list of funnel parameter filter expressions. |
| type FunnelParameterFilterExpressionList struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The list of funnel parameter filter expressions. |
| Expressions []*FunnelParameterFilterExpression `protobuf:"bytes,1,rep,name=expressions,proto3" json:"expressions,omitempty"` |
| } |
| |
| func (x *FunnelParameterFilterExpressionList) Reset() { |
| *x = FunnelParameterFilterExpressionList{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[52] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FunnelParameterFilterExpressionList) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FunnelParameterFilterExpressionList) ProtoMessage() {} |
| |
| func (x *FunnelParameterFilterExpressionList) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[52] |
| 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 FunnelParameterFilterExpressionList.ProtoReflect.Descriptor instead. |
| func (*FunnelParameterFilterExpressionList) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{52} |
| } |
| |
| func (x *FunnelParameterFilterExpressionList) GetExpressions() []*FunnelParameterFilterExpression { |
| if x != nil { |
| return x.Expressions |
| } |
| return nil |
| } |
| |
| // An expression to filter parameter values in a funnel. |
| type FunnelParameterFilter struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The field that is being filtered. |
| // |
| // Types that are assignable to OneParameter: |
| // *FunnelParameterFilter_EventParameterName |
| // *FunnelParameterFilter_ItemParameterName |
| OneParameter isFunnelParameterFilter_OneParameter `protobuf_oneof:"one_parameter"` |
| // Specify one type of filter. |
| // |
| // Types that are assignable to OneFilter: |
| // *FunnelParameterFilter_StringFilter |
| // *FunnelParameterFilter_InListFilter |
| // *FunnelParameterFilter_NumericFilter |
| // *FunnelParameterFilter_BetweenFilter |
| OneFilter isFunnelParameterFilter_OneFilter `protobuf_oneof:"one_filter"` |
| } |
| |
| func (x *FunnelParameterFilter) Reset() { |
| *x = FunnelParameterFilter{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[53] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FunnelParameterFilter) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FunnelParameterFilter) ProtoMessage() {} |
| |
| func (x *FunnelParameterFilter) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[53] |
| 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 FunnelParameterFilter.ProtoReflect.Descriptor instead. |
| func (*FunnelParameterFilter) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{53} |
| } |
| |
| func (m *FunnelParameterFilter) GetOneParameter() isFunnelParameterFilter_OneParameter { |
| if m != nil { |
| return m.OneParameter |
| } |
| return nil |
| } |
| |
| func (x *FunnelParameterFilter) GetEventParameterName() string { |
| if x, ok := x.GetOneParameter().(*FunnelParameterFilter_EventParameterName); ok { |
| return x.EventParameterName |
| } |
| return "" |
| } |
| |
| func (x *FunnelParameterFilter) GetItemParameterName() string { |
| if x, ok := x.GetOneParameter().(*FunnelParameterFilter_ItemParameterName); ok { |
| return x.ItemParameterName |
| } |
| return "" |
| } |
| |
| func (m *FunnelParameterFilter) GetOneFilter() isFunnelParameterFilter_OneFilter { |
| if m != nil { |
| return m.OneFilter |
| } |
| return nil |
| } |
| |
| func (x *FunnelParameterFilter) GetStringFilter() *StringFilter { |
| if x, ok := x.GetOneFilter().(*FunnelParameterFilter_StringFilter); ok { |
| return x.StringFilter |
| } |
| return nil |
| } |
| |
| func (x *FunnelParameterFilter) GetInListFilter() *InListFilter { |
| if x, ok := x.GetOneFilter().(*FunnelParameterFilter_InListFilter); ok { |
| return x.InListFilter |
| } |
| return nil |
| } |
| |
| func (x *FunnelParameterFilter) GetNumericFilter() *NumericFilter { |
| if x, ok := x.GetOneFilter().(*FunnelParameterFilter_NumericFilter); ok { |
| return x.NumericFilter |
| } |
| return nil |
| } |
| |
| func (x *FunnelParameterFilter) GetBetweenFilter() *BetweenFilter { |
| if x, ok := x.GetOneFilter().(*FunnelParameterFilter_BetweenFilter); ok { |
| return x.BetweenFilter |
| } |
| return nil |
| } |
| |
| type isFunnelParameterFilter_OneParameter interface { |
| isFunnelParameterFilter_OneParameter() |
| } |
| |
| type FunnelParameterFilter_EventParameterName struct { |
| // This filter will be evaluated on the specified event parameter. Event |
| // parameters are logged as parameters of the event. Event parameters |
| // include fields like "firebase_screen" & "currency". |
| // |
| // Event parameters can only be used in segments & funnels and can only be |
| // used in a descendent filter from an EventFilter. In a descendent filter |
| // from an EventFilter either event or item parameters should be used. |
| EventParameterName string `protobuf:"bytes,1,opt,name=event_parameter_name,json=eventParameterName,proto3,oneof"` |
| } |
| |
| type FunnelParameterFilter_ItemParameterName struct { |
| // This filter will be evaluated on the specified item parameter. Item |
| // parameters are logged as parameters in the item array. Item parameters |
| // include fields like "item_name" & "item_category". |
| // |
| // Item parameters can only be used in segments & funnels and can only be |
| // used in a descendent filter from an EventFilter. In a descendent filter |
| // from an EventFilter either event or item parameters should be used. |
| // |
| // Item parameters are only available in ecommerce events. To learn more |
| // about ecommerce events, see the [Measure ecommerce] |
| // (https://developers.google.com/analytics/devguides/collection/ga4/ecommerce) |
| // guide. |
| ItemParameterName string `protobuf:"bytes,2,opt,name=item_parameter_name,json=itemParameterName,proto3,oneof"` |
| } |
| |
| func (*FunnelParameterFilter_EventParameterName) isFunnelParameterFilter_OneParameter() {} |
| |
| func (*FunnelParameterFilter_ItemParameterName) isFunnelParameterFilter_OneParameter() {} |
| |
| type isFunnelParameterFilter_OneFilter interface { |
| isFunnelParameterFilter_OneFilter() |
| } |
| |
| type FunnelParameterFilter_StringFilter struct { |
| // Strings related filter. |
| StringFilter *StringFilter `protobuf:"bytes,4,opt,name=string_filter,json=stringFilter,proto3,oneof"` |
| } |
| |
| type FunnelParameterFilter_InListFilter struct { |
| // A filter for in list values. |
| InListFilter *InListFilter `protobuf:"bytes,5,opt,name=in_list_filter,json=inListFilter,proto3,oneof"` |
| } |
| |
| type FunnelParameterFilter_NumericFilter struct { |
| // A filter for numeric or date values. |
| NumericFilter *NumericFilter `protobuf:"bytes,6,opt,name=numeric_filter,json=numericFilter,proto3,oneof"` |
| } |
| |
| type FunnelParameterFilter_BetweenFilter struct { |
| // A filter for between two values. |
| BetweenFilter *BetweenFilter `protobuf:"bytes,7,opt,name=between_filter,json=betweenFilter,proto3,oneof"` |
| } |
| |
| func (*FunnelParameterFilter_StringFilter) isFunnelParameterFilter_OneFilter() {} |
| |
| func (*FunnelParameterFilter_InListFilter) isFunnelParameterFilter_OneFilter() {} |
| |
| func (*FunnelParameterFilter_NumericFilter) isFunnelParameterFilter_OneFilter() {} |
| |
| func (*FunnelParameterFilter_BetweenFilter) isFunnelParameterFilter_OneFilter() {} |
| |
| // The funnel report's response metadata carries additional information about |
| // the funnel report. |
| type FunnelResponseMetadata struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // If funnel report results are |
| // [sampled](https://support.google.com/analytics/answer/2637192), this |
| // describes what percentage of events were used in this funnel report. One |
| // `samplingMetadatas` is populated for each date range. Each |
| // `samplingMetadatas` corresponds to a date range in order that date ranges |
| // were specified in the request. |
| // |
| // However if the results are not sampled, this field will not be defined. |
| SamplingMetadatas []*SamplingMetadata `protobuf:"bytes,1,rep,name=sampling_metadatas,json=samplingMetadatas,proto3" json:"sampling_metadatas,omitempty"` |
| } |
| |
| func (x *FunnelResponseMetadata) Reset() { |
| *x = FunnelResponseMetadata{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[54] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FunnelResponseMetadata) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FunnelResponseMetadata) ProtoMessage() {} |
| |
| func (x *FunnelResponseMetadata) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[54] |
| 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 FunnelResponseMetadata.ProtoReflect.Descriptor instead. |
| func (*FunnelResponseMetadata) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{54} |
| } |
| |
| func (x *FunnelResponseMetadata) GetSamplingMetadatas() []*SamplingMetadata { |
| if x != nil { |
| return x.SamplingMetadatas |
| } |
| return nil |
| } |
| |
| // If funnel report results are |
| // [sampled](https://support.google.com/analytics/answer/2637192), this |
| // metadata describes what percentage of events were used in this funnel |
| // report for a date range. Sampling is the practice of analyzing a subset of |
| // all data in order to uncover the meaningful information in the larger data |
| // set. |
| type SamplingMetadata struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The total number of events read in this sampled report for a date range. |
| // This is the size of the subset this property's data that was analyzed in |
| // this funnel report. |
| SamplesReadCount int64 `protobuf:"varint,1,opt,name=samples_read_count,json=samplesReadCount,proto3" json:"samples_read_count,omitempty"` |
| // The total number of events present in this property's data that could |
| // have been analyzed in this funnel report for a date range. Sampling |
| // uncovers the meaningful information about the larger data set, and this |
| // is the size of the larger data set. |
| // |
| // To calculate the percentage of available data that was used in this |
| // funnel report, compute `samplesReadCount/samplingSpaceSize`. |
| SamplingSpaceSize int64 `protobuf:"varint,2,opt,name=sampling_space_size,json=samplingSpaceSize,proto3" json:"sampling_space_size,omitempty"` |
| } |
| |
| func (x *SamplingMetadata) Reset() { |
| *x = SamplingMetadata{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[55] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SamplingMetadata) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SamplingMetadata) ProtoMessage() {} |
| |
| func (x *SamplingMetadata) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[55] |
| 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 SamplingMetadata.ProtoReflect.Descriptor instead. |
| func (*SamplingMetadata) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{55} |
| } |
| |
| func (x *SamplingMetadata) GetSamplesReadCount() int64 { |
| if x != nil { |
| return x.SamplesReadCount |
| } |
| return 0 |
| } |
| |
| func (x *SamplingMetadata) GetSamplingSpaceSize() int64 { |
| if x != nil { |
| return x.SamplingSpaceSize |
| } |
| return 0 |
| } |
| |
| // Used to convert a dimension value to a single case. |
| type DimensionExpression_CaseExpression struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Name of a dimension. The name must refer back to a name in dimensions |
| // field of the request. |
| DimensionName string `protobuf:"bytes,1,opt,name=dimension_name,json=dimensionName,proto3" json:"dimension_name,omitempty"` |
| } |
| |
| func (x *DimensionExpression_CaseExpression) Reset() { |
| *x = DimensionExpression_CaseExpression{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[56] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DimensionExpression_CaseExpression) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DimensionExpression_CaseExpression) ProtoMessage() {} |
| |
| func (x *DimensionExpression_CaseExpression) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[56] |
| 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 DimensionExpression_CaseExpression.ProtoReflect.Descriptor instead. |
| func (*DimensionExpression_CaseExpression) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{2, 0} |
| } |
| |
| func (x *DimensionExpression_CaseExpression) GetDimensionName() string { |
| if x != nil { |
| return x.DimensionName |
| } |
| return "" |
| } |
| |
| // Used to combine dimension values to a single dimension. |
| type DimensionExpression_ConcatenateExpression struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Names of dimensions. The names must refer back to names in the dimensions |
| // field of the request. |
| DimensionNames []string `protobuf:"bytes,1,rep,name=dimension_names,json=dimensionNames,proto3" json:"dimension_names,omitempty"` |
| // The delimiter placed between dimension names. |
| // |
| // Delimiters are often single characters such as "|" or "," but can be |
| // longer strings. If a dimension value contains the delimiter, both will be |
| // present in response with no distinction. For example if dimension 1 value |
| // = "US,FR", dimension 2 value = "JP", and delimiter = ",", then the |
| // response will contain "US,FR,JP". |
| Delimiter string `protobuf:"bytes,2,opt,name=delimiter,proto3" json:"delimiter,omitempty"` |
| } |
| |
| func (x *DimensionExpression_ConcatenateExpression) Reset() { |
| *x = DimensionExpression_ConcatenateExpression{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[57] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DimensionExpression_ConcatenateExpression) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DimensionExpression_ConcatenateExpression) ProtoMessage() {} |
| |
| func (x *DimensionExpression_ConcatenateExpression) ProtoReflect() protoreflect.Message { |
| mi := &file_google_analytics_data_v1alpha_data_proto_msgTypes[57] |
| 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 DimensionExpression_ConcatenateExpression.ProtoReflect.Descriptor instead. |
| func (*DimensionExpression_ConcatenateExpression) Descriptor() ([]byte, []int) { |
| return file_google_analytics_data_v1alpha_data_proto_rawDescGZIP(), []int{2, 1} |
| } |
| |
| func (x *DimensionExpression_ConcatenateExpression) GetDimensionNames() []string { |
| if x != nil { |
| return x.DimensionNames |
| } |
| return nil |
| } |
| |
| func (x *DimensionExpression_ConcatenateExpression) GetDelimiter() string { |
| if x != nil { |
| return x.Delimiter |
| } |
| return "" |
| } |
| |
| var File_google_analytics_data_v1alpha_data_proto protoreflect.FileDescriptor |
| |
| var file_google_analytics_data_v1alpha_data_proto_rawDesc = []byte{ |
| 0x0a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, |
| 0x63, 0x73, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, |
| 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, |
| 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x59, 0x0a, 0x09, 0x44, 0x61, 0x74, |
| 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, |
| 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, |
| 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, |
| 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, |
| 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, |
| 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x09, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, |
| 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x65, 0x0a, 0x14, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, |
| 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, |
| 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, |
| 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, |
| 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, |
| 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xf6, 0x03, |
| 0x0a, 0x13, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, |
| 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x63, |
| 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, |
| 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, |
| 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x61, |
| 0x73, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, |
| 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x61, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0a, 0x75, 0x70, 0x70, |
| 0x65, 0x72, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, |
| 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x69, |
| 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, |
| 0x6e, 0x2e, 0x43, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, |
| 0x48, 0x00, 0x52, 0x09, 0x75, 0x70, 0x70, 0x65, 0x72, 0x43, 0x61, 0x73, 0x65, 0x12, 0x6c, 0x0a, |
| 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, |
| 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, |
| 0x68, 0x61, 0x2e, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, |
| 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, |
| 0x74, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, |
| 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, 0x1a, 0x37, 0x0a, 0x0e, 0x43, |
| 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, |
| 0x0e, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, |
| 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x5e, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, |
| 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, |
| 0x0f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, |
| 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, |
| 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, |
| 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x69, 0x6d, |
| 0x69, 0x74, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x6f, 0x6e, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, |
| 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xdb, 0x02, 0x0a, 0x10, 0x46, 0x69, 0x6c, 0x74, 0x65, |
| 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x09, 0x61, |
| 0x6e, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, |
| 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, |
| 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x61, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, |
| 0x50, 0x0a, 0x08, 0x6f, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, |
| 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, |
| 0x70, 0x12, 0x58, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, |
| 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, |
| 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, |
| 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, |
| 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x06, 0x66, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, |
| 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, |
| 0x65, 0x78, 0x70, 0x72, 0x22, 0x69, 0x0a, 0x14, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, |
| 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x0b, |
| 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, |
| 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, |
| 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, |
| 0x8c, 0x03, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, |
| 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, |
| 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x73, 0x74, 0x72, |
| 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, |
| 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, |
| 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, |
| 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, |
| 0x0e, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, |
| 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, |
| 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, |
| 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x66, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, |
| 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, |
| 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x65, |
| 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0e, 0x62, 0x65, 0x74, |
| 0x77, 0x65, 0x65, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x2e, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, |
| 0x00, 0x52, 0x0d, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, |
| 0x42, 0x0c, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xa9, |
| 0x02, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, |
| 0x54, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, |
| 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, |
| 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, |
| 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, |
| 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, |
| 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, |
| 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x61, 0x73, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, |
| 0x76, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, |
| 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, |
| 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, |
| 0x45, 0x58, 0x41, 0x43, 0x54, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x45, 0x47, 0x49, 0x4e, |
| 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x4e, 0x44, 0x53, |
| 0x5f, 0x57, 0x49, 0x54, 0x48, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4e, 0x54, 0x41, |
| 0x49, 0x4e, 0x53, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x52, 0x45, |
| 0x47, 0x45, 0x58, 0x50, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, |
| 0x4c, 0x5f, 0x52, 0x45, 0x47, 0x45, 0x58, 0x50, 0x10, 0x06, 0x22, 0x4d, 0x0a, 0x0c, 0x49, 0x6e, |
| 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, |
| 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, |
| 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, |
| 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x61, 0x73, 0x65, |
| 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x22, 0xb0, 0x02, 0x0a, 0x0d, 0x4e, 0x75, |
| 0x6d, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x09, 0x6f, |
| 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, |
| 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4e, |
| 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x12, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, |
| 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, |
| 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, |
| 0x61, 0x6c, 0x75, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, |
| 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, |
| 0x05, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x45, 0x53, 0x53, |
| 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x53, 0x53, 0x5f, |
| 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x03, 0x12, |
| 0x10, 0x0a, 0x0c, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, |
| 0x04, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, |
| 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x05, 0x22, 0xa3, 0x01, 0x0a, |
| 0x0d, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x4a, |
| 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, |
| 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, |
| 0x68, 0x61, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, |
| 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x08, 0x74, 0x6f, |
| 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, |
| 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4e, 0x75, 0x6d, |
| 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x74, 0x6f, 0x56, 0x61, 0x6c, |
| 0x75, 0x65, 0x22, 0x63, 0x0a, 0x0c, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, |
| 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, |
| 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x36, 0x34, |
| 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, |
| 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, |
| 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x6f, 0x6e, |
| 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x44, 0x69, 0x6d, 0x65, 0x6e, |
| 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, |
| 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x61, |
| 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, |
| 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, |
| 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, |
| 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, |
| 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, |
| 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, |
| 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x03, 0x52, 0x6f, 0x77, 0x12, 0x58, 0x0a, 0x10, 0x64, 0x69, 0x6d, |
| 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, |
| 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, |
| 0x70, 0x68, 0x61, 0x2e, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, |
| 0x75, 0x65, 0x52, 0x0f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, |
| 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, |
| 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, |
| 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, |
| 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, |
| 0x6c, 0x75, 0x65, 0x73, 0x22, 0x35, 0x0a, 0x0e, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, |
| 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, |
| 0x0a, 0x09, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x32, 0x0a, 0x0b, 0x4d, |
| 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x76, 0x61, |
| 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, |
| 0x75, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, |
| 0x90, 0x04, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x51, 0x75, 0x6f, 0x74, |
| 0x61, 0x12, 0x50, 0x0a, 0x0e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, |
| 0x64, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, |
| 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x53, |
| 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x50, 0x65, 0x72, |
| 0x44, 0x61, 0x79, 0x12, 0x52, 0x0a, 0x0f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5f, 0x70, 0x65, |
| 0x72, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, |
| 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x51, 0x75, 0x6f, |
| 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, |
| 0x50, 0x65, 0x72, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x5b, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x63, 0x75, |
| 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x03, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, |
| 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, |
| 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, |
| 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x73, 0x12, 0x75, 0x0a, 0x22, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x65, |
| 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, |
| 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, |
| 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, |
| 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x1d, 0x73, 0x65, |
| 0x72, 0x76, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x50, 0x65, 0x72, 0x50, 0x72, 0x6f, |
| 0x6a, 0x65, 0x63, 0x74, 0x50, 0x65, 0x72, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x84, 0x01, 0x0a, 0x29, |
| 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, |
| 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, |
| 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, |
| 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, |
| 0x51, 0x75, 0x6f, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x25, 0x70, 0x6f, 0x74, |
| 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, |
| 0x64, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x50, 0x65, 0x72, 0x48, 0x6f, |
| 0x75, 0x72, 0x22, 0x47, 0x0a, 0x0b, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, |
| 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x12, 0x1c, 0x0a, |
| 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, |
| 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x01, 0x0a, 0x0f, |
| 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x12, |
| 0x59, 0x0a, 0x13, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x64, 0x69, 0x6d, |
| 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, |
| 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x69, 0x6d, |
| 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, |
| 0x6e, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, |
| 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x69, 0x6d, |
| 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, |
| 0x95, 0x01, 0x0a, 0x10, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x63, |
| 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x61, 0x63, 0x74, |
| 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, |
| 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, |
| 0x70, 0x68, 0x61, 0x2e, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6e, |
| 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, |
| 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x03, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, |
| 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6f, 0x0a, 0x06, 0x46, 0x75, 0x6e, 0x6e, 0x65, |
| 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x66, 0x75, 0x6e, |
| 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x4f, 0x70, 0x65, |
| 0x6e, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, |
| 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, |
| 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x74, 0x65, |
| 0x70, 0x52, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x22, 0xc5, 0x02, 0x0a, 0x0a, 0x46, 0x75, 0x6e, |
| 0x6e, 0x65, 0x6c, 0x53, 0x74, 0x65, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x69, |
| 0x73, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6c, 0x79, 0x5f, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, |
| 0x77, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x73, |
| 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6c, 0x79, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, |
| 0x42, 0x79, 0x12, 0x64, 0x0a, 0x1f, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x5f, 0x64, 0x75, 0x72, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, |
| 0x5f, 0x73, 0x74, 0x65, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1b, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, |
| 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x72, 0x69, 0x6f, |
| 0x72, 0x53, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x11, 0x66, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, |
| 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, |
| 0x70, 0x68, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, |
| 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x66, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x22, 0x0a, 0x20, |
| 0x5f, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x65, 0x70, |
| 0x22, 0xcd, 0x02, 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x75, 0x62, 0x52, 0x65, |
| 0x70, 0x6f, 0x72, 0x74, 0x12, 0x5b, 0x0a, 0x11, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, |
| 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, |
| 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, |
| 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, |
| 0x10, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, |
| 0x73, 0x12, 0x52, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x68, 0x65, 0x61, 0x64, |
| 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, |
| 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, |
| 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x65, |
| 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, |
| 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, |
| 0x70, 0x68, 0x61, 0x2e, 0x52, 0x6f, 0x77, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x12, 0x51, 0x0a, |
| 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, |
| 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, |
| 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, |
| 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, |
| 0x22, 0xcc, 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, |
| 0x12, 0x6a, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, |
| 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x69, |
| 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x63, 0x6c, 0x75, |
| 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x51, 0x0a, 0x09, |
| 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, |
| 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, |
| 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x63, 0x6c, 0x75, |
| 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x22, |
| 0xea, 0x01, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, |
| 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x6a, 0x0a, 0x14, 0x61, 0x6e, 0x64, 0x5f, 0x63, |
| 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, |
| 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, |
| 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, |
| 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, |
| 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, |
| 0x12, 0x61, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, |
| 0x75, 0x70, 0x73, 0x12, 0x67, 0x0a, 0x13, 0x61, 0x6e, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, |
| 0x6e, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, |
| 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, |
| 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, |
| 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x71, 0x75, |
| 0x65, 0x6e, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x11, 0x61, 0x6e, 0x64, 0x53, 0x65, |
| 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0xf0, 0x01, 0x0a, |
| 0x19, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, |
| 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x5f, 0x0a, 0x11, 0x63, 0x6f, |
| 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, |
| 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, |
| 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, |
| 0x69, 0x61, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x64, 0x69, |
| 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x72, 0x0a, 0x19, 0x73, |
| 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x78, |
| 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, |
| 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, |
| 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, |
| 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, |
| 0xb1, 0x02, 0x0a, 0x18, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, |
| 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x5d, 0x0a, 0x10, |
| 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, |
| 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x69, 0x74, 0x65, |
| 0x72, 0x69, 0x61, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x0f, 0x73, 0x65, 0x71, 0x75, |
| 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x55, 0x0a, 0x19, 0x73, |
| 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, |
| 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, |
| 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x73, 0x65, 0x71, 0x75, 0x65, |
| 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, |
| 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, |
| 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, |
| 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x65, 0x70, |
| 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x74, |
| 0x65, 0x70, 0x73, 0x22, 0x94, 0x02, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x71, 0x75, |
| 0x65, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x65, 0x70, 0x12, 0x35, 0x0a, 0x17, 0x69, 0x73, 0x5f, 0x64, |
| 0x69, 0x72, 0x65, 0x63, 0x74, 0x6c, 0x79, 0x5f, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, |
| 0x5f, 0x62, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x73, 0x44, 0x69, 0x72, |
| 0x65, 0x63, 0x74, 0x6c, 0x79, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x42, 0x79, 0x12, |
| 0x55, 0x0a, 0x0c, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, |
| 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, |
| 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, |
| 0x69, 0x61, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x73, 0x74, 0x65, 0x70, 0x53, |
| 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x72, 0x0a, 0x19, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, |
| 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, |
| 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, |
| 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, |
| 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, |
| 0x6e, 0x52, 0x17, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, |
| 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xf0, 0x01, 0x0a, 0x14, 0x55, |
| 0x73, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, |
| 0x69, 0x6f, 0x6e, 0x12, 0x6c, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x63, 0x6c, |
| 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, |
| 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, |
| 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, |
| 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, |
| 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x12, 0x6a, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, |
| 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, |
| 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, |
| 0x68, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, |
| 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x63, 0x6c, |
| 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x22, 0xdb, 0x01, |
| 0x0a, 0x0e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, |
| 0x12, 0x73, 0x0a, 0x1a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x63, 0x6c, |
| 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, |
| 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, |
| 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, |
| 0x65, 0x6e, 0x74, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x18, 0x73, 0x65, 0x73, |
| 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x69, |
| 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x54, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, |
| 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, |
| 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, |
| 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, |
| 0x52, 0x09, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x16, |
| 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, |
| 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x6d, 0x0a, 0x14, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, |
| 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, |
| 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, |
| 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, |
| 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, |
| 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, |
| 0x70, 0x52, 0x12, 0x61, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, |
| 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0xf6, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, |
| 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, |
| 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x62, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, |
| 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x0e, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, |
| 0x61, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, |
| 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x72, 0x0a, 0x19, 0x73, 0x65, |
| 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, |
| 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, |
| 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, |
| 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, |
| 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x85, |
| 0x02, 0x0a, 0x17, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, |
| 0x74, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x75, 0x0a, 0x1a, 0x73, 0x65, |
| 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, |
| 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, |
| 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, |
| 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x44, |
| 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, |
| 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x12, 0x73, 0x0a, 0x1a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x63, |
| 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, |
| 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, |
| 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, |
| 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x18, 0x73, 0x65, |
| 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x72, |
| 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x22, 0xd1, 0x01, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, |
| 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x18, 0x65, 0x76, 0x65, 0x6e, 0x74, |
| 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, |
| 0x72, 0x69, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, |
| 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, |
| 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x16, |
| 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x72, |
| 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x52, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, |
| 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, |
| 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, |
| 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, |
| 0x09, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x14, 0x45, |
| 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x69, 0x74, 0x65, |
| 0x72, 0x69, 0x61, 0x12, 0x6b, 0x0a, 0x14, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, |
| 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, |
| 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x12, 0x61, 0x6e, |
| 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, |
| 0x22, 0xf2, 0x01, 0x0a, 0x1a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, |
| 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, |
| 0x60, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x6f, |
| 0x70, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, |
| 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, |
| 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x52, |
| 0x10, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, |
| 0x67, 0x12, 0x72, 0x0a, 0x19, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x6c, |
| 0x74, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, |
| 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, |
| 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x73, 0x65, |
| 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, |
| 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xf7, 0x01, 0x0a, 0x15, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, |
| 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x12, |
| 0x6f, 0x0a, 0x18, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, |
| 0x6f, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x0e, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, |
| 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x45, |
| 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x12, 0x6d, 0x0a, 0x18, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, |
| 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, |
| 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, |
| 0x68, 0x61, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, |
| 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x16, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x45, 0x78, |
| 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x22, |
| 0xb1, 0x02, 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, |
| 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, |
| 0x4f, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, |
| 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, |
| 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, |
| 0x74, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, |
| 0x12, 0x58, 0x0a, 0x0f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x67, 0x6d, |
| 0x65, 0x6e, 0x74, 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, 0x64, 0x61, 0x74, |
| 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, |
| 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x65, 0x73, 0x73, |
| 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x0d, 0x65, 0x76, |
| 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, |
| 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x13, |
| 0x0a, 0x11, 0x6f, 0x6e, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x63, |
| 0x6f, 0x70, 0x65, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, |
| 0x59, 0x0a, 0x09, 0x61, 0x6e, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, |
| 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, |
| 0x68, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, |
| 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, |
| 0x52, 0x08, 0x61, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x57, 0x0a, 0x08, 0x6f, 0x72, |
| 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, |
| 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x67, |
| 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, |
| 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x72, 0x47, 0x72, |
| 0x6f, 0x75, 0x70, 0x12, 0x5f, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, |
| 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, |
| 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, |
| 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, |
| 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, |
| 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x0e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, |
| 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, |
| 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x67, |
| 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, |
| 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x14, 0x73, |
| 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x6c, |
| 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, |
| 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, |
| 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x12, |
| 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x22, 0x77, 0x0a, 0x1b, 0x53, 0x65, |
| 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, |
| 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x0b, 0x65, 0x78, 0x70, |
| 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, |
| 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, |
| 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, |
| 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, |
| 0x6f, 0x6e, 0x73, 0x22, 0xef, 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, |
| 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, |
| 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, |
| 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x72, 0x69, |
| 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x69, |
| 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0e, 0x69, 0x6e, 0x5f, 0x6c, |
| 0x69, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, |
| 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, |
| 0x2e, 0x49, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, |
| 0x0c, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x55, 0x0a, |
| 0x0e, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, |
| 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, |
| 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0e, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x5f, |
| 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, |
| 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x42, 0x65, 0x74, |
| 0x77, 0x65, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x65, |
| 0x74, 0x77, 0x65, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x5a, 0x0a, 0x0e, 0x66, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, |
| 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, |
| 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, |
| 0x72, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, |
| 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x5f, 0x66, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x64, 0x0a, 0x14, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, |
| 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, |
| 0x14, 0x61, 0x74, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, |
| 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x61, |
| 0x74, 0x41, 0x6e, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x88, |
| 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x74, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x70, 0x6f, |
| 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x85, 0x02, 0x0a, 0x12, |
| 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, |
| 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x93, 0x01, 0x0a, 0x23, 0x73, 0x65, 0x67, 0x6d, 0x65, |
| 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, |
| 0x74, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, |
| 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, |
| 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, |
| 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, |
| 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, |
| 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, |
| 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, |
| 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x26, 0x0a, 0x24, 0x5f, |
| 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, |
| 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, |
| 0x69, 0x6f, 0x6e, 0x22, 0xcd, 0x03, 0x0a, 0x20, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x50, |
| 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, |
| 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x09, 0x61, 0x6e, 0x64, 0x5f, |
| 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, |
| 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, |
| 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, |
| 0x48, 0x00, 0x52, 0x08, 0x61, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x60, 0x0a, 0x08, |
| 0x6f, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, |
| 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, |
| 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, |
| 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x68, |
| 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, |
| 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, |
| 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, |
| 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, |
| 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x45, 0x78, |
| 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x71, 0x0a, 0x18, 0x73, 0x65, 0x67, 0x6d, |
| 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, |
| 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, |
| 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, |
| 0x72, 0x48, 0x00, 0x52, 0x16, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, |
| 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x65, |
| 0x78, 0x70, 0x72, 0x22, 0x89, 0x01, 0x0a, 0x24, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x50, |
| 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, |
| 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x61, 0x0a, 0x0b, |
| 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, |
| 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, |
| 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, |
| 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, |
| 0xd9, 0x04, 0x0a, 0x16, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, |
| 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x76, |
| 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, |
| 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x12, 0x65, 0x76, 0x65, 0x6e, |
| 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, |
| 0x0a, 0x13, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, |
| 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x69, |
| 0x74, 0x65, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, |
| 0x12, 0x52, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, |
| 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, |
| 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0e, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, |
| 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, |
| 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6e, 0x4c, |
| 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x01, 0x52, 0x0c, 0x69, 0x6e, 0x4c, |
| 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, |
| 0x65, 0x72, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, |
| 0x01, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, |
| 0x12, 0x55, 0x0a, 0x0e, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, |
| 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, |
| 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x01, 0x52, 0x0d, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, |
| 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x63, 0x0a, 0x0e, 0x66, 0x69, 0x6c, 0x74, 0x65, |
| 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, |
| 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, |
| 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, |
| 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x66, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, |
| 0x6f, 0x6e, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x0c, 0x0a, |
| 0x0a, 0x6f, 0x6e, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x6a, 0x0a, 0x1d, 0x53, |
| 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x31, 0x0a, 0x13, |
| 0x69, 0x6e, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x6e, 0x5f, 0x64, 0x61, 0x79, 0x5f, 0x70, 0x65, 0x72, |
| 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x6e, 0x41, |
| 0x6e, 0x79, 0x4e, 0x44, 0x61, 0x79, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x42, |
| 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x6e, 0x5f, 0x64, 0x61, 0x79, |
| 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0xfa, 0x03, 0x0a, 0x16, 0x46, 0x75, 0x6e, 0x6e, |
| 0x65, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, |
| 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x09, 0x61, 0x6e, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, |
| 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, |
| 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, |
| 0x48, 0x00, 0x52, 0x08, 0x61, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x56, 0x0a, 0x08, |
| 0x6f, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, |
| 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, |
| 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, |
| 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x72, 0x47, |
| 0x72, 0x6f, 0x75, 0x70, 0x12, 0x5e, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, |
| 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, |
| 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x75, 0x6e, |
| 0x6e, 0x65, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, |
| 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, |
| 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x13, 0x66, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x66, |
| 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x69, 0x6c, |
| 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x11, 0x66, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x69, 0x65, |
| 0x6c, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x13, 0x66, 0x75, 0x6e, 0x6e, |
| 0x65, 0x6c, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, |
| 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, |
| 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x11, 0x66, 0x75, 0x6e, 0x6e, 0x65, |
| 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, |
| 0x65, 0x78, 0x70, 0x72, 0x22, 0x75, 0x0a, 0x1a, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, |
| 0x73, 0x74, 0x12, 0x57, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, |
| 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, |
| 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b, |
| 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x97, 0x03, 0x0a, 0x11, |
| 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, |
| 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, |
| 0x12, 0x52, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, |
| 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, |
| 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0e, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, |
| 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, |
| 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6e, 0x4c, |
| 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x4c, |
| 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, |
| 0x65, 0x72, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, |
| 0x00, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, |
| 0x12, 0x55, 0x0a, 0x0e, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, |
| 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, |
| 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, |
| 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x5f, 0x66, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x80, 0x02, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, |
| 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x65, |
| 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, |
| 0x00, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, |
| 0x90, 0x01, 0x0a, 0x22, 0x66, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, |
| 0x65, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x72, |
| 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, |
| 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x75, 0x6e, |
| 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x1f, |
| 0x66, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x88, |
| 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, |
| 0x65, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x66, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x70, 0x61, 0x72, |
| 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x78, |
| 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xc6, 0x03, 0x0a, 0x1f, 0x46, 0x75, 0x6e, |
| 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x61, 0x0a, 0x09, |
| 0x61, 0x6e, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, |
| 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, |
| 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, |
| 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x61, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, |
| 0x5f, 0x0a, 0x08, 0x6f, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, |
| 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, |
| 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, |
| 0x12, 0x67, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, |
| 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, |
| 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, |
| 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, |
| 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x45, |
| 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x6e, 0x0a, 0x17, 0x66, 0x75, 0x6e, |
| 0x6e, 0x65, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 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, 0x64, 0x61, |
| 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x6e, 0x65, |
| 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, |
| 0x48, 0x00, 0x52, 0x15, 0x66, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, |
| 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x65, 0x78, 0x70, |
| 0x72, 0x22, 0x87, 0x01, 0x0a, 0x23, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, |
| 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, |
| 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x60, 0x0a, 0x0b, 0x65, 0x78, 0x70, |
| 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, |
| 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, |
| 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b, |
| 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xf3, 0x03, 0x0a, 0x15, |
| 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, |
| 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, |
| 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x12, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, |
| 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x74, 0x65, |
| 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, |
| 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x69, 0x74, 0x65, 0x6d, 0x50, 0x61, |
| 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x73, |
| 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, |
| 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, |
| 0x68, 0x61, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, |
| 0x01, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, |
| 0x53, 0x0a, 0x0e, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, |
| 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, |
| 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x48, 0x01, 0x52, 0x0c, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x5f, |
| 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, |
| 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4e, 0x75, 0x6d, |
| 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x01, 0x52, 0x0d, 0x6e, 0x75, |
| 0x6d, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0e, 0x62, |
| 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, |
| 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, |
| 0x70, 0x68, 0x61, 0x2e, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, |
| 0x72, 0x48, 0x01, 0x52, 0x0d, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x6f, 0x6e, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, |
| 0x74, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, |
| 0x72, 0x22, 0x78, 0x0a, 0x16, 0x46, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, |
| 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5e, 0x0a, 0x12, 0x73, |
| 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, |
| 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, |
| 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, |
| 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x11, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, |
| 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, 0x22, 0x70, 0x0a, 0x10, 0x53, |
| 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, |
| 0x2c, 0x0a, 0x12, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, |
| 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x73, 0x61, 0x6d, |
| 0x70, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, |
| 0x13, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, |
| 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x61, 0x6d, 0x70, |
| 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x61, 0x63, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x2a, 0xaf, 0x01, |
| 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x53, 0x63, |
| 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x21, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x43, 0x52, |
| 0x49, 0x54, 0x45, 0x52, 0x49, 0x41, 0x5f, 0x53, 0x43, 0x4f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x55, |
| 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, |
| 0x55, 0x53, 0x45, 0x52, 0x5f, 0x43, 0x52, 0x49, 0x54, 0x45, 0x52, 0x49, 0x41, 0x5f, 0x57, 0x49, |
| 0x54, 0x48, 0x49, 0x4e, 0x5f, 0x53, 0x41, 0x4d, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, |
| 0x01, 0x12, 0x25, 0x0a, 0x21, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x43, 0x52, 0x49, 0x54, 0x45, 0x52, |
| 0x49, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x49, 0x4e, 0x5f, 0x53, 0x41, 0x4d, 0x45, 0x5f, 0x53, |
| 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x55, 0x53, 0x45, 0x52, |
| 0x5f, 0x43, 0x52, 0x49, 0x54, 0x45, 0x52, 0x49, 0x41, 0x5f, 0x41, 0x43, 0x52, 0x4f, 0x53, 0x53, |
| 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x03, 0x2a, |
| 0x7c, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, |
| 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x23, 0x55, 0x53, 0x45, 0x52, |
| 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, |
| 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, |
| 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, |
| 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x4f, 0x52, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, |
| 0x1c, 0x0a, 0x18, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x4f, |
| 0x4e, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x41, 0x4e, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x94, 0x01, |
| 0x0a, 0x16, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, |
| 0x61, 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x45, 0x53, 0x53, |
| 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x52, 0x49, 0x54, 0x45, 0x52, 0x49, 0x41, 0x5f, 0x53, 0x43, 0x4f, |
| 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, |
| 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x52, |
| 0x49, 0x54, 0x45, 0x52, 0x49, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x49, 0x4e, 0x5f, 0x53, 0x41, |
| 0x4d, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x45, |
| 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x52, 0x49, 0x54, 0x45, 0x52, 0x49, 0x41, 0x5f, 0x57, |
| 0x49, 0x54, 0x48, 0x49, 0x4e, 0x5f, 0x53, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, |
| 0x4f, 0x4e, 0x10, 0x02, 0x2a, 0x88, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, |
| 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x43, |
| 0x4c, 0x55, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, |
| 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, |
| 0x1b, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, |
| 0x4f, 0x4e, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x4f, 0x52, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x1f, |
| 0x0a, 0x1b, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, |
| 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x41, 0x4e, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, |
| 0x64, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, |
| 0x53, 0x63, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x56, 0x45, 0x4e, 0x54, |
| 0x5f, 0x43, 0x52, 0x49, 0x54, 0x45, 0x52, 0x49, 0x41, 0x5f, 0x53, 0x43, 0x4f, 0x50, 0x49, 0x4e, |
| 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, |
| 0x24, 0x0a, 0x20, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x52, 0x49, 0x54, 0x45, 0x52, 0x49, |
| 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x49, 0x4e, 0x5f, 0x53, 0x41, 0x4d, 0x45, 0x5f, 0x45, 0x56, |
| 0x45, 0x4e, 0x54, 0x10, 0x01, 0x2a, 0x61, 0x0a, 0x16, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x45, 0x78, |
| 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, |
| 0x28, 0x0a, 0x24, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, |
| 0x4f, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, |
| 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, |
| 0x4e, 0x54, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x45, 0x52, |
| 0x4d, 0x41, 0x4e, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x2a, 0x81, 0x02, 0x0a, 0x0a, 0x4d, 0x65, 0x74, |
| 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x45, 0x54, 0x52, 0x49, |
| 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, |
| 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, |
| 0x45, 0x47, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, |
| 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, |
| 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x59, 0x50, 0x45, |
| 0x5f, 0x4d, 0x49, 0x4c, 0x4c, 0x49, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x05, 0x12, |
| 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x53, 0x10, |
| 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x53, 0x10, |
| 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, |
| 0x52, 0x44, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x52, |
| 0x52, 0x45, 0x4e, 0x43, 0x59, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, |
| 0x46, 0x45, 0x45, 0x54, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, |
| 0x49, 0x4c, 0x45, 0x53, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, |
| 0x45, 0x54, 0x45, 0x52, 0x53, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x59, 0x50, 0x45, 0x5f, |
| 0x4b, 0x49, 0x4c, 0x4f, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x10, 0x0d, 0x42, 0x7b, 0x0a, 0x21, |
| 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x74, 0x69, 0x63, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, |
| 0x61, 0x42, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x70, 0x69, 0x50, |
| 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 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, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x61, |
| 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x33, |
| } |
| |
| var ( |
| file_google_analytics_data_v1alpha_data_proto_rawDescOnce sync.Once |
| file_google_analytics_data_v1alpha_data_proto_rawDescData = file_google_analytics_data_v1alpha_data_proto_rawDesc |
| ) |
| |
| func file_google_analytics_data_v1alpha_data_proto_rawDescGZIP() []byte { |
| file_google_analytics_data_v1alpha_data_proto_rawDescOnce.Do(func() { |
| file_google_analytics_data_v1alpha_data_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_analytics_data_v1alpha_data_proto_rawDescData) |
| }) |
| return file_google_analytics_data_v1alpha_data_proto_rawDescData |
| } |
| |
| var file_google_analytics_data_v1alpha_data_proto_enumTypes = make([]protoimpl.EnumInfo, 9) |
| var file_google_analytics_data_v1alpha_data_proto_msgTypes = make([]protoimpl.MessageInfo, 58) |
| var file_google_analytics_data_v1alpha_data_proto_goTypes = []interface{}{ |
| (UserCriteriaScoping)(0), // 0: google.analytics.data.v1alpha.UserCriteriaScoping |
| (UserExclusionDuration)(0), // 1: google.analytics.data.v1alpha.UserExclusionDuration |
| (SessionCriteriaScoping)(0), // 2: google.analytics.data.v1alpha.SessionCriteriaScoping |
| (SessionExclusionDuration)(0), // 3: google.analytics.data.v1alpha.SessionExclusionDuration |
| (EventCriteriaScoping)(0), // 4: google.analytics.data.v1alpha.EventCriteriaScoping |
| (EventExclusionDuration)(0), // 5: google.analytics.data.v1alpha.EventExclusionDuration |
| (MetricType)(0), // 6: google.analytics.data.v1alpha.MetricType |
| (StringFilter_MatchType)(0), // 7: google.analytics.data.v1alpha.StringFilter.MatchType |
| (NumericFilter_Operation)(0), // 8: google.analytics.data.v1alpha.NumericFilter.Operation |
| (*DateRange)(nil), // 9: google.analytics.data.v1alpha.DateRange |
| (*Dimension)(nil), // 10: google.analytics.data.v1alpha.Dimension |
| (*DimensionExpression)(nil), // 11: google.analytics.data.v1alpha.DimensionExpression |
| (*FilterExpression)(nil), // 12: google.analytics.data.v1alpha.FilterExpression |
| (*FilterExpressionList)(nil), // 13: google.analytics.data.v1alpha.FilterExpressionList |
| (*Filter)(nil), // 14: google.analytics.data.v1alpha.Filter |
| (*StringFilter)(nil), // 15: google.analytics.data.v1alpha.StringFilter |
| (*InListFilter)(nil), // 16: google.analytics.data.v1alpha.InListFilter |
| (*NumericFilter)(nil), // 17: google.analytics.data.v1alpha.NumericFilter |
| (*BetweenFilter)(nil), // 18: google.analytics.data.v1alpha.BetweenFilter |
| (*NumericValue)(nil), // 19: google.analytics.data.v1alpha.NumericValue |
| (*DimensionHeader)(nil), // 20: google.analytics.data.v1alpha.DimensionHeader |
| (*MetricHeader)(nil), // 21: google.analytics.data.v1alpha.MetricHeader |
| (*Row)(nil), // 22: google.analytics.data.v1alpha.Row |
| (*DimensionValue)(nil), // 23: google.analytics.data.v1alpha.DimensionValue |
| (*MetricValue)(nil), // 24: google.analytics.data.v1alpha.MetricValue |
| (*PropertyQuota)(nil), // 25: google.analytics.data.v1alpha.PropertyQuota |
| (*QuotaStatus)(nil), // 26: google.analytics.data.v1alpha.QuotaStatus |
| (*FunnelBreakdown)(nil), // 27: google.analytics.data.v1alpha.FunnelBreakdown |
| (*FunnelNextAction)(nil), // 28: google.analytics.data.v1alpha.FunnelNextAction |
| (*Funnel)(nil), // 29: google.analytics.data.v1alpha.Funnel |
| (*FunnelStep)(nil), // 30: google.analytics.data.v1alpha.FunnelStep |
| (*FunnelSubReport)(nil), // 31: google.analytics.data.v1alpha.FunnelSubReport |
| (*UserSegment)(nil), // 32: google.analytics.data.v1alpha.UserSegment |
| (*UserSegmentCriteria)(nil), // 33: google.analytics.data.v1alpha.UserSegmentCriteria |
| (*UserSegmentConditionGroup)(nil), // 34: google.analytics.data.v1alpha.UserSegmentConditionGroup |
| (*UserSegmentSequenceGroup)(nil), // 35: google.analytics.data.v1alpha.UserSegmentSequenceGroup |
| (*UserSequenceStep)(nil), // 36: google.analytics.data.v1alpha.UserSequenceStep |
| (*UserSegmentExclusion)(nil), // 37: google.analytics.data.v1alpha.UserSegmentExclusion |
| (*SessionSegment)(nil), // 38: google.analytics.data.v1alpha.SessionSegment |
| (*SessionSegmentCriteria)(nil), // 39: google.analytics.data.v1alpha.SessionSegmentCriteria |
| (*SessionSegmentConditionGroup)(nil), // 40: google.analytics.data.v1alpha.SessionSegmentConditionGroup |
| (*SessionSegmentExclusion)(nil), // 41: google.analytics.data.v1alpha.SessionSegmentExclusion |
| (*EventSegment)(nil), // 42: google.analytics.data.v1alpha.EventSegment |
| (*EventSegmentCriteria)(nil), // 43: google.analytics.data.v1alpha.EventSegmentCriteria |
| (*EventSegmentConditionGroup)(nil), // 44: google.analytics.data.v1alpha.EventSegmentConditionGroup |
| (*EventSegmentExclusion)(nil), // 45: google.analytics.data.v1alpha.EventSegmentExclusion |
| (*Segment)(nil), // 46: google.analytics.data.v1alpha.Segment |
| (*SegmentFilterExpression)(nil), // 47: google.analytics.data.v1alpha.SegmentFilterExpression |
| (*SegmentFilterExpressionList)(nil), // 48: google.analytics.data.v1alpha.SegmentFilterExpressionList |
| (*SegmentFilter)(nil), // 49: google.analytics.data.v1alpha.SegmentFilter |
| (*SegmentFilterScoping)(nil), // 50: google.analytics.data.v1alpha.SegmentFilterScoping |
| (*SegmentEventFilter)(nil), // 51: google.analytics.data.v1alpha.SegmentEventFilter |
| (*SegmentParameterFilterExpression)(nil), // 52: google.analytics.data.v1alpha.SegmentParameterFilterExpression |
| (*SegmentParameterFilterExpressionList)(nil), // 53: google.analytics.data.v1alpha.SegmentParameterFilterExpressionList |
| (*SegmentParameterFilter)(nil), // 54: google.analytics.data.v1alpha.SegmentParameterFilter |
| (*SegmentParameterFilterScoping)(nil), // 55: google.analytics.data.v1alpha.SegmentParameterFilterScoping |
| (*FunnelFilterExpression)(nil), // 56: google.analytics.data.v1alpha.FunnelFilterExpression |
| (*FunnelFilterExpressionList)(nil), // 57: google.analytics.data.v1alpha.FunnelFilterExpressionList |
| (*FunnelFieldFilter)(nil), // 58: google.analytics.data.v1alpha.FunnelFieldFilter |
| (*FunnelEventFilter)(nil), // 59: google.analytics.data.v1alpha.FunnelEventFilter |
| (*FunnelParameterFilterExpression)(nil), // 60: google.analytics.data.v1alpha.FunnelParameterFilterExpression |
| (*FunnelParameterFilterExpressionList)(nil), // 61: google.analytics.data.v1alpha.FunnelParameterFilterExpressionList |
| (*FunnelParameterFilter)(nil), // 62: google.analytics.data.v1alpha.FunnelParameterFilter |
| (*FunnelResponseMetadata)(nil), // 63: google.analytics.data.v1alpha.FunnelResponseMetadata |
| (*SamplingMetadata)(nil), // 64: google.analytics.data.v1alpha.SamplingMetadata |
| (*DimensionExpression_CaseExpression)(nil), // 65: google.analytics.data.v1alpha.DimensionExpression.CaseExpression |
| (*DimensionExpression_ConcatenateExpression)(nil), // 66: google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression |
| (*durationpb.Duration)(nil), // 67: google.protobuf.Duration |
| } |
| var file_google_analytics_data_v1alpha_data_proto_depIdxs = []int32{ |
| 11, // 0: google.analytics.data.v1alpha.Dimension.dimension_expression:type_name -> google.analytics.data.v1alpha.DimensionExpression |
| 65, // 1: google.analytics.data.v1alpha.DimensionExpression.lower_case:type_name -> google.analytics.data.v1alpha.DimensionExpression.CaseExpression |
| 65, // 2: google.analytics.data.v1alpha.DimensionExpression.upper_case:type_name -> google.analytics.data.v1alpha.DimensionExpression.CaseExpression |
| 66, // 3: google.analytics.data.v1alpha.DimensionExpression.concatenate:type_name -> google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression |
| 13, // 4: google.analytics.data.v1alpha.FilterExpression.and_group:type_name -> google.analytics.data.v1alpha.FilterExpressionList |
| 13, // 5: google.analytics.data.v1alpha.FilterExpression.or_group:type_name -> google.analytics.data.v1alpha.FilterExpressionList |
| 12, // 6: google.analytics.data.v1alpha.FilterExpression.not_expression:type_name -> google.analytics.data.v1alpha.FilterExpression |
| 14, // 7: google.analytics.data.v1alpha.FilterExpression.filter:type_name -> google.analytics.data.v1alpha.Filter |
| 12, // 8: google.analytics.data.v1alpha.FilterExpressionList.expressions:type_name -> google.analytics.data.v1alpha.FilterExpression |
| 15, // 9: google.analytics.data.v1alpha.Filter.string_filter:type_name -> google.analytics.data.v1alpha.StringFilter |
| 16, // 10: google.analytics.data.v1alpha.Filter.in_list_filter:type_name -> google.analytics.data.v1alpha.InListFilter |
| 17, // 11: google.analytics.data.v1alpha.Filter.numeric_filter:type_name -> google.analytics.data.v1alpha.NumericFilter |
| 18, // 12: google.analytics.data.v1alpha.Filter.between_filter:type_name -> google.analytics.data.v1alpha.BetweenFilter |
| 7, // 13: google.analytics.data.v1alpha.StringFilter.match_type:type_name -> google.analytics.data.v1alpha.StringFilter.MatchType |
| 8, // 14: google.analytics.data.v1alpha.NumericFilter.operation:type_name -> google.analytics.data.v1alpha.NumericFilter.Operation |
| 19, // 15: google.analytics.data.v1alpha.NumericFilter.value:type_name -> google.analytics.data.v1alpha.NumericValue |
| 19, // 16: google.analytics.data.v1alpha.BetweenFilter.from_value:type_name -> google.analytics.data.v1alpha.NumericValue |
| 19, // 17: google.analytics.data.v1alpha.BetweenFilter.to_value:type_name -> google.analytics.data.v1alpha.NumericValue |
| 6, // 18: google.analytics.data.v1alpha.MetricHeader.type:type_name -> google.analytics.data.v1alpha.MetricType |
| 23, // 19: google.analytics.data.v1alpha.Row.dimension_values:type_name -> google.analytics.data.v1alpha.DimensionValue |
| 24, // 20: google.analytics.data.v1alpha.Row.metric_values:type_name -> google.analytics.data.v1alpha.MetricValue |
| 26, // 21: google.analytics.data.v1alpha.PropertyQuota.tokens_per_day:type_name -> google.analytics.data.v1alpha.QuotaStatus |
| 26, // 22: google.analytics.data.v1alpha.PropertyQuota.tokens_per_hour:type_name -> google.analytics.data.v1alpha.QuotaStatus |
| 26, // 23: google.analytics.data.v1alpha.PropertyQuota.concurrent_requests:type_name -> google.analytics.data.v1alpha.QuotaStatus |
| 26, // 24: google.analytics.data.v1alpha.PropertyQuota.server_errors_per_project_per_hour:type_name -> google.analytics.data.v1alpha.QuotaStatus |
| 26, // 25: google.analytics.data.v1alpha.PropertyQuota.potentially_thresholded_requests_per_hour:type_name -> google.analytics.data.v1alpha.QuotaStatus |
| 10, // 26: google.analytics.data.v1alpha.FunnelBreakdown.breakdown_dimension:type_name -> google.analytics.data.v1alpha.Dimension |
| 10, // 27: google.analytics.data.v1alpha.FunnelNextAction.next_action_dimension:type_name -> google.analytics.data.v1alpha.Dimension |
| 30, // 28: google.analytics.data.v1alpha.Funnel.steps:type_name -> google.analytics.data.v1alpha.FunnelStep |
| 67, // 29: google.analytics.data.v1alpha.FunnelStep.within_duration_from_prior_step:type_name -> google.protobuf.Duration |
| 56, // 30: google.analytics.data.v1alpha.FunnelStep.filter_expression:type_name -> google.analytics.data.v1alpha.FunnelFilterExpression |
| 20, // 31: google.analytics.data.v1alpha.FunnelSubReport.dimension_headers:type_name -> google.analytics.data.v1alpha.DimensionHeader |
| 21, // 32: google.analytics.data.v1alpha.FunnelSubReport.metric_headers:type_name -> google.analytics.data.v1alpha.MetricHeader |
| 22, // 33: google.analytics.data.v1alpha.FunnelSubReport.rows:type_name -> google.analytics.data.v1alpha.Row |
| 63, // 34: google.analytics.data.v1alpha.FunnelSubReport.metadata:type_name -> google.analytics.data.v1alpha.FunnelResponseMetadata |
| 33, // 35: google.analytics.data.v1alpha.UserSegment.user_inclusion_criteria:type_name -> google.analytics.data.v1alpha.UserSegmentCriteria |
| 37, // 36: google.analytics.data.v1alpha.UserSegment.exclusion:type_name -> google.analytics.data.v1alpha.UserSegmentExclusion |
| 34, // 37: google.analytics.data.v1alpha.UserSegmentCriteria.and_condition_groups:type_name -> google.analytics.data.v1alpha.UserSegmentConditionGroup |
| 35, // 38: google.analytics.data.v1alpha.UserSegmentCriteria.and_sequence_groups:type_name -> google.analytics.data.v1alpha.UserSegmentSequenceGroup |
| 0, // 39: google.analytics.data.v1alpha.UserSegmentConditionGroup.condition_scoping:type_name -> google.analytics.data.v1alpha.UserCriteriaScoping |
| 47, // 40: google.analytics.data.v1alpha.UserSegmentConditionGroup.segment_filter_expression:type_name -> google.analytics.data.v1alpha.SegmentFilterExpression |
| 0, // 41: google.analytics.data.v1alpha.UserSegmentSequenceGroup.sequence_scoping:type_name -> google.analytics.data.v1alpha.UserCriteriaScoping |
| 67, // 42: google.analytics.data.v1alpha.UserSegmentSequenceGroup.sequence_maximum_duration:type_name -> google.protobuf.Duration |
| 36, // 43: google.analytics.data.v1alpha.UserSegmentSequenceGroup.user_sequence_steps:type_name -> google.analytics.data.v1alpha.UserSequenceStep |
| 0, // 44: google.analytics.data.v1alpha.UserSequenceStep.step_scoping:type_name -> google.analytics.data.v1alpha.UserCriteriaScoping |
| 47, // 45: google.analytics.data.v1alpha.UserSequenceStep.segment_filter_expression:type_name -> google.analytics.data.v1alpha.SegmentFilterExpression |
| 1, // 46: google.analytics.data.v1alpha.UserSegmentExclusion.user_exclusion_duration:type_name -> google.analytics.data.v1alpha.UserExclusionDuration |
| 33, // 47: google.analytics.data.v1alpha.UserSegmentExclusion.user_exclusion_criteria:type_name -> google.analytics.data.v1alpha.UserSegmentCriteria |
| 39, // 48: google.analytics.data.v1alpha.SessionSegment.session_inclusion_criteria:type_name -> google.analytics.data.v1alpha.SessionSegmentCriteria |
| 41, // 49: google.analytics.data.v1alpha.SessionSegment.exclusion:type_name -> google.analytics.data.v1alpha.SessionSegmentExclusion |
| 40, // 50: google.analytics.data.v1alpha.SessionSegmentCriteria.and_condition_groups:type_name -> google.analytics.data.v1alpha.SessionSegmentConditionGroup |
| 2, // 51: google.analytics.data.v1alpha.SessionSegmentConditionGroup.condition_scoping:type_name -> google.analytics.data.v1alpha.SessionCriteriaScoping |
| 47, // 52: google.analytics.data.v1alpha.SessionSegmentConditionGroup.segment_filter_expression:type_name -> google.analytics.data.v1alpha.SegmentFilterExpression |
| 3, // 53: google.analytics.data.v1alpha.SessionSegmentExclusion.session_exclusion_duration:type_name -> google.analytics.data.v1alpha.SessionExclusionDuration |
| 39, // 54: google.analytics.data.v1alpha.SessionSegmentExclusion.session_exclusion_criteria:type_name -> google.analytics.data.v1alpha.SessionSegmentCriteria |
| 43, // 55: google.analytics.data.v1alpha.EventSegment.event_inclusion_criteria:type_name -> google.analytics.data.v1alpha.EventSegmentCriteria |
| 45, // 56: google.analytics.data.v1alpha.EventSegment.exclusion:type_name -> google.analytics.data.v1alpha.EventSegmentExclusion |
| 44, // 57: google.analytics.data.v1alpha.EventSegmentCriteria.and_condition_groups:type_name -> google.analytics.data.v1alpha.EventSegmentConditionGroup |
| 4, // 58: google.analytics.data.v1alpha.EventSegmentConditionGroup.condition_scoping:type_name -> google.analytics.data.v1alpha.EventCriteriaScoping |
| 47, // 59: google.analytics.data.v1alpha.EventSegmentConditionGroup.segment_filter_expression:type_name -> google.analytics.data.v1alpha.SegmentFilterExpression |
| 5, // 60: google.analytics.data.v1alpha.EventSegmentExclusion.event_exclusion_duration:type_name -> google.analytics.data.v1alpha.EventExclusionDuration |
| 43, // 61: google.analytics.data.v1alpha.EventSegmentExclusion.event_exclusion_criteria:type_name -> google.analytics.data.v1alpha.EventSegmentCriteria |
| 32, // 62: google.analytics.data.v1alpha.Segment.user_segment:type_name -> google.analytics.data.v1alpha.UserSegment |
| 38, // 63: google.analytics.data.v1alpha.Segment.session_segment:type_name -> google.analytics.data.v1alpha.SessionSegment |
| 42, // 64: google.analytics.data.v1alpha.Segment.event_segment:type_name -> google.analytics.data.v1alpha.EventSegment |
| 48, // 65: google.analytics.data.v1alpha.SegmentFilterExpression.and_group:type_name -> google.analytics.data.v1alpha.SegmentFilterExpressionList |
| 48, // 66: google.analytics.data.v1alpha.SegmentFilterExpression.or_group:type_name -> google.analytics.data.v1alpha.SegmentFilterExpressionList |
| 47, // 67: google.analytics.data.v1alpha.SegmentFilterExpression.not_expression:type_name -> google.analytics.data.v1alpha.SegmentFilterExpression |
| 49, // 68: google.analytics.data.v1alpha.SegmentFilterExpression.segment_filter:type_name -> google.analytics.data.v1alpha.SegmentFilter |
| 51, // 69: google.analytics.data.v1alpha.SegmentFilterExpression.segment_event_filter:type_name -> google.analytics.data.v1alpha.SegmentEventFilter |
| 47, // 70: google.analytics.data.v1alpha.SegmentFilterExpressionList.expressions:type_name -> google.analytics.data.v1alpha.SegmentFilterExpression |
| 15, // 71: google.analytics.data.v1alpha.SegmentFilter.string_filter:type_name -> google.analytics.data.v1alpha.StringFilter |
| 16, // 72: google.analytics.data.v1alpha.SegmentFilter.in_list_filter:type_name -> google.analytics.data.v1alpha.InListFilter |
| 17, // 73: google.analytics.data.v1alpha.SegmentFilter.numeric_filter:type_name -> google.analytics.data.v1alpha.NumericFilter |
| 18, // 74: google.analytics.data.v1alpha.SegmentFilter.between_filter:type_name -> google.analytics.data.v1alpha.BetweenFilter |
| 50, // 75: google.analytics.data.v1alpha.SegmentFilter.filter_scoping:type_name -> google.analytics.data.v1alpha.SegmentFilterScoping |
| 52, // 76: google.analytics.data.v1alpha.SegmentEventFilter.segment_parameter_filter_expression:type_name -> google.analytics.data.v1alpha.SegmentParameterFilterExpression |
| 53, // 77: google.analytics.data.v1alpha.SegmentParameterFilterExpression.and_group:type_name -> google.analytics.data.v1alpha.SegmentParameterFilterExpressionList |
| 53, // 78: google.analytics.data.v1alpha.SegmentParameterFilterExpression.or_group:type_name -> google.analytics.data.v1alpha.SegmentParameterFilterExpressionList |
| 52, // 79: google.analytics.data.v1alpha.SegmentParameterFilterExpression.not_expression:type_name -> google.analytics.data.v1alpha.SegmentParameterFilterExpression |
| 54, // 80: google.analytics.data.v1alpha.SegmentParameterFilterExpression.segment_parameter_filter:type_name -> google.analytics.data.v1alpha.SegmentParameterFilter |
| 52, // 81: google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.expressions:type_name -> google.analytics.data.v1alpha.SegmentParameterFilterExpression |
| 15, // 82: google.analytics.data.v1alpha.SegmentParameterFilter.string_filter:type_name -> google.analytics.data.v1alpha.StringFilter |
| 16, // 83: google.analytics.data.v1alpha.SegmentParameterFilter.in_list_filter:type_name -> google.analytics.data.v1alpha.InListFilter |
| 17, // 84: google.analytics.data.v1alpha.SegmentParameterFilter.numeric_filter:type_name -> google.analytics.data.v1alpha.NumericFilter |
| 18, // 85: google.analytics.data.v1alpha.SegmentParameterFilter.between_filter:type_name -> google.analytics.data.v1alpha.BetweenFilter |
| 55, // 86: google.analytics.data.v1alpha.SegmentParameterFilter.filter_scoping:type_name -> google.analytics.data.v1alpha.SegmentParameterFilterScoping |
| 57, // 87: google.analytics.data.v1alpha.FunnelFilterExpression.and_group:type_name -> google.analytics.data.v1alpha.FunnelFilterExpressionList |
| 57, // 88: google.analytics.data.v1alpha.FunnelFilterExpression.or_group:type_name -> google.analytics.data.v1alpha.FunnelFilterExpressionList |
| 56, // 89: google.analytics.data.v1alpha.FunnelFilterExpression.not_expression:type_name -> google.analytics.data.v1alpha.FunnelFilterExpression |
| 58, // 90: google.analytics.data.v1alpha.FunnelFilterExpression.funnel_field_filter:type_name -> google.analytics.data.v1alpha.FunnelFieldFilter |
| 59, // 91: google.analytics.data.v1alpha.FunnelFilterExpression.funnel_event_filter:type_name -> google.analytics.data.v1alpha.FunnelEventFilter |
| 56, // 92: google.analytics.data.v1alpha.FunnelFilterExpressionList.expressions:type_name -> google.analytics.data.v1alpha.FunnelFilterExpression |
| 15, // 93: google.analytics.data.v1alpha.FunnelFieldFilter.string_filter:type_name -> google.analytics.data.v1alpha.StringFilter |
| 16, // 94: google.analytics.data.v1alpha.FunnelFieldFilter.in_list_filter:type_name -> google.analytics.data.v1alpha.InListFilter |
| 17, // 95: google.analytics.data.v1alpha.FunnelFieldFilter.numeric_filter:type_name -> google.analytics.data.v1alpha.NumericFilter |
| 18, // 96: google.analytics.data.v1alpha.FunnelFieldFilter.between_filter:type_name -> google.analytics.data.v1alpha.BetweenFilter |
| 60, // 97: google.analytics.data.v1alpha.FunnelEventFilter.funnel_parameter_filter_expression:type_name -> google.analytics.data.v1alpha.FunnelParameterFilterExpression |
| 61, // 98: google.analytics.data.v1alpha.FunnelParameterFilterExpression.and_group:type_name -> google.analytics.data.v1alpha.FunnelParameterFilterExpressionList |
| 61, // 99: google.analytics.data.v1alpha.FunnelParameterFilterExpression.or_group:type_name -> google.analytics.data.v1alpha.FunnelParameterFilterExpressionList |
| 60, // 100: google.analytics.data.v1alpha.FunnelParameterFilterExpression.not_expression:type_name -> google.analytics.data.v1alpha.FunnelParameterFilterExpression |
| 62, // 101: google.analytics.data.v1alpha.FunnelParameterFilterExpression.funnel_parameter_filter:type_name -> google.analytics.data.v1alpha.FunnelParameterFilter |
| 60, // 102: google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.expressions:type_name -> google.analytics.data.v1alpha.FunnelParameterFilterExpression |
| 15, // 103: google.analytics.data.v1alpha.FunnelParameterFilter.string_filter:type_name -> google.analytics.data.v1alpha.StringFilter |
| 16, // 104: google.analytics.data.v1alpha.FunnelParameterFilter.in_list_filter:type_name -> google.analytics.data.v1alpha.InListFilter |
| 17, // 105: google.analytics.data.v1alpha.FunnelParameterFilter.numeric_filter:type_name -> google.analytics.data.v1alpha.NumericFilter |
| 18, // 106: google.analytics.data.v1alpha.FunnelParameterFilter.between_filter:type_name -> google.analytics.data.v1alpha.BetweenFilter |
| 64, // 107: google.analytics.data.v1alpha.FunnelResponseMetadata.sampling_metadatas:type_name -> google.analytics.data.v1alpha.SamplingMetadata |
| 108, // [108:108] is the sub-list for method output_type |
| 108, // [108:108] is the sub-list for method input_type |
| 108, // [108:108] is the sub-list for extension type_name |
| 108, // [108:108] is the sub-list for extension extendee |
| 0, // [0:108] is the sub-list for field type_name |
| } |
| |
| func init() { file_google_analytics_data_v1alpha_data_proto_init() } |
| func file_google_analytics_data_v1alpha_data_proto_init() { |
| if File_google_analytics_data_v1alpha_data_proto != nil { |
| return |
| } |
| if !protoimpl.UnsafeEnabled { |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DateRange); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Dimension); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DimensionExpression); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FilterExpression); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FilterExpressionList); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Filter); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*StringFilter); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*InListFilter); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*NumericFilter); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BetweenFilter); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*NumericValue); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DimensionHeader); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*MetricHeader); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Row); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DimensionValue); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*MetricValue); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*PropertyQuota); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*QuotaStatus); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FunnelBreakdown); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FunnelNextAction); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Funnel); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FunnelStep); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FunnelSubReport); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UserSegment); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UserSegmentCriteria); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UserSegmentConditionGroup); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UserSegmentSequenceGroup); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UserSequenceStep); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UserSegmentExclusion); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SessionSegment); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SessionSegmentCriteria); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SessionSegmentConditionGroup); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SessionSegmentExclusion); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*EventSegment); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*EventSegmentCriteria); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*EventSegmentConditionGroup); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*EventSegmentExclusion); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Segment); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SegmentFilterExpression); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SegmentFilterExpressionList); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SegmentFilter); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SegmentFilterScoping); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SegmentEventFilter); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SegmentParameterFilterExpression); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SegmentParameterFilterExpressionList); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SegmentParameterFilter); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SegmentParameterFilterScoping); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FunnelFilterExpression); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FunnelFilterExpressionList); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FunnelFieldFilter); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FunnelEventFilter); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FunnelParameterFilterExpression); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FunnelParameterFilterExpressionList); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FunnelParameterFilter); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FunnelResponseMetadata); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SamplingMetadata); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DimensionExpression_CaseExpression); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DimensionExpression_ConcatenateExpression); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[2].OneofWrappers = []interface{}{ |
| (*DimensionExpression_LowerCase)(nil), |
| (*DimensionExpression_UpperCase)(nil), |
| (*DimensionExpression_Concatenate)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[3].OneofWrappers = []interface{}{ |
| (*FilterExpression_AndGroup)(nil), |
| (*FilterExpression_OrGroup)(nil), |
| (*FilterExpression_NotExpression)(nil), |
| (*FilterExpression_Filter)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[5].OneofWrappers = []interface{}{ |
| (*Filter_StringFilter)(nil), |
| (*Filter_InListFilter)(nil), |
| (*Filter_NumericFilter)(nil), |
| (*Filter_BetweenFilter)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[10].OneofWrappers = []interface{}{ |
| (*NumericValue_Int64Value)(nil), |
| (*NumericValue_DoubleValue)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[14].OneofWrappers = []interface{}{ |
| (*DimensionValue_Value)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[15].OneofWrappers = []interface{}{ |
| (*MetricValue_Value)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[18].OneofWrappers = []interface{}{} |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[19].OneofWrappers = []interface{}{} |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[21].OneofWrappers = []interface{}{} |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[37].OneofWrappers = []interface{}{ |
| (*Segment_UserSegment)(nil), |
| (*Segment_SessionSegment)(nil), |
| (*Segment_EventSegment)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[38].OneofWrappers = []interface{}{ |
| (*SegmentFilterExpression_AndGroup)(nil), |
| (*SegmentFilterExpression_OrGroup)(nil), |
| (*SegmentFilterExpression_NotExpression)(nil), |
| (*SegmentFilterExpression_SegmentFilter)(nil), |
| (*SegmentFilterExpression_SegmentEventFilter)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[40].OneofWrappers = []interface{}{ |
| (*SegmentFilter_StringFilter)(nil), |
| (*SegmentFilter_InListFilter)(nil), |
| (*SegmentFilter_NumericFilter)(nil), |
| (*SegmentFilter_BetweenFilter)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[41].OneofWrappers = []interface{}{} |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[42].OneofWrappers = []interface{}{} |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[43].OneofWrappers = []interface{}{ |
| (*SegmentParameterFilterExpression_AndGroup)(nil), |
| (*SegmentParameterFilterExpression_OrGroup)(nil), |
| (*SegmentParameterFilterExpression_NotExpression)(nil), |
| (*SegmentParameterFilterExpression_SegmentParameterFilter)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[45].OneofWrappers = []interface{}{ |
| (*SegmentParameterFilter_EventParameterName)(nil), |
| (*SegmentParameterFilter_ItemParameterName)(nil), |
| (*SegmentParameterFilter_StringFilter)(nil), |
| (*SegmentParameterFilter_InListFilter)(nil), |
| (*SegmentParameterFilter_NumericFilter)(nil), |
| (*SegmentParameterFilter_BetweenFilter)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[46].OneofWrappers = []interface{}{} |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[47].OneofWrappers = []interface{}{ |
| (*FunnelFilterExpression_AndGroup)(nil), |
| (*FunnelFilterExpression_OrGroup)(nil), |
| (*FunnelFilterExpression_NotExpression)(nil), |
| (*FunnelFilterExpression_FunnelFieldFilter)(nil), |
| (*FunnelFilterExpression_FunnelEventFilter)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[49].OneofWrappers = []interface{}{ |
| (*FunnelFieldFilter_StringFilter)(nil), |
| (*FunnelFieldFilter_InListFilter)(nil), |
| (*FunnelFieldFilter_NumericFilter)(nil), |
| (*FunnelFieldFilter_BetweenFilter)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[50].OneofWrappers = []interface{}{} |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[51].OneofWrappers = []interface{}{ |
| (*FunnelParameterFilterExpression_AndGroup)(nil), |
| (*FunnelParameterFilterExpression_OrGroup)(nil), |
| (*FunnelParameterFilterExpression_NotExpression)(nil), |
| (*FunnelParameterFilterExpression_FunnelParameterFilter)(nil), |
| } |
| file_google_analytics_data_v1alpha_data_proto_msgTypes[53].OneofWrappers = []interface{}{ |
| (*FunnelParameterFilter_EventParameterName)(nil), |
| (*FunnelParameterFilter_ItemParameterName)(nil), |
| (*FunnelParameterFilter_StringFilter)(nil), |
| (*FunnelParameterFilter_InListFilter)(nil), |
| (*FunnelParameterFilter_NumericFilter)(nil), |
| (*FunnelParameterFilter_BetweenFilter)(nil), |
| } |
| type x struct{} |
| out := protoimpl.TypeBuilder{ |
| File: protoimpl.DescBuilder{ |
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
| RawDescriptor: file_google_analytics_data_v1alpha_data_proto_rawDesc, |
| NumEnums: 9, |
| NumMessages: 58, |
| NumExtensions: 0, |
| NumServices: 0, |
| }, |
| GoTypes: file_google_analytics_data_v1alpha_data_proto_goTypes, |
| DependencyIndexes: file_google_analytics_data_v1alpha_data_proto_depIdxs, |
| EnumInfos: file_google_analytics_data_v1alpha_data_proto_enumTypes, |
| MessageInfos: file_google_analytics_data_v1alpha_data_proto_msgTypes, |
| }.Build() |
| File_google_analytics_data_v1alpha_data_proto = out.File |
| file_google_analytics_data_v1alpha_data_proto_rawDesc = nil |
| file_google_analytics_data_v1alpha_data_proto_goTypes = nil |
| file_google_analytics_data_v1alpha_data_proto_depIdxs = nil |
| } |