openapi: 3.0.0 info: version: 1.0.2 title: Npcf_AMPolicyControl description: | Access and Mobility Policy Control Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 29.507 V15.5.0; 5G System; Access and Mobility Policy Control Service. url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.507/' servers: - url: '{apiRoot}/npcf-am-policy-control/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in subclause subclause 4.4 of 3GPP TS 29.501 security: - {} - oAuth2ClientCredentials: - npcf-am-policy-control paths: /policies: post: 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-am-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 succesfull '307': description: temporary redirect '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 succesfull '307': description: temporary redirect '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: 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: parameters: - name: polAssoId in: path description: Identifier of a policy association required: true schema: type: string responses: '204': description: No Content. Resource was succesfully 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: 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-am-policy-control: Access to the Npcf_AMPolicyControl API schemas: PolicyAssociation: type: object properties: request: $ref: '#/components/schemas/PolicyAssociationRequest' 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. servAreaRes: $ref: 'TS29571_CommonData.yaml#/components/schemas/ServiceAreaRestriction' rfsp: $ref: 'TS29571_CommonData.yaml#/components/schemas/RfspIndex' 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. 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/NetworkId' ratType: $ref: 'TS29571_CommonData.yaml#/components/schemas/RatType' groupIds: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/GroupId' minItems: 1 servAreaRes: $ref: 'TS29571_CommonData.yaml#/components/schemas/ServiceAreaRestriction' rfsp: $ref: 'TS29571_CommonData.yaml#/components/schemas/RfspIndex' guami: $ref: 'TS29571_CommonData.yaml#/components/schemas/Guami' serviveName: type: string description: If the NF service consumer is an AMF, it should provide the name of a service produced by the AMF that makes use of information received within the Npcf_AMPolicyControl_UpdateNotify service operation. It corresponds to serviceName in the main body. traceReq: $ref: 'TS29571_CommonData.yaml#/components/schemas/TraceData' 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. triggers: type: array items: $ref: '#/components/schemas/RequestTrigger' minItems: 1 description: Request Triggers that the NF service consumer observes. servAreaRes: $ref: 'TS29571_CommonData.yaml#/components/schemas/ServiceAreaRestriction' rfsp: $ref: 'TS29571_CommonData.yaml#/components/schemas/RfspIndex' praStatuses: type: object additionalProperties: $ref: 'TS29571_CommonData.yaml#/components/schemas/PresenceInfo' minProperties: 1 description: Map of PRA status information. userLoc: $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation' traceReq: $ref: 'TS29571_CommonData.yaml#/components/schemas/TraceData' guami: $ref: 'TS29571_CommonData.yaml#/components/schemas/Guami' PolicyUpdate: type: object properties: resourceUri: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' 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. servAreaRes: $ref: 'TS29571_CommonData.yaml#/components/schemas/ServiceAreaRestriction' rfsp: $ref: 'TS29571_CommonData.yaml#/components/schemas/RfspIndex' pras: type: object additionalProperties: $ref: 'TS29571_CommonData.yaml#/components/schemas/PresenceInfoRm' 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 RequestTrigger: anyOf: - type: string enum: - LOC_CH - PRA_CH - SERV_AREA_CH - RFSP_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. - SERV_AREA_CH: Service Area Restriction change. The UDM notifies the AMF that the subscribed service area restriction information has changed. - RFSP_CH: RFSP index change. The UDM notifies the AMF that the subscribed RFSP index 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 session 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 session.