{ "openapi": "3.1.0", "info": { "contact": { "url": "https://forge.etsi.org/rep/mec/gs013-location-api" }, "title": "ETSI GS MEC 013 - Location API", "version": "2.2.1", "description": "The ETSI MEC ISG MEC013 Location API described using OpenAPI.", "license": { "name": "BSD-3-Clause", "url": "https://forge.etsi.org/legal-matters" } }, "externalDocs": { "description": "ETSI MEC013 V2.2.1 Location API", "url": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.02.01_60/gs_mec013v020201p.pdf" }, "servers": [ { "url": "https://localhost/location/v2" } ], "tags": [ { "name": "location" } ], "paths": { "/queries/distance": { "get": { "tags": ["location"], "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 distance request", "content": { "application/json": { "schema": { "type": "object", "properties": { "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": ["location"], "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 users request", "content": { "application/json": { "schema": { "type": "object", "properties": { "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": ["location"], "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 zones request", "content": { "application/json": { "schema": { "type": "object", "properties": { "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": ["location"], "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 an access point Id request", "content": { "application/json": { "schema": { "type": "object", "properties": { "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": ["location"], "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": "#/components/parameters/Path.ZoneId" }, { "$ref": "#/components/parameters/Query.InterestRealm" } ], "responses": { "200": { "description": "Successful response to an access point Id request", "content": { "application/json": { "schema": { "type": "object", "properties": { "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": ["location"], "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 an access point Id request", "content": { "application/json": { "schema": { "type": "object", "properties": { "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": ["location"], "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 area subscriptions", "content": { "application/json": { "schema": { "type": "object", "required": ["notificationSubscriptionList"], "properties": { "notificationSubscriptionList": { "$ref": "#/components/schemas/NotificationSubscriptionList" } }, "examples": [ { "notificationSubscriptionList": { "circleNotificationSubscription": [ { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "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": ["location"], "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, "content": { "application/json": { "schema": { "type": "object", "properties": { "circleNotificationSubscription": { "$ref": "#/components/schemas/CircleNotificationSubscription" } }, "examples": [ { "circleNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "address": "acr:10.0.0.1", "checkImmediate": true, "enteringLeavingCriteria": "Entering", "frequency": 10, "latitude": -80.88, "longitude": 41.277, "radius": 500, "trackingAccuracy": 10 } } ] } } } }, "responses": { "201": { "description": "Successful subscription", "content": { "application/json": { "schema": { "type": "object", "properties": { "circleNotificationSubscription": { "$ref": "#/components/schemas/CircleNotificationSubscription" } }, "examples": [ { "circleNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "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" } } ] } } } }, "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" } }, "callbacks": { "notification": { "{$request.body#/circleNotificationSubscription.callbackReference.notifyURL}": { "post": { "summary": "Callback POST used to send a notification", "description": "Notification from Location service, content based on subscription type", "operationId": "circleNotificationPOST", "requestBody": { "description": "Subscription notification", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "subscriptionNotification": { "$ref": "#/components/schemas/SubscriptionNotification" } }, "examples": [ { "subscriptionNotification": { "enteringLeavingCriteria": "Entering", "isFinalNotification": "false,", "link": { "rel": "CircleNotificationSubscription", "href": "http://meAppServer.example.com/location/v2/subscriptions/area/circle/sub123" }, "terminalLocation": { "address": "acr:10.0.0.1", "currentLocation": { "accuracy": 100, "altitude": 1001, "latitude": -80.86302, "longitude": 41.277306, "timestamp": { "seconds": 1483231138, "nanoSeconds\"": 0 } }, "locationRetrievalStatus": "Retrieved" } } } ] } } } }, "responses": { "204": { "$ref": "#/components/responses/204" } } } } } }, "x-swagger-router-controller": "subscriptions" } }, "/subscriptions/area/circle/{subscriptionId}": { "get": { "tags": ["location"], "summary": "Retrieve subscription information", "description": "Get subscription information.", "operationId": "areaCircleSubGET", "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "responses": { "200": { "description": "Subscription information regarding subscription notifications", "content": { "application/json": { "schema": { "type": "object", "required": ["circleNotificationSubscription"], "properties": { "circleNotificationSubscription": { "$ref": "#/components/schemas/CircleNotificationSubscription" } }, "examples": [ { "circleNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "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" } } ] } } } }, "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": "subscriptions" }, "put": { "tags": ["location"], "summary": "Updates a subscription information", "description": "Updates a subscription.", "operationId": "areaCircleSubPUT", "requestBody": { "description": "Subscription to be modified", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "circleNotificationSubscription": { "$ref": "#/components/schemas/CircleNotificationSubscription" } }, "examples": [ { "circleNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "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" } } ] } } } }, "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "responses": { "200": { "description": "Successful subscription to response to subscription notifications", "content": { "application/json": { "schema": { "type": "object", "properties": { "circleNotificationSubscription": { "$ref": "#/components/schemas/CircleNotificationSubscription" } }, "examples": [ { "circleNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "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" } } ] } } } }, "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" } }, "x-swagger-router-controller": "subscriptions" }, "delete": { "tags": ["location"], "summary": "Cancel a subscription", "description": "Method to delete a subscription.", "operationId": "areaCircleSubDELETE", "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "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" } }, "x-swagger-router-controller": "subscriptions" } }, "/subscriptions/distance": { "get": { "tags": ["location"], "summary": "Retrieves all active subscriptions to distance change notifications", "description": "This operation is used for retrieving all active subscriptions to a distance change notifications.", "operationId": "distanceSubListGET", "responses": { "200": { "description": "Response to retrieve area subscriptions", "content": { "application/json": { "schema": { "type": "object", "required": ["notificationSubscriptionList"], "properties": { "notificationSubscriptionList": { "$ref": "#/components/schemas/NotificationSubscriptionList" } }, "examples": [ { "notificationSubscriptionList": { "distanceNotificationSubscription": [ { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "monitoredAddress": [ "acr:10.0.0.1", "acr:10.0.0.2" ], "checkImmediate": true, "criteria": "AllWithinDistance", "distance": 100, "frequency": 10, "referenceAddress": "acr:10.0.0.3", "trackingAccuracy": 10, "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/distance/sub123" } ], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/distance" } } ] } } } } } }, "post": { "tags": ["location"], "summary": "Creates a subscription for distance change notification", "description": "Creates a subscription to the Location Service for a distance change notification.", "operationId": "distanceSubPOST", "requestBody": { "description": "Subscription to be created", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "distanceNotificationSubscription": { "$ref": "#/components/schemas/DistanceNotificationSubscription" } }, "examples": [ { "distanceNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "monitoredAddress": ["acr:10.0.0.1", "acr:10.0.0.2"], "checkImmediate": true, "criteria": "AllWithinDistance", "distance": 100, "frequency": 10, "referenceAddress": "acr:10.0.0.3", "trackingAccuracy": 10 } } ] } } } }, "responses": { "201": { "description": "Successful subscription", "content": { "application/json": { "schema": { "type": "object", "properties": { "distanceNotificationSubscription": { "$ref": "#/components/schemas/DistanceNotificationSubscription" } }, "examples": [ { "distanceNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "monitoredAddress": ["acr:10.0.0.1", "acr:10.0.0.2"], "checkImmediate": true, "criteria": "AllWithinDistance", "distance": 100, "frequency": 10, "referenceAddress": "acr:10.0.0.3", "trackingAccuracy": 10, "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/distance/subscription123" } } ] } } } }, "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" } }, "callbacks": { "notification": { "{$request.body#/distanceNotificationSubscription.callbackReference.notifyURL}": { "post": { "summary": "Callback POST used to send a notification", "description": "Notification from Location service, content based on subscription type", "operationId": "distanceNotificationPOST", "requestBody": { "description": "Subscription notification", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "subscriptionNotification": { "$ref": "#/components/schemas/SubscriptionNotification" } }, "examples": [ { "subscriptionNotification": { "distanceCriteria": "AllWithinDistance", "isFinalNotification": "false,", "link": { "rel": "DistanceNotificationSubscription", "href": "http://meAppServer.example.com/location/v2/subscriptions/distance/sub123" }, "terminalLocation": [ { "address": "acr:10.0.0.1", "currentLocation": { "accuracy": 100, "altitude": 1001, "latitude": -80.86302, "longitude": 41.277306, "timestamp": { "seconds": 1483231138, "nanoSeconds\"": 0 } }, "locationRetrievalStatus": "Retrieved" }, { "address": "acr:10.0.0.2", "currentLocation": { "accuracy": 100, "altitude": 1001, "latitude": -80.86301, "longitude": 41.277306, "timestamp": { "seconds": 1483231138, "nanoSeconds\"": 0 } }, "locationRetrievalStatus": "Retrieved" } ] } } ] } } } }, "responses": { "204": { "$ref": "#/components/responses/204" } } } } } }, "x-swagger-router-controller": "subscriptions" } }, "/subscriptions/distance/{subscriptionId}": { "get": { "tags": ["location"], "summary": "Retrieve subscription information", "description": "Get subscription information.", "operationId": "distanceSubGET", "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "responses": { "200": { "description": "Subscription information regarding subscription notifications", "content": { "application/json": { "schema": { "type": "object", "required": ["distanceNotificationSubscription"], "properties": { "distanceNotificationSubscription": { "$ref": "#/components/schemas/DistanceNotificationSubscription" } }, "examples": [ { "distanceNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "monitoredAddress": ["acr:10.0.0.1", "acr:10.0.0.2"], "checkImmediate": true, "criteria": "AllWithinDistance", "distance": 100, "frequency": 10, "referenceAddress": "acr:10.0.0.3", "trackingAccuracy": 10, "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/distance/subscription123" } } ] } } } }, "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": "subscriptions" }, "put": { "tags": ["location"], "summary": "Updates a subscription information", "description": "Updates a subscription.", "operationId": "distanceSubPUT", "requestBody": { "description": "Subscription to be modified", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "distanceNotificationSubscription": { "$ref": "#/components/schemas/DistanceNotificationSubscription" } }, "examples": [ { "distanceNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "monitoredAddress": ["acr:10.0.0.1", "acr:10.0.0.2"], "checkImmediate": true, "criteria": "AllWithinDistance", "distance": 100, "frequency": 10, "referenceAddress": "acr:10.0.0.3", "trackingAccuracy": 10, "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/distance/subscription123" } } ] } } } }, "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "responses": { "200": { "description": "Successful subscription to response to subscription notifications", "content": { "application/json": { "schema": { "type": "object", "properties": { "distanceNotificationSubscription": { "$ref": "#/components/schemas/DistanceNotificationSubscription" } }, "examples": [ { "distanceNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "monitoredAddress": ["acr:10.0.0.1", "acr:10.0.0.2"], "checkImmediate": true, "criteria": "AllWithinDistance", "distance": 100, "frequency": 10, "referenceAddress": "acr:10.0.0.3", "trackingAccuracy": 10, "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/distance/subscription123" } } ] } } } }, "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" } }, "x-swagger-router-controller": "subscriptions" }, "delete": { "tags": ["location"], "summary": "Cancel a subscription", "description": "Method to delete a subscription.", "operationId": "distanceSubDELETE", "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "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" } }, "x-swagger-router-controller": "subscriptions" } }, "/subscriptions/periodic": { "get": { "tags": ["location"], "summary": "Retrieves all active subscriptions to periodic notifications", "description": "This operation is used for retrieving all active subscriptions to periodic notifications.", "operationId": "periodicSubListGET", "responses": { "200": { "description": "Response to retrieve area subscriptions", "content": { "application/json": { "schema": { "type": "object", "required": ["notificationSubscriptionList"], "properties": { "notificationSubscriptionList": { "$ref": "#/components/schemas/NotificationSubscriptionList" } }, "examples": [ { "notificationSubscriptionList": { "periodicNotificationSubscription": [ { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "address": "acr:10.0.0.1", "frequency": 10, "requestedAccuracy": 10, "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/periodic/subscription123" } ], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/periodic" } } ] } } } } } }, "post": { "tags": ["location"], "summary": "Creates a subscription for periodic notification", "description": "Creates a subscription to the Location Service for a periodic notification.", "operationId": "periodicSubPOST", "requestBody": { "description": "Subscription to be created", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "periodicNotificationSubscription": { "$ref": "#/components/schemas/PeriodicNotificationSubscription" } }, "examples": [ { "periodicNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "address": "acr:10.0.0.1", "frequency": 10, "requestedAccuracy": 10 } } ] } } } }, "responses": { "201": { "description": "Successful subscription", "content": { "application/json": { "schema": { "type": "object", "properties": { "periodicNotificationSubscription": { "$ref": "#/components/schemas/PeriodicNotificationSubscription" } }, "examples": [ { "periodicNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "address": "acr:10.0.0.1", "frequency": 10, "requestedAccuracy": 10, "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/periodic/subscription123" } } ] } } } }, "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" } }, "callbacks": { "notification": { "{$request.body#/periodicNotificationSubscription.callbackReference.notifyURL}": { "post": { "summary": "Callback POST used to send a notification", "description": "Notification from Location service, content based on subscription type", "operationId": "periodicNotificationPOST", "requestBody": { "description": "Subscription notification", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "subscriptionNotification": { "$ref": "#/components/schemas/SubscriptionNotification" } }, "examples": [ { "subscriptionNotification": { "isFinalNotification": "false,", "link": { "rel": "PeriodicNotificationSubscription", "href": "http://meAppServer.example.com/location/v2/subscriptions/periodic/sub123" }, "terminalLocation": { "address": "acr:10.0.0.1", "currentLocation": { "accuracy": 100, "altitude": 1001, "latitude": -80.86302, "longitude": 41.277306, "timestamp": { "seconds": 1483231138, "nanoSeconds\"": 0 } }, "locationRetrievalStatus": "Retrieved" } } } ] } } } }, "responses": { "204": { "$ref": "#/components/responses/204" } } } } } }, "x-swagger-router-controller": "subscriptions" } }, "/subscriptions/periodic/{subscriptionId}": { "get": { "tags": ["location"], "summary": "Retrieve subscription information", "description": "Get subscription information.", "operationId": "periodicSubGET", "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "responses": { "200": { "description": "Subscription information regarding subscription notifications", "content": { "application/json": { "schema": { "type": "object", "required": ["periodicNotificationSubscription"], "properties": { "periodicNotificationSubscription": { "$ref": "#/components/schemas/PeriodicNotificationSubscription" } }, "examples": [ { "periodicNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "address": "acr:10.0.0.1", "frequency": 10, "requestedAccuracy": 10, "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/periodic/subscription123" } } ] } } } }, "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": "subscriptions" }, "put": { "tags": ["location"], "summary": "Updates a subscription information", "description": "Updates a subscription.", "operationId": "periodicSubPUT", "requestBody": { "description": "Subscription to be modified", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "periodicNotificationSubscription": { "$ref": "#/components/schemas/PeriodicNotificationSubscription" } }, "examples": [ { "periodicNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "address": "acr:10.0.0.1", "frequency": 10, "requestedAccuracy": 10, "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/periodic/subscription123" } } ] } } } }, "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "responses": { "200": { "description": "Successful subscription to response to subscription notifications", "content": { "application/json": { "schema": { "type": "object", "properties": { "periodicNotificationSubscription": { "$ref": "#/components/schemas/PeriodicNotificationSubscription" } }, "examples": [ { "periodicNotificationSubscription": { "clientCorrelator": "0123", "callbackReference": { "callbackData": "1234", "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "address": "acr:10.0.0.1", "frequency": 10, "requestedAccuracy": 10, "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/periodic/subscription123" } } ] } } } }, "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" } }, "x-swagger-router-controller": "subscriptions" }, "delete": { "tags": ["location"], "summary": "Cancel a subscription", "description": "Method to delete a subscription.", "operationId": "periodicSubDELETE", "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "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" } }, "x-swagger-router-controller": "subscriptions" } }, "/subscriptions/userTracking": { "get": { "tags": ["location"], "summary": "Retrieves all active subscriptions to user tracking notifications", "description": "This operation is used for retrieving all active subscriptions to user tracking notifications.", "operationId": "userTrackingSubListGET", "responses": { "200": { "description": "Response to retrieve user tracking subscriptions", "content": { "application/json": { "schema": { "type": "object", "required": ["notificationSubscriptionList"], "properties": { "notificationSubscriptionList": { "$ref": "#/components/schemas/NotificationSubscriptionList" } }, "examples": [ { "notificationSubscriptionList": { "userTrackingSubscription": [ { "clientCorrelator": "0123", "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/subscription123", "callbackReference": { "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "address": "acr:192.0.2.1", "userEventCriteria": ["Transferring"] }, { "clientCorrelator": "0124", "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/subscription124", "callbackReference": { "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "address": "acr:192.0.2.2", "userEventCriteria": ["Transferring"] } ], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking" } } ] } } } } } }, "post": { "tags": ["location"], "summary": "Creates a subscription for user tracking notification", "description": "Creates a subscription to the Location Service for user tracking change notification.", "operationId": "userTrackingSubPOST", "requestBody": { "description": "Subscription to be created", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "userTrackingSubscription": { "$ref": "#/components/schemas/UserTrackingSubscription" } }, "examples": [ { "userTrackingSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "address": "acr:10.0.0.1", "userEventCriteria": ["Transferring"] } } ] } } } }, "responses": { "201": { "description": "Successful subscription", "content": { "application/json": { "schema": { "type": "object", "properties": { "userTrackingSubscription": { "$ref": "#/components/schemas/UserTrackingSubscription" } }, "examples": [ { "userTrackingSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "address": "acr:10.0.0.1", "userEventCriteria": ["Transferring"], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/sub123" } } ] } } } }, "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" } }, "callbacks": { "notification": { "{$request.body#/userTrackingSubscription.callbackReference.notifyURL}": { "post": { "summary": "Callback POST used to send a notification", "description": "Notification from Location service, content based on subscription type", "operationId": "userTrackingNotificationPOST", "requestBody": { "description": "Subscription notification", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "zonalPresenceNotification": { "$ref": "#/components/schemas/ZonalPresenceNotification" } }, "examples": [ { "zonalPresenceNotification": { "clientCorrelator": "0123", "zoneId": "zone01", "address": "acr:10.0.0.1", "userEventType": "Transferring", "currentAccessPointId": "ap2", "previousAccessPointId": "ap1", "timestamp": { "seconds": 1483231138, "nanoseconds": 0 }, "link": { "rel": "UserTrackingSubscription", "href": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/sub123" } } } ] } } } }, "responses": { "204": { "$ref": "#/components/responses/204" } } } } } }, "x-swagger-router-controller": "subscriptions" } }, "/subscriptions/userTracking/{subscriptionId}": { "get": { "tags": ["location"], "summary": "Retrieve subscription information", "description": "Get subscription information.", "operationId": "userTrackingSubGET", "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "responses": { "200": { "description": "Subscription information regarding subscription notifications", "content": { "application/json": { "schema": { "type": "object", "required": ["userTrackingSubscription"], "properties": { "userTrackingSubscription": { "$ref": "#/components/schemas/UserTrackingSubscription" } }, "examples": [ { "userTrackingSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "address": "acr:10.0.0.1", "userEventCriteria": ["Transferring"], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/sub123" } } ] } } } }, "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": "subscriptions" }, "put": { "tags": ["location"], "summary": "Updates a subscription information", "description": "Updates a subscription.", "operationId": "userTrackingSubPUT", "requestBody": { "description": "Subscription to be modified", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "userTrackingSubscription": { "$ref": "#/components/schemas/UserTrackingSubscription" } }, "examples": [ { "userTrackingSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "address": "acr:10.0.0.1", "userEventCriteria": ["Transferring"], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/sub123" } } ] } } } }, "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "responses": { "200": { "description": "Successful subscription to response to subscription notifications", "content": { "application/json": { "schema": { "type": "object", "properties": { "userTrackingSubscription": { "$ref": "#/components/schemas/UserTrackingSubscription" } }, "examples": [ { "userTrackingSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "address": "acr:10.0.0.1", "userEventCriteria": ["Transferring"], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/sub123" } } ] } } } }, "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" } }, "x-swagger-router-controller": "subscriptions" }, "delete": { "tags": ["location"], "summary": "Cancel a subscription", "description": "Method to delete a subscription.", "operationId": "userTrackingSubDELETE", "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "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" } }, "x-swagger-router-controller": "subscriptions" } }, "/subscriptions/zonalTraffic": { "get": { "tags": ["location"], "summary": "Retrieves all active subscriptions to zonal traffic notifications", "description": "This operation is used for retrieving all active subscriptions to zonal traffic change notifications.", "operationId": "zonalTrafficSubListGET", "responses": { "200": { "description": "Response to retrieve zonal traffic subscriptions", "content": { "application/json": { "schema": { "type": "object", "required": ["notificationSubscriptionList"], "properties": { "notificationSubscriptionList": { "$ref": "#/components/schemas/NotificationSubscriptionList" } }, "examples": [ { "notificationSubscriptionList": { "zonalTrafficSubscription": [ { "clientCorrelator": "0123", "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/subscription123", "callbackReference": { "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "zoneId": "zone01", "userEventCriteria": ["Transferring"] }, { "clientCorrelator": "0124", "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/subscription124", "callbackReference": { "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "zoneId": "zone02", "userEventCriteria": ["Transferring"] } ], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic" } } ] } } } } } }, "post": { "tags": ["location"], "summary": "Creates a subscription for zonal traffic notification", "description": "Creates a subscription to the Location Service for zonal traffic change notification.", "operationId": "zonalTrafficSubPOST", "requestBody": { "description": "Subscription to be created", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "zonalTrafficSubscription": { "$ref": "#/components/schemas/ZonalTrafficSubscription" } }, "examples": [ { "zonalTrafficSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "zoneId": "zone01", "userEventCriteria": ["Transferring"] } } ] } } } }, "responses": { "201": { "description": "Successful subscription", "content": { "application/json": { "schema": { "type": "object", "properties": { "zonalTrafficSubscription": { "$ref": "#/components/schemas/ZonalTrafficSubscription" } }, "examples": [ { "zonalTrafficSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "zoneId": "zone01", "userEventCriteria": ["Transferring"], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/sub123" } } ] } } } }, "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" } }, "callbacks": { "notification": { "{$request.body#/zonalTrafficSubscription.callbackReference.notifyURL}": { "post": { "summary": "Callback POST used to send a notification", "description": "Notification from Location service, content based on subscription type", "operationId": "zonalTrafficNotificationPOST", "requestBody": { "description": "Subscription notification", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "zonalPresenceNotification": { "$ref": "#/components/schemas/ZonalPresenceNotification" } }, "examples": [ { "zonalPresenceNotification": { "clientCorrelator": "0123", "zoneId": "zone01", "address": "acr:10.0.0.1", "userEventType": "Transferring", "currentAccessPointId": "ap2", "previousAccessPointId": "ap1", "timestamp": { "seconds": 1483231138, "nanoseconds": 0 }, "link": { "rel": "ZonalTrafficSubscription", "href": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/sub123" } } } ] } } } }, "responses": { "204": { "$ref": "#/components/responses/204" } } } } } }, "x-swagger-router-controller": "subscriptions" } }, "/subscriptions/zonalTraffic/{subscriptionId}": { "get": { "tags": ["location"], "summary": "Retrieve subscription information", "description": "Get subscription information.", "operationId": "zonalTrafficSubGET", "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "responses": { "200": { "description": "Subscription information regarding subscription notifications", "content": { "application/json": { "schema": { "type": "object", "required": ["zonalTrafficSubscription"], "properties": { "zonalTrafficSubscription": { "$ref": "#/components/schemas/ZonalTrafficSubscription" } }, "examples": [ { "zonalTrafficSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "zoneId": "zone01", "userEventCriteria": ["Transferring"], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/sub123" } } ] } } } }, "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": "subscriptions" }, "put": { "tags": ["location"], "summary": "Updates a subscription information", "description": "Updates a subscription.", "operationId": "zonalTrafficSubPUT", "requestBody": { "description": "Subscription to be modified", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "zonalTrafficSubscription": { "$ref": "#/components/schemas/ZonalTrafficSubscription" } }, "examples": [ { "zonalTrafficSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "zoneId": "zone01", "userEventCriteria": ["Transferring"], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/sub123" } } ] } } } }, "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "responses": { "200": { "description": "Successful subscription to response to subscription notifications", "content": { "application/json": { "schema": { "type": "object", "properties": { "zonalTrafficSubscription": { "$ref": "#/components/schemas/ZonalTrafficSubscription" } }, "examples": [ { "zonalTrafficSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "zoneId": "zone01", "userEventCriteria": ["Transferring"], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/sub123" } } ] } } } }, "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" } }, "x-swagger-router-controller": "subscriptions" }, "delete": { "tags": ["location"], "summary": "Cancel a subscription", "description": "Method to delete a subscription.", "operationId": "zonalTrafficSubDELETE", "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "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" } }, "x-swagger-router-controller": "subscriptions" } }, "/subscriptions/zoneStatus": { "get": { "tags": ["location"], "summary": "Retrieves all active subscriptions to zone status notifications", "description": "This operation is used for retrieving all active subscriptions to zone status change notifications.", "operationId": "zoneStatusSubListGET", "responses": { "200": { "description": "Response to retrieve zone status subscriptions", "content": { "application/json": { "schema": { "type": "object", "required": ["notificationSubscriptionList"], "properties": { "notificationSubscriptionList": { "$ref": "#/components/schemas/NotificationSubscriptionList" } }, "examples": [ { "notificationSubscriptionList": { "zoneStatusSubscription": [ { "clientCorrelator": "0123", "resourceURL": "http://example.com/exampleAPI/location/v2/subscriptions/zoneStatus/subscription123", "callbackReference": { "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, "zoneId": "zone01", "numberOfUsersZoneThreshold": 500, "operationStatus": ["Serviceable"] } ], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zoneStatus" } } ] } } } } } }, "post": { "tags": ["location"], "summary": "Creates a subscription for zone status notification", "description": "Creates a subscription to the Location Service for zone status change notification.", "operationId": "zoneStatusSubPOST", "requestBody": { "description": "Subscription to be created", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "zoneStatusSubscription": { "$ref": "#/components/schemas/ZoneStatusSubscription" } }, "examples": [ { "zoneStatusSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "zoneId": "zone01", "numberOfUsersZoneThreshold": 500, "operationStatus": ["Serviceable"] } } ] } } } }, "responses": { "201": { "description": "Successful subscription", "content": { "application/json": { "schema": { "type": "object", "properties": { "zoneStatusSubscription": { "$ref": "#/components/schemas/ZoneStatusSubscription" } }, "examples": [ { "zoneStatusSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "zoneId": "zone01", "numberOfUsersZoneThreshold": 500, "operationStatus": ["Serviceable"], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zoneStatus/sub123" } } ] } } } }, "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" } }, "callbacks": { "notification": { "{$request.body#/zoneStatusSubscription.callbackReference.notifyURL}": { "post": { "summary": "Callback POST used to send a notification", "description": "Notification from Location service, content based on subscription type", "operationId": "zoneStatusNotificationPOST", "requestBody": { "description": "Subscription notification", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "zoneStatusNotification": { "$ref": "#/components/schemas/ZoneStatusNotification" } }, "examples": [ { "zoneStatusNotification": { "clientCorrelator": "0123", "zoneId": "zone01", "accessPointId": "poa1", "operationStatus": "Serviceable", "numberOfUsersInZone": "20", "numberOfUsersInAP": "12", "timestamp": { "seconds": 1483231138, "nanoseconds": 0 }, "link": { "rel": "ZoneStatusSubscription", "href": "http://meAppServer.example.com/location/v2/subscriptions/zoneStatus/sub123" } } } ] } } } }, "responses": { "204": { "$ref": "#/components/responses/204" } } } } } }, "x-swagger-router-controller": "subscriptions" } }, "/subscriptions/zoneStatus/{subscriptionId}": { "get": { "tags": ["location"], "summary": "Retrieve subscription information", "description": "Get subscription information.", "operationId": "zoneStatusSubGET", "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "responses": { "200": { "description": "Subscription information regarding subscription notifications", "content": { "application/json": { "schema": { "type": "object", "required": ["zoneStatusSubscription"], "properties": { "zoneStatusSubscription": { "$ref": "#/components/schemas/ZoneStatusSubscription" } }, "examples": [ { "zoneStatusSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "zoneId": "zone01", "numberOfUsersZoneThreshold": 500, "operationStatus": ["Serviceable"], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zoneStatus/sub123" } } ] } } } }, "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": "subscriptions" }, "put": { "tags": ["location"], "summary": "Updates a subscription information", "description": "Updates a subscription.", "operationId": "zoneStatusSubPUT", "requestBody": { "description": "Subscription to be modified", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "zoneStatusSubscription": { "$ref": "#/components/schemas/ZoneStatusSubscription" } }, "examples": [ { "zoneStatusSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "zoneId": "zone01", "numberOfUsersZoneThreshold": 500, "operationStatus": ["Serviceable"], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zoneStatus/sub123" } } ] } } } }, "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "responses": { "200": { "description": "Successful subscription to response to subscription notifications", "content": { "application/json": { "schema": { "type": "object", "properties": { "zoneStatusSubscription": { "$ref": "#/components/schemas/ZoneStatusSubscription" } }, "examples": [ { "zoneStatusSubscription": { "clientCorrelator": "0123", "callbackReference": { "notifyURL": "http://my.callback.com/location_notifications/some-id" }, "zoneId": "zone01", "numberOfUsersZoneThreshold": 500, "operationStatus": ["Serviceable"], "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zoneStatus/sub123" } } ] } } } }, "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" } }, "x-swagger-router-controller": "subscriptions" }, "delete": { "tags": ["location"], "summary": "Cancel a subscription", "description": "Method to delete a subscription.", "operationId": "zoneStatusSubDELETE", "parameters": [ { "$ref": "#/components/parameters/Path.SubscrId" } ], "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" } }, "x-swagger-router-controller": "subscriptions" } } }, "components": { "responses": { "200": { "description": "OK" }, "204": { "description": "No Content" }, "400": { "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized : used when the client did not submit credentials.", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden : operation is not allowed given the current status of the resource.", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "406": { "description": "Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "412": { "description": "Precondition failed : used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "414": { "description": "URI Too Long : used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process.", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "415": { "description": "Unsupported Media Type : used to indicate that the server or the client does not support the content type of the entity body.", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "422": { "description": "Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests : used when a rate limiter has triggered.", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "parameters": { "Path.AccessPointId": { "name": "accessPointId", "in": "path", "description": "Identifier of access Point", "required": true, "schema": { "type": "string" }, "x-exportParamName": "AccessPointId" }, "Path.SubscrId": { "name": "subscriptionId", "in": "path", "description": "Subscription Identifier, specifically the \"self\" returned in the subscription request", "required": true, "schema": { "type": "string", "format": "uri" }, "x-exportParamName": "SubscriptionId" }, "Path.ZoneId": { "name": "zoneId", "in": "path", "description": "Indentifier of zone", "required": true, "schema": { "type": "string" }, "x-exportParamName": "ZoneId" }, "Query.AccessPointId": { "name": "accessPointId", "in": "query", "description": "Identifier of access point", "required": false, "schema": { "type": "array", "items": { "type": "string" } }, "x-exportParamName": "AccessPointId" }, "Query.Address": { "name": "address", "in": "query", "description": "address of users (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)", "required": false, "schema": { "type": "array", "items": { "type": "string" } }, "x-exportParamName": "Address" }, "Query.AddressMandatory": { "name": "address", "in": "query", "description": "address of users (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)", "required": true, "schema": { "type": "array", "items": { "type": "string" } }, "x-exportParamName": "AddressMandatory" }, "Query.InterestRealm": { "name": "interestRealm", "in": "query", "description": "Interest realm of access point (e.g. geographical area, a type of industry etc.).", "required": false, "schema": { "type": "string" }, "x-exportParamName": "InterestRealm" }, "Query.Latitude": { "name": "latitude", "in": "query", "description": "Latitude geo position", "required": false, "schema": { "type": "number", "format": "float" }, "x-exportParamName": "Latitude" }, "Query.Longitude": { "name": "longitude", "in": "query", "description": "Longitude geo position", "required": false, "schema": { "type": "number", "format": "float" }, "x-exportParamName": "Longitude" }, "Query.Requester": { "name": "requester", "in": "query", "description": "Entity that is requesting the information", "required": false, "schema": { "type": "string" }, "x-exportParamName": "Requester" }, "Query.ZoneId": { "name": "zoneId", "in": "query", "description": "Identifier of zone", "required": false, "schema": { "type": "array", "items": { "type": "string" } }, "x-exportParamName": "ZoneId" } }, "schemas": { "AccessPointInfo": { "description": "A type containing access point information.", "properties": { "accessPointId": { "description": "Identifier of access point.", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "string" }, "connectionType": { "$ref": "#/components/schemas/ConnectionType" }, "interestRealm": { "description": "Interest realm of access point.", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "locationInfo": { "$ref": "#/components/schemas/LocationInfo" }, "numberOfUsers": { "description": "Number of users currently on the access point.", "type": "integer", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "integer" }, "operationStatus": { "$ref": "#/components/schemas/OperationStatus" }, "resourceURL": { "description": "Self referring URL", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "anyURI" }, "timezone": { "description": "Time zone of access point.", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "dateTimeStamp" } }, "required": [ "accessPointId", "connectionType", "operationStatus", "numberOfUsers", "resourceURL" ], "type": "object" }, "AccessPointList": { "description": "A type containing list of access points.", "properties": { "accessPoint": { "description": "Collection of the access point information list.", "items": { "$ref": "#/components/schemas/AccessPointInfo" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "AccessPointInfo" }, "resourceURL": { "description": "Self referring URL", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "anyURI" }, "zoneId": { "description": "Identifier of zone", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "string" } }, "required": ["zoneId", "resourceURL"], "type": "object" }, "CallbackReference": { "properties": { "callbackData": { "description": "Data the application can register with the server when subscribing to notifications, and that are passed back unchanged in each of the related notifications. These data can be used by the application in the processing of the notification, e.g. for correlation purposes.", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "notificationFormat": { "$ref": "#/components/schemas/NotificationFormat" }, "notifyURL": { "description": "Notify Callback URL", "type": "string", "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "anyURI" } }, "required": ["notifyURL"], "type": "object" }, "CircleNotificationSubscription": { "description": "A type containing data for notifications, when the area is defined as a circle.", "properties": { "address": { "description": "Address of terminals to monitor (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)", "items": { "type": "string" }, "type": "array", "x-etsi-mec-cardinality": "1..N", "x-etsi-mec-origin-type": "anyURI" }, "callbackReference": { "$ref": "#/components/schemas/CallbackReference" }, "checkImmediate": { "description": "Check location immediately after establishing notification.", "type": "boolean", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "boolean" }, "clientCorrelator": { "description": "A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server.", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "count": { "description": "Maximum number of notifications per individual address. For no maximum, either do not include this element or specify a value of zero. Default value is 0.", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "int" }, "duration": { "description": "Period of time (in seconds) notifications are provided for. If set to “0” (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications.", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "int" }, "enteringLeavingCriteria": { "$ref": "#/components/schemas/EnteringLeavingCriteria" }, "frequency": { "description": "Maximum frequency (in seconds) of notifications per subscription (can also be considered minimum time between notifications).", "type": "integer", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "int" }, "latitude": { "description": "Latitude of center point.", "format": "float", "type": "number", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "float" }, "link": { "description": "Link to other resources that are in relationship with the resource.", "items": { "$ref": "#/components/schemas/Link" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "Link" }, "longitude": { "description": "Longitude of center point.", "format": "float", "type": "number", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "float" }, "radius": { "description": "Radius circle around center point in meters.", "format": "float", "type": "number", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "float" }, "requester": { "description": "Identifies the entity that is requesting the information (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "anyURI" }, "resourceURL": { "description": "Self referring URL", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "anyURI" }, "trackingAccuracy": { "description": "Number of meters of acceptable error in tracking distance.", "format": "float", "type": "number", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "float" } }, "required": [ "callbackReference", "address", "latitude", "longitude", "radius", "trackingAccuracy", "enteringLeavingCriteria", "checkImmediate", "frequency" ], "type": "object" }, "ConnectionType": { "description": "The connection type for the access point", "enum": [ "Femto", "LTE-femto", "Smallcell", "LTE-smallcell", "Wifi", "Pico", "Micro", "Macro", "Wimax", "Unknown" ], "type": "string" }, "DistanceCriteria": { "enum": [ "AllWithinDistance", "AnyWithinDistance", "AllBeyondDistance", "AnyBeyondDistance" ], "type": "string" }, "DistanceNotificationSubscription": { "description": "A type containing data for distance subscription, with reference to other devices.", "properties": { "callbackReference": { "$ref": "#/components/schemas/CallbackReference" }, "checkImmediate": { "description": "Check location immediately after establishing notification.", "type": "boolean", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "boolean" }, "clientCorrelator": { "description": "A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server.", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "count": { "description": "Maximum number of notifications per individual address. For no maximum, either do not include this element or specify a value of zero. Default value is 0.", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "int" }, "criteria": { "$ref": "#/components/schemas/DistanceCriteria" }, "distance": { "description": "Distance between devices that shall be monitored.", "format": "float", "type": "number", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "float" }, "duration": { "description": "Period of time (in seconds) notifications are provided for. If set to “0” (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications.", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "int" }, "frequency": { "description": "Maximum frequency (in seconds) of notifications per subscription (can also be considered minimum time between notifications).", "type": "integer", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "int" }, "link": { "description": "Link to other resources that are in relationship with the resource.", "items": { "$ref": "#/components/schemas/Link" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "Link" }, "monitoredAddress": { "description": "Contains addresses of devices to monitor (e.g., 'sip' URI, 'tel' URI, 'acr' URI)", "items": { "type": "string" }, "type": "array", "x-etsi-mec-cardinality": "1..N", "x-etsi-mec-origin-type": "anyURI" }, "referenceAddress": { "description": "Indicates address of each device that will be used as reference devices from which the distances towards monitored devices indicated in the Addresses will be monitored (e.g., 'sip' URI, 'tel' URI, 'acr' URI)", "items": { "type": "string" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "anyURI" }, "requester": { "description": "Identifies the entity that is requesting the information (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "anyURI" }, "resourceURL": { "description": "Self referring URL", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "anyURI" }, "trackingAccuracy": { "description": "Number of meters of acceptable error in tracking distance.", "format": "float", "type": "number", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "float" } }, "required": [ "callbackReference", "monitoredAddress", "distance", "trackingAccuracy", "criteria", "checkImmediate", "frequency" ], "type": "object" }, "EnteringLeavingCriteria": { "enum": ["Entering", "Leaving"], "type": "string" }, "Link": { "description": "Link to other resources", "properties": { "href": { "description": "URI", "format": "anyURI", "type": "string" }, "rel": { "description": "Describes the relationship between the URI and the resource.", "type": "string" } }, "required": ["rel", "href"], "type": "object" }, "LocationInfo": { "properties": { "accuracy": { "description": "Horizontal accuracy / (semi-major) uncertainty of location provided in meters, as defined in ETSI TS 123 032 [14]. Present only if \"shape\" equals 4, 5 or 6", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "UnsignedInt" }, "accuracyAltitude": { "description": "Altitude accuracy / uncertainty of location provided in meters, as defined in ETSI TS 123 032 [14]. Present only if \"shape\" equals 3 or 4", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "UnsignedInt" }, "accuracySemiMinor": { "description": "Horizontal accuracy / (semi-major) uncertainty of location provided in meters, as defined in ETSI TS 123 032 [14]. Present only if \"shape\" equals 4, 5 or 6", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "UnsignedInt" }, "altitude": { "description": "Location altitude relative to the WGS84 ellipsoid surface.", "format": "float", "type": "number", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "Float" }, "confidence": { "description": "Confidence by which the position of a target entity is known to be within the shape description, expressed as a percentage and defined in ETSI TS 123 032 [14]. Present only if \"shape\" equals 1, 4 or 6", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "UnsignedInt" }, "includedAngle": { "description": "Present only if \"shape\" equals 6", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "UnsignedInt" }, "innerRadius": { "description": "Present only if \"shape\" equals 6", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "UnsignedInt" }, "latitude": { "description": "Location latitude, expressed in the range -90° to +90°. Cardinality greater than one only if \"shape\" equals 7.", "items": { "format": "float", "type": "number" }, "minItems": 1, "type": "array", "x-etsi-mec-cardinality": "1..N", "x-etsi-mec-origin-type": "Float" }, "longitude": { "description": "Location longitude, expressed in the range -180° to +180°. Cardinality greater than one only if \"shape\" equals 7.", "items": { "format": "float", "type": "number" }, "minItems": 1, "type": "array", "x-etsi-mec-cardinality": "1..N", "x-etsi-mec-origin-type": "Float" }, "offsetAngle": { "description": "Present only if \"shape\" equals 6", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "UnsignedInt" }, "orientationMajorAxis": { "description": "Angle of orientation of the major axis, expressed in the range 0° to 180°, as defined in ETSI TS 123 032 [14]. Present only if \"shape\" equals 4 or 6", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "UnsignedInt" }, "shape": { "description": "Shape information, as detailed in ETSI TS 123 032 [14], associated with the reported location coordinate:

1 = ELLIPSOID_ARC

2 = ELLIPSOID_POINT

3 = ELLIPSOID_POINT_ALTITUDE

4 = ELLIPSOID_POINT_ALTITUDE_UNCERT_ELLIPSOID

5 = ELLIPSOID_POINT_UNCERT_CIRCLE

6 = ELLIPSOID_POINT_UNCERT_ELLIPSE

7 = POLYGON", "type": "integer", "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "Enum_inlined" }, "timestamp": { "$ref": "#/components/schemas/TimeStamp" }, "uncertaintyRadius": { "description": "Present only if \"shape\" equals 6", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "UnsignedInt" }, "velocity": { "description": "Structure with attributes relating to the target entity’s velocity, as defined in ETSI TS 123 032 [14].", "properties": { "bearing": { "description": "Bearing, expressed in the range 0° to 360°, as defined in ETSI TS 123 032 [14].", "type": "integer", "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "UnsignedInt" }, "horizontalSpeed": { "description": "Horizontal speed, expressed in km/h and defined in ETSI TS 123 032 [14].", "type": "integer", "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "UnsignedInt" }, "uncertainty": { "description": "Horizontal uncertainty, as defined in ETSI TS 123 032 [14]. Present only if \"velocityType\" equals 3 or 4", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "UnsignedInt" }, "velocityType": { "description": "Velocity information, as detailed in ETSI TS 123 032 [14], associated with the reported location coordinate:

1 = HORIZONTAL

2 = HORIZONTAL_VERTICAL

3 = HORIZONTAL_UNCERT

4 = HORIZONTAL_VERTICAL_UNCERT", "type": "integer", "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "Enum_inlined" }, "verticalSpeed": { "description": "Vertical speed, expressed in km/h and defined in ETSI TS 123 032 [14]. Present only if \"velocityType\" equals 2 or 4", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "Int" }, "verticalUncertainty": { "description": "Vertical uncertainty, as defined in ETSI TS 123 032 [14]. Present only if \"velocityType\" equals 4", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "UnsignedInt" } }, "required": ["velocityType", "bearing", "horizontalSpeed"], "type": "object", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "Structure (inlined)" } }, "required": ["latitude", "longitude", "shape"], "type": "object", "x-etsi-ref": "6.5.3" }, "NotificationFormat": { "enum": ["XML", "JSON"], "type": "string" }, "NotificationSubscriptionList": { "properties": { "circleNotificationSubscription": { "description": "Collection of CircleNotificationSubscription elements, see note 2.", "items": { "$ref": "#/components/schemas/CircleNotificationSubscription" }, "minItems": 0, "type": "array", "x-etsi-mec-cardinality": "0.. N", "x-etsi-mec-origin-type": "CircleNotificationSubscription" }, "distanceNotificationSubscription": { "description": "Collection of DistanceNotificationSubscription elements, see note 2.", "items": { "$ref": "#/components/schemas/DistanceNotificationSubscription" }, "minItems": 0, "type": "array", "x-etsi-mec-cardinality": "0.. N", "x-etsi-mec-origin-type": "DistanceNotificationSubscription" }, "periodicNotificationSubscription": { "description": "Collection of PeriodicNotificationSubscription elements, see note 2.", "items": { "$ref": "#/components/schemas/PeriodicNotificationSubscription" }, "minItems": 0, "type": "array", "x-etsi-mec-cardinality": "0.. N", "x-etsi-mec-origin-type": "PeriodicNotificationSubscription" }, "resourceURL": { "description": "Self-referring URL, see note 1.", "format": "uri", "type": "string", "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "AnyURI" }, "userTrackingSubscription": { "description": "Collection of UserTrackingSubscription elements, see note 1.", "items": { "$ref": "#/components/schemas/UserTrackingSubscription" }, "minItems": 0, "type": "array", "x-etsi-mec-cardinality": "0.. N", "x-etsi-mec-origin-type": "UserTrackingSubscription" }, "zonalTrafficSubscription": { "description": "Collection of ZonalTrafficSubscription elements, see note 1.", "items": { "$ref": "#/components/schemas/ZonalTrafficSubscription" }, "minItems": 0, "type": "array", "x-etsi-mec-cardinality": "0.. N", "x-etsi-mec-origin-type": "ZonalTrafficSubscription" }, "zoneStatusSubscription": { "description": "Collection of ZoneStatusSubscription elements, see note 1.", "items": { "$ref": "#/components/schemas/ZoneStatusSubscription" }, "minItems": 0, "type": "array", "x-etsi-mec-cardinality": "0.. N", "x-etsi-mec-origin-type": "ZoneStatusSubscription" } }, "required": ["resourceURL"], "type": "object", "x-etsi-notes": "NOTE 1:\tAs specified in [5], clause 5.2.2.8.\nNOTE 2: \tAs specified in [6], clause 5.2.2.7.", "x-etsi-ref": "6.3.3" }, "OperationStatus": { "enum": ["Serviceable", "Unserviceable", "Unknown"], "type": "string" }, "PeriodicNotificationSubscription": { "description": "A type containing data for periodic subscription.", "properties": { "address": { "description": "Address of terminals to monitor (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)", "items": { "type": "string" }, "type": "array", "x-etsi-mec-cardinality": "1..N", "x-etsi-mec-origin-type": "anyURI" }, "callbackReference": { "$ref": "#/components/schemas/CallbackReference" }, "clientCorrelator": { "description": "A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server.", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "duration": { "description": "Period of time (in seconds) notifications are provided for. If set to “0” (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications.", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "int" }, "frequency": { "description": "Maximum frequency (in seconds) of notifications (can also be considered minimum time between notifications) per subscription.", "type": "integer", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "int" }, "link": { "description": "Link to other resources that are in relationship with the resource.", "items": { "$ref": "#/components/schemas/Link" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "Link" }, "requestedAccuracy": { "description": "Accuracy of the provided distance in meters.", "type": "integer", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "int" }, "requester": { "description": "Identifies the entity that is requesting the information (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "anyURI" }, "resourceURL": { "description": "Self referring URL", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "anyURI" } }, "required": [ "callbackReference", "address", "requestedAccuracy", "frequency" ], "type": "object" }, "ProblemDetails": { "properties": { "detail": { "description": "A human-readable explanation specific to this occurrence of the problem", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "String" }, "instance": { "description": "A URI reference that identifies the specific occurrence of the problem", "format": "uri", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "URI" }, "status": { "description": "The HTTP status code for this occurrence of the problem", "format": "uint32", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "Uint32" }, "title": { "description": "A short, human-readable summary of the problem type", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "String" }, "type": { "description": "A URI reference according to IETF RFC 3986 that identifies the problem type", "format": "uri", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "URI" } }, "type": "object" }, "RetrievalStatus": { "enum": ["Retrieved", "NotRetrieved", "Error"], "type": "string" }, "ServiceError": { "description": "used to indicate a notification termination or cancellation.", "properties": { "messageId": { "description": "Message identifier, either with prefix SVC or with prefix POL", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "string" }, "text": { "description": "Message text, with replacement variables marked with %n, where n is an index into the list of elements, starting at 1", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "string" }, "variables": { "description": "Variables to substitute into text string", "items": { "type": "string" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "string" } }, "required": ["messageId", "text"], "type": "object" }, "SubscriptionNotification": { "description": "A type containing the notification subscription.", "properties": { "callbackData": { "description": "CallbackData if passed by the application in the receiptRequest element during the associated subscription operation", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "distanceCriteria": { "$ref": "#/components/schemas/DistanceCriteria" }, "enteringLeavingCriteria": { "$ref": "#/components/schemas/EnteringLeavingCriteria" }, "isFinalNotification": { "description": "Set to true if it is a final notification about location change.", "type": "boolean", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "boolean" }, "link": { "description": "Link to other resources that are in relationship with the resource.", "items": { "$ref": "#/components/schemas/Link" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "Link" }, "terminalLocation": { "description": "Collection of the terminal locations.", "items": { "$ref": "#/components/schemas/TerminalLocation" }, "type": "array", "x-etsi-mec-cardinality": "1..N", "x-etsi-mec-origin-type": "TerminalLocation" } }, "required": ["terminalLocation"], "type": "object" }, "TerminalDistance": { "description": "A type containing information about the distance from a terminal to a location or between two terminals, in addition the accuracy and a timestamp of the information are provided.", "properties": { "accuracy": { "description": "Accuracy of the provided distance in meters", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "integer" }, "distance": { "description": "Distance from terminal to a location or between two terminals specified in meters", "type": "integer", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "integer" }, "timestamp": { "$ref": "#/components/schemas/TimeStamp" } }, "required": ["distance"], "type": "object" }, "TerminalLocation": { "description": "A type containing device address, retrieval status and location information.", "properties": { "address": { "description": "Address of the terminal to which the location information applies (e.g., 'sip' URI, 'tel' URI, 'acr' URI).", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "anyURI" }, "currentLocation": { "$ref": "#/components/schemas/LocationInfo" }, "errorInformation": { "$ref": "#/components/schemas/ServiceError" }, "locationRetrievalStatus": { "$ref": "#/components/schemas/RetrievalStatus" } }, "required": ["address", "locationRetrievalStatus"], "type": "object" }, "TimeStamp": { "properties": { "nanoSeconds": { "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", "format": "uint32", "type": "integer", "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "Uint32" }, "seconds": { "description": "The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", "format": "uint32", "type": "integer", "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "Uint32" } }, "required": ["seconds", "nanoSeconds"], "type": "object", "x-etsi-ref": "6.5.2" }, "UserEventType": { "enum": ["Entering", "Leaving", "Transferring"], "type": "string" }, "UserInfo": { "properties": { "accessPointId": { "description": "The identity of the access point the user is currently on, see note 1.", "type": "string", "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "String" }, "address": { "description": "Address of user (e.g. 'sip' URI, 'tel' URI, 'acr' URI) currently on the access point, see note 1.", "format": "uri", "type": "string", "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "AnyURI" }, "ancillaryInfo": { "description": "Reserved for future use.", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "String" }, "contextLocationInfo": { "description": "Contextual information of a user location (e.g. aisle, floor, room number, etc.).", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "String" }, "locationInfo": { "$ref": "#/components/schemas/LocationInfo" }, "resourceURL": { "description": "Self-referring URL, see note 1.", "type": "string", "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "AnyURI" }, "timestamp": { "$ref": "#/components/schemas/TimeStamp" }, "zoneId": { "description": "The identity of the zone the user is currently within, see note 1.", "type": "string", "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "String" } }, "required": [ "address", "accessPointId", "zoneId", "resourceURL", "timestamp" ], "type": "object", "x-etsi-notes": "NOTE 1:\tAs specified in [5], clause 5.2.2.7.\nNOTE 2: \tAs specified in [5], clause 5.2.2.5.", "x-etsi-ref": "6.2.2" }, "UserList": { "description": "A type containing list of users.", "properties": { "resourceURL": { "description": "Self referring URL", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "anyURI" }, "user": { "description": "Collection of the zone information list.", "items": { "$ref": "#/components/schemas/UserInfo" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "UserInfo" } }, "required": ["resourceURL"], "type": "object" }, "UserTrackingSubscription": { "description": "A type containing user tracking subscription.", "properties": { "address": { "description": "Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI) to monitor", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "anyURI" }, "callbackReference": { "$ref": "#/components/schemas/CallbackReference" }, "clientCorrelator": { "description": "A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server.", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "resourceURL": { "description": "Self referring URL", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "anyURI" }, "userEventCriteria": { "description": "List of user event values to generate notifications for (these apply to address specified). If this element is missing, a notification is requested to be generated for any change in user event.", "items": { "$ref": "#/components/schemas/UserEventType" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "UserEventType" } }, "required": ["callbackReference", "address"], "type": "object" }, "ZonalPresenceNotification": { "description": "A type containing zonal presence notification", "properties": { "address": { "description": "Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI) to monitor", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "anyURI" }, "callbackData": { "description": "CallBackData if passed by the application during the associated ZonalTrafficSubscription and UserTrackingSubscription operation. See [REST_NetAPI_Common].", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "currentAccessPointId": { "description": "Identifier of access point.", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "string" }, "interestRealm": { "description": "Interest realm of access point (e.g. geographical area, a type of industry etc.).", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "link": { "description": "Link to other resources that are in relationship with this notification. The server SHOULD include a link to the related subscription. No other links are required or suggested by this specification", "items": { "$ref": "#/components/schemas/Link" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "Link" }, "previousAccessPointId": { "description": "Identifier of access point.", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "timestamp": { "$ref": "#/components/schemas/TimeStamp" }, "userEventType": { "$ref": "#/components/schemas/UserEventType" }, "zoneId": { "description": "Identifier of zone", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "string" } }, "required": [ "zoneId", "address", "userEventType", "currentAccessPointId", "timestamp" ], "type": "object" }, "ZonalTrafficSubscription": { "description": "A type containing zonal traffic subscription", "properties": { "callbackReference": { "$ref": "#/components/schemas/CallbackReference" }, "clientCorrelator": { "description": "A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server.", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "duration": { "description": "Period (in seconds) of time notifications are provided for. If set to \"0\" (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications. This element MAY be given by the client during resource creation in order to signal the desired lifetime of the subscription. The server MUST return in this element the period of time for which the subscription will still be valid.", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "unsignedInt" }, "interestRealm": { "description": "Interest realm of access point (e.g. geographical area, a type of industry etc.).", "items": { "type": "string" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "string" }, "resourceURL": { "description": "Self referring URL", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "anyURI" }, "userEventCriteria": { "description": "List of user event values to generate notifications for (these apply to zone identifier or all interest realms within zone identifier specified). If this element is missing, a notification is requested to be generated for any change in user event.", "items": { "$ref": "#/components/schemas/UserEventType" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "UserEventType" }, "zoneId": { "description": "Identifier of zone", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "string" } }, "required": ["callbackReference", "zoneId"], "type": "object" }, "ZoneInfo": { "description": "A type containing zone information.", "properties": { "numberOfAccessPoints": { "description": "The number of access points within the zone", "type": "integer", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "unsignedInt" }, "numberOfUnserviceableAccessPoints": { "description": "Number of inoperable access points within the zone.", "type": "integer", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "unsignedInt" }, "numberOfUsers": { "description": "The number of users currently on the access point.", "type": "integer", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "unsignedInt" }, "resourceURL": { "description": "Self referring URL", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "anyURI" }, "zoneId": { "description": "Identifier of zone", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "string" } }, "required": [ "zoneId", "numberOfAccessPoints", "numberOfUnserviceableAccessPoints", "numberOfUsers", "resourceURL" ], "type": "object" }, "ZoneList": { "description": "A type containing a list of zones.", "properties": { "resourceURL": { "description": "Self referring URL", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "anyURI" }, "zone": { "description": "Collection of the zone information list.", "items": { "$ref": "#/components/schemas/ZoneInfo" }, "type": "array" } }, "required": ["resourceURL"], "type": "object" }, "ZoneStatusNotification": { "description": "A type containing zone status notification.", "properties": { "accessPointId": { "description": "Identifier of an access point.", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "callbackData": { "description": "CallBackData if passed by the application during the associated ZoneStatusSubscription operation. See [REST_NetAPI_Common].", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "link": { "description": "Link to other resources that are in relationship with this notification. The server SHOULD include a link to the related subscription. No other links are required or suggested by this specification", "items": { "$ref": "#/components/schemas/Link" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "Link" }, "numberOfUsersInAP": { "description": "This element shall be present when ZoneStatusSubscription includes numberOfUsersAPThreshold element and the number of users in an access point exceeds the threshold defined in the subscription.", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "unsignedInt" }, "numberOfUsersInZone": { "description": "This element shall be present when ZoneStatusSubscription includes numberOfUsersZoneThreshold element and the number of users in a zone exceeds the threshold defined in this subscription.", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "unsignedInt" }, "operationStatus": { "$ref": "#/components/schemas/OperationStatus" }, "timestamp": { "$ref": "#/components/schemas/TimeStamp" }, "zoneId": { "description": "Identifier of zone", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "string" } }, "required": ["zoneId", "timestamp"], "type": "object" }, "ZoneStatusSubscription": { "description": "A type containing zone status subscription.", "properties": { "callbackReference": { "$ref": "#/components/schemas/CallbackReference" }, "clientCorrelator": { "description": "A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server.", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "string" }, "numberOfUsersAPThreshold": { "description": "Threshold number of users in an access point which if crossed shall cause a notification", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "unsignedInt" }, "numberOfUsersZoneThreshold": { "description": "Threshold number of users in a zone which if crossed shall cause a notification", "type": "integer", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "unsignedInt" }, "operationStatus": { "description": "List of operation status values to generate notifications for (these apply to all access points within a zone).", "items": { "$ref": "#/components/schemas/OperationStatus" }, "type": "array", "x-etsi-mec-cardinality": "0..N", "x-etsi-mec-origin-type": "OperationStatus" }, "resourceURL": { "description": "Self referring URL", "type": "string", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "anyURI" }, "zoneId": { "description": "Identifier of zone", "type": "string", "x-etsi-mec-cardinality": 1, "x-etsi-mec-origin-type": "string" } }, "required": ["callbackReference", "zoneId"], "type": "object" } } } }