1
+ openapi : 3.0.3
2
+ info :
3
+ title : Application Endpoint Registration API
4
+ version : 0.1.0
5
+ license :
6
+ name : Apache 2.0
7
+ url : https://www.apache.org/licenses/LICENSE-2.0.html
8
+ description : |
9
+ Application endpoint registration allows application developers to register
10
+ one or more Application Endpoints, and retrieve, update,and delete those registrations.
11
+ This information can we used for various usecases like optimal end point discovery to help end users connect to the most most optimal instance of the application. Addtionally the information can be used to also monitor the different instance to take decisions from a lifecycle mangement perspective.
12
+
13
+ ### Authorization and authentication
14
+
15
+ The "Camara Security and Interoperability Profile" provides details on how a client requests an access token. Please refer to Identify and Consent Management (https://github.com/camaraproject/IdentityAndConsentManagement/) for the released version of the Profile.
16
+
17
+ Which specific authorization flows are to be used will be determined during onboarding process, happening between the API Client and the Telco Operator exposing the API, taking into account the declared purpose for accessing the API, while also being subject to the prevailing legal framework dictated by local legislation.
18
+
19
+ It is important to remark that in cases where personal user data is processed by the API, and users can exercise their rights through mechanisms such as opt-in and/or opt-out, the use of 3-legged access tokens becomes mandatory. This measure ensures that the API remains in strict compliance with user privacy preferences and regulatory obligations, upholding the principles of transparency and user-centric data control.
20
+
21
+ x-camara-commonalities : 0.4.0
22
+
23
+ servers :
24
+ - url : " {apiRoot}/application-endpoint-registration/v0.1"
25
+ variables :
26
+ apiRoot :
27
+ default : http://localhost:9091
28
+ description : |
29
+ API root, defined by service provider, e.g.
30
+ `api.example.com` or `api.example.com/somepath`
31
+
32
+ tags :
33
+ - name : Application Endpoint Registration
34
+ description : |
35
+ Operations to register, read and manage an deployed instances of the application.
36
+
37
+ paths :
38
+ /application-endpoints :
39
+ post :
40
+ operationId : register-application-endpoints
41
+ requestBody :
42
+ description : Array of Application Endpoints for a
43
+ deployed application
44
+ content :
45
+ application/json :
46
+ schema :
47
+ type : array
48
+ items :
49
+ $ref : " #/components/schemas/ApplicationInstance"
50
+ responses :
51
+ " 200 " :
52
+ description : Returns a applicationEndpointsId
53
+ content :
54
+ application/json :
55
+ schema :
56
+ $ref : " #/components/schemas/TypesApplicationEndpointsId"
57
+ " 401 " :
58
+ $ref : " #/components/responses/Unauthorized"
59
+ default :
60
+ $ref : " #/components/responses/Unexpected"
61
+ tags :
62
+ - Application Endpoint Registration
63
+ summary : Register Application Endpoints
64
+ description : Register Application Endpoints of a
65
+ deployed application to specified edge cloud zone.
66
+
67
+ " /application-endpoints/{applicationEndpointsId} " :
68
+ parameters :
69
+ - name : applicationEndpointsId
70
+ in : path
71
+ required : true
72
+ description : applicationEndpointsId param //added desc
73
+ schema :
74
+ $ref : " #/components/schemas/TypesApplicationEndpointsId"
75
+ get :
76
+ operationId : get-application-endpoints-by-applicationEndpointsId
77
+ responses :
78
+ " 200 " :
79
+ description : Arry of registered Application Endpoints
80
+ content :
81
+ application/json :
82
+ schema :
83
+ type : array
84
+ items :
85
+ $ref : " #/components/schemas/ApplicationInstance"
86
+ " 400 " :
87
+ $ref : " #/components/responses/BadRequest"
88
+ " 401 " :
89
+ $ref : " #/components/responses/Unauthorized"
90
+ " 404 " :
91
+ $ref : " #/components/responses/NotFound"
92
+ default :
93
+ $ref : " #/components/responses/Unexpected"
94
+ tags :
95
+ - Application Endpoint Registration
96
+ summary : Get registered edge application endpoint information
97
+ description : Returns endpoint information for all
98
+ Application Endpoints registered to a
99
+ specified applicationEndpointId.
100
+ put :
101
+ operationId : update-application-endpoint
102
+ requestBody :
103
+ description : application Endpoint information
104
+ content :
105
+ application/json :
106
+ schema :
107
+ type : array
108
+ items :
109
+ $ref : " #/components/schemas/ApplicationInstance"
110
+ responses :
111
+ " 204 " :
112
+ $ref : " #/components/responses/NoContent"
113
+ " 401 " :
114
+ $ref : " #/components/responses/Unauthorized"
115
+ " 404 " :
116
+ $ref : " #/components/responses/NotFound"
117
+ default :
118
+ $ref : " #/components/responses/Unexpected"
119
+ tags :
120
+ - Application Endpoint Registration
121
+ summary : Update a application Endpoint
122
+ description : Update registered application Endpoint information.
123
+ delete :
124
+ operationId : deregister-application-endpoint
125
+ responses :
126
+ " 204 " :
127
+ $ref : " #/components/responses/NoContent"
128
+ " 400 " :
129
+ $ref : " #/components/responses/BadRequest"
130
+ " 401 " :
131
+ $ref : " #/components/responses/Unauthorized"
132
+ " 404 " :
133
+ $ref : " #/components/responses/NotFound"
134
+ default :
135
+ $ref : " #/components/responses/Unexpected"
136
+ tags :
137
+ - Application Endpoint Registration
138
+ summary : Deregister an application's application Endpoint
139
+ description : Deregister an application's application
140
+ Endpoint from the edge cloud zone.
141
+ components :
142
+ securitySchemes :
143
+ openId :
144
+ description : OpenID Provider Configuration Information
145
+ type : openIdConnect
146
+ openIdConnectUrl : https://example.com/.well-known/openid-configuration
147
+ headers :
148
+ x-correlator :
149
+ description : Correlation id for the different services
150
+ schema :
151
+ type : string
152
+
153
+ schemas :
154
+ ApplicationInstance :
155
+ description : Application instance represented
156
+ by application Endpoint definition
157
+ type : object
158
+ properties :
159
+ applicationEndpointsId :
160
+ $ref : " #/components/schemas/TypesApplicationEndpointsId"
161
+ applicationEndpoint :
162
+ $ref : " #/components/schemas/ResourcesapplicationEndpoint"
163
+ applicationServerProviderName :
164
+ type : string
165
+ description : Unique ID representing the Edge
166
+ Application Provider
167
+ applicationId :
168
+ type : string
169
+ description : Unique ID representing the Edge Application
170
+ applicationDescription :
171
+ type : string
172
+ description : Description of the application Endpoint
173
+ additionalProperties : false
174
+ applicationProfileId :
175
+ $ref : " #/components/schemas/TypesApplicationProfileId"
176
+ edgeCloudZoneId :
177
+ $ref : " #/components/schemas/EdgeCloudZoneId"
178
+ edgeCloudZoneName :
179
+ $ref : " #/components/schemas/EdgeCloudZoneName"
180
+ edgeCloudProvider :
181
+ $ref : " #/components/schemas/EdgeCloudProvider"
182
+ edgeCloudRegionId :
183
+ $ref : " #/components/schemas/EdgeCloudRegionName"
184
+ ResourcesapplicationEndpoint :
185
+ type : object
186
+ description : applicationEndpoint//added desc
187
+ properties :
188
+ uri :
189
+ type : string
190
+ description : URI of application Endpoint if available
191
+ format : uri
192
+ fqdn :
193
+ type : string
194
+ description : FQDN of application Endpoint if available
195
+ ipv4Address :
196
+ type : string
197
+ description : IPv4 Address of application Endpoint if available
198
+ format : ipv4
199
+ ipv6Address :
200
+ type : string
201
+ description : IPv6 Address of application Endpoint if available
202
+ format : ipv6
203
+ port :
204
+ type : integer
205
+ description : |
206
+ Port information of application Endpoint
207
+ if IPv4 or IPv6 is mentioned
208
+ additionalProperties : false
209
+ EdgeCloudZoneId :
210
+ description : |
211
+ Operator-issued UUID for the Edge Cloud Zone.
212
+ type : string
213
+ format : uuid
214
+ additionalProperties : false
215
+ EdgeCloudZoneName :
216
+ description : |
217
+ Edge Cloud Zone Name - the common name for the Edge Cloud Zone.
218
+ type : string
219
+ additionalProperties : false
220
+ EdgeCloudProvider :
221
+ description : |
222
+ The company name of the Edge Cloud Zone provider.
223
+ type : string
224
+ EdgeCloudRegionName :
225
+ description : |
226
+ region of the Edge Cloud Zone.
227
+ type : string
228
+ TypesApplicationEndpointsId :
229
+ description : |
230
+ A system-defined string identifier representing
231
+ one or more registered Application Endpoints.
232
+ type : string
233
+ format : uuid
234
+ readOnly : true
235
+ additionalProperties : false
236
+ TypesApplicationProfileId :
237
+ description : |
238
+ Unique identifier for a Application Profile
239
+ type : string
240
+ readOnly : false
241
+ additionalProperties : false
242
+ TypesError :
243
+ type : object
244
+ description : types Error//added desc
245
+ properties :
246
+ code :
247
+ type : string
248
+ description : code //added desc
249
+ message :
250
+ type : string
251
+ description : message //added desc
252
+ ErrorInfo :
253
+ type : object
254
+ description : Error information
255
+ required :
256
+ - status
257
+ - code
258
+ - message
259
+ properties :
260
+ status :
261
+ type : integer
262
+ description : HTTP status code returned along with this error response
263
+ code :
264
+ type : string
265
+ description : Code given to this error
266
+ message :
267
+ type : string
268
+ description : Detailed error description
269
+
270
+ responses :
271
+ NoContent :
272
+ description : HTTP 204 No Content
273
+ BadRequest :
274
+ description : HTTP 400 Bad Request
275
+ content :
276
+ application/json :
277
+ schema :
278
+ $ref : " #/components/schemas/TypesError"
279
+ NotFound :
280
+ description : HTTP 404 The specified resource was not found
281
+ content :
282
+ application/json :
283
+ schema :
284
+ $ref : " #/components/schemas/TypesError"
285
+ Unauthorized :
286
+ description : HTTP 401 Unauthorized
287
+ content :
288
+ application/json :
289
+ schema :
290
+ $ref : " #/components/schemas/TypesError"
291
+ Unexpected :
292
+ description : HTTP 500 Internal Server Error
293
+ content :
294
+ application/json :
295
+ schema :
296
+ $ref : " #/components/schemas/TypesError"
297
+ Generic400 :
298
+ description : Invalid argument
299
+ content :
300
+ application/json :
301
+ schema :
302
+ $ref : " #/components/schemas/ErrorInfo"
303
+ example :
304
+ status : 400
305
+ code : INVALID_ARGUMENT
306
+ message : " Invalid argument"
307
+
308
+ Generic401 :
309
+ description : Unauthenticated
310
+ content :
311
+ application/json :
312
+ schema :
313
+ $ref : " #/components/schemas/ErrorInfo"
314
+ example :
315
+ status : 401
316
+ code : UNAUTHENTICATED
317
+ message : " Authorization failed: ..."
318
+
319
+ Generic403 :
320
+ description : Permission denied
321
+ content :
322
+ application/json :
323
+ schema :
324
+ $ref : " #/components/schemas/ErrorInfo"
325
+ example :
326
+ status : 403
327
+ code : PERMISSION_DENIED
328
+ message : " Operation not allowed: ..."
329
+
330
+ Generic404 :
331
+ description : Not found
332
+ content :
333
+ application/json :
334
+ schema :
335
+ $ref : " #/components/schemas/ErrorInfo"
336
+ example :
337
+ status : 404
338
+ code : NOT_FOUND
339
+ message : " The specified resource is not found"
340
+
341
+ Generic409 :
342
+ description : Conflict
343
+ content :
344
+ application/json :
345
+ schema :
346
+ $ref : " #/components/schemas/ErrorInfo"
347
+ example :
348
+ status : 409
349
+ code : Conflict
350
+ message : " There is conflict in the request"
351
+
352
+ Generic500 :
353
+ description : Internal server error
354
+ content :
355
+ application/json :
356
+ schema :
357
+ $ref : " #/components/schemas/ErrorInfo"
358
+ example :
359
+ status : 500
360
+ code : INTERNAL
361
+ message : " Internal server error"
362
+
363
+ Generic503 :
364
+ description : application unavailable
365
+ content :
366
+ application/json :
367
+ schema :
368
+ $ref : " #/components/schemas/ErrorInfo"
369
+ example :
370
+ status : 503
371
+ code : UNAVAILABLE
372
+ message : " application unavailable"
0 commit comments