Multiple revisions 420089-420090,420097
[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 TextMessage.
303  *
304  * A text message.
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_text_message(struct ast_json *json);
311
312 /*!
313  * \brief Function pointer to ast_ari_validate_text_message().
314  *
315  * See \ref ast_ari_model_validators.h for more details.
316  */
317 ari_validator ast_ari_validate_text_message_fn(void);
318
319 /*!
320  * \brief Validator for TextMessageVariable.
321  *
322  * A key/value pair variable in a text message.
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_text_message_variable(struct ast_json *json);
329
330 /*!
331  * \brief Function pointer to ast_ari_validate_text_message_variable().
332  *
333  * See \ref ast_ari_model_validators.h for more details.
334  */
335 ari_validator ast_ari_validate_text_message_variable_fn(void);
336
337 /*!
338  * \brief Validator for CallerID.
339  *
340  * Caller identification
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_caller_id(struct ast_json *json);
347
348 /*!
349  * \brief Function pointer to ast_ari_validate_caller_id().
350  *
351  * See \ref ast_ari_model_validators.h for more details.
352  */
353 ari_validator ast_ari_validate_caller_id_fn(void);
354
355 /*!
356  * \brief Validator for Channel.
357  *
358  * A specific communication connection between Asterisk and an Endpoint.
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_channel(struct ast_json *json);
365
366 /*!
367  * \brief Function pointer to ast_ari_validate_channel().
368  *
369  * See \ref ast_ari_model_validators.h for more details.
370  */
371 ari_validator ast_ari_validate_channel_fn(void);
372
373 /*!
374  * \brief Validator for Dialed.
375  *
376  * Dialed channel information.
377  *
378  * \param json JSON object to validate.
379  * \returns True (non-zero) if valid.
380  * \returns False (zero) if invalid.
381  */
382 int ast_ari_validate_dialed(struct ast_json *json);
383
384 /*!
385  * \brief Function pointer to ast_ari_validate_dialed().
386  *
387  * See \ref ast_ari_model_validators.h for more details.
388  */
389 ari_validator ast_ari_validate_dialed_fn(void);
390
391 /*!
392  * \brief Validator for DialplanCEP.
393  *
394  * Dialplan location (context/extension/priority)
395  *
396  * \param json JSON object to validate.
397  * \returns True (non-zero) if valid.
398  * \returns False (zero) if invalid.
399  */
400 int ast_ari_validate_dialplan_cep(struct ast_json *json);
401
402 /*!
403  * \brief Function pointer to ast_ari_validate_dialplan_cep().
404  *
405  * See \ref ast_ari_model_validators.h for more details.
406  */
407 ari_validator ast_ari_validate_dialplan_cep_fn(void);
408
409 /*!
410  * \brief Validator for Bridge.
411  *
412  * The merging of media from one or more channels.
413  *
414  * Everyone on the bridge receives the same audio.
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_bridge(struct ast_json *json);
421
422 /*!
423  * \brief Function pointer to ast_ari_validate_bridge().
424  *
425  * See \ref ast_ari_model_validators.h for more details.
426  */
427 ari_validator ast_ari_validate_bridge_fn(void);
428
429 /*!
430  * \brief Validator for LiveRecording.
431  *
432  * A recording that is in progress
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_live_recording(struct ast_json *json);
439
440 /*!
441  * \brief Function pointer to ast_ari_validate_live_recording().
442  *
443  * See \ref ast_ari_model_validators.h for more details.
444  */
445 ari_validator ast_ari_validate_live_recording_fn(void);
446
447 /*!
448  * \brief Validator for StoredRecording.
449  *
450  * A past recording 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_stored_recording(struct ast_json *json);
457
458 /*!
459  * \brief Function pointer to ast_ari_validate_stored_recording().
460  *
461  * See \ref ast_ari_model_validators.h for more details.
462  */
463 ari_validator ast_ari_validate_stored_recording_fn(void);
464
465 /*!
466  * \brief Validator for FormatLangPair.
467  *
468  * Identifies the format and language of a sound file
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_format_lang_pair(struct ast_json *json);
475
476 /*!
477  * \brief Function pointer to ast_ari_validate_format_lang_pair().
478  *
479  * See \ref ast_ari_model_validators.h for more details.
480  */
481 ari_validator ast_ari_validate_format_lang_pair_fn(void);
482
483 /*!
484  * \brief Validator for Sound.
485  *
486  * A media file that may be played back.
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_sound(struct ast_json *json);
493
494 /*!
495  * \brief Function pointer to ast_ari_validate_sound().
496  *
497  * See \ref ast_ari_model_validators.h for more details.
498  */
499 ari_validator ast_ari_validate_sound_fn(void);
500
501 /*!
502  * \brief Validator for Playback.
503  *
504  * Object representing the playback of media to a channel
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_playback(struct ast_json *json);
511
512 /*!
513  * \brief Function pointer to ast_ari_validate_playback().
514  *
515  * See \ref ast_ari_model_validators.h for more details.
516  */
517 ari_validator ast_ari_validate_playback_fn(void);
518
519 /*!
520  * \brief Validator for DeviceState.
521  *
522  * Represents the state of a device.
523  *
524  * \param json JSON object to validate.
525  * \returns True (non-zero) if valid.
526  * \returns False (zero) if invalid.
527  */
528 int ast_ari_validate_device_state(struct ast_json *json);
529
530 /*!
531  * \brief Function pointer to ast_ari_validate_device_state().
532  *
533  * See \ref ast_ari_model_validators.h for more details.
534  */
535 ari_validator ast_ari_validate_device_state_fn(void);
536
537 /*!
538  * \brief Validator for Mailbox.
539  *
540  * Represents the state of a mailbox.
541  *
542  * \param json JSON object to validate.
543  * \returns True (non-zero) if valid.
544  * \returns False (zero) if invalid.
545  */
546 int ast_ari_validate_mailbox(struct ast_json *json);
547
548 /*!
549  * \brief Function pointer to ast_ari_validate_mailbox().
550  *
551  * See \ref ast_ari_model_validators.h for more details.
552  */
553 ari_validator ast_ari_validate_mailbox_fn(void);
554
555 /*!
556  * \brief Validator for ApplicationReplaced.
557  *
558  * Notification that another WebSocket has taken over for an application.
559  *
560  * 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.
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_application_replaced(struct ast_json *json);
567
568 /*!
569  * \brief Function pointer to ast_ari_validate_application_replaced().
570  *
571  * See \ref ast_ari_model_validators.h for more details.
572  */
573 ari_validator ast_ari_validate_application_replaced_fn(void);
574
575 /*!
576  * \brief Validator for BridgeAttendedTransfer.
577  *
578  * Notification that an attended transfer has occurred.
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_attended_transfer(struct ast_json *json);
585
586 /*!
587  * \brief Function pointer to ast_ari_validate_bridge_attended_transfer().
588  *
589  * See \ref ast_ari_model_validators.h for more details.
590  */
591 ari_validator ast_ari_validate_bridge_attended_transfer_fn(void);
592
593 /*!
594  * \brief Validator for BridgeBlindTransfer.
595  *
596  * Notification that a blind transfer has occurred.
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_blind_transfer(struct ast_json *json);
603
604 /*!
605  * \brief Function pointer to ast_ari_validate_bridge_blind_transfer().
606  *
607  * See \ref ast_ari_model_validators.h for more details.
608  */
609 ari_validator ast_ari_validate_bridge_blind_transfer_fn(void);
610
611 /*!
612  * \brief Validator for BridgeCreated.
613  *
614  * Notification that a bridge has been created.
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_created(struct ast_json *json);
621
622 /*!
623  * \brief Function pointer to ast_ari_validate_bridge_created().
624  *
625  * See \ref ast_ari_model_validators.h for more details.
626  */
627 ari_validator ast_ari_validate_bridge_created_fn(void);
628
629 /*!
630  * \brief Validator for BridgeDestroyed.
631  *
632  * Notification that a bridge has been destroyed.
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_bridge_destroyed(struct ast_json *json);
639
640 /*!
641  * \brief Function pointer to ast_ari_validate_bridge_destroyed().
642  *
643  * See \ref ast_ari_model_validators.h for more details.
644  */
645 ari_validator ast_ari_validate_bridge_destroyed_fn(void);
646
647 /*!
648  * \brief Validator for BridgeMerged.
649  *
650  * Notification that one bridge has merged into another.
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_bridge_merged(struct ast_json *json);
657
658 /*!
659  * \brief Function pointer to ast_ari_validate_bridge_merged().
660  *
661  * See \ref ast_ari_model_validators.h for more details.
662  */
663 ari_validator ast_ari_validate_bridge_merged_fn(void);
664
665 /*!
666  * \brief Validator for ChannelCallerId.
667  *
668  * Channel changed Caller ID.
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_caller_id(struct ast_json *json);
675
676 /*!
677  * \brief Function pointer to ast_ari_validate_channel_caller_id().
678  *
679  * See \ref ast_ari_model_validators.h for more details.
680  */
681 ari_validator ast_ari_validate_channel_caller_id_fn(void);
682
683 /*!
684  * \brief Validator for ChannelCreated.
685  *
686  * Notification that a channel has been created.
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_created(struct ast_json *json);
693
694 /*!
695  * \brief Function pointer to ast_ari_validate_channel_created().
696  *
697  * See \ref ast_ari_model_validators.h for more details.
698  */
699 ari_validator ast_ari_validate_channel_created_fn(void);
700
701 /*!
702  * \brief Validator for ChannelDestroyed.
703  *
704  * Notification that a channel has been destroyed.
705  *
706  * \param json JSON object to validate.
707  * \returns True (non-zero) if valid.
708  * \returns False (zero) if invalid.
709  */
710 int ast_ari_validate_channel_destroyed(struct ast_json *json);
711
712 /*!
713  * \brief Function pointer to ast_ari_validate_channel_destroyed().
714  *
715  * See \ref ast_ari_model_validators.h for more details.
716  */
717 ari_validator ast_ari_validate_channel_destroyed_fn(void);
718
719 /*!
720  * \brief Validator for ChannelDialplan.
721  *
722  * Channel changed location in the dialplan.
723  *
724  * \param json JSON object to validate.
725  * \returns True (non-zero) if valid.
726  * \returns False (zero) if invalid.
727  */
728 int ast_ari_validate_channel_dialplan(struct ast_json *json);
729
730 /*!
731  * \brief Function pointer to ast_ari_validate_channel_dialplan().
732  *
733  * See \ref ast_ari_model_validators.h for more details.
734  */
735 ari_validator ast_ari_validate_channel_dialplan_fn(void);
736
737 /*!
738  * \brief Validator for ChannelDtmfReceived.
739  *
740  * DTMF received on a channel.
741  *
742  * This event is sent when the DTMF ends. There is no notification about the start of DTMF
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_dtmf_received(struct ast_json *json);
749
750 /*!
751  * \brief Function pointer to ast_ari_validate_channel_dtmf_received().
752  *
753  * See \ref ast_ari_model_validators.h for more details.
754  */
755 ari_validator ast_ari_validate_channel_dtmf_received_fn(void);
756
757 /*!
758  * \brief Validator for ChannelEnteredBridge.
759  *
760  * Notification that a channel has entered 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_entered_bridge(struct ast_json *json);
767
768 /*!
769  * \brief Function pointer to ast_ari_validate_channel_entered_bridge().
770  *
771  * See \ref ast_ari_model_validators.h for more details.
772  */
773 ari_validator ast_ari_validate_channel_entered_bridge_fn(void);
774
775 /*!
776  * \brief Validator for ChannelHangupRequest.
777  *
778  * A hangup was requested on the channel.
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_hangup_request(struct ast_json *json);
785
786 /*!
787  * \brief Function pointer to ast_ari_validate_channel_hangup_request().
788  *
789  * See \ref ast_ari_model_validators.h for more details.
790  */
791 ari_validator ast_ari_validate_channel_hangup_request_fn(void);
792
793 /*!
794  * \brief Validator for ChannelLeftBridge.
795  *
796  * Notification that a channel has left a bridge.
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_left_bridge(struct ast_json *json);
803
804 /*!
805  * \brief Function pointer to ast_ari_validate_channel_left_bridge().
806  *
807  * See \ref ast_ari_model_validators.h for more details.
808  */
809 ari_validator ast_ari_validate_channel_left_bridge_fn(void);
810
811 /*!
812  * \brief Validator for ChannelStateChange.
813  *
814  * Notification of a channel's state change.
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_state_change(struct ast_json *json);
821
822 /*!
823  * \brief Function pointer to ast_ari_validate_channel_state_change().
824  *
825  * See \ref ast_ari_model_validators.h for more details.
826  */
827 ari_validator ast_ari_validate_channel_state_change_fn(void);
828
829 /*!
830  * \brief Validator for ChannelTalkingFinished.
831  *
832  * Talking is no longer detected on the channel.
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_channel_talking_finished(struct ast_json *json);
839
840 /*!
841  * \brief Function pointer to ast_ari_validate_channel_talking_finished().
842  *
843  * See \ref ast_ari_model_validators.h for more details.
844  */
845 ari_validator ast_ari_validate_channel_talking_finished_fn(void);
846
847 /*!
848  * \brief Validator for ChannelTalkingStarted.
849  *
850  * Talking was detected on the channel.
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_channel_talking_started(struct ast_json *json);
857
858 /*!
859  * \brief Function pointer to ast_ari_validate_channel_talking_started().
860  *
861  * See \ref ast_ari_model_validators.h for more details.
862  */
863 ari_validator ast_ari_validate_channel_talking_started_fn(void);
864
865 /*!
866  * \brief Validator for ChannelUserevent.
867  *
868  * User-generated event with additional user-defined fields in the object.
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_channel_userevent(struct ast_json *json);
875
876 /*!
877  * \brief Function pointer to ast_ari_validate_channel_userevent().
878  *
879  * See \ref ast_ari_model_validators.h for more details.
880  */
881 ari_validator ast_ari_validate_channel_userevent_fn(void);
882
883 /*!
884  * \brief Validator for ChannelVarset.
885  *
886  * Channel variable changed.
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_channel_varset(struct ast_json *json);
893
894 /*!
895  * \brief Function pointer to ast_ari_validate_channel_varset().
896  *
897  * See \ref ast_ari_model_validators.h for more details.
898  */
899 ari_validator ast_ari_validate_channel_varset_fn(void);
900
901 /*!
902  * \brief Validator for DeviceStateChanged.
903  *
904  * Notification that a device state has changed.
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_device_state_changed(struct ast_json *json);
911
912 /*!
913  * \brief Function pointer to ast_ari_validate_device_state_changed().
914  *
915  * See \ref ast_ari_model_validators.h for more details.
916  */
917 ari_validator ast_ari_validate_device_state_changed_fn(void);
918
919 /*!
920  * \brief Validator for Dial.
921  *
922  * Dialing state has changed.
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_dial(struct ast_json *json);
929
930 /*!
931  * \brief Function pointer to ast_ari_validate_dial().
932  *
933  * See \ref ast_ari_model_validators.h for more details.
934  */
935 ari_validator ast_ari_validate_dial_fn(void);
936
937 /*!
938  * \brief Validator for EndpointStateChange.
939  *
940  * Endpoint state changed.
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_endpoint_state_change(struct ast_json *json);
947
948 /*!
949  * \brief Function pointer to ast_ari_validate_endpoint_state_change().
950  *
951  * See \ref ast_ari_model_validators.h for more details.
952  */
953 ari_validator ast_ari_validate_endpoint_state_change_fn(void);
954
955 /*!
956  * \brief Validator for Event.
957  *
958  * Base type for asynchronous events from Asterisk.
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_event(struct ast_json *json);
965
966 /*!
967  * \brief Function pointer to ast_ari_validate_event().
968  *
969  * See \ref ast_ari_model_validators.h for more details.
970  */
971 ari_validator ast_ari_validate_event_fn(void);
972
973 /*!
974  * \brief Validator for Message.
975  *
976  * Base type for errors and events
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_message(struct ast_json *json);
983
984 /*!
985  * \brief Function pointer to ast_ari_validate_message().
986  *
987  * See \ref ast_ari_model_validators.h for more details.
988  */
989 ari_validator ast_ari_validate_message_fn(void);
990
991 /*!
992  * \brief Validator for MissingParams.
993  *
994  * Error event sent when required params are missing.
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_missing_params(struct ast_json *json);
1001
1002 /*!
1003  * \brief Function pointer to ast_ari_validate_missing_params().
1004  *
1005  * See \ref ast_ari_model_validators.h for more details.
1006  */
1007 ari_validator ast_ari_validate_missing_params_fn(void);
1008
1009 /*!
1010  * \brief Validator for PlaybackFinished.
1011  *
1012  * Event showing the completion of a media playback 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_playback_finished(struct ast_json *json);
1019
1020 /*!
1021  * \brief Function pointer to ast_ari_validate_playback_finished().
1022  *
1023  * See \ref ast_ari_model_validators.h for more details.
1024  */
1025 ari_validator ast_ari_validate_playback_finished_fn(void);
1026
1027 /*!
1028  * \brief Validator for PlaybackStarted.
1029  *
1030  * Event showing the start of a media playback operation.
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_playback_started(struct ast_json *json);
1037
1038 /*!
1039  * \brief Function pointer to ast_ari_validate_playback_started().
1040  *
1041  * See \ref ast_ari_model_validators.h for more details.
1042  */
1043 ari_validator ast_ari_validate_playback_started_fn(void);
1044
1045 /*!
1046  * \brief Validator for RecordingFailed.
1047  *
1048  * Event showing failure of a recording operation.
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_recording_failed(struct ast_json *json);
1055
1056 /*!
1057  * \brief Function pointer to ast_ari_validate_recording_failed().
1058  *
1059  * See \ref ast_ari_model_validators.h for more details.
1060  */
1061 ari_validator ast_ari_validate_recording_failed_fn(void);
1062
1063 /*!
1064  * \brief Validator for RecordingFinished.
1065  *
1066  * Event showing the completion of a recording operation.
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_recording_finished(struct ast_json *json);
1073
1074 /*!
1075  * \brief Function pointer to ast_ari_validate_recording_finished().
1076  *
1077  * See \ref ast_ari_model_validators.h for more details.
1078  */
1079 ari_validator ast_ari_validate_recording_finished_fn(void);
1080
1081 /*!
1082  * \brief Validator for RecordingStarted.
1083  *
1084  * Event showing the start of a recording operation.
1085  *
1086  * \param json JSON object to validate.
1087  * \returns True (non-zero) if valid.
1088  * \returns False (zero) if invalid.
1089  */
1090 int ast_ari_validate_recording_started(struct ast_json *json);
1091
1092 /*!
1093  * \brief Function pointer to ast_ari_validate_recording_started().
1094  *
1095  * See \ref ast_ari_model_validators.h for more details.
1096  */
1097 ari_validator ast_ari_validate_recording_started_fn(void);
1098
1099 /*!
1100  * \brief Validator for StasisEnd.
1101  *
1102  * Notification that a channel has left a Stasis application.
1103  *
1104  * \param json JSON object to validate.
1105  * \returns True (non-zero) if valid.
1106  * \returns False (zero) if invalid.
1107  */
1108 int ast_ari_validate_stasis_end(struct ast_json *json);
1109
1110 /*!
1111  * \brief Function pointer to ast_ari_validate_stasis_end().
1112  *
1113  * See \ref ast_ari_model_validators.h for more details.
1114  */
1115 ari_validator ast_ari_validate_stasis_end_fn(void);
1116
1117 /*!
1118  * \brief Validator for StasisStart.
1119  *
1120  * Notification that a channel has entered a Stasis application.
1121  *
1122  * \param json JSON object to validate.
1123  * \returns True (non-zero) if valid.
1124  * \returns False (zero) if invalid.
1125  */
1126 int ast_ari_validate_stasis_start(struct ast_json *json);
1127
1128 /*!
1129  * \brief Function pointer to ast_ari_validate_stasis_start().
1130  *
1131  * See \ref ast_ari_model_validators.h for more details.
1132  */
1133 ari_validator ast_ari_validate_stasis_start_fn(void);
1134
1135 /*!
1136  * \brief Validator for TextMessageReceived.
1137  *
1138  * A text message was received from an endpoint.
1139  *
1140  * \param json JSON object to validate.
1141  * \returns True (non-zero) if valid.
1142  * \returns False (zero) if invalid.
1143  */
1144 int ast_ari_validate_text_message_received(struct ast_json *json);
1145
1146 /*!
1147  * \brief Function pointer to ast_ari_validate_text_message_received().
1148  *
1149  * See \ref ast_ari_model_validators.h for more details.
1150  */
1151 ari_validator ast_ari_validate_text_message_received_fn(void);
1152
1153 /*!
1154  * \brief Validator for Application.
1155  *
1156  * Details of a Stasis application
1157  *
1158  * \param json JSON object to validate.
1159  * \returns True (non-zero) if valid.
1160  * \returns False (zero) if invalid.
1161  */
1162 int ast_ari_validate_application(struct ast_json *json);
1163
1164 /*!
1165  * \brief Function pointer to ast_ari_validate_application().
1166  *
1167  * See \ref ast_ari_model_validators.h for more details.
1168  */
1169 ari_validator ast_ari_validate_application_fn(void);
1170
1171 /*
1172  * JSON models
1173  *
1174  * AsteriskInfo
1175  * - build: BuildInfo
1176  * - config: ConfigInfo
1177  * - status: StatusInfo
1178  * - system: SystemInfo
1179  * BuildInfo
1180  * - date: string (required)
1181  * - kernel: string (required)
1182  * - machine: string (required)
1183  * - options: string (required)
1184  * - os: string (required)
1185  * - user: string (required)
1186  * ConfigInfo
1187  * - default_language: string (required)
1188  * - max_channels: int
1189  * - max_load: double
1190  * - max_open_files: int
1191  * - name: string (required)
1192  * - setid: SetId (required)
1193  * SetId
1194  * - group: string (required)
1195  * - user: string (required)
1196  * StatusInfo
1197  * - last_reload_time: Date (required)
1198  * - startup_time: Date (required)
1199  * SystemInfo
1200  * - entity_id: string (required)
1201  * - version: string (required)
1202  * Variable
1203  * - value: string (required)
1204  * Endpoint
1205  * - channel_ids: List[string] (required)
1206  * - resource: string (required)
1207  * - state: string
1208  * - technology: string (required)
1209  * TextMessage
1210  * - body: string (required)
1211  * - from: string (required)
1212  * - to: string (required)
1213  * - variables: List[TextMessageVariable]
1214  * TextMessageVariable
1215  * - key: string (required)
1216  * - value: string (required)
1217  * CallerID
1218  * - name: string (required)
1219  * - number: string (required)
1220  * Channel
1221  * - accountcode: string (required)
1222  * - caller: CallerID (required)
1223  * - connected: CallerID (required)
1224  * - creationtime: Date (required)
1225  * - dialplan: DialplanCEP (required)
1226  * - id: string (required)
1227  * - name: string (required)
1228  * - state: string (required)
1229  * Dialed
1230  * DialplanCEP
1231  * - context: string (required)
1232  * - exten: string (required)
1233  * - priority: long (required)
1234  * Bridge
1235  * - bridge_class: string (required)
1236  * - bridge_type: string (required)
1237  * - channels: List[string] (required)
1238  * - creator: string (required)
1239  * - id: string (required)
1240  * - name: string (required)
1241  * - technology: string (required)
1242  * LiveRecording
1243  * - cause: string
1244  * - duration: int
1245  * - format: string (required)
1246  * - name: string (required)
1247  * - silence_duration: int
1248  * - state: string (required)
1249  * - talking_duration: int
1250  * - target_uri: string (required)
1251  * StoredRecording
1252  * - format: string (required)
1253  * - name: string (required)
1254  * FormatLangPair
1255  * - format: string (required)
1256  * - language: string (required)
1257  * Sound
1258  * - formats: List[FormatLangPair] (required)
1259  * - id: string (required)
1260  * - text: string
1261  * Playback
1262  * - id: string (required)
1263  * - language: string
1264  * - media_uri: string (required)
1265  * - state: string (required)
1266  * - target_uri: string (required)
1267  * DeviceState
1268  * - name: string (required)
1269  * - state: string (required)
1270  * Mailbox
1271  * - name: string (required)
1272  * - new_messages: int (required)
1273  * - old_messages: int (required)
1274  * ApplicationReplaced
1275  * - type: string (required)
1276  * - application: string (required)
1277  * - timestamp: Date
1278  * BridgeAttendedTransfer
1279  * - type: string (required)
1280  * - application: string (required)
1281  * - timestamp: Date
1282  * - destination_application: string
1283  * - destination_bridge: string
1284  * - destination_link_first_leg: Channel
1285  * - destination_link_second_leg: Channel
1286  * - destination_threeway_bridge: Bridge
1287  * - destination_threeway_channel: Channel
1288  * - destination_type: string (required)
1289  * - is_external: boolean (required)
1290  * - result: string (required)
1291  * - transferer_first_leg: Channel (required)
1292  * - transferer_first_leg_bridge: Bridge
1293  * - transferer_second_leg: Channel (required)
1294  * - transferer_second_leg_bridge: Bridge
1295  * BridgeBlindTransfer
1296  * - type: string (required)
1297  * - application: string (required)
1298  * - timestamp: Date
1299  * - bridge: Bridge
1300  * - channel: Channel (required)
1301  * - context: string (required)
1302  * - exten: string (required)
1303  * - is_external: boolean (required)
1304  * - result: string (required)
1305  * BridgeCreated
1306  * - type: string (required)
1307  * - application: string (required)
1308  * - timestamp: Date
1309  * - bridge: Bridge (required)
1310  * BridgeDestroyed
1311  * - type: string (required)
1312  * - application: string (required)
1313  * - timestamp: Date
1314  * - bridge: Bridge (required)
1315  * BridgeMerged
1316  * - type: string (required)
1317  * - application: string (required)
1318  * - timestamp: Date
1319  * - bridge: Bridge (required)
1320  * - bridge_from: Bridge (required)
1321  * ChannelCallerId
1322  * - type: string (required)
1323  * - application: string (required)
1324  * - timestamp: Date
1325  * - caller_presentation: int (required)
1326  * - caller_presentation_txt: string (required)
1327  * - channel: Channel (required)
1328  * ChannelCreated
1329  * - type: string (required)
1330  * - application: string (required)
1331  * - timestamp: Date
1332  * - channel: Channel (required)
1333  * ChannelDestroyed
1334  * - type: string (required)
1335  * - application: string (required)
1336  * - timestamp: Date
1337  * - cause: int (required)
1338  * - cause_txt: string (required)
1339  * - channel: Channel (required)
1340  * ChannelDialplan
1341  * - type: string (required)
1342  * - application: string (required)
1343  * - timestamp: Date
1344  * - channel: Channel (required)
1345  * - dialplan_app: string (required)
1346  * - dialplan_app_data: string (required)
1347  * ChannelDtmfReceived
1348  * - type: string (required)
1349  * - application: string (required)
1350  * - timestamp: Date
1351  * - channel: Channel (required)
1352  * - digit: string (required)
1353  * - duration_ms: int (required)
1354  * ChannelEnteredBridge
1355  * - type: string (required)
1356  * - application: string (required)
1357  * - timestamp: Date
1358  * - bridge: Bridge (required)
1359  * - channel: Channel
1360  * ChannelHangupRequest
1361  * - type: string (required)
1362  * - application: string (required)
1363  * - timestamp: Date
1364  * - cause: int
1365  * - channel: Channel (required)
1366  * - soft: boolean
1367  * ChannelLeftBridge
1368  * - type: string (required)
1369  * - application: string (required)
1370  * - timestamp: Date
1371  * - bridge: Bridge (required)
1372  * - channel: Channel (required)
1373  * ChannelStateChange
1374  * - type: string (required)
1375  * - application: string (required)
1376  * - timestamp: Date
1377  * - channel: Channel (required)
1378  * ChannelTalkingFinished
1379  * - type: string (required)
1380  * - application: string (required)
1381  * - timestamp: Date
1382  * - channel: Channel (required)
1383  * - duration: int (required)
1384  * ChannelTalkingStarted
1385  * - type: string (required)
1386  * - application: string (required)
1387  * - timestamp: Date
1388  * - channel: Channel (required)
1389  * ChannelUserevent
1390  * - type: string (required)
1391  * - application: string (required)
1392  * - timestamp: Date
1393  * - bridge: Bridge
1394  * - channel: Channel
1395  * - endpoint: Endpoint
1396  * - eventname: string (required)
1397  * - userevent: object (required)
1398  * ChannelVarset
1399  * - type: string (required)
1400  * - application: string (required)
1401  * - timestamp: Date
1402  * - channel: Channel
1403  * - value: string (required)
1404  * - variable: string (required)
1405  * DeviceStateChanged
1406  * - type: string (required)
1407  * - application: string (required)
1408  * - timestamp: Date
1409  * - device_state: DeviceState (required)
1410  * Dial
1411  * - type: string (required)
1412  * - application: string (required)
1413  * - timestamp: Date
1414  * - caller: Channel
1415  * - dialstatus: string (required)
1416  * - dialstring: string
1417  * - forward: string
1418  * - forwarded: Channel
1419  * - peer: Channel (required)
1420  * EndpointStateChange
1421  * - type: string (required)
1422  * - application: string (required)
1423  * - timestamp: Date
1424  * - endpoint: Endpoint (required)
1425  * Event
1426  * - type: string (required)
1427  * - application: string (required)
1428  * - timestamp: Date
1429  * Message
1430  * - type: string (required)
1431  * MissingParams
1432  * - type: string (required)
1433  * - params: List[string] (required)
1434  * PlaybackFinished
1435  * - type: string (required)
1436  * - application: string (required)
1437  * - timestamp: Date
1438  * - playback: Playback (required)
1439  * PlaybackStarted
1440  * - type: string (required)
1441  * - application: string (required)
1442  * - timestamp: Date
1443  * - playback: Playback (required)
1444  * RecordingFailed
1445  * - type: string (required)
1446  * - application: string (required)
1447  * - timestamp: Date
1448  * - recording: LiveRecording (required)
1449  * RecordingFinished
1450  * - type: string (required)
1451  * - application: string (required)
1452  * - timestamp: Date
1453  * - recording: LiveRecording (required)
1454  * RecordingStarted
1455  * - type: string (required)
1456  * - application: string (required)
1457  * - timestamp: Date
1458  * - recording: LiveRecording (required)
1459  * StasisEnd
1460  * - type: string (required)
1461  * - application: string (required)
1462  * - timestamp: Date
1463  * - channel: Channel (required)
1464  * StasisStart
1465  * - type: string (required)
1466  * - application: string (required)
1467  * - timestamp: Date
1468  * - args: List[string] (required)
1469  * - channel: Channel (required)
1470  * TextMessageReceived
1471  * - type: string (required)
1472  * - application: string (required)
1473  * - timestamp: Date
1474  * - endpoint: Endpoint
1475  * - message: TextMessage (required)
1476  * Application
1477  * - bridge_ids: List[string] (required)
1478  * - channel_ids: List[string] (required)
1479  * - device_names: List[string] (required)
1480  * - endpoint_ids: List[string] (required)
1481  * - name: string (required)
1482  */
1483
1484 #endif /* _ASTERISK_ARI_MODEL_H */