Commit e7d9ba02 authored by Elian Kraja's avatar Elian Kraja
Browse files

Merge branch 'stf593' into 'develop'

Final Draft

See merge request !1
parents 2fd2a665 94f4c75f
Pipeline #5792 passed with stage
in 0 seconds
#!/bin/bash
specfiles=$(ls | egrep "^[^.]*.(json|yaml)")
fres=0
for i in $specfiles ; do
echo "-- Validating and linting OpenAPI file $i..."
swagger-cli validate $i
res=$?
speccy lint "$i"
res2=$?
fres=$(($fres||$res||$res2))
echo "--- Validator returned $res, linter returned $res2."
done
echo "-- Final validator returns $fres."
exit $fres
info:
title: "ETSI GS MEC 029 Fixed Access Information API"
version: 2.1.1
description: "ETSI GS MEC 029 Fixed Access Information API described using OpenAPI."
license:
name: BSD-3-Clause
url: 'https://forge.etsi.org/legal-matters'
contact:
name: ETSI Forge
email: cti_support@etsi.org
url: https://forge.etsi.org/rep/mec/gs029-fai-api
externalDocs:
description: "ETSI GS MEC 029 Fixed Access Information API, v2.1.1"
url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/029/02.01.01_60/gs_mec029v020101p.pdf'
openapi: 3.0.0
servers:
- url: 'https://localhost/fai/v1'
tags:
- name: Queries
- name: Subscription
paths:
/queries/fa_info:
get:
tags:
- 'Queries'
summary: 'Retrieve information on the available fixed access networks.'
description: 'Retrieve information on the available fixed access networks.'
operationId: fa_infoGET
parameters:
- in: query
name: customerPremisesInfo
schema:
type: array
items:
$ref: '#/components/schemas/CpInfo'
required: false
description: 'Comma separated list of customer premises information'
- in: query
name: lastMileTech
schema:
type: array
items:
type: integer
required: false
description: 'Comma separated list of last mile technologies.'
- in: query
name: interfaceType
schema:
type: array
items:
type: integer
description: 'Comma separated list of interface types.'
- in: query
name: dsbw
schema:
type: array
items:
type: integer
required: false
description: 'Comma separated list of the bandwidth (in Mbps) from the network towards the customer site.'
- in: query
name: usbw
schema:
type: array
items:
type: integer
required: false
description: 'Comma separated list of the bandwidth (in Mbps) from the customer site towards the network.'
- in: query
name: latency
schema:
type: array
items:
type: integer
required: false
description: 'Comma separated list of the maximum baseline latency (in ms) between customer site and service edge node.'
responses:
'200':
description: 'A response body containing the FAI is returned. '
content:
application/json:
schema:
$ref: '#/components/schemas/FaInfo'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'406':
$ref: '#/components/responses/406'
'429':
$ref: '#/components/responses/429'
/queries/device_info:
get:
tags:
- 'Queries'
summary: 'retrieve information on the devices that are connected to a fixed access network.'
description: 'retrieve information on the devices that are connected to a fixed access network.'
operationId: device_infoGET
parameters:
- in: query
name: gwId
schema:
type: array
items:
type: string
required: false
description: 'Comma separated list of gateway identifier'
- in: query
name: deviceId
schema:
type: array
items:
type: string
required: false
description: 'Comma separated list of device identifier.'
- in: query
name: deviceStatus
schema:
type: array
items:
type: integer
description: 'Comma separated list of device status.'
responses:
'200':
description: 'A response body containing the device information is returned'
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceInfo'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'406':
$ref: '#/components/responses/406'
'429':
$ref: '#/components/responses/429'
/queries/cable_line_info:
get:
tags:
- 'Cable line info'
summary: 'It Queries information about the cable line of a fixed access network.'
description: 'It Queries information about the cable line of a fixed access network.'
operationId: cable_line_infoGET
parameters:
- in: query
name: customerPremisesInfo
schema:
type: array
items:
$ref: '#/components/schemas/CpInfo'
required: false
description: 'Comma separated list of customer premises information'
- in: query
name: cmId
schema:
type: array
items:
type: string
required: false
description: 'Comma separated list of Cable Modem identifiers.'
responses:
'200':
description: 'A response body containing the cable line information is returned.'
content:
application/json:
schema:
$ref: '#/components/schemas/CableLineInfo'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'406':
$ref: '#/components/responses/406'
'429':
$ref: '#/components/responses/429'
/queries/optical_network_info:
get:
tags:
- 'Optical network info'
summary: 'used to query information about the optical network.'
description: 'used to query information about the optical network.'
operationId: optical_network_infoGET
parameters:
- in: query
name: customerPremisesInfo
schema:
type: array
items:
$ref: '#/components/schemas/CpInfo'
required: false
description: 'Comma separated list of customer premises information'
- in: query
name: ponYS_ID
schema:
type: array
items:
type: string
required: false
description: 'Comma separated list of optical system identifiers.'
- in: query
name: onuId
schema:
type: array
items:
type: string
required: false
description: 'Comma separated list of optical network unit identifiers.'
responses:
'200':
description: 'A response body containing the optical network information is returned.'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PonInfo'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'406':
$ref: '#/components/responses/406'
'429':
$ref: '#/components/responses/429'
/subscriptions:
get:
tags:
- 'Subscription'
summary: 'request information about the subscriptions for this requestor.'
description: 'request information about the subscriptions for this requestor.'
operationId: subGET
parameters:
- in: query
name: subscription_type
schema:
type: string
required: false
description: 'Query parameter to filter on a specific subscription type. Permitted values: ONU_ALARM. DEVICE_ABNORMAL_ALERT. CM_CONNECTIVITY_STATE. ANI_ALARM.'
responses:
'200':
description: 'A response body containing the list of links to requestor subscriptions is returned.'
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionLinkList'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'406':
$ref: '#/components/responses/406'
'429':
$ref: '#/components/responses/429'
post:
tags:
- 'Subscription'
summary: ' create a new subscription to FAI notifications.'
description: ' create a new subscription to FAI notifications.'
operationId: subPOST
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/OnuAlarmSubscription'
- $ref: '#/components/schemas/DevInfoSubscription'
- $ref: '#/components/schemas/CmConnSubscription'
- $ref: '#/components/schemas/AniAlarmSubscription'
responses:
'201':
description: 'In the returned NotificationSubscription structure, the created subscription is described using the appropriate data type.'
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/OnuAlarmSubscription'
- $ref: '#/components/schemas/DevInfoSubscription'
- $ref: '#/components/schemas/CmConnSubscription'
- $ref: '#/components/schemas/AniAlarmSubscription'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
callbacks:
notification:
'{$request.body#/callbackReference}':
post:
summary: 'Callback POST used to send a notification'
description: 'A notification from FAIS.'
operationId: notificationPOST
requestBody:
description: Subscription notification
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/OnuAlarmNotification'
- $ref: '#/components/schemas/DevInfoNotification'
- $ref: '#/components/schemas/CmConnNotification'
- $ref: '#/components/schemas/AniAlarmNotification'
responses:
'204':
$ref: '#/components/responses/204'
/subscriptions/{subscriptionId}:
parameters:
- in: path
name: subscriptionId
description: 'Refers to created subscription, where the FAI API allocates a unique resource name for this subscription'
schema:
type: string
required: true
get:
tags:
- 'Subscription'
summary: 'Retrieve information about this subscription.'
description: 'Retrieve information about this subscription.'
operationId: individualSubscriptionGET
responses:
'200':
description: 'A response body containing data type describing the specific FAI event subscription is returned'
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/OnuAlarmSubscription'
- $ref: '#/components/schemas/DevInfoSubscription'
- $ref: '#/components/schemas/CmConnSubscription'
- $ref: '#/components/schemas/AniAlarmSubscription'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'406':
$ref: '#/components/responses/406'
'429':
$ref: '#/components/responses/429'
put:
tags:
- 'Subscription'
summary: 'Used to update the existing subscription.'
description: 'Used to update the existing subscription.'
operationId: individualSubscriptionPUT
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/OnuAlarmSubscription'
- $ref: '#/components/schemas/DevInfoSubscription'
- $ref: '#/components/schemas/CmConnSubscription'
- $ref: '#/components/schemas/AniAlarmSubscription'
responses:
'200':
description: 'A response body containing data type describing the updated subscription is returned'
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/OnuAlarmSubscription'
- $ref: '#/components/schemas/DevInfoSubscription'
- $ref: '#/components/schemas/CmConnSubscription'
- $ref: '#/components/schemas/AniAlarmSubscription'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'406':
$ref: '#/components/responses/406'
'412':
$ref: '#/components/responses/412'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
delete:
tags:
- 'Subscription'
summary: 'Used to cancel the existing subscription.'
description: 'Used to cancel the existing subscription.'
operationId: individualSubscriptionDELETE
responses:
'204':
$ref: '#/components/responses/204'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'429':
$ref: '#/components/responses/429'
components:
schemas:
AniAlarmNotification.alarm:
description: 'Indicates the alarm of the ANI: 0 = LowReceivedOpticalPower. 1 = HighReceivedOpticalPower. 2 = SignalFailure. 3 = SignalDegrade. 4 = LowTransmitOpticalPower.5 = HighTransmitOpticalPower.6 = LaserBiasCurrent.'
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
type: integer
x-etsi-mec-cardinality: '1'
x-etsi-mec-origin-type: Enum
AniAlarmNotification.aniId:
properties:
onuId:
description: The unique identifiers for the optical network unit.
type: string
x-etsi-mec-cardinality: '1'
x-etsi-mec-origin-type: String
aniIndex:
description: The index of an access network interface supported by the optical network unit.
type: string
x-etsi-mec-cardinality: '1'
x-etsi-mec-origin-type: String
required:
- onuId
- aniIndex
AniAlarmNotification:
properties:
alarm:
$ref: '#/components/schemas/AniAlarmNotification.alarm'
aniId:
$ref: '#/components/schemas/AniAlarmNotification.aniId'
customerPremisesInfo:
description: The physical location of the related customer sites.
items:
$ref: '#/components/schemas/CpInfo'
minItems: 0
type: array
x-etsi-mec-cardinality: 0..N
x-etsi-mec-origin-type: CpInfo
notificationType:
description: Shall be set to "AniAlarmNotification".
type: string
x-etsi-mec-cardinality: '1'
x-etsi-mec-origin-type: String
onuId:
type: string
timeStamp:
# description': Time stamp.
# x-etsi-mec-cardinality': 0..1
# x-etsi-mec-origin-type': TimeStamp
$ref: '#/components/schemas/TimeStamp'
required:
- notificationType
- aniIndex
- alarm
type: object
x-etsi-ref: 6.4.6
AniAlarmSubscription.filterCriteriaAniAlarm.alarms:
description: "In case alarms is not included in the subscription request, the default value -1 = All shall be used and included in the response:\n0 =\tLowReceivedOpticalPower.\n(Received downstream optical power below threshold.)\n1 =\tHighReceivedOpticalPower.\n\t(Received downstream optical power above threshold.)\n2 =\tSignalFalure.\n(Bit error-based signal fail.)\n3 =\tSignalDegrade.\n(Bit error-based signal degrade.)\n4 =\tLowTransmitOpticalPower.\n(Transmit optical power below lower threshold.)\n5 =\tHighTransmitOpticalPower.\n(Transmit optical power above upper threshold.)\n6 =\tLaserBiasCurrent.\n(Laser bias current above threshold determined by vendor.)\n-1 =\tAll."
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- -1
type: integer
AniAlarmSubscription.links:
properties:
self:
# description': Self referring URI. The URI shall be unique within the FAI API as it acts as an ID for the subscription.
# x-etsi-mec-cardinality': '1'
# x-etsi-mec-origin-type': LinkType
$ref: '#/components/schemas/LinkType'
required:
- self
AniAlarmSubscription.filterCriteriaAniAlarm:
description: 'List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response.'
required:
- onuId
- aniId
properties:
customerPremisesInfo:
required:
- onuId
- aniId
description: 0 to N physical locations of the customer sites.
minItems: 0
type: array
items:
$ref: '#/components/schemas/CpInfo'
x-etsi-mec-cardinality: 0..N
x-etsi-mec-origin-type: CpInfo
onuId:
description: '1 to N unique identifiers for the optical network units. Typical it is the unique serial number for each ONU, which contains the vendor ID and version number. The first four bytes are an ASCII-encoded four-letter vendor ID. The second four bytes are a binary encoded serial number, under the control of the ONU vendor.'
type: array
items:
type: string
x-etsi-mec-cardinality: '1..N'
x-etsi-mec-origin-type: String
aniId:
description: ''
type: object
required:
- onuId
- aniIndex
properties:
onuId:
description: 'The unique identifiers for the optical network unit'
type: string