// Copyright 2025 Antrea Authors
//
// 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.33.0
// 	protoc        v5.26.0
// source: pkg/apis/flow/v1alpha1/flow.proto

package v1alpha1

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
)

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)
)

type FlowEndReason int32

const (
	FlowEndReason_FLOW_END_REASON_UNSPECIFIED       FlowEndReason = 0
	FlowEndReason_FLOW_END_REASON_IDLE_TIMEOUT      FlowEndReason = 1
	FlowEndReason_FLOW_END_REASON_ACTIVE_TIMEOUT    FlowEndReason = 2
	FlowEndReason_FLOW_END_REASON_END_OF_FLOW       FlowEndReason = 3
	FlowEndReason_FLOW_END_REASON_FORCED_END        FlowEndReason = 4
	FlowEndReason_FLOW_END_REASON_LACK_OF_RESOURCES FlowEndReason = 5
)

// Enum value maps for FlowEndReason.
var (
	FlowEndReason_name = map[int32]string{
		0: "FLOW_END_REASON_UNSPECIFIED",
		1: "FLOW_END_REASON_IDLE_TIMEOUT",
		2: "FLOW_END_REASON_ACTIVE_TIMEOUT",
		3: "FLOW_END_REASON_END_OF_FLOW",
		4: "FLOW_END_REASON_FORCED_END",
		5: "FLOW_END_REASON_LACK_OF_RESOURCES",
	}
	FlowEndReason_value = map[string]int32{
		"FLOW_END_REASON_UNSPECIFIED":       0,
		"FLOW_END_REASON_IDLE_TIMEOUT":      1,
		"FLOW_END_REASON_ACTIVE_TIMEOUT":    2,
		"FLOW_END_REASON_END_OF_FLOW":       3,
		"FLOW_END_REASON_FORCED_END":        4,
		"FLOW_END_REASON_LACK_OF_RESOURCES": 5,
	}
)

func (x FlowEndReason) Enum() *FlowEndReason {
	p := new(FlowEndReason)
	*p = x
	return p
}

func (x FlowEndReason) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (FlowEndReason) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes[0].Descriptor()
}

func (FlowEndReason) Type() protoreflect.EnumType {
	return &file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes[0]
}

func (x FlowEndReason) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use FlowEndReason.Descriptor instead.
func (FlowEndReason) EnumDescriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{0}
}

type IPVersion int32

const (
	IPVersion_IP_VERSION_UNSPECIFIED IPVersion = 0
	IPVersion_IP_VERSION_4           IPVersion = 4
	IPVersion_IP_VERSION_6           IPVersion = 6
)

// Enum value maps for IPVersion.
var (
	IPVersion_name = map[int32]string{
		0: "IP_VERSION_UNSPECIFIED",
		4: "IP_VERSION_4",
		6: "IP_VERSION_6",
	}
	IPVersion_value = map[string]int32{
		"IP_VERSION_UNSPECIFIED": 0,
		"IP_VERSION_4":           4,
		"IP_VERSION_6":           6,
	}
)

func (x IPVersion) Enum() *IPVersion {
	p := new(IPVersion)
	*p = x
	return p
}

func (x IPVersion) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (IPVersion) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes[1].Descriptor()
}

func (IPVersion) Type() protoreflect.EnumType {
	return &file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes[1]
}

func (x IPVersion) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use IPVersion.Descriptor instead.
func (IPVersion) EnumDescriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{1}
}

type FlowType int32

const (
	FlowType_FLOW_TYPE_UNSPECIFIED   FlowType = 0
	FlowType_FLOW_TYPE_INTRA_NODE    FlowType = 1
	FlowType_FLOW_TYPE_INTER_NODE    FlowType = 2
	FlowType_FLOW_TYPE_TO_EXTERNAL   FlowType = 3
	FlowType_FLOW_TYPE_FROM_EXTERNAL FlowType = 4
)

// Enum value maps for FlowType.
var (
	FlowType_name = map[int32]string{
		0: "FLOW_TYPE_UNSPECIFIED",
		1: "FLOW_TYPE_INTRA_NODE",
		2: "FLOW_TYPE_INTER_NODE",
		3: "FLOW_TYPE_TO_EXTERNAL",
		4: "FLOW_TYPE_FROM_EXTERNAL",
	}
	FlowType_value = map[string]int32{
		"FLOW_TYPE_UNSPECIFIED":   0,
		"FLOW_TYPE_INTRA_NODE":    1,
		"FLOW_TYPE_INTER_NODE":    2,
		"FLOW_TYPE_TO_EXTERNAL":   3,
		"FLOW_TYPE_FROM_EXTERNAL": 4,
	}
)

func (x FlowType) Enum() *FlowType {
	p := new(FlowType)
	*p = x
	return p
}

func (x FlowType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (FlowType) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes[2].Descriptor()
}

func (FlowType) Type() protoreflect.EnumType {
	return &file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes[2]
}

func (x FlowType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use FlowType.Descriptor instead.
func (FlowType) EnumDescriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{2}
}

type NetworkPolicyType int32

const (
	NetworkPolicyType_NETWORK_POLICY_TYPE_UNSPECIFIED NetworkPolicyType = 0
	NetworkPolicyType_NETWORK_POLICY_TYPE_K8S         NetworkPolicyType = 1
	NetworkPolicyType_NETWORK_POLICY_TYPE_ANP         NetworkPolicyType = 2
	NetworkPolicyType_NETWORK_POLICY_TYPE_ACNP        NetworkPolicyType = 3
)

// Enum value maps for NetworkPolicyType.
var (
	NetworkPolicyType_name = map[int32]string{
		0: "NETWORK_POLICY_TYPE_UNSPECIFIED",
		1: "NETWORK_POLICY_TYPE_K8S",
		2: "NETWORK_POLICY_TYPE_ANP",
		3: "NETWORK_POLICY_TYPE_ACNP",
	}
	NetworkPolicyType_value = map[string]int32{
		"NETWORK_POLICY_TYPE_UNSPECIFIED": 0,
		"NETWORK_POLICY_TYPE_K8S":         1,
		"NETWORK_POLICY_TYPE_ANP":         2,
		"NETWORK_POLICY_TYPE_ACNP":        3,
	}
)

func (x NetworkPolicyType) Enum() *NetworkPolicyType {
	p := new(NetworkPolicyType)
	*p = x
	return p
}

func (x NetworkPolicyType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (NetworkPolicyType) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes[3].Descriptor()
}

func (NetworkPolicyType) Type() protoreflect.EnumType {
	return &file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes[3]
}

func (x NetworkPolicyType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use NetworkPolicyType.Descriptor instead.
func (NetworkPolicyType) EnumDescriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{3}
}

type NetworkPolicyRuleAction int32

const (
	NetworkPolicyRuleAction_NETWORK_POLICY_RULE_ACTION_NO_ACTION NetworkPolicyRuleAction = 0
	NetworkPolicyRuleAction_NETWORK_POLICY_RULE_ACTION_ALLOW     NetworkPolicyRuleAction = 1
	NetworkPolicyRuleAction_NETWORK_POLICY_RULE_ACTION_DROP      NetworkPolicyRuleAction = 2
	NetworkPolicyRuleAction_NETWORK_POLICY_RULE_ACTION_REJECT    NetworkPolicyRuleAction = 3
)

// Enum value maps for NetworkPolicyRuleAction.
var (
	NetworkPolicyRuleAction_name = map[int32]string{
		0: "NETWORK_POLICY_RULE_ACTION_NO_ACTION",
		1: "NETWORK_POLICY_RULE_ACTION_ALLOW",
		2: "NETWORK_POLICY_RULE_ACTION_DROP",
		3: "NETWORK_POLICY_RULE_ACTION_REJECT",
	}
	NetworkPolicyRuleAction_value = map[string]int32{
		"NETWORK_POLICY_RULE_ACTION_NO_ACTION": 0,
		"NETWORK_POLICY_RULE_ACTION_ALLOW":     1,
		"NETWORK_POLICY_RULE_ACTION_DROP":      2,
		"NETWORK_POLICY_RULE_ACTION_REJECT":    3,
	}
)

func (x NetworkPolicyRuleAction) Enum() *NetworkPolicyRuleAction {
	p := new(NetworkPolicyRuleAction)
	*p = x
	return p
}

func (x NetworkPolicyRuleAction) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (NetworkPolicyRuleAction) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes[4].Descriptor()
}

func (NetworkPolicyRuleAction) Type() protoreflect.EnumType {
	return &file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes[4]
}

func (x NetworkPolicyRuleAction) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use NetworkPolicyRuleAction.Descriptor instead.
func (NetworkPolicyRuleAction) EnumDescriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{4}
}

type FlowDirection int32

const (
	FlowDirection_FLOW_DIRECTION_INGRESS FlowDirection = 0
	FlowDirection_FLOW_DIRECTION_EGRESS  FlowDirection = 1
	FlowDirection_FLOW_DIRECTION_UNKNOWN FlowDirection = 255
)

// Enum value maps for FlowDirection.
var (
	FlowDirection_name = map[int32]string{
		0:   "FLOW_DIRECTION_INGRESS",
		1:   "FLOW_DIRECTION_EGRESS",
		255: "FLOW_DIRECTION_UNKNOWN",
	}
	FlowDirection_value = map[string]int32{
		"FLOW_DIRECTION_INGRESS": 0,
		"FLOW_DIRECTION_EGRESS":  1,
		"FLOW_DIRECTION_UNKNOWN": 255,
	}
)

func (x FlowDirection) Enum() *FlowDirection {
	p := new(FlowDirection)
	*p = x
	return p
}

func (x FlowDirection) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (FlowDirection) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes[5].Descriptor()
}

func (FlowDirection) Type() protoreflect.EnumType {
	return &file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes[5]
}

func (x FlowDirection) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use FlowDirection.Descriptor instead.
func (FlowDirection) EnumDescriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{5}
}

type IPFIX struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ExportTime          *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=export_time,json=exportTime,proto3" json:"export_time,omitempty"`
	SequenceNumber      uint32                 `protobuf:"varint,2,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"`
	ObservationDomainId uint32                 `protobuf:"varint,3,opt,name=observation_domain_id,json=observationDomainId,proto3" json:"observation_domain_id,omitempty"`
	ExporterIp          string                 `protobuf:"bytes,4,opt,name=exporter_ip,json=exporterIp,proto3" json:"exporter_ip,omitempty"`
}

func (x *IPFIX) Reset() {
	*x = IPFIX{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IPFIX) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IPFIX) ProtoMessage() {}

func (x *IPFIX) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_flow_v1alpha1_flow_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 IPFIX.ProtoReflect.Descriptor instead.
func (*IPFIX) Descriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{0}
}

func (x *IPFIX) GetExportTime() *timestamppb.Timestamp {
	if x != nil {
		return x.ExportTime
	}
	return nil
}

func (x *IPFIX) GetSequenceNumber() uint32 {
	if x != nil {
		return x.SequenceNumber
	}
	return 0
}

func (x *IPFIX) GetObservationDomainId() uint32 {
	if x != nil {
		return x.ObservationDomainId
	}
	return 0
}

func (x *IPFIX) GetExporterIp() string {
	if x != nil {
		return x.ExporterIp
	}
	return ""
}

type IP struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Version     IPVersion `protobuf:"varint,1,opt,name=version,proto3,enum=antrea_io.antrea.pkg.apis.flow.v1alpha1.IPVersion" json:"version,omitempty"`
	Source      []byte    `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"`
	Destination []byte    `protobuf:"bytes,3,opt,name=destination,proto3" json:"destination,omitempty"`
}

func (x *IP) Reset() {
	*x = IP{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IP) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IP) ProtoMessage() {}

func (x *IP) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_flow_v1alpha1_flow_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 IP.ProtoReflect.Descriptor instead.
func (*IP) Descriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{1}
}

func (x *IP) GetVersion() IPVersion {
	if x != nil {
		return x.Version
	}
	return IPVersion_IP_VERSION_UNSPECIFIED
}

func (x *IP) GetSource() []byte {
	if x != nil {
		return x.Source
	}
	return nil
}

func (x *IP) GetDestination() []byte {
	if x != nil {
		return x.Destination
	}
	return nil
}

type TCP struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Intentionally using "state_name" for the field name. In the future, we may
	// switch to a "state" field of type enum.
	StateName string `protobuf:"bytes,1,opt,name=state_name,json=stateName,proto3" json:"state_name,omitempty"`
}

func (x *TCP) Reset() {
	*x = TCP{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TCP) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TCP) ProtoMessage() {}

func (x *TCP) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_flow_v1alpha1_flow_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 TCP.ProtoReflect.Descriptor instead.
func (*TCP) Descriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{2}
}

func (x *TCP) GetStateName() string {
	if x != nil {
		return x.StateName
	}
	return ""
}

type Transport struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ProtocolNumber  uint32 `protobuf:"varint,1,opt,name=protocol_number,json=protocolNumber,proto3" json:"protocol_number,omitempty"`
	SourcePort      uint32 `protobuf:"varint,2,opt,name=source_port,json=sourcePort,proto3" json:"source_port,omitempty"`
	DestinationPort uint32 `protobuf:"varint,3,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"`
	// Types that are assignable to Protocol:
	//
	//	*Transport_TCP
	Protocol isTransport_Protocol `protobuf_oneof:"protocol"`
}

func (x *Transport) Reset() {
	*x = Transport{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Transport) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Transport) ProtoMessage() {}

func (x *Transport) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_flow_v1alpha1_flow_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 Transport.ProtoReflect.Descriptor instead.
func (*Transport) Descriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{3}
}

func (x *Transport) GetProtocolNumber() uint32 {
	if x != nil {
		return x.ProtocolNumber
	}
	return 0
}

func (x *Transport) GetSourcePort() uint32 {
	if x != nil {
		return x.SourcePort
	}
	return 0
}

func (x *Transport) GetDestinationPort() uint32 {
	if x != nil {
		return x.DestinationPort
	}
	return 0
}

func (m *Transport) GetProtocol() isTransport_Protocol {
	if m != nil {
		return m.Protocol
	}
	return nil
}

func (x *Transport) GetTCP() *TCP {
	if x, ok := x.GetProtocol().(*Transport_TCP); ok {
		return x.TCP
	}
	return nil
}

type isTransport_Protocol interface {
	isTransport_Protocol()
}

type Transport_TCP struct {
	TCP *TCP `protobuf:"bytes,4,opt,name=TCP,proto3,oneof"`
}

func (*Transport_TCP) isTransport_Protocol() {}

type Stats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PacketTotalCount uint64 `protobuf:"varint,1,opt,name=packet_total_count,json=packetTotalCount,proto3" json:"packet_total_count,omitempty"`
	PacketDeltaCount uint64 `protobuf:"varint,2,opt,name=packet_delta_count,json=packetDeltaCount,proto3" json:"packet_delta_count,omitempty"`
	OctetTotalCount  uint64 `protobuf:"varint,3,opt,name=octet_total_count,json=octetTotalCount,proto3" json:"octet_total_count,omitempty"`
	OctetDeltaCount  uint64 `protobuf:"varint,4,opt,name=octet_delta_count,json=octetDeltaCount,proto3" json:"octet_delta_count,omitempty"`
}

func (x *Stats) Reset() {
	*x = Stats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Stats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Stats) ProtoMessage() {}

func (x *Stats) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_flow_v1alpha1_flow_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 Stats.ProtoReflect.Descriptor instead.
func (*Stats) Descriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{4}
}

func (x *Stats) GetPacketTotalCount() uint64 {
	if x != nil {
		return x.PacketTotalCount
	}
	return 0
}

func (x *Stats) GetPacketDeltaCount() uint64 {
	if x != nil {
		return x.PacketDeltaCount
	}
	return 0
}

func (x *Stats) GetOctetTotalCount() uint64 {
	if x != nil {
		return x.OctetTotalCount
	}
	return 0
}

func (x *Stats) GetOctetDeltaCount() uint64 {
	if x != nil {
		return x.OctetDeltaCount
	}
	return 0
}

type Labels struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// By wrapping the map in a Protobuf message, we can distinguish between
	// "missing" labels and "empty" labels.
	Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *Labels) Reset() {
	*x = Labels{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Labels) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Labels) ProtoMessage() {}

func (x *Labels) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_flow_v1alpha1_flow_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 Labels.ProtoReflect.Descriptor instead.
func (*Labels) Descriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{5}
}

func (x *Labels) GetLabels() map[string]string {
	if x != nil {
		return x.Labels
	}
	return nil
}

type Kubernetes struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FlowType                       FlowType                `protobuf:"varint,1,opt,name=flow_type,json=flowType,proto3,enum=antrea_io.antrea.pkg.apis.flow.v1alpha1.FlowType" json:"flow_type,omitempty"`
	SourcePodNamespace             string                  `protobuf:"bytes,2,opt,name=source_pod_namespace,json=sourcePodNamespace,proto3" json:"source_pod_namespace,omitempty"`
	SourcePodName                  string                  `protobuf:"bytes,3,opt,name=source_pod_name,json=sourcePodName,proto3" json:"source_pod_name,omitempty"`
	SourcePodUid                   string                  `protobuf:"bytes,4,opt,name=source_pod_uid,json=sourcePodUid,proto3" json:"source_pod_uid,omitempty"`
	SourcePodLabels                *Labels                 `protobuf:"bytes,5,opt,name=source_pod_labels,json=sourcePodLabels,proto3" json:"source_pod_labels,omitempty"`
	SourceNodeName                 string                  `protobuf:"bytes,6,opt,name=source_node_name,json=sourceNodeName,proto3" json:"source_node_name,omitempty"`
	SourceNodeUid                  string                  `protobuf:"bytes,7,opt,name=source_node_uid,json=sourceNodeUid,proto3" json:"source_node_uid,omitempty"`
	DestinationPodNamespace        string                  `protobuf:"bytes,8,opt,name=destination_pod_namespace,json=destinationPodNamespace,proto3" json:"destination_pod_namespace,omitempty"`
	DestinationPodName             string                  `protobuf:"bytes,9,opt,name=destination_pod_name,json=destinationPodName,proto3" json:"destination_pod_name,omitempty"`
	DestinationPodUid              string                  `protobuf:"bytes,10,opt,name=destination_pod_uid,json=destinationPodUid,proto3" json:"destination_pod_uid,omitempty"`
	DestinationPodLabels           *Labels                 `protobuf:"bytes,11,opt,name=destination_pod_labels,json=destinationPodLabels,proto3" json:"destination_pod_labels,omitempty"`
	DestinationNodeName            string                  `protobuf:"bytes,12,opt,name=destination_node_name,json=destinationNodeName,proto3" json:"destination_node_name,omitempty"`
	DestinationNodeUid             string                  `protobuf:"bytes,13,opt,name=destination_node_uid,json=destinationNodeUid,proto3" json:"destination_node_uid,omitempty"`
	DestinationClusterIp           []byte                  `protobuf:"bytes,14,opt,name=destination_cluster_ip,json=destinationClusterIp,proto3" json:"destination_cluster_ip,omitempty"`
	DestinationServicePort         uint32                  `protobuf:"varint,15,opt,name=destination_service_port,json=destinationServicePort,proto3" json:"destination_service_port,omitempty"`
	DestinationServicePortName     string                  `protobuf:"bytes,16,opt,name=destination_service_port_name,json=destinationServicePortName,proto3" json:"destination_service_port_name,omitempty"`
	DestinationServiceUid          string                  `protobuf:"bytes,17,opt,name=destination_service_uid,json=destinationServiceUid,proto3" json:"destination_service_uid,omitempty"`
	IngressNetworkPolicyType       NetworkPolicyType       `protobuf:"varint,18,opt,name=ingress_network_policy_type,json=ingressNetworkPolicyType,proto3,enum=antrea_io.antrea.pkg.apis.flow.v1alpha1.NetworkPolicyType" json:"ingress_network_policy_type,omitempty"`
	IngressNetworkPolicyNamespace  string                  `protobuf:"bytes,19,opt,name=ingress_network_policy_namespace,json=ingressNetworkPolicyNamespace,proto3" json:"ingress_network_policy_namespace,omitempty"`
	IngressNetworkPolicyName       string                  `protobuf:"bytes,20,opt,name=ingress_network_policy_name,json=ingressNetworkPolicyName,proto3" json:"ingress_network_policy_name,omitempty"`
	IngressNetworkPolicyUid        string                  `protobuf:"bytes,21,opt,name=ingress_network_policy_uid,json=ingressNetworkPolicyUid,proto3" json:"ingress_network_policy_uid,omitempty"`
	IngressNetworkPolicyRuleName   string                  `protobuf:"bytes,22,opt,name=ingress_network_policy_rule_name,json=ingressNetworkPolicyRuleName,proto3" json:"ingress_network_policy_rule_name,omitempty"`
	IngressNetworkPolicyRuleAction NetworkPolicyRuleAction `protobuf:"varint,23,opt,name=ingress_network_policy_rule_action,json=ingressNetworkPolicyRuleAction,proto3,enum=antrea_io.antrea.pkg.apis.flow.v1alpha1.NetworkPolicyRuleAction" json:"ingress_network_policy_rule_action,omitempty"`
	EgressNetworkPolicyType        NetworkPolicyType       `protobuf:"varint,24,opt,name=egress_network_policy_type,json=egressNetworkPolicyType,proto3,enum=antrea_io.antrea.pkg.apis.flow.v1alpha1.NetworkPolicyType" json:"egress_network_policy_type,omitempty"`
	EgressNetworkPolicyNamespace   string                  `protobuf:"bytes,25,opt,name=egress_network_policy_namespace,json=egressNetworkPolicyNamespace,proto3" json:"egress_network_policy_namespace,omitempty"`
	EgressNetworkPolicyName        string                  `protobuf:"bytes,26,opt,name=egress_network_policy_name,json=egressNetworkPolicyName,proto3" json:"egress_network_policy_name,omitempty"`
	EgressNetworkPolicyUid         string                  `protobuf:"bytes,27,opt,name=egress_network_policy_uid,json=egressNetworkPolicyUid,proto3" json:"egress_network_policy_uid,omitempty"`
	EgressNetworkPolicyRuleName    string                  `protobuf:"bytes,28,opt,name=egress_network_policy_rule_name,json=egressNetworkPolicyRuleName,proto3" json:"egress_network_policy_rule_name,omitempty"`
	EgressNetworkPolicyRuleAction  NetworkPolicyRuleAction `protobuf:"varint,29,opt,name=egress_network_policy_rule_action,json=egressNetworkPolicyRuleAction,proto3,enum=antrea_io.antrea.pkg.apis.flow.v1alpha1.NetworkPolicyRuleAction" json:"egress_network_policy_rule_action,omitempty"`
	EgressName                     string                  `protobuf:"bytes,30,opt,name=egress_name,json=egressName,proto3" json:"egress_name,omitempty"`
	EgressIp                       []byte                  `protobuf:"bytes,31,opt,name=egress_ip,json=egressIp,proto3" json:"egress_ip,omitempty"`
	EgressNodeName                 string                  `protobuf:"bytes,32,opt,name=egress_node_name,json=egressNodeName,proto3" json:"egress_node_name,omitempty"`
	EgressNodeUid                  string                  `protobuf:"bytes,33,opt,name=egress_node_uid,json=egressNodeUid,proto3" json:"egress_node_uid,omitempty"`
	EgressUid                      string                  `protobuf:"bytes,34,opt,name=egress_uid,json=egressUid,proto3" json:"egress_uid,omitempty"`
}

func (x *Kubernetes) Reset() {
	*x = Kubernetes{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Kubernetes) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Kubernetes) ProtoMessage() {}

func (x *Kubernetes) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_flow_v1alpha1_flow_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 Kubernetes.ProtoReflect.Descriptor instead.
func (*Kubernetes) Descriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{6}
}

func (x *Kubernetes) GetFlowType() FlowType {
	if x != nil {
		return x.FlowType
	}
	return FlowType_FLOW_TYPE_UNSPECIFIED
}

func (x *Kubernetes) GetSourcePodNamespace() string {
	if x != nil {
		return x.SourcePodNamespace
	}
	return ""
}

func (x *Kubernetes) GetSourcePodName() string {
	if x != nil {
		return x.SourcePodName
	}
	return ""
}

func (x *Kubernetes) GetSourcePodUid() string {
	if x != nil {
		return x.SourcePodUid
	}
	return ""
}

func (x *Kubernetes) GetSourcePodLabels() *Labels {
	if x != nil {
		return x.SourcePodLabels
	}
	return nil
}

func (x *Kubernetes) GetSourceNodeName() string {
	if x != nil {
		return x.SourceNodeName
	}
	return ""
}

func (x *Kubernetes) GetSourceNodeUid() string {
	if x != nil {
		return x.SourceNodeUid
	}
	return ""
}

func (x *Kubernetes) GetDestinationPodNamespace() string {
	if x != nil {
		return x.DestinationPodNamespace
	}
	return ""
}

func (x *Kubernetes) GetDestinationPodName() string {
	if x != nil {
		return x.DestinationPodName
	}
	return ""
}

func (x *Kubernetes) GetDestinationPodUid() string {
	if x != nil {
		return x.DestinationPodUid
	}
	return ""
}

func (x *Kubernetes) GetDestinationPodLabels() *Labels {
	if x != nil {
		return x.DestinationPodLabels
	}
	return nil
}

func (x *Kubernetes) GetDestinationNodeName() string {
	if x != nil {
		return x.DestinationNodeName
	}
	return ""
}

func (x *Kubernetes) GetDestinationNodeUid() string {
	if x != nil {
		return x.DestinationNodeUid
	}
	return ""
}

func (x *Kubernetes) GetDestinationClusterIp() []byte {
	if x != nil {
		return x.DestinationClusterIp
	}
	return nil
}

func (x *Kubernetes) GetDestinationServicePort() uint32 {
	if x != nil {
		return x.DestinationServicePort
	}
	return 0
}

func (x *Kubernetes) GetDestinationServicePortName() string {
	if x != nil {
		return x.DestinationServicePortName
	}
	return ""
}

func (x *Kubernetes) GetDestinationServiceUid() string {
	if x != nil {
		return x.DestinationServiceUid
	}
	return ""
}

func (x *Kubernetes) GetIngressNetworkPolicyType() NetworkPolicyType {
	if x != nil {
		return x.IngressNetworkPolicyType
	}
	return NetworkPolicyType_NETWORK_POLICY_TYPE_UNSPECIFIED
}

func (x *Kubernetes) GetIngressNetworkPolicyNamespace() string {
	if x != nil {
		return x.IngressNetworkPolicyNamespace
	}
	return ""
}

func (x *Kubernetes) GetIngressNetworkPolicyName() string {
	if x != nil {
		return x.IngressNetworkPolicyName
	}
	return ""
}

func (x *Kubernetes) GetIngressNetworkPolicyUid() string {
	if x != nil {
		return x.IngressNetworkPolicyUid
	}
	return ""
}

func (x *Kubernetes) GetIngressNetworkPolicyRuleName() string {
	if x != nil {
		return x.IngressNetworkPolicyRuleName
	}
	return ""
}

func (x *Kubernetes) GetIngressNetworkPolicyRuleAction() NetworkPolicyRuleAction {
	if x != nil {
		return x.IngressNetworkPolicyRuleAction
	}
	return NetworkPolicyRuleAction_NETWORK_POLICY_RULE_ACTION_NO_ACTION
}

func (x *Kubernetes) GetEgressNetworkPolicyType() NetworkPolicyType {
	if x != nil {
		return x.EgressNetworkPolicyType
	}
	return NetworkPolicyType_NETWORK_POLICY_TYPE_UNSPECIFIED
}

func (x *Kubernetes) GetEgressNetworkPolicyNamespace() string {
	if x != nil {
		return x.EgressNetworkPolicyNamespace
	}
	return ""
}

func (x *Kubernetes) GetEgressNetworkPolicyName() string {
	if x != nil {
		return x.EgressNetworkPolicyName
	}
	return ""
}

func (x *Kubernetes) GetEgressNetworkPolicyUid() string {
	if x != nil {
		return x.EgressNetworkPolicyUid
	}
	return ""
}

func (x *Kubernetes) GetEgressNetworkPolicyRuleName() string {
	if x != nil {
		return x.EgressNetworkPolicyRuleName
	}
	return ""
}

func (x *Kubernetes) GetEgressNetworkPolicyRuleAction() NetworkPolicyRuleAction {
	if x != nil {
		return x.EgressNetworkPolicyRuleAction
	}
	return NetworkPolicyRuleAction_NETWORK_POLICY_RULE_ACTION_NO_ACTION
}

func (x *Kubernetes) GetEgressName() string {
	if x != nil {
		return x.EgressName
	}
	return ""
}

func (x *Kubernetes) GetEgressIp() []byte {
	if x != nil {
		return x.EgressIp
	}
	return nil
}

func (x *Kubernetes) GetEgressNodeName() string {
	if x != nil {
		return x.EgressNodeName
	}
	return ""
}

func (x *Kubernetes) GetEgressNodeUid() string {
	if x != nil {
		return x.EgressNodeUid
	}
	return ""
}

func (x *Kubernetes) GetEgressUid() string {
	if x != nil {
		return x.EgressUid
	}
	return ""
}

type App struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ProtocolName string `protobuf:"bytes,1,opt,name=protocol_name,json=protocolName,proto3" json:"protocol_name,omitempty"`
	HttpVals     []byte `protobuf:"bytes,2,opt,name=http_vals,json=httpVals,proto3" json:"http_vals,omitempty"`
}

func (x *App) Reset() {
	*x = App{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *App) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*App) ProtoMessage() {}

func (x *App) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_flow_v1alpha1_flow_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 App.ProtoReflect.Descriptor instead.
func (*App) Descriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{7}
}

func (x *App) GetProtocolName() string {
	if x != nil {
		return x.ProtocolName
	}
	return ""
}

func (x *App) GetHttpVals() []byte {
	if x != nil {
		return x.HttpVals
	}
	return nil
}

type Aggregation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	EndTsFromSource                  *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=end_ts_from_source,json=endTsFromSource,proto3" json:"end_ts_from_source,omitempty"`
	EndTsFromDestination             *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_ts_from_destination,json=endTsFromDestination,proto3" json:"end_ts_from_destination,omitempty"`
	StatsFromSource                  *Stats                 `protobuf:"bytes,3,opt,name=stats_from_source,json=statsFromSource,proto3" json:"stats_from_source,omitempty"`
	ReverseStatsFromSource           *Stats                 `protobuf:"bytes,4,opt,name=reverse_stats_from_source,json=reverseStatsFromSource,proto3" json:"reverse_stats_from_source,omitempty"`
	StatsFromDestination             *Stats                 `protobuf:"bytes,5,opt,name=stats_from_destination,json=statsFromDestination,proto3" json:"stats_from_destination,omitempty"`
	ReverseStatsFromDestination      *Stats                 `protobuf:"bytes,6,opt,name=reverse_stats_from_destination,json=reverseStatsFromDestination,proto3" json:"reverse_stats_from_destination,omitempty"`
	ThroughputFromSource             uint64                 `protobuf:"varint,7,opt,name=throughput_from_source,json=throughputFromSource,proto3" json:"throughput_from_source,omitempty"`
	ReverseThroughputFromSource      uint64                 `protobuf:"varint,8,opt,name=reverse_throughput_from_source,json=reverseThroughputFromSource,proto3" json:"reverse_throughput_from_source,omitempty"`
	ThroughputFromDestination        uint64                 `protobuf:"varint,9,opt,name=throughput_from_destination,json=throughputFromDestination,proto3" json:"throughput_from_destination,omitempty"`
	ReverseThroughputFromDestination uint64                 `protobuf:"varint,10,opt,name=reverse_throughput_from_destination,json=reverseThroughputFromDestination,proto3" json:"reverse_throughput_from_destination,omitempty"`
	Throughput                       uint64                 `protobuf:"varint,11,opt,name=throughput,proto3" json:"throughput,omitempty"`
	ReverseThroughput                uint64                 `protobuf:"varint,12,opt,name=reverse_throughput,json=reverseThroughput,proto3" json:"reverse_throughput,omitempty"`
}

func (x *Aggregation) Reset() {
	*x = Aggregation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Aggregation) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Aggregation) ProtoMessage() {}

func (x *Aggregation) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_flow_v1alpha1_flow_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 Aggregation.ProtoReflect.Descriptor instead.
func (*Aggregation) Descriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{8}
}

func (x *Aggregation) GetEndTsFromSource() *timestamppb.Timestamp {
	if x != nil {
		return x.EndTsFromSource
	}
	return nil
}

func (x *Aggregation) GetEndTsFromDestination() *timestamppb.Timestamp {
	if x != nil {
		return x.EndTsFromDestination
	}
	return nil
}

func (x *Aggregation) GetStatsFromSource() *Stats {
	if x != nil {
		return x.StatsFromSource
	}
	return nil
}

func (x *Aggregation) GetReverseStatsFromSource() *Stats {
	if x != nil {
		return x.ReverseStatsFromSource
	}
	return nil
}

func (x *Aggregation) GetStatsFromDestination() *Stats {
	if x != nil {
		return x.StatsFromDestination
	}
	return nil
}

func (x *Aggregation) GetReverseStatsFromDestination() *Stats {
	if x != nil {
		return x.ReverseStatsFromDestination
	}
	return nil
}

func (x *Aggregation) GetThroughputFromSource() uint64 {
	if x != nil {
		return x.ThroughputFromSource
	}
	return 0
}

func (x *Aggregation) GetReverseThroughputFromSource() uint64 {
	if x != nil {
		return x.ReverseThroughputFromSource
	}
	return 0
}

func (x *Aggregation) GetThroughputFromDestination() uint64 {
	if x != nil {
		return x.ThroughputFromDestination
	}
	return 0
}

func (x *Aggregation) GetReverseThroughputFromDestination() uint64 {
	if x != nil {
		return x.ReverseThroughputFromDestination
	}
	return 0
}

func (x *Aggregation) GetThroughput() uint64 {
	if x != nil {
		return x.Throughput
	}
	return 0
}

func (x *Aggregation) GetReverseThroughput() uint64 {
	if x != nil {
		return x.ReverseThroughput
	}
	return 0
}

type Flow struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Ipfix         *IPFIX                 `protobuf:"bytes,2,opt,name=ipfix,proto3" json:"ipfix,omitempty"`
	StartTs       *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"`
	EndTs         *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=end_ts,json=endTs,proto3" json:"end_ts,omitempty"`
	EndReason     FlowEndReason          `protobuf:"varint,5,opt,name=end_reason,json=endReason,proto3,enum=antrea_io.antrea.pkg.apis.flow.v1alpha1.FlowEndReason" json:"end_reason,omitempty"`
	Ip            *IP                    `protobuf:"bytes,6,opt,name=ip,proto3" json:"ip,omitempty"`
	Transport     *Transport             `protobuf:"bytes,7,opt,name=transport,proto3" json:"transport,omitempty"`
	K8S           *Kubernetes            `protobuf:"bytes,8,opt,name=k8s,proto3" json:"k8s,omitempty"`
	Stats         *Stats                 `protobuf:"bytes,9,opt,name=stats,proto3" json:"stats,omitempty"`
	ReverseStats  *Stats                 `protobuf:"bytes,10,opt,name=reverse_stats,json=reverseStats,proto3" json:"reverse_stats,omitempty"`
	App           *App                   `protobuf:"bytes,11,opt,name=app,proto3" json:"app,omitempty"`
	FlowDirection FlowDirection          `protobuf:"varint,12,opt,name=flow_direction,json=flowDirection,proto3,enum=antrea_io.antrea.pkg.apis.flow.v1alpha1.FlowDirection" json:"flow_direction,omitempty"`
	Aggregation   *Aggregation           `protobuf:"bytes,13,opt,name=aggregation,proto3" json:"aggregation,omitempty"`
}

func (x *Flow) Reset() {
	*x = Flow{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Flow) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Flow) ProtoMessage() {}

func (x *Flow) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_flow_v1alpha1_flow_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 Flow.ProtoReflect.Descriptor instead.
func (*Flow) Descriptor() ([]byte, []int) {
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP(), []int{9}
}

func (x *Flow) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Flow) GetIpfix() *IPFIX {
	if x != nil {
		return x.Ipfix
	}
	return nil
}

func (x *Flow) GetStartTs() *timestamppb.Timestamp {
	if x != nil {
		return x.StartTs
	}
	return nil
}

func (x *Flow) GetEndTs() *timestamppb.Timestamp {
	if x != nil {
		return x.EndTs
	}
	return nil
}

func (x *Flow) GetEndReason() FlowEndReason {
	if x != nil {
		return x.EndReason
	}
	return FlowEndReason_FLOW_END_REASON_UNSPECIFIED
}

func (x *Flow) GetIp() *IP {
	if x != nil {
		return x.Ip
	}
	return nil
}

func (x *Flow) GetTransport() *Transport {
	if x != nil {
		return x.Transport
	}
	return nil
}

func (x *Flow) GetK8S() *Kubernetes {
	if x != nil {
		return x.K8S
	}
	return nil
}

func (x *Flow) GetStats() *Stats {
	if x != nil {
		return x.Stats
	}
	return nil
}

func (x *Flow) GetReverseStats() *Stats {
	if x != nil {
		return x.ReverseStats
	}
	return nil
}

func (x *Flow) GetApp() *App {
	if x != nil {
		return x.App
	}
	return nil
}

func (x *Flow) GetFlowDirection() FlowDirection {
	if x != nil {
		return x.FlowDirection
	}
	return FlowDirection_FLOW_DIRECTION_INGRESS
}

func (x *Flow) GetAggregation() *Aggregation {
	if x != nil {
		return x.Aggregation
	}
	return nil
}

var File_pkg_apis_flow_v1alpha1_flow_proto protoreflect.FileDescriptor

var file_pkg_apis_flow_v1alpha1_flow_proto_rawDesc = []byte{
	0x0a, 0x21, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x2f,
	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x12, 0x27, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61,
	0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66,
	0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x1f, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc2, 0x01,
	0x0a, 0x05, 0x49, 0x50, 0x46, 0x49, 0x58, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6f, 0x72,
	0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65,
	0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73,
	0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a,
	0x15, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x6d,
	0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6f, 0x62,
	0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49,
	0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x70,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72,
	0x49, 0x70, 0x22, 0x8c, 0x01, 0x0a, 0x02, 0x49, 0x50, 0x12, 0x4c, 0x0a, 0x07, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x61, 0x6e, 0x74,
	0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b,
	0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c,
	0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x50, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07,
	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12,
	0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x22, 0x24, 0x0a, 0x03, 0x54, 0x43, 0x50, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74,
	0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74,
	0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e,
	0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f,
	0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12,
	0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70,
	0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69,
	0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x40, 0x0a, 0x03, 0x54, 0x43,
	0x50, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61,
	0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
	0x31, 0x2e, 0x54, 0x43, 0x50, 0x48, 0x00, 0x52, 0x03, 0x54, 0x43, 0x50, 0x42, 0x0a, 0x0a, 0x08,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xbb, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x6f, 0x74,
	0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10,
	0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x2c, 0x0a, 0x12, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61,
	0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x61,
	0x63, 0x6b, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a,
	0x0a, 0x11, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6f, 0x63, 0x74, 0x65, 0x74,
	0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x63,
	0x74, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x74,
	0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x06, 0x4c, 0x61, 0x62, 0x65, 0x6c,
	0x73, 0x12, 0x53, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x3b, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e,
	0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c,
	0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65,
	0x6c, 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06,
	0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
	0x01, 0x22, 0xb2, 0x11, 0x0a, 0x0a, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73,
	0x12, 0x4e, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e,
	0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x6c,
	0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x30, 0x0a, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x64, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
	0x63, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x64,
	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x50, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x64, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x64, 0x55, 0x69, 0x64,
	0x12, 0x5b, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x64, 0x5f, 0x6c,
	0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x61, 0x6e,
	0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70,
	0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61,
	0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x0f, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x28, 0x0a,
	0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e,
	0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x69, 0x64, 0x12,
	0x3a, 0x0a, 0x19, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70,
	0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x17, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50,
	0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x64,
	0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x64, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69,
	0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a,
	0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x64,
	0x5f, 0x75, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74,
	0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x64, 0x55, 0x69, 0x64, 0x12, 0x65, 0x0a,
	0x16, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x64,
	0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e,
	0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61,
	0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76,
	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x14,
	0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x64, 0x4c, 0x61,
	0x62, 0x65, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x4e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x73, 0x74,
	0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, 0x69, 0x64,
	0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x65,
	0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x5f, 0x69, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x64, 0x65, 0x73, 0x74,
	0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x70,
	0x12, 0x38, 0x0a, 0x18, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0f, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x16, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x41, 0x0a, 0x1d, 0x64, 0x65,
	0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x1a, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a,
	0x17, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15,
	0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x55, 0x69, 0x64, 0x12, 0x79, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73,
	0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x61, 0x6e, 0x74,
	0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b,
	0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c,
	0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4e,
	0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x47, 0x0a, 0x20, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77,
	0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73,
	0x70, 0x61, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x69, 0x6e, 0x67, 0x72,
	0x65, 0x73, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
	0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x69, 0x6e, 0x67,
	0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x6f, 0x6c,
	0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18,
	0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f,
	0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x69, 0x6e, 0x67, 0x72,
	0x65, 0x73, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x69, 0x6e,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x55, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x20, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73,
	0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f,
	0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x1c, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x8c, 0x01,
	0x0a, 0x22, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
	0x6b, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x61, 0x6e, 0x74,
	0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b,
	0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c,
	0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1e, 0x69, 0x6e,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x77, 0x0a, 0x1a,
	0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x3a, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74,
	0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f,
	0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f,
	0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x17, 0x65, 0x67,
	0x72, 0x65, 0x73, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x1f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f,
	0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c,
	0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c,
	0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x1a,
	0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x17, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x65, 0x67, 0x72,
	0x65, 0x73, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x65, 0x67,
	0x72, 0x65, 0x73, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x55, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x1f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e,
	0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x72, 0x75,
	0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x65,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x21, 0x65,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x6f,
	0x6c, 0x69, 0x63, 0x79, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x1d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f,
	0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
	0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x75,
	0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1d, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73,
	0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x75, 0x6c,
	0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x67, 0x72, 0x65, 0x73,
	0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x67,
	0x72, 0x65, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x5f, 0x69, 0x70, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x67, 0x72,
	0x65, 0x73, 0x73, 0x49, 0x70, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f,
	0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0e, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12,
	0x26, 0x0a, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75,
	0x69, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73,
	0x4e, 0x6f, 0x64, 0x65, 0x55, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73,
	0x73, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x67, 0x72,
	0x65, 0x73, 0x73, 0x55, 0x69, 0x64, 0x22, 0x47, 0x0a, 0x03, 0x41, 0x70, 0x70, 0x12, 0x23, 0x0a,
	0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e, 0x61,
	0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x73, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x56, 0x61, 0x6c, 0x73, 0x22,
	0xa4, 0x07, 0x0a, 0x0b, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x47, 0x0a, 0x12, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x73, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x65, 0x6e, 0x64, 0x54, 0x73, 0x46, 0x72,
	0x6f, 0x6d, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x17, 0x65, 0x6e, 0x64, 0x5f,
	0x74, 0x73, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x14, 0x65, 0x6e, 0x64, 0x54, 0x73, 0x46, 0x72, 0x6f, 0x6d,
	0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x11, 0x73,
	0x74, 0x61, 0x74, 0x73, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f,
	0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x46, 0x72, 0x6f,
	0x6d, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x69, 0x0a, 0x19, 0x72, 0x65, 0x76, 0x65, 0x72,
	0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x6e, 0x74,
	0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b,
	0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c,
	0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x16, 0x72, 0x65, 0x76, 0x65,
	0x72, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x53, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x12, 0x64, 0x0a, 0x16, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x66, 0x72, 0x6f, 0x6d,
	0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61,
	0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66,
	0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x52, 0x14, 0x73, 0x74, 0x61, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x73,
	0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x73, 0x0a, 0x1e, 0x72, 0x65, 0x76, 0x65,
	0x72, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x64,
	0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x2e, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74,
	0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f,
	0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73,
	0x52, 0x1b, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x46, 0x72,
	0x6f, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a,
	0x16, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d,
	0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x74,
	0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x53, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x1e, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x5f, 0x74,
	0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1b, 0x72, 0x65, 0x76,
	0x65, 0x72, 0x73, 0x65, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x46, 0x72,
	0x6f, 0x6d, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x1b, 0x74, 0x68, 0x72, 0x6f,
	0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x74,
	0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x74,
	0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x73,
	0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x23, 0x72, 0x65, 0x76, 0x65,
	0x72, 0x73, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x66,
	0x72, 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x20, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x54, 0x68,
	0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x73, 0x74,
	0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x75,
	0x67, 0x68, 0x70, 0x75, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x68, 0x72,
	0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x76, 0x65, 0x72,
	0x73, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x11, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x54, 0x68, 0x72, 0x6f,
	0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x22, 0x85, 0x07, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x12,
	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
	0x44, 0x0a, 0x05, 0x69, 0x70, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e,
	0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65,
	0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e,
	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x50, 0x46, 0x49, 0x58, 0x52, 0x05,
	0x69, 0x70, 0x66, 0x69, 0x78, 0x12, 0x35, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74,
	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x73, 0x12, 0x31, 0x0a, 0x06,
	0x65, 0x6e, 0x64, 0x5f, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x65, 0x6e, 0x64, 0x54, 0x73, 0x12,
	0x55, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e,
	0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x6c,
	0x6f, 0x77, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x6e, 0x64,
	0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61,
	0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66,
	0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x50, 0x52,
	0x02, 0x69, 0x70, 0x12, 0x50, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f,
	0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
	0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e,
	0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x45, 0x0a, 0x03, 0x6b, 0x38, 0x73, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x33, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61,
	0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66,
	0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x75, 0x62,
	0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x52, 0x03, 0x6b, 0x38, 0x73, 0x12, 0x44, 0x0a, 0x05,
	0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x6e,
	0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70,
	0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61,
	0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61,
	0x74, 0x73, 0x12, 0x53, 0x0a, 0x0d, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x5f, 0x73, 0x74,
	0x61, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x6e, 0x74, 0x72,
	0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67,
	0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
	0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0c, 0x72, 0x65, 0x76, 0x65, 0x72,
	0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x0b,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f,
	0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41,
	0x70, 0x70, 0x52, 0x03, 0x61, 0x70, 0x70, 0x12, 0x5d, 0x0a, 0x0e, 0x66, 0x6c, 0x6f, 0x77, 0x5f,
	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x36, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72,
	0x65, 0x61, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77,
	0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x69,
	0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x69, 0x72,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x61, 0x6e,
	0x74, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6f, 0x2e, 0x61, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x2e, 0x70,
	0x6b, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x76, 0x31, 0x61,
	0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0xde,
	0x01, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e,
	0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x41,
	0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
	0x00, 0x12, 0x20, 0x0a, 0x1c, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45,
	0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55,
	0x54, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x4e, 0x44, 0x5f,
	0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x54, 0x49,
	0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x4c, 0x4f, 0x57, 0x5f,
	0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x5f, 0x4f,
	0x46, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x4c, 0x4f, 0x57,
	0x5f, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x43,
	0x45, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x46, 0x4c, 0x4f, 0x57,
	0x5f, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x41, 0x43, 0x4b,
	0x5f, 0x4f, 0x46, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x53, 0x10, 0x05, 0x2a,
	0x4b, 0x0a, 0x09, 0x49, 0x50, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x16,
	0x49, 0x50, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x50, 0x5f, 0x56,
	0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x34, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x50,
	0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x36, 0x10, 0x06, 0x2a, 0x91, 0x01, 0x0a,
	0x08, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x4c, 0x4f,
	0x57, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
	0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x54, 0x59, 0x50,
	0x45, 0x5f, 0x49, 0x4e, 0x54, 0x52, 0x41, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, 0x18,
	0x0a, 0x14, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45,
	0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x4c, 0x4f, 0x57,
	0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41,
	0x4c, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x54, 0x59, 0x50, 0x45,
	0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x04,
	0x2a, 0x90, 0x01, 0x0a, 0x11, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52,
	0x4b, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x4e,
	0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x54, 0x59,
	0x50, 0x45, 0x5f, 0x4b, 0x38, 0x53, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x45, 0x54, 0x57,
	0x4f, 0x52, 0x4b, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
	0x41, 0x4e, 0x50, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b,
	0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x4e,
	0x50, 0x10, 0x03, 0x2a, 0xb5, 0x01, 0x0a, 0x17, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x28, 0x0a, 0x24, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43,
	0x59, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f,
	0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x4e, 0x45, 0x54,
	0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x52, 0x55, 0x4c, 0x45,
	0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12,
	0x23, 0x0a, 0x1f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43,
	0x59, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x52,
	0x4f, 0x50, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f,
	0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49,
	0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x03, 0x2a, 0x63, 0x0a, 0x0d, 0x46,
	0x6c, 0x6f, 0x77, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x16,
	0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49,
	0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x4c, 0x4f, 0x57,
	0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53,
	0x53, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x44, 0x49, 0x52, 0x45,
	0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0xff, 0x01,
	0x42, 0x18, 0x5a, 0x16, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x66, 0x6c, 0x6f,
	0x77, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x33,
}

var (
	file_pkg_apis_flow_v1alpha1_flow_proto_rawDescOnce sync.Once
	file_pkg_apis_flow_v1alpha1_flow_proto_rawDescData = file_pkg_apis_flow_v1alpha1_flow_proto_rawDesc
)

func file_pkg_apis_flow_v1alpha1_flow_proto_rawDescGZIP() []byte {
	file_pkg_apis_flow_v1alpha1_flow_proto_rawDescOnce.Do(func() {
		file_pkg_apis_flow_v1alpha1_flow_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_apis_flow_v1alpha1_flow_proto_rawDescData)
	})
	return file_pkg_apis_flow_v1alpha1_flow_proto_rawDescData
}

var file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
var file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_pkg_apis_flow_v1alpha1_flow_proto_goTypes = []interface{}{
	(FlowEndReason)(0),            // 0: antrea_io.antrea.pkg.apis.flow.v1alpha1.FlowEndReason
	(IPVersion)(0),                // 1: antrea_io.antrea.pkg.apis.flow.v1alpha1.IPVersion
	(FlowType)(0),                 // 2: antrea_io.antrea.pkg.apis.flow.v1alpha1.FlowType
	(NetworkPolicyType)(0),        // 3: antrea_io.antrea.pkg.apis.flow.v1alpha1.NetworkPolicyType
	(NetworkPolicyRuleAction)(0),  // 4: antrea_io.antrea.pkg.apis.flow.v1alpha1.NetworkPolicyRuleAction
	(FlowDirection)(0),            // 5: antrea_io.antrea.pkg.apis.flow.v1alpha1.FlowDirection
	(*IPFIX)(nil),                 // 6: antrea_io.antrea.pkg.apis.flow.v1alpha1.IPFIX
	(*IP)(nil),                    // 7: antrea_io.antrea.pkg.apis.flow.v1alpha1.IP
	(*TCP)(nil),                   // 8: antrea_io.antrea.pkg.apis.flow.v1alpha1.TCP
	(*Transport)(nil),             // 9: antrea_io.antrea.pkg.apis.flow.v1alpha1.Transport
	(*Stats)(nil),                 // 10: antrea_io.antrea.pkg.apis.flow.v1alpha1.Stats
	(*Labels)(nil),                // 11: antrea_io.antrea.pkg.apis.flow.v1alpha1.Labels
	(*Kubernetes)(nil),            // 12: antrea_io.antrea.pkg.apis.flow.v1alpha1.Kubernetes
	(*App)(nil),                   // 13: antrea_io.antrea.pkg.apis.flow.v1alpha1.App
	(*Aggregation)(nil),           // 14: antrea_io.antrea.pkg.apis.flow.v1alpha1.Aggregation
	(*Flow)(nil),                  // 15: antrea_io.antrea.pkg.apis.flow.v1alpha1.Flow
	nil,                           // 16: antrea_io.antrea.pkg.apis.flow.v1alpha1.Labels.LabelsEntry
	(*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp
}
var file_pkg_apis_flow_v1alpha1_flow_proto_depIdxs = []int32{
	17, // 0: antrea_io.antrea.pkg.apis.flow.v1alpha1.IPFIX.export_time:type_name -> google.protobuf.Timestamp
	1,  // 1: antrea_io.antrea.pkg.apis.flow.v1alpha1.IP.version:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.IPVersion
	8,  // 2: antrea_io.antrea.pkg.apis.flow.v1alpha1.Transport.TCP:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.TCP
	16, // 3: antrea_io.antrea.pkg.apis.flow.v1alpha1.Labels.labels:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.Labels.LabelsEntry
	2,  // 4: antrea_io.antrea.pkg.apis.flow.v1alpha1.Kubernetes.flow_type:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.FlowType
	11, // 5: antrea_io.antrea.pkg.apis.flow.v1alpha1.Kubernetes.source_pod_labels:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.Labels
	11, // 6: antrea_io.antrea.pkg.apis.flow.v1alpha1.Kubernetes.destination_pod_labels:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.Labels
	3,  // 7: antrea_io.antrea.pkg.apis.flow.v1alpha1.Kubernetes.ingress_network_policy_type:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.NetworkPolicyType
	4,  // 8: antrea_io.antrea.pkg.apis.flow.v1alpha1.Kubernetes.ingress_network_policy_rule_action:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.NetworkPolicyRuleAction
	3,  // 9: antrea_io.antrea.pkg.apis.flow.v1alpha1.Kubernetes.egress_network_policy_type:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.NetworkPolicyType
	4,  // 10: antrea_io.antrea.pkg.apis.flow.v1alpha1.Kubernetes.egress_network_policy_rule_action:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.NetworkPolicyRuleAction
	17, // 11: antrea_io.antrea.pkg.apis.flow.v1alpha1.Aggregation.end_ts_from_source:type_name -> google.protobuf.Timestamp
	17, // 12: antrea_io.antrea.pkg.apis.flow.v1alpha1.Aggregation.end_ts_from_destination:type_name -> google.protobuf.Timestamp
	10, // 13: antrea_io.antrea.pkg.apis.flow.v1alpha1.Aggregation.stats_from_source:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.Stats
	10, // 14: antrea_io.antrea.pkg.apis.flow.v1alpha1.Aggregation.reverse_stats_from_source:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.Stats
	10, // 15: antrea_io.antrea.pkg.apis.flow.v1alpha1.Aggregation.stats_from_destination:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.Stats
	10, // 16: antrea_io.antrea.pkg.apis.flow.v1alpha1.Aggregation.reverse_stats_from_destination:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.Stats
	6,  // 17: antrea_io.antrea.pkg.apis.flow.v1alpha1.Flow.ipfix:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.IPFIX
	17, // 18: antrea_io.antrea.pkg.apis.flow.v1alpha1.Flow.start_ts:type_name -> google.protobuf.Timestamp
	17, // 19: antrea_io.antrea.pkg.apis.flow.v1alpha1.Flow.end_ts:type_name -> google.protobuf.Timestamp
	0,  // 20: antrea_io.antrea.pkg.apis.flow.v1alpha1.Flow.end_reason:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.FlowEndReason
	7,  // 21: antrea_io.antrea.pkg.apis.flow.v1alpha1.Flow.ip:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.IP
	9,  // 22: antrea_io.antrea.pkg.apis.flow.v1alpha1.Flow.transport:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.Transport
	12, // 23: antrea_io.antrea.pkg.apis.flow.v1alpha1.Flow.k8s:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.Kubernetes
	10, // 24: antrea_io.antrea.pkg.apis.flow.v1alpha1.Flow.stats:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.Stats
	10, // 25: antrea_io.antrea.pkg.apis.flow.v1alpha1.Flow.reverse_stats:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.Stats
	13, // 26: antrea_io.antrea.pkg.apis.flow.v1alpha1.Flow.app:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.App
	5,  // 27: antrea_io.antrea.pkg.apis.flow.v1alpha1.Flow.flow_direction:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.FlowDirection
	14, // 28: antrea_io.antrea.pkg.apis.flow.v1alpha1.Flow.aggregation:type_name -> antrea_io.antrea.pkg.apis.flow.v1alpha1.Aggregation
	29, // [29:29] is the sub-list for method output_type
	29, // [29:29] is the sub-list for method input_type
	29, // [29:29] is the sub-list for extension type_name
	29, // [29:29] is the sub-list for extension extendee
	0,  // [0:29] is the sub-list for field type_name
}

func init() { file_pkg_apis_flow_v1alpha1_flow_proto_init() }
func file_pkg_apis_flow_v1alpha1_flow_proto_init() {
	if File_pkg_apis_flow_v1alpha1_flow_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IPFIX); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IP); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TCP); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Transport); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Stats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Labels); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Kubernetes); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*App); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Aggregation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Flow); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes[3].OneofWrappers = []interface{}{
		(*Transport_TCP)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_pkg_apis_flow_v1alpha1_flow_proto_rawDesc,
			NumEnums:      6,
			NumMessages:   11,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_pkg_apis_flow_v1alpha1_flow_proto_goTypes,
		DependencyIndexes: file_pkg_apis_flow_v1alpha1_flow_proto_depIdxs,
		EnumInfos:         file_pkg_apis_flow_v1alpha1_flow_proto_enumTypes,
		MessageInfos:      file_pkg_apis_flow_v1alpha1_flow_proto_msgTypes,
	}.Build()
	File_pkg_apis_flow_v1alpha1_flow_proto = out.File
	file_pkg_apis_flow_v1alpha1_flow_proto_rawDesc = nil
	file_pkg_apis_flow_v1alpha1_flow_proto_goTypes = nil
	file_pkg_apis_flow_v1alpha1_flow_proto_depIdxs = nil
}
