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'
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
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
paths:
/zones:
get:
tags:
- zones
operationId: zonesGet
description: Used to get a list of identifiers for zones authorized for use by the application.
produces:
- application/json
responses:
'200':
description: Successful response to a query regarding the status of a zone
schema:
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'
get:
tags:
- zones
operationId: zonesGetById
description: Used to get the status of a zone.
produces:
- application/json
responses:
'200':
description: Successful response to a query regarding the status of a zone
schema:
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'
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'
responses:
'200':
description: Successful response to a query a named set of access point status request
schema:
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'
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
responses:
'200':
description: Successful response to a query a named set of access point status request
schema:
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:
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
parameters:
- $ref: '#/parameters/Query.ZoneId'
- $ref: '#/parameters/Query.AccessPointId'
responses:
'200':
description: Successful response to a query users within a zone request
schema:
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'
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
responses:
'200':
description: Successful response to a query users within a zone request
schema:
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:
get:
tags:
- subscriptions
operationId: zonalTrafficSubGet
description: This operation is used for retrieving all active subscriptions to zonal traffic change notifications.
produces:
- application/json
responses:
'200':
description: Response to retrieve zonal traffic subscriptions
schema:
type: object
properties:
notificationSubscriptionList:
type: object
properties:
zonalTrafficSubscription:
type: array
items:
$ref: '#/definitions/ZonalTrafficSubscription'
resourceURL:
$ref: '#/definitions/ResourceURL'
examples:
application/json:
notificationSubscriptionList:
zonalTrafficSubscription:
- clientCorrelator: '0123'
resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zonalTraffic/subscription123'
callbackReference:
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'
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'
responses:
'201':
description: Response to create new zonal traffic subscription
schema:
properties:
zonalTrafficSubscription:
$ref: '#/definitions/ZonalTrafficSubscription'
examples:
application/json:
zonalTrafficSubscription:
clientCorrelator: '0123'
resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zonalTraffic/subscription123'
callbackReference:
notifyURL: 'http://clientApp.example.com/location_notifications/123456'
zoneId: zone01
interestRealm: LA
userEventCriteria: Transferring
'/subscriptions/zonalTraffic/{subscriptionId}':
parameters:
- $ref: '#/parameters/Path.SubscriptionId'
get:
tags:
- subscriptions
operationId: zonalTrafficSubGetById
description: This operation is used for updating an individual subscription to zonal traffic change notification.
produces:
- application/json
responses:
'200':
description: Response to retrieve individual zonal traffic subscription
schema:
properties:
zonalTrafficSubscription:
$ref: '#/definitions/ZonalTrafficSubscription'
examples:
application/json:
zonalTrafficSubscription:
clientCorrelator: '0123'
resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zonalTraffic/subscription123'
callbackReference:
notifyURL: 'http://clientApp.example.com/location_notifications/123456'
zoneId: zone01
interestRealm: LA
userEventCriteria: Transferring
put:
tags:
- subscriptions
operationId: zonalTrafficSubPutById
description: This operation is used for updating an individual subscription to zonal traffic change notification.
produces:
- application/json
parameters:
- $ref: '#/parameters/Body.ZonalTrafficSubscription'
responses:
'200':
description: Response to update individual zonal traffic subscription
schema:
properties:
zonalTrafficSubscription:
$ref: '#/definitions/ZonalTrafficSubscription'
examples:
application/json:
zonalTrafficSubscription:
clientCorrelator: '0123'
resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zonalTraffic/subscription123'
callbackReference:
notifyURL: 'http://clientApp.example.com/location_notifications/123456'
zoneId: zone01
interestRealm: LA
userEventCriteria: Transferring
delete:
tags:
- subscriptions
operationId: zonalTrafficSubDelById
description: This operation is used for cancelling a subscription and stopping corresponding notifications.
produces:
- application/json
responses:
'204':
description: No content
/subscriptions/userTracking:
get:
tags:
- subscriptions
operationId: userTrackingSubGet
description: This operation is used for retrieving all active subscriptions to user tracking change notifications.
produces:
- application/json
responses:
'200':
description: Response to retrieve user tracking subscriptions
schema:
type: object
properties:
notificationSubscriptionList:
type: object
properties:
userTrackingSubscription:
type: array
items:
$ref: '#/definitions/UserTrackingSubscription'
resourceURL:
$ref: '#/definitions/ResourceURL'
examples:
application/json:
notificationSubscriptionList:
userTrackingSubscription:
- clientCorrelator: '0123'
resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123'
callbackReference:
notifyURL: 'http://clientApp.example.com/location_notifications/123456'
address: 'acr:192.0.2.1'
userEventCriteria: Transferring
- clientCorrelator: '0124'
resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription124'
callbackReference:
notifyURL: 'http://clientApp.example.com/location_notifications/123456'
address: 'acr:192.0.2.2'
userEventCriteria: Transferring
resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/userTracking'
post:
tags:
- subscriptions
operationId: userTrackingSubPost
description: This operation is used for creating a new subscription to user tracking change notification
produces:
- application/json
parameters:
- $ref: '#/parameters/Body.UserTrackingSubscription'
responses:
'201':
description: Response to create new user tracking subscription
schema:
properties:
userTrackingSubscription:
$ref: '#/definitions/UserTrackingSubscription'
examples:
application/json:
userTrackingSubscription:
clientCorrelator: '0123'
resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123'
callbackReference:
notifyURL: 'http://clientApp.example.com/location_notifications/123456'
address: 'acr:192.0.2.1'
userEventCriteria: Transferring
'/subscriptions/userTracking/{subscriptionId}':
parameters:
- $ref: '#/parameters/Path.SubscriptionId'
get:
tags:
- subscriptions
operationId: userTrackingSubGetById
description: This operation is used for retrieving an individual subscription to user tracking change notification.
produces:
- application/json
responses:
'200':
description: Response to retrieve individual user tracking subscription
schema:
properties:
userTrackingSubscription:
$ref: '#/definitions/UserTrackingSubscription'
examples:
application/json:
userTrackingSubscription:
clientCorrelator: '0123'
resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123'
callbackReference:
notifyURL: 'http://clientApp.example.com/location_notifications/123456'
address: 'acr:192.0.2.1'
userEventCriteria: Transferring
put:
tags:
- subscriptions
operationId: userTrackingSubPutById
description: This operation is used for updating an individual subscription to user tracking change notification.
produces:
- application/json
parameters:
- $ref: '#/parameters/Body.UserTrackingSubscription'
responses:
'200':
description: Response to update individual user tracking subscription
schema:
properties:
userTrackingSubscription:
$ref: '#/definitions/UserTrackingSubscription'
examples:
application/json:
userTrackingSubscription:
clientCorrelator: '0123'
resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123'
callbackReference:
notifyURL: 'http://clientApp.example.com/location_notifications/123456'
address: 'acr:192.0.2.1'
userEventCriteria: Transferring
delete:
tags:
- subscriptions
operationId: userTrackingSubDelById
description: This operation is used for retrieving an individual subscription to user tracking change notification.
produces:
- application/json
responses:
'204':
description: No Content
/subscriptions/zonalStatus:
get: