text:
(), []int{20}
}

func (x *PolicyReAuthRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *PolicyReAuthRequest) GetImsi() string {
	if x != nil {
		return x.Imsi
	}
	return ""
}

func (x *PolicyReAuthRequest) GetRulesToRemove() []string {
	if x != nil {
		return x.RulesToRemove
	}
	return nil
}

func (x *PolicyReAuthRequest) GetRulesToInstall() []*StaticRuleInstall {
	if x != nil {
		return x.RulesToInstall
	}
	return nil
}

func (x *PolicyReAuthRequest) GetDynamicRulesToInstall() []*DynamicRuleInstall {
	if x != nil {
		return x.DynamicRulesToInstall
	}
	return nil
}

func (x *PolicyReAuthRequest) GetEventTriggers() []EventTrigger {
	if x != nil {
		return x.EventTriggers
	}
	return nil
}

func (x *PolicyReAuthRequest) GetRevalidationTime() *timestamp.Timestamp {
	if x != nil {
		return x.RevalidationTime
	}
	return nil
}

func (x *PolicyReAuthRequest) GetUsageMonitoringCredits() []*UsageMonitoringCredit {
	if x != nil {
		return x.UsageMonitoringCredits
	}
	return nil
}

func (x *PolicyReAuthRequest) GetQosInfo() *QoSInformation {
	if x != nil {
		return x.QosInfo
	}
	return nil
}

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

	BearerId string `protobuf:"bytes,1,opt,name=bearer_id,json=bearerId,proto3" json:"bearer_id,omitempty"`
	Qci      QCI    `protobuf:"varint,2,opt,name=qci,proto3,enum=magma.lte.QCI" json:"qci,omitempty"`
}

func (x *QoSInformation) Reset() {
	*x = QoSInformation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*QoSInformation) ProtoMessage() {}

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

func (x *QoSInformation) GetBearerId() string {
	if x != nil {
		return x.BearerId
	}
	return ""
}

func (x *QoSInformation) GetQci() QCI {
	if x != nil {
		return x.Qci
	}
	return QCI_QCI_0
}

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

	SessionId   string                                    `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	Result      ReAuthResult                              `protobuf:"varint,2,opt,name=result,proto3,enum=magma.lte.ReAuthResult" json:"result,omitempty"`
	FailedRules map[string]PolicyReAuthAnswer_FailureCode `protobuf:"bytes,3,rep,name=failed_rules,json=failedRules,proto3" json:"failed_rules,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=magma.lte.PolicyReAuthAnswer_FailureCode"`
}

func (x *PolicyReAuthAnswer) Reset() {
	*x = PolicyReAuthAnswer{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PolicyReAuthAnswer) ProtoMessage() {}

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

func (x *PolicyReAuthAnswer) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *PolicyReAuthAnswer) GetResult() ReAuthResult {
	if x != nil {
		return x.Result
	}
	return ReAuthResult_UPDATE_INITIATED
}

func (x *PolicyReAuthAnswer) GetFailedRules() map[string]PolicyReAuthAnswer_FailureCode {
	if x != nil {
		return x.FailedRules
	}
	return nil
}

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

	// If true, apply the rules to all sessions for the subscriber
	ApplySubscriberWide bool                  `protobuf:"varint,1,opt,name=apply_subscriber_wide,json=applySubscriberWide,proto3" json:"apply_subscriber_wide,omitempty"`
	Apn                 string                `protobuf:"bytes,2,opt,name=apn,proto3" json:"apn,omitempty"`
	StaticRules         []*StaticRuleInstall  `protobuf:"bytes,3,rep,name=static_rules,json=staticRules,proto3" json:"static_rules,omitempty"`
	DynamicRules        []*DynamicRuleInstall `protobuf:"bytes,4,rep,name=dynamic_rules,json=dynamicRules,proto3" json:"dynamic_rules,omitempty"`
}

func (x *RuleSet) Reset() {
	*x = RuleSet{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RuleSet) ProtoMessage() {}

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

func (x *RuleSet) GetApplySubscriberWide() bool {
	if x != nil {
		return x.ApplySubscriberWide
	}
	return false
}

func (x *RuleSet) GetApn() string {
	if x != nil {
		return x.Apn
	}
	return ""
}

func (x *RuleSet) GetStaticRules() []*StaticRuleInstall {
	if x != nil {
		return x.StaticRules
	}
	return nil
}

func (x *RuleSet) GetDynamicRules() []*DynamicRuleInstall {
	if x != nil {
		return x.DynamicRules
	}
	return nil
}

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

	Imsi    string     `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	RuleSet []*RuleSet `protobuf:"bytes,3,rep,name=rule_set,json=ruleSet,proto3" json:"rule_set,omitempty"`
}

func (x *RulesPerSubscriber) Reset() {
	*x = RulesPerSubscriber{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RulesPerSubscriber) ProtoMessage() {}

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

func (x *RulesPerSubscriber) GetImsi() string {
	if x != nil {
		return x.Imsi
	}
	return ""
}

func (x *RulesPerSubscriber) GetRuleSet() []*RuleSet {
	if x != nil {
		return x.RuleSet
	}
	return nil
}

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

	RulesPerSubscriber []*RulesPerSubscriber `protobuf:"bytes,1,rep,name=rules_per_subscriber,json=rulesPerSubscriber,proto3" json:"rules_per_subscriber,omitempty"`
}

func (x *SessionRules) Reset() {
	*x = SessionRules{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SessionRules) ProtoMessage() {}

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

func (x *SessionRules) GetRulesPerSubscriber() []*RulesPerSubscriber {
	if x != nil {
		return x.RulesPerSubscriber
	}
	return nil
}

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

	// Describe a timezone by offset from UTC in minutes
	OffsetMinutes int32 `protobuf:"varint,1,opt,name=offset_minutes,json=offsetMinutes,proto3" json:"offset_minutes,omitempty"`
}

func (x *Timezone) Reset() {
	*x = Timezone{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Timezone) ProtoMessage() {}

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

func (x *Timezone) GetOffsetMinutes() int32 {
	if x != nil {
		return x.OffsetMinutes
	}
	return 0
}

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

	IsValid bool   `protobuf:"varint,1,opt,name=is_valid,json=isValid,proto3" json:"is_valid,omitempty"`
	Volume  uint64 `protobuf:"varint,2,opt,name=volume,proto3" json:"volume,omitempty"`
}

func (x *CreditUnit) Reset() {
	*x = CreditUnit{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreditUnit) ProtoMessage() {}

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

func (x *CreditUnit) GetIsValid() bool {
	if x != nil {
		return x.IsValid
	}
	return false
}

func (x *CreditUnit) GetVolume() uint64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

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

	Total *CreditUnit `protobuf:"bytes,1,opt,name=total,proto3" json:"total,omitempty"`
	Tx    *CreditUnit `protobuf:"bytes,2,opt,name=tx,proto3" json:"tx,omitempty"`
	Rx    *CreditUnit `protobuf:"bytes,3,opt,name=rx,proto3" json:"rx,omitempty"`
}

func (x *GrantedUnits) Reset() {
	*x = GrantedUnits{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GrantedUnits) ProtoMessage() {}

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

func (x *GrantedUnits) GetTotal() *CreditUnit {
	if x != nil {
		return x.Total
	}
	return nil
}

func (x *GrantedUnits) GetTx() *CreditUnit {
	if x != nil {
		return x.Tx
	}
	return nil
}

func (x *GrantedUnits) GetRx() *CreditUnit {
	if x != nil {
		return x.Rx
	}
	return nil
}

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

	RedirectAddressType   RedirectServer_RedirectAddressType `protobuf:"varint,1,opt,name=redirect_address_type,json=redirectAddressType,proto3,enum=magma.lte.RedirectServer_RedirectAddressType" json:"redirect_address_type,omitempty"`
	RedirectServerAddress string                             `protobuf:"bytes,2,opt,name=redirect_server_address,json=redirectServerAddress,proto3" json:"redirect_server_address,omitempty"`
}

func (x *RedirectServer) Reset() {
	*x = RedirectServer{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RedirectServer) ProtoMessage() {}

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

func (x *RedirectServer) GetRedirectAddressType() RedirectServer_RedirectAddressType {
	if x != nil {
		return x.RedirectAddressType
	}
	return RedirectServer_IPV4
}

func (x *RedirectServer) GetRedirectServerAddress() string {
	if x != nil {
		return x.RedirectServerAddress
	}
	return ""
}

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

	Type ChargingCredit_UnitType `protobuf:"varint,2,opt,name=type,proto3,enum=magma.lte.ChargingCredit_UnitType" json:"type,omitempty"`
	// The number of seconds the credit is valid for
	ValidityTime   uint32                     `protobuf:"varint,3,opt,name=validity_time,json=validityTime,proto3" json:"validity_time,omitempty"`
	IsFinal        bool                       `protobuf:"varint,4,opt,name=is_final,json=isFinal,proto3" json:"is_final,omitempty"`
	FinalAction    ChargingCredit_FinalAction `protobuf:"varint,5,opt,name=final_action,json=finalAction,proto3,enum=magma.lte.ChargingCredit_FinalAction" json:"final_action,omitempty"`
	GrantedUnits   *GrantedUnits              `protobuf:"bytes,6,opt,name=granted_units,json=grantedUnits,proto3" json:"granted_units,omitempty"`
	RedirectServer *RedirectServer            `protobuf:"bytes,7,opt,name=redirect_server,json=redirectServer,proto3" json:"redirect_server,omitempty"`
	RestrictRules  []string                   `protobuf:"bytes,8,rep,name=restrict_rules,json=restrictRules,proto3" json:"restrict_rules,omitempty"`
}

func (x *ChargingCredit) Reset() {
	*x = ChargingCredit{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ChargingCredit) ProtoMessage() {}

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

func (x *ChargingCredit) GetType() ChargingCredit_UnitType {
	if x != nil {
		return x.Type
	}
	return ChargingCredit_BYTES
}

func (x *ChargingCredit) GetValidityTime() uint32 {
	if x != nil {
		return x.ValidityTime
	}
	return 0
}

func (x *ChargingCredit) GetIsFinal() bool {
	if x != nil {
		return x.IsFinal
	}
	return false
}

func (x *ChargingCredit) GetFinalAction() ChargingCredit_FinalAction {
	if x != nil {
		return x.FinalAction
	}
	return ChargingCredit_TERMINATE
}

func (x *ChargingCredit) GetGrantedUnits() *GrantedUnits {
	if x != nil {
		return x.GrantedUnits
	}
	return nil
}

func (x *ChargingCredit) GetRedirectServer() *RedirectServer {
	if x != nil {
		return x.RedirectServer
	}
	return nil
}

func (x *ChargingCredit) GetRestrictRules() []string {
	if x != nil {
		return x.RestrictRules
	}
	return nil
}

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

	Total uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
	Tx    uint64 `protobuf:"varint,2,opt,name=tx,proto3" json:"tx,omitempty"`
	Rx    uint64 `protobuf:"varint,3,opt,name=rx,proto3" json:"rx,omitempty"`
}

func (x *RequestedUnits) Reset() {
	*x = RequestedUnits{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RequestedUnits) ProtoMessage() {}

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

func (x *RequestedUnits) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *RequestedUnits) GetTx() uint64 {
	if x != nil {
		return x.Tx
	}
	return 0
}

func (x *RequestedUnits) GetRx() uint64 {
	if x != nil {
		return x.Rx
	}
	return 0
}

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

	BytesTx           uint64                 `protobuf:"varint,1,opt,name=bytes_tx,json=bytesTx,proto3" json:"bytes_tx,omitempty"`
	BytesRx           uint64                 `protobuf:"varint,2,opt,name=bytes_rx,json=bytesRx,proto3" json:"bytes_rx,omitempty"`
	ChargingKey       uint32                 `protobuf:"varint,4,opt,name=charging_key,json=chargingKey,proto3" json:"charging_key,omitempty"`
	Type              CreditUsage_UpdateType `protobuf:"varint,5,opt,name=type,proto3,enum=magma.lte.CreditUsage_UpdateType" json:"type,omitempty"`
	MonitoringKey     []byte                 `protobuf:"bytes,6,opt,name=monitoring_key,json=monitoringKey,proto3" json:"monitoring_key,omitempty"`
	ServiceIdentifier *ServiceIdentifier     `protobuf:"bytes,7,opt,name=service_identifier,json=serviceIdentifier,proto3" json:"service_identifier,omitempty"`
	RequestedUnits    *RequestedUnits        `protobuf:"bytes,8,opt,name=requested_units,json=requestedUnits,proto3" json:"requested_units,omitempty"`
}

func (x *CreditUsage) Reset() {
	*x = CreditUsage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreditUsage) ProtoMessage() {}

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

func (x *CreditUsage) GetBytesTx() uint64 {
	if x != nil {
		return x.BytesTx
	}
	return 0
}

func (x *CreditUsage) GetBytesRx() uint64 {
	if x != nil {
		return x.BytesRx
	}
	return 0
}

func (x *CreditUsage) GetChargingKey() uint32 {
	if x != nil {
		return x.ChargingKey
	}
	return 0
}

func (x *CreditUsage) GetType() CreditUsage_UpdateType {
	if x != nil {
		return x.Type
	}
	return CreditUsage_THRESHOLD
}

func (x *CreditUsage) GetMonitoringKey() []byte {
	if x != nil {
		return x.MonitoringKey
	}
	return nil
}

func (x *CreditUsage) GetServiceIdentifier() *ServiceIdentifier {
	if x != nil {
		return x.ServiceIdentifier
	}
	return nil
}

func (x *CreditUsage) GetRequestedUnits() *RequestedUnits {
	if x != nil {
		return x.RequestedUnits
	}
	return nil
}

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

	Usage     *CreditUsage `protobuf:"bytes,1,opt,name=usage,proto3" json:"usage,omitempty"`
	SessionId string       `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	// unique among session
	RequestNumber uint32 `protobuf:"varint,3,opt,name=request_number,json=requestNumber,proto3" json:"request_number,omitempty"`
	SpgwIpv4      string `protobuf:"bytes,7,opt,name=spgw_ipv4,json=spgwIpv4,proto3" json:"spgw_ipv4,omitempty"`
	Imei          string `protobuf:"bytes,9,opt,name=imei,proto3" json:"imei,omitempty"`
	PlmnId        string `protobuf:"bytes,10,opt,name=plmn_id,json=plmnId,proto3" json:"plmn_id,omitempty"`
	ImsiPlmnId    string `protobuf:"bytes,11,opt,name=imsi_plmn_id,json=imsiPlmnId,proto3" json:"imsi_plmn_id,omitempty"`
	UserLocation  []byte `protobuf:"bytes,12,opt,name=user_location,json=userLocation,proto3" json:"user_location,omitempty"`
	// MAC Address for WLAN
	HardwareAddr            []byte                `protobuf:"bytes,14,opt,name=hardware_addr,json=hardwareAddr,proto3" json:"hardware_addr,omitempty"`
	TgppCtx                 *TgppContext          `protobuf:"bytes,15,opt,name=tgpp_ctx,json=tgppCtx,proto3" json:"tgpp_ctx,omitempty"`
	CommonContext           *CommonSessionContext `protobuf:"bytes,16,opt,name=common_context,json=commonContext,proto3" json:"common_context,omitempty"`
	RatSpecificContext      *RatSpecificContext   `protobuf:"bytes,17,opt,name=rat_specific_context,json=ratSpecificContext,proto3" json:"rat_specific_context,omitempty"`
	ChargingCharacteristics string                `protobuf:"bytes,18,opt,name=charging_characteristics,json=chargingCharacteristics,proto3" json:"charging_characteristics,omitempty"`
}

func (x *CreditUsageUpdate) Reset() {
	*x = CreditUsageUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreditUsageUpdate) ProtoMessage() {}

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

func (x *CreditUsageUpdate) GetUsage() *CreditUsage {
	if x != nil {
		return x.Usage
	}
	return nil
}

func (x *CreditUsageUpdate) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *CreditUsageUpdate) GetRequestNumber() uint32 {
	if x != nil {
		return x.RequestNumber
	}
	return 0
}

func (x *CreditUsageUpdate) GetSpgwIpv4() string {
	if x != nil {
		return x.SpgwIpv4
	}
	return ""
}

func (x *CreditUsageUpdate) GetImei() string {
	if x != nil {
		return x.Imei
	}
	return ""
}

func (x *CreditUsageUpdate) GetPlmnId() string {
	if x != nil {
		return x.PlmnId
	}
	return ""
}

func (x *CreditUsageUpdate) GetImsiPlmnId() string {
	if x != nil {
		return x.ImsiPlmnId
	}
	return ""
}

func (x *CreditUsageUpdate) GetUserLocation() []byte {
	if x != nil {
		return x.UserLocation
	}
	return nil
}

func (x *CreditUsageUpdate) GetHardwareAddr() []byte {
	if x != nil {
		return x.HardwareAddr
	}
	return nil
}

func (x *CreditUsageUpdate) GetTgppCtx() *TgppContext {
	if x != nil {
		return x.TgppCtx
	}
	return nil
}

func (x *CreditUsageUpdate) GetCommonContext() *CommonSessionContext {
	if x != nil {
		return x.CommonContext
	}
	return nil
}

func (x *CreditUsageUpdate) GetRatSpecificContext() *RatSpecificContext {
	if x != nil {
		return x.RatSpecificContext
	}
	return nil
}

func (x *CreditUsageUpdate) GetChargingCharacteristics() string {
	if x != nil {
		return x.ChargingCharacteristics
	}
	return ""
}

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

	Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	// SubscriberID/IMSI
	Sid               string             `protobuf:"bytes,2,opt,name=sid,proto3" json:"sid,omitempty"`
	ChargingKey       uint32             `protobuf:"varint,3,opt,name=charging_key,json=chargingKey,proto3" json:"charging_key,omitempty"`
	Credit            *ChargingCredit    `protobuf:"bytes,4,opt,name=credit,proto3" json:"credit,omitempty"`
	ResultCode        uint32             `protobuf:"varint,6,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	ServiceIdentifier *ServiceIdentifier `protobuf:"bytes,7,opt,name=service_identifier,json=serviceIdentifier,proto3" json:"service_identifier,omitempty"`
	// When this is set to an infinite limit, field 'credit' should be ignored
	LimitType CreditLimitType `protobuf:"varint,9,opt,name=limit_type,json=limitType,proto3,enum=magma.lte.CreditLimitType" json:"limit_type,omitempty"`
	TgppCtx   *TgppContext    `protobuf:"bytes,10,opt,name=tgpp_ctx,json=tgppCtx,proto3" json:"tgpp_ctx,omitempty"`
	SessionId string          `protobuf:"bytes,11,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
}

func (x *CreditUpdateResponse) Reset() {
	*x = CreditUpdateResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreditUpdateResponse) ProtoMessage() {}

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

func (x *CreditUpdateResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

func (x *CreditUpdateResponse) GetSid() string {
	if x != nil {
		return x.Sid
	}
	return ""
}

func (x *CreditUpdateResponse) GetChargingKey() uint32 {
	if x != nil {
		return x.ChargingKey
	}
	return 0
}

func (x *CreditUpdateResponse) GetCredit() *ChargingCredit {
	if x != nil {
		return x.Credit
	}
	return nil
}

func (x *CreditUpdateResponse) GetResultCode() uint32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

func (x *CreditUpdateResponse) GetServiceIdentifier() *ServiceIdentifier {
	if x != nil {
		return x.ServiceIdentifier
	}
	return nil
}

func (x *CreditUpdateResponse) GetLimitType() CreditLimitType {
	if x != nil {
		return x.LimitType
	}
	return CreditLimitType_FINITE
}

func (x *CreditUpdateResponse) GetTgppCtx() *TgppContext {
	if x != nil {
		return x.TgppCtx
	}
	return nil
}

func (x *CreditUpdateResponse) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

// Used amount for a usage monitor
type UsageMonitorUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MonitoringKey []byte          `protobuf:"bytes,1,opt,name=monitoring_key,json=monitoringKey,proto3" json:"monitoring_key,omitempty"`
	Level         MonitoringLevel `protobuf:"varint,2,opt,name=level,proto3,enum=magma.lte.MonitoringLevel" json:"level,omitempty"`
	BytesTx       uint64          `protobuf:"varint,3,opt,name=bytes_tx,json=bytesTx,proto3" json:"bytes_tx,omitempty"`
	BytesRx       uint64          `protobuf:"varint,4,opt,name=bytes_rx,json=bytesRx,proto3" json:"bytes_rx,omitempty"`
}

func (x *UsageMonitorUpdate) Reset() {
	*x = UsageMonitorUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UsageMonitorUpdate) ProtoMessage() {}

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

func (x *UsageMonitorUpdate) GetMonitoringKey() []byte {
	if x != nil {
		return x.MonitoringKey
	}
	return nil
}

func (x *UsageMonitorUpdate) GetLevel() MonitoringLevel {
	if x != nil {
		return x.Level
	}
	return MonitoringLevel_SESSION_LEVEL
}

func (x *UsageMonitorUpdate) GetBytesTx() uint64 {
	if x != nil {
		return x.BytesTx
	}
	return 0
}

func (x *UsageMonitorUpdate) GetBytesRx() uint64 {
	if x != nil {
		return x.BytesRx
	}
	return 0
}

// New received threshold for a usage monitor
type UsageMonitoringCredit struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Action        UsageMonitoringCredit_Action `protobuf:"varint,1,opt,name=action,proto3,enum=magma.lte.UsageMonitoringCredit_Action" json:"action,omitempty"`
	MonitoringKey []byte                       `protobuf:"bytes,2,opt,name=monitoring_key,json=monitoringKey,proto3" json:"monitoring_key,omitempty"`
	Level         MonitoringLevel              `protobuf:"varint,3,opt,name=level,proto3,enum=magma.lte.MonitoringLevel" json:"level,omitempty"`
	GrantedUnits  *GrantedUnits                `protobuf:"bytes,5,opt,name=granted_units,json=grantedUnits,proto3" json:"granted_units,omitempty"`
}

func (x *UsageMonitoringCredit) Reset() {
	*x = UsageMonitoringCredit{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UsageMonitoringCredit) ProtoMessage() {}

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

func (x *UsageMonitoringCredit) GetAction() UsageMonitoringCredit_Action {
	if x != nil {
		return x.Action
	}
	return UsageMonitoringCredit_CONTINUE
}

func (x *UsageMonitoringCredit) GetMonitoringKey() []byte {
	if x != nil {
		return x.MonitoringKey
	}
	return nil
}

func (x *UsageMonitoringCredit) GetLevel() MonitoringLevel {
	if x != nil {
		return x.Level
	}
	return MonitoringLevel_SESSION_LEVEL
}

func (x *UsageMonitoringCredit) GetGrantedUnits() *GrantedUnits {
	if x != nil {
		return x.GrantedUnits
	}
	return nil
}

// A request to update a usage monitor given its usage and session information
// TODO this message name is misleading since we don't only use it for
// usage reporting
type UsageMonitoringUpdateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Update    *UsageMonitorUpdate `protobuf:"bytes,1,opt,name=update,proto3" json:"update,omitempty"`
	SessionId string              `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	// unique among session
	RequestNumber uint32 `protobuf:"varint,3,opt,name=request_number,json=requestNumber,proto3" json:"request_number,omitempty"`
	// SubscriberID/IMSI
	Sid    string `protobuf:"bytes,4,opt,name=sid,proto3" json:"sid,omitempty"`
	UeIpv4 string `protobuf:"bytes,5,opt,name=ue_ipv4,json=ueIpv4,proto3" json:"ue_ipv4,omitempty"`
	// MAC Address for WLAN
	HardwareAddr            []byte       `protobuf:"bytes,6,opt,name=hardware_addr,json=hardwareAddr,proto3" json:"hardware_addr,omitempty"`
	RatType                 RATType      `protobuf:"varint,7,opt,name=rat_type,json=ratType,proto3,enum=magma.lte.RATType" json:"rat_type,omitempty"`
	TgppCtx                 *TgppContext `protobuf:"bytes,8,opt,name=tgpp_ctx,json=tgppCtx,proto3" json:"tgpp_ctx,omitempty"`
	EventTrigger            EventTrigger `protobuf:"varint,9,opt,name=event_trigger,json=eventTrigger,proto3,enum=magma.lte.EventTrigger" json:"event_trigger,omitempty"`
	ChargingCharacteristics string       `protobuf:"bytes,10,opt,name=charging_characteristics,json=chargingCharacteristics,proto3" json:"charging_characteristics,omitempty"`
}

func (x *UsageMonitoringUpdateRequest) Reset() {
	*x = UsageMonitoringUpdateRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UsageMonitoringUpdateRequest) ProtoMessage() {}

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

func (x *UsageMonitoringUpdateRequest) GetUpdate() *UsageMonitorUpdate {
	if x != nil {
		return x.Update
	}
	return nil
}

func (x *UsageMonitoringUpdateRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *UsageMonitoringUpdateRequest) GetRequestNumber() uint32 {
	if x != nil {
		return x.RequestNumber
	}
	return 0
}

func (x *UsageMonitoringUpdateRequest) GetSid() string {
	if x != nil {
		return x.Sid
	}
	return ""
}

func (x *UsageMonitoringUpdateRequest) GetUeIpv4() string {
	if x != nil {
		return x.UeIpv4
	}
	return ""
}

func (x *UsageMonitoringUpdateRequest) GetHardwareAddr() []byte {
	if x != nil {
		return x.HardwareAddr
	}
	return nil
}

func (x *UsageMonitoringUpdateRequest) GetRatType() RATType {
	if x != nil {
		return x.RatType
	}
	return RATType_TGPP_LTE
}

func (x *UsageMonitoringUpdateRequest) GetTgppCtx() *TgppContext {
	if x != nil {
		return x.TgppCtx
	}
	return nil
}

func (x *UsageMonitoringUpdateRequest) GetEventTrigger() EventTrigger {
	if x != nil {
		return x.EventTrigger
	}
	return EventTrigger_SGSN_CHANGE
}

func (x *UsageMonitoringUpdateRequest) GetChargingCharacteristics() string {
	if x != nil {
		return x.ChargingCharacteristics
	}
	return ""
}

// Response to a usage monitor update with the credit received and session info
type UsageMonitoringUpdateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Credit    *UsageMonitoringCredit `protobuf:"bytes,1,opt,name=credit,proto3" json:"credit,omitempty"`
	SessionId string                 `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	// SubscriberID/IMSI
	Sid                   string                `protobuf:"bytes,3,opt,name=sid,proto3" json:"sid,omitempty"`
	Success               bool                  `protobuf:"varint,4,opt,name=success,proto3" json:"success,omitempty"`
	EventTriggers         []EventTrigger        `protobuf:"varint,5,rep,packed,name=event_triggers,json=eventTriggers,proto3,enum=magma.lte.EventTrigger" json:"event_triggers,omitempty"`
	RevalidationTime      *timestamp.Timestamp  `protobuf:"bytes,6,opt,name=revalidation_time,json=revalidationTime,proto3" json:"revalidation_time,omitempty"`
	ResultCode            uint32                `protobuf:"varint,7,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	RulesToRemove         []string              `protobuf:"bytes,8,rep,name=rules_to_remove,json=rulesToRemove,proto3" json:"rules_to_remove,omitempty"`
	StaticRulesToInstall  []*StaticRuleInstall  `protobuf:"bytes,9,rep,name=static_rules_to_install,json=staticRulesToInstall,proto3" json:"static_rules_to_install,omitempty"`
	DynamicRulesToInstall []*DynamicRuleInstall `protobuf:"bytes,10,rep,name=dynamic_rules_to_install,json=dynamicRulesToInstall,proto3" json:"dynamic_rules_to_install,omitempty"`
	TgppCtx               *TgppContext          `protobuf:"bytes,11,opt,name=tgpp_ctx,json=tgppCtx,proto3" json:"tgpp_ctx,omitempty"`
}

func (x *UsageMonitoringUpdateResponse) Reset() {
	*x = UsageMonitoringUpdateResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UsageMonitoringUpdateResponse) ProtoMessage() {}

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

func (x *UsageMonitoringUpdateResponse) GetCredit() *UsageMonitoringCredit {
	if x != nil {
		return x.Credit
	}
	return nil
}

func (x *UsageMonitoringUpdateResponse) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *UsageMonitoringUpdateResponse) GetSid() string {
	if x != nil {
		return x.Sid
	}
	return ""
}

func (x *UsageMonitoringUpdateResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

func (x *UsageMonitoringUpdateResponse) GetEventTriggers() []EventTrigger {
	if x != nil {
		return x.EventTriggers
	}
	return nil
}

func (x *UsageMonitoringUpdateResponse) GetRevalidationTime() *timestamp.Timestamp {
	if x != nil {
		return x.RevalidationTime
	}
	return nil
}

func (x *UsageMonitoringUpdateResponse) GetResultCode() uint32 {
	if x != nil {
		return x.ResultCode
	}
	return 0
}

func (x *UsageMonitoringUpdateResponse) GetRulesToRemove() []string {
	if x != nil {
		return x.RulesToRemove
	}
	return nil
}

func (x *UsageMonitoringUpdateResponse) GetStaticRulesToInstall() []*StaticRuleInstall {
	if x != nil {
		return x.StaticRulesToInstall
	}
	return nil
}

func (x *UsageMonitoringUpdateResponse) GetDynamicRulesToInstall() []*DynamicRuleInstall {
	if x != nil {
		return x.DynamicRulesToInstall
	}
	return nil
}

func (x *UsageMonitoringUpdateResponse) GetTgppCtx() *TgppContext {
	if x != nil {
		return x.TgppCtx
	}
	return nil
}

// QoS Information to be sent in CCR-Init message
type QosInformationRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ApnAmbrDl               uint32 `protobuf:"varint,1,opt,name=apn_ambr_dl,json=apnAmbrDl,proto3" json:"apn_ambr_dl,omitempty"`
	ApnAmbrUl               uint32 `protobuf:"varint,2,opt,name=apn_ambr_ul,json=apnAmbrUl,proto3" json:"apn_ambr_ul,omitempty"`
	PriorityLevel           uint32 `protobuf:"varint,3,opt,name=priority_level,json=priorityLevel,proto3" json:"priority_level,omitempty"`
	PreemptionCapability    uint32 `protobuf:"varint,4,opt,name=preemption_capability,json=preemptionCapability,proto3" json:"preemption_capability,omitempty"`
	PreemptionVulnerability uint32 `protobuf:"varint,5,opt,name=preemption_vulnerability,json=preemptionVulnerability,proto3" json:"preemption_vulnerability,omitempty"`
	QosClassId              uint32 `protobuf:"varint,6,opt,name=qos_class_id,json=qosClassId,proto3" json:"qos_class_id,omitempty"`
	// Unit (either bps or Kbps)
	BrUnit QosInformationRequest_BitrateUnitsAMBR `protobuf:"varint,7,opt,name=br_unit,json=brUnit,proto3,enum=magma.lte.QosInformationRequest_BitrateUnitsAMBR" json:"br_unit,omitempty"`
}

func (x *QosInformationRequest) Reset() {
	*x = QosInformationRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*QosInformationRequest) ProtoMessage() {}

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

func (x *QosInformationRequest) GetApnAmbrDl() uint32 {
	if x != nil {
		return x.ApnAmbrDl
	}
	return 0
}

func (x *QosInformationRequest) GetApnAmbrUl() uint32 {
	if x != nil {
		return x.ApnAmbrUl
	}
	return 0
}

func (x *QosInformationRequest) GetPriorityLevel() uint32 {
	if x != nil {
		return x.PriorityLevel
	}
	return 0
}

func (x *QosInformationRequest) GetPreemptionCapability() uint32 {
	if x != nil {
		return x.PreemptionCapability
	}
	return 0
}

func (x *QosInformationRequest) GetPreemptionVulnerability() uint32 {
	if x != nil {
		return x.PreemptionVulnerability
	}
	return 0
}

func (x *QosInformationRequest) GetQosClassId() uint32 {
	if x != nil {
		return x.QosClassId
	}
	return 0
}

func (x *QosInformationRequest) GetBrUnit() QosInformationRequest_BitrateUnitsAMBR {
	if x != nil {
		return x.BrUnit
	}
	return QosInformationRequest_BPS
}

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

	ApnAmbrDl               uint64    `protobuf:"varint,1,opt,name=apn_ambr_dl,json=apnAmbrDl,proto3" json:"apn_ambr_dl,omitempty"`
	ApnAmbrUl               uint64    `protobuf:"varint,2,opt,name=apn_ambr_ul,json=apnAmbrUl,proto3" json:"apn_ambr_ul,omitempty"`
	PriorityLevel           uint32    `protobuf:"varint,3,opt,name=priority_level,json=priorityLevel,proto3" json:"priority_level,omitempty"`
	PreemptionCapability    PremCapab `protobuf:"varint,4,opt,name=preemption_capability,json=preemptionCapability,proto3,enum=magma.lte.PremCapab" json:"preemption_capability,omitempty"`
	PreemptionVulnerability PremVuner `protobuf:"varint,5,opt,name=preemption_vulnerability,json=preemptionVulnerability,proto3,enum=magma.lte.PremVuner" json:"preemption_vulnerability,omitempty"`
	QosClassId              QCI       `protobuf:"varint,6,opt,name=qos_class_id,json=qosClassId,proto3,enum=magma.lte.QCI" json:"qos_class_id,omitempty"`
	// Unit (either bps or Kbps)
	BrUnit M5GQosInformationRequest_BitrateUnitsAMBR `protobuf:"varint,7,opt,name=br_unit,json=brUnit,proto3,enum=magma.lte.M5GQosInformationRequest_BitrateUnitsAMBR" json:"br_unit,omitempty"`
}

func (x *M5GQosInformationRequest) Reset() {
	*x = M5GQosInformationRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*M5GQosInformationRequest) ProtoMessage() {}

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

func (x *M5GQosInformationRequest) GetApnAmbrDl() uint64 {
	if x != nil {
		return x.ApnAmbrDl
	}
	return 0
}

func (x *M5GQosInformationRequest) GetApnAmbrUl() uint64 {
	if x != nil {
		return x.ApnAmbrUl
	}
	return 0
}

func (x *M5GQosInformationRequest) GetPriorityLevel() uint32 {
	if x != nil {
		return x.PriorityLevel
	}
	return 0
}

func (x *M5GQosInformationRequest) GetPreemptionCapability() PremCapab {
	if x != nil {
		return x.PreemptionCapability
	}
	return PremCapab_SHALL_NOT_TRIGGER_PRE_EMPTION
}

func (x *M5GQosInformationRequest) GetPreemptionVulnerability() PremVuner {
	if x != nil {
		return x.PreemptionVulnerability
	}
	return PremVuner_NOT_PREMTABLE
}

func (x *M5GQosInformationRequest) GetQosClassId() QCI {
	if x != nil {
		return x.QosClassId
	}
	return QCI_QCI_0
}

func (x *M5GQosInformationRequest) GetBrUnit() M5GQosInformationRequest_BitrateUnitsAMBR {
	if x != nil {
		return x.BrUnit
	}
	return M5GQosInformationRequest_BPS
}

// TgppContext is a session specific 3GPP context session proxy may meed session manager to persist
type TgppContext struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GxDestHost string `protobuf:"bytes,1,opt,name=gx_dest_host,json=gxDestHost,proto3" json:"gx_dest_host,omitempty"`
	GyDestHost string `protobuf:"bytes,2,opt,name=gy_dest_host,json=gyDestHost,proto3" json:"gy_dest_host,omitempty"`
}

func (x *TgppContext) Reset() {
	*x = TgppContext{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TgppContext) ProtoMessage() {}

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

func (x *TgppContext) GetGxDestHost() string {
	if x != nil {
		return x.GxDestHost
	}
	return ""
}

func (x *TgppContext) GetGyDestHost() string {
	if x != nil {
		return x.GyDestHost
	}
	return ""
}

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

	AccessTimezone     *Timezone             `protobuf:"bytes,1,opt,name=access_timezone,json=accessTimezone,proto3" json:"access_timezone,omitempty"`
	SessionId          string                `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	RequestedUnits     *RequestedUnits       `protobuf:"bytes,3,opt,name=requested_units,json=requestedUnits,proto3" json:"requested_units,omitempty"`
	CommonContext      *CommonSessionContext `protobuf:"bytes,16,opt,name=common_context,json=commonContext,proto3" json:"common_context,omitempty"`
	RatSpecificContext *RatSpecificContext   `protobuf:"bytes,17,opt,name=rat_specific_context,json=ratSpecificContext,proto3" json:"rat_specific_context,omitempty"`
}

func (x *CreateSessionRequest) Reset() {
	*x = CreateSessionRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreateSessionRequest) ProtoMessage() {}

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

func (x *CreateSessionRequest) GetAccessTimezone() *Timezone {
	if x != nil {
		return x.AccessTimezone
	}
	return nil
}

func (x *CreateSessionRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *CreateSessionRequest) GetRequestedUnits() *RequestedUnits {
	if x != nil {
		return x.RequestedUnits
	}
	return nil
}

func (x *CreateSessionRequest) GetCommonContext() *CommonSessionContext {
	if x != nil {
		return x.CommonContext
	}
	return nil
}

func (x *CreateSessionRequest) GetRatSpecificContext() *RatSpecificContext {
	if x != nil {
		return x.RatSpecificContext
	}
	return nil
}

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

	// List of charging credits that should be installed for the session
	Credits []*CreditUpdateResponse `protobuf:"bytes,1,rep,name=credits,proto3" json:"credits,omitempty"`
	// List of usage monitors that should be installed for the session
	UsageMonitors    []*UsageMonitoringUpdateResponse `protobuf:"bytes,6,rep,name=usage_monitors,json=usageMonitors,proto3" json:"usage_monitors,omitempty"`
	StaticRules      []*StaticRuleInstall             `protobuf:"bytes,7,rep,name=static_rules,json=staticRules,proto3" json:"static_rules,omitempty"`
	DynamicRules     []*DynamicRuleInstall            `protobuf:"bytes,8,rep,name=dynamic_rules,json=dynamicRules,proto3" json:"dynamic_rules,omitempty"`
	SessionId        string                           `protobuf:"bytes,9,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	TgppCtx          *TgppContext                     `protobuf:"bytes,10,opt,name=tgpp_ctx,json=tgppCtx,proto3" json:"tgpp_ctx,omitempty"`
	EventTriggers    []EventTrigger                   `protobuf:"varint,11,rep,packed,name=event_triggers,json=eventTriggers,proto3,enum=magma.lte.EventTrigger" json:"event_triggers,omitempty"`
	RevalidationTime *timestamp.Timestamp             `protobuf:"bytes,12,opt,name=revalidation_time,json=revalidationTime,proto3" json:"revalidation_time,omitempty"`
	Online           bool                             `protobuf:"varint,13,opt,name=online,proto3" json:"online,omitempty"`
	Offline          bool                             `protobuf:"varint,15,opt,name=offline,proto3" json:"offline,omitempty"`
}

func (x *CreateSessionResponse) Reset() {
	*x = CreateSessionResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreateSessionResponse) ProtoMessage() {}

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

func (x *CreateSessionResponse) GetCredits() []*CreditUpdateResponse {
	if x != nil {
		return x.Credits
	}
	return nil
}

func (x *CreateSessionResponse) GetUsageMonitors() []*UsageMonitoringUpdateResponse {
	if x != nil {
		return x.UsageMonitors
	}
	return nil
}

func (x *CreateSessionResponse) GetStaticRules() []*StaticRuleInstall {
	if x != nil {
		return x.StaticRules
	}
	return nil
}

func (x *CreateSessionResponse) GetDynamicRules() []*DynamicRuleInstall {
	if x != nil {
		return x.DynamicRules
	}
	return nil
}

func (x *CreateSessionResponse) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *CreateSessionResponse) GetTgppCtx() *TgppContext {
	if x != nil {
		return x.TgppCtx
	}
	return nil
}

func (x *CreateSessionResponse) GetEventTriggers() []EventTrigger {
	if x != nil {
		return x.EventTriggers
	}
	return nil
}

func (x *CreateSessionResponse) GetRevalidationTime() *timestamp.Timestamp {
	if x != nil {
		return x.RevalidationTime
	}
	return nil
}

func (x *CreateSessionResponse) GetOnline() bool {
	if x != nil {
		return x.Online
	}
	return false
}

func (x *CreateSessionResponse) GetOffline() bool {
	if x != nil {
		return x.Offline
	}
	return false
}

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

	RuleId         string               `protobuf:"bytes,1,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"`
	ActivationTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=activation_time,json=activationTime,proto3" json:"activation_time,omitempty"`
	// Optional field. Set as 0 to mark as unused
	DeactivationTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=deactivation_time,json=deactivationTime,proto3" json:"deactivation_time,omitempty"`
}

func (x *StaticRuleInstall) Reset() {
	*x = StaticRuleInstall{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*StaticRuleInstall) ProtoMessage() {}

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

func (x *StaticRuleInstall) GetRuleId() string {
	if x != nil {
		return x.RuleId
	}
	return ""
}

func (x *StaticRuleInstall) GetActivationTime() *timestamp.Timestamp {
	if x != nil {
		return x.ActivationTime
	}
	return nil
}

func (x *StaticRuleInstall) GetDeactivationTime() *timestamp.Timestamp {
	if x != nil {
		return x.DeactivationTime
	}
	return nil
}

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

	PolicyRule     *PolicyRule          `protobuf:"bytes,1,opt,name=policy_rule,json=policyRule,proto3" json:"policy_rule,omitempty"`
	ActivationTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=activation_time,json=activationTime,proto3" json:"activation_time,omitempty"`
	// Optional field. Set as 0 to mark as unused
	DeactivationTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=deactivation_time,json=deactivationTime,proto3" json:"deactivation_time,omitempty"`
}

func (x *DynamicRuleInstall) Reset() {
	*x = DynamicRuleInstall{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DynamicRuleInstall) ProtoMessage() {}

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

func (x *DynamicRuleInstall) GetPolicyRule() *PolicyRule {
	if x != nil {
		return x.PolicyRule
	}
	return nil
}

func (x *DynamicRuleInstall) GetActivationTime() *timestamp.Timestamp {
	if x != nil {
		return x.ActivationTime
	}
	return nil
}

func (x *DynamicRuleInstall) GetDeactivationTime() *timestamp.Timestamp {
	if x != nil {
		return x.DeactivationTime
	}
	return nil
}

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

	Updates       []*CreditUsageUpdate            `protobuf:"bytes,1,rep,name=updates,proto3" json:"updates,omitempty"`
	UsageMonitors []*UsageMonitoringUpdateRequest `protobuf:"bytes,3,rep,name=usage_monitors,json=usageMonitors,proto3" json:"usage_monitors,omitempty"`
}

func (x *UpdateSessionRequest) Reset() {
	*x = UpdateSessionRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateSessionRequest) ProtoMessage() {}

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

func (x *UpdateSessionRequest) GetUpdates() []*CreditUsageUpdate {
	if x != nil {
		return x.Updates
	}
	return nil
}

func (x *UpdateSessionRequest) GetUsageMonitors() []*UsageMonitoringUpdateRequest {
	if x != nil {
		return x.UsageMonitors
	}
	return nil
}

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

	Responses             []*CreditUpdateResponse          `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
	UsageMonitorResponses []*UsageMonitoringUpdateResponse `protobuf:"bytes,3,rep,name=usage_monitor_responses,json=usageMonitorResponses,proto3" json:"usage_monitor_responses,omitempty"`
}

func (x *UpdateSessionResponse) Reset() {
	*x = UpdateSessionResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateSessionResponse) ProtoMessage() {}

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

func (x *UpdateSessionResponse) GetResponses() []*CreditUpdateResponse {
	if x != nil {
		return x.Responses
	}
	return nil
}

func (x *UpdateSessionResponse) GetUsageMonitorResponses() []*UsageMonitoringUpdateResponse {
	if x != nil {
		return x.UsageMonitorResponses
	}
	return nil
}

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

	// IMSI
	Sid       string `protobuf:"bytes,1,opt,name=sid,proto3" json:"sid,omitempty"`
	SessionId string `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
}

func (x *SessionTerminateResponse) Reset() {
	*x = SessionTerminateResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SessionTerminateResponse) ProtoMessage() {}

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

func (x *SessionTerminateResponse) GetSid() string {
	if x != nil {
		return x.Sid
	}
	return ""
}

func (x *SessionTerminateResponse) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

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

	SessionId     string                `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	RequestNumber uint32                `protobuf:"varint,4,opt,name=request_number,json=requestNumber,proto3" json:"request_number,omitempty"`
	CreditUsages  []*CreditUsage        `protobuf:"bytes,5,rep,name=credit_usages,json=creditUsages,proto3" json:"credit_usages,omitempty"`
	MonitorUsages []*UsageMonitorUpdate `protobuf:"bytes,6,rep,name=monitor_usages,json=monitorUsages,proto3" json:"monitor_usages,omitempty"`
	SpgwIpv4      string                `protobuf:"bytes,9,opt,name=spgw_ipv4,json=spgwIpv4,proto3" json:"spgw_ipv4,omitempty"`
	Imei          string                `protobuf:"bytes,10,opt,name=imei,proto3" json:"imei,omitempty"`
	PlmnId        string                `protobuf:"bytes,11,opt,name=plmn_id,json=plmnId,proto3" json:"plmn_id,omitempty"`
	ImsiPlmnId    string                `protobuf:"bytes,12,opt,name=imsi_plmn_id,json=imsiPlmnId,proto3" json:"imsi_plmn_id,omitempty"`
	UserLocation  []byte                `protobuf:"bytes,13,opt,name=user_location,json=userLocation,proto3" json:"user_location,omitempty"`
	// MAC Address for WLAN
	HardwareAddr            []byte                `protobuf:"bytes,15,opt,name=hardware_addr,json=hardwareAddr,proto3" json:"hardware_addr,omitempty"`
	TgppCtx                 *TgppContext          `protobuf:"bytes,16,opt,name=tgpp_ctx,json=tgppCtx,proto3" json:"tgpp_ctx,omitempty"`
	CommonContext           *CommonSessionContext `protobuf:"bytes,17,opt,name=common_context,json=commonContext,proto3" json:"common_context,omitempty"`
	ChargingCharacteristics string                `protobuf:"bytes,18,opt,name=charging_characteristics,json=chargingCharacteristics,proto3" json:"charging_characteristics,omitempty"`
}

func (x *SessionTerminateRequest) Reset() {
	*x = SessionTerminateRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SessionTerminateRequest) ProtoMessage() {}

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

func (x *SessionTerminateRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *SessionTerminateRequest) GetRequestNumber() uint32 {
	if x != nil {
		return x.RequestNumber
	}
	return 0
}

func (x *SessionTerminateRequest) GetCreditUsages() []*CreditUsage {
	if x != nil {
		return x.CreditUsages
	}
	return nil
}

func (x *SessionTerminateRequest) GetMonitorUsages() []*UsageMonitorUpdate {
	if x != nil {
		return x.MonitorUsages
	}
	return nil
}

func (x *SessionTerminateRequest) GetSpgwIpv4() string {
	if x != nil {
		return x.SpgwIpv4
	}
	return ""
}

func (x *SessionTerminateRequest) GetImei() string {
	if x != nil {
		return x.Imei
	}
	return ""
}

func (x *SessionTerminateRequest) GetPlmnId() string {
	if x != nil {
		return x.PlmnId
	}
	return ""
}

func (x *SessionTerminateRequest) GetImsiPlmnId() string {
	if x != nil {
		return x.ImsiPlmnId
	}
	return ""
}

func (x *SessionTerminateRequest) GetUserLocation() []byte {
	if x != nil {
		return x.UserLocation
	}
	return nil
}

func (x *SessionTerminateRequest) GetHardwareAddr() []byte {
	if x != nil {
		return x.HardwareAddr
	}
	return nil
}

func (x *SessionTerminateRequest) GetTgppCtx() *TgppContext {
	if x != nil {
		return x.TgppCtx
	}
	return nil
}

func (x *SessionTerminateRequest) GetCommonContext() *CommonSessionContext {
	if x != nil {
		return x.CommonContext
	}
	return nil
}

func (x *SessionTerminateRequest) GetChargingCharacteristics() string {
	if x != nil {
		return x.ChargingCharacteristics
	}
	return ""
}

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

	NodeIdType NodeID_NodeIDType `protobuf:"varint,1,opt,name=node_id_type,json=nodeIdType,proto3,enum=magma.lte.NodeID_NodeIDType" json:"node_id_type,omitempty"`
	NodeId     string            `protobuf:"bytes,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
}

func (x *NodeID) Reset() {
	*x = NodeID{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[50]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*NodeID) ProtoMessage() {}

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

func (x *NodeID) GetNodeIdType() NodeID_NodeIDType {
	if x != nil {
		return x.NodeIdType
	}
	return NodeID_IPv4
}

func (x *NodeID) GetNodeId() string {
	if x != nil {
		return x.NodeId
	}
	return ""
}

// M5GSMCapability
type M5GSMCapability struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ReflectiveQos            bool `protobuf:"varint,1,opt,name=reflective_qos,json=reflectiveQos,proto3" json:"reflective_qos,omitempty"`
	MultiHomedIpv6PduSession bool `protobuf:"varint,2,opt,name=multi_homed_ipv6_pdu_session,json=multiHomedIpv6PduSession,proto3" json:"multi_homed_ipv6_pdu_session,omitempty"`
}

func (x *M5GSMCapability) Reset() {
	*x = M5GSMCapability{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*M5GSMCapability) ProtoMessage() {}

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

func (x *M5GSMCapability) GetReflectiveQos() bool {
	if x != nil {
		return x.ReflectiveQos
	}
	return false
}

func (x *M5GSMCapability) GetMultiHomedIpv6PduSession() bool {
	if x != nil {
		return x.MultiHomedIpv6PduSession
	}
	return false
}

// RequestedQosRules and AuthorizedQosRules
type QosRules struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	QosRuleIdentifier      uint32  `protobuf:"varint,1,opt,name=qos_rule_identifier,json=qosRuleIdentifier,proto3" json:"qos_rule_identifier,omitempty"`
	Dqr                    bool    `protobuf:"varint,2,opt,name=dqr,proto3" json:"dqr,omitempty"`
	NumberOfPacketFilters  uint32  `protobuf:"varint,3,opt,name=number_of_packet_filters,json=numberOfPacketFilters,proto3" json:"number_of_packet_filters,omitempty"`
	PacketFilterIdentifier []int32 `protobuf:"varint,4,rep,packed,name=packet_filter_identifier,json=packetFilterIdentifier,proto3" json:"packet_filter_identifier,omitempty"`
	QosRulePrecedence      uint32  `protobuf:"varint,5,opt,name=qos_rule_precedence,json=qosRulePrecedence,proto3" json:"qos_rule_precedence,omitempty"`
	Segregation            bool    `protobuf:"varint,6,opt,name=segregation,proto3" json:"segregation,omitempty"`
	QosFlowIdentifier      uint32  `protobuf:"varint,7,opt,name=qos_flow_identifier,json=qosFlowIdentifier,proto3" json:"qos_flow_identifier,omitempty"`
}

func (x *QosRules) Reset() {
	*x = QosRules{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[52]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*QosRules) ProtoMessage() {}

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

func (x *QosRules) GetQosRuleIdentifier() uint32 {
	if x != nil {
		return x.QosRuleIdentifier
	}
	return 0
}

func (x *QosRules) GetDqr() bool {
	if x != nil {
		return x.Dqr
	}
	return false
}

func (x *QosRules) GetNumberOfPacketFilters() uint32 {
	if x != nil {
		return x.NumberOfPacketFilters
	}
	return 0
}

func (x *QosRules) GetPacketFilterIdentifier() []int32 {
	if x != nil {
		return x.PacketFilterIdentifier
	}
	return nil
}

func (x *QosRules) GetQosRulePrecedence() uint32 {
	if x != nil {
		return x.QosRulePrecedence
	}
	return 0
}

func (x *QosRules) GetSegregation() bool {
	if x != nil {
		return x.Segregation
	}
	return false
}

func (x *QosRules) GetQosFlowIdentifier() uint32 {
	if x != nil {
		return x.QosFlowIdentifier
	}
	return 0
}

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

	PolicyState  QosPolicy_PolicyState  `protobuf:"varint,1,opt,name=policy_state,json=policyState,proto3,enum=magma.lte.QosPolicy_PolicyState" json:"policy_state,omitempty"`
	Version      uint32                 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
	PolicyAction QosPolicy_PolicyAction `protobuf:"varint,3,opt,name=policy_action,json=policyAction,proto3,enum=magma.lte.QosPolicy_PolicyAction" json:"policy_action,omitempty"`
	Qos          *PolicyRule            `protobuf:"bytes,4,opt,name=qos,proto3" json:"qos,omitempty"`
}

func (x *QosPolicy) Reset() {
	*x = QosPolicy{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[53]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*QosPolicy) ProtoMessage() {}

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

func (x *QosPolicy) GetPolicyState() QosPolicy_PolicyState {
	if x != nil {
		return x.PolicyState
	}
	return QosPolicy_INSTALL
}

func (x *QosPolicy) GetVersion() uint32 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *QosPolicy) GetPolicyAction() QosPolicy_PolicyAction {
	if x != nil {
		return x.PolicyAction
	}
	return QosPolicy_ADD
}

func (x *QosPolicy) GetQos() *PolicyRule {
	if x != nil {
		return x.Qos
	}
	return nil
}

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

	PrioLevel    uint32    `protobuf:"varint,1,opt,name=prio_level,json=prioLevel,proto3" json:"prio_level,omitempty"`
	PreEmtionCap PremCapab `protobuf:"varint,2,opt,name=pre_emtion_cap,json=preEmtionCap,proto3,enum=magma.lte.PremCapab" json:"pre_emtion_cap,omitempty"`
	PreEmtionVul PremVuner `protobuf:"varint,3,opt,name=pre_emtion_vul,json=preEmtionVul,proto3,enum=magma.lte.PremVuner" json:"pre_emtion_vul,omitempty"`
}

func (x *AllocationAndRetentionPrio) Reset() {
	*x = AllocationAndRetentionPrio{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[54]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AllocationAndRetentionPrio) ProtoMessage() {}

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

func (x *AllocationAndRetentionPrio) GetPrioLevel() uint32 {
	if x != nil {
		return x.PrioLevel
	}
	return 0
}

func (x *AllocationAndRetentionPrio) GetPreEmtionCap() PremCapab {
	if x != nil {
		return x.PreEmtionCap
	}
	return PremCapab_SHALL_NOT_TRIGGER_PRE_EMPTION
}

func (x *AllocationAndRetentionPrio) GetPreEmtionVul() PremVuner {
	if x != nil {
		return x.PreEmtionVul
	}
	return PremVuner_NOT_PREMTABLE
}

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

	FiveQi uint32 `protobuf:"varint,1,opt,name=fiveQi,proto3" json:"fiveQi,omitempty"`
}

func (x *QosCharacteristics) Reset() {
	*x = QosCharacteristics{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[55]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*QosCharacteristics) ProtoMessage() {}

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

func (x *QosCharacteristics) GetFiveQi() uint32 {
	if x != nil {
		return x.FiveQi
	}
	return 0
}

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

	QosChars       *QosCharacteristics         `protobuf:"bytes,1,opt,name=qos_chars,json=qosChars,proto3" json:"qos_chars,omitempty"`
	AllocRetenPrio *AllocationAndRetentionPrio `protobuf:"bytes,2,opt,name=alloc_reten_prio,json=allocRetenPrio,proto3" json:"alloc_reten_prio,omitempty"`
}

func (x *FlowLevelParams) Reset() {
	*x = FlowLevelParams{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[56]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FlowLevelParams) ProtoMessage() {}

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

func (x *FlowLevelParams) GetQosChars() *QosCharacteristics {
	if x != nil {
		return x.QosChars
	}
	return nil
}

func (x *FlowLevelParams) GetAllocRetenPrio() *AllocationAndRetentionPrio {
	if x != nil {
		return x.AllocRetenPrio
	}
	return nil
}

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

	QosFlowIdent uint32           `protobuf:"varint,1,opt,name=qos_flow_ident,json=qosFlowIdent,proto3" json:"qos_flow_ident,omitempty"`
	Param        *FlowLevelParams `protobuf:"bytes,2,opt,name=param,proto3" json:"param,omitempty"`
}

func (x *QosFlow) Reset() {
	*x = QosFlow{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[57]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*QosFlow) ProtoMessage() {}

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

func (x *QosFlow) GetQosFlowIdent() uint32 {
	if x != nil {
		return x.QosFlowIdent
	}
	return 0
}

func (x *QosFlow) GetParam() *FlowLevelParams {
	if x != nil {
		return x.Param
	}
	return nil
}

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

	Flow *QosFlow `protobuf:"bytes,1,opt,name=flow,proto3" json:"flow,omitempty"`
}

func (x *QosFlowRequestList) Reset() {
	*x = QosFlowRequestList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[58]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*QosFlowRequestList) ProtoMessage() {}

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

func (x *QosFlowRequestList) GetFlow() *QosFlow {
	if x != nil {
		return x.Flow
	}
	return nil
}

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

	DnnValue     string                      `protobuf:"bytes,1,opt,name=dnn_value,json=dnnValue,proto3" json:"dnn_value,omitempty"`
	IdentityList []*TrackingAreaIdentityList `protobuf:"bytes,2,rep,name=identity_list,json=identityList,proto3" json:"identity_list,omitempty"`
}

func (x *LadnServiceArea) Reset() {
	*x = LadnServiceArea{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[59]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*LadnServiceArea) ProtoMessage() {}

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

func (x *LadnServiceArea) GetDnnValue() string {
	if x != nil {
		return x.DnnValue
	}
	return ""
}

func (x *LadnServiceArea) GetIdentityList() []*TrackingAreaIdentityList {
	if x != nil {
		return x.IdentityList
	}
	return nil
}

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

	TypeOfList       []TypeOfList `protobuf:"varint,1,rep,packed,name=type_of_list,json=typeOfList,proto3,enum=magma.lte.TypeOfList" json:"type_of_list,omitempty"`
	NumberOfElements []int32      `protobuf:"varint,2,rep,packed,name=number_of_elements,json=numberOfElements,proto3" json:"number_of_elements,omitempty"`
	// 3 bytes
	MCC string `protobuf:"bytes,3,opt,name=MCC,proto3" json:"MCC,omitempty"`
	// 3 bytes
	MNC string `protobuf:"bytes,4,opt,name=MNC,proto3" json:"MNC,omitempty"`
	// 8 bytes
	TAC string `protobuf:"bytes,5,opt,name=TAC,proto3" json:"TAC,omitempty"`
}

func (x *TrackingAreaIdentityList) Reset() {
	*x = TrackingAreaIdentityList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[60]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TrackingAreaIdentityList) ProtoMessage() {}

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

func (x *TrackingAreaIdentityList) GetTypeOfList() []TypeOfList {
	if x != nil {
		return x.TypeOfList
	}
	return nil
}

func (x *TrackingAreaIdentityList) GetNumberOfElements() []int32 {
	if x != nil {
		return x.NumberOfElements
	}
	return nil
}

func (x *TrackingAreaIdentityList) GetMCC() string {
	if x != nil {
		return x.MCC
	}
	return ""
}

func (x *TrackingAreaIdentityList) GetMNC() string {
	if x != nil {
		return x.MNC
	}
	return ""
}

func (x *TrackingAreaIdentityList) GetTAC() string {
	if x != nil {
		return x.TAC
	}
	return ""
}

// PDU session Establishment from AMF to SMF
// SET MESSSAGE
type M5GSMSessionContext struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PduSessionId uint32 `protobuf:"varint,1,opt,name=pdu_session_id,json=pduSessionId,proto3" json:"pdu_session_id,omitempty"`
	// Define ENUM 24-501 - 9.11.3.47 . 1 byte. i.e. initial request, existing pdusession etc...
	RequestType RequestType `protobuf:"varint,2,opt,name=request_type,json=requestType,proto3,enum=magma.lte.RequestType" json:"request_type,omitempty"`
	// IP address. Imported from session_manager.proto file
	PduAddress     *RedirectServer `protobuf:"bytes,3,opt,name=pdu_address,json=pduAddress,proto3" json:"pdu_address,omitempty"`
	PriorityAccess Priorityaccess  `protobuf:"varint,4,opt,name=priority_access,json=priorityAccess,proto3,enum=magma.lte.Priorityaccess" json:"priority_access,omitempty"`
	// Define enum TS-29.571 - section 5.4.3
	AccessType AccessType `protobuf:"varint,5,opt,name=access_type,json=accessType,proto3,enum=magma.lte.AccessType" json:"access_type,omitempty"`
	// pei - permanent equipment ID. Variable length of 16 bytes. TS-23.003 - 6.4 Like IMEI or IMEISV
	Imei string `protobuf:"bytes,6,opt,name=imei,proto3" json:"imei,omitempty"`
	// Length is 10 bytes + 2 bytes country code generic public subscription id.
	Gpsi string `protobuf:"bytes,7,opt,name=gpsi,proto3" json:"gpsi,omitempty"`
	// up to 6 byte. TS-23.003 - 28.15.3
	UserLocationInfo string `protobuf:"bytes,8,opt,name=user_location_info,json=userLocationInfo,proto3" json:"user_location_info,omitempty"`
	// length 16 bytes as UUID "Universally Unique IDentifier" TS-29.571 to ietf rfc 4122
	PcfId string `protobuf:"bytes,9,opt,name=pcf_id,json=pcfId,proto3" json:"pcf_id,omitempty"`
	// Variable length of 20 bytes. TS-23.003 - 28.8 & TS-23.501 5.9.8
	LadnServiceArea []*LadnServiceArea `protobuf:"bytes,10,rep,name=ladn_service_area,json=ladnServiceArea,proto3" json:"ladn_service_area,omitempty"`
	// Subscription For PDU Session Status Notification true or false
	PduSessionStatusNotificationSub bool `protobuf:"varint,11,opt,name=pdu_session_status_notification_sub,json=pduSessionStatusNotificationSub,proto3" json:"pdu_session_status_notification_sub,omitempty"`
	// TS-29-502 - 6.1.6.3.10
	DnnSelectionMode DnnSelectionMode `protobuf:"varint,12,opt,name=dnn_selection_mode,json=dnnSelectionMode,proto3,enum=magma.lte.DnnSelectionMode" json:"dnn_selection_mode,omitempty"`
	// TS-29.571 5.6.
	TraceRequirement string `protobuf:"bytes,13,opt,name=trace_requirement,json=traceRequirement,proto3" json:"trace_requirement,omitempty"`
	// Length is 3 bytes, TS-24.501 9.11.4.7
	IntegrityProtectionMaxDataRate []byte         `protobuf:"bytes,14,opt,name=integrity_protection_max_data_rate,json=integrityProtectionMaxDataRate,proto3" json:"integrity_protection_max_data_rate,omitempty"`
	PduSessionType                 PduSessionType `protobuf:"varint,15,opt,name=pdu_session_type,json=pduSessionType,proto3,enum=magma.lte.PduSessionType" json:"pdu_session_type,omitempty"`
	SscMode                        SscMode        `protobuf:"varint,16,opt,name=ssc_mode,json=sscMode,proto3,enum=magma.lte.SscMode" json:"ssc_mode,omitempty"`
	// max size go up to 15 bytes. TLV and 9.11.4.1.
	M5GSmCapability *M5GSMCapability `protobuf:"bytes,17,opt,name=m5g_sm_capability,json=m5gSmCapability,proto3" json:"m5g_sm_capability,omitempty"` // max size go up to 15 bytes. TLV and 9.11.4.1.
	// Maximum no. of supported packet filters
	MaxPktFilterSupported uint32 `protobuf:"varint,18,opt,name=max_pkt_filter_supported,json=maxPktFilterSupported,proto3" json:"max_pkt_filter_supported,omitempty"`
	// Always-on PDU session requested TS-24.501 9.11.4.4
	PduSessionReqAlwaysOn bool `protobuf:"varint,19,opt,name=pdu_session_req_always_on,json=pduSessionReqAlwaysOn,proto3" json:"pdu_session_req_always_on,omitempty"`
	// SM PDU DN request container. Max size up to 255. TLV and 9.11.4.16.
	SmPduDnReq string     `protobuf:"bytes,20,opt,name=sm_pdu_dn_req,json=smPduDnReq,proto3" json:"sm_pdu_dn_req,omitempty"`
	M5GsmCause M5GSMCause `protobuf:"varint,21,opt,name=m5gsm_cause,json=m5gsmCause,proto3,enum=magma.lte.M5GSMCause" json:"m5gsm_cause,omitempty"`
	// TS-24501 - 9.11.4.13 minimum 7 and max 65538, variable length.
	RequestedQosRules *QosRules `protobuf:"bytes,22,opt,name=requested_qos_rules,json=requestedQosRules,proto3" json:"requested_qos_rules,omitempty"`
	GnodeEndpoint     *TeidSet  `protobuf:"bytes,23,opt,name=gnode_endpoint,json=gnodeEndpoint,proto3" json:"gnode_endpoint,omitempty"`
	UpfEndpoint       *TeidSet  `protobuf:"bytes,24,opt,name=upf_endpoint,json=upfEndpoint,proto3" json:"upf_endpoint,omitempty"`
	// Procedure transaction identity
	ProcedureTransIdentity uint32                    `protobuf:"varint,25,opt,name=procedure_trans_identity,json=procedureTransIdentity,proto3" json:"procedure_trans_identity,omitempty"`
	SubscribedQos          *M5GQosInformationRequest `protobuf:"bytes,26,opt,name=subscribed_qos,json=subscribedQos,proto3" json:"subscribed_qos,omitempty"`
	QosPolicy              []*QosPolicy              `protobuf:"bytes,27,rep,name=qos_policy,json=qosPolicy,proto3" json:"qos_policy,omitempty"`
}

func (x *M5GSMSessionContext) Reset() {
	*x = M5GSMSessionContext{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[61]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*M5GSMSessionContext) ProtoMessage() {}

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

func (x *M5GSMSessionContext) GetPduSessionId() uint32 {
	if x != nil {
		return x.PduSessionId
	}
	return 0
}

func (x *M5GSMSessionContext) GetRequestType() RequestType {
	if x != nil {
		return x.RequestType
	}
	return RequestType_INITIAL_REQUEST
}

func (x *M5GSMSessionContext) GetPduAddress() *RedirectServer {
	if x != nil {
		return x.PduAddress
	}
	return nil
}

func (x *M5GSMSessionContext) GetPriorityAccess() Priorityaccess {
	if x != nil {
		return x.PriorityAccess
	}
	return Priorityaccess_High
}

func (x *M5GSMSessionContext) GetAccessType() AccessType {
	if x != nil {
		return x.AccessType
	}
	return AccessType_M_3GPP_ACCESS_3GPP
}

func (x *M5GSMSessionContext) GetImei() string {
	if x != nil {
		return x.Imei
	}
	return ""
}

func (x *M5GSMSessionContext) GetGpsi() string {
	if x != nil {
		return x.Gpsi
	}
	return ""
}

func (x *M5GSMSessionContext) GetUserLocationInfo() string {
	if x != nil {
		return x.UserLocationInfo
	}
	return ""
}

func (x *M5GSMSessionContext) GetPcfId() string {
	if x != nil {
		return x.PcfId
	}
	return ""
}

func (x *M5GSMSessionContext) GetLadnServiceArea() []*LadnServiceArea {
	if x != nil {
		return x.LadnServiceArea
	}
	return nil
}

func (x *M5GSMSessionContext) GetPduSessionStatusNotificationSub() bool {
	if x != nil {
		return x.PduSessionStatusNotificationSub
	}
	return false
}

func (x *M5GSMSessionContext) GetDnnSelectionMode() DnnSelectionMode {
	if x != nil {
		return x.DnnSelectionMode
	}
	return DnnSelectionMode_VERIFIED
}

func (x *M5GSMSessionContext) GetTraceRequirement() string {
	if x != nil {
		return x.TraceRequirement
	}
	return ""
}

func (x *M5GSMSessionContext) GetIntegrityProtectionMaxDataRate() []byte {
	if x != nil {
		return x.IntegrityProtectionMaxDataRate
	}
	return nil
}

func (x *M5GSMSessionContext) GetPduSessionType() PduSessionType {
	if x != nil {
		return x.PduSessionType
	}
	return PduSessionType_IPV4
}

func (x *M5GSMSessionContext) GetSscMode() SscMode {
	if x != nil {
		return x.SscMode
	}
	return SscMode_SSC_MODE_1
}

func (x *M5GSMSessionContext) GetM5GSmCapability() *M5GSMCapability {
	if x != nil {
		return x.M5GSmCapability
	}
	return nil
}

func (x *M5GSMSessionContext) GetMaxPktFilterSupported() uint32 {
	if x != nil {
		return x.MaxPktFilterSupported
	}
	return 0
}

func (x *M5GSMSessionContext) GetPduSessionReqAlwaysOn() bool {
	if x != nil {
		return x.PduSessionReqAlwaysOn
	}
	return false
}

func (x *M5GSMSessionContext) GetSmPduDnReq() string {
	if x != nil {
		return x.SmPduDnReq
	}
	return ""
}

func (x *M5GSMSessionContext) GetM5GsmCause() M5GSMCause {
	if x != nil {
		return x.M5GsmCause
	}
	return M5GSMCause_OPERATOR_DETERMINED_BARRING
}

func (x *M5GSMSessionContext) GetRequestedQosRules() *QosRules {
	if x != nil {
		return x.RequestedQosRules
	}
	return nil
}

func (x *M5GSMSessionContext) GetGnodeEndpoint() *TeidSet {
	if x != nil {
		return x.GnodeEndpoint
	}
	return nil
}

func (x *M5GSMSessionContext) GetUpfEndpoint() *TeidSet {
	if x != nil {
		return x.UpfEndpoint
	}
	return nil
}

func (x *M5GSMSessionContext) GetProcedureTransIdentity() uint32 {
	if x != nil {
		return x.ProcedureTransIdentity
	}
	return 0
}

func (x *M5GSMSessionContext) GetSubscribedQos() *M5GQosInformationRequest {
	if x != nil {
		return x.SubscribedQos
	}
	return nil
}

func (x *M5GSMSessionContext) GetQosPolicy() []*QosPolicy {
	if x != nil {
		return x.QosPolicy
	}
	return nil
}

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

	// Common message for 4g, 5g and WiFi.
	CommonContext      *CommonSessionContext `protobuf:"bytes,1,opt,name=common_context,json=commonContext,proto3" json:"common_context,omitempty"`
	RatSpecificContext *RatSpecificContext   `protobuf:"bytes,2,opt,name=rat_specific_context,json=ratSpecificContext,proto3" json:"rat_specific_context,omitempty"`
}

func (x *SetSMSessionContext) Reset() {
	*x = SetSMSessionContext{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[62]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SetSMSessionContext) ProtoMessage() {}

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

func (x *SetSMSessionContext) GetCommonContext() *CommonSessionContext {
	if x != nil {
		return x.CommonContext
	}
	return nil
}

func (x *SetSMSessionContext) GetRatSpecificContext() *RatSpecificContext {
	if x != nil {
		return x.RatSpecificContext
	}
	return nil
}

// TODO This supposed to be empty message and the element will be removed later
type SmContextVoid struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Output string `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"`
}

func (x *SmContextVoid) Reset() {
	*x = SmContextVoid{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[63]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SmContextVoid) ProtoMessage() {}

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

func (x *SmContextVoid) GetOutput() string {
	if x != nil {
		return x.Output
	}
	return ""
}

// 4G response message has not been refactored yet. Hence only considering M5G.
type RatSpecificContextAccess struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// oneof context {//TODO need to be implemented after 4G refactored
	// LTESessionContextAccess lte_context = 1;
	M5GSessionContextRsp *M5GSMSessionContextAccess `protobuf:"bytes,2,opt,name=m5g_session_context_rsp,json=m5gSessionContextRsp,proto3" json:"m5g_session_context_rsp,omitempty"` //}
}

func (x *RatSpecificContextAccess) Reset() {
	*x = RatSpecificContextAccess{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[64]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RatSpecificContextAccess) ProtoMessage() {}

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

func (x *RatSpecificContextAccess) GetM5GSessionContextRsp() *M5GSMSessionContextAccess {
	if x != nil {
		return x.M5GSessionContextRsp
	}
	return nil
}

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

	// received from UE. For 5G pdu_session_id.
	PduSessionId uint32 `protobuf:"varint,1,opt,name=pdu_session_id,json=pduSessionId,proto3" json:"pdu_session_id,omitempty"`
	// selected PDU session TS-24501 - 9.11.4.11
	PduSessionType PduSessionType `protobuf:"varint,2,opt,name=pdu_session_type,json=pduSessionType,proto3,enum=magma.lte.PduSessionType" json:"pdu_session_type,omitempty"`
	// selected session and service continuty mode TS-24501 - 9.11.4.16
	SelectedSscMode SscMode `protobuf:"varint,3,opt,name=selected_ssc_mode,json=selectedSscMode,proto3,enum=magma.lte.SscMode" json:"selected_ssc_mode,omitempty"`
	// TS-24501 - 9.11.4.3 - minimum 7 and max 65538, variable length
	AuthorizedQosRules []*QosRules               `protobuf:"bytes,4,rep,name=authorized_qos_rules,json=authorizedQosRules,proto3" json:"authorized_qos_rules,omitempty"` // TS-24501 - 9.11.4.14 PDU session  Bit Rate imported from subscriberdb.proto
	SubscribedQos      *M5GQosInformationRequest `protobuf:"bytes,5,opt,name=subscribed_qos,json=subscribedQos,proto3" json:"subscribed_qos,omitempty"`
	// TS-24501 - 9.11.4.2
	M5GsmCause M5GSMCause `protobuf:"varint,10,opt,name=M5gsm_cause,json=M5gsmCause,proto3,enum=magma.lte.M5GSMCause" json:"M5gsm_cause,omitempty"`
	// PDU session is requested to be established as always-on PDU session.
	AlwaysOnPduSessionIndication bool `protobuf:"varint,11,opt,name=always_on_pdu_session_indication,json=alwaysOnPduSessionIndication,proto3" json:"always_on_pdu_session_indication,omitempty"`
	// Indicates SSC mode.
	AllowedSscMode                    SscMode `protobuf:"varint,12,opt,name=allowed_ssc_mode,json=allowedSscMode,proto3,enum=magma.lte.SscMode" json:"allowed_ssc_mode,omitempty"`
	M5GSmCongestionReattemptIndicator bool    `protobuf:"varint,13,opt,name=M5G_sm_congestion_reattempt_indicator,json=M5GSmCongestionReattemptIndicator,proto3" json:"M5G_sm_congestion_reattempt_indicator,omitempty"`
	// IP address. Imported from session_manager.proto file.
	PduAddress  *RedirectServer `protobuf:"bytes,14,opt,name=pdu_address,json=pduAddress,proto3" json:"pdu_address,omitempty"`
	UpfEndpoint *TeidSet        `protobuf:"bytes,15,opt,name=upf_endpoint,json=upfEndpoint,proto3" json:"upf_endpoint,omitempty"`
	// Procedure transaction identity One byte TS-24501 9.6
	ProcedureTransIdentity uint32 `protobuf:"varint,16,opt,name=procedure_trans_identity,json=procedureTransIdentity,proto3" json:"procedure_trans_identity,omitempty"`
	// Mutiple Qos policy support
	QosPolicy []*QosPolicy `protobuf:"bytes,17,rep,name=qos_policy,json=qosPolicy,proto3" json:"qos_policy,omitempty"`
}

func (x *M5GSMSessionContextAccess) Reset() {
	*x = M5GSMSessionContextAccess{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[65]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*M5GSMSessionContextAccess) ProtoMessage() {}

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

func (x *M5GSMSessionContextAccess) GetPduSessionId() uint32 {
	if x != nil {
		return x.PduSessionId
	}
	return 0
}

func (x *M5GSMSessionContextAccess) GetPduSessionType() PduSessionType {
	if x != nil {
		return x.PduSessionType
	}
	return PduSessionType_IPV4
}

func (x *M5GSMSessionContextAccess) GetSelectedSscMode() SscMode {
	if x != nil {
		return x.SelectedSscMode
	}
	return SscMode_SSC_MODE_1
}

func (x *M5GSMSessionContextAccess) GetAuthorizedQosRules() []*QosRules {
	if x != nil {
		return x.AuthorizedQosRules
	}
	return nil
}

func (x *M5GSMSessionContextAccess) GetSubscribedQos() *M5GQosInformationRequest {
	if x != nil {
		return x.SubscribedQos
	}
	return nil
}

func (x *M5GSMSessionContextAccess) GetM5GsmCause() M5GSMCause {
	if x != nil {
		return x.M5GsmCause
	}
	return M5GSMCause_OPERATOR_DETERMINED_BARRING
}

func (x *M5GSMSessionContextAccess) GetAlwaysOnPduSessionIndication() bool {
	if x != nil {
		return x.AlwaysOnPduSessionIndication
	}
	return false
}

func (x *M5GSMSessionContextAccess) GetAllowedSscMode() SscMode {
	if x != nil {
		return x.AllowedSscMode
	}
	return SscMode_SSC_MODE_1
}

func (x *M5GSMSessionContextAccess) GetM5GSmCongestionReattemptIndicator() bool {
	if x != nil {
		return x.M5GSmCongestionReattemptIndicator
	}
	return false
}

func (x *M5GSMSessionContextAccess) GetPduAddress() *RedirectServer {
	if x != nil {
		return x.PduAddress
	}
	return nil
}

func (x *M5GSMSessionContextAccess) GetUpfEndpoint() *TeidSet {
	if x != nil {
		return x.UpfEndpoint
	}
	return nil
}

func (x *M5GSMSessionContextAccess) GetProcedureTransIdentity() uint32 {
	if x != nil {
		return x.ProcedureTransIdentity
	}
	return 0
}

func (x *M5GSMSessionContextAccess) GetQosPolicy() []*QosPolicy {
	if x != nil {
		return x.QosPolicy
	}
	return nil
}

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

	// Common message for 4g, 5g and WiFi.
	CommonContext      *CommonSessionContext     `protobuf:"bytes,1,opt,name=common_context,json=commonContext,proto3" json:"common_context,omitempty"`
	RatSpecificContext *RatSpecificContextAccess `protobuf:"bytes,2,opt,name=rat_specific_context,json=ratSpecificContext,proto3" json:"rat_specific_context,omitempty"`
}

func (x *SetSMSessionContextAccess) Reset() {
	*x = SetSMSessionContextAccess{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[66]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SetSMSessionContextAccess) ProtoMessage() {}

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

func (x *SetSMSessionContextAccess) GetCommonContext() *CommonSessionContext {
	if x != nil {
		return x.CommonContext
	}
	return nil
}

func (x *SetSMSessionContextAccess) GetRatSpecificContext() *RatSpecificContextAccess {
	if x != nil {
		return x.RatSpecificContext
	}
	return nil
}

// Node Level Messages from UPF. Purely Event Based.
type UPFNodeState struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UpfId string `protobuf:"bytes,1,opt,name=upf_id,json=upfId,proto3" json:"upf_id,omitempty"`
	// Types that are assignable to UpfNodeMessages:
	//
	//	*UPFNodeState_AssociatonState
	//	*UPFNodeState_NodeReport
	UpfNodeMessages isUPFNodeState_UpfNodeMessages `protobuf_oneof:"upf_node_messages"`
}

func (x *UPFNodeState) Reset() {
	*x = UPFNodeState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_lte_protos_session_manager_proto_msgTypes[67]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UPFNodeState) ProtoMessage() {}

func (x *UPFNodeState) ProtoReflect() protoreflect.Message {
	mi := &file_lte_protos_session_manager_proto_msgTypes[67]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil

license_type: permissive

branch_name: refs/heads/master

extension: go