Skip to content
LocationAPI.yaml 119 KiB
Newer Older
openapi: 3.1.0
Michel Roy's avatar
Michel Roy committed
info:
Michel Roy's avatar
Michel Roy committed
  contact:
    url: https://forge.etsi.org/rep/mec/gs013-location-api
Michel Roy's avatar
Michel Roy committed
  title: ETSI GS MEC 013 - Location API
  version: 2.1.1
Michel Roy's avatar
Michel Roy committed
  description: The ETSI MEC ISG MEC013 Location API described using OpenAPI.
Michel Roy's avatar
Michel Roy committed
  license:
    name: BSD-3-Clause
    url: 'https://forge.etsi.org/legal-matters'
externalDocs:
  description: ETSI MEC013 V2.1.1 Location API
  url: 'http://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf'
servers:
Michel Roy's avatar
Michel Roy committed
  - url: 'https://localhost/location/v2'
tags:
- name: 'location'
Michel Roy's avatar
Michel Roy committed
paths:
  /queries/distance:
    get:
      tags:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
      tags:
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
        - 'location'
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
        - 'location'
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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'
Michel Roy's avatar
Michel Roy committed
    post:
      tags:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
                    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'
Michel Roy's avatar
Michel Roy committed
        '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:
Michel Roy's avatar
Michel Roy committed
              summary: 'Callback POST used to send a notification'
              description: 'Notification from Location service, content based on subscription type'
              operationId: circleNotificationPOST
              requestBody:
Michel Roy's avatar
Michel Roy committed
                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.0
                                latitude: -80.86302
                                longitude: 41.277306
                                timestamp:
                                  seconds: 1483231138
                                  nanoSeconds": 0
                              locationRetrievalStatus: 'Retrieved'
Michel Roy's avatar
Michel Roy committed
              responses:
                '204':
                  $ref: '#/components/responses/204'
      x-swagger-router-controller: 'subscriptions'
  /subscriptions/area/circle/{subscriptionId}:
    get:
      tags:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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'
Michel Roy's avatar
Michel Roy committed
        '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:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
                    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'
Michel Roy's avatar
Michel Roy committed
        '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:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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'
Michel Roy's avatar
Michel Roy committed
    post:
      tags:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
                    clientCorrelator: '0123'
                    callbackReference:
                      callbackData: '1234'
                      notifyURL: 'http://clientApp.example.com/location_notifications/123456'
Michel Roy's avatar
Michel Roy committed
                    monitoredAddress:
Michel Roy's avatar
Michel Roy committed
                    - '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'
Michel Roy's avatar
Michel Roy committed
        '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:
Michel Roy's avatar
Michel Roy committed
              summary: 'Callback POST used to send a notification'
              description: 'Notification from Location service, content based on subscription type'
              operationId: distanceNotificationPOST
              requestBody:
Michel Roy's avatar
Michel Roy committed
                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.0
                                  latitude: -80.86302
                                  longitude: 41.277306
                                  timestamp:
                                    seconds: 1483231138
                                    nanoSeconds": 0
                                locationRetrievalStatus: 'Retrieved'
                              - address: 'acr:10.0.0.2'
                                currentLocation:
                                  accuracy: 100
                                  altitude: 1001.0
                                  latitude: -80.86301
                                  longitude: 41.277306
                                  timestamp:
                                    seconds: 1483231138
                                    nanoSeconds": 0
                                locationRetrievalStatus: 'Retrieved'
Michel Roy's avatar
Michel Roy committed
              responses:
                '204':
                  $ref: '#/components/responses/204'
      x-swagger-router-controller: "subscriptions"
  /subscriptions/distance/{subscriptionId}:
    get:
      tags:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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'
Michel Roy's avatar
Michel Roy committed
        '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:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
                    clientCorrelator: '0123'
                    callbackReference:
                      callbackData: '1234'
                      notifyURL: 'http://clientApp.example.com/location_notifications/123456'
Michel Roy's avatar
Michel Roy committed
                    monitoredAddress:
Michel Roy's avatar
Michel Roy committed
                    - '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'
Michel Roy's avatar
Michel Roy committed
        '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:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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'
Michel Roy's avatar
Michel Roy committed
    post:
      tags:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
      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'
Michel Roy's avatar
Michel Roy committed
        '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:
Michel Roy's avatar
Michel Roy committed
              summary: 'Callback POST used to send a notification'
              description: 'Notification from Location service, content based on subscription type'
              operationId: periodicNotificationPOST
              requestBody:
Michel Roy's avatar
Michel Roy committed
                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.0
                                latitude: -80.86302
                                longitude: 41.277306
                                timestamp:
                                  seconds: 1483231138
                                  nanoSeconds": 0
                              locationRetrievalStatus: 'Retrieved'
Michel Roy's avatar
Michel Roy committed
              responses:
                '204':
                  $ref: '#/components/responses/204'
      x-swagger-router-controller: 'subscriptions'
  /subscriptions/periodic/{subscriptionId}:
    get:
      tags:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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'
Michel Roy's avatar
Michel Roy committed
        '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:
Michel Roy's avatar
Michel Roy committed
      - 'location'
Michel Roy's avatar
Michel Roy committed
      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'
Michel Roy's avatar
Michel Roy committed
      parameters: