A Oracle nCHF CDR Specification

Following is the Oracle nCHF CDR OpenAPI specification:
openapi: 3.0.0
servers:
  # Added by API Auto Mocking Plugin
  - description: Sample CDR for 5G nCHF OpenAPI
    url: Oracle/CAGBU/nCHF_ConvergentCharging_CDR/
info:
  description: |
    Oracle nCHF Converged Charging CDR Specification.
    1. All fields described in the document are supported, non-supported fields are not included in the document.
    2. Fields are passed through the network unless description states enriched/populated by CHF.
    3. Fields marked by asterisks (*) are mandatory for all scenarios. Unmarked fields are optional and can be conditional based on vendor and charging scenarios.
    4. Attributes are as described in this document, conforming to 3GPP TS32.298 v16.5.0 Section 5.1.5
    5. CHF CDRs are produced formatted as JSON only and not ASN.1, and does not conform to file based CDR transfer procedures as stated in 3GPP TS32.297
    6. For CHF CDR please refer to Schema definition for ChargingDataCDR below. The rest of the schema elements are referenced from within the schema of ChargingDataCDR.
  version: "1.0"
  title: Oracle nCHF CDR Specification
paths:
  /cdr:
    get:
      tags:
        - convergedCharging
      summary: Example Converged Charging CDR
      operationId: convergedChargingCDR
      description: |
        Example nCHF_CC CDR Structure
      responses:
        '200':
          description: "nCHF_CC CDR Structure"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargingDataCDR'
components:
  schemas:
    ChargingDataCDR:
      type: object
      properties:
        recordType:
          description: |
              "Populated by CHF. CHF Record type based on type of content, example 200 for Charging Function Record.
              
              CS specific. The contents are defined in TS 32.250 [10]
              - moCallRecord (0),
              - mtCallRecord (1),
              - roamingRecord (2),
              - incGatewayRecord (3),
              - outGatewayRecord (4),
              - transitCallRecord (5),
              - moSMSRecord (6),
              - mtSMSRecord (7),
              - moSMSIWRecord (8),
              - mtSMSGWRecord (9),
              - ssActionRecord (10),
              - hlrIntRecord (11),
              - locUpdateHLRRecord (12),
              - locUpdateVLRRecord (13),
              - commonEquipRecord (14),
              - moTraceRecord (15), -- used in earlier releases
              - mtTraceRecord (16), -- used in earlier releases
              - termCAMELRecord (17),
              
              GPRS specific. The contents are defined in TS 32.251 [11]
              - sgsnPDPRecord (18),
              - sgsnMMRecord (20),
              - sgsnSMORecord (21), -- also MME UE originated SMS record
              - sgsnSMTRecord (22), -- also MME UE terminated SMS record
              
              CS-LCS specific. The contents are defined in TS 32.250 [10]
              - mtLCSRecord (23),
              - moLCSRecord (24),
              - niLCSRecord (25),
              
              GPRS-LCS specific. The contents are defined in TS 32.251 [11]
              - sgsnMTLCSRecord (26),
              - sgsnMOLCSRecord (27),
              - sgsnNILCSRecord (28),
              
              MMS specific. The contents are defined in TS 32.270 [30]
              - mMO1SRecord (30),
              - mMO4FRqRecord (31),
              - mMO4FRsRecord (32),
              - mMO4DRecord (33),
              - mMO1DRecord (34),
              - mMO4RRecord (35),
              - mMO1RRecord (36),
              - mMOMDRecord (37),
              - mMR4FRecord (38),
              - mMR1NRqRecord (39),
              - mMR1NRsRecord (40),
              - mMR1RtRecord (41),
              - mMR1AFRecord (42),
              - mMR4DRqRecord (43),
              - mMR4DRsRecord (44),
              - mMR1RRRecord (45),
              - mMR4RRqRecord (46),
              - mMR4RRsRecord (47),
              - mMRMDRecord (48),
              - mMFRecord (49),
              - mMBx1SRecord (50),
              - mMBx1VRecord (51),
              - mMBx1URecord (52),
              - mMBx1DRecord (53),
              - mM7SRecord (54),
              - mM7DRqRecord (55),
              - mM7DRsRecord (56),
              - mM7CRecord (57),
              - mM7RRecord (58),
              - mM7DRRqRecord (59),
              - mM7DRRsRecord (60),
              - mM7RRqRecord (61),
              - mM7RRsRecord (62),
              
              IMS specific. The contents are defined in TS 32.260 [20]
              - sCSCFRecord (63),
              - pCSCFRecord (64),
              - iCSCFRecord (65),
              - mRFCRecord (66),
              - mGCFRecord (67),
              - bGCFRecord (68),
              - aSRecord (69),
              - eCSCFRecord (70),
              - iBCFRecord (82),
              - tRFRecord (89),
              - tFRecord (90),
              - aTCFRecord (91),
              
              LCS specific. The contents are defined in TS 32.271 [31]
              - lCSGMORecord (71),
              - lCSRGMTRecord (72),
              - lCSHGMTRecord (73),
              - lCSVGMTRecord (74),
              - lCSGNIRecord (75),
              
              MBMS specific.The contents are defined in TS 32.251 [11] and TS 32.273 [33]
              - sgsnMBMSRecord (76),
              - ggsnMBMSRecord (77),
              - gwMBMSRecord (86),
              - sUBBMSCRecord (78),
              - cONTENTBMSCRecord (79),
              
              PoC specific. The contents are defined in TS 32.272 [32]
              - pPFRecord (80),
              - cPFRecord (81),
              
              EPC specific.The contents are defined in TS 32.251 [11]
              - sGWRecord (84),
              - pGWRecord (85),
              - tDFRecord (92),
              - iPERecord (95),
              - ePDGRecord (96),
              - tWAGRecord (97),
              
              MMTel specific. The contents are defined in TS 32.275 [35]
              - mMTelRecord (83),
              
              CS specific. The contents are defined in TS 32.250 [10]
              - mSCsRVCCRecord (87),
              - mMTRFRecord (88),
              - iCSRegisterRecord (99),
              
              SMS specific. The contents are defined in TS 32.274 [34]
              - sCSMORecord (93),
              - sCSMTRecord (94),
              
              ProSe specific. The contents are defined in TS 32.277 [36]
              - pFDDRecord (100),
              - pFEDRecord (101),
              - pFDCRecord (102),
              
              Monitoring Event specific. The contents are defined in TS 32.278 [38]
              - mECORecord (103),
              - mERERecord (104),
              
              CP data transfer specific. The contents are defined in TS 32.253 [13]
              - cPDTSCERecord (105),
              - cPDTSNNRecord (106), --
              
              SMS specific. The contents are defined in TS 32.274 [34]
              - sCDVTT4Record (110),
              - sCSMOT4Record (111),
              - iSMSMORecord (112),
              - iSMSMTRecord (113),
              
              Exposure Function API specific. The contents are defined in TS  32.254 [14]
              - eASCERecord (120),
              
              Record values from 200 are specific to Charging Function domain
              - chargingFunctionRecord (200)"
          example: 200
          type: integer
        sessionId:
          description: "Session Identifier described in TS 32.290 [57]. This field is populated by CHF and generated when first CREATE request is received."
          example: "1-ff9169f9-14c8-5e00-fbf3-4c1d1801120b"
          type: string
        subscriberIdentifier:
          description: "5G Subscription Permanent Identifier (SUPI) of the served party as specified in TS 29.571 [249], if available."
          example: "imsi-244917850000058"
          type: string
        nfConsumerIdentification:
          $ref: '#/components/schemas/NFIdentification'
        triggers:
          $ref: '#/components/schemas/Trigger'
        multipleUnitUsage:
          $ref: '#/components/schemas/MultipleUnitUsage'
        recordOpeningTime:
          description: "Timestamp when the PDU session is activated in the SMF or record opening time on subsequent partial records."
          format: date-time
          type: string
        duration:
          description: "This field holds the relevant duration of this record in seconds. Enriched by CHF."
          example: 60
          type: integer
        recordSequenceNumber:
          description: "Partial record sequence number, only present in case of partial records. Populated by CHF."
          example: 10
          type: integer
        causeForRecordClosing:
          description: "This field contains a reason for the release of the CDR, in case of Oracle CHF for session closure [NORMAL_RELEASE]. Populated by CHF and can be vendor specific ENUM."
          example: "NORMAL_RELEASE"
          enum:
          - NORMAL_RELEASE
          - ABNORMAL_RELEASE
          - PARTIAL_RECORD
          - CAMEL_INIT_CALL_RELEASE
          - VOLUME_LIMIT
          - TIME_LIMIT
          - SERVING_NODE_CHANGE
          - MAX_NUMBER_OF_CHANGES_IN_CHARGING_CONDITIONS
          - MANAGEMENT_INTERVENTION
          - INTRA_SGSN_INTERSYSTEM_CHANGE
          - RAT_CHANGE
          - MSTIME_ZONE_CHANGE
          - SGSN_PLMNID_CHANGE
          - SGW_CHANGE
          - APNAMBR_CHANGE
          - MO_EXCEPTION_DATA_COUNTER_RECEIPT
          - UNAUTHORIZED_REQUESTING_NETWORK
          - UNAUTHORIZED_LCS_CLIENT
          - POSITION_METHOD_FAILURE
          - UNKNOWN_OR_UNREACHABLE_LCS_CLIENT
          - LIST_OF_DOWNSTREAM_NODE_CHANGE
          - SESSION_TYPE_CHANGE
          - UNSUCCESSFUL_SERVICE_DELIVERY
          - SERVICE_CHANGE
          - NUMBER_OF_TALK_BURST_LIMIT
          - SERVICE_DELIVERY_END_SUCCESSFULLY
          - UE_TIMEZONE_CHANGE
          - PLMN_CHANGE
          - SESSION_AMBR_CHANGE
          - REMOVAL_OF_UPF
          type: string
        localRecordSequenceNumber:
          description: "Consecutive record number created by the CDF. The number is allocated sequentially including all CDR types. Populated by CHF."
          example: 15
          type: integer
        recordExtensions:
          $ref: '#/components/schemas/ManagementExtensions'
        pDUSessionChargingInformation:
          $ref: '#/components/schemas/PDUSessionChargingInformation'
        roamingQBCInformation:
          $ref: '#/components/schemas/RoamingQBCInformation'
        sMSChargingInformation:
          $ref: '#/components/schemas/SMSChargingInformation'
        serviceSpecificationInfo:
          description: "Identifies service specific document that applies to the request, e.g. the service specific document ('middle tier' TS) and 3GPP release the service specific document is based upon."
          type: string
      required:
      - recordType
      - subscriberIdentifier
      - nfConsumerIdentification
      - duration
      - causeForRecordClosing
    NFIdentification:
      properties:
        nFName:
          description: "Name of the Network Function Used"
          format: uuid
          type: string
        nFIPv4Address:
          $ref: '#/components/schemas/Ipv4Addr'
        nFIPv6Address:
          $ref: '#/components/schemas/Ipv6Addr'
        nFPLMNID:
          $ref: '#/components/schemas/PlmnId'
        nodeFunctionality:
          $ref: '#/components/schemas/NodeFunctionality'
        nFFqdn:
          description: "Fully qualified domain name (FQDN) is the complete domain name for a specific network function."
          example: "mypeer.somesmf.ora"
          type: string
      required:
      - nodeFunctionality
      type: object
    MultipleUnitUsage:
      description: "This field holds the parameters for the unit reporting. It may have multiple occurrences."
      properties:
        ratingGroup:
          $ref: '#/components/schemas/RatingGroup'
        usedUnitContainer:
          items:
            $ref: '#/components/schemas/UsedUnitContainer'
          minItems: 0
          type: array
        uPFID:
          description: "This field holds the UPF identifier used to identify the UPF when reporting the usage for the UPF"
          format: uuid
          type: string
      required:
      - ratingGroup
      type: object
    Trigger:
      description: "This field holds the triggers that are common to all Multiple Unit Usage. Can be the same as in Used Unit Container."
      properties:
        triggerType:
          $ref: '#/components/schemas/TriggerType'
        triggerCategory:
          $ref: '#/components/schemas/TriggerCategory'
        timeLimit:
          description: "Time limit if trigger type is 'Expiry of data time limit'."
          type: integer
        volumeLimit:
          description: "Volume limit if trigger type is 'Expiry of data volume limit'."
          allOf:
            - $ref: '#/components/schemas/Uint32'
        volumeLimit64:
          description: "Volume limit if trigger type is 'Expiry of data volume limit'."
          allOf:
            - $ref: '#/components/schemas/Uint64'
        maxNumberOfccc:
          description: "Maximum number if trigger type is 'Max number of charging condition changes'."
          allOf:
            - $ref: '#/components/schemas/Uint32'
      required:
      - triggerCategory
      - triggerType
      type: object
    UsedUnitContainer:
      description: "This field holds the used units and information connected to the reported units. Enriched by CHF."
      properties:
        serviceId:
          $ref: '#/components/schemas/ServiceId'
        quotaManagementIndicator:
          $ref: '#/components/schemas/QuotaManagementIndicator'
        triggers:
          items:
            $ref: '#/components/schemas/Trigger'
          minItems: 0
          type: array
        triggerTimestamp:
          description: "This field holds the timestamp when the reporting trigger occur"
          allOf:
            - $ref: '#/components/schemas/DateTime'
        time:
          description: "This field holds the amoung of used time in seconds. This field is enriched by CHF."
          allOf:
            - $ref: '#/components/schemas/Uint32'
        totalVolume:
          description: "This field holds the amount of used volume in both uplink and downlink directions in bytes. This field is enriched by CHF."
          allOf:
            - $ref: '#/components/schemas/Uint64'
        uplinkVolume:
          description: "This field holds the amount of used volume in uplink direction in bytes. This field is enriched by CHF."
          allOf:
            - $ref: '#/components/schemas/Uint64'
        downlinkVolume:
          description: "This field holds the amount of used volume in downlink direction in bytes. This field is enriched by CHF."
          allOf:
            - $ref: '#/components/schemas/Uint64'
        serviceSpecificUnits:
          description: "This field holds the amount of used service specific units. This field is enriched by CHF."
          allOf:
            - $ref: '#/components/schemas/Uint64'
        eventTimeStamps:
          description: "This field holds the timestamps of the event reported in the Service Specific Unit s, if the reported units are event based"
          items:
            $ref: '#/components/schemas/DateTime'
          minItems: 0
          type: array
        localSequenceNumber:
          description: "Holds the Used Unit sequence number, i.e. the order when charging event occurs. It increased by 1 for each Used Unit generation. Populated by CHF."
          example: 10
          type: integer
        ratingIndicator:
          description: "indicates if the units have been rated or not. Populated by CHF."
          type: boolean
        pDUContainerInformation:
          $ref: '#/components/schemas/PDUContainerInformation'
      required:
      - localSequenceNumber
      type: object
    ManagementExtension:
      description: "List of extension objects"
      items:
        $ref: '#/components/schemas/ManagementExtension'
      minItems: 0
      type: array
    ManagementExtensions:
      description: "Extension object"
      properties:
        possibleDuplicateUsage:
         $ref: '#/components/schemas/PossibleDuplicateUsage'
        incompleteCDR:
         $ref: '#/components/schemas/IncompleteCDR'
        staleSessionCleanup:
          $ref: '#/components/schemas/StaleSessionCleanup'
        lastInvocationSeqNumber:
          $ref: '#/components/schemas/LastInvocationSeqNumber'
    PDUSessionChargingInformation:
      description: "This field holds the 5G data connectivity specific information described in TS 32.255 [15]"
      properties:
        chargingId:
          $ref: '#/components/schemas/ChargingId'
        homeProvidedChargingId:
          $ref: '#/components/schemas/ChargingId'
        userInformation:
          $ref: '#/components/schemas/UserInformation'
        userLocationinfo:
          $ref: '#/components/schemas/UserLocation'
        mAPDUNon3GPPUserLocationInfo:
          $ref: '#/components/schemas/UserLocation'
        presenceReportingAreaInformation:
          description: "The presence Reporting Area status of UE during the used unit container interval"
          additionalProperties:
            $ref: '#/components/schemas/PresenceInfo'
          minProperties: 0
          type: object
        uetimeZone:
          description: "Timezone where the User Equiptment is located"
          allOf:
            - $ref: '#/components/schemas/TimeZone'
        pduSessionInformation:
          $ref: '#/components/schemas/PDUSessionInformation'
        unitCountInactivityTimer:
          type: integer
        rANSecondaryRATUsageReport:
          $ref: '#/components/schemas/RANSecondaryRATUsageReport'
      type: object
    UserInformation:
      properties:
        servedGPSI:
          $ref: '#/components/schemas/Gpsi'
        servedPEI:
          $ref: '#/components/schemas/Pei'
        unauthenticatedFlag:
          type: boolean
        roamerInOut:
          $ref: '#/components/schemas/RoamerInOut'
      type: object
    PDUSessionInformation:
      properties:
        networkSlicingInfo:
          $ref: '#/components/schemas/NetworkSlicingInfo'
        pduSessionID:
          $ref: '#/components/schemas/PduSessionId'
        pduType:
          $ref: '#/components/schemas/PduSessionType'
        sscMode:
          $ref: '#/components/schemas/SscMode'
        hPlmnId:
          $ref: '#/components/schemas/PlmnId'
        servingNetworkFunctionID:
          $ref: '#/components/schemas/ServingNetworkFunctionID'
        ratType:
          $ref: '#/components/schemas/RatType'
        mAPDUNon3GPPRATType:
          $ref: '#/components/schemas/RatType'
        dnnId:
          $ref: '#/components/schemas/Dnn'
        dnnSelectionMode:
          $ref: '#/components/schemas/dnnSelectionMode'
        chargingCharacteristics:
          pattern: "^[0-9a-fA-F]{1,4}$"
          type: string
        chargingCharacteristicsSelectionMode:
          $ref: '#/components/schemas/ChargingCharacteristicsSelectionMode'
        startTime:
          $ref: '#/components/schemas/DateTime'
        stopTime:
          $ref: '#/components/schemas/DateTime'
        "3gppPSDataOffStatus":
          $ref: '#/components/schemas/3GPPPSDataOffStatus'
        sessionStopIndicator:
          type: boolean
        pduAddress:
          $ref: '#/components/schemas/PDUAddress'
        diagnostics:
          type: integer
        authorizedQoSInformation:
          $ref: '#/components/schemas/AuthorizedDefaultQos'
        subscribedQoSInformation:
          $ref: '#/components/schemas/SubscribedDefaultQos'
        authorizedSessionAMBR:
          description: "This field holds the authorized session-AMBR"
          allOf:
            - $ref: '#/components/schemas/Ambr'
        subscribedSessionAMBR:
          description: "This field holds the subscribed session-AMBR"
          allOf:
            - $ref: '#/components/schemas/Ambr'
        servingCNPlmnId:
          $ref: '#/components/schemas/PlmnId'
        mAPDUSessionInformation:
          $ref: '#/components/schemas/MAPDUSessionInformation'
      required:
      - dnnId
      - pduSessionID
      type: object
    PDUContainerInformation:
      properties:
        timeofFirstUsage:
          description: "The UTC time indicating time stamp for the first IP packet to be transmitted and mapped to the reporting used unit"
          allOf:
            - $ref: '#/components/schemas/DateTime'
        timeofLastUsage:
          description: "The UTC time indicating time stamp for the last IP packet to be transmitted and mapped to the reporting used unit"
          allOf:
            - $ref: '#/components/schemas/DateTime'
        qoSInformation:
          $ref: '#/components/schemas/QosData'
        qoSCharacteristics:
          $ref: '#/components/schemas/QosCharacteristics'
        afChargingIdentifier:
          $ref: '#/components/schemas/ChargingId'
        afChargingIdString:
          type: string
        userLocationInformation:
          $ref: '#/components/schemas/UserLocation'
        uetimeZone:
          description: "Timezone where the User Equiptment is located"
          allOf:
            - $ref: '#/components/schemas/TimeZone'
        rATType:
          $ref: '#/components/schemas/RatType'
        servingNodeID:
          items:
            $ref: '#/components/schemas/ServingNetworkFunctionID'
          minItems: 0
          type: array
        presenceReportingAreaInformation:
          additionalProperties:
            $ref: '#/components/schemas/PresenceInfo'
          minProperties: 0
          type: object
        "3gppPSDataOffStatus":
          $ref: '#/components/schemas/3GPPPSDataOffStatus'
        sponsorIdentity:
          type: string
        applicationserviceProviderIdentity:
          type: string
        chargingRuleBaseName:
          description: "The reference to group of PCC rules predefined at the SMF."
          type: string
        mAPDUSteeringFunctionality:
          $ref: '#/components/schemas/SteeringFunctionality'
        mAPDUSteeringMode:
          $ref: '#/components/schemas/SteeringMode'
      type: object
    NetworkSlicingInfo:
      properties:
        sNSSAI:
          $ref: '#/components/schemas/Snssai'
      required:
      - sNSSAI
      type: object
    PDUAddress:
      properties:
        pduIPv4Address:
          description: "The IPv4 address of the served SUPI allocated for the PDU session"
          allOf:
            - $ref: '#/components/schemas/Ipv4Addr'
        pduIPv6AddresswithPrefix:
          description: "The IPv6 address with prefix of the served SUPI allocated for the PDU session"
          allOf:
            - $ref: '#/components/schemas/Ipv6Addr'
        pduAddressprefixlength:
          description: "PDU Address prefix length of an IPv6 typed Served PDU Address. The field needs not available for prefix length of 64 bits"
          type: integer
          example: 6
        iPv4dynamicAddressFlag:
          description: "This field indicates whether served IPv4 address is dynamically allocated. This field is missing if address is static."
          type: boolean
          example: true
        iPv6dynamicPrefixFlag:
          description: "List of additional IPv6 prefix allocated for the PDU session"
          type: boolean
          example: true
      type: object
    ServingNetworkFunctionID:
      properties:
        servingNetworkFunctionInformation:
          $ref: '#/components/schemas/NFIdentification'
        aMFId:
          $ref: '#/components/schemas/AmfId'
      required:
      - servingNetworkFunctionInformation
      type: object
    RoamingQBCInformation:
      description: "This field holds the roaming 5G data connectivity specific information described in TS 32.255 [15]"
      properties:
        multipleQFIcontainer:
          items:
            $ref: '#/components/schemas/MultipleQFIcontainer'
          minItems: 0
          type: array
        uPFID:
          format: uuid
          type: string
        roamingChargingProfile:
          $ref: '#/components/schemas/RoamingChargingProfile'
      type: object
    MultipleQFIcontainer:
      description: "This field holds the roaming 5G data connectivity specific information described in TS 32.255 [15]"
      properties:
        triggers:
          items:
            $ref: '#/components/schemas/Trigger'
          minItems: 0
          type: array
        triggerTimestamp:
          description: "This field holds the timestamp when the reporting trigger occur"
          allOf:
            - $ref: '#/components/schemas/DateTime'
        time:
          description: "This field holds the amoung of used time."
          allOf:
            - $ref: '#/components/schemas/Uint32'
        totalVolume:
          description: "This field holds the amount of used volume in both uplink and downlink directions."
          allOf:
            - $ref: '#/components/schemas/Uint64'
        uplinkVolume:
          description: "This field holds the amount of used volume in uplink direction."
          allOf:
            - $ref: '#/components/schemas/Uint64'
        downlinkVolume:
          description: "This field holds the amount of used volume in downlink direction."
          allOf:
            - $ref: '#/components/schemas/Uint64'
        localSequenceNumber:
          type: integer
        qFIContainerInformation:
          $ref: '#/components/schemas/QFIContainerInformation'
      required:
      - localSequenceNumber
      type: object
    QFIContainerInformation:
      properties:
        qFI:
          $ref: '#/components/schemas/Qfi'
        reportTime:
          $ref: '#/components/schemas/DateTime'
        timeofFirstUsage:
          $ref: '#/components/schemas/DateTime'
        timeofLastUsage:
          $ref: '#/components/schemas/DateTime'
        qoSInformation:
          $ref: '#/components/schemas/QosData'
        qoSCharacteristics:
          $ref: '#/components/schemas/QosCharacteristics'
        userLocationInformation:
          $ref: '#/components/schemas/UserLocation'
        uetimeZone:
          description: "Timezone where the User Equiptment is located"
          allOf:
            - $ref: '#/components/schemas/TimeZone'
        presenceReportingAreaInformation:
          additionalProperties:
            $ref: '#/components/schemas/PresenceInfo'
          minProperties: 0
          type: object
        rATType:
          $ref: '#/components/schemas/RatType'
        servingNetworkFunctionID:
          items:
            $ref: '#/components/schemas/ServingNetworkFunctionID'
          minItems: 0
          type: array
        "3gppPSDataOffStatus":
          $ref: '#/components/schemas/3GPPPSDataOffStatus'
        "3gppChargingId":
          $ref: '#/components/schemas/ChargingId'
        diagnostics:
          type: integer
        enhancedDiagnostics:
          items:
            type: string
          type: array
      required:
      - reportTime
      type: object
    RoamingChargingProfile:
      properties:
        triggers:
          items:
            $ref: '#/components/schemas/Trigger'
          minItems: 0
          type: array
        partialRecordMethod:
          $ref: '#/components/schemas/PartialRecordMethod'
      type: object
    SMSChargingInformation:
      description: "This field holds the SMS specific information described in TS 32.274 [34]."
      properties:
        originatorInfo:
          $ref: '#/components/schemas/OriginatorInfo'
        recipientInfo:
          items:
            $ref: '#/components/schemas/RecipientInfo'
          minItems: 0
          type: array
        userEquipmentInfo:
          $ref: '#/components/schemas/Pei'
        userLocationinfo:
          $ref: '#/components/schemas/UserLocation'
        uetimeZone:
          description: "Timezone where the User Equiptment is located"
          allOf:
            - $ref: '#/components/schemas/TimeZone'
        rATType:
          $ref: '#/components/schemas/RatType'
        sMSCAddress:
          type: string
        sMDataCodingScheme:
          type: integer
        sMMessageType:
          $ref: '#/components/schemas/SMMessageType'
        sMReplyPathRequested:
          $ref: '#/components/schemas/ReplyPathRequested'
        sMUserDataHeader:
          type: string
        sMStatus:
          type: string
        sMDischargeTime:
          $ref: '#/components/schemas/DateTime'
        numberofMessagesSent:
          $ref: '#/components/schemas/Uint32'
        sMServiceType:
          $ref: '#/components/schemas/SMServiceType'
        sMSequenceNumber:
          $ref: '#/components/schemas/Uint32'
        sMSresult:
          $ref: '#/components/schemas/Uint32'
        submissionTime:
          $ref: '#/components/schemas/DateTime'
        sMPriority:
          $ref: '#/components/schemas/SMPriority'
        messageReference:
          type: string
        messageSize:
          $ref: '#/components/schemas/Uint32'
        messageClass:
          $ref: '#/components/schemas/MessageClass'
        deliveryReportRequested:
          $ref: '#/components/schemas/DeliveryReportRequested'
      type: object
    OriginatorInfo:
      properties:
        originatorSUPI:
          $ref: '#/components/schemas/Supi'
        originatorGPSI:
          $ref: '#/components/schemas/Gpsi'
        originatorOtherAddress:
          $ref: '#/components/schemas/SMAddressInfo'
        originatorReceivedAddress:
          $ref: '#/components/schemas/SMAddressInfo'
        originatorSCCPAddress:
          type: string
        sMOriginatorInterface:
          $ref: '#/components/schemas/SMInterface'
        sMOriginatorProtocolId:
          type: string
      type: object
    RecipientInfo:
      properties:
        recipientSUPI:
          $ref: '#/components/schemas/Supi'
        recipientGPSI:
          $ref: '#/components/schemas/Gpsi'
        recipientOtherAddress:
          $ref: '#/components/schemas/SMAddressInfo'
        recipientReceivedAddress:
          $ref: '#/components/schemas/SMAddressInfo'
        recipientSCCPAddress:
          type: string
        sMDestinationInterface:
          $ref: '#/components/schemas/SMInterface'
        sMrecipientProtocolId:
          type: string
      type: object
    SMAddressInfo:
      properties:
        sMaddressType:
          $ref: '#/components/schemas/SMAddressType'
        sMaddressData:
          type: string
        sMaddressDomain:
          $ref: '#/components/schemas/SMAddressDomain'
      type: object
    MessageClass:
      description: "Implementation dependent the value selected for a specific transaction."
      example:
        classIdentifier: null
        tokenText: tokenText
      properties:
        classIdentifier:
          $ref: '#/components/schemas/ClassIdentifier'
        tokenText:
          type: string
      type: object
    SMAddressDomain:
      description: "The domain/network to which the associated address resides"
      properties:
        domainName:
          type: string
        "3GPPIMSIMCCMNC":
          type: string
      type: object
    SMInterface:
      description: "Containing information describing the interface on which the SM was requested to be delivered"
      properties:
        interfaceId:
          description: "The interface identification provided by the messaging node (originator/destination). interfaceText string"
          type: string
        interfaceText:
          description: "It is the consolidation information about the application associated with the charging event"
          type: string
        interfacePort:
          description: "The port-identification or contains information about the transport layer port used by the application associated with the charging event"
          type: string
        interfaceType:
          $ref: '#/components/schemas/InterfaceType'
      type: object
    RANSecondaryRATUsageReport:
      properties:
        rANSecondaryRATType:
          $ref: '#/components/schemas/RatType'
        qosFlowsUsageReports:
          items:
            $ref: '#/components/schemas/QosFlowsUsageReport'
          type: array
      type: object
    QosFlowsUsageReport:
      properties:
        qFI:
          $ref: '#/components/schemas/Qfi'
        startTimestamp:
          $ref: '#/components/schemas/DateTime'
        endTimestamp:
          $ref: '#/components/schemas/DateTime'
        uplinkVolume:
          $ref: '#/components/schemas/Uint64'
        downlinkVolume:
          $ref: '#/components/schemas/Uint64'
      type: object
    MAPDUSessionInformation:
      properties:
        mAPDUSessionIndicator:
          $ref: '#/components/schemas/MaPduIndication'
        aTSSSCapability:
          $ref: '#/components/schemas/AtsssCapability'
      type: object
    NodeFunctionality:
      description: "Type of Network Function Node"
      enum:
      - AMF
      - SMF
      - SMSF
      - SGW
      - I_SMF
      - ePDG
      - CEF
      type: string
    ChargingCharacteristicsSelectionMode:
      description: "Home - The subscriber belongs to the same PLMN as the SMF, Roaming - The subscriber belongs to same PLMN and the AMF belongs to a different PLMN, Visiting - The subscriber belongs to a different PLMN"
      enum:
      - HOME_DEFAULT
      - ROAMING_DEFAULT
      - VISITING_DEFAULT
      type: string
    TriggerType:
      description: "The events whose occurrence lead to charging event is issued towards the CHF."
      enum:
      - QUOTA_THRESHOLD
      - QHT
      - FINAL
      - QUOTA_EXHAUSTED
      - VALIDITY_TIME
      - OTHER_QUOTA_TYPE
      - FORCED_REAUTHORISATION
      - UNUSED_QUOTA_TIMER
      - UNIT_COUNT_INACTIVITY_TIMER
      - ABNORMAL_RELEASE
      - QOS_CHANGE
      - VOLUME_LIMIT
      - TIME_LIMIT
      - EVENT_LIMIT
      - PLMN_CHANGE
      - USER_LOCATION_CHANGE
      - RAT_CHANGE
      - SESSION_AMBR_CHANGE
      - UE_TIMEZONE_CHANGE
      - TARIFF_TIME_CHANGE
      - MAX_NUMBER_OF_CHANGES_IN_CHARGING_CONDITIONS
      - MANAGEMENT_INTERVENTION
      - CHANGE_OF_UE_PRESENCE_IN_PRESENCE_REPORTING_AREA
      - CHANGE_OF_3GPP_PS_DATA_OFF_STATUS
      - SERVING_NODE_CHANGE
      - REMOVAL_OF_UPF
      - ADDITION_OF_UPF
      - INSERTION_OF_ISMF
      - REMOVAL_OF_ISMF
      - CHANGE_OF_ISMF
      - START_OF_SERVICE_DATA_FLOW
      - ECGI_CHANGE
      - TAI_CHANGE
      - HANDOVER_CANCEL
      - HANDOVER_START
      - HANDOVER_COMPLETE
      - GFBR_GUARANTEED_STATUS_CHANGE
      - ADDITION_OF_ACCESS
      - REMOVAL_OF_ACCESS
      - START_OF_SDF_ADDITIONAL_ACCESS
      type: string
    TriggerCategory:
      description: "This field indicates whether the charging data generated by the NF consumer for the trigger lead to a Charging Event towards the CHF immediately or not"
      enum:
      - IMMEDIATE_REPORT
      - DEFERRED_REPORT
      type: string
    QuotaManagementIndicator:
      description: "This field holds an indicator on whether the reported used units are with or without quota management control. If the field is not present, it indicates the used unit is without quota management applied. Passed through CHF, Default is offline if absent."
      enum:
      - ONLINE_CHARGING
      - OFFLINE_CHARGING
      - QUOTA_MANAGEMENT_SUSPENDED
      type: string
    "3GPPPSDataOffStatus":
      description: "3GPP Data Status either active or not"
      enum:
      - ACTIVE
      - INACTIVE
      type: string
    PartialRecordMethod:
      description: "Method uses for partial record closure"
      enum:
      - DEFAULT
      - INDIVIDUAL
      type: string
    RoamerInOut:
      description: "The enumeration RoamerInOut indicates whether the user is an in-bound or out-bound roamer."
      enum:
      - IN_BOUND
      - OUT_BOUND
      type: string
    SMMessageType:
      description: "Identifies the message that triggered the generation of charging information."
      enum:
      - SUBMISSION
      - DELIVERY_REPORT
      - SM_SERVICE_REQUEST
      type: string
    SMPriority:
      description: "Any priority information associated with an SM"
      enum:
      - LOW
      - NORMAL
      - HIGH
      type: string
    DeliveryReportRequested:
      description: "Indicates if delivery report is requested"
      enum:
      - "true"
      - "false"
      type: string
    InterfaceType:
      description: "Type of interface / nature of the transaction in the messaging node for which the charging event occurs"
      enum:
      - UNKNOWN
      - MOBILE_ORIGINATING
      - MOBILE_TERMINATING
      - APPLICATION_ORIGINATING
      - APPLICATION_TERMINATING
      type: string
    ClassIdentifier:
      description: "Indicate the class identifier"
      enum:
      - PERSONAL
      - ADVERTISEMENT
      - INFORMATIONAL
      - AUTO
      type: string
    SMAddressType:
      description: "The type of address carried"
      enum:
      - EMAIL_ADDRESS
      - MSISDN
      - IPV4_ADDRESS
      - IPV6_ADDRESS
      - NUMERIC_SHORTCODE
      - ALPHANUMERIC_SHORTCODE
      - OTHER
      - IMSI
      type: string
    SMServiceType:
      description: "The type of SM service that caused the charging interaction. It is only applicable for SM supplementary service procedures"
      enum:
      - VAS4SMS_SHORT_MESSAGE_CONTENT_PROCESSING
      - VAS4SMS_SHORT_MESSAGE_FORWARDING
      - VAS4SMS_SHORT_MESSAGE_FORWARDING_MULTIPLE_SUBSCRIPTIONS
      - VAS4SMS_SHORT_MESSAGE_FILTERING
      - VAS4SMS_SHORT_MESSAGE_RECEIPT
      - VAS4SMS_SHORT_MESSAGE_NETWORK_STORAGE
      - VAS4SMS_SHORT_MESSAGE_TO_MULTIPLE_DESTINATIONS
      - VAS4SMS_SHORT_MESSAGE_VIRTUAL_PRIVATE_NETWORK(VPN)
      - VAS4SMS_SHORT_MESSAGE_AUTO_REPLY
      - VAS4SMS_SHORT_MESSAGE_PERSONAL_SIGNATURE
      - VAS4SMS_SHORT_MESSAGE_DEFERRED_DELIVERY
      type: string
    ReplyPathRequested:
      enum:
      - NO_REPLY_PATH_SET
      - REPLY_PATH_SET
      type: string
    dnnSelectionMode:
      description: "The enumeration DnnSelectionMode indicates whether the DNN of a PDU session being established corresponds to an explicitly subscribed DNN or to the usage of a wildcard subscription. "
      enum:
      - VERIFIED
      - UE_DNN_NOT_VERIFIED
      - NW_DNN_NOT_VERIFIED
      type: string
    Supi:
      description: "String identifying a Supi shall contain either an IMSI or an NAI"
      pattern: "^(imsi-[0-9]{5,15}|nai-.+|gci-.+|gli-.+|.+)$"
      type: string
    DateTime:
      description: "Timestamp in UTC"
      format: date-time
      type: string
    Uint32:
      maximum: 4294967295
      minimum: 0
      type: integer
    Uint64:
      maximum: 18446744073709551615
      minimum: 0
      type: integer
    Ipv4Addr:
      description: "An IPv4 Address Type with three periods and four octets between 0-255"
      example: 198.51.100.1
      pattern: "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$"
      type: string
    Ipv6Addr:
      description: "An IPv6 address has the format y:y:y:y:y:y:y:y, where y is called a segment and can be any hexadecimal value between 0 and FFFF. The segments are separated by colons"
      example: 2001:db8:85a3::8a2e:370:7334
      type: string
    PlmnId:
      description: "Indicates the identity of the PLMN that the RAN node belongs to"
      properties:
        mcc:
          $ref: '#/components/schemas/Mcc'
        mnc:
          $ref: '#/components/schemas/Mnc'
      required:
      - mcc
      - mnc
      type: object
    Mcc:
      description: "Three digit Mobile Country Code Value"
      example: 272
      pattern: "^\\d{3}$"
      type: string
    Mnc:
      description: "Two or three digit Mobile Network Code Value"
      example: 03
      pattern: "^\\d{2,3}$"
      type: string
    RatingGroup:
      description: "IP service flow identity, this filed holds the rating group. The parameter corresponds to the Charging Key as specified in TS 23.203 [203]"
      maximum: 4294967295
      minimum: 0
      type: integer
    ServiceId:
      description: "Identifier of a Service"
      maximum: 4294967295
      minimum: 0
      type: integer
    ChargingId:
      description: "Charging identifier allowing correlation of charging information"
      maximum: 4294967295
      minimum: 0
      type: integer
    UserLocation:
      description: "Indicates the location of the subscriber"
      properties:
        eutraLocation:
          $ref: '#/components/schemas/EutraLocation'
        nrLocation:
          $ref: '#/components/schemas/NrLocation'
        n3gaLocation:
          $ref: '#/components/schemas/N3gaLocation'
      type: object
    EutraLocation:
      description: "E-UTRA user location"
      properties:
        tai:
          $ref: '#/components/schemas/Tai'
        ecgi:
          $ref: '#/components/schemas/Ecgi'
        ignoreEcgi:
          default: false
          type: boolean
        ageOfLocationInformation:
          maximum: 32767
          minimum: 0
          type: integer
        ueLocationTimestamp:
          $ref: '#/components/schemas/DateTime'
        geographicalInformation:
          pattern: "^[0-9A-F]{16}$"
          type: string
        geodeticInformation:
          pattern: "^[0-9A-F]{20}$"
          type: string
        globalNgenbId:
          $ref: '#/components/schemas/GlobalRanNodeId'
        globalENbId:
          $ref: '#/components/schemas/GlobalRanNodeId'
      required:
      - ecgi
      - tai
      type: object
    Tai:
      description: "Tracking Area Identity"
      properties:
        plmnId:
          $ref: '#/components/schemas/PlmnId'
        tac:
          $ref: '#/components/schemas/Tac'
        nid:
          $ref: '#/components/schemas/Nid'
      required:
      - plmnId
      - tac
      type: object
    Tac:
      pattern: "(^[A-Fa-f0-9]{4}$)|(^[A-Fa-f0-9]{6}$)"
      type: string
    Nid:
      description: "Network Identity"
      pattern: "^[A-Fa-f0-9]{11}$"
      type: string
    Ecgi:
      description: "E-UTRA Cell Identity"
      properties:
        plmnId:
          $ref: '#/components/schemas/PlmnId'
        eutraCellId:
          $ref: '#/components/schemas/EutraCellId'
        nid:
          $ref: '#/components/schemas/Nid'
      required:
      - eutraCellId
      - plmnId
      type: object
    EutraCellId:
      description: "E-UTRA Cell Identity"
      pattern: "^[A-Fa-f0-9]{7}$"
      type: string
    GlobalRanNodeId:
      description: "RAN Node Ids, populated only if present. At least one of the attributes from n3IwfId, gNbId and ngeNbId is also required."
      type: object
      properties:
        plmnId:
          $ref: '#/components/schemas/PlmnId'
        n3IwfId:
          $ref: '#/components/schemas/N3IwfId'
        gNbId:
          $ref: '#/components/schemas/GNbId'
        ngeNbId:
          $ref: '#/components/schemas/NgeNbId'
      required:
        - plmnId
    N3IwfId:
      description: "This IE shall contain the N3IWF identifier received over NGAP and shall be encoded as a string of hexadecimal characters"
      pattern: "^[A-Fa-f0-9]+$"
      type: string
    GNbId:
      description: "It indicates the global identity of the gNodeB in which the UE is currently located. See 3GPP TS 38.413 [11] subclause 9.3.1.6"
      properties:
        bitLength:
          maximum: 32
          minimum: 22
          type: integer
        gNBValue:
          pattern: "^[A-Fa-f0-9]{6,8}$"
          type: string
      required:
      - bitLength
      - gNBValue
      type: object
    NgeNbId:
      description: "This represents the identifier of the ng-eNB ID as specified insubclause 9.3.1.8 of 3GPP TS 38.413 [11]"
      type: string
      pattern: '^(MacroNGeNB-[A-Fa-f0-9]{5}|LMacroNGeNB-[A-Fa-f0-9]{6}|SMacroNGeNB-[A-Fa-f0-9]{5})$'
    WAgfId:
      type: string
      pattern: '^[A-Fa-f0-9]+$'
    TngfId:
      type: string
      pattern: '^[A-Fa-f0-9]+$'
    ENbId:
      type: string
      pattern: '^(MacroeNB-[A-Fa-f0-9]{5}|LMacroeNB-[A-Fa-f0-9]{6}|SMacroeNB-[A-Fa-f0-9]{5}|HomeeNB-[A-Fa-f0-9]{7})$'
    NrLocation:
      description: "NR user location"
      properties:
        tai:
          $ref: '#/components/schemas/Tai'
        ncgi:
          $ref: '#/components/schemas/Ncgi'
        ageOfLocationInformation:
          description: "The value represents the elapsed time in minutes since the last network contact of the mobile station"
          maximum: 32767
          minimum: 0
          type: integer
        ueLocationTimestamp:
          description: "The value represents the UTC time when the UeLocation information was acquired."
          format: date-time
          type: string
        geographicalInformation:
          description: "Only the description of an ellipsoid point with uncertainty circle is allowed to be used"
          pattern: "^[0-9A-F]{16}$"
          type: string
        geodeticInformation:
          description: "Refers to Calling Geodetic Location"
          pattern: "^[0-9A-F]{20}$"
          type: string
        globalGnbId:
          $ref: '#/components/schemas/GlobalRanNodeId'
      required:
      - ncgi
      - tai
      type: object
    Ncgi:
      description: "NR cell Ids"
      properties:
        plmnId:
          $ref: '#/components/schemas/PlmnId'
        nrCellId:
          $ref: '#/components/schemas/NrCellId'
        nid:
          $ref: '#/components/schemas/Nid'
      required:
      - nrCellId
      - plmnId
      type: object
    NrCellId:
      description: "36-bit string identifying an NR Cell Id as specified in subclause 9.3.1.7 of 3GPP TS 38.413 [11], in hexadecimal representation"
      example: "225BD6007"
      pattern: "^[A-Fa-f0-9]{9}$"
      type: string
    N3gaLocation:
      description: "Non-3GPP access user location"
      properties:
        n3gppTai:
          $ref: '#/components/schemas/Tai'
        n3IwfId:
          $ref: '#/components/schemas/N3IwfId'
        ueIpv4Addr:
          $ref: '#/components/schemas/Ipv4Addr'
        ueIpv6Addr:
          $ref: '#/components/schemas/Ipv6Addr'
        portNumber:
          description: "UDP or TCP source port number."
          minimum: 0
          type: integer
        tnapId:
          $ref: '#/components/schemas/TnapId'
        twapId:
          $ref: '#/components/schemas/TwapId'
        hfcNodeId:
          $ref: '#/components/schemas/HfcNodeId'
        gli:
          $ref: '#/components/schemas/Gli'
        w5gbanLineType:
          $ref: '#/components/schemas/LineType'
        gci:
          $ref: '#/components/schemas/Gci'
      type: object
    TnapId:
      description: "This IE shall contain the TNAP Identifier, see clause 5.6.2 of 3GPP TS 23.501 [8]."
      properties:
        ssId:
          $ref: '#/components/schemas/SsId'
        bssId:
          $ref: '#/components/schemas/BssId'
        civicAddress:
          $ref: '#/components/schemas/Bytes'
      type: object
    Bytes:
      description: "Value in bytes"
      example: 01001000
      format: byte
      type: string
    BssId:
      example: "weget1204"
      type: string
    SsId:
      example: "weget1204"
      type: string
    TwapId:
      description: "This IE shall contain the TWAP Identifier, see clause 4.2.8.5.3 of 3GPP TS 23.501 [8]."
      properties:
        ssId:
          $ref: '#/components/schemas/SsId'
        bssId:
          $ref: '#/components/schemas/BssId'
        civicAddress:
          $ref: '#/components/schemas/Bytes'
      required:
      - ssid
      type: object
    HfcNodeId:
      description: "This IE shall contain the HFC Node Identifier received over NGAP. It shall be present for a 5G-CRG/FN-CRG accessing the 5GC via wireline access network."
      properties:
        hfcNId:
          $ref: '#/components/schemas/HfcNId'
      required:
      - hfcNId
      type: object
    HfcNId:
      description: "HFC Node Id."
      maxLength: 6
      type: string
    Gli:
      description: "This IE shall contain the Global Line Identifier. It shall be present for a 5G-BRG/FN-BRG accessing the 5GC via wireline access network."
      format: byte
      type: string
    LineType:
      enum:
      - DSL
      - PON
      type: string
    Gci:
      description: "This IE shall contain the Global Cable Identifier. It shall be present for the N5GC device accessing the 5GC via wireline access network. See clause 4.10a of 3GPP TS 23.316 [30]"
      type: string
    PresenceInfo:
      description: "The Presence Reporting Area status of UE during the container interval."
      properties:
        praId:
          description: "Represents an identifier to the specified area. "
          type: string
        additionalPraId:
          type: string
        presenceState:
          $ref: '#/components/schemas/PresenceState'
        trackingAreaList:
          items:
            $ref: '#/components/schemas/Tai'
          minItems: 1
          type: array
        ecgiList:
          items:
            $ref: '#/components/schemas/Ecgi'
          minItems: 1
          type: array
        ncgiList:
          items:
            $ref: '#/components/schemas/Ncgi'
          minItems: 1
          type: array
        globalRanNodeIdList:
          items:
            $ref: '#/components/schemas/GlobalRanNodeId'
          minItems: 1
          type: array
        globaleNbIdList:
          items:
            $ref: '#/components/schemas/GlobalRanNodeId'
          minItems: 1
          type: array
      type: object
    PresenceState:
      description: "Indicates whether the UE is inside or outside of the area of interest , or if the presence reporting area is inactive in the serving node."
      enum:
      - IN_AREA
      - OUT_OF_AREA
      - UNKNOWN
      - INACTIVE
      type: string
    TimeZone:
      description: "The timezone offset from UTC"
      type: string
    Gpsi:
      description: "Generic Public Subscription Identifier (GPSI) is used for addressing a 3GPP subscription in different data networks outside of the 3GPP system. For devices that are capable of accessing a 3GPP network, the PEI will be an MSISDN"
      pattern: "^(msisdn-[0-9]{5,15}|extid-[^@]+@[^@]+|.+)$"
      type: string
    Pei:
      description: "Permanent Equipment Identifier, the means by which the network identifies the User Equipment (for devices that are capable of accessing a 3GPP network, the PEI will be an IMEI)"
      pattern: "^(imei-[0-9]{15}|imeisv-[0-9]{16}|mac((-[0-9a-fA-F]{2}){6})(-untrusted)?|eui((-[0-9a-fA-F]{2}){8})|.+)$"
      type: string
    PduSessionId:
      description: "Unsigned integer identifying a PDU session, within the range 0 to 255, as specified in subclause 11.2.3.1b, bits 1 to 8, of 3GPP TS 24.007 [13]"
      maximum: 255
      minimum: 0
      type: integer
    PduSessionType:
      description: "The enumeration PduSessionType indicates the type of a PDU session"
      example:
        IPV4
      enum:
      - IPV4
      - IPV6
      - IPV4V6
      - UNSTRUCTURED
      - ETHERNET
      type: string
    SscMode:
      description: "Represents the service and session continuity mode"
      enum:
      - SSC_MODE_1
      - SSC_MODE_2
      - SSC_MODE_3
      type: string
    RatType:
      example: EUTRA
      description: "Indicate which Radio Access Technology is currently serving the UE"
      enum:
      - NR
      - EUTRA
      - WLAN
      - VIRTUAL
      - NBIOT
      - WIRELINE
      - WIRELINE_CABLE
      - WIRELINE_BBF
      - LTE-M
      - NR_U
      - EUTRA_U
      - TRUSTED_N3GA
      - TRUSTED_WLAN
      - UTRA
      - GERA
      type: string
    Dnn:
      description: "String representing a Data Network as defined in subclause 9A of 3GPP TS 23.003 [7]. It shall be formatted as string in which the labels are separated by dots (e.g.Label1.Label2.Label3)"
      type: string
    AuthorizedDefaultQos:
      description: "This field holds the authorized QoS applied to PDU session. Refer 3GPP TS 29.512 [302]"
      properties:
        "5qi":
          $ref: '#/components/schemas/5Qi'
        arp:
          $ref: '#/components/schemas/Arp'
        priorityLevel:
          description: "Unsigned integer indicating the 5QI Priority Level, within a range of 1 to 127."
          maximum: 127
          minimum: 1
          nullable: true
          type: integer
        averWindow:
          $ref: '#/components/schemas/AverWindow'
        maxDataBurstVol:
          $ref: '#/components/schemas/MaxDataBurstVol'
        maxbrUl:
          description: "Indicates the max bandwidth in uplink."
          allOf:
            - $ref: '#/components/schemas/BitRate'
        maxbrDl:
          description: "Indicates the max bandwidth in downlink."
          allOf:
            - $ref: '#/components/schemas/BitRate'
        gbrUl:
          description: "Indicates the guranteed bandwidth in uplink."
          allOf:
            - $ref: '#/components/schemas/BitRate'
        gbrDl:
          description: "Indicates the guranteed bandwidth in downlink."
          allOf:
            - $ref: '#/components/schemas/BitRate'
        qnc:
          description: "Indicates whether notifications are requested from 3GPP NG-RAN when the GFBR can no longer (or again) be guaranteed for a QoS Flow during the lifetime of the QoS Flow."
          type: boolean
        extMaxDataBurstVol:
          $ref: '#/components/schemas/ExtMaxDataBurstVol'
      type: object
    SubscribedDefaultQos:
      description: "Subscribed default QoS. Refer to 3GPP TS 29.571 [371]"
      properties:
        "5qi":
          $ref: '#/components/schemas/5Qi'
        arp:
          $ref: '#/components/schemas/Arp'
        priorityLevel:
          description: "Unsigned integer indicating the 5QI Priority Level, within a range of 1 to 127."
          maximum: 127
          minimum: 1
          type: integer
      required:
      - 5qi
      - arp
      type: object
    5Qi:
      description: "Default 5G QoS identifier"
      type: integer
      minimum: 0
      maximum: 255
    Arp:
      description: "Default Allocation and Retention Priority"
      properties:
        priorityLevel:
          maximum: 15
          minimum: 1
          type: integer
        preemptCap:
          $ref: '#/components/schemas/PreemptionCapability'
        preemptVuln:
          $ref: '#/components/schemas/PreemptionVulnerability'
      required:
      - preemptCap
      - preemptVuln
      - priorityLevel
      type: object
    PreemptionCapability:
      description: "Indicates the pre-emption capability of a request on other QoS flow"
      enum:
      - NOT_PREEMPT
      - MAY_PREEMPT
      type: string
    PreemptionVulnerability:
      description: "Indicates the pre-emption vulnerability of the QoS flow to pre-emption from other QoS flows."
      enum:
      - NOT_PREEMPTABLE
      - PREEMPTABLE
      type: string
    Ambr:
      description: "Session AMBR."
      example:
        uplink: uplink
        downlink: downlink
      properties:
        uplink:
          $ref: '#/components/schemas/BitRate'
        downlink:
          $ref: '#/components/schemas/BitRate'
      required:
      - downlink
      - uplink
      type: object
    BitRate:
      description: "Data volume over time e.g. 125 Mbps, 0.125 Gbps, 125000 Kbps"
      example: "124 Mbps"
      pattern: ^\d+(\.\d+)? (bps|Kbps|Mbps|Gbps|Tbps)$
      type: string
    QosData:
      nullable: true
      properties:
        qosId:
          description: "Univocally identifies the QoS control policy data within a PDU session."
          example: "11522304-100"
          type: string
        "5qi":
          $ref: '#/components/schemas/5Qi'
        maxbrUl:
          description: "Indicates the max bandwidth in uplink."
          allOf:
            - $ref: '#/components/schemas/BitRate'
        maxbrDl:
          description: "Indicates the max bandwidth in downlink."
          allOf:
            - $ref: '#/components/schemas/BitRate'
        gbrUl:
          description: "Indicates the guranteed bandwidth in uplink."
          allOf:
            - $ref: '#/components/schemas/BitRate'
        gbrDl:
          description: "Indicates the guranteed bandwidth in downlink."
          allOf:
            - $ref: '#/components/schemas/BitRate'
        arp:
          $ref: '#/components/schemas/Arp'
        qnc:
          description: "Indicates whether notifications are requested from 3GPP NG-RAN when the GFBR can no longer (or again) be guaranteed for a QoS Flow during the lifetime of the QoS Flow."
          type: boolean
        priorityLevel:
          maximum: 127
          minimum: 1
          nullable: true
          type: integer
        averWindow:
          $ref: '#/components/schemas/AverWindow'
        maxDataBurstVol:
          $ref: '#/components/schemas/MaxDataBurstVol'
        reflectiveQos:
          description: "Indicates whether the QoS information is reflective for the corresponding service data flow."
          type: boolean
        sharingKeyDl:
          description: "Indicates, by containing the same value, what PCC rules may share resource in downlink direction."
          example: sharingKeyDl
          type: string
        sharingKeyUl:
          description: "Indicates, by containing the same value, what PCC rules may  share resource in uplink direction."
          example: sharingKeyUl
          type: string
        maxPacketLossRateDl:
          description: "Value of Maximum Packet Loss Rate for Download"
          maximum: 1000
          minimum: 0
          nullable: true
          type: integer
        maxPacketLossRateUl:
          description: "Value of Maximum Packet Loss Rate for Upload"
          maximum: 1000
          minimum: 0
          nullable: true
          type: integer
        defQosFlowIndication:
          description: "Indicates that the dynamic PCC rule shall always have its binding with the QoS Flow associated with the default QoS rule"
          type: boolean
        extMaxDataBurstVol:
          $ref: '#/components/schemas/ExtMaxDataBurstVol'
        packetDelayBudget:
          minimum: 1
          type: integer
        packetErrorRate:
          description: "String indicating the packet error rate."
          pattern: "^([0-9]E-[0-9])$"
          type: string
      required:
      - qosId
      type: object
    QosCharacteristics:
      description: "Map of QoS characteristics for non standard 5QIs and non-preconfigured 5QIs"
      properties:
        "5qi":
          $ref: '#/components/schemas/5Qi'
        resourceType:
          $ref: '#/components/schemas/QosResourceType'
        priorityLevel:
          maximum: 127
          minimum: 1
          type: integer
        packetDelayBudget:
          $ref: '#/components/schemas/PacketDelBudget'
        packetErrorRate:
          $ref: '#/components/schemas/PacketErrRate'
        averagingWindow:
          $ref: '#/components/schemas/AverWindow'
        maxDataBurstVol:
          $ref: '#/components/schemas/MaxDataBurstVol'
        extMaxDataBurstVol:
          $ref: '#/components/schemas/ExtMaxDataBurstVol'
      required:
      - 5qi
      - packetDelayBudget
      - packetErrorRate
      - priorityLevel
      - resourceType
      type: object
    SteeringFunctionality:
      description: "Indicates functionality to support traffic steering, switching and splitting determined by the PCF."
      enum:
      - MPTCP
      - ATSSS_LL
      type: string
    SteeringMode:
      description: "Contains the steering mode value and parameters determined by the PCF"
      example:
        steerModeValue: null
        standby: null
        prioAcc: null
        active: null
        "3gLoad": 0
      properties:
        steerModeValue:
          $ref: '#/components/schemas/SteerModeValue'
        active:
          $ref: '#/components/schemas/AccessType'
        standby:
          $ref: '#/components/schemas/AccessTypeRm'
        "3gLoad":
          minimum: 0
          type: integer
        prioAcc:
          $ref: '#/components/schemas/AccessType'
      required:
      - steerModeValue
      type: object
    SteerModeValue:
      description: "Indicates the steering mode value determined by the PCF."
      enum:
      - ACTIVE_STANDBY
      - LOAD_BALANCING
      - SMALLEST_DELAY
      - PRIORITY_BASED
      type: string
    Snssai:
      description: "List of S-NSSAI "
      properties:
        sst:
          description: "Unsigned integer, within the range 0 to 255, representing the Slice/Service Type"
          maximum: 255
          minimum: 0
          type: integer
        sd:
          description: "3-octet string, representing the Slice Differentiator, in hexadecimal representation. "
          pattern: "^[A-Fa-f0-9]{6}$"
          type: string
      required:
      - sst
      type: object
    AmfId:
      description: "identifying the AMF ID composed of AMF Region ID (8 bits), AMF Set ID (10 bits) and AMF Pointer (6 bits) "
      pattern: "^[A-Fa-f0-9]{6}$"
      type: string
    Qfi:
      description: "Unsigned integer identifying a QoS flow, within the range 0 to 63."
      maximum: 63
      minimum: 0
      type: integer
    MaPduIndication:
      description: "Contains the MA PDU session indication"
      enum:
      - MA_PDU_REQUEST
      - MA_PDU_NETWORK_UPGRADE_ALLOWED
      type: string
    AtsssCapability:
      description: "Contains the ATSSS capability."
      example:
        rttWithoutPmf: false
        atsssLL: false
        mptcp: false
      properties:
        atsssLL:
          default: false
          type: boolean
        mptcp:
          default: false
          type: boolean
        rttWithoutPmf:
          default: false
          type: boolean
      type: object
    PacketDelBudget:
      description: "Indicates the size of the packet available"
      minimum: 1
      type: integer
    PacketErrRate:
      description: "Indicates the rate of errors seen in the packet"
      pattern: "^([0-9]E-[0-9])$"
      type: string
    QosResourceType:
      description: "indicates whether a QoS Flow is non-GBR, delay critical GBR, or non-delay critical GBR"
      enum:
      - NON_GBR
      - NON_CRITICAL_GBR
      - CRITICAL_GBR
      type: string
    AverWindow:
      description: "Indicates the averaging window."
      type: integer
      minimum: 1
      maximum: 4095
      default: 2000
    MaxDataBurstVol:
      description: "Unsigned integer indicating the maximum data burst volume. "
      type: integer
      minimum: 1
      maximum: 4095
    ExtMaxDataBurstVol:
      description: "Unsigned integer indicating the maximum data burst volume."
      type: integer
      minimum: 4096
      maximum: 2000000
    AccessType:
      description: "The identification of the type of access network."
      enum:
      - 3GPP_ACCESS
      - NON_3GPP_ACCESS
      type: string
    AccessTypeRm:
      description: This data type is defined in the same way as the AccessType data type, but with the OpenAPI nullable true property."
      enum:
      - 3GPP_ACCESS
      - NON_3GPP_ACCESS
      - NULL_VALUE
      type: string
    PossibleDuplicateUsage:
      description: "indicates if the CDR is a possible duplicate or not. Populated by CHF."
      type: boolean
    IncompleteCDR:
      description: "indicates the possibility of usage missed while the CDR is generated. The usages could come as a late CDR from another CHF site. Populated by CHF."
      type: boolean
    StaleSessionCleanup:
      description: "indicates CDR created due to Stale session cleanup and a possible failover. Populated by CHF."
      type: boolean
    LastInvocationSeqNumber:
      description: "indicates invocationSequenceNumber of N40 request which was received by CHF for this charging session."
      type: integer