openapi: 3.0.0 info: version: 1.2.0-alpha.3 title: Npcf_UEPolicyControl description: | UE Policy Control Service. © 2021, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 29.525 V17.2.0; 5G System; UE Policy Control Service. url: 'http://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 subclause 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': description: temporary redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'A URI pointing to the endpoint of another NF service consumer to which the notification should be sent.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the notification request is redirected' schema: type: string '308': description: Permanent Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: required: true description: 'A URI pointing to the endpoint of an alternative AMF (service) instance towards which the notification should be redirected.' schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the notification request is redirected' 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' 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': description: temporary redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'A URI pointing to the endpoint of another NF service consumer to which the notification should be sent.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the notification request is redirected' schema: type: string '308': description: Permanent Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: required: true description: 'A URI pointing to the endpoint of an alternative AMF (service) instance towards which the notification should be redirected.' schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the notification request is redirected' 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' /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': description: Temporary Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'An alternative URI of the resource located on an alternative PCF (service) instance.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the request is redirected' schema: type: string '308': description: Permanent Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'An alternative URI of the resource located on an alternative PCF (service) instance.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the request is redirected' 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' '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': description: Temporary Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'An alternative URI of the resource located on an alternative PCF (service) instance.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the request is redirected' schema: type: string '308': description: Permanent Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'An alternative URI of the resource located on an alternative PCF (service) instance.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the request is redirected' 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' '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': description: Temporary Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'An alternative URI of the resource located on an alternative PCF (service) instance.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the request is redirected' schema: type: string '308': description: Permanent Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'An alternative URI of the resource located on an alternative PCF (service) instance.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the request is redirected' 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' 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' 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: 'TS29510_Nnrf_NFManagement.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' 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: 'TS29510_Nnrf_NFManagement.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/PlmnId' connectState: $ref: 'TS29518_Namf_EventExposure.yaml#/components/schemas/CmState' groupIds: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/GroupId' 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' 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/PlmnId' 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 - 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 subclause 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 event does not require a 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 communication over PC5 reference point. - NR_PC5: This value is used to indicate that UE supports PC5 NR RAT for V2X communication over PC5 reference point. - LTE_NR_PC5: This value is used to indicate that UE supports both PC5 LTE and NR RAT for V2X communication over PC5 reference point.