-
Notifications
You must be signed in to change notification settings - Fork 31
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Prepare release 1.1 for location-verification + README + CHANGELOG
- Loading branch information
Showing
4 changed files
with
158 additions
and
62 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,41 +11,33 @@ Repository to describe, develop, document and test the DeviceLocation API family | |
## Scope | ||
* Service APIs for “Device Location” (see APIBacklog.md) | ||
* It provides the customer with the ability to: | ||
* verify the location of a device. | ||
* retrieve the location of a device. | ||
* subscribe and receive notifications about a device entering or leaving certain location (geofencing). | ||
* verify the location of a device (location-verification). | ||
* retrieve the location of a device (location-retrieval). | ||
* subscribe and receive notifications about a device entering or leaving certain location (geofencing-subscriptions). | ||
* NOTE: The scope of this API family should be limited (at least at a first stage) to 4G and 5G. | ||
* Describe, develop, document and test the APIs (with 1-2 Telcos) | ||
* Started: July 2022 | ||
* Location: virtually | ||
|
||
## Meetings | ||
* Meetings are held virtually | ||
* Schedule: bi-weekly (odd weeks), Tuesday, 9 AM CET/CEST | ||
* Meeting link: [Registration / Join](https://zoom-lfx.platform.linuxfoundation.org/meeting/91878854906?password=7e620a89-fcb5-4d2d-927a-17e3a0d1d28e) | ||
* Slack channel: [camara-project.slack.com](https://join.slack.com/t/camara-project/shared_invite/zt-26gy3e64n-o7Riy3MoXmzdaDEL3wlngg) #sp-device-location | ||
## Release Information | ||
|
||
* The latest public release is available here: https://github.com/camaraproject/DeviceLocation/releases/latest | ||
* For changes see [CHANGELOG.md](https://github.com/camaraproject/DeviceLocation/blob/main/CHANGELOG.md) | ||
|
||
## Status and released versions | ||
* Note: Please be aware that the project will have frequent updates to the main branch. There are no compatibility guarantees associated with code in any branch, including main, until a new release is created. For example, changes may be reverted before a release is created. **For best results, use the latest available release**. | ||
* **The latest available release for the DeviceLocation API family is 0.2.0.** There are bug fixes to be expected and incompatible changes in upcoming releases. It is suitable for implementors, but it is not recommended to use the API with customers in productive environments. | ||
|
||
* Release 0.2.0 of the API family is available within the [release-v0.2.0 branch](https://github.com/camaraproject/DeviceLocation/tree/release-v0.2.0). The API family now includes 3 APIs, in different state of progress: | ||
- **location-verification v0.2.0**, which is the second alpha release of this API. | ||
- OpenAPI [YAML spec file](https://github.com/camaraproject/DeviceLocation/blob/release-v0.2.0/code/API_definitions/location-verification.yaml) | ||
- [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/release-v0.2.0/code/API_definitions/location-verification.yaml&nocors) | ||
- [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/release-v0.2.0/code/API_definitions/location-verification.yaml) | ||
- **location-retrieval v0.1.0**, which is the first alpha release. | ||
- OpenAPI [YAML spec file](https://github.com/camaraproject/DeviceLocation/blob/release-v0.2.0/code/API_definitions/location-retrieval.yaml) | ||
- [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/release-v0.2.0/code/API_definitions/location-retrieval.yaml&nocors) | ||
- [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/release-v0.2.0/code/API_definitions/location-retrieval.yaml) | ||
- **geofencing v0.1.0**, which is the first alpha release. | ||
- OpenAPI [YAML spec file](https://github.com/camaraproject/DeviceLocation/blob/release-v0.2.0/code/API_definitions/geofencing.yaml) | ||
- [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/release-v0.2.0/code/API_definitions/geofencing.yaml&nocors) | ||
- [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/release-v0.2.0/code/API_definitions/geofencing.yaml) | ||
|
||
* The previous release version v0.1.0 of DeviceLocation API is available within the [release-0.1.0 branch](https://github.com/camaraproject/DeviceLocation/tree/release-v0.1.0) | ||
- This past release only included the first alpha version of the API now renamed to location-verification, but it was then named as "location v0.1.0" | ||
|
||
## Contributorship and mailing list | ||
* To subscribe / unsubscribe to the mailing list of this Sub Project and thus be / resign as Contributor please visit <https://lists.camaraproject.org/g/sp-dlo>. | ||
* A message to all Contributors of this Sub Project can be sent using <[email protected]>. | ||
|
||
* The latest pre-release is [r1.1](https://github.com/camaraproject/DeviceLocation/tree/r1.1) | ||
The release r1.1 contains the following API definitions (with inline documentation): | ||
- **location-verification** [[YAML OAS]](https://github.com/camaraproject/DeviceLocation/blob/r1.1/code/API_definitions/location-verification.yaml) [[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/r1.1/code/API_definitions/location-verification.yaml&nocors) [[View it on Swagger Editor]](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/r1.1/code/API_definitions/location-verification.yaml) | ||
- **location-retrieval** [[YAML OAS]](https://github.com/camaraproject/DeviceLocation/blob/r1.1/code/API_definitions/location-retrieval.yaml) [[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/r1.1/code/API_definitions/location-retrieval.yaml&nocors) [[View it on Swagger Editor]](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/r1.1/code/API_definitions/location-retrieval.yaml) | ||
- **geofencing-subscriptions** [[YAML OAS]](https://github.com/camaraproject/DeviceLocation/blob/r1.1/code/API_definitions/geofencing.yaml) [[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/r1.1/code/API_definitions/geofencing.yaml&nocors) [[View it on Swagger Editor]](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/DeviceLocation/r1.1/code/API_definitions/geofencing.yaml) | ||
|
||
## Contributing | ||
|
||
* Meetings are held virtually | ||
- Schedule: bi-weekly (odd weeks), Tuesday, 9 AM CET/CEST | ||
- Meeting link: [Registration / Join](https://zoom-lfx.platform.linuxfoundation.org/meeting/91878854906?password=7e620a89-fcb5-4d2d-927a-17e3a0d1d28e) | ||
* Mailing list: | ||
- To subscribe / unsubscribe to the mailing list of this Sub Project, please visit <https://lists.camaraproject.org/g/sp-dlo>. | ||
- A message to the community of this Sub Project can be sent using <[email protected]>. | ||
* Slack channel: [camara-project.slack.com](https://join.slack.com/t/camara-project/shared_invite/zt-26gy3e64n-o7Riy3MoXmzdaDEL3wlngg) #sp-device-location |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,7 +6,7 @@ info: | |
# Introduction | ||
Customers are able to verify whether the location of certain user device is within the area specified. Currently the only area supported as input is a circle determined by the a set of coordinates (latitude and longitude) and some expected accuracy (radius). | ||
Customers are able to verify whether the location of certain user device is within the area specified. Currently the only area supported as input is a circle determined by a set of coordinates (latitude and longitude) and some expected accuracy (radius). | ||
The verification result depends on the network's ability and accuracy to locate the device at the requested area. | ||
|
@@ -15,9 +15,9 @@ info: | |
* If the network's estimation of the device's location partially overlaps with the requested area, or it fully contains the requested area (because it is larger), the result is 'PARTIAL'. In this case, a `match_rate` is included in the response, indicating an estimation of the likelihood of the match in percent. | ||
* Lastly, the network may not be able to locate the device. In this case, the verification result is `UNKNOWN`. | ||
The client may optionally include a `maxAge` indication. If the location information known to the server is older than the specified `maxAge`, the verification result will be `UNKNOWN` and the `lastLocationTime` attribute may indicate the last available time for the device location. | ||
The client may optionally include a `maxAge` indication. If the location information known to the server is older than the specified `maxAge`, an error 422 with code LOCATION_VERIFICATION.UNABLE_TO_FULFILL_MAX_AGE is sent back. | ||
`lastLocationTime` will be always included in the response unless there is no historical location information available for the device. In this case, `UNKNOWN` will be returned without `lastLocationTime`. | ||
`lastLocationTime` will be always included in the success response unless there is no historical location information available for the device. In this case, `UNKNOWN` will be returned without `lastLocationTime`. | ||
Location Verification could be useful in scenarios such as: | ||
|
@@ -33,7 +33,7 @@ info: | |
* **Area**: It specifies the geographical surface where a device may be physically located. | ||
* **Max Age**: Maximum age of the location information which is accepted for the location verification (in seconds). | ||
* Absence of maxAge means "any age" is acceptable for the client. In other words, this is like maxAge=infinite. In this case the system may still return lastLocationTime, if available. | ||
* Absence of maxAge means "any age" is acceptable for the client. In other words, this is like maxAge=infinite. In this case the system will still return lastLocationTime, if available. | ||
* maxAge=0 means a fresh calculation is requested by the client. If the system is not able to provide the fresh location, an error 422 with code LOCATION_VERIFICATION.UNABLE_TO_FULFILL_MAX_AGE is sent back. | ||
|
@@ -80,25 +80,23 @@ info: | |
# Further info and support | ||
(FAQs will be added in a later version of the documentation) | ||
termsOfService: http://swagger.io/terms/ | ||
contact: | ||
email: [email protected] | ||
version: 1.0.0-rc.1 | ||
license: | ||
name: Apache 2.0 | ||
url: https://www.apache.org/licenses/LICENSE-2.0.html | ||
version: 0.3.0-wip | ||
x-camara-commonalities: 0.4.0 | ||
externalDocs: | ||
description: Product documentation at CAMARA | ||
url: https://github.com/camaraproject/ | ||
servers: | ||
- url: "{apiRoot}/location-verification/v0" | ||
- url: "{apiRoot}/location-verification/v1rc1" | ||
variables: | ||
apiRoot: | ||
default: http://localhost:9091 | ||
description: API root | ||
tags: | ||
- name: Location verification | ||
description: Verification the location of a device | ||
description: Verification of the location of a device | ||
paths: | ||
/verify: | ||
post: | ||
|
@@ -132,7 +130,7 @@ paths: | |
maxAge: 120 | ||
INPUT_IP_ADDRESS_V4_CIRCLE: | ||
summary: IPv4 address, circle, without maxAge | ||
description: Verify if device identified by an IPv4 address is within a circle | ||
description: Verify if device identified by an IPv4 address is within a circle, not indicating a maxAge | ||
value: | ||
device: | ||
ipv4Address: | ||
|
@@ -154,6 +152,7 @@ paths: | |
latitude: 50.735851 | ||
longitude: 7.10066 | ||
radius: 50000 | ||
maxAge: 120 | ||
responses: | ||
"200": | ||
description: Location verification result | ||
|
@@ -177,15 +176,9 @@ paths: | |
value: | ||
verificationResult: "FALSE" | ||
lastLocationTime: 2023-09-07T10:40:52Z | ||
VERIFICATION_UNKNOWN_WITH_LAST_LOCATION_TIME: | ||
summary: Unknown with last location time | ||
description: The network cannot locate the device after the requested maxAge | ||
value: | ||
verificationResult: "UNKNOWN" | ||
lastLocationTime: 2023-09-07T10:40:52Z | ||
VERIFICATION_UNKNOWN_WITHOUT_LAST_LOCATION_TIME: | ||
summary: Unknown without last location time | ||
description: The network cannot locate the device and there is no history available | ||
VERIFICATION_UNKNOWN: | ||
summary: Unknown | ||
description: The network cannot locate the device | ||
value: | ||
verificationResult: "UNKNOWN" | ||
VERIFICATION_PARTIAL: | ||
|
@@ -205,6 +198,8 @@ paths: | |
$ref: "#/components/responses/Generic404" | ||
"422": | ||
$ref: "#/components/responses/VerifyLocationUnprocessableEntity422" | ||
"429": | ||
$ref: "#/components/responses/Generic429" | ||
"500": | ||
$ref: "#/components/responses/Generic500" | ||
"503": | ||
|
@@ -262,7 +257,7 @@ components: | |
$ref: "#/components/schemas/Point" | ||
radius: | ||
type: integer | ||
description: Expected accuracy for the verification in meters, from location (radius) | ||
description: Expected accuracy for the verification in meters, from center | ||
minimum: 2000 | ||
maximum: 200000 | ||
required: | ||
|
@@ -307,7 +302,7 @@ components: | |
example: 7.10066 | ||
|
||
VerifyLocationRequest: | ||
description: Request to verify the location of a device | ||
description: Request to verify the location of a device. Device is not required when using a 3-legged access token, following the rules in the description. | ||
type: object | ||
properties: | ||
device: | ||
|
@@ -411,7 +406,7 @@ components: | |
example: 2001:db8:85a3:8d3:1319:8a2e:370:7344 | ||
|
||
MaxAge: | ||
description: The maximum age (in seconds) of the available location, which is accepted for the verification. Absence of maxAge means "any age" and maxAge=0 means a fresh calculation. | ||
description: The maximum age (in seconds) for the location known by the implementation, which is accepted for the verification. Absence of maxAge means "any age" and maxAge=0 means a fresh calculation. | ||
type: integer | ||
example: 120 | ||
|
||
|
@@ -613,6 +608,29 @@ components: | |
code: UNIDENTIFIABLE_DEVICE | ||
message: "A device must be provided" | ||
|
||
Generic429: | ||
description: Too Many Requests | ||
headers: | ||
x-correlator: | ||
$ref: "#/components/headers/x-correlator" | ||
content: | ||
application/json: | ||
schema: | ||
$ref: "#/components/schemas/ErrorInfo" | ||
examples: | ||
GENERIC_429_QUOTA_EXCEEDED: | ||
description: Request is rejected due to exceeding a business quota limit | ||
value: | ||
status: 429 | ||
code: QUOTA_EXCEEDED | ||
message: Either out of resource quota or reaching rate limiting. | ||
GENERIC_429_TOO_MANY_REQUESTS: | ||
description: API Server request limit is overpassed | ||
value: | ||
status: 429 | ||
code: TOO_MANY_REQUESTS | ||
message: Either out of resource quota or reaching rate limiting. | ||
|
||
Generic500: | ||
description: Internal server error | ||
headers: | ||
|
Oops, something went wrong.