Wiki source code of Webhooks

Last modified by Marcus Calverley on 2024/03/06 15:26

Show last authors
1 Webhooks are a way for integrations developed by airports or third parties to be notified of updates in Better Airport. Webhooks are URL registrations in Better Airport for different event types. Each URL will be sent an HTTP POST request containing a JSON payload with details whenever an event of the registered type happens within Better Airport. The payload will typically refer to one or more URLs on the Better Airport API that will provide the actual data.
2
3 {{toc depth="6"/}}
4
5 = Registration Process =
6
7 Webhooks are currently registered manually by communicating with your Copenhagen Optimization contact. In the future, we want to provide an interface in Better Airport to administer registrations and provide other features to work with webhooks.
8 To register a webhook, provide the following information:
9
10 * Type of event to receive.
11 * URL to receive the JSON payload when the event is triggered.
12 * Credentials or other headers that must be sent in the request.
13
14 = Source Addresses =
15
16 Webhooks will be sent from one of the following IP addresses:
17
18 EU region:
19
20 * 34.77.254.44
21 * 34.76.104.16
22 * 35.195.136.235
23
24 US region:
25
26 * 34.145.57.117
27 * 34.82.72.191
28 * 34.105.72.61
29
30 CA region:
31
32 * 34.152.51.111
33 * 34.118.161.97
34 * 34.118.181.2
35
36 Legacy infrastructure:
37
38 * 35.195.31.165
39 * 35.205.103.107
40 * 104.155.101.99
41
42 = Error Handling =
43
44 If the webhook endpoint called does not return a success HTTP code (e.g. 200), then the system will try again indefinitely with an exponential back-off of up to 5 minutes between each call. All pending events will be blocked until the failing POST request no longer fails. This ensures that all events will always be received in the correct order, but could mean that many events will be received in quick succession when the webhook endpoint becomes operational again.
45
46 = Event Types =
47
48 Each event type available via webhooks has a different payload. If using the same endpoint to handle multiple types of events, the {{code language="json"}}"type"{{/code}} field can be used to differentiate between event types before reading other fields of the webhook.
49
50 == Better Baggage ==
51
52 === Counter Allocation Plan Published ===
53
54 When a baggage counter allocation plan has been published, an event with the following type will be sent:
55
56 {{code language="json"}}
57 {
58 "counterAllocation": {
59 "url": string,
60 "period": {
61 "fromTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz",
62 "toTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
63 }
64 },
65 "type": "bbg.counterAllocation",
66 "id": string,
67 "timestamp": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
68 }
69 {{/code}}
70
71 |=Field Name|=Description|=Example
72 |id|Unique identifier of the event|{{code language="json"}}"1018a935-a60e-43a6-a13b-59022852fe07"{{/code}}
73 |type|Event type identifier, will always be bbg.counterAllocation|{{code language="json"}}"bbg.counterAllocation"{{/code}}
74 |timestamp|Date and time of the event|{{code language="json"}}"2024-02-27T15:41:17.116942+00:00"{{/code}}
75 |counterAllocation.url|URL on the Better Airport API where the counter allocation plan can be fetched|{{code language="json"}}"https://betterairport.ca/demo/api/o/5e9bd5bcd087/Baggage/Terminals/5fb42dbf-9ee4-47ca-b1eb-27c48fcd68a1/AllocationPlans/2024-02-28"{{/code}}
76 |counterAllocation.period|Time period the counter allocation plan covers|{{code language="json"}}{"fromTime": "2024-02-28T00:00:00-05:00", "toTime": "2024-02-28T23:59:59.9999999-05:00"}{{/code}}
77
78 Example:
79
80 {{code language="json"}}
81 {
82 "counterAllocation": {
83 "url": "https://betterairport.ca/demo/api/o/5e9bd5bcd087/Baggage/Terminals/5fb42dbf-9ee4-47ca-b1eb-27c48fcd68a1/AllocationPlans/2024-02-28",
84 "period": {
85 "fromTime": "2024-02-28T00:00:00-05:00",
86 "toTime": "2024-02-28T23:59:59.9999999-05:00"
87 }
88 },
89 "type": "bbg.counterAllocation",
90 "id": "c630b63f-5e77-40ce-871c-a5f5374c5fd1",
91 "timestamp": "2024-02-27T15:41:17.116942+00:00"
92 }
93 {{/code}}
94
95 == Better Check-In ==
96
97 === Counter Allocation Plan Published ===
98
99 When a check-in counter allocation plan has been published, an event with the following type will be sent:
100
101 {{code language="json"}}
102 {
103 "counterAllocation": {
104 "url": string,
105 "period": {
106 "fromTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz",
107 "toTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
108 }
109 },
110 "type": "bci.counterAllocation",
111 "id": string,
112 "timestamp": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
113 }
114 {{/code}}
115
116 |=Field Name|=Description|=Example
117 |id|Unique identifier of the event|{{code language="json"}}"1018a935-a60e-43a6-a13b-59022852fe07"{{/code}}
118 |type|Event type identifier, will always be bci.counterAllocation|{{code language="json"}}"bci.counterAllocation"{{/code}}
119 |timestamp|Date and time of the event|{{code language="json"}}"2024-02-27T15:58:53.0762883+00:00"{{/code}}
120 |counterAllocation.url|URL on the Better Airport API where the counter allocation plan can be fetched|{{code language="json"}}"https://betterairport.ca/demo/api/o/7c5f78dd7619/CheckIn/Terminals/357bdfe0-a206-413f-9b27-50f94809e9a2/AllocationPlans/2024-02-27"{{/code}}
121 |counterAllocation.period|Time period the counter allocation plan covers|{{code language="json"}}{"fromTime": "2024-02-27T00:00:00-05:00", "toTime": "2024-02-27T23:59:59.9999999-05:00"}{{/code}}
122
123 Example:
124
125 {{code language="json"}}
126 {
127 "counterAllocation": {
128 "url": "https://betterairport.ca/demo/api/o/7c5f78dd7619/CheckIn/Terminals/357bdfe0-a206-413f-9b27-50f94809e9a2/AllocationPlans/2024-02-27",
129 "period": {
130 "fromTime": "2024-02-27T00:00:00-05:00",
131 "toTime": "2024-02-27T23:59:59.9999999-05:00"
132 }
133 },
134 "type": "bci.counterAllocation",
135 "id": "09377172-e955-4816-8c7a-91e3eec2662b",
136 "timestamp": "2024-02-27T15:58:53.0762883+00:00"
137 }
138 {{/code}}
139
140 == Better Forecast ==
141
142 === Flight Load Factor Forecast Published ===
143
144 When a flight load factor forecast is published, an event with the following type will be sent:
145
146 {{code language="json"}}
147 {
148 "publishId": string,
149 "forecastUrl": string,
150 "period": {
151 "fromTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz",
152 "toTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
153 },
154 "type": "bf.loadFactorForecastPublished",
155 "id": string,
156 "timestamp": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
157 }
158 {{/code}}
159
160 |=Field Name|=Description|=Example
161 |id|Unique identifier of the event|{{code language="json"}}"9aa617c7-3fe4-4f77-a16f-a55f1dd5f0c4"{{/code}}
162 |type|Event type identifier, will always be bf.loadFactorForecastPublished|{{code language="json"}}"bf.loadFactorForecastPublished"{{/code}}
163 |timestamp|Date and time of the event|{{code language="json"}}"2024-02-27T15:14:40.4719166+00:00"{{/code}}
164 |forecastUrl|Array of URLs on the Better Airport API where the load factor forecast can be fetched, one for each day|{{code language="json"}}"https://betterairport.ca/demo/api/o/7c5f78dd7619/Forecast/LoadFactor/Published/2024-02-27"{{/code}}
165 |period|Time period that was published in Better Forecast|{{code language="json"}}{"fromTime": "2024-02-27T00:00:00-05:00", "toTime": "2024-02-27T23:59:59.9999999-05:00"}{{/code}}
166
167 Example:
168
169 {{code language="json"}}
170 {
171 "publishId": "d3cf40f6-a315-47be-9a5e-c407aa447319",
172 "forecastUrl": "https://betterairport.ca/demo/api/o/7c5f78dd7619/Forecast/LoadFactor/Published/2024-02-27",
173 "period": {
174 "fromTime": "2024-02-27T00:00:00-05:00",
175 "toTime": "2024-02-27T23:59:59.9999999-05:00"
176 },
177 "type": "bf.loadFactorForecastPublished",
178 "id": "e0b9fe5e-226e-49d0-bae8-f8781c1ae565",
179 "timestamp": "2024-02-27T15:14:40.4719166+00:00"
180 }
181 {{/code}}
182
183 === Passenger Show Up Forecast Published ===
184
185 When a passenger show up forecast is published, an event with the following type will be sent:
186
187 {{code language="json"}}
188 {
189 "publishId": string,
190 "forecastUrl": string,
191 "period": {
192 "fromTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz",
193 "toTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
194 },
195 "type": "bf.showUpForecastPublished",
196 "id": string,
197 "timestamp": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
198 }
199 {{/code}}
200
201 Note: A separate event will be sent for each day a show up forecast is published.
202
203 |=Field Name|=Description|=Example
204 |id|Unique identifier of the event|{{code language="json"}}"64c116df-7985-4ee9-9e90-277dcb07e98d"{{/code}}
205 |type|Event type identifier, will always be bf.showUpForecastPublished|{{code language="json"}}"bf.showUpForecastPublished"{{/code}}
206 |timestamp|Date and time of the event|{{code language="json"}}"2024-02-27T14:31:49.5557417+00:00"{{/code}}
207 |forecastUrl|(((
208 URL on the Better Airport API where the show up forecast can be fetched
209 )))|{{code language="json"}}"https://betterairport.ca/demo/api/o/7c5f78dd7619/Forecast/ShowUp/Published/2024-02-27"{{/code}}
210 |period|Time period that was published in Better Forecast|{{code language="json"}}{"fromTime": "2024-02-27T00:00:00-05:00", "toTime": "2024-02 27T23:59:59.9999999-05:00"}{{/code}}
211
212 Example:
213
214 {{code language="json"}}
215 {
216 "publishId": "34ae0fa8-aa90-43c3-a5ce-1ff4239fc051",
217 "forecastUrl": "https://betterairport.ca/demo/api/o/7c5f78dd7619/Forecast/ShowUp/Published/2024-02-27",
218 "period": {
219 "fromTime": "2024-02-27T00:00:00-05:00",
220 "toTime": "2024-02-27T23:59:59.9999999-05:00"
221 },
222 "type": "bf.showUpForecastPublished",
223 "id": "257cdad6-22da-4017-ba20-5f061b49b4f1",
224 "timestamp": "2024-02-27T14:31:49.5557417+00:00"
225 }
226 {{/code}}
227
228 == Better Security ==
229
230 === Lane Plan Published ===
231
232 When a lane plan has been published, an event with the following type will be sent:
233
234 {{code language="json"}}
235 {
236 "lanePlan": {
237 "url": string,
238 "period": {
239 "fromTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz",
240 "toTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
241 }
242 },
243 "type": "bs.lanePlan",
244 "id": string,
245 "timestamp": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
246 }
247 {{/code}}
248
249 |=Field Name|=Description|=Example
250 |id|Unique identifier of the event|{{code language="json"}}"1018a935-a60e-43a6-a13b-59022852fe07"{{/code}}
251 |type|Event type identifier, will always be bs.lanePlan|{{code language="json"}}"bs.lanePlan"{{/code}}
252 |timestamp|Date and time of the event|{{code language="json"}}"2024-03-01T11:25:29.1017705+00:00"{{/code}}
253 |lanePlan.url|URL on the Better Airport API where the lane plan can be fetched|{{code language="json"}}"https://betterairport.eu/demo/api/o/79d9659e8d36/ResourceDemand/security/checkpoints/654b94074c3abbf7dfbe3fc0/2023-11-29"{{/code}}
254 |lanePlan.period|Time period the lane plan covers|{{code language="json"}}{"fromTime": "2023-11-29T00:00:00+01:00", "toTime": "2023-11-29T23:59:59.9999999+01:00"}{{/code}}
255
256 Example:
257
258 {{code language="json"}}
259 {
260 "lanePlan": {
261 "url": "https://betterairport.eu/demo/api/o/79d9659e8d36/ResourceDemand/security/checkpoints/654b94074c3abbf7dfbe3fc0/2023-11-29",
262 "period": {
263 "fromTime": "2023-11-29T00:00:00+01:00",
264 "toTime": "2023-11-29T23:59:59.9999999+01:00"
265 }
266 },
267 "type": "bs.lanePlan",
268 "id": "d1bc6a77-f8ff-454f-9511-037120a27c7f",
269 "timestamp": "2024-03-01T11:25:29.1017705+00:00"
270 }
271 {{/code}}
272
273 === Staff Plan Published ===
274
275 When a staff plan has been published, an event with the following type will be sent:
276
277 {{code language="json"}}
278 {
279 "staffPlan": {
280 "url": string,
281 "period": {
282 "fromTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz",
283 "toTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
284 }
285 },
286 "type": "bs.staffPlan",
287 "id": string,
288 "timestamp": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
289 }
290 {{/code}}
291
292 |=Field Name|=Description|=Example
293 |id|Unique identifier of the event|{{code language="json"}}"d2458e4f-c44b-419b-ab26-6921581f0a6e"{{/code}}
294 |type|Event type identifier, will always be bs.staffPlan|{{code language="json"}}"bs.staffPlan"{{/code}}
295 |timestamp|Date and time of the event|{{code language="json"}}"2024-03-01T11:29:59.7871733+00:00"{{/code}}
296 |staffPlan.url|URL on the Better Airport API where the staff plan can be fetched|{{code language="json"}}"https://betterairport.eu/demo/api/o/79d9659e8d36/ResourceDemand/security/StaffPlans/2023-11-29"{{/code}}
297 |staffPlan.period|Time period the staff plan covers|{{code language="json"}}{"fromTime": "2023-11-29T00:00:00+01:00", "toTime": "2023-11-29T23:59:59.9999999+01:00"}{{/code}}
298
299 Example:
300
301 {{code language="json"}}
302 {
303 "staffPlan": {
304 "url": "https://betterairport.eu/demo/api/o/79d9659e8d36/ResourceDemand/security/StaffPlans/2023-11-29",
305 "period": {
306 "fromTime": "2023-11-29T00:00:00+01:00",
307 "toTime": "2023-11-29T23:59:59.9999999+01:00"
308 }
309 },
310 "type": "bs.staffPlan",
311 "id": "018bb9be-d249-409a-8060-5fa73c15d805",
312 "timestamp": "2024-03-01T11:29:59.7871733+00:00"
313 }
314 {{/code}}
315
316 == Better Demand ==
317
318 === Lane Plan Published ===
319
320 When a lane plan has been published, an event with the following type will be sent:
321
322 {{code language="json"}}
323 {
324 "lanePlan": {
325 "url": string,
326 "period": {
327 "fromTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz",
328 "toTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
329 }
330 },
331 "type": "bd.lanePlan",
332 "id": string,
333 "timestamp": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
334 }
335 {{/code}}
336
337 |=Field Name|=Description|=Example
338 |id|Unique identifier of the event|{{code language="json"}}"1018a935-a60e-43a6-a13b-59022852fe07"{{/code}}
339 |type|Event type identifier, will always be bd.lanePlan|{{code language="json"}}"bd.lanePlan"{{/code}}
340 |timestamp|Date and time of the event|{{code language="json"}}"2024-03-01T11:25:29.1017705+00:00"{{/code}}
341 |lanePlan.url|URL on the Better Airport API where the lane plan can be fetched|{{code language="json"}}"https://betterairport.eu/demo/api/o/79d9659e8d36/ResourceDemand/demand/checkpoints/654b94074c3abbf7dfbe3fc0/2023-11-29"{{/code}}
342 |lanePlan.period|Time period the lane plan covers|{{code language="json"}}{"fromTime": "2023-11-29T00:00:00+01:00", "toTime": "2023-11-29T23:59:59.9999999+01:00"}{{/code}}
343
344 Example:
345
346 {{code language="json"}}
347 {
348 "lanePlan": {
349 "url": "https://betterairport.eu/demo/api/o/79d9659e8d36/ResourceDemand/demand/checkpoints/654b94074c3abbf7dfbe3fc0/2023-11-29",
350 "period": {
351 "fromTime": "2023-11-29T00:00:00+01:00",
352 "toTime": "2023-11-29T23:59:59.9999999+01:00"
353 }
354 },
355 "type": "bd.lanePlan",
356 "id": "d1bc6a77-f8ff-454f-9511-037120a27c7f",
357 "timestamp": "2024-03-01T11:25:29.1017705+00:00"
358 }
359 {{/code}}
360
361 === Staff Plan Published ===
362
363 When a staff plan has been published, an event with the following type will be sent:
364
365 {{code language="json"}}
366 {
367 "staffPlan": {
368 "url": string,
369 "period": {
370 "fromTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz",
371 "toTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
372 }
373 },
374 "type": "bd.staffPlan",
375 "id": string,
376 "timestamp": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
377 }
378 {{/code}}
379
380 |=Field Name|=Description|=Example
381 |id|Unique identifier of the event|{{code language="json"}}"d2458e4f-c44b-419b-ab26-6921581f0a6e"{{/code}}
382 |type|Event type identifier, will always be bd.staffPlan|{{code language="json"}}"bd.staffPlan"{{/code}}
383 |timestamp|Date and time of the event|{{code language="json"}}"2024-03-01T11:29:59.7871733+00:00"{{/code}}
384 |staffPlan.url|URL on the Better Airport API where the staff plan can be fetched|{{code language="json"}}"https://betterairport.eu/demo/api/o/79d9659e8d36/ResourceDemand/demand/StaffPlans/2023-11-29"{{/code}}
385 |staffPlan.period|Time period the staff plan covers|{{code language="json"}}{"fromTime": "2023-11-29T00:00:00+01:00", "toTime": "2023-11-29T23:59:59.9999999+01:00"}{{/code}}
386
387 Example:
388
389 {{code language="json"}}
390 {
391 "staffPlan": {
392 "url": "https://betterairport.eu/demo/api/o/79d9659e8d36/ResourceDemand/demand/StaffPlans/2023-11-29",
393 "period": {
394 "fromTime": "2023-11-29T00:00:00+01:00",
395 "toTime": "2023-11-29T23:59:59.9999999+01:00"
396 }
397 },
398 "type": "bd.staffPlan",
399 "id": "018bb9be-d249-409a-8060-5fa73c15d805",
400 "timestamp": "2024-03-01T11:29:59.7871733+00:00"
401 }
402 {{/code}}
403
404 == (% id="cke_bm_7521S" style="display:none" %) (%%)Better Border ==
405
406 === Lane Plan Published ===
407
408 When a lane plan has been published, an event with the following type will be sent:
409
410 {{code language="json"}}
411 {
412 "lanePlan": {
413 "url": string,
414 "period": {
415 "fromTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz",
416 "toTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
417 }
418 },
419 "type": "bb.lanePlan",
420 "id": string,
421 "timestamp": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
422 }
423 {{/code}}
424
425 |=Field Name|=Description|=Example
426 |id|Unique identifier of the event|{{code language="json"}}"1018a935-a60e-43a6-a13b-59022852fe07"{{/code}}
427 |type|Event type identifier, will always be bb.lanePlan|{{code language="json"}}"bb.lanePlan"{{/code}}
428 |timestamp|Date and time of the event|{{code language="json"}}"2024-03-01T11:25:29.1017705+00:00"{{/code}}
429 |lanePlan.url|URL on the Better Airport API where the lane plan can be fetched|{{code language="json"}}"https://betterairport.eu/demo/api/o/79d9659e8d36/ResourceDemand/border/checkpoints/654b94074c3abbf7dfbe3fc0/2023-11-29"{{/code}}
430 |lanePlan.period|Time period the lane plan covers|{{code language="json"}}{"fromTime": "2023-11-29T00:00:00+01:00", "toTime": "2023-11-29T23:59:59.9999999+01:00"}{{/code}}
431
432 Example:
433
434 {{code language="json"}}
435 {
436 "lanePlan": {
437 "url": "https://betterairport.eu/demo/api/o/79d9659e8d36/ResourceDemand/border/checkpoints/654b94074c3abbf7dfbe3fc0/2023-11-29",
438 "period": {
439 "fromTime": "2023-11-29T00:00:00+01:00",
440 "toTime": "2023-11-29T23:59:59.9999999+01:00"
441 }
442 },
443 "type": "bb.lanePlan",
444 "id": "d1bc6a77-f8ff-454f-9511-037120a27c7f",
445 "timestamp": "2024-03-01T11:25:29.1017705+00:00"
446 }
447 {{/code}}
448
449 === Staff Plan Published ===
450
451 When a staff plan has been published, an event with the following type will be sent:
452
453 {{code language="json"}}
454 {
455 "staffPlan": {
456 "url": string,
457 "period": {
458 "fromTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz",
459 "toTime": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
460 }
461 },
462 "type": "bb.staffPlan",
463 "id": string,
464 "timestamp": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
465 }
466 {{/code}}
467
468 |=(% id="cke_bm_63936S" style="display:none" %) Field Name|=Description|=Example
469 |id|Unique identifier of the event|{{code language="json"}}"d2458e4f-c44b-419b-ab26-6921581f0a6e"{{/code}}
470 |type|Event type identifier, will always be bb.staffPlan|{{code language="json"}}"bb.staffPlan"{{/code}}
471 |timestamp|Date and time of the event|{{code language="json"}}"2024-03-01T11:29:59.7871733+00:00"{{/code}}
472 |staffPlan.url|URL on the Better Airport API where the staff plan can be fetched|{{code language="json"}}"https://betterairport.eu/demo/api/o/79d9659e8d36/ResourceDemand/border/StaffPlans/2023-11-29"{{/code}}
473 |staffPlan.period|Time period the staff plan covers|{{code language="json"}}{"fromTime": "2023-11-29T00:00:00+01:00", "toTime": "2023-11-29T23:59:59.9999999+01:00"}{{/code}}
474
475 Example:
476
477 {{code language="json"}}
478 {
479 "staffPlan": {
480 "url": "https://betterairport.eu/demo/api/o/79d9659e8d36/ResourceDemand/border/StaffPlans/2023-11-29",
481 "period": {
482 "fromTime": "2023-11-29T00:00:00+01:00",
483 "toTime": "2023-11-29T23:59:59.9999999+01:00"
484 }
485 },
486 "type": "bb.staffPlan",
487 "id": "018bb9be-d249-409a-8060-5fa73c15d805",
488 "timestamp": "2024-03-01T11:29:59.7871733+00:00"
489 }
490 {{/code}}
491
492 == Better VQ ==
493
494 === Flight Schedule Updated or Queue configuration Update or Eligibility Rule Updated ===
495
496 When the Flight Schedule has been updated in Better forecast or a Queue Configuration or Eligibility Rules that affects eligible flights has been updated. NOTE: A separate event will be sent for each day a Flight Schedule, Queue configuration or Eligibility Rules has been updated.
497
498 {{code language="json"}}
499 {
500 "url": string,
501 "type": "bf.virtualQueue.flightScheduleUpdated",
502 "id": string,
503 "timestamp": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
504 }
505 {{/code}}
506
507 |=(% id="cke_bm_237000S" style="display:none" %) (% id="cke_bm_63936S" style="display:none" %) (%%)Field Name|=Description|=Example
508 |id|Unique identifier of the event|{{code language="json"}}"d2458e4f-c44b-419b-ab26-6921581f0a6e"{{/code}}
509 |type|Event type identifier, will always be bf.virtualQueue.flightScheduleUpdated|{{code language="json"}}"bf.virtualQueue.flightScheduleUpdated"{{/code}}
510 |timestamp|Date and time of the event|{{code language="json"}}"2024-03-01T12:59:39.0862725+00:00"{{/code}}
511 |url|URL on the Better Airport API where the flight schedule can be fetched|{{code language="json"}}"https://betterairport.eu/demo/api/o/04f332b5663f/Forecast/QueueReservations/flights/2024-03-01"{{/code}}
512
513 Example:
514
515 {{code language="json"}}
516 {
517 "url": "https://betterairport.eu/demo/api/o/04f332b5663f/Forecast/QueueReservations/flights/2024-03-01",
518 "type": "bf.virtualQueue.flightScheduleUpdated",
519 "id": "6dea0273-0cd2-4070-8670-10822c5d3b28",
520 "timestamp": "2024-03-01T12:59:39.0862725+00:00"
521 }
522 {{/code}}
523
524 === Slot Plans Update or Queue Configuration Update ===
525
526 When the Slot Plan is updated or a Queue Configuration that affects the slot plan is updated.
527
528 {{code language="json"}}
529 {
530 "url": string,
531 "type": "bf.virtualQueue.slotPlansUpdated",
532 "id": string,
533 "timestamp": "yyyy-MM-ddTHH:mm:ss.fffffffzzz"
534 }
535 {{/code}}
536
537 |=(% id="cke_bm_663417S" style="display:none" %) (% id="cke_bm_237000S" style="display:none" %) (% id="cke_bm_63936S" style="display:none" %) (%%)Field Name|=Description|=Example
538 |id|Unique identifier of the event|{{code language="json"}}"d2458e4f-c44b-419b-ab26-6921581f0a6e"{{/code}}
539 |type|Event type identifier, will always be bf.virtualQueue.slotPlansUpdated|{{code language="json"}}"bf.virtualQueue.slotPlansUpdated"{{/code}}
540 |timestamp|Date and time of the event|{{code language="json"}}"2024-03-01T12:59:39.0862725+00:00"{{/code}}
541 |url|URL on the Better Airport API where the slot plan can be fetched|{{code language="json"}}"https://betterairport.eu/demo/api/o/04f332b5663f/Forecast/QueueReservations/plans/2024-03-01"{{/code}}
542
543 Example:
544
545 {{code language="json"}}
546 {
547 "url": "https://betterairport.eu/demo/api/o/04f332b5663f/Forecast/QueueReservations/plans/2024-03-01",
548 "type": "bf.virtualQueue.slotPlansUpdated",
549 "id": "bf47ad7f-8966-4a65-8270-5631a68ee40c",
550 "timestamp": "2024-03-01T13:34:04.2816973+00:00"
551 }
552 {{/code}}