res_stasis: Enable transfers and provide events when they occur.
[asterisk/asterisk.git] / res / ari / ari_model_validators.h
1 /*
2  * Asterisk -- An open source telephony toolkit.
3  *
4  * Copyright (C) 2013, Digium, Inc.
5  *
6  * See http://www.asterisk.org for more information about
7  * the Asterisk project. Please do not directly contact
8  * any of the maintainers of this project for assistance;
9  * the project provides a web site, mailing lists and IRC
10  * channels for your use.
11  *
12  * This program is free software, distributed under the terms of
13  * the GNU General Public License Version 2. See the LICENSE file
14  * at the top of the source tree.
15  */
16
17 /*! \file
18  *
19  * \brief Generated file - Build validators for ARI model objects.
20  *
21  * In addition to the normal validation functions one would normally expect,
22  * each validator has a ast_ari_validate_{id}_fn() companion function that returns
23  * the validator's function pointer.
24  *
25  * The reason for this seamingly useless indirection is the way function
26  * pointers interfere with module loading. Asterisk attempts to dlopen() each
27  * module using \c RTLD_LAZY in order to read some metadata from the module.
28  * Unfortunately, if you take the address of a function, the function has to be
29  * resolvable at load time, even if \c RTLD_LAZY is specified. By moving the
30  * function-address-taking into this module, we can once again be lazy.
31  */
32
33  /*
34  * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
35  * !!!!!                               DO NOT EDIT                        !!!!!
36  * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
37  * This file is generated by a mustache template. Please see the original
38  * template in rest-api-templates/ari_model_validators.h.mustache
39  */
40
41 #ifndef _ASTERISK_ARI_MODEL_H
42 #define _ASTERISK_ARI_MODEL_H
43
44 #include "asterisk/json.h"
45
46 /*! @{ */
47
48 /*!
49  * \brief Validator for native Swagger void.
50  *
51  * \param json JSON object to validate.
52  * \returns True (non-zero) if valid.
53  * \returns False (zero) if invalid.
54  */
55 int ast_ari_validate_void(struct ast_json *json);
56
57 /*!
58  * \brief Validator for native Swagger object.
59  *
60  * \param json JSON object to validate.
61  * \returns True (non-zero) if valid.
62  * \returns False (zero) if invalid.
63  */
64 int ast_ari_validate_object(struct ast_json *json);
65
66 /*!
67  * \brief Validator for native Swagger byte.
68  *
69  * \param json JSON object to validate.
70  * \returns True (non-zero) if valid.
71  * \returns False (zero) if invalid.
72  */
73 int ast_ari_validate_byte(struct ast_json *json);
74
75 /*!
76  * \brief Validator for native Swagger boolean.
77  *
78  * \param json JSON object to validate.
79  * \returns True (non-zero) if valid.
80  * \returns False (zero) if invalid.
81  */
82 int ast_ari_validate_boolean(struct ast_json *json);
83
84 /*!
85  * \brief Validator for native Swagger int.
86  *
87  * \param json JSON object to validate.
88  * \returns True (non-zero) if valid.
89  * \returns False (zero) if invalid.
90  */
91 int ast_ari_validate_int(struct ast_json *json);
92
93 /*!
94  * \brief Validator for native Swagger long.
95  *
96  * \param json JSON object to validate.
97  * \returns True (non-zero) if valid.
98  * \returns False (zero) if invalid.
99  */
100 int ast_ari_validate_long(struct ast_json *json);
101
102 /*!
103  * \brief Validator for native Swagger float.
104  *
105  * \param json JSON object to validate.
106  * \returns True (non-zero) if valid.
107  * \returns False (zero) if invalid.
108  */
109 int ast_ari_validate_float(struct ast_json *json);
110
111 /*!
112  * \brief Validator for native Swagger double.
113  *
114  * \param json JSON object to validate.
115  * \returns True (non-zero) if valid.
116  * \returns False (zero) if invalid.
117  */
118 int ast_ari_validate_double(struct ast_json *json);
119
120 /*!
121  * \brief Validator for native Swagger string.
122  *
123  * \param json JSON object to validate.
124  * \returns True (non-zero) if valid.
125  * \returns False (zero) if invalid.
126  */
127 int ast_ari_validate_string(struct ast_json *json);
128
129 /*!
130  * \brief Validator for native Swagger date.
131  *
132  * \param json JSON object to validate.
133  * \returns True (non-zero) if valid.
134  * \returns False (zero) if invalid.
135  */
136 int ast_ari_validate_date(struct ast_json *json);
137
138 /*!
139  * \brief Validator for a Swagger List[]/JSON array.
140  *
141  * \param json JSON object to validate.
142  * \param fn Validator to call on every element in the array.
143  * \returns True (non-zero) if valid.
144  * \returns False (zero) if invalid.
145  */
146 int ast_ari_validate_list(struct ast_json *json, int (*fn)(struct ast_json *));
147
148 /*! @} */
149
150 /*!
151  * \brief Function type for validator functions. Allows for 
152  */
153 typedef int (*ari_validator)(struct ast_json *json);
154
155 /*!
156  * \brief Validator for AsteriskInfo.
157  *
158  * Asterisk system information
159  *
160  * \param json JSON object to validate.
161  * \returns True (non-zero) if valid.
162  * \returns False (zero) if invalid.
163  */
164 int ast_ari_validate_asterisk_info(struct ast_json *json);
165
166 /*!
167  * \brief Function pointer to ast_ari_validate_asterisk_info().
168  *
169  * See \ref ast_ari_model_validators.h for more details.
170  */
171 ari_validator ast_ari_validate_asterisk_info_fn(void);
172
173 /*!
174  * \brief Validator for BuildInfo.
175  *
176  * Info about how Asterisk was built
177  *
178  * \param json JSON object to validate.
179  * \returns True (non-zero) if valid.
180  * \returns False (zero) if invalid.
181  */
182 int ast_ari_validate_build_info(struct ast_json *json);
183
184 /*!
185  * \brief Function pointer to ast_ari_validate_build_info().
186  *
187  * See \ref ast_ari_model_validators.h for more details.
188  */
189 ari_validator ast_ari_validate_build_info_fn(void);
190
191 /*!
192  * \brief Validator for ConfigInfo.
193  *
194  * Info about Asterisk configuration
195  *
196  * \param json JSON object to validate.
197  * \returns True (non-zero) if valid.
198  * \returns False (zero) if invalid.
199  */
200 int ast_ari_validate_config_info(struct ast_json *json);
201
202 /*!
203  * \brief Function pointer to ast_ari_validate_config_info().
204  *
205  * See \ref ast_ari_model_validators.h for more details.
206  */
207 ari_validator ast_ari_validate_config_info_fn(void);
208
209 /*!
210  * \brief Validator for SetId.
211  *
212  * Effective user/group id
213  *
214  * \param json JSON object to validate.
215  * \returns True (non-zero) if valid.
216  * \returns False (zero) if invalid.
217  */
218 int ast_ari_validate_set_id(struct ast_json *json);
219
220 /*!
221  * \brief Function pointer to ast_ari_validate_set_id().
222  *
223  * See \ref ast_ari_model_validators.h for more details.
224  */
225 ari_validator ast_ari_validate_set_id_fn(void);
226
227 /*!
228  * \brief Validator for StatusInfo.
229  *
230  * Info about Asterisk status
231  *
232  * \param json JSON object to validate.
233  * \returns True (non-zero) if valid.
234  * \returns False (zero) if invalid.
235  */
236 int ast_ari_validate_status_info(struct ast_json *json);
237
238 /*!
239  * \brief Function pointer to ast_ari_validate_status_info().
240  *
241  * See \ref ast_ari_model_validators.h for more details.
242  */
243 ari_validator ast_ari_validate_status_info_fn(void);
244
245 /*!
246  * \brief Validator for SystemInfo.
247  *
248  * Info about Asterisk
249  *
250  * \param json JSON object to validate.
251  * \returns True (non-zero) if valid.
252  * \returns False (zero) if invalid.
253  */
254 int ast_ari_validate_system_info(struct ast_json *json);
255
256 /*!
257  * \brief Function pointer to ast_ari_validate_system_info().
258  *
259  * See \ref ast_ari_model_validators.h for more details.
260  */
261 ari_validator ast_ari_validate_system_info_fn(void);
262
263 /*!
264  * \brief Validator for Variable.
265  *
266  * The value of a channel variable
267  *
268  * \param json JSON object to validate.
269  * \returns True (non-zero) if valid.
270  * \returns False (zero) if invalid.
271  */
272 int ast_ari_validate_variable(struct ast_json *json);
273
274 /*!
275  * \brief Function pointer to ast_ari_validate_variable().
276  *
277  * See \ref ast_ari_model_validators.h for more details.
278  */
279 ari_validator ast_ari_validate_variable_fn(void);
280
281 /*!
282  * \brief Validator for Endpoint.
283  *
284  * An external device that may offer/accept calls to/from Asterisk.
285  *
286  * Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.
287  *
288  * \param json JSON object to validate.
289  * \returns True (non-zero) if valid.
290  * \returns False (zero) if invalid.
291  */
292 int ast_ari_validate_endpoint(struct ast_json *json);
293
294 /*!
295  * \brief Function pointer to ast_ari_validate_endpoint().
296  *
297  * See \ref ast_ari_model_validators.h for more details.
298  */
299 ari_validator ast_ari_validate_endpoint_fn(void);
300
301 /*!
302  * \brief Validator for CallerID.
303  *
304  * Caller identification
305  *
306  * \param json JSON object to validate.
307  * \returns True (non-zero) if valid.
308  * \returns False (zero) if invalid.
309  */
310 int ast_ari_validate_caller_id(struct ast_json *json);
311
312 /*!
313  * \brief Function pointer to ast_ari_validate_caller_id().
314  *
315  * See \ref ast_ari_model_validators.h for more details.
316  */
317 ari_validator ast_ari_validate_caller_id_fn(void);
318
319 /*!
320  * \brief Validator for Channel.
321  *
322  * A specific communication connection between Asterisk and an Endpoint.
323  *
324  * \param json JSON object to validate.
325  * \returns True (non-zero) if valid.
326  * \returns False (zero) if invalid.
327  */
328 int ast_ari_validate_channel(struct ast_json *json);
329
330 /*!
331  * \brief Function pointer to ast_ari_validate_channel().
332  *
333  * See \ref ast_ari_model_validators.h for more details.
334  */
335 ari_validator ast_ari_validate_channel_fn(void);
336
337 /*!
338  * \brief Validator for Dialed.
339  *
340  * Dialed channel information.
341  *
342  * \param json JSON object to validate.
343  * \returns True (non-zero) if valid.
344  * \returns False (zero) if invalid.
345  */
346 int ast_ari_validate_dialed(struct ast_json *json);
347
348 /*!
349  * \brief Function pointer to ast_ari_validate_dialed().
350  *
351  * See \ref ast_ari_model_validators.h for more details.
352  */
353 ari_validator ast_ari_validate_dialed_fn(void);
354
355 /*!
356  * \brief Validator for DialplanCEP.
357  *
358  * Dialplan location (context/extension/priority)
359  *
360  * \param json JSON object to validate.
361  * \returns True (non-zero) if valid.
362  * \returns False (zero) if invalid.
363  */
364 int ast_ari_validate_dialplan_cep(struct ast_json *json);
365
366 /*!
367  * \brief Function pointer to ast_ari_validate_dialplan_cep().
368  *
369  * See \ref ast_ari_model_validators.h for more details.
370  */
371 ari_validator ast_ari_validate_dialplan_cep_fn(void);
372
373 /*!
374  * \brief Validator for Bridge.
375  *
376  * The merging of media from one or more channels.
377  *
378  * Everyone on the bridge receives the same audio.
379  *
380  * \param json JSON object to validate.
381  * \returns True (non-zero) if valid.
382  * \returns False (zero) if invalid.
383  */
384 int ast_ari_validate_bridge(struct ast_json *json);
385
386 /*!
387  * \brief Function pointer to ast_ari_validate_bridge().
388  *
389  * See \ref ast_ari_model_validators.h for more details.
390  */
391 ari_validator ast_ari_validate_bridge_fn(void);
392
393 /*!
394  * \brief Validator for LiveRecording.
395  *
396  * A recording that is in progress
397  *
398  * \param json JSON object to validate.
399  * \returns True (non-zero) if valid.
400  * \returns False (zero) if invalid.
401  */
402 int ast_ari_validate_live_recording(struct ast_json *json);
403
404 /*!
405  * \brief Function pointer to ast_ari_validate_live_recording().
406  *
407  * See \ref ast_ari_model_validators.h for more details.
408  */
409 ari_validator ast_ari_validate_live_recording_fn(void);
410
411 /*!
412  * \brief Validator for StoredRecording.
413  *
414  * A past recording that may be played back.
415  *
416  * \param json JSON object to validate.
417  * \returns True (non-zero) if valid.
418  * \returns False (zero) if invalid.
419  */
420 int ast_ari_validate_stored_recording(struct ast_json *json);
421
422 /*!
423  * \brief Function pointer to ast_ari_validate_stored_recording().
424  *
425  * See \ref ast_ari_model_validators.h for more details.
426  */
427 ari_validator ast_ari_validate_stored_recording_fn(void);
428
429 /*!
430  * \brief Validator for FormatLangPair.
431  *
432  * Identifies the format and language of a sound file
433  *
434  * \param json JSON object to validate.
435  * \returns True (non-zero) if valid.
436  * \returns False (zero) if invalid.
437  */
438 int ast_ari_validate_format_lang_pair(struct ast_json *json);
439
440 /*!
441  * \brief Function pointer to ast_ari_validate_format_lang_pair().
442  *
443  * See \ref ast_ari_model_validators.h for more details.
444  */
445 ari_validator ast_ari_validate_format_lang_pair_fn(void);
446
447 /*!
448  * \brief Validator for Sound.
449  *
450  * A media file that may be played back.
451  *
452  * \param json JSON object to validate.
453  * \returns True (non-zero) if valid.
454  * \returns False (zero) if invalid.
455  */
456 int ast_ari_validate_sound(struct ast_json *json);
457
458 /*!
459  * \brief Function pointer to ast_ari_validate_sound().
460  *
461  * See \ref ast_ari_model_validators.h for more details.
462  */
463 ari_validator ast_ari_validate_sound_fn(void);
464
465 /*!
466  * \brief Validator for Playback.
467  *
468  * Object representing the playback of media to a channel
469  *
470  * \param json JSON object to validate.
471  * \returns True (non-zero) if valid.
472  * \returns False (zero) if invalid.
473  */
474 int ast_ari_validate_playback(struct ast_json *json);
475
476 /*!
477  * \brief Function pointer to ast_ari_validate_playback().
478  *
479  * See \ref ast_ari_model_validators.h for more details.
480  */
481 ari_validator ast_ari_validate_playback_fn(void);
482
483 /*!
484  * \brief Validator for DeviceState.
485  *
486  * Represents the state of a device.
487  *
488  * \param json JSON object to validate.
489  * \returns True (non-zero) if valid.
490  * \returns False (zero) if invalid.
491  */
492 int ast_ari_validate_device_state(struct ast_json *json);
493
494 /*!
495  * \brief Function pointer to ast_ari_validate_device_state().
496  *
497  * See \ref ast_ari_model_validators.h for more details.
498  */
499 ari_validator ast_ari_validate_device_state_fn(void);
500
501 /*!
502  * \brief Validator for Mailbox.
503  *
504  * Represents the state of a mailbox.
505  *
506  * \param json JSON object to validate.
507  * \returns True (non-zero) if valid.
508  * \returns False (zero) if invalid.
509  */
510 int ast_ari_validate_mailbox(struct ast_json *json);
511
512 /*!
513  * \brief Function pointer to ast_ari_validate_mailbox().
514  *
515  * See \ref ast_ari_model_validators.h for more details.
516  */
517 ari_validator ast_ari_validate_mailbox_fn(void);
518
519 /*!
520  * \brief Validator for ApplicationReplaced.
521  *
522  * Notification that another WebSocket has taken over for an application.
523  *
524  * An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.
525  *
526  * \param json JSON object to validate.
527  * \returns True (non-zero) if valid.
528  * \returns False (zero) if invalid.
529  */
530 int ast_ari_validate_application_replaced(struct ast_json *json);
531
532 /*!
533  * \brief Function pointer to ast_ari_validate_application_replaced().
534  *
535  * See \ref ast_ari_model_validators.h for more details.
536  */
537 ari_validator ast_ari_validate_application_replaced_fn(void);
538
539 /*!
540  * \brief Validator for BridgeAttendedTransfer.
541  *
542  * Notification that an attended transfer has occurred.
543  *
544  * \param json JSON object to validate.
545  * \returns True (non-zero) if valid.
546  * \returns False (zero) if invalid.
547  */
548 int ast_ari_validate_bridge_attended_transfer(struct ast_json *json);
549
550 /*!
551  * \brief Function pointer to ast_ari_validate_bridge_attended_transfer().
552  *
553  * See \ref ast_ari_model_validators.h for more details.
554  */
555 ari_validator ast_ari_validate_bridge_attended_transfer_fn(void);
556
557 /*!
558  * \brief Validator for BridgeBlindTransfer.
559  *
560  * Notification that a blind transfer has occurred.
561  *
562  * \param json JSON object to validate.
563  * \returns True (non-zero) if valid.
564  * \returns False (zero) if invalid.
565  */
566 int ast_ari_validate_bridge_blind_transfer(struct ast_json *json);
567
568 /*!
569  * \brief Function pointer to ast_ari_validate_bridge_blind_transfer().
570  *
571  * See \ref ast_ari_model_validators.h for more details.
572  */
573 ari_validator ast_ari_validate_bridge_blind_transfer_fn(void);
574
575 /*!
576  * \brief Validator for BridgeCreated.
577  *
578  * Notification that a bridge has been created.
579  *
580  * \param json JSON object to validate.
581  * \returns True (non-zero) if valid.
582  * \returns False (zero) if invalid.
583  */
584 int ast_ari_validate_bridge_created(struct ast_json *json);
585
586 /*!
587  * \brief Function pointer to ast_ari_validate_bridge_created().
588  *
589  * See \ref ast_ari_model_validators.h for more details.
590  */
591 ari_validator ast_ari_validate_bridge_created_fn(void);
592
593 /*!
594  * \brief Validator for BridgeDestroyed.
595  *
596  * Notification that a bridge has been destroyed.
597  *
598  * \param json JSON object to validate.
599  * \returns True (non-zero) if valid.
600  * \returns False (zero) if invalid.
601  */
602 int ast_ari_validate_bridge_destroyed(struct ast_json *json);
603
604 /*!
605  * \brief Function pointer to ast_ari_validate_bridge_destroyed().
606  *
607  * See \ref ast_ari_model_validators.h for more details.
608  */
609 ari_validator ast_ari_validate_bridge_destroyed_fn(void);
610
611 /*!
612  * \brief Validator for BridgeMerged.
613  *
614  * Notification that one bridge has merged into another.
615  *
616  * \param json JSON object to validate.
617  * \returns True (non-zero) if valid.
618  * \returns False (zero) if invalid.
619  */
620 int ast_ari_validate_bridge_merged(struct ast_json *json);
621
622 /*!
623  * \brief Function pointer to ast_ari_validate_bridge_merged().
624  *
625  * See \ref ast_ari_model_validators.h for more details.
626  */
627 ari_validator ast_ari_validate_bridge_merged_fn(void);
628
629 /*!
630  * \brief Validator for ChannelCallerId.
631  *
632  * Channel changed Caller ID.
633  *
634  * \param json JSON object to validate.
635  * \returns True (non-zero) if valid.
636  * \returns False (zero) if invalid.
637  */
638 int ast_ari_validate_channel_caller_id(struct ast_json *json);
639
640 /*!
641  * \brief Function pointer to ast_ari_validate_channel_caller_id().
642  *
643  * See \ref ast_ari_model_validators.h for more details.
644  */
645 ari_validator ast_ari_validate_channel_caller_id_fn(void);
646
647 /*!
648  * \brief Validator for ChannelCreated.
649  *
650  * Notification that a channel has been created.
651  *
652  * \param json JSON object to validate.
653  * \returns True (non-zero) if valid.
654  * \returns False (zero) if invalid.
655  */
656 int ast_ari_validate_channel_created(struct ast_json *json);
657
658 /*!
659  * \brief Function pointer to ast_ari_validate_channel_created().
660  *
661  * See \ref ast_ari_model_validators.h for more details.
662  */
663 ari_validator ast_ari_validate_channel_created_fn(void);
664
665 /*!
666  * \brief Validator for ChannelDestroyed.
667  *
668  * Notification that a channel has been destroyed.
669  *
670  * \param json JSON object to validate.
671  * \returns True (non-zero) if valid.
672  * \returns False (zero) if invalid.
673  */
674 int ast_ari_validate_channel_destroyed(struct ast_json *json);
675
676 /*!
677  * \brief Function pointer to ast_ari_validate_channel_destroyed().
678  *
679  * See \ref ast_ari_model_validators.h for more details.
680  */
681 ari_validator ast_ari_validate_channel_destroyed_fn(void);
682
683 /*!
684  * \brief Validator for ChannelDialplan.
685  *
686  * Channel changed location in the dialplan.
687  *
688  * \param json JSON object to validate.
689  * \returns True (non-zero) if valid.
690  * \returns False (zero) if invalid.
691  */
692 int ast_ari_validate_channel_dialplan(struct ast_json *json);
693
694 /*!
695  * \brief Function pointer to ast_ari_validate_channel_dialplan().
696  *
697  * See \ref ast_ari_model_validators.h for more details.
698  */
699 ari_validator ast_ari_validate_channel_dialplan_fn(void);
700
701 /*!
702  * \brief Validator for ChannelDtmfReceived.
703  *
704  * DTMF received on a channel.
705  *
706  * This event is sent when the DTMF ends. There is no notification about the start of DTMF
707  *
708  * \param json JSON object to validate.
709  * \returns True (non-zero) if valid.
710  * \returns False (zero) if invalid.
711  */
712 int ast_ari_validate_channel_dtmf_received(struct ast_json *json);
713
714 /*!
715  * \brief Function pointer to ast_ari_validate_channel_dtmf_received().
716  *
717  * See \ref ast_ari_model_validators.h for more details.
718  */
719 ari_validator ast_ari_validate_channel_dtmf_received_fn(void);
720
721 /*!
722  * \brief Validator for ChannelEnteredBridge.
723  *
724  * Notification that a channel has entered a bridge.
725  *
726  * \param json JSON object to validate.
727  * \returns True (non-zero) if valid.
728  * \returns False (zero) if invalid.
729  */
730 int ast_ari_validate_channel_entered_bridge(struct ast_json *json);
731
732 /*!
733  * \brief Function pointer to ast_ari_validate_channel_entered_bridge().
734  *
735  * See \ref ast_ari_model_validators.h for more details.
736  */
737 ari_validator ast_ari_validate_channel_entered_bridge_fn(void);
738
739 /*!
740  * \brief Validator for ChannelHangupRequest.
741  *
742  * A hangup was requested on the channel.
743  *
744  * \param json JSON object to validate.
745  * \returns True (non-zero) if valid.
746  * \returns False (zero) if invalid.
747  */
748 int ast_ari_validate_channel_hangup_request(struct ast_json *json);
749
750 /*!
751  * \brief Function pointer to ast_ari_validate_channel_hangup_request().
752  *
753  * See \ref ast_ari_model_validators.h for more details.
754  */
755 ari_validator ast_ari_validate_channel_hangup_request_fn(void);
756
757 /*!
758  * \brief Validator for ChannelLeftBridge.
759  *
760  * Notification that a channel has left a bridge.
761  *
762  * \param json JSON object to validate.
763  * \returns True (non-zero) if valid.
764  * \returns False (zero) if invalid.
765  */
766 int ast_ari_validate_channel_left_bridge(struct ast_json *json);
767
768 /*!
769  * \brief Function pointer to ast_ari_validate_channel_left_bridge().
770  *
771  * See \ref ast_ari_model_validators.h for more details.
772  */
773 ari_validator ast_ari_validate_channel_left_bridge_fn(void);
774
775 /*!
776  * \brief Validator for ChannelStateChange.
777  *
778  * Notification of a channel's state change.
779  *
780  * \param json JSON object to validate.
781  * \returns True (non-zero) if valid.
782  * \returns False (zero) if invalid.
783  */
784 int ast_ari_validate_channel_state_change(struct ast_json *json);
785
786 /*!
787  * \brief Function pointer to ast_ari_validate_channel_state_change().
788  *
789  * See \ref ast_ari_model_validators.h for more details.
790  */
791 ari_validator ast_ari_validate_channel_state_change_fn(void);
792
793 /*!
794  * \brief Validator for ChannelUserevent.
795  *
796  * User-generated event with additional user-defined fields in the object.
797  *
798  * \param json JSON object to validate.
799  * \returns True (non-zero) if valid.
800  * \returns False (zero) if invalid.
801  */
802 int ast_ari_validate_channel_userevent(struct ast_json *json);
803
804 /*!
805  * \brief Function pointer to ast_ari_validate_channel_userevent().
806  *
807  * See \ref ast_ari_model_validators.h for more details.
808  */
809 ari_validator ast_ari_validate_channel_userevent_fn(void);
810
811 /*!
812  * \brief Validator for ChannelVarset.
813  *
814  * Channel variable changed.
815  *
816  * \param json JSON object to validate.
817  * \returns True (non-zero) if valid.
818  * \returns False (zero) if invalid.
819  */
820 int ast_ari_validate_channel_varset(struct ast_json *json);
821
822 /*!
823  * \brief Function pointer to ast_ari_validate_channel_varset().
824  *
825  * See \ref ast_ari_model_validators.h for more details.
826  */
827 ari_validator ast_ari_validate_channel_varset_fn(void);
828
829 /*!
830  * \brief Validator for DeviceStateChanged.
831  *
832  * Notification that a device state has changed.
833  *
834  * \param json JSON object to validate.
835  * \returns True (non-zero) if valid.
836  * \returns False (zero) if invalid.
837  */
838 int ast_ari_validate_device_state_changed(struct ast_json *json);
839
840 /*!
841  * \brief Function pointer to ast_ari_validate_device_state_changed().
842  *
843  * See \ref ast_ari_model_validators.h for more details.
844  */
845 ari_validator ast_ari_validate_device_state_changed_fn(void);
846
847 /*!
848  * \brief Validator for Dial.
849  *
850  * Dialing state has changed.
851  *
852  * \param json JSON object to validate.
853  * \returns True (non-zero) if valid.
854  * \returns False (zero) if invalid.
855  */
856 int ast_ari_validate_dial(struct ast_json *json);
857
858 /*!
859  * \brief Function pointer to ast_ari_validate_dial().
860  *
861  * See \ref ast_ari_model_validators.h for more details.
862  */
863 ari_validator ast_ari_validate_dial_fn(void);
864
865 /*!
866  * \brief Validator for EndpointStateChange.
867  *
868  * Endpoint state changed.
869  *
870  * \param json JSON object to validate.
871  * \returns True (non-zero) if valid.
872  * \returns False (zero) if invalid.
873  */
874 int ast_ari_validate_endpoint_state_change(struct ast_json *json);
875
876 /*!
877  * \brief Function pointer to ast_ari_validate_endpoint_state_change().
878  *
879  * See \ref ast_ari_model_validators.h for more details.
880  */
881 ari_validator ast_ari_validate_endpoint_state_change_fn(void);
882
883 /*!
884  * \brief Validator for Event.
885  *
886  * Base type for asynchronous events from Asterisk.
887  *
888  * \param json JSON object to validate.
889  * \returns True (non-zero) if valid.
890  * \returns False (zero) if invalid.
891  */
892 int ast_ari_validate_event(struct ast_json *json);
893
894 /*!
895  * \brief Function pointer to ast_ari_validate_event().
896  *
897  * See \ref ast_ari_model_validators.h for more details.
898  */
899 ari_validator ast_ari_validate_event_fn(void);
900
901 /*!
902  * \brief Validator for Message.
903  *
904  * Base type for errors and events
905  *
906  * \param json JSON object to validate.
907  * \returns True (non-zero) if valid.
908  * \returns False (zero) if invalid.
909  */
910 int ast_ari_validate_message(struct ast_json *json);
911
912 /*!
913  * \brief Function pointer to ast_ari_validate_message().
914  *
915  * See \ref ast_ari_model_validators.h for more details.
916  */
917 ari_validator ast_ari_validate_message_fn(void);
918
919 /*!
920  * \brief Validator for MissingParams.
921  *
922  * Error event sent when required params are missing.
923  *
924  * \param json JSON object to validate.
925  * \returns True (non-zero) if valid.
926  * \returns False (zero) if invalid.
927  */
928 int ast_ari_validate_missing_params(struct ast_json *json);
929
930 /*!
931  * \brief Function pointer to ast_ari_validate_missing_params().
932  *
933  * See \ref ast_ari_model_validators.h for more details.
934  */
935 ari_validator ast_ari_validate_missing_params_fn(void);
936
937 /*!
938  * \brief Validator for PlaybackFinished.
939  *
940  * Event showing the completion of a media playback operation.
941  *
942  * \param json JSON object to validate.
943  * \returns True (non-zero) if valid.
944  * \returns False (zero) if invalid.
945  */
946 int ast_ari_validate_playback_finished(struct ast_json *json);
947
948 /*!
949  * \brief Function pointer to ast_ari_validate_playback_finished().
950  *
951  * See \ref ast_ari_model_validators.h for more details.
952  */
953 ari_validator ast_ari_validate_playback_finished_fn(void);
954
955 /*!
956  * \brief Validator for PlaybackStarted.
957  *
958  * Event showing the start of a media playback operation.
959  *
960  * \param json JSON object to validate.
961  * \returns True (non-zero) if valid.
962  * \returns False (zero) if invalid.
963  */
964 int ast_ari_validate_playback_started(struct ast_json *json);
965
966 /*!
967  * \brief Function pointer to ast_ari_validate_playback_started().
968  *
969  * See \ref ast_ari_model_validators.h for more details.
970  */
971 ari_validator ast_ari_validate_playback_started_fn(void);
972
973 /*!
974  * \brief Validator for RecordingFailed.
975  *
976  * Event showing failure of a recording operation.
977  *
978  * \param json JSON object to validate.
979  * \returns True (non-zero) if valid.
980  * \returns False (zero) if invalid.
981  */
982 int ast_ari_validate_recording_failed(struct ast_json *json);
983
984 /*!
985  * \brief Function pointer to ast_ari_validate_recording_failed().
986  *
987  * See \ref ast_ari_model_validators.h for more details.
988  */
989 ari_validator ast_ari_validate_recording_failed_fn(void);
990
991 /*!
992  * \brief Validator for RecordingFinished.
993  *
994  * Event showing the completion of a recording operation.
995  *
996  * \param json JSON object to validate.
997  * \returns True (non-zero) if valid.
998  * \returns False (zero) if invalid.
999  */
1000 int ast_ari_validate_recording_finished(struct ast_json *json);
1001
1002 /*!
1003  * \brief Function pointer to ast_ari_validate_recording_finished().
1004  *
1005  * See \ref ast_ari_model_validators.h for more details.
1006  */
1007 ari_validator ast_ari_validate_recording_finished_fn(void);
1008
1009 /*!
1010  * \brief Validator for RecordingStarted.
1011  *
1012  * Event showing the start of a recording operation.
1013  *
1014  * \param json JSON object to validate.
1015  * \returns True (non-zero) if valid.
1016  * \returns False (zero) if invalid.
1017  */
1018 int ast_ari_validate_recording_started(struct ast_json *json);
1019
1020 /*!
1021  * \brief Function pointer to ast_ari_validate_recording_started().
1022  *
1023  * See \ref ast_ari_model_validators.h for more details.
1024  */
1025 ari_validator ast_ari_validate_recording_started_fn(void);
1026
1027 /*!
1028  * \brief Validator for StasisEnd.
1029  *
1030  * Notification that a channel has left a Stasis application.
1031  *
1032  * \param json JSON object to validate.
1033  * \returns True (non-zero) if valid.
1034  * \returns False (zero) if invalid.
1035  */
1036 int ast_ari_validate_stasis_end(struct ast_json *json);
1037
1038 /*!
1039  * \brief Function pointer to ast_ari_validate_stasis_end().
1040  *
1041  * See \ref ast_ari_model_validators.h for more details.
1042  */
1043 ari_validator ast_ari_validate_stasis_end_fn(void);
1044
1045 /*!
1046  * \brief Validator for StasisStart.
1047  *
1048  * Notification that a channel has entered a Stasis application.
1049  *
1050  * \param json JSON object to validate.
1051  * \returns True (non-zero) if valid.
1052  * \returns False (zero) if invalid.
1053  */
1054 int ast_ari_validate_stasis_start(struct ast_json *json);
1055
1056 /*!
1057  * \brief Function pointer to ast_ari_validate_stasis_start().
1058  *
1059  * See \ref ast_ari_model_validators.h for more details.
1060  */
1061 ari_validator ast_ari_validate_stasis_start_fn(void);
1062
1063 /*!
1064  * \brief Validator for Application.
1065  *
1066  * Details of a Stasis application
1067  *
1068  * \param json JSON object to validate.
1069  * \returns True (non-zero) if valid.
1070  * \returns False (zero) if invalid.
1071  */
1072 int ast_ari_validate_application(struct ast_json *json);
1073
1074 /*!
1075  * \brief Function pointer to ast_ari_validate_application().
1076  *
1077  * See \ref ast_ari_model_validators.h for more details.
1078  */
1079 ari_validator ast_ari_validate_application_fn(void);
1080
1081 /*
1082  * JSON models
1083  *
1084  * AsteriskInfo
1085  * - build: BuildInfo
1086  * - config: ConfigInfo
1087  * - status: StatusInfo
1088  * - system: SystemInfo
1089  * BuildInfo
1090  * - date: string (required)
1091  * - kernel: string (required)
1092  * - machine: string (required)
1093  * - options: string (required)
1094  * - os: string (required)
1095  * - user: string (required)
1096  * ConfigInfo
1097  * - default_language: string (required)
1098  * - max_channels: int
1099  * - max_load: double
1100  * - max_open_files: int
1101  * - name: string (required)
1102  * - setid: SetId (required)
1103  * SetId
1104  * - group: string (required)
1105  * - user: string (required)
1106  * StatusInfo
1107  * - last_reload_time: Date (required)
1108  * - startup_time: Date (required)
1109  * SystemInfo
1110  * - entity_id: string (required)
1111  * - version: string (required)
1112  * Variable
1113  * - value: string (required)
1114  * Endpoint
1115  * - channel_ids: List[string] (required)
1116  * - resource: string (required)
1117  * - state: string
1118  * - technology: string (required)
1119  * CallerID
1120  * - name: string (required)
1121  * - number: string (required)
1122  * Channel
1123  * - accountcode: string (required)
1124  * - caller: CallerID (required)
1125  * - connected: CallerID (required)
1126  * - creationtime: Date (required)
1127  * - dialplan: DialplanCEP (required)
1128  * - id: string (required)
1129  * - name: string (required)
1130  * - state: string (required)
1131  * Dialed
1132  * DialplanCEP
1133  * - context: string (required)
1134  * - exten: string (required)
1135  * - priority: long (required)
1136  * Bridge
1137  * - bridge_class: string (required)
1138  * - bridge_type: string (required)
1139  * - channels: List[string] (required)
1140  * - creator: string (required)
1141  * - id: string (required)
1142  * - name: string (required)
1143  * - technology: string (required)
1144  * LiveRecording
1145  * - cause: string
1146  * - format: string (required)
1147  * - name: string (required)
1148  * - state: string (required)
1149  * StoredRecording
1150  * - format: string (required)
1151  * - name: string (required)
1152  * FormatLangPair
1153  * - format: string (required)
1154  * - language: string (required)
1155  * Sound
1156  * - formats: List[FormatLangPair] (required)
1157  * - id: string (required)
1158  * - text: string
1159  * Playback
1160  * - id: string (required)
1161  * - language: string
1162  * - media_uri: string (required)
1163  * - state: string (required)
1164  * - target_uri: string (required)
1165  * DeviceState
1166  * - name: string (required)
1167  * - state: string (required)
1168  * Mailbox
1169  * - name: string (required)
1170  * - new_messages: int (required)
1171  * - old_messages: int (required)
1172  * ApplicationReplaced
1173  * - type: string (required)
1174  * - application: string (required)
1175  * - timestamp: Date
1176  * BridgeAttendedTransfer
1177  * - type: string (required)
1178  * - application: string (required)
1179  * - timestamp: Date
1180  * - destination_application: string
1181  * - destination_bridge: string
1182  * - destination_link_first_leg: Channel
1183  * - destination_link_second_leg: Channel
1184  * - destination_threeway_bridge: Bridge
1185  * - destination_threeway_channel: Channel
1186  * - destination_type: string (required)
1187  * - is_external: boolean (required)
1188  * - result: string (required)
1189  * - transferer_first_leg: Channel (required)
1190  * - transferer_first_leg_bridge: Bridge
1191  * - transferer_second_leg: Channel (required)
1192  * - transferer_second_leg_bridge: Bridge
1193  * BridgeBlindTransfer
1194  * - type: string (required)
1195  * - application: string (required)
1196  * - timestamp: Date
1197  * - bridge: Bridge
1198  * - channel: Channel (required)
1199  * - context: string (required)
1200  * - exten: string (required)
1201  * - is_external: boolean (required)
1202  * - result: string (required)
1203  * BridgeCreated
1204  * - type: string (required)
1205  * - application: string (required)
1206  * - timestamp: Date
1207  * - bridge: Bridge (required)
1208  * BridgeDestroyed
1209  * - type: string (required)
1210  * - application: string (required)
1211  * - timestamp: Date
1212  * - bridge: Bridge (required)
1213  * BridgeMerged
1214  * - type: string (required)
1215  * - application: string (required)
1216  * - timestamp: Date
1217  * - bridge: Bridge (required)
1218  * - bridge_from: Bridge (required)
1219  * ChannelCallerId
1220  * - type: string (required)
1221  * - application: string (required)
1222  * - timestamp: Date
1223  * - caller_presentation: int (required)
1224  * - caller_presentation_txt: string (required)
1225  * - channel: Channel (required)
1226  * ChannelCreated
1227  * - type: string (required)
1228  * - application: string (required)
1229  * - timestamp: Date
1230  * - channel: Channel (required)
1231  * ChannelDestroyed
1232  * - type: string (required)
1233  * - application: string (required)
1234  * - timestamp: Date
1235  * - cause: int (required)
1236  * - cause_txt: string (required)
1237  * - channel: Channel (required)
1238  * ChannelDialplan
1239  * - type: string (required)
1240  * - application: string (required)
1241  * - timestamp: Date
1242  * - channel: Channel (required)
1243  * - dialplan_app: string (required)
1244  * - dialplan_app_data: string (required)
1245  * ChannelDtmfReceived
1246  * - type: string (required)
1247  * - application: string (required)
1248  * - timestamp: Date
1249  * - channel: Channel (required)
1250  * - digit: string (required)
1251  * - duration_ms: int (required)
1252  * ChannelEnteredBridge
1253  * - type: string (required)
1254  * - application: string (required)
1255  * - timestamp: Date
1256  * - bridge: Bridge (required)
1257  * - channel: Channel
1258  * ChannelHangupRequest
1259  * - type: string (required)
1260  * - application: string (required)
1261  * - timestamp: Date
1262  * - cause: int
1263  * - channel: Channel (required)
1264  * - soft: boolean
1265  * ChannelLeftBridge
1266  * - type: string (required)
1267  * - application: string (required)
1268  * - timestamp: Date
1269  * - bridge: Bridge (required)
1270  * - channel: Channel (required)
1271  * ChannelStateChange
1272  * - type: string (required)
1273  * - application: string (required)
1274  * - timestamp: Date
1275  * - channel: Channel (required)
1276  * ChannelUserevent
1277  * - type: string (required)
1278  * - application: string (required)
1279  * - timestamp: Date
1280  * - channel: Channel (required)
1281  * - eventname: string (required)
1282  * - userevent: object (required)
1283  * ChannelVarset
1284  * - type: string (required)
1285  * - application: string (required)
1286  * - timestamp: Date
1287  * - channel: Channel
1288  * - value: string (required)
1289  * - variable: string (required)
1290  * DeviceStateChanged
1291  * - type: string (required)
1292  * - application: string (required)
1293  * - timestamp: Date
1294  * - device_state: DeviceState (required)
1295  * Dial
1296  * - type: string (required)
1297  * - application: string (required)
1298  * - timestamp: Date
1299  * - caller: Channel
1300  * - dialstatus: string (required)
1301  * - dialstring: string
1302  * - forward: string
1303  * - forwarded: Channel
1304  * - peer: Channel (required)
1305  * EndpointStateChange
1306  * - type: string (required)
1307  * - application: string (required)
1308  * - timestamp: Date
1309  * - endpoint: Endpoint (required)
1310  * Event
1311  * - type: string (required)
1312  * - application: string (required)
1313  * - timestamp: Date
1314  * Message
1315  * - type: string (required)
1316  * MissingParams
1317  * - type: string (required)
1318  * - params: List[string] (required)
1319  * PlaybackFinished
1320  * - type: string (required)
1321  * - application: string (required)
1322  * - timestamp: Date
1323  * - playback: Playback (required)
1324  * PlaybackStarted
1325  * - type: string (required)
1326  * - application: string (required)
1327  * - timestamp: Date
1328  * - playback: Playback (required)
1329  * RecordingFailed
1330  * - type: string (required)
1331  * - application: string (required)
1332  * - timestamp: Date
1333  * - recording: LiveRecording (required)
1334  * RecordingFinished
1335  * - type: string (required)
1336  * - application: string (required)
1337  * - timestamp: Date
1338  * - recording: LiveRecording (required)
1339  * RecordingStarted
1340  * - type: string (required)
1341  * - application: string (required)
1342  * - timestamp: Date
1343  * - recording: LiveRecording (required)
1344  * StasisEnd
1345  * - type: string (required)
1346  * - application: string (required)
1347  * - timestamp: Date
1348  * - channel: Channel (required)
1349  * StasisStart
1350  * - type: string (required)
1351  * - application: string (required)
1352  * - timestamp: Date
1353  * - args: List[string] (required)
1354  * - channel: Channel (required)
1355  * Application
1356  * - bridge_ids: List[string] (required)
1357  * - channel_ids: List[string] (required)
1358  * - device_names: List[string] (required)
1359  * - endpoint_ids: List[string] (required)
1360  * - name: string (required)
1361  */
1362
1363 #endif /* _ASTERISK_ARI_MODEL_H */