LocationAPI.json 155 KB
Newer Older
Michel Roy's avatar
Michel Roy committed
{
  "openapi": "3.0.0",
  "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",
    "description": "The ETSI MEC ISG MEC013 WLAN Access Information API described using OpenAPI.",
    "license": {
      "name": "BSD-3-Clause",
      "url": "https://forge.etsi.org/legal-matters"
    }
  },
  "externalDocs": {
    "description": "ETSI MEC013 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": {
        "tags": [
Michel Roy's avatar
Michel Roy committed
          "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"
                    }
                  },
                  "example": {
                    "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": [
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"
                  }
                },
                "example": {
                  "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"
                    }
                  },
                  "example": {
                    "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": {
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",
Michel Roy's avatar
Michel Roy committed
                "requestBody": {
                  "description": "Subscription notification",
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "type": "object",
                        "properties": {
                          "subscriptionNotification": {
                            "$ref": "#/components/schemas/SubscriptionNotification"
                          }
                        },
                        "example": {
                          "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": [
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"
                    }
                  },
                  "example": {
                    "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": [
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"
                  }
                },
                "example": {
                  "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"
                    }
                  },
                  "example": {
                    "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": [
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"
                    }
                  },
                  "example": {
                    "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": [
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"
                  }
                },
                "example": {
                  "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"
                    }
                  },
                  "example": {
                    "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": {
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",
Michel Roy's avatar
Michel Roy committed
                "requestBody": {
                  "description": "Subscription notification",
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "type": "object",
                        "properties": {
                          "subscriptionNotification": {
                            "$ref": "#/components/schemas/SubscriptionNotification"
                          }
                        },
                        "example": {
                          "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": [
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"
                    }
                  },
                  "example": {
                    "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": [
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"
                  }
                },
                "example": {
                  "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"
                    }
                  },
                  "example": {
                    "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": [
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"
                    }
                  },
                  "example": {
                    "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": [
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"
                  }
                },
                "example": {
                  "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"
                    }
                  },
                  "example": {
                    "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": {
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",
Michel Roy's avatar
Michel Roy committed
                "requestBody": {
                  "description": "Subscription notification",
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "type": "object",
                        "properties": {
                          "subscriptionNotification": {
                            "$ref": "#/components/schemas/SubscriptionNotification"
                          }
                        },
                        "example": {
                          "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": [
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"
                    }
                  },
                  "example": {
                    "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": [
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"
                  }
                },
                "example": {
                  "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"
                    }
                  },
                  "example": {
                    "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": [
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": "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": [
Michel Roy's avatar
Michel Roy committed
          "location"
Michel Roy's avatar
Michel Roy committed
        ],
        "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"
                    }
                  },
                  "example": {
                    "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": [
Michel Roy's avatar
Michel Roy committed
          "location"
Michel Roy's avatar
Michel Roy committed
        ],
        "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"
                  }
                },
                "example": {
                  "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"
                    }
                  },
                  "example": {
                    "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": {
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": "userTrackingNotificationPOST",
Michel Roy's avatar
Michel Roy committed
                "requestBody": {
                  "description": "Subscription notification",
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "type": "object",
                        "properties": {
                          "zonalPresenceNotification": {
                            "$ref": "#/components/schemas/ZonalPresenceNotification"
                          }
                        },
                        "example": {
                          "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": [
Michel Roy's avatar
Michel Roy committed
          "location"
Michel Roy's avatar
Michel Roy committed
        ],
        "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"
                    }
                  },
                  "example": {
                    "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": [
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": "userTrackingSubPUT",
        "requestBody": {
          "description": "Subscription to be modified",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userTrackingSubscription": {
                    "$ref": "#/components/schemas/UserTrackingSubscription"
                  }
                },
                "example": {
                  "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"
                    }
                  }
                },
                "example": {
                  "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": [
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": "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": [
Michel Roy's avatar
Michel Roy committed
          "location"
Michel Roy's avatar
Michel Roy committed
        ],
        "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"
                    }
                  },
                  "example": {
                    "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": [
Michel Roy's avatar
Michel Roy committed
          "location"
Michel Roy's avatar
Michel Roy committed
        ],
        "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"
                  }
                },
                "example": {
                  "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"
                    }
                  },
                  "example": {
                    "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": {
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": "zonalTrafficNotificationPOST",
Michel Roy's avatar
Michel Roy committed
                "requestBody": {
                  "description": "Subscription notification",
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "type": "object",
                        "properties": {
                          "zonalPresenceNotification": {
                            "$ref": "#/components/schemas/ZonalPresenceNotification"
                          }
                        },
                        "example": {
                          "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": [
Michel Roy's avatar
Michel Roy committed
          "location"
Michel Roy's avatar
Michel Roy committed
        ],
        "summary": "Retrieve subscription information",
        "description": "Get subscription information.",
Michel Roy's avatar
Michel Roy committed
        "operationId": "zonalTrafficSubGET",
Michel Roy's avatar
Michel Roy committed
        "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"
                    }
                  },
                  "example": {
                    "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": [
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": "zonalTrafficSubPUT",
        "requestBody": {
          "description": "Subscription to be modified",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "zonalTrafficSubscription": {
                    "$ref": "#/components/schemas/ZonalTrafficSubscription"
                  }
                },
                "example": {
                  "zonalTrafiicSubscription": {
                    "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"
                    }
                  }
                },
                "example": {
                  "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": [
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": "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": [
Michel Roy's avatar
Michel Roy committed
          "location"
Michel Roy's avatar
Michel Roy committed
        ],
        "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"
                    }
                  },
                  "example": {
                    "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,
Michel Roy's avatar
Michel Roy committed
                          "operationStatus": [
                            "Serviceable"
                          ]
Michel Roy's avatar
Michel Roy committed
                        }
                      ],
                      "resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zoneStatus"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
Michel Roy's avatar
Michel Roy committed
          "location"
Michel Roy's avatar
Michel Roy committed
        ],
        "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"
                  }
                },
                "example": {
                  "zoneStatusSubscription": {
                    "clientCorrelator": "0123",
                    "callbackReference": {
                      "notifyURL": "http://my.callback.com/location_notifications/some-id"
                    },
                    "zoneId": "zone01",
                    "numberOfUsersZoneThreshold": 500,
Michel Roy's avatar
Michel Roy committed
                    "operationStatus": [
                      "Serviceable"
                    ]
Michel Roy's avatar
Michel Roy committed
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful subscription",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "zoneStatusSubscription": {
                      "$ref": "#/components/schemas/ZoneStatusSubscription"
                    }
                  },
                  "example": {
                    "zoneStatusSubscription": {
                      "clientCorrelator": "0123",
                      "callbackReference": {
                        "notifyURL": "http://my.callback.com/location_notifications/some-id"
                      },
                      "zoneId": "zone01",
                      "numberOfUsersZoneThreshold": 500,
Michel Roy's avatar
Michel Roy committed
                      "operationStatus": [
                        "Serviceable"
                      ],
Michel Roy's avatar
Michel Roy committed
                      "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": {
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": "zoneStatusNotificationPOST",
Michel Roy's avatar
Michel Roy committed
                "requestBody": {
                  "description": "Subscription notification",
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "type": "object",
                        "properties": {
                          "zoneStatusNotification": {
                            "$ref": "#/components/schemas/ZoneStatusNotification"
                          }
                        },
                        "example": {
                          "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": [
Michel Roy's avatar
Michel Roy committed
          "location"
Michel Roy's avatar
Michel Roy committed
        ],
        "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"
                    }
                  },
                  "example": {
                    "zoneStatusSubscription": {
                      "clientCorrelator": "0123",
                      "callbackReference": {
                        "notifyURL": "http://my.callback.com/location_notifications/some-id"
                      },
                      "zoneId": "zone01",
                      "numberOfUsersZoneThreshold": 500,
Michel Roy's avatar
Michel Roy committed
                      "operationStatus": [
                        "Serviceable"
                      ],
Michel Roy's avatar
Michel Roy committed
                      "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": [
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": "zoneStatusSubPUT",
        "requestBody": {
          "description": "Subscription to be modified",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "zoneStatusSubscription": {
                    "$ref": "#/components/schemas/ZoneStatusSubscription"
                  }
                },
                "example": {
                  "zoneStatusSubscription": {
                    "clientCorrelator": "0123",
                    "callbackReference": {
                      "notifyURL": "http://my.callback.com/location_notifications/some-id"
                    },
                    "zoneId": "zone01",
                    "numberOfUsersZoneThreshold": 500,
Michel Roy's avatar
Michel Roy committed
                    "operationStatus": [
                      "Serviceable"
                    ],
Michel Roy's avatar
Michel Roy committed
                    "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"
                    }
                  }
                },
                "example": {
                  "zoneStatusSubscription": {
                    "clientCorrelator": "0123",
                    "callbackReference": {
                      "notifyURL": "http://my.callback.com/location_notifications/some-id"
                    },
                    "zoneId": "zone01",
                    "numberOfUsersZoneThreshold": 500,
Michel Roy's avatar
Michel Roy committed
                    "operationStatus": [
                      "Serviceable"
                    ],
Michel Roy's avatar
Michel Roy committed
                    "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": [
Michel Roy's avatar
Michel Roy committed
          "location"
Michel Roy's avatar
Michel Roy committed
2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064
        ],
        "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/json": {
            "schema": {
              "type": "object",
              "properties": {
                "problemDetails": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "401": {
        "description": "Unauthorized :  used when the client did not submit credentials.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "problemDetails": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "403": {
        "description": "Forbidden :  operation is not allowed given the current status of the resource.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "problemDetails"
              ],
              "properties": {
                "problemDetails": {
                  "$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/json": {
            "schema": {
              "type": "object",
              "properties": {
                "problemDetails": {
                  "$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/json": {
            "schema": {
              "type": "object",
              "properties": {
                "problemDetails": {
                  "$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/json": {
            "schema": {
              "type": "object",
              "properties": {
                "problemDetails": {
                  "$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/json": {
            "schema": {
              "type": "object",
              "properties": {
                "problemDetails": {
                  "$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/json": {
            "schema": {
              "type": "object",
              "properties": {
                "problemDetails": {
                  "$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/json": {
            "schema": {
              "type": "object",
              "properties": {
                "problemDetails": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "example": {
              "application/problem+json": {
                "ProblemDetails": {
                  "type": "https://meAppServer.example.com/rni/v2/probs/too-many targets",
                  "title": "Too many targets",
                  "status": "422",
                  "detail": "The target area for the request is considered too large",
                  "instance": "/meAppClient.example.com/77777/msgs/abc"
                }
              }
            }
          }
        }
      },
      "429": {
        "description": "Too Many Requests : used when a rate limiter has triggered.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "problemDetails": {
                  "$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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/ConnectionType"
Michel Roy's avatar
Michel Roy committed
          },
          "interestRealm": {
            "description": "Interest realm of access point.",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "string"
          },
          "locationInfo": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/LocationInfo"
Michel Roy's avatar
Michel Roy committed
          },
          "numberOfUsers": {
            "description": "Number of users currently on the access point.",
            "type": "integer",
            "x-etsi-mec-cardinality": 1,
            "x-etsi-mec-origin-type": "integer"
          },
          "operationStatus": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/OperationStatus"
Michel Roy's avatar
Michel Roy committed
          },
          "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/NotificationFormat"
Michel Roy's avatar
Michel Roy committed
          },
          "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/CallbackReference"
Michel Roy's avatar
Michel Roy committed
          },
          "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/EnteringLeavingCriteria"
Michel Roy's avatar
Michel Roy committed
          },
          "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/CallbackReference"
Michel Roy's avatar
Michel Roy committed
          },
          "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/DistanceCriteria"
Michel Roy's avatar
Michel Roy committed
          },
          "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 [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 [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 [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 [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 [14]. Present only if \"shape\" equals 4 or 6",
            "type": "integer",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "UnsignedInt"
          },
          "shape": {
Michel Roy's avatar
Michel Roy committed
            "description": "Shape information, as detailed in [14], associated with the reported location coordinate: <p>1 = ELLIPSOID_ARC <p>2 = ELLIPSOID_POINT <p>3 = ELLIPSOID_POINT_ALTITUDE <p>4 = ELLIPSOID_POINT_ALTITUDE_UNCERT_ELLIPSOID <p>5 = ELLIPSOID_POINT_UNCERT_CIRCLE <p>6 = ELLIPSOID_POINT_UNCERT_ELLIPSE <p>7 = POLYGON",
            "type": "integer",
Michel Roy's avatar
Michel Roy committed
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "Enum_inlined"
          },
          "timestamp": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/TimeStamp"
Michel Roy's avatar
Michel Roy committed
          },
          "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 [14].",
            "properties": {
              "bearing": {
                "description": "Bearing, expressed in the range 0° to 360°, as defined in [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 [14].",
                "type": "integer",
                "x-etsi-mec-cardinality": "1",
                "x-etsi-mec-origin-type": "UnsignedInt"
              },
              "uncertainty": {
                "description": "Horizontal uncertainty, as defined in [14]. Present only if \"velocityType\" equals 3 or 4",
                "type": "integer",
                "x-etsi-mec-cardinality": "0..1",
                "x-etsi-mec-origin-type": "UnsignedInt"
              },
              "velocityType": {
Michel Roy's avatar
Michel Roy committed
                "description": "Velocity information, as detailed in [14], associated with the reported location coordinate: <p>1 = HORIZONTAL <p>2 = HORIZONTAL_VERTICAL <p>3 = HORIZONTAL_UNCERT <p>4 = HORIZONTAL_VERTICAL_UNCERT",
                "type": "integer",
Michel Roy's avatar
Michel Roy committed
                "x-etsi-mec-cardinality": "1",
                "x-etsi-mec-origin-type": "Enum_inlined"
              },
              "verticalSpeed": {
                "description": "Vertical speed, expressed in km/h and defined in [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 [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",
Michel Roy's avatar
Michel Roy committed
          "shape"
Michel Roy's avatar
Michel Roy committed
        ],
        "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/CallbackReference"
Michel Roy's avatar
Michel Roy committed
          },
          "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 <variables> 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"
      },
      "SubscriptionCancellationNotification": {
        "description": "A type containing the subscription cancellation notification.",
        "properties": {
          "address": {
            "description": "Address of terminal if the error applies to an individual terminal.",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "anyURI"
          },
          "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"
          },
          "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"
          },
          "reason": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/ServiceError"
Michel Roy's avatar
Michel Roy committed
          }
        },
        "required": [
          "terminalLocation"
        ],
        "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/DistanceCriteria"
Michel Roy's avatar
Michel Roy committed
          },
          "enteringLeavingCriteria": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/EnteringLeavingCriteria"
Michel Roy's avatar
Michel Roy committed
          },
          "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/TimeStamp"
Michel Roy's avatar
Michel Roy committed
          }
        },
        "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/LocationInfo"
Michel Roy's avatar
Michel Roy committed
          },
          "errorInformation": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/ServiceError"
Michel Roy's avatar
Michel Roy committed
          },
          "locationRetrievalStatus": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/RetrievalStatus"
Michel Roy's avatar
Michel Roy committed
          }
        },
        "required": [
          "address",
          "locationRetrievalStatus"
        ],
        "type": "object"
      },
      "TerminalLocationList": {
        "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"
      },
      "TimeStamp": {
        "properties": {
          "nanoSeconds": {
            "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.",
Michel Roy's avatar
Michel Roy committed
            "format": "int32",
            "type": "integer",
Michel Roy's avatar
Michel Roy committed
            "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.",
Michel Roy's avatar
Michel Roy committed
            "format": "int32",
            "type": "integer",
Michel Roy's avatar
Michel Roy committed
            "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/LocationInfo"
Michel Roy's avatar
Michel Roy committed
          },
          "resourceURL": {
            "description": "Self-referring URL, see note 1.",
            "type": "string",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "String"
          },
          "timestamp": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/TimeStamp"
Michel Roy's avatar
Michel Roy committed
          },
          "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",
Michel Roy's avatar
Michel Roy committed
          "timestamp"
Michel Roy's avatar
Michel Roy committed
        ],
        "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/CallbackReference"
Michel Roy's avatar
Michel Roy committed
          },
          "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/TimeStamp"
Michel Roy's avatar
Michel Roy committed
          },
          "userEventType": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/UserEventType"
Michel Roy's avatar
Michel Roy committed
          },
          "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/CallbackReference"
Michel Roy's avatar
Michel Roy committed
          },
          "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": {
Michel Roy's avatar
Michel Roy committed
            "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",
Michel Roy's avatar
Michel Roy committed
            "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/OperationStatus"
Michel Roy's avatar
Michel Roy committed
          },
          "timestamp": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/TimeStamp"
Michel Roy's avatar
Michel Roy committed
          },
          "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": {
Michel Roy's avatar
Michel Roy committed
            "$ref": "#/components/schemas/CallbackReference"
Michel Roy's avatar
Michel Roy committed
          },
          "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"
      }
    }
  }
}