A.2 Npcf_UEPolicyControl API

29.5253GPP5G SystemStage 3TSUE Policy Control Service

openapi: 3.0.0

info:

version: 1.2.1

title: Npcf_UEPolicyControl

description: |

UE Policy Control Service.

© 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).

All rights reserved.

externalDocs:

description: 3GPP TS 29.525 V17.9.0; 5G System; UE Policy Control Service.

url: ‘https://www.3gpp.org/ftp/Specs/archive/29_series/29.525/’

servers:

– url: ‘{apiRoot}/npcf-ue-policy-control/v1’

variables:

apiRoot:

default: https://example.com

description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501

security:

– {}

– oAuth2ClientCredentials:

– npcf-ue-policy-control

paths:

/policies:

post:

operationId: CreateIndividualUEPolicyAssociation

summary: Create individual UE policy association.

tags:

– UE Policy Associations (Collection)

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/PolicyAssociationRequest’

responses:

‘201’:

description: Created

content:

application/json:

schema:

$ref: ‘#/components/schemas/PolicyAssociation’

headers:

Location:

description: >

Contains the URI of the newly created resource, according to the structure

{apiRoot}/npcf-ue-policy-control/v1/policies/{polAssoId}’

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’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

callbacks:

policyUpdateNotification:

‘{$request.body#/notificationUri}/update’:

post:

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/PolicyUpdate’

responses:

‘200’:

description: >

OK. The current applicable values corresponding to the policy control request

trigger is reported

content:

application/json:

schema:

$ref: ‘#/components/schemas/UeRequestedValueRep’

‘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’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

policyAssocitionTerminationRequestNotification:

‘{$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’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

/policies/{polAssoId}:

get:

operationId: ReadIndividualUEPolicyAssociation

summary: Read individual UE policy association.

tags:

– Individual UE Policy Association (Document)

parameters:

– name: polAssoId

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/PolicyAssociation’

‘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’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

delete:

operationId: DeleteIndividualUEPolicyAssociation

summary: Delete individual UE policy association.

tags:

– Individual UE Policy Association (Document)

parameters:

– name: polAssoId

in: path

description: Identifier of a policy association

required: true

schema:

type: string

responses:

‘204’:

description: No Content. Resource was successfully deleted

‘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’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

/policies/{polAssoId}/update:

post:

operationId: ReportObservedEventTriggersForIndividualUEPolicyAssociation

summary: >

Report observed event triggers and possibly obtain updated policies for an individual UE

policy association.

tags:

– Individual UE Policy Association (Document)

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/PolicyAssociationUpdateRequest’

parameters:

– name: polAssoId

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/PolicyUpdate’

‘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’

‘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-ue-policy-control: Access to the Npcf_UEPolicyControl API

schemas:

PolicyAssociation:

description: >

Contains the description of a policy association that is returned by the PCF when a policy

Association is created, updated, or read.

type: object

properties:

request:

$ref: ‘#/components/schemas/PolicyAssociationRequest’

uePolicy:

$ref: ‘#/components/schemas/UePolicy’

n2Pc5Pol:

$ref: ‘TS29518_Namf_Communication.yaml#/components/schemas/N2InfoContent’

n2Pc5ProSePol:

$ref: ‘TS29518_Namf_Communication.yaml#/components/schemas/N2InfoContent’

triggers:

type: array

items:

$ref: ‘#/components/schemas/RequestTrigger’

minItems: 1

description: >

Request Triggers that the PCF subscribes. Only values "LOC_CH" and "PRA_CH" are permitted.

pras:

type: object

additionalProperties:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/PresenceInfo’

minProperties: 1

description: >

Contains the presence reporting area(s) for which reporting was requested.

The praId attribute within the PresenceInfo data type is the key of the map.

suppFeat:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’

required:

– suppFeat

PolicyAssociationRequest:

description: >

Represents information that the NF service consumer provides when requesting the creation of

a policy association.

type: object

properties:

notificationUri:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’

altNotifIpv4Addrs:

type: array

items:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Ipv4Addr’

minItems: 1

description: Alternate or backup IPv4 Address(es) where to send Notifications.

altNotifIpv6Addrs:

type: array

items:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Ipv6Addr’

minItems: 1

description: Alternate or backup IPv6 Address(es) where to send Notifications.

altNotifFqdns:

type: array

items:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Fqdn’

minItems: 1

description: Alternate or backup FQDN(s) where to send Notifications.

supi:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Supi’

gpsi:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Gpsi’

accessType:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/AccessType’

pei:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Pei’

userLoc:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/UserLocation’

timeZone:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/TimeZone’

servingPlmn:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/PlmnIdNid’

ratType:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/RatType’

groupIds:

type: array

items:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/GroupId’

minItems: 1

hPcfId:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/NfInstanceId’

uePolReq:

$ref: ‘#/components/schemas/UePolicyRequest’

guami:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Guami’

serviceName:

$ref: ‘TS29510_Nnrf_NFManagement.yaml#/components/schemas/ServiceName’

servingNfId:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/NfInstanceId’

pc5Capab:

$ref: ‘#/components/schemas/Pc5Capability’

proSeCapab:

type: array

items:

$ref: ‘#/components/schemas/ProSeCapability’

minItems: 1

suppFeat:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’

required:

– notificationUri

– suppFeat

– supi

PolicyAssociationUpdateRequest:

description: >

Represents Information that the NF service consumer provides when requesting the update of

a policy association.

type: object

properties:

notificationUri:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’

altNotifIpv4Addrs:

type: array

items:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Ipv4Addr’

minItems: 1

description: Alternate or backup IPv4 Address(es) where to send Notifications.

altNotifIpv6Addrs:

type: array

items:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Ipv6Addr’

minItems: 1

description: Alternate or backup IPv6 Address(es) where to send Notifications.

altNotifFqdns:

type: array

items:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Fqdn’

minItems: 1

description: Alternate or backup FQDN(s) where to send Notifications.

triggers:

type: array

items:

$ref: ‘#/components/schemas/RequestTrigger’

minItems: 1

description: Request Triggers that the NF service consumer observes.

praStatuses:

type: object

additionalProperties:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/PresenceInfo’

description: >

Contains the UE presence status for tracking area for which changes of the UE presence

occurred. The praId attribute within the PresenceInfo data type is the key of the map.

minProperties: 1

userLoc:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/UserLocation’

uePolDelResult:

$ref: ‘#/components/schemas/UePolicyDeliveryResult’

uePolTransFailNotif:

$ref: ‘#/components/schemas/UePolicyTransferFailureNotification’

uePolReq:

$ref: ‘#/components/schemas/UePolicyRequest’

guami:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Guami’

servingNfId:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/NfInstanceId’

plmnId:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/PlmnIdNid’

connectState:

$ref: ‘TS29518_Namf_EventExposure.yaml#/components/schemas/CmState’

groupIds:

type: array

items:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/GroupId’

minItems: 1

proSeCapab:

type: array

items:

$ref: ‘#/components/schemas/ProSeCapability’

minItems: 1

PolicyUpdate:

description: >

Represents updated policies that the PCF provides in a notification or in the reply to an

Update Request.

type: object

properties:

resourceUri:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’

uePolicy:

$ref: ‘#/components/schemas/UePolicy’

n2Pc5Pol:

$ref: ‘TS29518_Namf_Communication.yaml#/components/schemas/N2InfoContent’

n2Pc5ProSePol:

$ref: ‘TS29518_Namf_Communication.yaml#/components/schemas/N2InfoContent’

triggers:

type: array

items:

$ref: ‘#/components/schemas/RequestTrigger’

minItems: 1

nullable: true

description: >

Request Triggers that the PCF subscribes. Only values "LOC_CH" and "PRA_CH" are permitted.

pras:

type: object

additionalProperties:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/PresenceInfo’

description: >

Contains the presence reporting area(s) for which reporting was requested.

The praId attribute within the PresenceInfo data type is the key of the map.

minProperties: 1

nullable: true

required:

– resourceUri

TerminationNotification:

description: >

Represents a request to terminate a policy association that the PCF provides in a

notification.

type: object

properties:

resourceUri:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’

cause:

$ref: ‘#/components/schemas/PolicyAssociationReleaseCause’

required:

– resourceUri

– cause

UePolicyTransferFailureNotification:

description: >

Represents information on the failure of a UE policy transfer to the UE because the UE is not

reachable.

type: object

properties:

cause:

$ref: ‘TS29518_Namf_Communication.yaml#/components/schemas/N1N2MessageTransferCause’

ptis:

type: array

items:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uinteger’

minItems: 1

required:

– cause

– ptis

UeRequestedValueRep:

description: >

Contains the current applicable values corresponding to the policy control request triggers.

type: object

properties:

userLoc:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/UserLocation’

praStatuses:

type: object

additionalProperties:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/PresenceInfo’

minProperties: 1

description: >

Contains the UE presence statuses for tracking areas. The praId attribute within the

PresenceInfo data type is the key of the map.

plmnId:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/PlmnIdNid’

connectState:

$ref: ‘TS29518_Namf_EventExposure.yaml#/components/schemas/CmState’

UePolicy:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Bytes’

UePolicyDeliveryResult:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Bytes’

UePolicyRequest:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Bytes’

RequestTrigger:

anyOf:

– type: string

enum:

– LOC_CH

– PRA_CH

– UE_POLICY

– PLMN_CH

– CON_STATE_CH

– GROUP_ID_LIST_CHG

– UE_CAP_CH

– 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: |

Possible values are:

– LOC_CH: Location change (tracking area). The tracking area of the UE has changed.

– PRA_CH: Change of UE presence in PRA. The AMF reports the current presence status of the UE

in a Presence Reporting Area, and notifies that the UE enters/leaves the Presence Reporting

Area.

– UE_POLICY: A MANAGE UE POLICY COMPLETE message or a MANAGE UE POLICY COMMAND REJECT

message, as defined in Annex D.5 of 3GPP TS 24.501 or a "UE POLICY PROVISIONING REQUEST"

message, as defined in clause 7.2.1.1 of 3GPP TS 24.587 , has been received by the AMF

and is being forwarded.

– PLMN_CH: PLMN change. the serving PLMN of UE has changed.

– CON_STATE_CH: Connectivity state change: the connectivity state of UE has changed.

– GROUP_ID_LIST_CHG: UE Internal Group Identifier(s) has changed. This policy control request

trigger does not require a subscription

– UE_CAP_CH: UE Capabilities change: the UE provided 5G ProSe capabilities have changed.

This policy control request trigger does not require subscription.

PolicyAssociationReleaseCause:

anyOf:

– type: string

enum:

– UNSPECIFIED

– UE_SUBSCRIPTION

– INSUFFICIENT_RES

– 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: |

Possible values are:

– UNSPECIFIED: This value is used for unspecified reasons.

– UE_SUBSCRIPTION: This value is used to indicate that the policy association needs to be

terminated because the subscription of UE has changed (e.g. was removed).

– INSUFFICIENT_RES: This value is used to indicate that the server is overloaded and needs

to abort the policy association.

Pc5Capability:

anyOf:

– type: string

enum:

– LTE_PC5

– NR_PC5

– LTE_NR_PC5

– 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: |

Possible values are:

– LTE_PC5: This value is used to indicate that UE supports PC5 LTE RAT for V2X communications

over the PC5 reference point.

– NR_PC5: This value is used to indicate that UE supports PC5 NR RAT for V2X communications

over the PC5 reference point.

– LTE_NR_PC5: This value is used to indicate that UE supports both PC5 LTE and NR RAT for

V2X communications over the PC5 reference point.

ProSeCapability:

anyOf:

– type: string

enum:

– PROSE_DD

– PROSE_DC

– PROSE_L2_U2N_RELAY

– PROSE_L3_U2N_RELAY

– PROSE_L2_REMOTE_UE

– PROSE_L3_REMOTE_UE

– type: string

description: >

This string provides forward-compatibility with future

extensions to the enumeration but is not used to encode

the content defined in the present version of this API.

description: |

Possible values are:

– PROSE_DD: This value is used to indicate that 5G ProSe Direct Discovery is supported

by the UE.

– PROSE_DC: This value is used to indicate that 5G ProSe Direct Communication is supported

by the UE.

– PROSE_L2_U2N_RELAY: This value is used to indicate that Layer-2 5G ProSe UE-to-Network

Relay is supported by the UE.

– PROSE_L3_U2N_RELAY: This value is used to indicate that Layer-3 5G ProSe UE-to-Network

Relay is supported by the UE.

– PROSE_L2_REMOTE_UE: This value is used to indicate that Layer-2 5G ProSe Remote UE is

supported by the UE.

– PROSE_L3_REMOTE_UE: This value is used to indicate that Layer-3 5G ProSe Remote UE is

supported by the UE.

Annex B (normative):
Wireless and wireline convergence access support