A.2 Nchf_SpendingLimitControl Service API

29.5943GPP5G SystemSpending Limit Control ServiceStage 3TS

openapi: 3.0.0

info:

version: 1.3.0-alpha.1

title: Nchf_SpendingLimitControl

description: |

Nchf Spending Limit Control Service.

© 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).

All rights reserved.

externalDocs:

description: 3GPP TS 29.594 V18.0.0; 5G System; Spending Limit Control Service.

url: ‘https://www.3gpp.org/ftp/Specs/archive/29_series/29.594/’

servers:

– url: ‘{apiRoot}/nchf-spendinglimitcontrol/v1’

variables:

apiRoot:

default: https://example.com

description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501

security:

– {}

– oAuth2ClientCredentials:

– nchf-spendinglimitcontrol

paths:

/subscriptions:

post:

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/SpendingLimitContext’

responses:

‘201’:

description: Success

content:

application/json:

schema:

$ref: ‘#/components/schemas/SpendingLimitStatus’

headers:

Location:

description: >

Contains the URI of the created individual spending limit resource,

according to the structure

{apiRoot}/nchf-spendinglimitcontrol/v1/subscriptions/{subscriptionId}

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’

‘502’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/502’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

callbacks:

statusNotification:

‘{$request.body#/notifUri}/notify’:

post:

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/SpendingLimitStatus’

responses:

‘204’:

description: No Content, Notification was succesfull

‘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’

‘502’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/502’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

subscriptionTermination:

‘{$request.body#/notifUri}/terminate’:

post:

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/SubscriptionTerminationInfo’

responses:

‘204’:

description: No Content, Notification was succesfull

‘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’

‘502’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/502’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

/subscriptions/{subscriptionId}:

parameters:

– in: path

name: subscriptionId

description: Identifies an individual spending limit retrieval subscription.

required: true

schema:

type: string

put:

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/SpendingLimitContext’

responses:

‘200’:

description: OK. Resource was succesfully modified and representation is returned

content:

application/json:

schema:

$ref: ‘#/components/schemas/SpendingLimitStatus’

‘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’

‘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:

responses:

‘204’:

description: No Content. Resource was succesfully 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’

‘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:

nchf-spendinglimitcontrol: Access to the Nchf_SpendingLimitControl API

schemas:

SpendingLimitContext:

description: >

Represents the subscription data structure required for an individual CHF spending limit

subscription.

type: object

properties:

supi:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Supi’

gpsi:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Gpsi’

policyCounterIds:

type: array

items:

$ref: ‘#/components/schemas/PolicyCounterId’

minItems: 1

description: >

This is a list of policy counter identifier(s), which identifies policy counters

maintained per subscriber within the CHF.

notifUri:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’

expiry:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/DateTime’

supportedFeatures:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’

notifId:

type: string

SpendingLimitStatus:

description: >

Represents the data structure presenting the statuses of policy counters.

type: object

properties:

supi:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Supi’

notifId:

type: string

statusInfos:

type: object

additionalProperties:

$ref: ‘#/components/schemas/PolicyCounterInfo’

minProperties: 1

description: >

Status of the requested policy counters. The key of the map is the attribute

"policyCounterId".

expiry:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/DateTime’

supportedFeatures:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’

PolicyCounterInfo:

description: Represents the data structure presenting the policy counter status.

type: object

properties:

policyCounterId:

$ref: ‘#/components/schemas/PolicyCounterId’

currentStatus:

type: string

description: >

Identifies the policy counter status applicable for a specific policy counter identified

by the policyCounterId. The values (e.g. valid, invalid or any other status) are not

specified. The interpretation and actions related to the defined values are out of scope

of 3GPP.

penPolCounterStatuses:

type: array

items:

$ref: ‘#/components/schemas/PendingPolicyCounterStatus’

minItems: 1

description: Provides the pending policy counter status.

required:

– policyCounterId

– currentStatus

PendingPolicyCounterStatus:

description: >

Represents the data structure presenting the pending policy counter status.

type: object

properties:

policyCounterStatus:

type: string

description: >

Identifies the policy counter status applicable for a specific policy counter identified

by the policyCounterId. The values (e.g. valid, invalid or any other status) are not

specified. The interpretation and actions related to the defined values are out of scope

of 3GPP.

activationTime:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/DateTime’

required:

– policyCounterStatus

– activationTime

PolicyCounterId:

type: string

description: Identifies a policy counter.

SubscriptionTerminationInfo:

description: >

Represents the data structure presenting the indication of the termination of the

subscription.

type: object

properties:

supi:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Supi’

notifId:

type: string

termCause:

$ref: ‘#/components/schemas/TerminationCause’

required:

– supi

TerminationCause:

description: >

Represents the cause for requesting the termination of the subscription to policy counter

status changes.

anyOf:

– type: string

enum:

– REMOVED_SUBSCRIBER

– 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.

Annex B (normative):
5GC and EPC interworking scenario support