use rusmpp_macros::TlvValue;
use crate::{
tlvs::{
TlvTag,
owned::{Tlv, TlvValue},
},
types::owned::{AnyOctetString, COctetString, OctetString},
values::{owned::*, *},
};
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, TlvValue)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize))]
#[cfg_attr(feature = "serde-deserialize-unchecked", derive(::serde::Deserialize))]
pub enum MessageSubmissionRequestTlvValue {
AlertOnMessageDelivery(AlertOnMessageDelivery),
BillingIdentification(OctetString<0, 1024>),
CallbackNum(OctetString<4, 19>),
CallbackNumAtag(OctetString<0, 65>),
CallbackNumPresInd(CallbackNumPresInd),
DestAddrNpCountry(OctetString<1, 5>),
DestAddrNpInformation(OctetString<0, 10>),
DestAddrNpResolution(DestAddrNpResolution),
DestAddrSubunit(AddrSubunit),
DestBearerType(BearerType),
DestNetworkId(COctetString<7, 66>),
DestNetworkType(NetworkType),
DestNodeId(OctetString<6, 6>),
DestSubaddress(Subaddress),
DestTelematicsId(u16),
DestPort(u16),
DisplayTime(DisplayTime),
ItsReplyType(ItsReplyType),
ItsSessionInfo(ItsSessionInfo),
LanguageIndicator(LanguageIndicator),
MessagePayload(MessagePayload),
MoreMessagesToSend(MoreMessagesToSend),
MsMsgWaitFacilities(MsMsgWaitFacilities),
MsValidity(MsValidity),
NumberOfMessages(NumberOfMessages),
PayloadType(PayloadType),
PrivacyIndicator(PrivacyIndicator),
QosTimeToLive(u32),
SarMsgRefNum(u16),
SarSegmentSeqnum(u8),
SarTotalSegments(u8),
SetDpf(SetDpf),
SmsSignal(u16),
SourceAddrSubunit(AddrSubunit),
SourceBearerType(BearerType),
SourceNetworkId(COctetString<7, 66>),
SourceNetworkType(NetworkType),
SourceNodeId(OctetString<6, 6>),
SourcePort(u16),
SourceSubaddress(Subaddress),
SourceTelematicsId(u16),
UserMessageReference(UserMessageReference),
UserResponseCode(u8),
UssdServiceOp(UssdServiceOp),
Other { tag: TlvTag, value: AnyOctetString },
}