openapi: 3.0.0
info:
version: 1.1.0.alpha-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 V16.1.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:
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 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:
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'
'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 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:
operationId: ReportObservedEventTriggersForIndividualAMPolicyAssociation
summary: Report obeserved 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'
'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'
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:
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/PlmnIdNid'
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'
ueAmbr:
$ref: 'TS29571_CommonData.yaml#/components/schemas/Ambr'
allowedSnssais:
description: array of allowed S-NSSAIs.
type: array
items:
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
minItems: 1
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'
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.
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. 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'
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
RequestTrigger:
anyOf:
- type: string
enum:
- LOC_CH
- PRA_CH
- SERV_AREA_CH
- RFSP_CH
- ALLOWED_NSSAI_CH
- UE_AMBR_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.
- 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.
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.