Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
MEC - Multi-access Edge Computing
Fixed Access Information API
Commits
e7d9ba02
Commit
e7d9ba02
authored
Jan 26, 2021
by
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
Changes
72
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
.jenkins.sh
0 → 100644
View file @
e7d9ba02
#!/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
MEC029_FAI.yaml
0 → 100644
View file @
e7d9ba02
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:
\n
0
=
\t
LowReceivedOpticalPower.
\n
(Received
downstream
optical
power
below
threshold.)
\n
1
=
\t
HighReceivedOpticalPower.
\n\t
(Received
downstream
optical
power
above
threshold.)
\n
2
=
\t
SignalFalure.
\n
(Bit
error-based
signal
fail.)
\n
3
=
\t
SignalDegrade.
\n
(Bit
error-based
signal
degrade.)
\n
4
=
\t
LowTransmitOpticalPower.
\n
(Transmit
optical
power
below
lower
threshold.)
\n
5
=
\t
HighTransmitOpticalPower.
\n
(Transmit
optical
power
above
upper
threshold.)
\n
6
=
\t
LaserBiasCurrent.
\n
(Laser
bias
current
above
threshold
determined
by
vendor.)
\n
-1
=
\t
All."
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