diff --git a/5G_system_TS29512_Npcf_CNL113888.tpd b/5G_system_TS29512_Npcf_CNL113888.tpd
new file mode 100644
index 0000000..aecd4b3
--- /dev/null
+++ b/5G_system_TS29512_Npcf_CNL113888.tpd
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>5G_system_TS29512_Npcf_CNL113888</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="5G_system_TS29514_Npcf_CNL113889" projectLocationURI="../5G_system_TS29514_Npcf_CNL113889/5G_system_TS29514_Npcf_CNL113889.tpd"/>
+    <ReferencedProject name="5G_system_TS29519_Nudr_CNL113900" projectLocationURI="../5G_system_TS29519_Nudr_CNL113900/5G_system_TS29519_Nudr_CNL113900.tpd"/>
+    <ReferencedProject name="5G_system_TS29571_CommonData_CNL113880" projectLocationURI="../5G_system_TS29571_CommonData_CNL113880/5G_system_TS29571_CommonData_CNL113880.tpd"/>
+    <ReferencedProject name="5G_system_TS32291_Nchf_CNL113894" projectLocationURI="../5G_system_TS32291_Nchf_CNL113894/5G_system_TS32291_Nchf_CNL113894.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/TS29512_CommonData.ttcn" relativeURI="src/TS29512_CommonData.ttcn"/>
+    <FileResource projectRelativePath="src/TS29512_Npcf_SMPolicyControl.ttcn" relativeURI="src/TS29512_Npcf_SMPolicyControl.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/5G_system_TS29512_Npcf_CNL113888</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/doc/5G_system_TS29512_Npcf_Description.adoc b/doc/5G_system_TS29512_Npcf_Description.adoc
new file mode 100644
index 0000000..f414301
--- /dev/null
+++ b/doc/5G_system_TS29512_Npcf_Description.adoc
@@ -0,0 +1,86 @@
+= 5G system TS29512 Npcf Protocol Modules for TTCN-3 Toolset with TITAN, Description
+:author: Gábor Szalai
+:toc: left
+
+== About This Document
+
+This is the description for the 5G system TS29512 Npcf protocol module. The 5G system TS29512 Npcf protocol modules are developed for the TTCN-3 Toolset with Titan. 
+
+== Functionality
+
+The 5G system TS29512 Npcf protocol module implements the object structures of the 3GPP TS 29512 v15.1.0<<_5, [5]>> in a formalized way, using the standard specification language TTCN-3. This allows defining of test data (templates) in the TTCN-3 language and correctly encoding/decoding messages when executing test suites using the Titan TTCN-3 test environment.
+The 5G system TS29512 Npcf protocol module uses Titan’s JSON encoding <<_3, [3]>> and hence is usable with the Titan test toolset only.
+
+=== System Requirements
+Protocol modules are a set of TTCN-3 source code files that can be used as part of TTCN-3 test suites only. Hence, protocol modules alone do not put specific requirements on the system used. However, in order to compile and execute a TTCN-3 test suite using the set of protocol modules the following system requirements must be satisfied:
+
+* Titan TTCN-3 Test Executor version CRL 113 200/6 R5A (6.5.pl0) or higher installed. For Installation Guide see <<_2, [2]>>. Please note: This version of the test port is not compatible with Titan releases earlier than CRL 113 200/6 R5A.
+
+===	Installation
+The set of protocol modules can be used in developing TTCN-3 test suites using any text editor. Since the 5G system TS29512 Npcf protocol is used as a part of a TTCN-3 test suite, this requires TTCN-3 Test Executor be installed before the module can be compiled and executed together with other parts of the test suite. For more details on the installation of TTCN-3 Test Executor see the relevant section of <<_2, [2]>>.
+
+== Interface description
+
+=== Encoding/decoding and other related functions
+This product also contains encoding/decoding functions, which assure correct encoding of messages when sent from Titan and correct decoding of messages when received by Titan. 
+
+==== Implemented encoding and decoding functions
+
+[source]
+----
+Name	Type of formal parameters	Type of return value
+f_enc_SmPolicyContextData(in SmPolicyContextData pdu) return octetstring 
+f_dec_SmPolicyContextData(in octetstring stream, out SmPolicyContextData pdu) return integer 
+f_enc_SmPolicyDecision(in SmPolicyDecision pdu) return octetstring 
+f_dec_SmPolicyDecision(in octetstring stream, out SmPolicyDecision pdu) return integer 
+f_enc_SmPolicyNotification(in SmPolicyNotification pdu) return octetstring 
+f_dec_SmPolicyNotification(in octetstring stream, out SmPolicyNotification pdu) return integer 
+f_enc_UeCampingRep(in UeCampingRep pdu) return octetstring 
+f_dec_UeCampingRep(in octetstring stream, out UeCampingRep pdu) return integer 
+f_enc_RuleReport(in RuleReport pdu) return octetstring 
+f_dec_RuleReport(in octetstring stream, out RuleReport pdu) return integer 
+f_enc_TerminationNotification(in TerminationNotification pdu) return octetstring 
+f_dec_TerminationNotification(in octetstring stream, out TerminationNotification pdu) return integer 
+f_enc_SmPolicyControl(in SmPolicyControl pdu) return octetstring 
+f_dec_SmPolicyControl(in octetstring stream, out SmPolicyControl pdu) return integer 
+f_enc_SmPolicyUpdateContextData(in SmPolicyUpdateContextData pdu) return octetstring 
+f_dec_SmPolicyUpdateContextData(in octetstring stream, out SmPolicyUpdateContextData pdu) return integer 
+f_enc_SmPolicyDeleteData(in SmPolicyDeleteData pdu) return octetstring 
+f_dec_SmPolicyDeleteData(in octetstring stream, out SmPolicyDeleteData pdu) return integer 
+----
+
+== Usage
+
+The protocol module provides abstract data types for JSON objects used by the services defined in the standard <<_5, [5]>>. The protocol module provides encoder and decoder functions for the JSON objects. The decoder function validates the received JSON object based on the JSON schema as well. Only the validated JSON value is decoded.
+
+== Terminology	
+
+=== Abbreviations
+
+JSON:: JavaScript Object Notation
+
+PDU:: Protocol Data Unit
+
+TTCN-3:: Testing and Test Control Notation version 3
+
+== References
+
+[[_1]]
+[1]	ETSI ES 201 873-1 v4.4.1 (2012-04) +
+The Testing and Test Control Notation version 3. Part 1: Core Language
+
+[[_2]]
+[2]	1/ 198 17-CRL 113 200/6 Uen +
+Installation Guide for the TITAN TTCN-3 Test Executor
+
+[[_3]]
+[3]	2/198 17-CRL 113 200/6 Uen +
+Programmer's Technical Reference for Titan TTCN-3 Test Executor
+
+[[_4]]
+[4]	https://www.json.org
+
+[[_5]]
+[5] 3GPP TS 29512 v15.1.0+
+5G System; Session Management Policy Control Service; Stage 3
+
diff --git a/doc/change.log b/doc/change.log
new file mode 100644
index 0000000..2f80747
--- /dev/null
+++ b/doc/change.log
@@ -0,0 +1,9 @@
+= 5G system TS29512 Npcf Protocol Modules for TTCN-3 Toolset with TITAN, Change log
+:author: Gábor Szalai
+:toc: left
+
+== Changes
+
+=== R1A
+
+Initial revision
\ No newline at end of file
diff --git a/src/TS29512_CommonData.ttcn b/src/TS29512_CommonData.ttcn
new file mode 100644
index 0000000..4b2eb23
--- /dev/null
+++ b/src/TS29512_CommonData.ttcn
@@ -0,0 +1,34 @@
+/******************************************************************************
+* 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:               TS29512_CommonData.ttcn
+//  Description:	      Type definitions for 3GPP TS29512
+/////////////////////////////////////////////// 
+module TS29512_CommonData{
+  import from TS29571_CommonData all;
+
+  type set ChargingInformation {
+    TS29571_CommonData.Uri    primaryChfAddress,
+    TS29571_CommonData.Uri    secondaryChfAddress
+  }
+  type enumerated FlowDirection_enum { DOWNLINK, UPLINK, BIDIRECTIONAL, UNSPECIFIED}
+ 
+  type union FlowDirection {
+    FlowDirection_enum  enum_val,
+    charstring           other_val
+  } with {
+    variant "JSON: as value"
+  }
+ 
+} with {
+  encode "JSON"
+}
+
diff --git a/src/TS29512_Npcf_SMPolicyControl.ttcn b/src/TS29512_Npcf_SMPolicyControl.ttcn
new file mode 100644
index 0000000..2a3d3f1
--- /dev/null
+++ b/src/TS29512_Npcf_SMPolicyControl.ttcn
@@ -0,0 +1,543 @@
+/******************************************************************************
+* 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:               TS29512_Npcf_SMPolicyControl.ttcn
+//  Description:	      Type definitions for 3GPP TS29512
+/////////////////////////////////////////////// 
+module TS29512_Npcf_SMPolicyControl {
+
+  import from TS29571_CommonData all
+  import from TS29512_CommonData all
+  import from TS29519_Policy_Data all
+  import from TS29514_Npcf_PolicyAuthorization all
+  import from TS32291_Nchf_ConvergedCharging all
+
+external function f_enc_SmPolicyContextData(in SmPolicyContextData pdu) return octetstring 
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_SmPolicyContextData(in octetstring stream, out SmPolicyContextData pdu) return integer 
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_SmPolicyDecision(in SmPolicyDecision pdu) return octetstring 
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_SmPolicyDecision(in octetstring stream, out SmPolicyDecision pdu) return integer 
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_SmPolicyNotification(in SmPolicyNotification pdu) return octetstring 
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_SmPolicyNotification(in octetstring stream, out SmPolicyNotification pdu) return integer 
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_UeCampingRep(in UeCampingRep pdu) return octetstring 
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_UeCampingRep(in octetstring stream, out UeCampingRep pdu) return integer 
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_RuleReport(in RuleReport pdu) return octetstring 
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_RuleReport(in octetstring stream, out RuleReport pdu) return integer 
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_TerminationNotification(in TerminationNotification pdu) return octetstring 
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_TerminationNotification(in octetstring stream, out TerminationNotification pdu) return integer 
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_SmPolicyControl(in SmPolicyControl pdu) return octetstring 
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_SmPolicyControl(in octetstring stream, out SmPolicyControl pdu) return integer 
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_SmPolicyUpdateContextData(in SmPolicyUpdateContextData pdu) return octetstring 
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_SmPolicyUpdateContextData(in octetstring stream, out SmPolicyUpdateContextData pdu) return integer 
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_SmPolicyDeleteData(in SmPolicyDeleteData pdu) return octetstring 
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_SmPolicyDeleteData(in octetstring stream, out SmPolicyDeleteData pdu) return integer 
+with { extension "prototype(backtrack) decode(JSON)" }
+
+
+  type set SmPolicyControl {
+    SmPolicyContextData    context,
+    SmPolicyDecision    policy
+  }
+
+  type set SmPolicyContextData {
+    AccNetChId    accNetChId optional,
+    TS29571_CommonData.Gpsi    gpsi optional,
+    TS29571_CommonData.Supi    supi,
+    TS29571_CommonData.PduSessionId    pduSessionId,
+    TS29571_CommonData.PduSessionId    pduSessionType optional,
+    charstring chargingcharacteristics optional,
+    TS29571_CommonData.Dnn    dnn,
+    TS29571_CommonData.Uri    notificationUri,
+    TS29571_CommonData.AccessType    accessType optional,
+    TS29571_CommonData.RatType    ratType optional,
+    TS29571_CommonData.NetworkId    servingNetwork optional,
+    TS29571_CommonData.UserLocation    userLocationInfo optional,
+    TS29571_CommonData.TimeZone    ueTimeZone optional,
+    TS29571_CommonData.Pei    pei optional,
+    TS29571_CommonData.Ipv4Addr    ipv4Address optional,
+    TS29571_CommonData.Ipv6Prefix    ipv6AddressPrefix optional,
+    charstring ipDomain optional,
+    TS29571_CommonData.Ambr    subSessAmbr optional,
+    TS29571_CommonData.DefaultQosInformation    subsDefQos optional,
+    boolean online optional,
+    boolean offline optional,
+    boolean threegppPsDataOffStatus optional,
+    boolean refQosIndication optional,
+    TS29571_CommonData.TraceData    traceReq optional,
+    TS29571_CommonData.Snssai    sliceInfo,
+    TS29571_CommonData.SupportedFeatures    suppFeat optional
+  } with {
+    variant (threegppPsDataOffStatus) "name as '3gppPsDataOffStatus'"
+  }
+
+  type set SmPolicyDecision {
+    set of record {
+      universal charstring key,
+      SessionRule    additionalProperties
+    } sessRules optional,
+    set of record {
+      universal charstring key,
+      PccRule    additionalProperties
+    } pccRules optional,
+    boolean pcscfRestIndication optional,
+    set of record {
+      universal charstring key,
+      QoSData    additionalProperties
+    } qosDecs optional,
+    set of record {
+      universal charstring key,
+      ChargingData    additionalProperties
+    } ChgDecs optional,
+    ChargingInformation    chargingInfo optional,
+    set of record {
+      universal charstring key,
+      TrafficControlData    additionalProperties
+    } traffContDecs optional,
+    set of record {
+      universal charstring key,
+      UsageMonitoringData    additionalProperties
+    } umDecs optional,
+    set of record {
+      universal charstring key,
+      QosCharacteristics    additionalProperties
+    } qosChars optional,
+    TS29571_CommonData.DurationSec    reflectiveQoSTimer optional,
+    set of record {
+      universal charstring key,
+      ConditionData    additionalProperties
+    } conds optional,
+    TS29571_CommonData.DateTime    revalidationTime optional,
+    boolean offline optional,
+    boolean online optional,
+    set of       PolicyControlRequestTrigger    policyCtrlReqTriggers optional,
+    set of       RequestedRuleData    lastReqRuleData optional,
+    RequestedUsageData    lastReqUsageData optional,
+    set of record {
+      universal charstring key,
+      TS29571_CommonData.PresenceInfo    additionalProperties
+    } praInfos optional,
+    TS29519_Policy_Data.IpIndex    ipv4Index optional,
+    TS29519_Policy_Data.IpIndex    ipv6Index optional,
+    TS29571_CommonData.SupportedFeatures    suppFeat optional
+  } with {
+    variant (sessRules) "as map"
+    variant (pccRules) "as map"
+    variant (ChgDecs) "as map"
+    variant (traffContDecs) "as map"
+    variant (umDecs) "as map"
+    variant (qosChars) "as map"
+    variant (conds) "as map"
+    variant (praInfos) "as map"
+  }
+
+  type set SmPolicyNotification {
+    TS29571_CommonData.Uri    resourceUri optional,
+    SmPolicyDecision    smPolicyDecision optional
+  }
+
+  type set PccRule {
+    set of       FlowInformation    flowInfos optional,
+    charstring appId optional,
+    TS29514_Npcf_PolicyAuthorization.ContentVersion    contVer optional,
+    charstring pccRuleId,
+    integer precedence optional,
+    AfSigProtocol    afSigProtocol optional,
+    boolean appReloc optional,
+    set of       charstring refQosData optional,
+    set of       charstring refTcData optional,
+    set of       charstring refChgData optional,
+    set of       charstring refUmData optional,
+    charstring refCondData optional
+  }
+
+  type set SessionRule {
+    TS29571_CommonData.Ambr    authSessAmbr optional,
+    TS29571_CommonData.DefaultQosInformation    authDefaultQos optional,
+    charstring sessRuleId,
+    charstring refUmData optional,
+    charstring refCondData optional
+  }
+
+  type set QoSData {
+    charstring qosId,
+    integer fiveqi,
+    TS29571_CommonData.BitRate    maxbrUl optional,
+    TS29571_CommonData.BitRate    maxbrDl optional,
+    TS29571_CommonData.BitRate    gbrUl optional,
+    TS29571_CommonData.BitRate    gbrDL optional,
+    TS29571_CommonData.Arp    arp,
+    boolean qnc optional,
+    TS29571_CommonData.FiveQiPriorityLevel    priorityLevel optional,
+    TS29571_CommonData.AverWindow    averWindow optional,
+    TS29571_CommonData.MaxDataBurstVol    maxDataBurstVol optional,
+    boolean reflectiveQos optional,
+    TS29571_CommonData.PacketLossRate    maxPacketLossRate optional,
+    TS29571_CommonData.PacketLossRate    maxPacketLossRateUl optional,
+    boolean defQosFlowIndication optional
+  }
+
+  type set ConditionData {
+    charstring condId,
+    TS29571_CommonData.DateTime    activationTime optional,
+    TS29571_CommonData.DateTime    deactivationTime optional
+  }
+
+  type set TrafficControlData {
+    charstring tcId,
+    TS29514_Npcf_PolicyAuthorization.FlowStatus    flowStatus optional,
+    RedirectInformation    redirectInfo optional,
+    boolean muteNotif optional,
+    charstring trafficSteeringPolIdDl optional,
+    charstring trafficSteeringPolIdUl optional,
+    set of       TS29571_CommonData.RouteToLocation    routeToLocs optional,
+    DnaiReport    dnaiReport optional
+  }
+
+  type set ChargingData {
+    charstring chgId,
+    MeteringMethod    meteringMethod optional,
+    boolean offline optional,
+    boolean online optional,
+    charstring ratingGroup optional,
+    ReportingLevel    reportingLevel optional,
+    charstring serviceId optional,
+    charstring sponsorId optional,
+    charstring appSvcProvId optional,
+    charstring afChargingIdentifier optional
+  }
+
+  type set UsageMonitoringData {
+    charstring umId,
+    Volume    volumeThreshold optional,
+    Volume    volumeThresholdUplink optional,
+    Volume    volumeThresholdDownlink optional,
+    TS29571_CommonData.DurationSec    timeThreshold optional,
+    TS29571_CommonData.DateTime    monitoringTime optional,
+    Volume    nextVolThreshold optional,
+    Volume    nextVolThresholdUplink optional,
+    Volume    nextVolThresholdDownlink optional,
+    TS29571_CommonData.DurationSec    nextTimeThreshold optional,
+    TS29571_CommonData.DurationSec    inactivityTime optional,
+    set of       charstring exUsagePccRuleIds optional
+  }
+
+  type set RedirectInformation {
+    boolean redirectSupport,
+    FlowDirection    redirectAddressType optional,
+    charstring redirectServerAddress optional
+  }
+
+  type set FlowInformation {
+    FlowDescription    flowDescription optional,
+    TS29514_Npcf_PolicyAuthorization.EthFlowDescription    ethFlowDescription optional,
+    boolean packetFilterUsage optional,
+    charstring tosTrafficClass optional,
+    charstring spi optional,
+    charstring flowLabel optional,
+    FlowDirection    flowDirection optional
+  }
+
+  type set SmPolicyDeleteData {
+    TS29571_CommonData.UserLocation    userLocationInfo optional,
+    TS29571_CommonData.TimeZone    ueTimeZone optional,
+    TS29571_CommonData.NetworkId    servingNetwork optional,
+    TS29571_CommonData.DateTime    userLocationInfoTime optional,
+    set of       RanNasRelCause    ranNasRelCauses optional,
+    set of       AccuUsageReport    accuUsageReports optional
+  }
+
+  type set QosCharacteristics {
+    integer fiveqI,
+    TS29571_CommonData.QosResourceType    resourceType,
+    TS29571_CommonData.FiveQiPriorityLevel    priorityLevel,
+    TS29571_CommonData.PacketDelBudget    packetDelayBudget,
+    TS29571_CommonData.PacketErrRate    packetErrorRate,
+    TS29571_CommonData.AverWindow    averagingWindow optional,
+    TS29571_CommonData.MaxDataBurstVol    maximumDataBurstVolume optional
+  } with {
+    variant (fiveqI) "name as '5qI'"
+  }
+
+  // The TS29519_Policy_Data use this type
+  // moved to TS29512_CommonData to prevent  circular import
+  type TS29512_CommonData.ChargingInformation  ChargingInformation
+ 
+  type set AccuUsageReport {
+    charstring refUmIds,
+    Volume    volUsage optional,
+    Volume    volUsageUplink optional,
+    Volume    volUsageDownlink optional,
+    TS29571_CommonData.DurationSec    timeUsage optional,
+    Volume    nextVolUsage optional,
+    Volume    nextVolUsageUplink optional,
+    Volume    nextVolUsageDownlink optional,
+    TS29571_CommonData.DurationSec    nextTimeUsage optional
+  }
+
+  type set SmPolicyUpdateContextData {
+    set of       PolicyControlRequestTrigger    repPolicyCtrlReqTriggers,
+    set of       AccNetChId    accNetChIds optional,
+    TS29571_CommonData.AccessType    accessType optional,
+    TS29571_CommonData.RatType    ratType optional,
+    TS29571_CommonData.NetworkId    servingNetwork optional,
+    TS29571_CommonData.UserLocation    userLocationInformation optional,
+    TS29571_CommonData.TimeZone    ueTimeZone optional,
+    TS29571_CommonData.Ipv4Addr    relIpv4Address optional,
+    TS29571_CommonData.Ipv4Addr    ipv4Address optional,
+    TS29571_CommonData.Ipv6Prefix    ipv6AddressPrefix optional,
+    TS29571_CommonData.Ipv6Prefix    relIpv6AddressPrefix optional,
+    TS29571_CommonData.MacAddr48    relUeMac optional,
+    TS29571_CommonData.MacAddr48    ueMac optional,
+    TS29571_CommonData.Ambr    subsSessAmbr optional,
+    TS29571_CommonData.DefaultQosInformation    subsDefQos optional,
+    AccuUsageReport    accuUsageReport optional,
+    boolean threegppPsDataOffStatus optional,
+    set of       AppDetectionInfo    appDetectionInfos optional,
+    set of       RuleReport    ruleReports optional,
+    TS29571_CommonData.DateTime    userLocationInfoTime optional,
+    set of record {
+      universal charstring key,
+      TS29571_CommonData.PresenceInfo    additionalProperties
+    } repPraInfos optional,
+    UeInitiatedResourceRequest    ueInitResReq optional,
+    boolean refQosIndication optional,
+    TS29571_CommonData.TraceData    traceReq optional
+  } with {
+    variant (repPraInfos) "as map"
+    variant (threegppPsDataOffStatus) "name as '3gppPsDataOffStatus'"
+  }
+
+  type set DnaiReport {
+    TS29571_CommonData.Uri    notificationUri,
+    TS29571_CommonData.DnaiChangeType    dnaiChgType optional
+  }
+
+  type set TerminationNotification {
+    TS29571_CommonData.Uri    resourceUri
+  }
+
+  type set AppDetectionInfo {
+    charstring appId,
+    charstring instanceId optional,
+    set of       FlowInformation    sdfDescriptions optional
+  }
+
+  type set AccNetChId {
+    charstring accNetChaIdValue,
+    set of       charstring refPccRuleIds optional,
+    boolean sessionChScope optional
+  }
+
+  type set RequestedRuleData {
+    set of       charstring refPccRuleIds,
+    set of       RequestedRuleDataType    reqData
+  }
+
+  type set RequestedUsageData {
+    set of       charstring refUmIds optional,
+    boolean allUmIds optional
+  }
+
+  type set UeCampingRep {
+    TS29571_CommonData.AccessType    accessType optional,
+    TS29571_CommonData.AccessType    ratType optional,
+    TS29571_CommonData.NetworkId    servingNetwork optional,
+    TS29571_CommonData.UserLocation    userLocationInfo optional,
+    TS29571_CommonData.TimeZone    ueTimeZone optional
+  }
+
+  type set RuleReport {
+    set of       charstring pccRuleIds optional,
+    RuleStatus    ruleStatus optional,
+    set of       TS29514_Npcf_PolicyAuthorization.ContentVersion    contVers optional,
+    FailureCode    failureCode optional,
+    TS32291_Nchf_ConvergedCharging.FinalUnitAction    finUnitAct optional
+  }
+
+  type set of     RanNasRelCause    ranNasRelCauses
+
+  type set RanNasRelCause {
+    TS29571_CommonData.NgApCause    ngApCause optional,
+    TS29571_CommonData.FiveGMmCause    fiveGMmCause optional,
+    FiveGSmCause    fiveGSmCause optional
+  } with {
+    variant (fiveGMmCause) "name as '5GMmCause'"
+    variant (fiveGSmCause) "name as '5GSmCause'"
+  }
+
+  type set UeInitiatedResourceRequest {
+    PacketFilterOperation    packFiltOp,
+    set of       PacketFilterInfo    packFiltInfo,
+    RequestedQos    reqQos optional
+  }
+
+  type set PacketFilterInfo {
+    charstring packFiltId optional,
+    integer precedence optional,
+    PacketFilterContent    packFiltCont optional,
+    charstring tosTrafficClass optional,
+    charstring spi optional,
+    charstring flowLabel optional,
+    FlowDirection    flowDirection optional
+  }
+
+  type set RequestedQos {
+    TS29571_CommonData.FiveQi    fiveqi optional,
+    TS29571_CommonData.BitRate    gbrUl optional,
+    TS29571_CommonData.BitRate    gbrDl optional
+  } with {
+    variant (fiveqi) "name as '5qi'"
+  }
+
+
+  type TS29571_CommonData.Uinteger    FiveGSmCause
+
+  type charstring PacketFilterContent
+
+  type charstring FlowDescription
+
+  type integer Volume
+
+  type TS29512_CommonData.FlowDirection_enum FlowDirection_enum
+
+  type TS29512_CommonData.FlowDirection FlowDirection
+
+
+  type enumerated ReportingLevel_enum { SER_ID_LEVEL, RAT_GR_LEVEL, SPON_CON_LEVEL}
+
+  type union ReportingLevel {
+    ReportingLevel_enum  enum_val,
+    charstring           other_val
+  } with {
+    variant "JSON: as value"
+  }
+
+
+  type enumerated MeteringMethod_enum { DURATION, VOLUME, DURATION_VOLUME, EVENT}
+
+  type union MeteringMethod {
+    MeteringMethod_enum  enum_val,
+    charstring           other_val
+  } with {
+    variant "JSON: as value"
+  }
+
+
+  type enumerated PolicyControlRequestTrigger_enum { PLMN_CH, RES_MO_RE, AC_TY_CH, UE_IP_CH, UE_MAC_CH, AN_CH_COR, US_RE, APP_STA, APP_STO, AN_INFO, CM_SES_FAIL, PS_DA_OFF, DEF_QOS_CH, SE_AMBR_CH, PCC_RMV, QOS_STO, QOS_STA, NO_CREDIT, PRA_CH, SAREA_CH, SCNN_CH, ENF_PCC_RUL, RE_TIMEOUT, RES_RELEASE, SUCC_RES_ALLO}
+
+  type union PolicyControlRequestTrigger {
+    PolicyControlRequestTrigger_enum  enum_val,
+    charstring           other_val
+  } with {
+    variant "JSON: as value"
+  }
+
+
+  type enumerated RequestedRuleDataType_enum { CH_ID, MS_TIME_ZONE, USER_LOC_INFO, RES_RELEASE, SUCC_RES_ALLO}
+
+  type union RequestedRuleDataType {
+    RequestedRuleDataType_enum  enum_val,
+    charstring           other_val
+  } with {
+    variant "JSON: as value"
+  }
+
+
+  type enumerated RuleStatus_enum { ACTIVE, INACTIVE}
+
+  type union RuleStatus {
+    RuleStatus_enum  enum_val,
+    charstring           other_val
+  } with {
+    variant "JSON: as value"
+  }
+
+
+  type enumerated FailureCode_enum { UNK_RULE_ID, RA_GR_ERR, SER_ID_ERR, NF_MAL, RES_LIM, MAX_NR_QoS_FLOW, MISS_FLOW_INFO, RES_ALLO_FAIL, UNSUCC_QOS_VAL, INCOR_FLOW_INFO, PS_TO_CS_HAN, APP_ID_ERR, NO_QOS_FLOW_BOUND, FILTER_RES, MISS_REDI_SER_ADDR, CM_END_USER_SER_DENIED, CM_CREDIT_CON_NOT_APP, CM_AUTH_REJ, CM_USER_UNK, CM_RAT_FAILED, SESS_AMBR_FAILURE, DEF_QOS_FAILURL}
+
+  type union FailureCode {
+    FailureCode_enum  enum_val,
+    charstring           other_val
+  } with {
+    variant "JSON: as value"
+  }
+
+
+  type enumerated AfSigProtocol_enum { NO_INFORMATION, SIP}
+
+  type union AfSigProtocol {
+    AfSigProtocol_enum  enum_val,
+    charstring           other_val
+  } with {
+    variant "JSON: as value"
+  }
+
+
+  type enumerated PacketFilterOperation_enum { DELETION, ADDITION, MODIFICATION}
+
+  type union PacketFilterOperation {
+    PacketFilterOperation_enum  enum_val,
+    charstring           other_val
+  } with {
+    variant "JSON: as value"
+  }
+
+
+  type enumerated RedirectAddressType_enum { IPV4_ADDR, IPV6_ADDR, URL, SIP_URI}
+
+  type union RedirectAddressType {
+    RedirectAddressType_enum  enum_val,
+    charstring           other_val
+  } with {
+    variant "JSON: as value"
+  }
+
+
+
+
+
+
+} with {
+  encode "JSON"
+}
