Commit 1307c8ad authored by Elian Kraja's avatar Elian Kraja
Browse files

Merge branch 'stf593' into 'develop'

Final draft

See merge request !1
parents 75fa0e7e 27ed830a
Pipeline #5790 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 030 V2X Information Service API"
version: 2.1.1
description: "ETSI GS MEC 030 V2X Information Service API described using OpenAPI."
contact:
name: ETSI Forge
email: cti_support@etsi.org
url: https://forge.etsi.org/rep/mec/gs030-vis-api
license:
name: BSD-3-Clause
url: 'https://forge.etsi.org/legal-matters'
externalDocs:
description: "ETSI GS MEC 030 V2X Information Service API, v2.1.1"
url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/030/02.01.01_60/gs_mec030v020101p.pdf'
openapi: 3.0.0
servers:
- url: 'https://localhost/vis/v1'
tags:
- name: queries
description: Queries
- name: subscription
description: Subscription
paths:
/queries/uu_unicast_provisioning_info:
get:
tags:
- 'queries'
summary: 'Used to query provisioning information for V2X communication over Uu unicast.'
description: 'Used to query provisioning information for V2X communication over Uu unicast.'
operationId: prov_info_uu_unicastGET
parameters:
- in: query
name: location_info
schema:
type: string
required: true
description: 'Comma separated list of locations to identify a cell of a base station or a particular geographical area'
responses:
'200':
description: 'A response body containing the Uu unicast provisioning information. '
content:
application/json:
schema:
$ref: '#/components/schemas/UuUnicastProvisioningInfo'
'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/uu_mbms_provisioning_info:
get:
tags:
- 'queries'
summary: 'retrieve information required for V2X communication over Uu MBMS.'
description: 'retrieve information required for V2X communication over Uu MBMS.'
operationId: prov_info_uu_mbmsGET
parameters:
- in: query
name: location_info
schema:
type: string
required: true
description: 'omma separated list of locations to identify a cell of a base station or a particular geographical area'
responses:
'200':
description: 'A response body containing the Uu unicast provisioning information. '
content:
application/json:
schema:
$ref: '#/components/schemas/UuMbmsProvisioningInfo'
'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/pc5_provisioning_info:
get:
tags:
- 'queries'
summary: 'Query provisioning information for V2X communication over PC5.'
description: 'Query provisioning information for V2X communication over PC5.'
operationId: prov_infoGET
parameters:
- in: query
name: location_info
schema:
type: string
required: true
description: 'Comma separated list of locations to identify a cell of a base station or a particular geographical area'
responses:
'200':
description: 'A response body containing the PC5 provisioning information is returned.'
content:
application/json:
schema:
$ref: '#/components/schemas/Pc5ProvisioningInfo'
'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'
/provide_predicted_qos:
post:
tags:
- 'QoS'
summary: 'Request the predicted QoS correspondent to potential routes of a vehicular UE.'
description: 'Request the predicted QoS correspondent to potential routes of a vehicular UE.'
operationId: predicted_qosPOST
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PredictedQos'
responses:
'200':
description: 'The response body shall contain the predicted QoS corresponding to potential routes of a vehicular UE'
content:
application/json:
schema:
$ref: '#/components/schemas/PredictedQos'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
/publish_v2x_message:
post:
tags:
- 'V2X_msg'
summary: 'Used to publish a V2X message.'
description: 'Used to publish a V2X message.'
operationId: v2x_messagePOST
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/V2xMsgPublication'
responses:
'204':
$ref: '#/components/responses/204'
'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
description: 'Query parameter to filter on a specific subscription type. Permitted values: prov_chg_uu_uni: provisioning information change for V2X communication over Uuunicast prov_chg_uu_mbms: provisioning information change for V2X communication over Uu MBMS prov_chg_uu_pc5: provisioning information change for V2X communication over PC5. v2x_msg: V2X interoperability message'
schema:
type: string
required: false
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 VIS notifications.'
description: ' create a new subscription to VIS notifications.'
operationId: subPOST
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ProvChgUuUniSubscription'
- $ref: '#/components/schemas/ProvChgUuMbmsSubscription'
- $ref: '#/components/schemas/ProvChgPc5Subscription'
- $ref: '#/components/schemas/V2xMsgSubscription'
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/ProvChgUuUniSubscription'
- $ref: '#/components/schemas/ProvChgUuMbmsSubscription'
- $ref: '#/components/schemas/ProvChgPc5Subscription'
- $ref: '#/components/schemas/V2xMsgSubscription'
'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 VIS.'
operationId: notificationPOST
requestBody:
description: Subscription notification
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ProvChgUuUniNotification'
- $ref: '#/components/schemas/ProvChgUuMbmsNotification'
- $ref: '#/components/schemas/ProvChgPc5Notification'
- $ref: '#/components/schemas/V2xMsgNotification'
responses:
'204':
$ref: '#/components/responses/204'
/subscriptions/{subscriptionId}:
parameters:
- in: path
name: subscriptionId
description: 'Refers to created subscription, where the VIS 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 the data type describing the specific RNI event subscription is returned'
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ProvChgUuUniSubscription'
- $ref: '#/components/schemas/ProvChgUuMbmsSubscription'
- $ref: '#/components/schemas/ProvChgPc5Subscription'
- $ref: '#/components/schemas/V2xMsgSubscription'
'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/ProvChgUuUniSubscription'
- $ref: '#/components/schemas/ProvChgUuMbmsSubscription'
- $ref: '#/components/schemas/ProvChgPc5Subscription'
- $ref: '#/components/schemas/V2xMsgSubscription'
responses:
'200':
description: 'A response body containing data type describing the updated subscription is returned'
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ProvChgUuUniSubscription'
- $ref: '#/components/schemas/ProvChgUuMbmsSubscription'
- $ref: '#/components/schemas/ProvChgPc5Subscription'
- $ref: '#/components/schemas/V2xMsgSubscription'
'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'
# /notifitication_end_point_provided_by_client
#post:
components:
schemas:
CellId:
properties:
cellId:
description: E-UTRAN Cell Identity as a bit string (size (28)).
type: string
x-etsi-mec-cardinality: '1'
x-etsi-mec-origin-type: String
required:
- cellId
type: object
x-etsi-ref: 6.6.2
Earfcn:
properties:
earfcn:
description: E-UTRA Absolute Radio Frequency Channel Number, range (0... 65535)
type: integer
x-etsi-mec-cardinality: '1'
x-etsi-mec-origin-type: Integer
required:
- earfcn
type: object
x-etsi-ref: 6.6.3
Ecgi:
properties:
cellId:
# description': The E-UTRAN Cell Identity.
# x-etsi-mec-cardinality': '1'
# x-etsi-mec-origin-type': CellId
$ref: '#/components/schemas/CellId'
plmn:
# description': Public Land Mobile Network Identity.
# x-etsi-mec-cardinality': '1'
# x-etsi-mec-origin-type': Plmn
$ref: '#/components/schemas/Plmn'
required:
- plmn
- cellId
type: object
x-etsi-ref: 6.5.5
FddInfo:
properties:
dlEarfcn:
# description': ''
# x-etsi-mec-cardinality': '1'
# x-etsi-mec-origin-type': Earfcn
$ref: '#/components/schemas/Earfcn'
dlTransmissionBandwidth:
# description': ''
# x-etsi-mec-cardinality': '1'
# x-etsi-mec-origin-type': TransmissionBandwidth
$ref: '#/components/schemas/TransmissionBandwidth'
ulEarfcn:
# description': ''
# x-etsi-mec-cardinality': '1'
# x-etsi-mec-origin-type': Earfcn
$ref: '#/components/schemas/Earfcn'
ulTransmissionBandwidth:
# description': ''
# x-etsi-mec-cardinality': '1'
# x-etsi-mec-origin-type': TransmissionBandwidth
$ref: '#/components/schemas/TransmissionBandwidth'
required:
- ulEarfcn
- dlEarfcn
- ulTransmissionBandwidth
- dlTransmissionBandwidth
type: object
x-etsi-ref: 6.5.6
LocationInfo.geoArea:
description: Information of a geographical area.
properties:
latitude:
description: 'Latitude (DATUM = WGS84) -90 to 90 in decimal degree format DDD.ddd'
format: Float
type: number
x-etsi-mec-cardinality: '1'
x-etsi-mec-origin-type: Float
longitude:
description: 'Longitude (DATUM = WGS84)-180 to 180 in decimal degree format DDD.ddd'
format: Float
type: number
x-etsi-mec-cardinality: '1'
x-etsi-mec-origin-type: Float
required:
- latitude
- longitude
type: object
x-etsi-mec-cardinality: 0..1
LocationInfo:
properties:
ecgi:
# description': E-UTRAN CelI Global Identifier of the serving cell.
# x-etsi-mec-cardinality': 0..1
# x-etsi-mec-origin-type': Ecgi
$ref: '#/components/schemas/Ecgi'
geoArea:
$ref: '#/components/schemas/LocationInfo.geoArea'
type: object
x-etsi-notes: "NOTE:\tEither ecgi or geoArea shall be present, but not both."
x-etsi-ref: 6.5.3
Pc5NeighbourCellInfo:
properties:
ecgi:
# description': E-UTRAN CelI Global Identifier.
# x-etsi-mec-cardinality': '1'
# x-etsi-mec-origin-type': Ecgi
$ref: '#/components/schemas/Ecgi'
plmn:
# description': Public Land Mobile Network Identity.
# x-etsi-mec-cardinality': '1'
# x-etsi-mec-origin-type': Plmn
$ref: '#/components/schemas/Plmn'
siV2xConfig:
description: V2X sidelink communication configuration, as defined in ETSI TS 136 331 [i.11].
# x-etsi-mec-cardinality': '1'
# x-etsi-mec-origin-type': SystemInformationBlockType21 (as defined in ETSI TS 136 331 [i.11])
type: string
required:
- plmn
- ecgi
- siV2xConfig
type: object
x-etsi-ref: 6.5.12
Pc5ProvisioningInfo.proInfoPc5:
description: The provisioning information per location as defined below.
properties:
dstLayer2Id:
description: "For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS\_136\_321 [i.12].\nPLMN operators coordinate to make sure Destination Layer-2 ID(s) for different V2X services are configured in a consistent manner."
type: string
x-etsi-mec-cardinality: '1'
x-etsi-mec-origin-type: String
locationInfo:
# description': Location information to identify a cell of a base station or a particular geographical area.
# x-etsi-mec-cardinality': '1'
# x-etsi-mec-origin-type': LocationInfo
$ref: '#/components/schemas/LocationInfo'
neighbourCellInfo:
description: The information of the neighbour cells in a visiting PLMN that support V2X communication over PC5.
items:
$ref: '#/components/schemas/Pc5NeighbourCellInfo'
minItems: 0
type: array
x-etsi-mec-cardinality: 0..N
x-etsi-mec-origin-type: Pc5NeighbourCellInfo
required:
- locationInfo
- dstLayer2Id
Pc5ProvisioningInfo:
properties:
proInfoPc5:
type: array
items:
$ref: '#/components/schemas/Pc5ProvisioningInfo.proInfoPc5'
timeStamp:
# description': Time stamp.
# x-etsi-mec-cardinality': 0..1
# x-etsi-mec-origin-type': TimeStamp
$ref: '#/components/schemas/TimeStamp'
required:
- proInfoPc5
type: object
x-etsi-ref: 6.2.4
Plmn:
properties:
mcc:
description: The Mobile Country Code part of PLMN Identity.
type: string
x-etsi-mec-cardinality: '1'
x-etsi-mec-origin-type: String
mnc:
description: The Mobile Network Code part of PLMN Identity.
type: string
x-etsi-mec-cardinality: '1'
x-etsi-mec-origin-type: String
required:
- mcc
- mnc