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