Commit af639506 authored by Michel Roy's avatar Michel Roy
Browse files

added v2.1.1 draft version

parent 6bafe099
Pipeline #4990 failed with stage
in 0 seconds
This source diff could not be displayed because it is too large. You can view the blob instead.
################################################################################
# Open API specification version #
################################################################################
swagger: '2.0'
################################################################################
# Document Information #
################################################################################
info:
$ref: './info/index.yaml'
################################################################################
# External Documents #
################################################################################
externalDocs:
$ref: './externalDocs/index.yaml'
host: 127.0.0.1:8081
basePath: /exampleAPI/location/v1
schemes:
- http
- https
consumes:
- application/json
produces:
- application/json
################################################################################
# Tags #
################################################################################
tags:
$ref: './tags/index.yaml'
################################################################################
# Parameters #
################################################################################
parameters:
$ref: './parameters/index.yaml'
################################################################################
# paths #
################################################################################
paths:
$ref: './paths/index.yaml'
################################################################################
# Definitions #
################################################################################
definitions:
$ref: './definitions/index.yaml'
\ No newline at end of file
swagger: '2.0'
openapi: 3.0.0
info:
title: Location API
version: 1.1.1
description: The ETSI MEC ISG MEC012 Location API described using OpenAPI. The API is based on the Open Mobile Alliance's specification RESTful Network API for Zonal Presence
title: ETSI GS MEC 013 - Location API
version: 2.1.1
description: The ETSI MEC ISG MEC013 WLAN Access Information API described using OpenAPI.
license:
name: BSD-3-Clause
url: 'https://forge.etsi.org/legal-matters'
externalDocs:
description: ETSI MEC013 V1.1.1 Location Service API
url: 'http://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/01.01.01_60/gs_mec013v010101p.pdf'
host: '127.0.0.1:8081'
basePath: /exampleAPI/location/v1
schemes:
- http
- https
consumes:
- application/json
produces:
- application/json
tags:
- name: zones
- name: users
- name: subscriptions
parameters:
Body.UserTrackingSubscription:
name: userTrackingSubscription
in: body
description: User Tracking Subscription
required: true
schema:
$ref: '#/definitions/UserTrackingSubscription'
Body.ZonalTrafficSubscription:
name: zonalTrafficSubscription
in: body
description: Zonal Traffic Subscription
required: true
schema:
$ref: '#/definitions/ZonalTrafficSubscription'
Body.ZoneStatusSubscription:
name: zoneStatusSubscription
in: body
description: Zone Status Subscription
required: true
schema:
$ref: '#/definitions/ZoneStatusSubscription'
Path.AccessPointId:
name: accessPointId
in: path
description: Access Point ID
required: true
type: string
Path.SubscriptionId:
name: subscriptionId
in: path
description: Subscription ID
required: true
type: string
Path.UserId:
name: userId
in: path
description: User ID
required: true
type: string
Path.ZoneId:
name: zoneId
in: path
description: Zone ID
required: true
type: string
Query.AccessPointId:
name: accessPointId
in: query
description: 'Identifier of access point, reference "definitions" for string format'
required: false
type: string
Query.InterestRealm:
name: interestRealm
in: query
description: 'Interest realm of access point (e.g. geographical area, a type of industry etc.).'
required: false
type: string
Query.ZoneId:
name: zoneId
in: query
description: Zone ID
required: true
type: string
description: ETSI MEC013 V2.1.1 Location API
url: 'http://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf'
servers:
- url: 'https://{apiRoot}/location/v2/'
paths:
/zones:
/queries/distance:
get:
tags:
- zones
operationId: zonesGet
description: Used to get a list of identifiers for zones authorized for use by the application.
produces:
- application/json
- ''
summary: 'UE Distance Lookup of a specific UE'
description: 'UE Distance Lookup between terminals or a terminal and a location'
operationId: distanceGET
parameters:
- $ref: '#/components/parameters/Query.Requester'
- $ref: '#/components/parameters/Query.AddressMandatory'
- $ref: '#/components/parameters/Query.Latitude'
- $ref: '#/components/parameters/Query.Longitude'
responses:
'200':
description: Successful response to a query regarding the status of a zone
description: 'Successful response to a distance request'
content:
application/json:
schema:
type: object
properties:
zoneList:
$ref: '#/definitions/ZoneList'
examples:
application/json:
zoneList:
zone:
- zoneId: zone01
numberOfAccessPoints: '3'
numberOfUnserviceableAccessPoints: '1'
numberOfUsers: '10'
resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone01'
- zoneId: zone02
numberOfAccessPoints: '12'
numberOfUnserviceableAccessPoints: '0'
numberOfUsers: '36'
resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone02'
resourceURL: 'http://example.com/exampleAPI/location/v1/zones'
'/zones/{zoneId}':
parameters:
- $ref: '#/parameters/Path.ZoneId'
terminalDistance:
$ref: '#/components/schemas/TerminalDistance'
'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'
x-swagger-router-controller: 'queries'
/queries/users:
get:
tags:
- zones
operationId: zonesGetById
description: Used to get the status of a zone.
produces:
- application/json
- ''
summary: 'UE Location Lookup of a specific UE or group of UEs'
description: 'UE Location Lookup of a specific UE or group of UEs'
operationId: usersGET
parameters:
- $ref: '#/components/parameters/Query.ZoneId'
- $ref: '#/components/parameters/Query.AccessPointId'
- $ref: '#/components/parameters/Query.Address'
responses:
'200':
description: Successful response to a query regarding the status of a zone
description: 'Successful response to users request'
content:
application/json:
schema:
type: object
properties:
zoneInfo:
$ref: '#/definitions/ZoneInfo'
examples:
application/json:
zoneInfo:
zoneId: zone01
numberOfAccessPoints: '3'
numberOfUnserviceableAccessPoints: '1'
numberOfUsers: '10'
resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone01'
'/zones/{zoneId}/accessPoints':
parameters:
- $ref: '#/parameters/Path.ZoneId'
userList:
$ref: '#/components/schemas/UserList'
'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'
x-swagger-router-controller: "queries"
/queries/zones:
get:
tags:
- zones
operationId: zonesByIdGetAps
description: Access point status can be retrieved for sets of access points matching attribute in the request.
produces:
- application/json
parameters:
- $ref: '#/parameters/Query.InterestRealm'
- ''
summary: 'Zones information Lookup'
description: 'Used to get a list of identifiers for zones authorized for use by the application.'
operationId: zonesGET
responses:
'200':
description: Successful response to a query a named set of access point status request
description: 'Successful response to zones request'
content:
application/json:
schema:
type: object
properties:
accessPointList:
$ref: '#/definitions/AccessPointList'
examples:
application/json:
accessPointList:
zoneId: zone01
accessPoint:
- accessPointId: '001010000000000000000000000000001'
locationInfo:
latitude: '90.123'
longitude: '80.123'
altitude: '10.0'
accuracy: '0'
connectionType: Macro
operationStatus: Serviceable
numberOfUsers: '5'
interestRealm: LA
resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone01/accessPoints/ap001'
- accessPointId: '001010000000000000000000000000010'
locationInfo:
latitude: '91.123'
longitude: '81.123'
altitude: '12.0'
accuracy: '1'
connectionType: Macro
operationStatus: Unserviceable
numberOfUsers: '0'
interestRealm: DC
resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone01/accessPoints/ap002'
- accessPointId: '001010000000000000000000000000011'
locationInfo:
latitude: '93.123'
longitude: '83.123'
altitude: '16.0'
accuracy: '3'
connectionType: Macro
operationStatus: Serviceable
numberOfUsers: '5'
interestRealm: NJ
resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone01/accessPoints/ap003'
resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone01/accessPoints'
'/zones/{zoneId}/accessPoints/{accessPointId}':
parameters:
- $ref: '#/parameters/Path.ZoneId'
- $ref: '#/parameters/Path.AccessPointId'
zoneList:
$ref: '#/components/schemas/ZoneList'
'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'
x-swagger-router-controller: "queries"
/queries/zones/{zoneId}:
get:
tags:
- zones
operationId: zonesByIdGetApsById
description: Access point status can be retrieved for sets of access points matching attribute in the request.
produces:
- application/json
- ''
summary: 'Zones information Lookup'
description: 'Used to get the information for an authorized zone for use by the application.'
operationId: zonesGetById
parameters:
- $ref: '#/components/parameters/Path.ZoneId'
responses:
'200':
description: Successful response to a query a named set of access point status request
description: 'Successful response to an access point Id request'
content:
application/json:
schema:
type: object
properties:
accessPointInfo:
$ref: '#/definitions/AccessPointInfo'
examples:
application/json:
accessPointInfo:
accessPointId: '001010000000000000000000000000001'
locationInfo:
latitude: '90.123'
longitude: '80.123'
altitude: '10.0'
accuracy: '0'
connectionType: Macro
operationStatus: Serviceable
numberOfUsers: '5'
interestRealm: LA
resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone001/accessPoints/ap001'
/users:
zoneInfo:
$ref: '#/components/schemas/ZoneInfo'
'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'
x-swagger-router-controller: 'queries'
/queries/zones/{zoneId}/accessPoints:
get:
tags:
- users
operationId: usersGet
description: Users currently using a zone may be retrieved for sets of access points matching attribute in the request
produces:
- application/json
- ''
summary: 'Radio Node Location Lookup'
description: 'Radio Node Location Lookup to retrieve a list of radio nodes associated to a zone.'
operationId: apGET
parameters:
- $ref: '#/parameters/Query.ZoneId'
- $ref: '#/parameters/Query.AccessPointId'
- $ref: '#/components/parameters/Path.ZoneId'
- $ref: '#/components/parameters/Query.InterestRealm'
responses:
'200':
description: Successful response to a query users within a zone request
description: 'Successful response to an access point Id request'
content:
application/json:
schema:
type: object
properties:
userList:
$ref: '#/definitions/UserList'
examples:
application/json:
userList:
user:
- address: 'acr:192.0.2.1'
accessPointId: '001010000000000000000000000000001'
zoneId: zone01
resourceURL: 'http://example.com/exampleAPI/location/v1/users/acr%3A192.0.2.1'
- address: 'acr:192.0.2.2'
accessPointId: '001010000000000000000000000000001'
zoneId: zone01
resourceURL: 'http://example.com/exampleAPI/location/v1/users/acr%3A192.0.2.2'
- address: 'acr:192.0.2.3'
accessPointId: '001010000000000000000000000000010'
zoneId: zone01
resourceURL: 'http://example.com/exampleAPI/location/v1/users/acr%3A192.0.2.3'
- address: 'acr:192.0.2.4'
accessPointId: '001010000000000000000000000000001'
zoneId: zone02
resourceURL: 'http://example.com/exampleAPI/location/v1/users/acr%3A192.0.2.4'
- address: 'acr:192.0.2.5'
accessPointId: '001010000000000000000000000000010'
zoneId: zone02
resourceURL: 'http://example.com/exampleAPI/location/v1/users/acr%3A192.0.2.5'
resourceURL: 'http://example.com/exampleAPI/location/v1/users'
'/users/{userId}':
parameters:
- $ref: '#/parameters/Path.UserId'
accessPointList:
$ref: '#/components/schemas/AccessPointList'
'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'
x-swagger-router-controller: "queries"
/queries/zones/{zoneId}/accessPoints/{accessPointId}:
get:
tags:
- users
operationId: usersGetById
description: Users currently using a zone may be retrieved for sets of access points matching attribute in the request
produces:
- application/json
- ''
summary: 'Radio Node Location Lookup'
description: 'Radio Node Location Lookup to retrieve a radio node associated to a zone.'
operationId: apByIdGET
parameters:
- $ref: '#/components/parameters/Path.ZoneId'
- $ref: '#/components/parameters/Path.AccessPointId'
responses:
'200':
description: Successful response to a query users within a zone request
description: 'Successful response to an access point Id request'
content:
application/json:
schema:
type: object
properties:
userInfo:
$ref: '#/definitions/UserInfo'
examples:
application/json:
userInfo:
address: 'acr:192.0.2.1'
accessPointId: '001010000000000000000000000000001'
zoneId: zone01
resourceURL: 'http://example.com/exampleAPI/location/v1/users/acr%3A192.0.2.1'
locationInfo:
latitude: '90.123'
longitude: '80.123'
altitude: '10.0'
accuracy: '0'
contextLocationInfo: GroundFloor
/subscriptions/zonalTraffic:
accessPointInfo:
$ref: '#/components/schemas/AccessPointInfo'
'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'
x-swagger-router-controller: 'queries'
/subscriptions/area/circle:
get:
tags:
- subscriptions
operationId: zonalTrafficSubGet
description: This operation is used for retrieving all active subscriptions to zonal traffic change notifications.
produces:
- application/json
- ''
summary: 'Retrieves all active subscriptions to area change notifications'
description: 'This operation is used for retrieving all active subscriptions to area change notifications.'
operationId: areaCircleSubListGET
responses:
'200':
description: Response to retrieve zonal traffic subscriptions
description: 'Response to retrieve area subscriptions'
content:
application/json:
schema:
type: object
required:
- notificationSubscriptionList
properties:
notificationSubscriptionList:
type: object
properties:
zonalTrafficSubscription:
type: array
items:
$ref: '#/definitions/ZonalTrafficSubscription'
resourceURL:
$ref: '#/definitions/ResourceURL'
examples:
application/json:
$ref: '#/components/schemas/NotificationSubscriptionList'
example:
notificationSubscriptionList:
zonalTrafficSubscription:
circleNotificationSubscription:
- clientCorrelator: '0123'
resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zonalTraffic/subscription123'
callbackReference:
callbackData: '1234'
notifyURL: 'http://clientApp.example.com/location_notifications/123456'
zoneId: zone01
interestRealm: LA
userEventCriteria: Transferring
- clientCorrelator: '0124'
resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zonalTraffic/subscription124'
callbackReference:
notifyURL: 'http://clientApp.example.com/location_notifications/123457'
zoneId: zone02
interestRealm: LA
userEventCriteria: Transferring
resourceURL: 'http://example.com/exampleAPI/location/v1/zonalTraffic'
address: 'acr:10.0.0.1'
checkImmediate: true
enteringLeavingCriteria: 'Entering'
frequency: 10
latitude: -80.88
longitude: 41.277
radius: 500
trackingAccuracy: 10
resourceURL: 'http://meAppServer.example.com/location/v2/subscriptions/area/circle/subscription123'
resourceURL: 'http://meAppServer.example.com/location/v2/subscriptions/area/circle'
post:
tags:
- subscriptions
operationId: zonalTrafficSubPost
description: This operation is used for creating a new subscription to zonal traffic change notification.
produces:
- application/json
parameters:
- $ref: '#/parameters/Body.ZonalTrafficSubscription'
- ''
summary: 'Creates a subscription for area change notification'
description: 'Creates a subscription to the Location Service for an area change notification.'
operationId: areaCircleSubPOST
requestBody:
description: 'Subscription to be created'
required: true