forked from acouzens/open5gs
317 lines
12 KiB
YAML
317 lines
12 KiB
YAML
|
openapi: 3.0.0
|
||
|
info:
|
||
|
title: 3gpp-network-status-reporting
|
||
|
version: 1.0.1
|
||
|
description: |
|
||
|
API for reporting network status.
|
||
|
(C) 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
|
||
|
All rights reserved.
|
||
|
externalDocs:
|
||
|
description: 3GPP TS 29.122 V15.4.0 T8 reference point for Northbound APIs
|
||
|
url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.122/'
|
||
|
security:
|
||
|
- {}
|
||
|
- oAuth2ClientCredentials: []
|
||
|
servers:
|
||
|
- url: '{apiRoot}/3gpp-net-stat-report/v1'
|
||
|
variables:
|
||
|
apiRoot:
|
||
|
default: https://example.com
|
||
|
description: apiRoot as defined in subclause 5.2.4 of 3GPP TS 29.122.
|
||
|
paths:
|
||
|
/{scsAsId}/subscriptions:
|
||
|
parameters:
|
||
|
- name: scsAsId
|
||
|
in: path
|
||
|
description: Identifier of the SCS/AS
|
||
|
required: true
|
||
|
schema:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/schemas/ScsAsId'
|
||
|
get:
|
||
|
summary: Read all network status reporting subscription resources for a given SCS/AS.
|
||
|
responses:
|
||
|
'200':
|
||
|
description: The requested information was returned successfully.
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/NetworkStatusReportingSubscription'
|
||
|
minItems: 0
|
||
|
'400':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/400'
|
||
|
'401':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/401'
|
||
|
'403':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/403'
|
||
|
'404':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/404'
|
||
|
'406':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/406'
|
||
|
'429':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/429'
|
||
|
'500':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/500'
|
||
|
'503':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/503'
|
||
|
default:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/default'
|
||
|
|
||
|
post:
|
||
|
summary: Create a new network status reporting subscription resource.
|
||
|
requestBody:
|
||
|
required: true
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/NetworkStatusReportingSubscription'
|
||
|
callbacks:
|
||
|
notificationDestination:
|
||
|
'{request.body#/notificationDestination}':
|
||
|
post:
|
||
|
requestBody: # contents of the callback message
|
||
|
required: true
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/NetworkStatusReportingNotification'
|
||
|
responses:
|
||
|
'204':
|
||
|
description: No Content (successful notification)
|
||
|
'400':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/400'
|
||
|
'401':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/401'
|
||
|
'403':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/403'
|
||
|
'404':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/404'
|
||
|
'411':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/411'
|
||
|
'413':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/413'
|
||
|
'415':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/415'
|
||
|
'429':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/429'
|
||
|
'500':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/500'
|
||
|
'503':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/503'
|
||
|
default:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/default'
|
||
|
responses:
|
||
|
'201':
|
||
|
description: The subscription was created successfully. The URI of the created resource shall be returned in the "Location" HTTP header.
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/NetworkStatusReportingSubscription'
|
||
|
headers:
|
||
|
Location:
|
||
|
description: 'Contains the URI of the newly created resource'
|
||
|
required: true
|
||
|
schema:
|
||
|
type: string
|
||
|
'400':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/400'
|
||
|
'401':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/401'
|
||
|
'403':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/403'
|
||
|
'404':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/404'
|
||
|
'411':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/411'
|
||
|
'413':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/413'
|
||
|
'415':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/415'
|
||
|
'429':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/429'
|
||
|
'500':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/500'
|
||
|
'503':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/503'
|
||
|
default:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/default'
|
||
|
|
||
|
/{scsAsId}/subscriptions/{subscriptionId}:
|
||
|
parameters:
|
||
|
- name: scsAsId
|
||
|
in: path
|
||
|
description: Identifier of the SCS/AS
|
||
|
required: true
|
||
|
schema:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/schemas/ScsAsId'
|
||
|
- name: subscriptionId
|
||
|
in: path
|
||
|
description: Identifier of the subscription resource of type string
|
||
|
required: true
|
||
|
schema:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/schemas/ResourceId'
|
||
|
get:
|
||
|
summary: Read an active network status reporting subscription resource.
|
||
|
responses:
|
||
|
'200':
|
||
|
description: The requested information was returned successfully.
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/NetworkStatusReportingSubscription'
|
||
|
'400':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/400'
|
||
|
'401':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/401'
|
||
|
'403':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/403'
|
||
|
'404':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/404'
|
||
|
'406':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/406'
|
||
|
'429':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/429'
|
||
|
'500':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/500'
|
||
|
'503':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/503'
|
||
|
default:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/default'
|
||
|
put:
|
||
|
summary: Modify an existing subscription resource to update a subscription.
|
||
|
requestBody:
|
||
|
required: true
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/NetworkStatusReportingSubscription'
|
||
|
responses:
|
||
|
'200':
|
||
|
description: The subscription was updated successfully.
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/NetworkStatusReportingSubscription'
|
||
|
'400':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/400'
|
||
|
'401':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/401'
|
||
|
'403':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/403'
|
||
|
'404':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/404'
|
||
|
'411':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/411'
|
||
|
'413':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/413'
|
||
|
'415':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/415'
|
||
|
'429':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/429'
|
||
|
'500':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/500'
|
||
|
'503':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/503'
|
||
|
default:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/default'
|
||
|
delete:
|
||
|
summary: Delete an existing continuous network status reporting subscription resource.
|
||
|
responses:
|
||
|
'204':
|
||
|
description: The subscription was updated successfully.
|
||
|
'400':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/400'
|
||
|
'401':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/401'
|
||
|
'403':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/403'
|
||
|
'404':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/404'
|
||
|
'429':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/429'
|
||
|
'500':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/500'
|
||
|
'503':
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/503'
|
||
|
default:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/responses/default'
|
||
|
components:
|
||
|
securitySchemes:
|
||
|
oAuth2ClientCredentials:
|
||
|
type: oauth2
|
||
|
flows:
|
||
|
clientCredentials:
|
||
|
tokenUrl: '{tokenUrl}'
|
||
|
scopes: {}
|
||
|
schemas:
|
||
|
NetworkStatusReportingSubscription:
|
||
|
type: object
|
||
|
properties:
|
||
|
self:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/schemas/Link'
|
||
|
supportedFeatures:
|
||
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
|
||
|
notificationDestination:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/schemas/Link'
|
||
|
requestTestNotification:
|
||
|
type: boolean
|
||
|
description: Set to true by the SCS/AS to request the SCEF to send a test notification as defined in subclause 5.2.5.3. Set to false or omitted otherwise.
|
||
|
websockNotifConfig:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/schemas/WebsockNotifConfig'
|
||
|
locationArea:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea'
|
||
|
timeDuration:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime'
|
||
|
thresholdValues:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/CongestionValue'
|
||
|
minItems: 1
|
||
|
description: Identifies a list of congestion level(s) with exact value that the SCS/AS requests to be informed of when reached.
|
||
|
thresholdTypes:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/CongestionType'
|
||
|
minItems: 1
|
||
|
description: Identifies a list of congestion level(s) with abstracted value that the SCS/AS requests to be informed of when reached.
|
||
|
required:
|
||
|
- notificationDestination
|
||
|
- locationArea
|
||
|
not:
|
||
|
required: [thresholdValues, thresholdTypes]
|
||
|
NetworkStatusReportingNotification:
|
||
|
type: object
|
||
|
properties:
|
||
|
subscription:
|
||
|
$ref: 'TS29122_CommonData.yaml#/components/schemas/Link'
|
||
|
nsiValue:
|
||
|
$ref: '#/components/schemas/CongestionValue'
|
||
|
nsiType:
|
||
|
$ref: '#/components/schemas/CongestionType'
|
||
|
required:
|
||
|
- subscription
|
||
|
not:
|
||
|
required: [nsiValue, nsiType]
|
||
|
CongestionValue:
|
||
|
type: integer
|
||
|
minimum: 0
|
||
|
maximum: 31
|
||
|
description: Unsigned integer with valid values between 0 and 31. The value 0 indicates that there is no congestion. The value 1 is the lowest congestion level and value 31 is the highest congestion level.
|
||
|
CongestionType:
|
||
|
anyOf:
|
||
|
- type: string
|
||
|
enum:
|
||
|
- HIGH
|
||
|
- MEDIUM
|
||
|
- LOW
|
||
|
- 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
|
||
|
- HIGH: The congestion status is high.
|
||
|
- MEDIUM: The congestion status is medium.
|
||
|
- LOW: The congestion status is low.
|