openapi: 3.0.0 info: version: 1.1.4 title: Npcf_AMPolicyControl description: | Access and Mobility Policy Control Service. © 2021, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 29.507 V16.8.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 4.4 of 3GPP TS 29.501 security: - {} - oAuth2ClientCredentials: - npcf-am-policy-control paths: /policies: post: operationId: CreateIndividualAMPolicyAssociation summary: Create individual AM policy association. tags: - AM 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-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 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: ReadIndividualAMPolicyAssociation summary: Read individual AM policy association. tags: - Individual AM 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: DeleteIndividualAMPolicyAssociation summary: Delete individual AM policy association. tags: - Individual AM 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: ReportObservedEventTriggersForIndividualAMPolicyAssociation summary: Report observed event triggers and obtain updated policies for an individual AM policy association. tags: - Individual AM 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-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. servAreaRes: $ref: 'TS29571_CommonData.yaml#/components/schemas/ServiceAreaRestriction' wlServAreaRes: $ref: 'TS29571_CommonData.yaml#/components/schemas/WirelineServiceAreaRestriction' rfsp: $ref: 'TS29571_CommonData.yaml#/components/schemas/RfspIndex' smfSelInfo: $ref: '#/components/schemas/SmfSelectionData' ueAmbr: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ambr' pras: type: object additionalProperties: $ref: 'TS29571_CommonData.yaml#/components/schemas/PresenceInfo' minProperties: 1 suppFeat: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' required: - suppFeat PolicyAssociationRequest: description: Information which the NF service consumer provides when requesting the creation of a policy association. The serviveName property corresponds to the serviceName in the main body of the specification. 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' accessTypes: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType' minItems: 1 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' ratTypes: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/RatType' minItems: 1 groupIds: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/GroupId' minItems: 1 servAreaRes: $ref: 'TS29571_CommonData.yaml#/components/schemas/ServiceAreaRestriction' wlServAreaRes: $ref: 'TS29571_CommonData.yaml#/components/schemas/WirelineServiceAreaRestriction' rfsp: $ref: 'TS29571_CommonData.yaml#/components/schemas/RfspIndex' ueAmbr: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ambr' allowedSnssais: description: array of allowed S-NSSAIs for the 3GPP access. type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' minItems: 1 mappingSnssais: description: mapping of each S-NSSAI of the Allowed NSSAI to the corresponding S-NSSAI of the HPLMN. type: array items: $ref: 'TS29531_Nnssf_NSSelection.yaml#/components/schemas/MappingOfSnssai' minItems: 1 n3gAllowedSnssais: description: array of allowed S-NSSAIs for the Non-3GPP access. type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' minItems: 1 guami: $ref: 'TS29571_CommonData.yaml#/components/schemas/Guami' serviveName: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/ServiceName' 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. 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. servAreaRes: $ref: 'TS29571_CommonData.yaml#/components/schemas/ServiceAreaRestriction' wlServAreaRes: $ref: 'TS29571_CommonData.yaml#/components/schemas/WirelineServiceAreaRestriction' rfsp: $ref: 'TS29571_CommonData.yaml#/components/schemas/RfspIndex' smfSelInfo: $ref: '#/components/schemas/SmfSelectionData' ueAmbr: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ambr' 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' allowedSnssais: description: array of allowed S-NSSAIs for the 3GPP access. type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' minItems: 1 mappingSnssais: description: mapping of each S-NSSAI of the Allowed NSSAI to the corresponding S-NSSAI of the HPLMN. type: array items: $ref: 'TS29531_Nnssf_NSSelection.yaml#/components/schemas/MappingOfSnssai' minItems: 1 accessTypes: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType' minItems: 1 ratTypes: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/RatType' minItems: 1 n3gAllowedSnssais: description: array of allowed S-NSSAIs for the Non-3GPP access. type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' minItems: 1 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. servAreaRes: $ref: 'TS29571_CommonData.yaml#/components/schemas/ServiceAreaRestriction' wlServAreaRes: $ref: 'TS29571_CommonData.yaml#/components/schemas/WirelineServiceAreaRestriction' rfsp: $ref: 'TS29571_CommonData.yaml#/components/schemas/RfspIndex' smfSelInfo: $ref: '#/components/schemas/SmfSelectionData' ueAmbr: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ambr' 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 SmfSelectionData: type: object properties: unsuppDnn: type: boolean candidates: type: object additionalProperties: $ref: '#/components/schemas/CandidateForReplacement' minProperties: 1 nullable: true snssai: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' mappingSnssai: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' dnn: $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn' nullable: true CandidateForReplacement: type: object properties: snssai: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' dnns: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn' minItems: 1 nullable: true required: - snssai nullable: true RequestTrigger: anyOf: - type: string enum: - LOC_CH - PRA_CH - SERV_AREA_CH - RFSP_CH - ALLOWED_NSSAI_CH - UE_AMBR_CH - SMF_SELECT_CH - ACCESS_TYPE_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. - 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. - ALLOWED_NSSAI_CH: Allowed NSSAI change. The AMF notifies that the set of UE allowed S-NSSAIs has changed. - UE_AMBR_CH: UE-AMBR change. The UDM notifies the AMF that the subscribed UE-AMBR has changed. - SMF_SELECT_CH: SMF selection information change. The UE requested for an unsupported DNN or UE requested for a DNN within the list of DNN candidates for replacement per S-NSSAI. - ACCESS_TYPE_CH: Access Type change. The AMF notifies that the access type and the RAT type combinations available in the AMF for a UE with simultaneous 3GPP and non-3GPP connectivity 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.