A.2 Npcf_MBSPolicyControl API
29.5373GPP5G SystemMulticast/Broadcast Policy Control servicesRelease 18Stage 3TS
openapi: 3.0.0
info:
title: Npcf_MBSPolicyControl API
version: 1.1.0-alpha.1
description: |
MBS Policy Control Service
© 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
All rights reserved.
externalDocs:
description: >
3GPP TS 29.537 V18.0.0; 5G System; Multicast/Broadcast Policy Control Services.
url: ‘https://www.3gpp.org/ftp/Specs/archive/29_series/29.537/’
security:
– {}
– oAuth2ClientCredentials:
– npcf-mbspolicycontrol
servers:
– url: ‘{apiRoot}/npcf-mbspolicycontrol/v1’
variables:
apiRoot:
default: https://example.com
description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501.
paths:
/mbs-policies:
post:
summary: Request the creation of a new MBS Policy Association.
operationId: CreateMBSPolicy
tags:
– MBS Policies (Collection)
requestBody:
required: true
content:
application/json:
schema:
$ref: ‘#/components/schemas/MbsPolicyCtxtData’
responses:
‘201’:
description: >
Created. An Individual MBS Policy resource is successfully created.
content:
application/json:
schema:
$ref: ‘#/components/schemas/MbsPolicyData’
headers:
Location:
description: >
Contains the URI of the newly created Individual MBS Policy resource.
required: true
schema:
type: string
‘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’:
description: Forbidden.
content:
application/problem+json:
schema:
$ref: ‘TS29537_Npcf_MBSPolicyAuthorization.yaml#/components/schemas/MbsExtProblemDetails’
‘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’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
/mbs-policies/{mbsPolicyId}:
parameters:
– name: mbsPolicyId
in: path
description: >
Contains the identifier of the concerned Individual MBS Policy resource.
required: true
schema:
type: string
get:
summary: Read an Individual MBS Policy resource.
operationId: GetIndMBSPolicy
tags:
– Individual MBS Policy (Document)
responses:
‘200’:
description: >
OK. The requested Individual MBS Policy resource is successfully returned.
content:
application/json:
schema:
$ref: ‘#/components/schemas/MbsPolicyData’
‘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’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
delete:
summary: Deletes an existing Individual MBS Policy resource.
operationId: DeleteIndMBSPolicy
tags:
– Individual MBS Policy (Document)
parameters:
– name: mbsPolicyId
in: path
description: >
Contains the identifier of the concerned Individual MBS Policy resource.
required: true
schema:
type: string
responses:
‘204’:
description: >
No Content. The concerned Individual MBS Policy resource is 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’
‘406’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/406’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
/mbs-policies/{mbsPolicyId}/update:
post:
summary: Request the update of an existing MBS Policy Association.
operationId: UpdateIndMBSPolicy
tags:
– Individual MBS Policy (Document)
parameters:
– name: mbsPolicyId
in: path
description: >
Contains the identifier of the concerned Individual MBS Policy resource.
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: ‘#/components/schemas/MbsPolicyCtxtDataUpdate’
responses:
‘200’:
description: >
OK. The targeted Individual MBS Policy resource is successfully updated.
content:
application/json:
schema:
$ref: ‘#/components/schemas/MbsPolicyData’
‘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’:
description: Forbidden.
content:
application/problem+json:
schema:
$ref: ‘TS29537_Npcf_MBSPolicyAuthorization.yaml#/components/schemas/MbsExtProblemDetails’
‘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’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘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-mbspolicycontrol: Access to the Npcf_MBSPolicyControl API
schemas:
MbsPolicyCtxtData:
description: >
Contains the parameters used to request the creation of an MBS Policy
Association.
type: object
properties:
mbsSessionId:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/MbsSessionId’
dnn:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Dnn’
snssai:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Snssai’
mbsServInfo:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/MbsServiceInfo’
suppFeat:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
required:
– mbsSessionId
MbsPolicyDecision:
description: >
Represents the parameters constituting an MBS Policy Decision.
type: object
properties:
mbsPccRules:
type: object
additionalProperties:
$ref: ‘#/components/schemas/MbsPccRule’
minProperties: 1
description: >
A map of MBS PCC rule(s) with each map entry containing the MbsPccRule data structure.
The key of the map for each entry is the mbsPccRuleId attribute of the corresponding
MbsPccRule data structure.
nullable: true
mbsQosDecs:
type: object
additionalProperties:
$ref: ‘#/components/schemas/MbsQosDec’
minProperties: 1
description: >
A map of MBS QoS Decision(s) with each map entry containing the MbsQosDec data structure.
The key of the map for each entry is the mbsQosId attribute of the corresponding
MbsQosDec data structure.
mbsQosChars:
type: object
additionalProperties:
$ref: ‘#/components/schemas/MbsQosChar’
minProperties: 1
description: >
A map of MBS QoS Characteristics set(s) with each map entry containing the MbsQosChar data
structure. The key of the map for each entry is the 5QI attribute of the corresponding
MbsQosDec data structure.
authMbsSessAmbr:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/BitRate’
mbsPcrts:
type: array
items:
$ref: ‘#/components/schemas/MbsPcrt’
minItems: 1
nullable: true
MbsPolicyData:
description: >
Contains the MBS policy data provisioned as part of an MBS Policy Association.
type: object
properties:
mbsPolicyCtxtData:
$ref: ‘#/components/schemas/MbsPolicyCtxtData’
mbsPolicies:
$ref: ‘#/components/schemas/MbsPolicyDecision’
suppFeat:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
required:
– mbsPolicyCtxtData
MbsPccRule:
description: Represents the parameters constituting an MBS PCC rule.
type: object
properties:
mbsPccRuleId:
type: string
mbsDlIpFlowInfo:
type: array
items:
$ref: ‘TS29512_Npcf_SMPolicyControl.yaml#/components/schemas/FlowDescription’
minItems: 1
precedence:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uinteger’
refMbsQosDec:
type: array
items:
type: string
minItems: 1
maxItems: 1
required:
– mbsPccRuleId
MbsQosDec:
description: Represents the parameters constituting an MBS QoS Decision.
type: object
properties:
mbsQosId:
type: string
5qi:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/5Qi’
priorityLevel:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/5QiPriorityLevel’
mbrDl:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/BitRate’
gbrDl:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/BitRate’
arp:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Arp’
averWindow:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/AverWindow’
mbsMaxDataBurstVol:
$ref: ‘#/components/schemas/MbsMaxDataBurstVol’
required:
– mbsQosId
MbsQosChar:
description: >
Represents the parameters constituting a set of explicitly signalled QoS characteristics.
type: object
properties:
5qi:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/5Qi’
priorityLevel:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/5QiPriorityLevel’
resourceType:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/QosResourceType’
packetDelayBudget:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/PacketDelBudget’
packetErrorRate:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/PacketErrRate’
averWindow:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/AverWindow’
mbsMaxDataBurstVol:
$ref: ‘#/components/schemas/MbsMaxDataBurstVol’
required:
– 5qi
– resourceType
– priorityLevel
– packetDelayBudget
– packetErrorRate
– mbsMaxDataBurstVol
MbsPolicyCtxtDataUpdate:
description: >
Contains the parameters to request the modification of an existing MBS Policy Association.
type: object
properties:
mbsServInfo:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/MbsServiceInfo’
mbsPcrts:
type: array
items:
$ref: ‘#/components/schemas/MbsPcrt’
minItems: 1
mbsErrorReport:
$ref: ‘#/components/schemas/MbsErrorReport’
MbsErrorReport:
description: >
Represents the reporting of MBS Policy decision level failure(s) and/or MBS PCC rule level
failure(s).
type: object
properties:
mbsReports:
type: array
items:
$ref: ‘#/components/schemas/MbsReport’
minItems: 1
MbsReport:
description: >
Contains information about the MBS Policy Decision level failure(s) and/or the MBS PCC
rule level failure(s).
type: object
properties:
mbsPccRuleIds:
type: array
items:
type: string
minItems: 1
mbsPccRuleStatus:
$ref: ‘#/components/schemas/MbsPccRuleStatus’
failureCode:
$ref: ‘#/components/schemas/MbsFailureCode’
# Simple data types:
MbsMaxDataBurstVol:
description: Represents the MBS Maximum Data Burst Volume expressed in Bytes.
type: integer
minimum: 1
maximum: 2000000
# ENUMS:
MbsPcrt:
anyOf:
– type: string
enum:
– MBS_SESSION_UPDATE
– type: string
description: >
This string provides forward-compatibility with future extensions to the enumeration
and is not used to encode content defined in the present version of this API.
description: |
Possible values are:
– MBS_SESSION_UPDATE: Indicates the MBS Session Update policy control request trigger.
MbsPccRuleStatus:
anyOf:
– type: string
enum:
– ACTIVE
– INACTIVE
– type: string
description: >
This string provides forward-compatibility with future extensions to the enumeration
and is not used to encode content defined in the present version of this API.
description: |
Possible values are:
– ACTIVE: Indicates that the MBS PCC rule(s) are successfully installed.
– INACTIVE: Indicates that the MBS PCC rule(s) are removed.
MbsFailureCode:
anyOf:
– type: string
enum:
– NF_MALFUNCTION
– NF_RESOURCES_UNAVAILABLE
– RESOURCE_ALLOCATION_FAILURE
– MBS_QOS_VALIDATION_FAILURE
– NO_MBS_QOS_FLOW
– MBS_QOS_DECISION_ERROR
– MBS_POLICY_PARAM_ERROR
– type: string
description: >
This string provides forward-compatibility with future extensions to the enumeration
and is not used to encode content defined in the present version of this API.
description: |
Possible values are:
– NF_MALFUNCTION: Indicates that the MBS PCC rule could not be successfully installed due to MB-SMF/MB-UPF malfunction.
– NF_RESOURCES_UNAVAILABLE: Indicates that the MBS PCC rule could not be successfully installed due to resources unavailable at the MB-SMF/MB-UPF.
– RESOURCE_ALLOCATION_FAILURE: Indicates that the MBS PCC rule could not be successfully installed or maintained since the associated MBS QoS flow establishment/modification failed or the associated MBS QoS flow was released.
– MBS_QOS_VALIDATION_FAILURE: Indicates that MBS QoS validation has failed.
– NO_MBS_QOS_FLOW: Indicates that there is no MBS QoS flow to which the MB-SMF can bind the MBS PCC rule(s).
– MBS_QOS_DECISION_ERROR: Indicates failure in the provisioning of MBS QoS Decision data.
– MBS_POLICY_PARAM_ERROR: Indicates that the information related to the provisioned MBS policy parameter(s) is incorrect, incomplete or inconsistent.