// 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
}
