forked from acouzens/open5gs
318 lines
12 KiB
YAML
318 lines
12 KiB
YAML
openapi: 3.0.0
|
||
info:
|
||
title: 3gpp-network-status-reporting
|
||
version: 1.0.1
|
||
description: |
|
||
API for reporting network status.
|
||
© 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.
|