blob: 72e26a60c5a6dd02b9d867b6801c4a27d99bfe95 [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2000-2019 Ericsson AB
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
*
* Contributors:
* Gabor Szalai - initial implementation and initial documentation
******************************************************************************/
//
// File: TS29510_Nnrf_NFManagement.ttcn
// Description: Type definitions for 3GPP TS29510
///////////////////////////////////////////////
module TS29510_Nnrf_NFManagement {
import from TS29571_CommonData all
import from TS29518_Namf_Communication all
import from JSON_Generic all;
external function f_enc_NFProfile(in NFProfile pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_NFProfile(in octetstring stream, out NFProfile pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
external function f_enc_NFRegistrationData(in NFRegistrationData pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_NFRegistrationData(in octetstring stream, out NFRegistrationData pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
external function f_enc_SubscriptionData(in SubscriptionData pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_SubscriptionData(in octetstring stream, out SubscriptionData pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
external function f_enc_NotificationData(in NotificationData pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_NotificationData(in octetstring stream, out NotificationData pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
type set NFProfile {
TS29571_CommonData.NfInstanceId nfInstanceId,
NFType nfType,
NFStatus nfStatus,
TS29571_CommonData.PlmnId plmn optional,
set of TS29571_CommonData.Snssai sNssais optional,
set of charstring nsiList optional,
Fqdn fqdn optional,
Fqdn interPlmnFqdn optional,
set of TS29571_CommonData.Ipv4Addr ipv4Addresses optional,
set of TS29571_CommonData.Ipv6Addr ipv6Addresses optional,
integer priority (0..65535) optional,
integer capacity (0..65535) optional,
integer load (0..100) optional,
charstring locality optional,
UdrInfo udrInfo optional,
UdmInfo udmInfo optional,
AusfInfo ausfInfo optional,
AmfInfo amfInfo optional,
SmfInfo smfInfo optional,
UpfInfo upfInfo optional,
PcfInfo pcfInfo optional,
BsfInfo bsfInfo optional,
JSON_generic_val customInfo optional,
TS29571_CommonData.DateTime recoveryTime optional,
set of NFService nfServices optional
}
type set NFService {
charstring serviceInstanceId,
ServiceName serviceName,
set of NFServiceVersion versions,
TS29571_CommonData.UriScheme scheme,
NFServiceStatus nfServiceStatus,
Fqdn fqdn optional,
Fqdn interPlmnFqdn optional,
set of IpEndPoint ipEndPoints optional,
charstring apiPrefix optional,
set of DefaultNotificationSubscription defaultNotificationSubscriptions optional,
set of TS29571_CommonData.PlmnId allowedPlmns optional,
set of NFType allowedNfTypes optional,
set of charstring allowedNfDomains optional,
set of TS29571_CommonData.Snssai allowedNssais optional,
integer priority (0..65535) optional,
integer capacity (0..65535) optional,
integer load (0..100) optional,
TS29571_CommonData.DateTime recoveryTime optional,
TS29571_CommonData.SupportedFeatures supportedFeatures optional
}
type enumerated NFType_enum { NRF, UDM, AMF, SMF, AUSF, NEF, PCF, SMSF, NSSF, UDR, LMF, GMLC, FIVEG_EIR, SEPP, UPF, N3IWF, AF, UDSF, BSF, CHF, NWDAF}
with {
variant "text 'FIVEG_EIR' as '5G_EIR'"
}
type union NFType {
NFType_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type charstring Fqdn
type set IpEndPoint {
TS29571_CommonData.Ipv4Addr ipv4Address optional,
TS29571_CommonData.Ipv6Addr ipv6Address optional,
TransportProtocol transport optional,
integer port_ optional
} with {
variant (port_) "name as 'port'"
}
type set SubscriptionData {
charstring nfStatusNotificationUri,
charstring subscriptionId, // (pattern "^([0-9]{5,6}-)?[^-]+$"),
TS29571_CommonData.DateTime validityTime optional,
set of NotificationEventType reqNotifEvents optional,
TS29571_CommonData.PlmnId plmnId optional,
TS29571_CommonData.NfInstanceId nfInstanceId optional,
NFType nfType optional,
ServiceName serviceName optional,
charstring amfSetId optional,
charstring amfRegionId optional,
set of TS29571_CommonData.Guami guamiList optional
}
type set UdrInfo {
charstring groupId optional,
set of SupiRange supiRanges optional,
set of IdentityRange gpsiRanges optional,
set of IdentityRange externalGroupIdentityfiersRanges optional,
set of DataSetId supportedDataSets optional
}
type set SupiRange {
charstring start_ optional,
charstring end optional,
charstring pattern_ optional
} with {
variant (start_) "name as 'start'"
variant (pattern_) "name as 'pattern'"
}
type set IdentityRange {
charstring start_ optional,
charstring end optional,
charstring pattern_ optional
} with {
variant (start_) "name as 'start'"
variant (pattern_) "name as 'pattern'"
}
type enumerated DataSetId_enum { SUBSCRIPTION, POLICY, EXPOSURE, APPLICATION}
type union DataSetId {
DataSetId_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type set UdmInfo {
charstring groupId optional,
set of SupiRange supiRanges optional,
set of IdentityRange gpsiRanges optional,
set of IdentityRange externalGroupIdentityfiersRanges optional,
set of charstring routingIndicators optional
}
type set AusfInfo {
charstring groupId optional,
set of SupiRange supiRanges optional,
set of charstring routingIndicators optional
}
type set AmfInfo {
charstring amfSetId,
charstring amfRegionId,
set of TS29571_CommonData.Guami guamiList,
set of TS29571_CommonData.Tai taiList optional,
set of TaiRange taiRangeList optional,
set of TS29571_CommonData.Guami backupInfoAmfFailure optional,
set of TS29571_CommonData.Guami backupInfoAmfRemoval optional,
N2InterfaceAmfInfo n2InterfaceAmfInfo optional
}
type set SmfInfo {
set of TS29571_CommonData.Dnn dnnList,
set of TS29571_CommonData.Tai taiList optional,
set of TaiRange taiRangeList optional,
Fqdn pgwFqdn optional
}
type set UpfInfo {
set of SnssaiUpfInfoItem sNssaiUpfInfoList,
set of charstring smfServingArea optional,
set of InterfaceUpfInfoItem interfaceUpfInfoList optional
}
type set SnssaiUpfInfoItem {
TS29571_CommonData.Snssai sNssai,
set of DnnUpfInfoItem dnnUpfInfoList
}
type set DnnUpfInfoItem {
TS29571_CommonData.Dnn dnn
}
type set InterfaceUpfInfoItem {
UPInterfaceType interfaceType,
set of TS29571_CommonData.Ipv4Addr ipv4EndpointAddress optional,
set of TS29571_CommonData.Ipv6Addr ipv6EndpointAddress optional,
Fqdn endpointFqdn optional,
charstring networkInstance optional
}
type enumerated UPInterfaceType_enum { N3, N6, N9}
type union UPInterfaceType {
UPInterfaceType_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type set PcfInfo {
set of TS29571_CommonData.Dnn dnnList optional,
set of SupiRange supiRangeList optional
}
type set BsfInfo {
set of Ipv4AddressRange ipv4AddressRanges optional,
set of Ipv6PrefixRange ipv6PrefixRanges optional
}
type set Ipv4AddressRange {
TS29571_CommonData.Ipv4Addr start_ optional,
TS29571_CommonData.Ipv4Addr end optional
} with {
variant (start_) "name as 'start'"
}
type set Ipv6PrefixRange {
TS29571_CommonData.Ipv6Prefix start_ optional,
TS29571_CommonData.Ipv6Prefix end optional
} with {
variant (start_) "name as 'start'"
}
type set DefaultNotificationSubscription {
NotificationType notificationType,
TS29571_CommonData.Uri callbackUri,
TS29518_Namf_Communication.N1MessageClass n1MessageClass optional,
TS29518_Namf_Communication.N2InformationClass n2InformationClass optional
}
type enumerated NotificationType_enum { N1_MESSAGES, N2_INFORMATION, LOCATION_NOTIFICATION, DATA_REMOVAL_NOTIFICATION, DATA_CHANGE_NOTIFICATION}
type union NotificationType {
NotificationType_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type enumerated TransportProtocol_enum { TCP}
type union TransportProtocol {
TransportProtocol_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type enumerated NotificationEventType_enum { NF_REGISTERED, NF_DEREGISTERED, NF_PROFILE_CHANGED}
type union NotificationEventType {
NotificationEventType_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type set NotificationData {
NotificationEventType event,
TS29571_CommonData.Uri nfInstanceUri,
NFProfile newProfile optional
}
type enumerated NFStatus_enum { REGISTERED, SUSPENDED}
type union NFStatus {
NFStatus_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type set NFRegistrationData {
integer heartBeatTimer,
NFProfile nfProfile
}
type set NFServiceVersion {
charstring apiVersionInUri,
charstring apiFullVersion,
TS29571_CommonData.DateTime expiry optional
}
type enumerated ServiceName_enum { nnrf_nfm, nnrf_disc, nudm_sdm, nudm_uecm, nudm_ueau, nudm_ee, nudm_pp, namf_comm, namf_evts, namf_mt, namf_location, nsmf_pdusession, nsmf_event_exposure, nausf_auth, nausf_sorprotection, nnef_pfdmanagement, npcf_am_policy_control, npcf_smpolicycontrol, npcf_policyauthorization, npcf_bdtpolicycontrol, nsmsf_sms, nnssf_nsselection, nnssf_nssaiavailability, nudr_dr, nlmf_loc, n5g_eir_eic, nbsf_management, nchf_spendinglimitcontrol, nnwdaf_eventsubscription, nnwdaf_analyticsinfo} with {
variant "text 'nnrf_nfm' as 'nnrf-nfm'"
variant "text 'nnrf_disc' as 'nnrf-disc'"
variant "text 'nudm_sdm' as 'nudm-sdm'"
variant "text 'nudm_uecm' as 'nudm-uecm'"
variant "text 'nudm_ueau' as 'nudm-uea'"
variant "text 'nudm_ee' as 'nudm-ee'"
variant "text 'nudm_pp' as 'nudm-pp'"
variant "text 'namf_comm' as 'namf-comm'"
variant "text 'namf_evts' as 'namf-evts'"
variant "text 'namf_mt' as 'namf-mt'"
variant "text 'namf_location' as 'namf-location'"
variant "text 'nsmf_pdusession' as 'nsmf-pdusession'"
variant "text 'nsmf_event_exposure' as 'nsmf-event-exposure'"
variant "text 'nausf_auth' as 'nausf-auth'"
variant "text 'nausf_sorprotection' as 'nausf-sorprotection'"
variant "text 'nnef_pfdmanagement' as 'nnef-pfdmanagement'"
variant "text 'npcf_am_policy_control' as 'npcf-am-policy-control'"
variant "text 'npcf_smpolicycontrol' as 'npcf-smpolicycontrol'"
variant "text 'npcf_policyauthorization' as 'npcf-policyauthorization'"
variant "text 'npcf_bdtpolicycontrol' as 'npcf-bdtpolicycontrol'"
variant "text 'nsmsf_sms' as 'nsmsf-sms'"
variant "text 'nnssf_nsselection' as 'nnssf-nsselection'"
variant "text 'nnssf_nssaiavailability' as 'nnssf-nssaiavailability'"
variant "text 'nudr_dr' as 'nudr-dr'"
variant "text 'nlmf_loc' as 'nlmf-loc'"
variant "text 'n5g_eir_eic' as 'n5g-eir-eic'"
variant "text 'nbsf_management' as 'nbsf-management'"
variant "text 'nchf_spendinglimitcontrol' as 'nchf-spendinglimitcontrol'"
variant "text 'nnwdaf_eventsubscription' as 'nnwdaf-eventsubscription'"
variant "text 'nnwdaf_analyticsinfo' as 'nnwdaf-analyticsinfo'"
}
type union ServiceName {
ServiceName_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type set N2InterfaceAmfInfo {
set of TS29571_CommonData.Ipv4Addr ipv4EndpointAddress optional,
set of TS29571_CommonData.Ipv6Addr ipv6EndpointAddress optional,
TS29571_CommonData.AmfName amfName optional
}
type enumerated NFServiceStatus_enum { REGISTERED, SUSPENDED}
type union NFServiceStatus {
NFServiceStatus_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type set TaiRange {
TS29571_CommonData.PlmnId plmnId,
set of TacRange tacRangeList optional
}
type set TacRange {
charstring start_ optional,// (pattern "^([A-Fa-f0-9]{4}|[A-Fa-f0-9]{6})$")
charstring end optional,// (pattern "^([A-Fa-f0-9]{4}|[A-Fa-f0-9]{6})$")
charstring pattern_ optional
} with {
variant (start_) "name as 'start'"
variant (pattern_) "name as 'pattern'"
}
} with {
encode "JSON"
}