openapi: 3.0.0 info: version: 1.1.0 title: Npcf_UEPolicyControl description: | UE Policy Control Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 29.525 V16.4.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: '204': description: No Content, Notification was successful '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 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 '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' '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 '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' '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: 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 suppFeat: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' required: - suppFeat PolicyAssociationRequest: 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: 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: Map of PRA status information. 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' PolicyUpdate: 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: Map of PRA information. minProperties: 1 nullable: true required: - resourceUri TerminationNotification: type: object properties: resourceUri: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' cause: $ref: '#/components/schemas/PolicyAssociationReleaseCause' required: - resourceUri - cause UePolicyTransferFailureNotification: 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 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 - 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 UE is entering/leaving a 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. 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..