Skip to content

Commit d1b0f4f

Browse files
authored
Update simple_edge_discovery.yaml
Fixes #225 Fixes #226
1 parent 10e59a4 commit d1b0f4f

File tree

1 file changed

+60
-48
lines changed

1 file changed

+60
-48
lines changed

code/API_definitions/Discovery/simple_edge_discovery.yaml

+60-48
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
openapi: 3.0.3
33
info:
44
title: Simple Edge Discovery API
5-
version: 0.9.4
5+
version: 0.9.4-rc.1
66
description: |
77
# Find the closest Edge Cloud Zone
88
---
@@ -12,13 +12,13 @@ info:
1212
Cloud Zone to a particular user device.
1313
1414
# Purpose
15-
Network operators may host multiple Multi-access Edge Cloud Zones in a
15+
Network operators may host multiple Edge Cloud Zones in a
1616
given territory. Connecting your application to a server on the closest
1717
Edge Cloud Zone means packets travel the shortest distance between
1818
endpoints, typically resulting in the lowest round-trip latency. Note, the
1919
physical (GPS) location of a user device is not a reliable way to determine
2020
the closest Edge Cloud Zone, due to the way operator networks are routed -
21-
so the operator will calculate the Edge Cloud Zone with the
21+
so the operator will calculate the Edge Cloud Zone with the
2222
_shortest network path_to the network-attached device identified in the API
2323
request.
2424
@@ -77,7 +77,7 @@ info:
7777
GET /edge-cloud-zones?filter=closest HTTP/1.1
7878
Host: example.com
7979
Accept: application/json
80-
Phone-Number: 441234567890
80+
Phone-Number: +441234567890
8181
```
8282
8383
Example where API client is on a network-attached device:
@@ -92,16 +92,16 @@ info:
9292
9393
## Success
9494
95-
A JSON object is returned containing an array with a single member object.
95+
A JSON object is returned containing an array with a single member object.
9696
This contains identifiers for the closest Edge Cloud Zone. The HTTP status
9797
code will be`200 OK`. An example response:
9898
9999
```
100100
[
101101
{
102102
"edgeCloudZoneId": "4gt555-6457-7890-d4he-1dc79f44gb66",
103-
"edgeCloudZoneName": "eu-west-2-wl1-man-wlz-1",
104-
"edgeCloudProvider": "AWS"
103+
"edgeCloudZoneName": "example zone name",
104+
"edgeCloudProvider": "example zone provider"
105105
}
106106
]
107107
```
@@ -125,7 +125,7 @@ info:
125125
Any more general service failures will result in an error in the `5xx`range
126126
with an explanation.
127127
128-
# Notes for Simple Edge API publishers
128+
# Notes for Simple Edge Discovery API publishers
129129
130130
If an `IP-Address` header parameter is provided then the operator should
131131
assume the request is coming from a developer's server rather than a device
@@ -148,7 +148,7 @@ info:
148148
# Authorization and authentication
149149
150150
CAMARA guidelines defines a set of authorization flows which can grant API
151-
clients access to the API functionality, as outlined in the document
151+
clients access to the API functionality, as outlined in the document
152152
[CAMARA-API-access-and-user-consent.md]
153153
(https://github.com/camaraproject/IdentityAndConsentManagement/blob/main/documentation/CAMARA-API-access-and-user-consent.md).
154154
Which specific authorization flows are to be used will be determined during
@@ -202,53 +202,50 @@ paths:
202202
- name: filter
203203
in: query
204204
required: true
205-
description: |
205+
description: |
206206
Filter the Edge Cloud Zones according to the parameter value.
207207
For this API the only supported value is `closest`.
208208
schema:
209209
type: string
210-
enum:
210+
enum:
211211
- closest
212212

213-
- name: IP-Address
213+
- name: IPv4-Address
214214
in: header
215215
required: false
216-
description: The public IP allocated to the device.
217-
examples:
218-
ipv4:
219-
value: "84.125.93.10"
220-
ipv6:
221-
value: "2001:db8:85a3:8d3:1319:8a2e:370:7344"
216+
description: The public IPv4 address allocated to the device.
217+
example: "84.125.93.10"
222218
schema:
223-
type: string
224-
format: ipv4/ipv6
225-
oneOf:
226-
- pattern: '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]
227-
)\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$'
228-
- pattern: '^((:|(0?|([1-9a-f][0-9a-f]{0,3}))):)((0?|([1-9a-f]
229-
[0-9a-f]{0,3})):){0,6}(:|(0?|([1-9a-f][0-9a-f]{0,3})))$'
219+
$ref: "#/components/schemas/SingleIpv4Addr"
220+
221+
- name: IPv6-Address
222+
in: header
223+
required: false
224+
description: The public IPv6 address allocated to the device.
225+
example: "2001:db8:85a3:8d3:1319:8a2e:370:7348"
226+
schema:
227+
$ref: "#/components/schemas/DeviceIpv6Address"
230228

231229
- name: Network-Access-Identifier
232230
in: header
233-
description: |
231+
description: |
234232
3GPP network access identifier for the subscription
235233
being used by the device.
236234
example: "[email protected]"
237235
required: false
238236
schema:
239-
type: string
240-
format: email
237+
$ref: "#/components/schemas/NetworkAccessIdentifier"
238+
241239
- name: Phone-Number
242240
in: header
243-
example: "441234567890"
241+
example: "+441234567890"
244242
required: false
245243
description: |
246244
MSISDN in E.164 format (starting with country code) of
247245
the mobile subscription being used by the device. Optionally
248246
prefixed with '+'.
249247
schema:
250-
type: string
251-
pattern: '^\+?[0-9]{5,15}$'
248+
$ref: "#/components/schemas/PhoneNumber"
252249

253250
responses:
254251
"200":
@@ -318,20 +315,12 @@ components:
318315
Provider object (the name of the cloud provider or operator hosting that
319316
edge cloud zone).
320317
properties:
321-
edgeCloudZone:
322-
description: |
323-
An Edge Cloud Zone, uniquely identified by a combination
324-
of the value of the Edge Resource Name object and the value of the
325-
Provider object (the name of the cloud provider or operator hosting
326-
that egde cloud zone).
327-
type: object
328-
properties:
329-
edgeCloudZoneId:
330-
$ref: "#/components/schemas/EdgeCloudZoneId"
331-
edgeCloudZoneName:
332-
$ref: "#/components/schemas/EdgeCloudZoneName"
333-
edgeCloudProvider:
334-
$ref: "#/components/schemas/EdgeCloudProvider"
318+
edgeCloudZoneId:
319+
$ref: "#/components/schemas/EdgeCloudZoneId"
320+
edgeCloudZoneName:
321+
$ref: "#/components/schemas/EdgeCloudZoneName"
322+
edgeCloudProvider:
323+
$ref: "#/components/schemas/EdgeCloudProvider"
335324

336325
EdgeCloudZoneId:
337326
description: |
@@ -340,7 +329,6 @@ components:
340329
format: uuid
341330
additionalProperties: false
342331

343-
344332
EdgeCloudZoneName:
345333
description: |
346334
Edge Cloud Zone Name - the common name for the Edge Cloud Zone.
@@ -352,8 +340,6 @@ components:
352340
The company name of the Edge Cloud Zone provider.
353341
type: string
354342

355-
356-
357343
ErrorResponse:
358344
description: Error code and human-readable description.
359345
type: object
@@ -370,6 +356,30 @@ components:
370356
This parameter appears when there is an error.
371357
A human readable explanation specific to this occurrence of the
372358
problem.
359+
360+
PhoneNumber:
361+
description: A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'.
362+
type: string
363+
pattern: '^\+[1-9][0-9]{4,14}$'
364+
example: "+123456789"
365+
366+
NetworkAccessIdentifier:
367+
description: A public identifier addressing a subscription in a mobile network. In 3GPP terminology, it corresponds to the GPSI formatted with the External Identifier ({Local Identifier}@{Domain Identifier}). Unlike the telephone number, the network access identifier is not subjected to portability ruling in force, and is individually managed by each operator.
368+
type: string
369+
example: "[email protected]"
370+
371+
SingleIpv4Addr:
372+
description: A single IPv4 address with no subnet mask
373+
type: string
374+
format: ipv4
375+
example: "84.125.93.10"
376+
377+
DeviceIpv6Address:
378+
description: |
379+
The device should be identified by the observed IPv6 address, or by any single IPv6 address from within the subnet allocated to the device (e.g. adding ::0 to the /64 prefix).
380+
type: string
381+
format: ipv6
382+
example: 2001:db8:85a3:8d3:1319:8a2e:370:7344
373383

374384

375385
###################################
@@ -578,3 +588,5 @@ components:
578588
"status": 504,
579589
"message": "The service is currently not available"
580590
}
591+
592+

0 commit comments

Comments
 (0)