openapi: 3.0.0

info:
  title: Npcf_SMPolicyControl API
  version: 1.3.1
  description: |
    Session Management Policy Control Service  
    © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).  
    All rights reserved.

externalDocs:
  description: 3GPP TS 29.512 V18.7.0; 5G System; Session Management Policy Control Service.
  url: 'https://www.3gpp.org/ftp/Specs/archive/29_series/29.512/'

security:
  - {}
  - oAuth2ClientCredentials:
    - npcf-smpolicycontrol

servers:
  - url: '{apiRoot}/npcf-smpolicycontrol/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501

paths:
  /sm-policies:
    post:
      summary: Create a new Individual SM Policy.
      operationId: CreateSMPolicy
      tags:
        - SM Policies (Collection)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmPolicyContextData'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmPolicyDecision'
          headers:
            Location:
              description: Contains the URI of the newly created resource.
              required: true
              schema:
                type: string
        '308':
          description: Permanent Redirect
          headers:
            Location:
              description: >
                Contains the URI of the PCF within the existing PCF binding information stored in
                the BSF for the same UE ID, S-NSSAI and DNN combination.
              required: true
              schema:
                type: string
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29571_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29571_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29571_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29571_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29571_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '502':
          $ref: 'TS29571_CommonData.yaml#/components/responses/502'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'
      callbacks:
        SmPolicyUpdateNotification:
          '{$request.body#/notificationUri}/update': 
            post:
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/SmPolicyNotification'
              responses:
                '200':
                  description: >
                    OK. The current applicable values corresponding to the policy control request 
                    trigger is reported.
                  content:
                    application/json:
                      schema:
                        oneOf:
                          - $ref: '#/components/schemas/UeCampingRep'
                          - type: array
                            items:
                              $ref: '#/components/schemas/PartialSuccessReport'
                            minItems: 1
                          - type: array
                            items:
                              $ref: '#/components/schemas/PolicyDecisionFailureCode'
                            minItems: 1
                '204':
                  description: No Content, Notification was succesfull
                '307':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/307'
                '308':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/308'
                '400':
                  description: Bad Request.
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/ErrorReport'
                '401':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/401'
                '403':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/403'
                '404':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/404'
                '411':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/411'
                '413':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/413'
                '415':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/415'
                '429':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/429'
                '500':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/500'
                '502':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/502'
                '503':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/503'
                default:
                  $ref: 'TS29571_CommonData.yaml#/components/responses/default'
        SmPolicyControlTerminationRequestNotification:
          '{$request.body#/notificationUri}/terminate': 
            post:
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/TerminationNotification'
              responses:
                '204':
                  description: No Content, Notification was successful
                '307':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/307'
                '308':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/308'
                '400':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/400'
                '401':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/401'
                '403':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/403'
                '404':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/404'
                '411':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/411'
                '413':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/413'
                '415':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/415'
                '429':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/429'
                '500':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/500'
                '502':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/502'
                '503':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/503'
                default:
                  $ref: 'TS29571_CommonData.yaml#/components/responses/default'
  /sm-policies/{smPolicyId}:
    get:
      summary: Read an Individual SM Policy
      operationId: GetSMPolicy
      tags:
        - Individual SM Policy (Document)
      parameters:
        - name: smPolicyId
          in: path
          description: Identifier of a policy association.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK. Resource representation is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmPolicyControl'
        '307':
          $ref: 'TS29571_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29571_CommonData.yaml#/components/responses/308'
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29571_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '406':
          $ref: 'TS29571_CommonData.yaml#/components/responses/406'
        '429':
          $ref: 'TS29571_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '502':
          $ref: 'TS29571_CommonData.yaml#/components/responses/502'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'
  /sm-policies/{smPolicyId}/update:
    post:
      summary: Update an existing Individual SM Policy
      operationId: UpdateSMPolicy
      tags:
        - Individual SM Policy (Document)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmPolicyUpdateContextData'
      parameters:
        - name: smPolicyId
          in: path
          description: Identifier of a policy association.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK. Updated policies are returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmPolicyDecision'
        '307':
          $ref: 'TS29571_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29571_CommonData.yaml#/components/responses/308'
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29571_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29571_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29571_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29571_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29571_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '502':
          $ref: 'TS29571_CommonData.yaml#/components/responses/502'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'
  /sm-policies/{smPolicyId}/delete:
    post:
      summary: Delete an existing Individual SM Policy.
      operationId: DeleteSMPolicy
      tags:
        - Individual SM Policy (Document)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmPolicyDeleteData'
      parameters:
        - name: smPolicyId
          in: path
          description: Identifier of a policy association.
          required: true
          schema:
            type: string
      responses:
        '204':
          description: No content
        '307':
          $ref: 'TS29571_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29571_CommonData.yaml#/components/responses/308'
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29571_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29571_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29571_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29571_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29571_CommonData.yaml#/components/responses/429'
        '502':
          $ref: 'TS29571_CommonData.yaml#/components/responses/502'
        '500':
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'

components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows: 
        clientCredentials: 
          tokenUrl: '{nrfApiRoot}/oauth2/token'
          scopes:
            npcf-smpolicycontrol: Access to the Npcf_SMPolicyControl API

  schemas:
    SmPolicyControl:
      description: >
        Contains the parameters used to request the SM policies and the SM policies authorized by 
        the PCF.
      type: object
      properties:
        context:
          $ref: '#/components/schemas/SmPolicyContextData'
        policy:
          $ref: '#/components/schemas/SmPolicyDecision'
      required:
        - context
        - policy

    SmPolicyContextData:
      description: Contains the parameters used to create an Individual SM policy resource.
      type: object
      properties:
        accNetChId:
          $ref: '#/components/schemas/AccNetChId'
        chargEntityAddr:
          $ref: '#/components/schemas/AccNetChargingAddress'
        gpsi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
        supi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi'
        invalidSupi:
          type: boolean
          description: >
            When this attribute is included and set to true, it indicates that the supi attribute
            contains an invalid value.This attribute shall be present if the SUPI is not available
            in the SMF or the SUPI is unauthenticated. When present it shall be set to true for an
            invalid SUPI and false (default) for a valid SUPI.
        interGrpIds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/GroupId'
          minItems: 1
        pduSessionId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
        pduSessionType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionType'
        chargingcharacteristics:
          type: string
        dnn:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
        dnnSelMode:
          $ref: 'TS29502_Nsmf_PDUSession.yaml#/components/schemas/DnnSelectionMode'
        notificationUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        accessType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        ratType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/RatType'
        addAccessInfo:
          $ref: '#/components/schemas/AdditionalAccessInfo'
        servingNetwork:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnIdNid'
        userLocationInfo:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        ueTimeZone:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TimeZone'
        pei:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Pei'
        ipv4Address:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr'
        ipv6AddressPrefix:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix'
        ipDomain:
          type: string
          description: Indicates the IPv4 address domain
        subsSessAmbr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ambr'
        authProfIndex:
          type: string
          description: Indicates the DN-AAA authorization profile index
        subsDefQos:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SubscribedDefaultQos'
        vplmnQos:
          $ref: 'TS29502_Nsmf_PDUSession.yaml#/components/schemas/VplmnQos'
        numOfPackFilter:
          type: integer
          description: Contains the number of supported packet filter for signalled QoS rules.
        online:
          type: boolean
          description: >
            If it is included and set to true, the online charging is applied to the PDU session.
        offline:
          type: boolean
          description: >
            If it is included and set to true, the offline charging is applied to the PDU session.
        3gppPsDataOffStatus:
          type: boolean
          description: >
            If it is included and set to true, the 3GPP PS Data Off is activated by the UE.
        refQosIndication:
          type: boolean
          description: If it is included and set to true, the reflective QoS is supported by the UE.
        traceReq:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TraceData'
        sliceInfo:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        altSliceInfo:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        qosFlowUsage:
          $ref: '#/components/schemas/QosFlowUsage'
        servNfId:
          $ref: '#/components/schemas/ServingNfIdentity'
        suppFeat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
        smfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        recoveryTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        maPduInd:
          $ref: '#/components/schemas/MaPduIndication'
        atsssCapab:
          $ref: '#/components/schemas/AtsssCapability'
        ipv4FrameRouteList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4AddrMask'
          minItems: 1
        ipv6FrameRouteList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix'
          minItems: 1
        satBackhaulCategory:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SatelliteBackhaulCategory'
        pcfUeInfo:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PcfUeCallbackInfo'
        pvsInfo:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/ServerAddressingInfo'
          minItems: 1
        onboardInd:
          type: boolean
          description: >
            If it is included and set to true, it indicates that the PDU session is used for 
            UE Onboarding.
        nwdafDatas:
          type: array
          items:
            $ref: '#/components/schemas/NwdafData'
          minItems: 1
        urspEnfInfo:
          $ref: '#/components/schemas/UrspEnforcementInfo'
        sscMode:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SscMode'
        ueReqDnn:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
        ueReqPduSessionType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionType'
        hrsboInd:
          type: boolean
          description: >
            HR-SBO support indication. If present and set to "true", it indicates that the HR-SBO is
            supported. Default value is "false" if omitted.
        uePolFailReport:
          $ref: 'TS29525_Npcf_UEPolicyControl.yaml#/components/schemas/UePolicyTransferFailureCause'
      required:
        - supi
        - pduSessionId
        - pduSessionType
        - dnn
        - notificationUri
        - sliceInfo

    SmPolicyDecision:
      description: Contains the SM policies authorized by the PCF.
      type: object
      properties:
        sessRules:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SessionRule'
          minProperties: 1
          description: >
            A map of Sessionrules with the content being the SessionRule as described in
            clause 5.6.2.7. The key used in this map for each entry is the sessRuleId
            attribute of the corresponding SessionRule.
        pccRules:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PccRule'
          minProperties: 1
          description: >
            A map of PCC rules with the content being the PCCRule as described in 
            clause 5.6.2.6. The key used in this map for each entry is the pccRuleId
            attribute of the corresponding PccRule.
          nullable: true
        pcscfRestIndication:
          type: boolean
          description: >
            If it is included and set to true, it indicates the P-CSCF Restoration is requested.
        qosDecs:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/QosData'
          minProperties: 1
          description: >
            Map of QoS data policy decisions. The key used in this map for each entry is the qosId
            attribute of the corresponding QosData.
        chgDecs:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ChargingData'
          minProperties: 1
          description: >
            Map of Charging data policy decisions. The key used in this map for each entry
            is the chgId attribute of the corresponding ChargingData.
          nullable: true
        chargingInfo:
          $ref: '#/components/schemas/ChargingInformation'
        traffContDecs:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/TrafficControlData'
          minProperties: 1
          description: >
            Map of Traffic Control data policy decisions. The key used in this map for each entry
            is the tcId attribute of the corresponding TrafficControlData.
        umDecs:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/UsageMonitoringData'
          minProperties: 1
          description: >
            Map of Usage Monitoring data policy decisions. The key used in this map for each entry
            is the umId attribute of the corresponding UsageMonitoringData.
          nullable: true
        qosChars:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/QosCharacteristics'
          minProperties: 1
          description: >
            Map of QoS characteristics for non standard 5QIs. This map uses the 5QI values as keys.
        qosMonDecs:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/QosMonitoringData'
          minProperties: 1
          description: >
            Map of QoS Monitoring data policy decisions. The key used in this map for each entry
            is the qmId attribute of the corresponding QosMonitoringData.
          nullable: true
        reflectiveQoSTimer:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec'
        conds:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ConditionData'
          minProperties: 1
          description: >
            A map of condition data with the content being as described in clause 5.6.2.9. The key
            used in this map for each entry is the condId attribute of the corresponding
            ConditionData.
          nullable: true
        revalidationTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        offline:
          type: boolean
          description: >
            Indicates the offline charging is applicable to the PDU session when it is included and 
            set to true.
        online:
          type: boolean
          description: >
            Indicates the online charging is applicable to the PDU session when it is included and 
            set to true.
        offlineChOnly:
          type: boolean
          default: false
          description: >
            Indicates that the online charging method shall never be used for any PCC rule activated
            during the lifetime of the PDU session.
        policyCtrlReqTriggers:
          type: array
          items:
            $ref: '#/components/schemas/PolicyControlRequestTrigger'
          minItems: 1
          description: Defines the policy control request triggers subscribed by the PCF.
          nullable: true
        lastReqRuleData:
          type: array
          items:
            $ref: '#/components/schemas/RequestedRuleData'
          minItems: 1
          description: Defines the last list of rule control data requested by the PCF.
        lastReqUsageData:
          $ref: '#/components/schemas/RequestedUsageData'
        praInfos:
          type: object
          additionalProperties:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/PresenceInfoRm'
          minProperties: 1
          description: >
            Map of PRA information. The praId attribute within the PresenceInfo data type is the key 
            of the map.
          nullable: true
        ipv4Index:
          $ref: 'TS29519_Policy_Data.yaml#/components/schemas/IpIndex'
        ipv6Index:
          $ref: 'TS29519_Policy_Data.yaml#/components/schemas/IpIndex'
        qosFlowUsage:
          $ref: '#/components/schemas/QosFlowUsage'
        relCause:
          $ref: '#/components/schemas/SmPolicyAssociationReleaseCause'
        suppFeat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
        tsnBridgeManCont:
          $ref: '#/components/schemas/BridgeManagementContainer'
        tsnPortManContDstt:
          $ref: '#/components/schemas/PortManagementContainer'
        tsnPortManContNwtts:
          type: array
          items:
            $ref: '#/components/schemas/PortManagementContainer'
          minItems: 1
        tscNotifUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        tscNotifCorreId:
          type: string
          description: >
            Correlation identifier for TSC management information notifications.
        redSessIndication:
          type: boolean
          description: >
            Indicates whether the PDU session is a redundant PDU session. If absent it means the PDU
            session is not a redundant PDU session.
        uePolCont:
          $ref: '#/components/schemas/UePolicyContainer'
        sliceUsgCtrlInfo:
          $ref: '#/components/schemas/SliceUsgCtrlInfo'
        vplmnOffloadInfos:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/VplmnOffloadingInfo'
          minItems: 1
          description: List of VPLMN Specific offloading information.
          nullable: true
        vplmnDlAmbr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/VplmnDlAmbr'

    SmPolicyNotification:
      description: Represents a notification on the update of the SM policies.
      type: object
      properties:
        resourceUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        smPolicyDecision:
          $ref: '#/components/schemas/SmPolicyDecision'

    PccRule:
      description: Contains a PCC rule information.
      type: object
      properties:
        flowInfos:
          type: array
          items:
            $ref: '#/components/schemas/FlowInformation'
          minItems: 1
          description: An array of IP flow packet filter information.
        appId:
          type: string
          description: A reference to the application detection filter configured at the UPF.
        appDescriptor:
          $ref: '#/components/schemas/ApplicationDescriptor'
        contVer:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/ContentVersion'
        protoDescDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ProtocolDescription'
        protoDescUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ProtocolDescription'
        pccRuleId:
          type: string
          description: Univocally identifies the PCC rule within a PDU session.
        precedence:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        afSigProtocol:
          $ref: '#/components/schemas/AfSigProtocol'
        appReloc:
          type: boolean
          description: Indication of application relocation possibility.
        easRedisInd:
          type: boolean
          description: Indicates the EAS rediscovery is required.
        refQosData:
          type: array
          items:
            type: string
          minItems: 1
          maxItems: 1
          description: >
            A reference to the QosData policy decision type. It is the qosId described in 
            clause 5.6.2.8.
        refAltQosParams:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            A Reference to the QosData policy decision type for the Alternative QoS parameter sets 
            of the service data flow.
        refTcData:
          type: array
          items:
            type: string
          minItems: 1
          maxItems: 1
          description: >
            A reference to the TrafficControlData policy decision type. It is the tcId described in 
            clause 5.6.2.10.
        refChgData:
          type: array
          items:
            type: string
          minItems: 1
          maxItems: 1
          description: >
            A reference to the ChargingData policy decision type. It is the chgId described in 
            clause 5.6.2.11.
          nullable: true
        refChgN3gData:
          type: array
          items:
            type: string
          minItems: 1
          maxItems: 1
          description: >
            A reference to the ChargingData policy decision type only applicable to Non-3GPP access
            if "ATSSS" feature is supported. It is the chgId described in clause 5.6.2.11.
          nullable: true
        refUmData:
          type: array
          items:
            type: string
          minItems: 1
          maxItems: 1
          description: >
            A reference to UsageMonitoringData policy decision type. It is the umId described in 
            clause 5.6.2.12.
          nullable: true
        refUmN3gData:
          type: array
          items:
            type: string
          minItems: 1
          maxItems: 1
          description: >
            A reference to UsageMonitoringData policy decision type only applicable to Non-3GPP
            access if "ATSSS" feature is supported. It is the umId described in clause 5.6.2.12. 
          nullable: true
        refCondData:
          type: string
          description: >
            A reference to the condition data. It is the condId described in clause 5.6.2.9.
          nullable: true
        refQosMon:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            A reference to the QosMonitoringData policy decision type. It is the qmId described in 
            clause 5.6.2.40. 
          nullable: true
        addrPreserInd:
          type: boolean
          nullable: true
        tscaiInputDl:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/TscaiInputContainer'
        tscaiInputUl:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/TscaiInputContainer'
        tscaiTimeDom:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        capBatAdaptation:
          type: boolean
          description: >
            Indicates the capability for AF to adjust the burst sending time, when it is provided
            and set to "true". The default value is "false" if omitted.
        ddNotifCtrl:
          $ref: '#/components/schemas/DownlinkDataNotificationControl'
        ddNotifCtrl2:
          $ref: '#/components/schemas/DownlinkDataNotificationControlRm'
        disUeNotif:
          type: boolean
          nullable: true
        packFiltAllPrec:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        nscSuppFeats:
          type: object
          additionalProperties:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
          minProperties: 1
          description: >
            Identifies a list of Network Function Service Consumer supported per service. The key 
            used in this map for each entry is the ServiceName value as defined in
            3GPP TS 29.510[29].
        callInfo:
          $ref: '#/components/schemas/CallInfo'
        traffParaData:
          $ref: '#/components/schemas/TrafficParaData'
      required:
        - pccRuleId
      nullable: true

    SessionRule:
      description: Contains session level policy information.
      type: object
      properties:
        authSessAmbr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ambr'
        authDefQos:
          $ref: '#/components/schemas/AuthorizedDefaultQos'
        sessRuleId:
          type: string
          description: Univocally identifies the session rule within a PDU session.
        refUmData:
          type: string
          description: >
            A reference to UsageMonitoringData policy decision type. It is the umId described in 
            clause 5.6.2.12.
          nullable: true
        refUmN3gData:
          type: string
          description: >
            A reference to UsageMonitoringData policy decision type to apply for Non-3GPP access. It 
            is the umId described in clause 5.6.2.12.
          nullable: true
        refCondData:
          type: string
          description: >
            A reference to the condition data. It is the condId described in clause 5.6.2.9.
          nullable: true
      required:
        - sessRuleId
      nullable: true

    QosData:
      description: Contains the QoS parameters.
      type: object
      properties:
        qosId:
          type: string
          description: Univocally identifies the QoS control policy data within a PDU session.
        5qi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/5Qi'
        maxbrUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRateRm'
        maxbrDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRateRm'
        gbrUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRateRm'
        gbrDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRateRm'
        arp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Arp'
        qnc:
          type: boolean
          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.
        priorityLevel:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/5QiPriorityLevelRm'
        averWindow:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AverWindowRm'
        maxDataBurstVol:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/MaxDataBurstVolRm'
        reflectiveQos:
          type: boolean
          description: >
            Indicates whether the QoS information is reflective for the corresponding service data 
            flow.
        sharingKeyDl:
          type: string
          description: >
            Indicates, by containing the same value, what PCC rules may share resource in downlink 
            direction.
        sharingKeyUl:
          type: string
          description: >
            Indicates, by containing the same value, what PCC rules may share resource in uplink 
            direction.
        maxPacketLossRateDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketLossRateRm'
        maxPacketLossRateUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketLossRateRm'
        defQosFlowIndication:
          type: boolean
          description: >
            Indicates that the dynamic PCC rule shall always have its binding with the QoS Flow 
            associated with the default QoS rule
        extMaxDataBurstVol:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ExtMaxDataBurstVolRm'
        packetDelayBudget:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketDelBudget'
        packetErrorRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketErrRate'
        pduSetQosDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSetQosParaRm'
        pduSetQosUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSetQosParaRm'
      required:
        - qosId
      nullable: true

    ConditionData:
      description: Contains conditions of applicability for a rule.
      type: object
      properties:
        condId:
          type: string
          description: Uniquely identifies the condition data within a PDU session.
        activationTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTimeRm'
        deactivationTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTimeRm'
        accessType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        ratType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/RatType'
      required:
        - condId
      nullable: true

    TrafficControlData:
      description: >
        Contains parameters determining how flows associated with a PCC Rule are treated (e.g. 
        blocked, redirected, etc).
      type: object
      properties:
        tcId:
          type: string
          description: Univocally identifies the traffic control policy data within a PDU session.
        l4sInd:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/UplinkDownlinkSupport'
        flowStatus:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/FlowStatus'
        redirectInfo:
          $ref: '#/components/schemas/RedirectInformation'
        addRedirectInfo:
          type: array
          items:
            $ref: '#/components/schemas/RedirectInformation'
          minItems: 1
        muteNotif:
          type: boolean
          description: Indicates whether applicat'on's start or stop notification is to be muted.
        trafficSteeringPolIdDl:
          type: string
          description: >
            Reference to a pre-configured traffic steering policy for downlink traffic at the SMF.
          nullable: true
        trafficSteeringPolIdUl:
          type: string
          description: >
            Reference to a pre-configured traffic steering policy for uplink traffic at the SMF.
          nullable: true
        metadata:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Metadata'
        routeToLocs:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/RouteToLocation'
          minItems: 1
          description: A list of location which the traffic shall be routed to for the AF request
          nullable: true
        maxAllowedUpLat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UintegerRm'
        easIpReplaceInfos:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/EasIpReplacementInfo'
          minItems: 1
          description: Contains EAS IP replacement information.
          nullable: true
        traffCorreInd:
          type: boolean
        tfcCorreInfo:
          $ref: 'TS29519_Application_Data.yaml#/components/schemas/TrafficCorrelationInfo'
        simConnInd:
          type: boolean
          description: >
            Indicates whether simultaneous connectivity should be temporarily maintained for the 
            source and target PSA.
        simConnTerm:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec'
        upPathChgEvent:
          $ref: '#/components/schemas/UpPathChgEvent'
        steerFun:
          $ref: '#/components/schemas/SteeringFunctionality'
        transMode:
          $ref: '#/components/schemas/TransportMode'
        steerModeDl:
          $ref: '#/components/schemas/SteeringMode'
        steerModeUl:
          $ref: '#/components/schemas/SteeringMode'
        mulAccCtrl:
          $ref: '#/components/schemas/MulticastAccessControl'
        candDnaiInd:
          type: boolean
          description: >
            Indication of reporting candidate DNAI(s). If it is included and set to "true", the
            candidate DNAI(s) for the PDU session need to be reported. Otherwise set to "false" or
            omitted.
        datEndMarkInd:
          type: boolean
          description: >
            The data burst end marking is enabled if it is set to "true". Default value is "false" if
            omitted.
      required:
        - tcId
      nullable: true

    ChargingData:
      description: Contains charging related parameters.
      type: object
      properties:
        chgId:
          type: string
          description: Univocally identifies the charging control policy data within a PDU session.
        meteringMethod:
          $ref: '#/components/schemas/MeteringMethod'
        offline:
          type: boolean
          description: >
            Indicates the offline charging is applicable to the PCC rule when it is included and set 
            to true.
        online:
          type: boolean
          description: >
            Indicates the online charging is applicable to the PCC rule when it is included and set 
            to true.
        sdfHandl:
          type: boolean
          description: >
            Indicates whether the service data flow is allowed to start while the SMF is waiting for 
            the response to the credit request.
        ratingGroup:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/RatingGroup'
        reportingLevel:
          $ref: '#/components/schemas/ReportingLevel'
        serviceId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ServiceId'
        sponsorId:
          type: string
          description: Indicates the sponsor identity.
        appSvcProvId:
          type: string
          description: Indicates the application service provider identity.
        afChargingIdentifier:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ChargingId'
        afChargId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationChargingId'
      required:
        - chgId
      nullable: true

    UsageMonitoringData:
      description: Contains usage monitoring related control information.
      type: object
      properties:
        umId:
          type: string
          description: Univocally identifies the usage monitoring policy data within a PDU session.
        volumeThreshold:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/VolumeRm'
        volumeThresholdUplink:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/VolumeRm'
        volumeThresholdDownlink:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/VolumeRm'
        timeThreshold:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSecRm'
        monitoringTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTimeRm'
        nextVolThreshold:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/VolumeRm'
        nextVolThresholdUplink:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/VolumeRm'
        nextVolThresholdDownlink:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/VolumeRm'
        nextTimeThreshold:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSecRm'
        inactivityTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSecRm'
        exUsagePccRuleIds:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            Contains the PCC rule identifier(s) which corresponding service data flow(s) shall be
            excluded from PDU Session usage monitoring. It is only included in the
            UsageMonitoringData instance for session level usage monitoring.
          nullable: true
      required:
        - umId
      nullable: true

    RedirectInformation:
      description: Contains the redirect information.
      type: object
      properties:
        redirectEnabled:
          type: boolean
          description: Indicates the redirect is enable.
        redirectAddressType:
          $ref: '#/components/schemas/RedirectAddressType'
        redirectServerAddress:
          type: string
          description: >
            Indicates the address of the redirect server. If "redirectAddressType" attribute
            indicates the IPV4_ADDR, the encoding is the same as the Ipv4Addr data type defined in
            3GPP TS 29.571.If "redirectAddressType" attribute indicates the IPV6_ADDR, the encoding
            is the same as the Ipv6Addr data type defined in 3GPP TS 29.571.If "redirectAddressType"
            attribute indicates the URL or SIP_URI, the encoding is the same as the Uri data type
            defined in 3GPP TS 29.571.

    FlowInformation:
      description: Contains the flow information.
      type: object
      properties:
        flowDescription:
          $ref: '#/components/schemas/FlowDescription'
        ethFlowDescription:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/EthFlowDescription'
        packFiltId:
          type: string
          description: An identifier of packet filter.
        packetFilterUsage:
          type: boolean
          description: The packet shall be sent to the UE.
        tosTrafficClass:
          type: string
          description: >
            Contains the Ipv4 Type-of-Service and mask field or the Ipv6 Traffic-Class field and 
            mask field.
          nullable: true
        spi:
          type: string
          description: the security parameter index of the IPSec packet.
          nullable: true
        flowLabel:
          type: string
          description: the Ipv6 flow label header field.
          nullable: true
        flowDirection:
          $ref: '#/components/schemas/FlowDirectionRm'

    SmPolicyDeleteData:
      description: >
        Contains the parameters to be sent to the PCF when an individual SM policy is deleted.
      type: object
      properties:
        userLocationInfo:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        ueTimeZone:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TimeZone'
        servingNetwork:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnIdNid'
        userLocationInfoTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        ranNasRelCauses:
          type: array
          items:
            $ref: '#/components/schemas/RanNasRelCause'
          minItems: 1
          description: Contains the RAN and/or NAS release cause.
        accuUsageReports:
          type: array
          items:
            $ref: '#/components/schemas/AccuUsageReport'
          minItems: 1
          description: Contains the usage report
        pduSessRelCause:
          $ref: '#/components/schemas/PduSessionRelCause'

    QosCharacteristics:
      description: Contains QoS characteristics for a non-standardized or a non-configured 5QI.
      type: object
      properties:
        5qi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/5Qi'
        resourceType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/QosResourceType'
        priorityLevel:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/5QiPriorityLevel'
        packetDelayBudget:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketDelBudget'
        packetErrorRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketErrRate'
        averagingWindow:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AverWindow'
        maxDataBurstVol:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/MaxDataBurstVol'
        extMaxDataBurstVol:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ExtMaxDataBurstVol'
      required:
        - 5qi
        - resourceType
        - priorityLevel
        - packetDelayBudget
        - packetErrorRate

    ChargingInformation:
      description: Contains the addresses of the charging functions.
      type: object
      properties:
        primaryChfAddress:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        secondaryChfAddress:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        primaryChfSetId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfSetId'
        primaryChfInstanceId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        secondaryChfSetId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfSetId'
        secondaryChfInstanceId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
      required:
        - primaryChfAddress

    AccuUsageReport:
      description: Contains the accumulated usage report information.
      type: object
      properties:
        refUmIds:
          type: string
          description: >
            An id referencing UsageMonitoringData objects associated with this usage report.
        volUsage:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Volume'
        volUsageUplink:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Volume'
        volUsageDownlink:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Volume'
        timeUsage:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec'
        nextVolUsage:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Volume'
        nextVolUsageUplink:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Volume'
        nextVolUsageDownlink:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Volume'
        nextTimeUsage:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec'
      required:
        - refUmIds

    SmPolicyUpdateContextData:
      description: >
        Contains the policy control request trigger(s) that were met and the corresponding new
        value(s) or the error report of the policy enforcement.
      type: object
      properties:
        repPolicyCtrlReqTriggers:
          type: array
          items:
            $ref: '#/components/schemas/PolicyControlRequestTrigger'
          minItems: 1
          description: The policy control reqeust trigges which are met.
        accNetChIds:
          type: array
          items:
            $ref: '#/components/schemas/AccNetChId'
          minItems: 1
          description: >
            Indicates the access network charging identifier for the PCC rule(s) or whole PDU 
            session.
        accessType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        ratType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/RatType'
        addAccessInfo:
          $ref: '#/components/schemas/AdditionalAccessInfo'
        relAccessInfo:
          $ref: '#/components/schemas/AdditionalAccessInfo'
        servingNetwork:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnIdNid'
        userLocationInfo:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        ueTimeZone:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TimeZone'
        relIpv4Address:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr'
        ipv4Address:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr'
        ipDomain:
          type: string
          description: Indicates the IPv4 address domain
        ipv6AddressPrefix:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix'
        relIpv6AddressPrefix:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix'
        addIpv6AddrPrefixes:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix'
        addRelIpv6AddrPrefixes:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix'
        multiIpv6Prefixes:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix'
          minItems: 1
          description: The multiple allocated IPv6 prefixes of the served UE.
        multiRelIpv6Prefixes:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix'
          minItems: 1
          description: The multiple released IPv6 prefixes of the served UE.
        relUeMac:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/MacAddr48'
        ueMac:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/MacAddr48'
        subsSessAmbr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ambr'
        authProfIndex:
          type: string
          description: Indicates the DN-AAA authorization profile index
        subsDefQos:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SubscribedDefaultQos'
        vplmnQos:
          $ref: 'TS29502_Nsmf_PDUSession.yaml#/components/schemas/VplmnQos'
        vplmnQosNotApp:
          type: boolean
          description: >
            If it is included and set to true, indicates that the QoS constraints in the VPLMN are
            not applicable.
        numOfPackFilter:
          type: integer
          description: Contains the number of supported packet filter for signalled QoS rules.
        accuUsageReports:
          type: array
          items:
            $ref: '#/components/schemas/AccuUsageReport'
          minItems: 1
          description: Contains the usage report
        3gppPsDataOffStatus:
          type: boolean
          description: >
            If it is included and set to true, the 3GPP PS Data Off is activated by the UE.
        appDetectionInfos:
          type: array
          items:
            $ref: '#/components/schemas/AppDetectionInfo'
          minItems: 1
          description: >
            Report the start/stop of the application traffic and detected SDF descriptions
            if applicable.
        ruleReports:
          type: array
          items:
            $ref: '#/components/schemas/RuleReport'
          minItems: 1
          description: Used to report the PCC rule failure.
        sessRuleReports:
          type: array
          items:
            $ref: '#/components/schemas/SessionRuleReport'
          minItems: 1
          description: Used to report the session rule failure.
        qncReports:
          type: array
          items:
            $ref: '#/components/schemas/QosNotificationControlInfo'
          minItems: 1
          description: QoS Notification Control information.
        qosMonReports:
          type: array
          items:
            $ref: '#/components/schemas/QosMonitoringReport'
          minItems: 1
          description: QoS Monitoring reporting information.
        qosMonDatRateReps:
          type: array
          items:
            $ref: '#/components/schemas/QosMonitoringReport'
          minItems: 1
        qosMonCongReps:
          type: array
          items:
            $ref: '#/components/schemas/QosMonitoringReport'
          minItems: 1
        userLocationInfoTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        repPraInfos:
          type: object
          additionalProperties:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/PresenceInfo'
          minProperties: 1
          description: >
            Reports the changes of presence reporting area. The praId attribute within the
            PresenceInfo data type is the key of the map.
        ueInitResReq:
          $ref: '#/components/schemas/UeInitiatedResourceRequest'
        refQosIndication:
          type: boolean
          description: >
            If it is included and set to true, the reflective QoS is supported by the UE. If it is
            included and set to false, the reflective QoS is revoked by the UE.
        qosFlowUsage:
          $ref: '#/components/schemas/QosFlowUsage'
        creditManageStatus:
          $ref: '#/components/schemas/CreditManagementStatus'
        servNfId:
          $ref: '#/components/schemas/ServingNfIdentity'
        traceReq:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TraceData'
        maPduInd:
          $ref: '#/components/schemas/MaPduIndication'
        atsssCapab:
          $ref: '#/components/schemas/AtsssCapability'
        tsnBridgeInfo:
          $ref: '#/components/schemas/TsnBridgeInfo'
        tsnBridgeManCont:
          $ref: '#/components/schemas/BridgeManagementContainer'
        tsnPortManContDstt:
          $ref: '#/components/schemas/PortManagementContainer'
        tsnPortManContNwtts:
          type: array
          items:
            $ref: '#/components/schemas/PortManagementContainer'
          minItems: 1
        tscNotifUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        tscNotifCorreId:
          type: string
          description: >
            Correlation identifier for TSC management information notifications.
        mulAddrInfos:
          type: array
          items:
            $ref: '#/components/schemas/IpMulticastAddressInfo'
          minItems: 1
        policyDecFailureReports:
          type: array
          items:
            $ref: '#/components/schemas/PolicyDecisionFailureCode'
          minItems: 1
          description: Contains the type(s) of failed policy decision and/or condition data.
        invalidPolicyDecs:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/InvalidParam'
          minItems: 1
          description: >
            Indicates the invalid parameters for the reported type(s) of the failed policy decision
            and/or condition data.
        trafficDescriptors:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/DddTrafficDescriptor'
          minItems: 1
        pccRuleId:
          type: string
          description: >
            Contains the identifier of the PCC rule which is used for traffic detection of event.
        typesOfNotif:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/DlDataDeliveryStatus'
          minItems: 1
        interGrpIds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/GroupId'
          minItems: 1
        satBackhaulCategory:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SatelliteBackhaulCategory'
        pcfUeInfo:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PcfUeCallbackInfo'
        nwdafDatas:
          type: array
          items:
            $ref: '#/components/schemas/NwdafData'
          minItems: 1
          nullable: true
        anGwStatus:
          type: boolean
          description: >
            When it is included and set to true, it indicates that the AN-Gateway has failed and
            that the PCF should refrain from sending policy decisions to the SMF until it is
            informed that the AN-Gateway has been recovered.
        uePolCont:
          $ref: '#/components/schemas/UePolicyContainer'
        uePolFailReport:
          $ref: 'TS29525_Npcf_UEPolicyControl.yaml#/components/schemas/UePolicyTransferFailureCause'
        urspEnfInfo:
          $ref: '#/components/schemas/UrspEnforcementInfo'
        sscMode:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SscMode'
        ueReqDnn:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
        ueReqPduSessionType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionType'
        l4sReports:
          type: array
          items:
            $ref: '#/components/schemas/L4sSupportInfo'
          minItems: 1
          description: ECN marking for L4S support availability in 5GS.
        altSliceInfo:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        batOffsetInfo:
          $ref: '#/components/schemas/BatOffsetInfoPcc'
        hrsboInd:
          type: boolean
          description: >
            HR-SBO support indication. If present and set to "true", it indicates that the HR-SBO is
            supported. If present and set to "false", it indicates that the HR-SBO is not supported.
        ueReachStatus:
          $ref: '#/components/schemas/UeReachabilityStatus'
        retryAfter:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
      allOf:
        - not: 
            required: [multiIpv6Prefixes, ipv6AddressPrefix]
        - not: 
            required: [multiIpv6Prefixes, addIpv6AddrPrefixes]
        - not: 
            required: [multiRelIpv6Prefixes, relIpv6AddressPrefix]
        - not: 
            required: [multiRelIpv6Prefixes, relAddIpv6AddrPrefixes]

    UpPathChgEvent:
      description: Contains the UP path change event subscription from the AF.
      type: object
      properties:
        notificationUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        notifCorreId:
          type: string
          description: >
            It is used to set the value of Notification Correlation ID in the notification sent by
            the SMF.
        dnaiChgType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DnaiChangeType'
        afAckInd:
          type: boolean
      required:
        - notificationUri
        - notifCorreId
        - dnaiChgType
      nullable: true

    TerminationNotification:
      description: Represents a Termination Notification.
      type: object
      properties:
        resourceUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        cause:
          $ref: '#/components/schemas/SmPolicyAssociationReleaseCause'
      required:
        - resourceUri
        - cause

    AppDetectionInfo:
      description: Contains the detected application's traffic information.
      type: object
      properties:
        appId:
          type: string
          description: A reference to the application detection filter configured at the UPF
        instanceId:
          type: string
          description: >
            Identifier sent by the SMF in order to allow correlation of application Start and Stop
            events to the specific service data flow description, if service data flow descriptions
            are deducible.
        sdfDescriptions:
          type: array
          items:
            $ref: '#/components/schemas/FlowInformation'
          minItems: 1
          description: Contains the detected service data flow descriptions if they are deducible.
      required:
        - appId

    AccNetChId:
      description: >
        Contains the access network charging identifier for the PCC rule(s) or for the whole
        PDU session.
      type: object
      properties:
        accNetChaIdValue:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ChargingId'
        accNetChargId:
          type: string
          description: A character string containing the access network charging id.
        refPccRuleIds:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            Contains the identifier of the PCC rule(s) associated to the provided Access Network
            Charging Identifier.
        sessionChScope:
          type: boolean
          description: >
            When it is included and set to true, indicates the Access Network Charging Identifier
            applies to the whole PDU Session
      oneOf:
        - required: [accNetChaIdValue]
        - required: [accNetChargId]

    AccNetChargingAddress:
      description: Describes the network entity within the access network performing charging
      type: object
      anyOf:
        - required: [anChargIpv4Addr]
        - required: [anChargIpv6Addr]
      properties:
        anChargIpv4Addr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr'
        anChargIpv6Addr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Addr'

    RequestedRuleData:
      description: >
        Contains rule data requested by the PCF to receive information associated with PCC rule(s).
      type: object
      properties:
        refPccRuleIds:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            An array of PCC rule id references to the PCC rules associated with the control data. 
        reqData:
          type: array
          items:
            $ref: '#/components/schemas/RequestedRuleDataType'
          minItems: 1
          description: >
            Array of requested rule data type elements indicating what type of rule data is
            requested for the corresponding referenced PCC rules.
      required:
        - refPccRuleIds
        - reqData

    RequestedUsageData:
      description: >
            Contains usage data requested by the PCF requesting usage reports for the corresponding
            usage monitoring data instances.
      type: object
      properties:
        refUmIds:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            An array of usage monitoring data id references to the usage monitoring data instances
            for which the PCF is requesting a usage report. This attribute shall only be provided
            when allUmIds is not set to true.
        allUmIds:
          type: boolean
          description: >
            This boolean indicates whether requested usage data applies to all usage monitoring data
            instances. When it's not included, it means requested usage data shall only apply to the
            usage monitoring data instances referenced by the refUmIds attribute.

    UeCampingRep:
      description: >
        Contains the current applicable values corresponding to the policy control request triggers.
      type: object
      properties:
        accessType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        ratType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/RatType'
        servNfId:
          $ref: '#/components/schemas/ServingNfIdentity'
        servingNetwork:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnIdNid'
        userLocationInfo:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        ueTimeZone:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TimeZone'
        netLocAccSupp:
          $ref: '#/components/schemas/NetLocAccessSupport'
        satBackhaulCategory:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SatelliteBackhaulCategory'
        urspEnfInfo:
          $ref: '#/components/schemas/UrspEnforcementInfo'
        sscMode:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SscMode'
        ueReqDnn:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
        ueReqPduSessionType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionType'

    RuleReport:
      description: Reports the status of PCC.
      type: object
      properties:
        pccRuleIds:
          type: array
          items:
            type: string
          minItems: 1
          description: Contains the identifier of the affected PCC rule(s).
        ruleStatus:
          $ref: '#/components/schemas/RuleStatus'
        contVers:
          type: array
          items:
            $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/ContentVersion'
          minItems: 1
          description: Indicates the version of a PCC rule.
        failureCode:
          $ref: '#/components/schemas/FailureCode'
        retryAfter:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        finUnitAct:
          $ref: 'TS32291_Nchf_ConvergedCharging.yaml#/components/schemas/FinalUnitAction'
        ranNasRelCauses:
          type: array
          items:
            $ref: '#/components/schemas/RanNasRelCause'
          minItems: 1
          description: indicates the RAN or NAS release cause code information.
        altQosParamId:
          type: string
          description: >
            Indicates the alternative QoS parameter set that the NG-RAN can guarantee. It is
            included during the report of successfull resource allocation and indicates that NG-RAN
            used an alternative QoS profile because the requested QoS could not be allocated..
      required:
        - pccRuleIds
        - ruleStatus

    RanNasRelCause:
      description: Contains the RAN/NAS release cause.
      type: object
      properties:
        ngApCause:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NgApCause'
        5gMmCause:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/5GMmCause'
        5gSmCause:
          $ref: '#/components/schemas/5GSmCause'
        epsCause:
          $ref: '#/components/schemas/EpsRanNasRelCause'

    UeInitiatedResourceRequest:
      description: Indicates that a UE requests specific QoS handling for the selected SDF.
      type: object
      properties:
        pccRuleId:
          type: string
        ruleOp:
          $ref: '#/components/schemas/RuleOperation'
        precedence:
          type: integer
        packFiltInfo:
          type: array
          items:
            $ref: '#/components/schemas/PacketFilterInfo'
          minItems: 1
        reqQos:
          $ref: '#/components/schemas/RequestedQos'
      required:
        - ruleOp
        - packFiltInfo

    PacketFilterInfo:
      description: >
        Contains the information from a single packet filter sent from the SMF to the PCF.
      type: object
      properties:
        packFiltId:
          type: string
          description: An identifier of packet filter.
        packFiltCont:
          $ref: '#/components/schemas/PacketFilterContent'
        tosTrafficClass:
          type: string
          description: >
            Contains the Ipv4 Type-of-Service and mask field or the Ipv6 Traffic-Class field and
            mask field.
        spi:
          type: string
          description: The security parameter index of the IPSec packet.
        flowLabel:
          type: string
          description: The Ipv6 flow label header field.
        flowDirection:
          $ref: '#/components/schemas/FlowDirection'

    RequestedQos:
      description: Contains the QoS information requested by the UE.
      type: object
      properties:
        5qi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/5Qi'
        gbrUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        gbrDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
      required:
        - 5qi

    QosNotificationControlInfo:
      description: Contains the QoS Notification Control Information.
      type: object
      properties:
        refPccRuleIds:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            An array of PCC rule id references to the PCC rules associated with the QoS notification
            control info.
        notifType:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/QosNotifType'
        contVer:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/ContentVersion'
        altQosParamId:
          type: string
          description: >
            Indicates the alternative QoS parameter set the NG-RAN can guarantee. When it is omitted
            and the notifType attribute is set to NOT_GUAARANTEED it indicates that the lowest
            priority alternative QoS profile could not be fulfilled.
        altQosNotSuppInd:
          type: boolean
          description: >
            When present and set to true it indicates that the Alternative QoS profiles are not
            supported by NG-RAN.
      required:
        - refPccRuleIds
        - notifType

    PartialSuccessReport:
      description: >
        Includes the information reported by the SMF when some of the PCC rules and/or session rules 
        and/or policy decision and/or condition data are not successfully installed/activated or
        stored.
      type: object
      properties:
        failureCause:
          $ref: '#/components/schemas/FailureCause'
        ruleReports:
          type: array
          items:
            $ref: '#/components/schemas/RuleReport'
          minItems: 1
          description: >
            Information about the PCC rules provisioned by the PCF not successfully
            installed/activated.
        sessRuleReports:
          type: array
          items:
            $ref: '#/components/schemas/SessionRuleReport'
          minItems: 1
          description: >
            Information about the session rules provisioned by the PCF not successfully installed.
        ueCampingRep:
          $ref: '#/components/schemas/UeCampingRep'
        policyDecFailureReports:
          type: array
          items:
            $ref: '#/components/schemas/PolicyDecisionFailureCode'
          minItems: 1
          description: Contains the type(s) of failed policy decision and/or condition data.
        invalidPolicyDecs:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/InvalidParam'
          minItems: 1
          description: >
            Indicates the invalid parameters for the reported type(s) of the failed policy decision
            and/or condition data.
      required:
        - failureCause

    AuthorizedDefaultQos:
      description: Represents the Authorized Default QoS.
      type: object
      properties:
        5qi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/5Qi'
        arp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Arp'
        priorityLevel:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/5QiPriorityLevelRm'
        averWindow:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AverWindowRm'
        maxDataBurstVol:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/MaxDataBurstVolRm'
        maxbrUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRateRm'
        maxbrDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRateRm'
        gbrUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRateRm'
        gbrDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRateRm'
        extMaxDataBurstVol:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ExtMaxDataBurstVolRm'

    ErrorReport:
      description: Contains the rule,policy decision and/or condition data error reports.
      type: object
      properties:
        error:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
        ruleReports:
          type: array
          items:
            $ref: '#/components/schemas/RuleReport'
          minItems: 1
          description: Used to report the PCC rule failure.
        sessRuleReports:
          type: array
          items:
            $ref: '#/components/schemas/SessionRuleReport'
          minItems: 1
          description: Used to report the session rule failure.
        polDecFailureReports:
          type: array
          items:
            $ref: '#/components/schemas/PolicyDecisionFailureCode'
          minItems: 1
          description: Used to report failure of the policy decision and/or condition data.
        invalidPolicyDecs:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/InvalidParam'
          minItems: 1
          description: >
            Indicates the invalid parameters for the reported type(s) of the failed policy decision
            and/or condition data.

    SessionRuleReport:
      description: Represents reporting of the status of a session rule.
      type: object
      properties:
        ruleIds:
          type: array
          items:
            type: string
          minItems: 1
          description: Contains the identifier of the affected session rule(s).
        ruleStatus:
          $ref: '#/components/schemas/RuleStatus'
        sessRuleFailureCode:
          $ref: '#/components/schemas/SessionRuleFailureCode'
        policyDecFailureReports:
          type: array
          items:
            $ref: '#/components/schemas/PolicyDecisionFailureCode'
          minItems: 1
          description: Contains the type(s) of failed policy decision and/or condition data.
      required:
        - ruleIds
        - ruleStatus

    ServingNfIdentity:
      description: Contains the serving Network Function identity.
      type: object
      properties:
        servNfInstId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        guami:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Guami'
        anGwAddr:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/AnGwAddress'
        sgsnAddr:
          $ref: '#/components/schemas/SgsnAddress'

    SteeringMode:
      description: Contains the steering mode value and parameters determined by the PCF.
      type: object
      properties:
        steerModeValue:
          $ref: '#/components/schemas/SteerModeValue'
        active:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        standby:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessTypeRm'
        3gLoad:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        prioAcc:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        thresValue:
          $ref: '#/components/schemas/ThresholdValue'
        steerModeInd:
          $ref: '#/components/schemas/SteerModeIndicator'
        primary:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessTypeRm'

      required:
        - steerModeValue

    AdditionalAccessInfo:
      description: >
        Indicates the combination of additional Access Type and RAT Type for a MA PDU session.
      type: object
      properties:
        accessType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        ratType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/RatType'
      required:
        - accessType

    QosMonitoringData:
      description: Contains QoS monitoring related control information.
      type: object
      properties:
        qmId:
          type: string
          description: Univocally identifies the QoS monitoring policy data within a PDU session.
        qosMonParamType:
          $ref: '#/components/schemas/QosMonitoringParamType'
        reqQosMonParams:
          type: array
          items:
            $ref: '#/components/schemas/RequestedQosMonitoringParameter'
          minItems: 1
          description: >
            Indicates the QoS information to be monitored when the QoS Monitoring is enabled for
            the service data flow.
        repFreqs:
          type: array
          items:
             $ref: '#/components/schemas/ReportingFrequency'
          minItems: 1
          description: >
            Indicates the frequency for the reporting, such as event triggered and/or periodic.
        repThreshDl:
          type: integer
          description: Indicates the period of time in units of miliiseconds for DL packet delay.
          nullable: true
        repThreshUl:
          type: integer
          description: Indicates the period of time in units of miliiseconds for UL packet delay.
          nullable: true
        repThreshRp:
          type: integer
          description: >
            Indicates the period of time in units of miliiseconds for round trip packet delay.
          nullable: true
        conThreshDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UintegerRm'
        conThreshUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UintegerRm'
        waitTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSecRm'
        repPeriod:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSecRm'
        notifyUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UriRm'
        notifyCorreId:
          type: string
          nullable: true
        directNotifInd:
          type: boolean
          description: >
            Indicates that the direct event notification sent by UPF to the Local NEF or AF is 
            requested if it is included and set to true.
        avrgWndw:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AverWindowRm'
        repThreshDatRateUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRateRm'
        repThreshDatRateDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRateRm'
        dataCollAppId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId'
      required:
        - qmId
        - reqQosMonParams
        - repFreqs
      nullable: true

    QosMonitoringReport:
      description: Contains reporting information on QoS monitoring.
      type: object
      properties:
        refPccRuleIds:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            An array of PCC rule id references to the PCC rules associated with the QoS monitoring
            report.
        ulDelays:
          type: array
          items:
            type: integer
          minItems: 1
        dlDelays:
          type: array
          items:
            type: integer
          minItems: 1
        rtDelays:
          type: array
          items:
            type: integer
          minItems: 1
        pdmf:
          type: boolean
          description: Represents the packet delay measurement failure indicator.
        ulDataRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        dlDataRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        ulCongInfo:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        dlCongInfo:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
      required:
        - refPccRuleIds
#
    TsnBridgeInfo:
      description: Contains parameters that describe and identify the TSC user plane node.
      type: object
      properties:
        bridgeId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint64'
        dsttAddr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/MacAddr48'
        dsttPortNum:
          $ref: '#/components/schemas/TsnPortNumber'
        dsttResidTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        mtuIpv4:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint16'
        mtuIpv6:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint32'
#
    PortManagementContainer:
      description: Contains the port management information container for a port.
      type: object
      properties:
        portManCont:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
        portNum:
          $ref: '#/components/schemas/TsnPortNumber'
      required:
        - portManCont
        - portNum
    BridgeManagementContainer:
      description: Contains the UMIC.
      type: object
      properties:
        bridgeManCont:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
      required:
        - bridgeManCont
    IpMulticastAddressInfo:
      description: Contains the IP multicast addressing information.
      type: object
      properties:
        srcIpv4Addr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr'
        ipv4MulAddr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr'
        srcIpv6Addr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Addr'
        ipv6MulAddr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Addr'

    DownlinkDataNotificationControl:
      description: Contains the downlink data notification control information.
      type: object
      properties:
        notifCtrlInds:
          type: array
          items:
            $ref: '#/components/schemas/NotificationControlIndication'
          minItems: 1
        typesOfNotif:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/DlDataDeliveryStatus'
          minItems: 1

    DownlinkDataNotificationControlRm:
      description: >
        This data type is defined in the same way as the DownlinkDataNotificationControl data type,
        but with the nullable:true property.
      type: object
      properties:
        notifCtrlInds:
          type: array
          items:
            $ref: '#/components/schemas/NotificationControlIndication'
          minItems: 1
          nullable: true
        typesOfNotif:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/DlDataDeliveryStatus'
          minItems: 1
          nullable: true
      nullable: true

    ThresholdValue:
      description: Indicates the threshold value(s) for RTT and/or Packet Loss Rate.
      type: object
      properties:
        rttThres:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UintegerRm'
        plrThres:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketLossRateRm'
      nullable: true

    NwdafData:
      description: >
        Indicates the list of Analytic ID(s) per NWDAF instance ID used for the PDU Session consumed
        by the SMF.
      type: object
      properties:
        nwdafInstanceId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        nwdafEvents:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/NwdafEvent'
          minItems: 1
      required:
        - nwdafInstanceId

    CallInfo:
      description: Identifies the caller and callee information.
      type: object
      properties:
        callingPartyAddrs:
          type: array
          items:
            type: string
          minItems: 1
        calleeInfo:
          $ref: '#/components/schemas/CalleeInfo'
      nullable: true

    CalleeInfo:
      description: Identifies the callee information.
      type: object
      properties:
        calledPartyAddr:
          type: string
        requestPartyAddrs:
          type: array
          items:
            type: string
          minItems: 1
        calledAssertIds:
          type: array
          items:
            type: string
          minItems: 1
      nullable: true

#
    TrafficParaData:
      description: Contains Traffic Parameter(s) related control information.
      type: object
      properties:
        periodUl:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/DurationMilliSecRm'
        periodDl:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/DurationMilliSecRm'
        reqTrafficParas:
          type: array
          items:
            $ref: '#/components/schemas/TrafficParameterMeas'
          minItems: 1
          description: Indicates the traffic parameters to be measured.
        repFreqs:
          type: array
          items:
             $ref: '#/components/schemas/ReportingFrequency'
          minItems: 1
          description: Represents the notification method (periodic or on event detection).
        dlN6JitterThr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        repPeriod:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSecRm'

    L4sSupportInfo:
      description: Contains the ECN marking for L4S support in 5GS information.
      type: object
      properties:
        refPccRuleIds:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            An array of PCC rule id references to the PCC rules associated with the ECN marking
            for L4S support info.
        notifType:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/L4sNotifType'
      required:
        - refPccRuleIds
        - notifType

    SliceUsgCtrlInfo:
      description: Represents network slice usage control information.
      type: object
      properties:
        pduSessInactivTimer:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSecRm'
      anyOf:
        - required: [pduSessInactivTimer]

    BatOffsetInfoPcc:
      description: >
        Indicates the offset of the BAT and the optionally adjusted periodicity.
      type: object
      required:
        - ranBatOffsetNotif
        - refPccRuleIds
      properties:
        ranBatOffsetNotif:
          type: integer
          description: >
            Indicates the BAT offset of the arrival time of the data burst in units
            of milliseconds.
        adjPeriod:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        refPccRuleIds:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            Identification of the PCC rules associated with the BAT offset and the optionally
            adjusted periodicity.

    5GSmCause:
      $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
    EpsRanNasRelCause:
      type: string
      description: Defines the EPS RAN/NAS release cause.
    PacketFilterContent:
      type: string
      description: Defines a packet filter for an IP flow.
    FlowDescription:
      type: string
      description: Defines a packet filter for an IP flow.
    TsnPortNumber:
      $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
    ApplicationDescriptor:
      $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
    UePolicyContainer:
      $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
    UrspEnforcementInfo:
      $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'

    FlowDirection:
      anyOf:
      - type: string
        enum:
          - DOWNLINK
          - UPLINK
          - BIDIRECTIONAL
          - UNSPECIFIED
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates the direction of the service data flow.  
        Possible values are:
        - DOWNLINK: The corresponding filter applies for traffic to the UE.
        - UPLINK: The corresponding filter applies for traffic from the UE.
        - BIDIRECTIONAL: The corresponding filter applies for traffic both to and from the UE.
        - UNSPECIFIED: The corresponding filter applies for traffic to the UE (downlink), but has no
        specific direction declared. The service data flow detection shall apply the filter for
        uplink traffic as if the filter was bidirectional. The PCF shall not use the value
        UNSPECIFIED in filters created by the network in NW-initiated procedures. The PCF shall only
        include the value UNSPECIFIED in filters in UE-initiated procedures if the same value is
        received from the SMF.

    FlowDirectionRm:
      description: >
        This data type is defined in the same way as the "FlowDirection" data type, with the only 
        difference that it allows null value.
      anyOf:
        - $ref: '#/components/schemas/FlowDirection'
        - $ref: 'TS29571_CommonData.yaml#/components/schemas/NullValue'

    ReportingLevel:
      anyOf:
      - type: string
        enum:
          - SER_ID_LEVEL
          - RAT_GR_LEVEL
          - SPON_CON_LEVEL
      - $ref: 'TS29571_CommonData.yaml#/components/schemas/NullValue'
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates the reporting level.  
        Possible values are:
        - SER_ID_LEVEL: Indicates that the usage shall be reported on service id and rating group
        combination level.
        - RAT_GR_LEVEL: Indicates that the usage shall be reported on rating group level.
        - SPON_CON_LEVEL: Indicates that the usage shall be reported on sponsor identity and rating
        group combination level.

    MeteringMethod:
      anyOf:
      - type: string
        enum:
          - DURATION
          - VOLUME
          - DURATION_VOLUME
          - EVENT
      - $ref: 'TS29571_CommonData.yaml#/components/schemas/NullValue'
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates the metering method.  
        Possible values are:
        - DURATION: Indicates that the duration of the service data flow traffic shall be metered.
        - VOLUME: Indicates that volume of the service data flow traffic shall be metered.
        - DURATION_VOLUME: Indicates that the duration and the volume of the service data flow
        traffic shall be metered.
        - EVENT: Indicates that events of the service data flow traffic shall be metered.

    PolicyControlRequestTrigger:
      anyOf:
      - type: string
        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
          - QOS_NOTIF
          - NO_CREDIT
          - REALLO_OF_CREDIT
          - PRA_CH
          - SAREA_CH
          - SCNN_CH
          - RE_TIMEOUT
          - RES_RELEASE
          - SUCC_RES_ALLO
          - RAI_CH
          - RAT_TY_CH
          - REF_QOS_IND_CH
          - NUM_OF_PACKET_FILTER
          - UE_STATUS_RESUME
          - UE_TZ_CH
          - AUTH_PROF_CH
          - QOS_MONITORING
          - SCELL_CH
          - USER_LOCATION_CH
          - EPS_FALLBACK
          - MA_PDU
          - TSN_BRIDGE_INFO
          - 5G_RG_JOIN
          - 5G_RG_LEAVE
          - DDN_FAILURE
          - DDN_DELIVERY_STATUS
          - GROUP_ID_LIST_CHG
          - DDN_FAILURE_CANCELLATION
          - DDN_DELIVERY_STATUS_CANCELLATION
          - VPLMN_QOS_CH
          - SUCC_QOS_UPDATE
          - SAT_CATEGORY_CHG
          - PCF_UE_NOTIF_IND
          - NWDAF_DATA_CHG
          - UE_POL_CONT_IND
          - URSP_ENFORCEMENT_INFO
          - HR_SBO_IND_CHG
          - L4S_SUPP
          - NET_SLICE_REPL
          - BAT_OFFSET_INFO
          - UE_REACH_STATUS_CH
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates the policy control request trigger(s).  
        Possible values are:
        - PLMN_CH: PLMN Change
        - RES_MO_RE: A request for resource modification has been received by the SMF. The SMF
        always reports to the PCF.
        - AC_TY_CH: Access Type Change.
        - UE_IP_CH: UE IP address change. The SMF always reports to the PCF.
        - UE_MAC_CH: A new UE MAC address is detected or a used UE MAC address is inactive for a
        specific period.
        - AN_CH_COR: Access Network Charging Correlation Information
        - US_RE: The PDU Session or the Monitoring key specific resources consumed by a UE either
        reached the threshold or needs to be reported for other reasons.
        - APP_STA: The start of application traffic has been detected.
        - APP_STO: The stop of application traffic has been detected.
        - AN_INFO: Access Network Information report.
        - CM_SES_FAIL: Credit management session failure.
        - PS_DA_OFF: The SMF reports when the 3GPP PS Data Off status changes. The SMF always
        reports to the PCF.
        - DEF_QOS_CH: Default QoS Change. The SMF always reports to the PCF.
        - SE_AMBR_CH: Session-AMBR Change. The SMF always reports to the PCF.
        - QOS_NOTIF: The SMF notify the PCF when receiving notification from RAN that QoS targets of
        the QoS Flow cannot be guranteed or gurateed again.
        - NO_CREDIT: Out of credit.
        - REALLO_OF_CREDIT: Reallocation of credit.
        - PRA_CH: Change of UE presence in Presence Reporting Area.
        - SAREA_CH: Location Change with respect to the Serving Area.
        - SCNN_CH: Location Change with respect to the Serving CN node.
        - RE_TIMEOUT: Indicates the SMF generated the request because there has been a PCC
        revalidation timeout.
        - RES_RELEASE: Indicate that the SMF can inform the PCF of the outcome of the release of
        resources for those rules that require so.
        - SUCC_RES_ALLO: Indicates that the requested rule data is the successful resource
        allocation.
        - RAI_CH: Location Change with respect to the RAI of GERAN and UTRAN.
        - RAT_TY_CH: RAT Type Change.
        - REF_QOS_IND_CH: Reflective QoS indication Change
        - NUM_OF_PACKET_FILTER: Indicates that the SMF shall report the number of supported packet 
        filter for signalled QoS rules.
        - UE_STATUS_RESUME: Indicates that the UE's status is resumed.
        - UE_TZ_CH: UE Time Zone Change.
        - AUTH_PROF_CH: The DN-AAA authorization profile index has changed.
        - QOS_MONITORING: Indicate that the SMF notifies the PCF of the QoS Monitoring information.
        - SCELL_CH: Location Change with respect to the Serving Cell.
        - USER_LOCATION_CH: Indicate that user location has been changed, applicable to serving area
        change and serving cell change.
        - EPS_FALLBACK: EPS Fallback report is enabled in the SMF.
        - MA_PDU: UE Indicates that the SMF notifies the PCF of the MA PDU session request.
        - TSN_BRIDGE_INFO: TSC user plane node information available.
        - 5G_RG_JOIN: The 5G-RG has joined to an IP Multicast Group.
        - 5G_RG_LEAVE: The 5G-RG has left an IP Multicast Group.
        - DDN_FAILURE: Event subscription for DDN Failure event received.
        - DDN_DELIVERY_STATUS: Event subscription for DDN Delivery Status received.
        - GROUP_ID_LIST_CHG: UE Internal Group Identifier(s) has changed: the SMF reports that UDM
        provided list of group Ids has changed.
        - DDN_FAILURE_CANCELLATION: The event subscription for DDN Failure event is cancelled.
        - DDN_DELIVERY_STATUS_CANCELLATION: The event subscription for DDD STATUS is cancelled.
        - VPLMN_QOS_CH: Change of the QoS supported in the VPLMN.
        - SUCC_QOS_UPDATE: Indicates that the requested MPS Action is successful.
        - SAT_CATEGORY_CHG: Indicates that the SMF has detected a change between different satellite
        backhaul categories, or between a satellite backhaul and a non-satellite backhaul.
        - PCF_UE_NOTIF_IND: Indicates the SMF has detected the AMF forwarded the PCF for the UE
        indication to receive/stop receiving notifications of SM Policy association
        established/terminated events.
        - NWDAF_DATA_CHG: Indicates that the NWDAF instance IDs used for the PDU session and/or
        associated Analytics IDs used for the PDU session and available in the SMF have changed.
        - UE_POL_CONT_IND: Indicates that a UE policy container or failure delivery report is
        received from the UE in EPC over a PDN connection.
        - URSP_ENFORCEMENT_INFO: Indicates a report of URSP rule enforcement information.
        - HR_SBO_IND_CHG: Indicates the HR-SBO support indication has changed.
        - L4S_SUPP: Indicates whether ECN marking for L4S is not available or available again
        in 5GS.
        - NET_SLICE_REPL: Indicates network slice replacement, i.e., a change between the initial
        S-NSSAI of the PDU Session and the Alternative S-NSSAI
        - BAT_OFFSET_INFO: Indicates that the SMF has detected the BAT offset and optionally
        adjusted periodicity.
        - UE_REACH_STATUS_CH: Indicates that there is a change in the UE reachability status.

    RequestedRuleDataType:
      anyOf:
      - type: string
        enum:
          - CH_ID
          - MS_TIME_ZONE
          - USER_LOC_INFO
          - RES_RELEASE
          - SUCC_RES_ALLO
          - EPS_FALLBACK
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates the type of rule data requested by the PCF.  
        Possible values are:
        - CH_ID: Indicates that the requested rule data is the charging identifier.
        - MS_TIME_ZONE: Indicates that the requested access network info type is the UE's timezone.
        - USER_LOC_INFO: Indicates that the requested access network info type is the UE's location.
        - RES_RELEASE: Indicates that the requested rule data is the result of the release of
        resource.
        - SUCC_RES_ALLO: Indicates that the requested rule data is the successful resource
        allocation.
        - EPS_FALLBACK: Indicates that the requested rule data is the report of QoS flow rejection
        due to EPS fallback.

    RuleStatus:
      anyOf:
      - type: string
        enum:
          - ACTIVE
          - INACTIVE
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates the status of PCC or session rule.  
        Possible values are
        - ACTIVE: Indicates that the PCC rule(s) are successfully installed (for those provisioned 
        from PCF) or activated (for those pre-defined in SMF), or the session rule(s) are 
        successfully installed 
        - INACTIVE: Indicates that the PCC rule(s) are removed (for those provisioned from PCF) or 
        inactive (for those pre-defined in SMF) or the session rule(s) are removed.

    FailureCode:
      anyOf:
      - type: string
        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
          - UE_STA_SUSP
          - UNKNOWN_REF_ID
          - INCORRECT_COND_DATA
          - REF_ID_COLLISION
          - TRAFFIC_STEERING_ERROR
          - DNAI_STEERING_ERROR
          - AN_GW_FAILE
          - MAX_NR_PACKET_FILTERS_EXCEEDED
          - PACKET_FILTER_TFT_ALLOCATION_EXCEEDED
          - MUTE_CHG_NOT_ALLOWED
          - UE_TEMPORARILY_UNAVAILABLE
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates the reason of the PCC rule failure.  
        Possible values are
        - UNK_RULE_ID: Indicates that the pre-provisioned PCC rule could not be successfully
        activated because the PCC rule identifier is unknown to the SMF.
        - RA_GR_ERR: Indicate that the PCC rule could not be successfully installed or enforced
        because the Rating Group specified within the Charging Data policy decision which the PCC
        rule refers to is unknown or, invalid.
        - SER_ID_ERR: Indicate that the PCC rule could not be successfully installed or enforced
        because the Service Identifier specified within the Charging Data policy decision which the
        PCC rule refers to is invalid, unknown, or not applicable to the service being charged.
        - NF_MAL: Indicate that the PCC rule could not be successfully installed (for those
        provisioned from the PCF) or activated (for those pre-defined in SMF) or enforced (for those
        already successfully installed) due to SMF/UPF malfunction.
        - RES_LIM: Indicate that the PCC rule could not be successfully installed (for those
        provisioned from PCF) or activated (for those pre-defined in SMF) or enforced (for those
        already successfully installed) due to a limitation of resources at the SMF/UPF.
        - MAX_NR_QoS_FLOW: Indicate that the PCC rule could not be successfully installed (for those
        provisioned from PCF) or activated (for those pre-defined in SMF) or enforced (for those
        already successfully installed) due to the fact that the maximum number of QoS flows has
        been reached for the PDU session.
        - MISS_FLOW_INFO: Indicate that the PCC rule could not be successfully installed or enforced
        because neither the "flowInfos" attribute nor the "appId" attribute is specified within the
        PccRule data structure by the PCF during the first install request of the PCC rule.
        - RES_ALLO_FAIL: Indicate that the PCC rule could not be successfully installed or
        maintained since the QoS flow establishment/modification failed, or the QoS flow was
        released.
        - UNSUCC_QOS_VAL: indicate that the QoS validation has failed or when Guaranteed Bandwidth >
        Max-Requested-Bandwidth.
        - INCOR_FLOW_INFO: Indicate that the PCC rule could not be successfully installed or
        modified at the SMF because the provided flow information is not supported by the network
         (e.g. the provided IP address(es) or Ipv6 prefix(es) do not correspond to an IP version
        applicable for the PDU session).
        - PS_TO_CS_HAN: Indicate that the PCC rule could not be maintained because of PS to CS
        handover.
        - APP_ID_ERR: Indicate that the rule could not be successfully installed or enforced because
        the Application Identifier is invalid, unknown, or not applicable to the application
        required for detection.
        - NO_QOS_FLOW_BOUND: Indicate that there is no QoS flow which the SMF can bind the PCC
        rule(s) to.
        - FILTER_RES: Indicate that the Flow Information within the "flowInfos" attribute cannot be 
        handled by the SMF because any of the restrictions defined in clause 5.4.2 of 3GPP TS 29.212 
        was not met.
        - MISS_REDI_SER_ADDR: Indicate that the PCC rule could not be successfully installed or
        enforced at the SMF because there is no valid Redirect Server Address within the Traffic
        Control Data policy decision which the PCC rule refers to provided by the PCF and no 
        preconfigured redirection address for this PCC rule at the SMF.
        - CM_END_USER_SER_DENIED: Indicate that the charging system denied the service request due
        to service restrictions (e.g. terminate rating group) or limitations related to the
        end-user, for example the end-user's account could not cover the requested service.
        - CM_CREDIT_CON_NOT_APP: Indicate that the charging system determined that the service can
        be granted to the end user but no further credit control is needed for the service (e.g.
        service is free of charge or is treated for offline charging).
          - CM_AUTH_REJ: Indicate that the charging system denied the service request in order to
        terminate the service for which credit is requested.
        - CM_USER_UNK: Indicate that the specified end user could not be found in the charging
        system.
        - CM_RAT_FAILED: Indicate that the charging system cannot rate the service request due to
        insufficient rating input, incorrect AVP combination or due to an attribute or an attribute
        value that is not recognized or supported in the rating.
        - UE_STA_SUSP: Indicates that the UE is in suspend state.
        - UNKNOWN_REF_ID: Indicates that the PCC rule could not be successfully installed/modified
        because the referenced identifier to a Policy Decision Data or to a Condition Data is
        unknown to the SMF.
        - INCORRECT_COND_DATA: Indicates that the PCC rule could not be successfully
        installed/modified because the referenced Condition data are incorrect.
        - REF_ID_COLLISION: Indicates that PCC rule could not be successfully installed/modified
        because the same Policy Decision is referenced by a session rule (e.g. the session rule
        and the PCC rule refer to the same Usage Monitoring decision data).
        - TRAFFIC_STEERING_ERROR: Indicates that enforcement of the steering of traffic to the
        N6-LAN or 5G-LAN failed; or the dynamic PCC rule could not be successfully installed or
        modified at the NF service consumer because there are invalid traffic steering policy
        identifier(s) within the provided Traffic Control Data policy decision to which the PCC
        rule refers.
        - DNAI_STEERING_ERROR: Indicates that the enforcement of the steering of traffic to the
        indicated DNAI failed; or the dynamic PCC rule could not be successfully installed or
        modified at the NF service consumer because there is invalid route information for a DNAI(s)
         (e.g. routing profile id is not configured) within the provided Traffic Control Data policy
        decision to which the PCC rule refers.
        - AN_GW_FAILED: This value is used to indicate that the AN-Gateway has failed and that the
        PCF should refrain from sending policy decisions to the SMF until it is informed that the
        S-GW has been recovered. This value shall not be used if the SM Policy association
        modification procedure is initiated for PCC rule removal only.
        - MAX_NR_PACKET_FILTERS_EXCEEDED: This value is used to indicate that the PCC rule could not
        be successfully installed, modified or enforced at the NF service consumer because the
        number of supported packet filters for signalled QoS rules for the PDU session has been
        reached.
        - PACKET_FILTER_TFT_ALLOCATION_EXCEEDED: This value is used to indicate that the PCC rule is
        removed at 5GS to EPS mobility because TFT allocation was not possible since the number of
        active packet filters in the EPC bearer is exceeded.
        - MUTE_CHG_NOT_ALLOWED: Indicates that the PCC rule could not be successfully modified
        because the mute condition for application detection report cannot be changed. Applicable
        when the functionality introduced with the ADC feature applies.
        - UE_TEMPORARILY_UNAVAILABLE: Indicates that the PCC rule could not be successfully
        installed or modified because the SMF was informed that the UE was not reachable.
    AfSigProtocol:
      anyOf:
      - type: string
        enum:
          - NO_INFORMATION
          - SIP
      - $ref: 'TS29571_CommonData.yaml#/components/schemas/NullValue'
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates the protocol used for signalling between the UE and the AF.  
        Possible values are
        - NO_INFORMATION: Indicate that no information about the AF signalling protocol is being
        provided.
        - SIP: Indicate that the signalling protocol is Session Initiation Protocol.

    RuleOperation:
      anyOf:
      - type: string
        enum:
          - CREATE_PCC_RULE
          - DELETE_PCC_RULE
          - MODIFY_PCC_RULE_AND_ADD_PACKET_FILTERS
          - MODIFY_ PCC_RULE_AND_REPLACE_PACKET_FILTERS
          - MODIFY_ PCC_RULE_AND_DELETE_PACKET_FILTERS
          - MODIFY_PCC_RULE_WITHOUT_MODIFY_PACKET_FILTERS
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration but is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates a UE initiated resource operation that causes a request for PCC rules.  
        Possible values are
        - CREATE_PCC_RULE: Indicates to create a new PCC rule to reserve the resource requested by
        the UE. 
        - DELETE_PCC_RULE: Indicates to delete a PCC rule corresponding to reserve the resource
        requested by the UE.
        - MODIFY_PCC_RULE_AND_ADD_PACKET_FILTERS: Indicates to modify the PCC rule by adding new
        packet filter(s).
        - MODIFY_ PCC_RULE_AND_REPLACE_PACKET_FILTERS: Indicates to modify the PCC rule by replacing
        the existing packet filter(s).
        - MODIFY_ PCC_RULE_AND_DELETE_PACKET_FILTERS: Indicates to modify the PCC rule by deleting
        the existing packet filter(s).
        - MODIFY_PCC_RULE_WITHOUT_MODIFY_PACKET_FILTERS: Indicates to modify the PCC rule by
        modifying the QoS of the PCC rule.

    RedirectAddressType:
      anyOf:
      - type: string
        enum:
          - IPV4_ADDR
          - IPV6_ADDR
          - URL
          - SIP_URI
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates the redirect address type.  
        Possible values are
        - IPV4_ADDR: Indicates that the address type is in the form of "dotted-decimal" IPv4
        address.
        - IPV6_ADDR: Indicates that the address type is in the form of IPv6 address.
        - URL: Indicates that the address type is in the form of Uniform Resource Locator.
        - SIP_URI: Indicates that the address type is in the form of SIP Uniform Resource
        Identifier.

    QosFlowUsage:
      anyOf:
      - type: string
        enum:
          - GENERAL
          - IMS_SIG
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates a QoS flow usage information.  
        Possible values are
        - GENERAL: Indicate no specific QoS flow usage information is available.
        - IMS_SIG: Indicate that the QoS flow is used for IMS signalling only.

    FailureCause:
      description: Indicates the cause of the failure in a Partial Success Report.
      anyOf:
      - type: string
        enum:
          - PCC_RULE_EVENT
          - PCC_QOS_FLOW_EVENT
          - RULE_PERMANENT_ERROR
          - RULE_TEMPORARY_ERROR
          - POL_DEC_ERROR
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.

    CreditManagementStatus:
      description: Indicates the reason of the credit management session failure.
      anyOf:
      - type: string
        enum:
          - END_USER_SER_DENIED
          - CREDIT_CTRL_NOT_APP
          - AUTH_REJECTED
          - USER_UNKNOWN
          - RATING_FAILED
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.

    SessionRuleFailureCode:
      anyOf:
      - type: string
        enum:
          - NF_MAL
          - RES_LIM
          - SESSION_RESOURCE_ALLOCATION_FAILURE
          - UNSUCC_QOS_VAL
          - INCORRECT_UM
          - UE_STA_SUSP
          - UNKNOWN_REF_ID
          - INCORRECT_COND_DATA
          - REF_ID_COLLISION
          - AN_GW_FAILED
          - DEFAULT_QOS_MODIFICATION_FAILURE
          - SESSION_AMBR_MODIFICATION_FAILURE
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates the reason of the session rule failure.  
        Possible values are
        - NF_MAL: Indicates that the PCC rule could not be successfully installed (for those
        provisioned from the PCF) or activated (for those pre-defined in SMF) or enforced (for those
        already successfully installed) due to SMF/UPF malfunction.
        - RES_LIM: Indicates that the PCC rule could not be successfully installed (for those
        provisioned from PCF) or activated (for those pre-defined in SMF) or enforced (for those
        already successfully installed) due to a limitation of resources at the SMF/UPF.
        - SESSION_RESOURCE_ALLOCATION_FAILURE: Indicates the session rule could not be successfully
        enforced due to failure during the allocation of resources for the PDU session in the UE,
        RAN or AMF.
        - UNSUCC_QOS_VAL: indicates that the QoS validation has failed.
        - INCORRECT_UM: The usage monitoring data of the enforced session rule is not the same for
        all the provisioned session rule(s).
        - UE_STA_SUSP: Indicates that the UE is in suspend state.
        - UNKNOWN_REF_ID: Indicates that the session rule could not be successfully 
        installed/modified because the referenced identifier to a Policy Decision Data or to a
        Condition Data is unknown to the SMF.
        - INCORRECT_COND_DATA: Indicates that the session rule could not be successfully
        installed/modified because the referenced Condition data are incorrect.
        - REF_ID_COLLISION: Indicates that the session rule could not be successfully
        installed/modified because the same Policy Decision is referenced by a PCC rule (e.g. the
        session rule and the PCC rule refer to the same Usage Monitoring decision data).
        - AN_GW_FAILED: Indicates that the AN-Gateway has failed and that the PCF should refrain
        from sending policy decisions to the SMF until it is informed that the S-GW has been
        recovered. This value shall not be used if the SM Policy association modification procedure
        is initiated for session rule removal only.
        - DEFAULT_QOS_MODIFICATION_FAILURE: Indicates that the enforcement of the default QoS
        modification failed. The SMF shall use this value to indicate to the PCF that the default
        QoS modification has failed.
        - SESSION_AMBR_MODIFICATION_FAILURE: Indicates that the enforcement of the session-AMBR
        modification failed. The SMF shall use this value to indicate to the PCF that the
        session-AMBR modification has failed.

    SteeringFunctionality:
      anyOf:
      - type: string
        enum:
          - MPTCP
          - MPQUIC
          - ATSSS_LL
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates functionality to support traffic steering, switching and splitting determined
        by the PCF.  
        Possible values are
          - MPTCP: Indicates that PCF authorizes the MPTCP functionality to support traffic
          steering, switching and splitting.
          - MPQUIC: Indicates that PCF authorizes the MPQUIC functionality to support traffic
          steering, switching and splitting.
          - ATSSS_LL: Indicates that PCF authorizes the ATSSS-LL functionality to support traffic
          steering, switching and splitting.

    SteerModeValue:
      description: Indicates the steering mode value determined by the PCF.
      anyOf:
      - type: string
        enum:
          - ACTIVE_STANDBY
          - LOAD_BALANCING
          - SMALLEST_DELAY
          - PRIORITY_BASED
          - REDUNDANT
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.

    MulticastAccessControl:
      description: >
        Indicates whether the service data flow, corresponding to the service data flow template, is
        allowed or not allowed.
      anyOf:
      - type: string
        enum:
          - ALLOWED
          - NOT_ALLOWED
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.

    RequestedQosMonitoringParameter:
      description: Indicates the requested QoS monitoring parameters to be measured.
      anyOf:
      - type: string
        enum:
          - DOWNLINK
          - UPLINK
          - ROUND_TRIP
          - DOWNLINK_DATA_RATE
          - UPLINK_DATA_RATE
          - DOWNLINK_CONGESTION
          - UPLINK_CONGESTION
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.

    ReportingFrequency:
      description: Indicates the frequency for the reporting.
      anyOf:
      - type: string
        enum:
          - EVENT_TRIGGERED
          - PERIODIC
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.

    SgsnAddress:
      description: describes the address of the SGSN
      type: object
      anyOf:
        - required: [sgsnIpv4Addr]
        - required: [sgsnIpv6Addr]
      properties:
        sgsnIpv4Addr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr'
        sgsnIpv6Addr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Addr'

    SmPolicyAssociationReleaseCause:
      description: >
        Represents the cause due to which the PCF requests the termination of the SM policy
        association.
      anyOf:
      - type: string
        enum:
          - UNSPECIFIED
          - UE_SUBSCRIPTION
          - INSUFFICIENT_RES
          - VALIDATION_CONDITION_NOT_MET
          - REACTIVATION_REQUESTED
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.

    PduSessionRelCause:
      description: Contains the SMF PDU Session release cause.
      anyOf:
      - type: string
        enum:
          - PS_TO_CS_HO
          - RULE_ERROR
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.

    MaPduIndication:
      description: >
        Contains the MA PDU session indication, i.e., MA PDU Request or MA PDU Network-Upgrade
        Allowed.
      anyOf:
      - type: string
        enum:
          - MA_PDU_REQUEST
          - MA_PDU_NETWORK_UPGRADE_ALLOWED
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.

    AtsssCapability:
      description: Contains the ATSSS capability supported for the MA PDU Session.
      anyOf:
      - type: string
        enum:
          - MPTCP_ATSSS_LL_WITH_ASMODE_UL
          - MPTCP_ATSSS_LL_WITH_EXSDMODE_DL_ASMODE_UL
          - MPTCP_ATSSS_LL_WITH_ASMODE_DLUL
          - ATSSS_LL
          - MPTCP_ATSSS_LL
          - MPQUIC_ATSSS_LL_WITH_ASMODE_UL
          - MPQUIC_ATSSS_LL_WITH_EXSDMODE_DL_ASMODE_UL
          - MPQUIC_ATSSS_LL_WITH_ASMODE_DLUL
          - MPQUIC_ATSSS_LL
          - MPTCP_MPQUIC_ATSSS_LL_WITH_ASMODE_UL
          - MPTCP_MPQUIC_ATSSS_LL_WITH_EXSDMODE_DL_ASMODE_UL
          - MPTCP_MPQUIC_ATSSS_LL_WITH_ASMODE_DLUL
          - MPTCP_MPQUIC_ATSSS_LL
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.
#
    NetLocAccessSupport:
      anyOf:
      - type: string
        enum:
          - ANR_NOT_SUPPORTED
          - TZR_NOT_SUPPORTED
          - LOC_NOT_SUPPORTED
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Indicates the access network support of the report of the requested access network
        information.  
        Possible values are
        - ANR_NOT_SUPPORTED: Indicates that the access network does not support the report of access
        network information.
        - TZR_NOT_SUPPORTED: Indicates that the access network does not support the report of UE
        time zone.
        - LOC_NOT_SUPPORTED: Indicates that the access network does not support the report of UE
        Location (or PLMN Id).

    PolicyDecisionFailureCode:
      description: Indicates the type of the failed policy decision and/or condition data.
      anyOf:
      - type: string
        enum:
          - TRA_CTRL_DECS_ERR
          - QOS_DECS_ERR
          - CHG_DECS_ERR
          - USA_MON_DECS_ERR
          - QOS_MON_DECS_ERR
          - CON_DATA_ERR
          - POLICY_PARAM_ERR
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.
#
    NotificationControlIndication:
      description: >
        Indicates that the notification of DDD Status is requested and/or that the notification of
        DDN Failure is requested.
      anyOf:
      - type: string
        enum:
          - DDN_FAILURE
          - DDD_STATUS
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.
#
    SteerModeIndicator:
      description: Contains Autonomous load-balance indicator or UE-assistance indicator.
      anyOf:
      - type: string
        enum:
          - AUTO_LOAD_BALANCE
          - UE_ASSISTANCE
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.
#
    TrafficParameterMeas:
      description: Indicates the traffic parameters to be measured.
      anyOf:
      - type: string
        enum:
          - DL_N6_JITTER
          - DL_PERIOD
          - UL_PERIOD
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.

    QosMonitoringParamType:
      anyOf:
      - type: string
        enum:
          - PACKET_DELAY
          - CONGESTION
          - DATA_RATE
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.
      description: |
        Indicates the QoS monitoring parameter type.  
        Possible values are:
        - PACKET_DELAY: Indicates that the QoS monitoring parameter to be measured is packet delay.
        - CONGESTION: Indicates that the QoS monitoring parameter to be measured is congestion.
        - DATA_RATE: Indicates that the QoS monitoring parameter to be measured is data rate.

    TransportMode:
      description: >
        Indicates the Transport Mode when the steering functionality is MPQUIC functionality.
      anyOf:
      - type: string
        enum:
          - DATAGRAM_MODE_1
          - DATAGRAM_MODE_2
          - STREAM_MODE
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.

    UeReachabilityStatus:
      anyOf:
      - type: string
        enum:
          - REACHABLE
          - UNREACHABLE
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.
      description: |
        Indicates the UE rechability status.  
        Possible values are:
        - REACHABLE: Indicates that the UE is reachable.
        - UNREACHABLE: Indicates that the UE is unreachable.
#

