Asterisk - The Open Source Telephony Project GIT-master-6144b6b
Loading...
Searching...
No Matches
ari_model_validators.c
Go to the documentation of this file.
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
22 /*
23 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
24 * !!!!! DO NOT EDIT !!!!!
25 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
26 * This file is generated by a mustache template. Please see the original
27 * template in rest-api-templates/ari_model_validators.c.mustache
28 */
29
30#include "asterisk.h"
31
32#include "asterisk/logger.h"
33#include "asterisk/module.h"
35
37{
38 int res = 1;
39 struct ast_json_iter *iter;
40
41 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
42 if (strcmp("build", ast_json_object_iter_key(iter)) == 0) {
43 int prop_is_valid;
44 prop_is_valid = ast_ari_validate_build_info(
46 if (!prop_is_valid) {
47 ast_log(LOG_ERROR, "ARI AsteriskInfo field build failed validation\n");
48 res = 0;
49 }
50 } else
51 if (strcmp("config", ast_json_object_iter_key(iter)) == 0) {
52 int prop_is_valid;
53 prop_is_valid = ast_ari_validate_config_info(
55 if (!prop_is_valid) {
56 ast_log(LOG_ERROR, "ARI AsteriskInfo field config failed validation\n");
57 res = 0;
58 }
59 } else
60 if (strcmp("status", ast_json_object_iter_key(iter)) == 0) {
61 int prop_is_valid;
62 prop_is_valid = ast_ari_validate_status_info(
64 if (!prop_is_valid) {
65 ast_log(LOG_ERROR, "ARI AsteriskInfo field status failed validation\n");
66 res = 0;
67 }
68 } else
69 if (strcmp("system", ast_json_object_iter_key(iter)) == 0) {
70 int prop_is_valid;
71 prop_is_valid = ast_ari_validate_system_info(
73 if (!prop_is_valid) {
74 ast_log(LOG_ERROR, "ARI AsteriskInfo field system failed validation\n");
75 res = 0;
76 }
77 } else
78 {
80 "ARI AsteriskInfo has undocumented field %s\n",
82 res = 0;
83 }
84 }
85
86 return res;
87}
88
93
95{
96 int res = 1;
97 struct ast_json_iter *iter;
98 int has_asterisk_id = 0;
99 int has_ping = 0;
100 int has_timestamp = 0;
101
102 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
103 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
104 int prop_is_valid;
105 has_asterisk_id = 1;
106 prop_is_valid = ast_ari_validate_string(
108 if (!prop_is_valid) {
109 ast_log(LOG_ERROR, "ARI AsteriskPing field asterisk_id failed validation\n");
110 res = 0;
111 }
112 } else
113 if (strcmp("ping", ast_json_object_iter_key(iter)) == 0) {
114 int prop_is_valid;
115 has_ping = 1;
116 prop_is_valid = ast_ari_validate_string(
118 if (!prop_is_valid) {
119 ast_log(LOG_ERROR, "ARI AsteriskPing field ping failed validation\n");
120 res = 0;
121 }
122 } else
123 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
124 int prop_is_valid;
125 has_timestamp = 1;
126 prop_is_valid = ast_ari_validate_string(
128 if (!prop_is_valid) {
129 ast_log(LOG_ERROR, "ARI AsteriskPing field timestamp failed validation\n");
130 res = 0;
131 }
132 } else
133 {
135 "ARI AsteriskPing has undocumented field %s\n",
137 res = 0;
138 }
139 }
140
141 if (!has_asterisk_id) {
142 ast_log(LOG_ERROR, "ARI AsteriskPing missing required field asterisk_id\n");
143 res = 0;
144 }
145
146 if (!has_ping) {
147 ast_log(LOG_ERROR, "ARI AsteriskPing missing required field ping\n");
148 res = 0;
149 }
150
151 if (!has_timestamp) {
152 ast_log(LOG_ERROR, "ARI AsteriskPing missing required field timestamp\n");
153 res = 0;
154 }
155
156 return res;
157}
158
163
165{
166 int res = 1;
167 struct ast_json_iter *iter;
168 int has_date = 0;
169 int has_kernel = 0;
170 int has_machine = 0;
171 int has_options = 0;
172 int has_os = 0;
173 int has_user = 0;
174
175 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
176 if (strcmp("date", ast_json_object_iter_key(iter)) == 0) {
177 int prop_is_valid;
178 has_date = 1;
179 prop_is_valid = ast_ari_validate_string(
181 if (!prop_is_valid) {
182 ast_log(LOG_ERROR, "ARI BuildInfo field date failed validation\n");
183 res = 0;
184 }
185 } else
186 if (strcmp("kernel", ast_json_object_iter_key(iter)) == 0) {
187 int prop_is_valid;
188 has_kernel = 1;
189 prop_is_valid = ast_ari_validate_string(
191 if (!prop_is_valid) {
192 ast_log(LOG_ERROR, "ARI BuildInfo field kernel failed validation\n");
193 res = 0;
194 }
195 } else
196 if (strcmp("machine", ast_json_object_iter_key(iter)) == 0) {
197 int prop_is_valid;
198 has_machine = 1;
199 prop_is_valid = ast_ari_validate_string(
201 if (!prop_is_valid) {
202 ast_log(LOG_ERROR, "ARI BuildInfo field machine failed validation\n");
203 res = 0;
204 }
205 } else
206 if (strcmp("options", ast_json_object_iter_key(iter)) == 0) {
207 int prop_is_valid;
208 has_options = 1;
209 prop_is_valid = ast_ari_validate_string(
211 if (!prop_is_valid) {
212 ast_log(LOG_ERROR, "ARI BuildInfo field options failed validation\n");
213 res = 0;
214 }
215 } else
216 if (strcmp("os", ast_json_object_iter_key(iter)) == 0) {
217 int prop_is_valid;
218 has_os = 1;
219 prop_is_valid = ast_ari_validate_string(
221 if (!prop_is_valid) {
222 ast_log(LOG_ERROR, "ARI BuildInfo field os failed validation\n");
223 res = 0;
224 }
225 } else
226 if (strcmp("user", ast_json_object_iter_key(iter)) == 0) {
227 int prop_is_valid;
228 has_user = 1;
229 prop_is_valid = ast_ari_validate_string(
231 if (!prop_is_valid) {
232 ast_log(LOG_ERROR, "ARI BuildInfo field user failed validation\n");
233 res = 0;
234 }
235 } else
236 {
238 "ARI BuildInfo has undocumented field %s\n",
240 res = 0;
241 }
242 }
243
244 if (!has_date) {
245 ast_log(LOG_ERROR, "ARI BuildInfo missing required field date\n");
246 res = 0;
247 }
248
249 if (!has_kernel) {
250 ast_log(LOG_ERROR, "ARI BuildInfo missing required field kernel\n");
251 res = 0;
252 }
253
254 if (!has_machine) {
255 ast_log(LOG_ERROR, "ARI BuildInfo missing required field machine\n");
256 res = 0;
257 }
258
259 if (!has_options) {
260 ast_log(LOG_ERROR, "ARI BuildInfo missing required field options\n");
261 res = 0;
262 }
263
264 if (!has_os) {
265 ast_log(LOG_ERROR, "ARI BuildInfo missing required field os\n");
266 res = 0;
267 }
268
269 if (!has_user) {
270 ast_log(LOG_ERROR, "ARI BuildInfo missing required field user\n");
271 res = 0;
272 }
273
274 return res;
275}
276
281
283{
284 int res = 1;
285 struct ast_json_iter *iter;
286 int has_default_language = 0;
287 int has_name = 0;
288 int has_setid = 0;
289
290 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
291 if (strcmp("default_language", ast_json_object_iter_key(iter)) == 0) {
292 int prop_is_valid;
293 has_default_language = 1;
294 prop_is_valid = ast_ari_validate_string(
296 if (!prop_is_valid) {
297 ast_log(LOG_ERROR, "ARI ConfigInfo field default_language failed validation\n");
298 res = 0;
299 }
300 } else
301 if (strcmp("max_channels", ast_json_object_iter_key(iter)) == 0) {
302 int prop_is_valid;
303 prop_is_valid = ast_ari_validate_int(
305 if (!prop_is_valid) {
306 ast_log(LOG_ERROR, "ARI ConfigInfo field max_channels failed validation\n");
307 res = 0;
308 }
309 } else
310 if (strcmp("max_load", ast_json_object_iter_key(iter)) == 0) {
311 int prop_is_valid;
312 prop_is_valid = ast_ari_validate_double(
314 if (!prop_is_valid) {
315 ast_log(LOG_ERROR, "ARI ConfigInfo field max_load failed validation\n");
316 res = 0;
317 }
318 } else
319 if (strcmp("max_open_files", ast_json_object_iter_key(iter)) == 0) {
320 int prop_is_valid;
321 prop_is_valid = ast_ari_validate_int(
323 if (!prop_is_valid) {
324 ast_log(LOG_ERROR, "ARI ConfigInfo field max_open_files failed validation\n");
325 res = 0;
326 }
327 } else
328 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
329 int prop_is_valid;
330 has_name = 1;
331 prop_is_valid = ast_ari_validate_string(
333 if (!prop_is_valid) {
334 ast_log(LOG_ERROR, "ARI ConfigInfo field name failed validation\n");
335 res = 0;
336 }
337 } else
338 if (strcmp("setid", ast_json_object_iter_key(iter)) == 0) {
339 int prop_is_valid;
340 has_setid = 1;
341 prop_is_valid = ast_ari_validate_set_id(
343 if (!prop_is_valid) {
344 ast_log(LOG_ERROR, "ARI ConfigInfo field setid failed validation\n");
345 res = 0;
346 }
347 } else
348 {
350 "ARI ConfigInfo has undocumented field %s\n",
352 res = 0;
353 }
354 }
355
356 if (!has_default_language) {
357 ast_log(LOG_ERROR, "ARI ConfigInfo missing required field default_language\n");
358 res = 0;
359 }
360
361 if (!has_name) {
362 ast_log(LOG_ERROR, "ARI ConfigInfo missing required field name\n");
363 res = 0;
364 }
365
366 if (!has_setid) {
367 ast_log(LOG_ERROR, "ARI ConfigInfo missing required field setid\n");
368 res = 0;
369 }
370
371 return res;
372}
373
378
380{
381 int res = 1;
382 struct ast_json_iter *iter;
383 int has_attribute = 0;
384 int has_value = 0;
385
386 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
387 if (strcmp("attribute", ast_json_object_iter_key(iter)) == 0) {
388 int prop_is_valid;
389 has_attribute = 1;
390 prop_is_valid = ast_ari_validate_string(
392 if (!prop_is_valid) {
393 ast_log(LOG_ERROR, "ARI ConfigTuple field attribute failed validation\n");
394 res = 0;
395 }
396 } else
397 if (strcmp("value", ast_json_object_iter_key(iter)) == 0) {
398 int prop_is_valid;
399 has_value = 1;
400 prop_is_valid = ast_ari_validate_string(
402 if (!prop_is_valid) {
403 ast_log(LOG_ERROR, "ARI ConfigTuple field value failed validation\n");
404 res = 0;
405 }
406 } else
407 {
409 "ARI ConfigTuple has undocumented field %s\n",
411 res = 0;
412 }
413 }
414
415 if (!has_attribute) {
416 ast_log(LOG_ERROR, "ARI ConfigTuple missing required field attribute\n");
417 res = 0;
418 }
419
420 if (!has_value) {
421 ast_log(LOG_ERROR, "ARI ConfigTuple missing required field value\n");
422 res = 0;
423 }
424
425 return res;
426}
427
432
434{
435 int res = 1;
436 struct ast_json_iter *iter;
437 int has_channel = 0;
438 int has_configuration = 0;
439 int has_status = 0;
440 int has_type = 0;
441
442 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
443 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
444 int prop_is_valid;
445 has_channel = 1;
446 prop_is_valid = ast_ari_validate_string(
448 if (!prop_is_valid) {
449 ast_log(LOG_ERROR, "ARI LogChannel field channel failed validation\n");
450 res = 0;
451 }
452 } else
453 if (strcmp("configuration", ast_json_object_iter_key(iter)) == 0) {
454 int prop_is_valid;
455 has_configuration = 1;
456 prop_is_valid = ast_ari_validate_string(
458 if (!prop_is_valid) {
459 ast_log(LOG_ERROR, "ARI LogChannel field configuration failed validation\n");
460 res = 0;
461 }
462 } else
463 if (strcmp("status", ast_json_object_iter_key(iter)) == 0) {
464 int prop_is_valid;
465 has_status = 1;
466 prop_is_valid = ast_ari_validate_string(
468 if (!prop_is_valid) {
469 ast_log(LOG_ERROR, "ARI LogChannel field status failed validation\n");
470 res = 0;
471 }
472 } else
473 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
474 int prop_is_valid;
475 has_type = 1;
476 prop_is_valid = ast_ari_validate_string(
478 if (!prop_is_valid) {
479 ast_log(LOG_ERROR, "ARI LogChannel field type failed validation\n");
480 res = 0;
481 }
482 } else
483 {
485 "ARI LogChannel has undocumented field %s\n",
487 res = 0;
488 }
489 }
490
491 if (!has_channel) {
492 ast_log(LOG_ERROR, "ARI LogChannel missing required field channel\n");
493 res = 0;
494 }
495
496 if (!has_configuration) {
497 ast_log(LOG_ERROR, "ARI LogChannel missing required field configuration\n");
498 res = 0;
499 }
500
501 if (!has_status) {
502 ast_log(LOG_ERROR, "ARI LogChannel missing required field status\n");
503 res = 0;
504 }
505
506 if (!has_type) {
507 ast_log(LOG_ERROR, "ARI LogChannel missing required field type\n");
508 res = 0;
509 }
510
511 return res;
512}
513
518
520{
521 int res = 1;
522 struct ast_json_iter *iter;
523 int has_description = 0;
524 int has_name = 0;
525 int has_status = 0;
526 int has_support_level = 0;
527 int has_use_count = 0;
528
529 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
530 if (strcmp("description", ast_json_object_iter_key(iter)) == 0) {
531 int prop_is_valid;
532 has_description = 1;
533 prop_is_valid = ast_ari_validate_string(
535 if (!prop_is_valid) {
536 ast_log(LOG_ERROR, "ARI Module field description failed validation\n");
537 res = 0;
538 }
539 } else
540 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
541 int prop_is_valid;
542 has_name = 1;
543 prop_is_valid = ast_ari_validate_string(
545 if (!prop_is_valid) {
546 ast_log(LOG_ERROR, "ARI Module field name failed validation\n");
547 res = 0;
548 }
549 } else
550 if (strcmp("status", ast_json_object_iter_key(iter)) == 0) {
551 int prop_is_valid;
552 has_status = 1;
553 prop_is_valid = ast_ari_validate_string(
555 if (!prop_is_valid) {
556 ast_log(LOG_ERROR, "ARI Module field status failed validation\n");
557 res = 0;
558 }
559 } else
560 if (strcmp("support_level", ast_json_object_iter_key(iter)) == 0) {
561 int prop_is_valid;
562 has_support_level = 1;
563 prop_is_valid = ast_ari_validate_string(
565 if (!prop_is_valid) {
566 ast_log(LOG_ERROR, "ARI Module field support_level failed validation\n");
567 res = 0;
568 }
569 } else
570 if (strcmp("use_count", ast_json_object_iter_key(iter)) == 0) {
571 int prop_is_valid;
572 has_use_count = 1;
573 prop_is_valid = ast_ari_validate_int(
575 if (!prop_is_valid) {
576 ast_log(LOG_ERROR, "ARI Module field use_count failed validation\n");
577 res = 0;
578 }
579 } else
580 {
582 "ARI Module has undocumented field %s\n",
584 res = 0;
585 }
586 }
587
588 if (!has_description) {
589 ast_log(LOG_ERROR, "ARI Module missing required field description\n");
590 res = 0;
591 }
592
593 if (!has_name) {
594 ast_log(LOG_ERROR, "ARI Module missing required field name\n");
595 res = 0;
596 }
597
598 if (!has_status) {
599 ast_log(LOG_ERROR, "ARI Module missing required field status\n");
600 res = 0;
601 }
602
603 if (!has_support_level) {
604 ast_log(LOG_ERROR, "ARI Module missing required field support_level\n");
605 res = 0;
606 }
607
608 if (!has_use_count) {
609 ast_log(LOG_ERROR, "ARI Module missing required field use_count\n");
610 res = 0;
611 }
612
613 return res;
614}
615
620
622{
623 int res = 1;
624 struct ast_json_iter *iter;
625 int has_group = 0;
626 int has_user = 0;
627
628 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
629 if (strcmp("group", ast_json_object_iter_key(iter)) == 0) {
630 int prop_is_valid;
631 has_group = 1;
632 prop_is_valid = ast_ari_validate_string(
634 if (!prop_is_valid) {
635 ast_log(LOG_ERROR, "ARI SetId field group failed validation\n");
636 res = 0;
637 }
638 } else
639 if (strcmp("user", ast_json_object_iter_key(iter)) == 0) {
640 int prop_is_valid;
641 has_user = 1;
642 prop_is_valid = ast_ari_validate_string(
644 if (!prop_is_valid) {
645 ast_log(LOG_ERROR, "ARI SetId field user failed validation\n");
646 res = 0;
647 }
648 } else
649 {
651 "ARI SetId has undocumented field %s\n",
653 res = 0;
654 }
655 }
656
657 if (!has_group) {
658 ast_log(LOG_ERROR, "ARI SetId missing required field group\n");
659 res = 0;
660 }
661
662 if (!has_user) {
663 ast_log(LOG_ERROR, "ARI SetId missing required field user\n");
664 res = 0;
665 }
666
667 return res;
668}
669
674
676{
677 int res = 1;
678 struct ast_json_iter *iter;
679 int has_last_reload_time = 0;
680 int has_startup_time = 0;
681
682 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
683 if (strcmp("last_reload_time", ast_json_object_iter_key(iter)) == 0) {
684 int prop_is_valid;
685 has_last_reload_time = 1;
686 prop_is_valid = ast_ari_validate_date(
688 if (!prop_is_valid) {
689 ast_log(LOG_ERROR, "ARI StatusInfo field last_reload_time failed validation\n");
690 res = 0;
691 }
692 } else
693 if (strcmp("startup_time", ast_json_object_iter_key(iter)) == 0) {
694 int prop_is_valid;
695 has_startup_time = 1;
696 prop_is_valid = ast_ari_validate_date(
698 if (!prop_is_valid) {
699 ast_log(LOG_ERROR, "ARI StatusInfo field startup_time failed validation\n");
700 res = 0;
701 }
702 } else
703 {
705 "ARI StatusInfo has undocumented field %s\n",
707 res = 0;
708 }
709 }
710
711 if (!has_last_reload_time) {
712 ast_log(LOG_ERROR, "ARI StatusInfo missing required field last_reload_time\n");
713 res = 0;
714 }
715
716 if (!has_startup_time) {
717 ast_log(LOG_ERROR, "ARI StatusInfo missing required field startup_time\n");
718 res = 0;
719 }
720
721 return res;
722}
723
728
730{
731 int res = 1;
732 struct ast_json_iter *iter;
733 int has_entity_id = 0;
734 int has_version = 0;
735
736 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
737 if (strcmp("entity_id", ast_json_object_iter_key(iter)) == 0) {
738 int prop_is_valid;
739 has_entity_id = 1;
740 prop_is_valid = ast_ari_validate_string(
742 if (!prop_is_valid) {
743 ast_log(LOG_ERROR, "ARI SystemInfo field entity_id failed validation\n");
744 res = 0;
745 }
746 } else
747 if (strcmp("version", ast_json_object_iter_key(iter)) == 0) {
748 int prop_is_valid;
749 has_version = 1;
750 prop_is_valid = ast_ari_validate_string(
752 if (!prop_is_valid) {
753 ast_log(LOG_ERROR, "ARI SystemInfo field version failed validation\n");
754 res = 0;
755 }
756 } else
757 {
759 "ARI SystemInfo has undocumented field %s\n",
761 res = 0;
762 }
763 }
764
765 if (!has_entity_id) {
766 ast_log(LOG_ERROR, "ARI SystemInfo missing required field entity_id\n");
767 res = 0;
768 }
769
770 if (!has_version) {
771 ast_log(LOG_ERROR, "ARI SystemInfo missing required field version\n");
772 res = 0;
773 }
774
775 return res;
776}
777
782
784{
785 int res = 1;
786 struct ast_json_iter *iter;
787 int has_value = 0;
788
789 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
790 if (strcmp("value", ast_json_object_iter_key(iter)) == 0) {
791 int prop_is_valid;
792 has_value = 1;
793 prop_is_valid = ast_ari_validate_string(
795 if (!prop_is_valid) {
796 ast_log(LOG_ERROR, "ARI Variable field value failed validation\n");
797 res = 0;
798 }
799 } else
800 {
802 "ARI Variable has undocumented field %s\n",
804 res = 0;
805 }
806 }
807
808 if (!has_value) {
809 ast_log(LOG_ERROR, "ARI Variable missing required field value\n");
810 res = 0;
811 }
812
813 return res;
814}
815
820
822{
823 int res = 1;
824 struct ast_json_iter *iter;
825 int has_variables = 0;
826
827 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
828 if (strcmp("variables", ast_json_object_iter_key(iter)) == 0) {
829 int prop_is_valid;
830 has_variables = 1;
831 prop_is_valid = ast_ari_validate_object(
833 if (!prop_is_valid) {
834 ast_log(LOG_ERROR, "ARI Variables field variables failed validation\n");
835 res = 0;
836 }
837 } else
838 {
840 "ARI Variables has undocumented field %s\n",
842 res = 0;
843 }
844 }
845
846 if (!has_variables) {
847 ast_log(LOG_ERROR, "ARI Variables missing required field variables\n");
848 res = 0;
849 }
850
851 return res;
852}
853
858
860{
861 int res = 1;
862 struct ast_json_iter *iter;
863 int has_channel_ids = 0;
864 int has_resource = 0;
865 int has_technology = 0;
866
867 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
868 if (strcmp("channel_ids", ast_json_object_iter_key(iter)) == 0) {
869 int prop_is_valid;
870 has_channel_ids = 1;
871 prop_is_valid = ast_ari_validate_list(
874 if (!prop_is_valid) {
875 ast_log(LOG_ERROR, "ARI Endpoint field channel_ids failed validation\n");
876 res = 0;
877 }
878 } else
879 if (strcmp("resource", ast_json_object_iter_key(iter)) == 0) {
880 int prop_is_valid;
881 has_resource = 1;
882 prop_is_valid = ast_ari_validate_string(
884 if (!prop_is_valid) {
885 ast_log(LOG_ERROR, "ARI Endpoint field resource failed validation\n");
886 res = 0;
887 }
888 } else
889 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
890 int prop_is_valid;
891 prop_is_valid = ast_ari_validate_string(
893 if (!prop_is_valid) {
894 ast_log(LOG_ERROR, "ARI Endpoint field state failed validation\n");
895 res = 0;
896 }
897 } else
898 if (strcmp("technology", ast_json_object_iter_key(iter)) == 0) {
899 int prop_is_valid;
900 has_technology = 1;
901 prop_is_valid = ast_ari_validate_string(
903 if (!prop_is_valid) {
904 ast_log(LOG_ERROR, "ARI Endpoint field technology failed validation\n");
905 res = 0;
906 }
907 } else
908 {
910 "ARI Endpoint has undocumented field %s\n",
912 res = 0;
913 }
914 }
915
916 if (!has_channel_ids) {
917 ast_log(LOG_ERROR, "ARI Endpoint missing required field channel_ids\n");
918 res = 0;
919 }
920
921 if (!has_resource) {
922 ast_log(LOG_ERROR, "ARI Endpoint missing required field resource\n");
923 res = 0;
924 }
925
926 if (!has_technology) {
927 ast_log(LOG_ERROR, "ARI Endpoint missing required field technology\n");
928 res = 0;
929 }
930
931 return res;
932}
933
938
940{
941 int res = 1;
942 struct ast_json_iter *iter;
943 int has_body = 0;
944 int has_from = 0;
945 int has_to = 0;
946
947 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
948 if (strcmp("body", ast_json_object_iter_key(iter)) == 0) {
949 int prop_is_valid;
950 has_body = 1;
951 prop_is_valid = ast_ari_validate_string(
953 if (!prop_is_valid) {
954 ast_log(LOG_ERROR, "ARI TextMessage field body failed validation\n");
955 res = 0;
956 }
957 } else
958 if (strcmp("from", ast_json_object_iter_key(iter)) == 0) {
959 int prop_is_valid;
960 has_from = 1;
961 prop_is_valid = ast_ari_validate_string(
963 if (!prop_is_valid) {
964 ast_log(LOG_ERROR, "ARI TextMessage field from failed validation\n");
965 res = 0;
966 }
967 } else
968 if (strcmp("to", ast_json_object_iter_key(iter)) == 0) {
969 int prop_is_valid;
970 has_to = 1;
971 prop_is_valid = ast_ari_validate_string(
973 if (!prop_is_valid) {
974 ast_log(LOG_ERROR, "ARI TextMessage field to failed validation\n");
975 res = 0;
976 }
977 } else
978 if (strcmp("variables", ast_json_object_iter_key(iter)) == 0) {
979 int prop_is_valid;
980 prop_is_valid = ast_ari_validate_object(
982 if (!prop_is_valid) {
983 ast_log(LOG_ERROR, "ARI TextMessage field variables failed validation\n");
984 res = 0;
985 }
986 } else
987 {
989 "ARI TextMessage has undocumented field %s\n",
991 res = 0;
992 }
993 }
994
995 if (!has_body) {
996 ast_log(LOG_ERROR, "ARI TextMessage missing required field body\n");
997 res = 0;
998 }
999
1000 if (!has_from) {
1001 ast_log(LOG_ERROR, "ARI TextMessage missing required field from\n");
1002 res = 0;
1003 }
1004
1005 if (!has_to) {
1006 ast_log(LOG_ERROR, "ARI TextMessage missing required field to\n");
1007 res = 0;
1008 }
1009
1010 return res;
1011}
1012
1017
1019{
1020 int res = 1;
1021 struct ast_json_iter *iter;
1022 int has_name = 0;
1023 int has_number = 0;
1024
1025 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1026 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
1027 int prop_is_valid;
1028 has_name = 1;
1029 prop_is_valid = ast_ari_validate_string(
1031 if (!prop_is_valid) {
1032 ast_log(LOG_ERROR, "ARI CallerID field name failed validation\n");
1033 res = 0;
1034 }
1035 } else
1036 if (strcmp("number", ast_json_object_iter_key(iter)) == 0) {
1037 int prop_is_valid;
1038 has_number = 1;
1039 prop_is_valid = ast_ari_validate_string(
1041 if (!prop_is_valid) {
1042 ast_log(LOG_ERROR, "ARI CallerID field number failed validation\n");
1043 res = 0;
1044 }
1045 } else
1046 {
1048 "ARI CallerID has undocumented field %s\n",
1050 res = 0;
1051 }
1052 }
1053
1054 if (!has_name) {
1055 ast_log(LOG_ERROR, "ARI CallerID missing required field name\n");
1056 res = 0;
1057 }
1058
1059 if (!has_number) {
1060 ast_log(LOG_ERROR, "ARI CallerID missing required field number\n");
1061 res = 0;
1062 }
1063
1064 return res;
1065}
1066
1071
1073{
1074 int res = 1;
1075 struct ast_json_iter *iter;
1076 int has_accountcode = 0;
1077 int has_caller = 0;
1078 int has_connected = 0;
1079 int has_creationtime = 0;
1080 int has_dialplan = 0;
1081 int has_id = 0;
1082 int has_language = 0;
1083 int has_name = 0;
1084 int has_protocol_id = 0;
1085 int has_state = 0;
1086
1087 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1088 if (strcmp("accountcode", ast_json_object_iter_key(iter)) == 0) {
1089 int prop_is_valid;
1090 has_accountcode = 1;
1091 prop_is_valid = ast_ari_validate_string(
1093 if (!prop_is_valid) {
1094 ast_log(LOG_ERROR, "ARI Channel field accountcode failed validation\n");
1095 res = 0;
1096 }
1097 } else
1098 if (strcmp("caller", ast_json_object_iter_key(iter)) == 0) {
1099 int prop_is_valid;
1100 has_caller = 1;
1101 prop_is_valid = ast_ari_validate_caller_id(
1103 if (!prop_is_valid) {
1104 ast_log(LOG_ERROR, "ARI Channel field caller failed validation\n");
1105 res = 0;
1106 }
1107 } else
1108 if (strcmp("caller_rdnis", ast_json_object_iter_key(iter)) == 0) {
1109 int prop_is_valid;
1110 prop_is_valid = ast_ari_validate_string(
1112 if (!prop_is_valid) {
1113 ast_log(LOG_ERROR, "ARI Channel field caller_rdnis failed validation\n");
1114 res = 0;
1115 }
1116 } else
1117 if (strcmp("channelvars", ast_json_object_iter_key(iter)) == 0) {
1118 int prop_is_valid;
1119 prop_is_valid = ast_ari_validate_object(
1121 if (!prop_is_valid) {
1122 ast_log(LOG_ERROR, "ARI Channel field channelvars failed validation\n");
1123 res = 0;
1124 }
1125 } else
1126 if (strcmp("connected", ast_json_object_iter_key(iter)) == 0) {
1127 int prop_is_valid;
1128 has_connected = 1;
1129 prop_is_valid = ast_ari_validate_caller_id(
1131 if (!prop_is_valid) {
1132 ast_log(LOG_ERROR, "ARI Channel field connected failed validation\n");
1133 res = 0;
1134 }
1135 } else
1136 if (strcmp("creationtime", ast_json_object_iter_key(iter)) == 0) {
1137 int prop_is_valid;
1138 has_creationtime = 1;
1139 prop_is_valid = ast_ari_validate_date(
1141 if (!prop_is_valid) {
1142 ast_log(LOG_ERROR, "ARI Channel field creationtime failed validation\n");
1143 res = 0;
1144 }
1145 } else
1146 if (strcmp("dialplan", ast_json_object_iter_key(iter)) == 0) {
1147 int prop_is_valid;
1148 has_dialplan = 1;
1149 prop_is_valid = ast_ari_validate_dialplan_cep(
1151 if (!prop_is_valid) {
1152 ast_log(LOG_ERROR, "ARI Channel field dialplan failed validation\n");
1153 res = 0;
1154 }
1155 } else
1156 if (strcmp("id", ast_json_object_iter_key(iter)) == 0) {
1157 int prop_is_valid;
1158 has_id = 1;
1159 prop_is_valid = ast_ari_validate_string(
1161 if (!prop_is_valid) {
1162 ast_log(LOG_ERROR, "ARI Channel field id failed validation\n");
1163 res = 0;
1164 }
1165 } else
1166 if (strcmp("language", ast_json_object_iter_key(iter)) == 0) {
1167 int prop_is_valid;
1168 has_language = 1;
1169 prop_is_valid = ast_ari_validate_string(
1171 if (!prop_is_valid) {
1172 ast_log(LOG_ERROR, "ARI Channel field language failed validation\n");
1173 res = 0;
1174 }
1175 } else
1176 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
1177 int prop_is_valid;
1178 has_name = 1;
1179 prop_is_valid = ast_ari_validate_string(
1181 if (!prop_is_valid) {
1182 ast_log(LOG_ERROR, "ARI Channel field name failed validation\n");
1183 res = 0;
1184 }
1185 } else
1186 if (strcmp("protocol_id", ast_json_object_iter_key(iter)) == 0) {
1187 int prop_is_valid;
1188 has_protocol_id = 1;
1189 prop_is_valid = ast_ari_validate_string(
1191 if (!prop_is_valid) {
1192 ast_log(LOG_ERROR, "ARI Channel field protocol_id failed validation\n");
1193 res = 0;
1194 }
1195 } else
1196 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
1197 int prop_is_valid;
1198 has_state = 1;
1199 prop_is_valid = ast_ari_validate_string(
1201 if (!prop_is_valid) {
1202 ast_log(LOG_ERROR, "ARI Channel field state failed validation\n");
1203 res = 0;
1204 }
1205 } else
1206 if (strcmp("tenantid", ast_json_object_iter_key(iter)) == 0) {
1207 int prop_is_valid;
1208 prop_is_valid = ast_ari_validate_string(
1210 if (!prop_is_valid) {
1211 ast_log(LOG_ERROR, "ARI Channel field tenantid failed validation\n");
1212 res = 0;
1213 }
1214 } else
1215 {
1217 "ARI Channel has undocumented field %s\n",
1219 res = 0;
1220 }
1221 }
1222
1223 if (!has_accountcode) {
1224 ast_log(LOG_ERROR, "ARI Channel missing required field accountcode\n");
1225 res = 0;
1226 }
1227
1228 if (!has_caller) {
1229 ast_log(LOG_ERROR, "ARI Channel missing required field caller\n");
1230 res = 0;
1231 }
1232
1233 if (!has_connected) {
1234 ast_log(LOG_ERROR, "ARI Channel missing required field connected\n");
1235 res = 0;
1236 }
1237
1238 if (!has_creationtime) {
1239 ast_log(LOG_ERROR, "ARI Channel missing required field creationtime\n");
1240 res = 0;
1241 }
1242
1243 if (!has_dialplan) {
1244 ast_log(LOG_ERROR, "ARI Channel missing required field dialplan\n");
1245 res = 0;
1246 }
1247
1248 if (!has_id) {
1249 ast_log(LOG_ERROR, "ARI Channel missing required field id\n");
1250 res = 0;
1251 }
1252
1253 if (!has_language) {
1254 ast_log(LOG_ERROR, "ARI Channel missing required field language\n");
1255 res = 0;
1256 }
1257
1258 if (!has_name) {
1259 ast_log(LOG_ERROR, "ARI Channel missing required field name\n");
1260 res = 0;
1261 }
1262
1263 if (!has_protocol_id) {
1264 ast_log(LOG_ERROR, "ARI Channel missing required field protocol_id\n");
1265 res = 0;
1266 }
1267
1268 if (!has_state) {
1269 ast_log(LOG_ERROR, "ARI Channel missing required field state\n");
1270 res = 0;
1271 }
1272
1273 return res;
1274}
1275
1280
1282{
1283 int res = 1;
1284 struct ast_json_iter *iter;
1285
1286 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1287 {
1289 "ARI Dialed has undocumented field %s\n",
1291 res = 0;
1292 }
1293 }
1294
1295 return res;
1296}
1297
1302
1304{
1305 int res = 1;
1306 struct ast_json_iter *iter;
1307 int has_app_data = 0;
1308 int has_app_name = 0;
1309 int has_context = 0;
1310 int has_exten = 0;
1311 int has_priority = 0;
1312
1313 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1314 if (strcmp("app_data", ast_json_object_iter_key(iter)) == 0) {
1315 int prop_is_valid;
1316 has_app_data = 1;
1317 prop_is_valid = ast_ari_validate_string(
1319 if (!prop_is_valid) {
1320 ast_log(LOG_ERROR, "ARI DialplanCEP field app_data failed validation\n");
1321 res = 0;
1322 }
1323 } else
1324 if (strcmp("app_name", ast_json_object_iter_key(iter)) == 0) {
1325 int prop_is_valid;
1326 has_app_name = 1;
1327 prop_is_valid = ast_ari_validate_string(
1329 if (!prop_is_valid) {
1330 ast_log(LOG_ERROR, "ARI DialplanCEP field app_name failed validation\n");
1331 res = 0;
1332 }
1333 } else
1334 if (strcmp("context", ast_json_object_iter_key(iter)) == 0) {
1335 int prop_is_valid;
1336 has_context = 1;
1337 prop_is_valid = ast_ari_validate_string(
1339 if (!prop_is_valid) {
1340 ast_log(LOG_ERROR, "ARI DialplanCEP field context failed validation\n");
1341 res = 0;
1342 }
1343 } else
1344 if (strcmp("exten", ast_json_object_iter_key(iter)) == 0) {
1345 int prop_is_valid;
1346 has_exten = 1;
1347 prop_is_valid = ast_ari_validate_string(
1349 if (!prop_is_valid) {
1350 ast_log(LOG_ERROR, "ARI DialplanCEP field exten failed validation\n");
1351 res = 0;
1352 }
1353 } else
1354 if (strcmp("priority", ast_json_object_iter_key(iter)) == 0) {
1355 int prop_is_valid;
1356 has_priority = 1;
1357 prop_is_valid = ast_ari_validate_long(
1359 if (!prop_is_valid) {
1360 ast_log(LOG_ERROR, "ARI DialplanCEP field priority failed validation\n");
1361 res = 0;
1362 }
1363 } else
1364 {
1366 "ARI DialplanCEP has undocumented field %s\n",
1368 res = 0;
1369 }
1370 }
1371
1372 if (!has_app_data) {
1373 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field app_data\n");
1374 res = 0;
1375 }
1376
1377 if (!has_app_name) {
1378 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field app_name\n");
1379 res = 0;
1380 }
1381
1382 if (!has_context) {
1383 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field context\n");
1384 res = 0;
1385 }
1386
1387 if (!has_exten) {
1388 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field exten\n");
1389 res = 0;
1390 }
1391
1392 if (!has_priority) {
1393 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field priority\n");
1394 res = 0;
1395 }
1396
1397 return res;
1398}
1399
1404
1406{
1407 int res = 1;
1408 struct ast_json_iter *iter;
1409 int has_channel_uniqueid = 0;
1410 int has_local_ssrc = 0;
1411 int has_remote_ssrc = 0;
1412 int has_rxcount = 0;
1413 int has_rxoctetcount = 0;
1414 int has_rxploss = 0;
1415 int has_txcount = 0;
1416 int has_txoctetcount = 0;
1417 int has_txploss = 0;
1418
1419 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1420 if (strcmp("channel_uniqueid", ast_json_object_iter_key(iter)) == 0) {
1421 int prop_is_valid;
1422 has_channel_uniqueid = 1;
1423 prop_is_valid = ast_ari_validate_string(
1425 if (!prop_is_valid) {
1426 ast_log(LOG_ERROR, "ARI RTPstat field channel_uniqueid failed validation\n");
1427 res = 0;
1428 }
1429 } else
1430 if (strcmp("local_maxjitter", ast_json_object_iter_key(iter)) == 0) {
1431 int prop_is_valid;
1432 prop_is_valid = ast_ari_validate_double(
1434 if (!prop_is_valid) {
1435 ast_log(LOG_ERROR, "ARI RTPstat field local_maxjitter failed validation\n");
1436 res = 0;
1437 }
1438 } else
1439 if (strcmp("local_maxrxploss", ast_json_object_iter_key(iter)) == 0) {
1440 int prop_is_valid;
1441 prop_is_valid = ast_ari_validate_double(
1443 if (!prop_is_valid) {
1444 ast_log(LOG_ERROR, "ARI RTPstat field local_maxrxploss failed validation\n");
1445 res = 0;
1446 }
1447 } else
1448 if (strcmp("local_minjitter", ast_json_object_iter_key(iter)) == 0) {
1449 int prop_is_valid;
1450 prop_is_valid = ast_ari_validate_double(
1452 if (!prop_is_valid) {
1453 ast_log(LOG_ERROR, "ARI RTPstat field local_minjitter failed validation\n");
1454 res = 0;
1455 }
1456 } else
1457 if (strcmp("local_minrxploss", ast_json_object_iter_key(iter)) == 0) {
1458 int prop_is_valid;
1459 prop_is_valid = ast_ari_validate_double(
1461 if (!prop_is_valid) {
1462 ast_log(LOG_ERROR, "ARI RTPstat field local_minrxploss failed validation\n");
1463 res = 0;
1464 }
1465 } else
1466 if (strcmp("local_normdevjitter", ast_json_object_iter_key(iter)) == 0) {
1467 int prop_is_valid;
1468 prop_is_valid = ast_ari_validate_double(
1470 if (!prop_is_valid) {
1471 ast_log(LOG_ERROR, "ARI RTPstat field local_normdevjitter failed validation\n");
1472 res = 0;
1473 }
1474 } else
1475 if (strcmp("local_normdevrxploss", ast_json_object_iter_key(iter)) == 0) {
1476 int prop_is_valid;
1477 prop_is_valid = ast_ari_validate_double(
1479 if (!prop_is_valid) {
1480 ast_log(LOG_ERROR, "ARI RTPstat field local_normdevrxploss failed validation\n");
1481 res = 0;
1482 }
1483 } else
1484 if (strcmp("local_ssrc", ast_json_object_iter_key(iter)) == 0) {
1485 int prop_is_valid;
1486 has_local_ssrc = 1;
1487 prop_is_valid = ast_ari_validate_int(
1489 if (!prop_is_valid) {
1490 ast_log(LOG_ERROR, "ARI RTPstat field local_ssrc failed validation\n");
1491 res = 0;
1492 }
1493 } else
1494 if (strcmp("local_stdevjitter", ast_json_object_iter_key(iter)) == 0) {
1495 int prop_is_valid;
1496 prop_is_valid = ast_ari_validate_double(
1498 if (!prop_is_valid) {
1499 ast_log(LOG_ERROR, "ARI RTPstat field local_stdevjitter failed validation\n");
1500 res = 0;
1501 }
1502 } else
1503 if (strcmp("local_stdevrxploss", ast_json_object_iter_key(iter)) == 0) {
1504 int prop_is_valid;
1505 prop_is_valid = ast_ari_validate_double(
1507 if (!prop_is_valid) {
1508 ast_log(LOG_ERROR, "ARI RTPstat field local_stdevrxploss failed validation\n");
1509 res = 0;
1510 }
1511 } else
1512 if (strcmp("maxrtt", ast_json_object_iter_key(iter)) == 0) {
1513 int prop_is_valid;
1514 prop_is_valid = ast_ari_validate_double(
1516 if (!prop_is_valid) {
1517 ast_log(LOG_ERROR, "ARI RTPstat field maxrtt failed validation\n");
1518 res = 0;
1519 }
1520 } else
1521 if (strcmp("minrtt", ast_json_object_iter_key(iter)) == 0) {
1522 int prop_is_valid;
1523 prop_is_valid = ast_ari_validate_double(
1525 if (!prop_is_valid) {
1526 ast_log(LOG_ERROR, "ARI RTPstat field minrtt failed validation\n");
1527 res = 0;
1528 }
1529 } else
1530 if (strcmp("normdevrtt", ast_json_object_iter_key(iter)) == 0) {
1531 int prop_is_valid;
1532 prop_is_valid = ast_ari_validate_double(
1534 if (!prop_is_valid) {
1535 ast_log(LOG_ERROR, "ARI RTPstat field normdevrtt failed validation\n");
1536 res = 0;
1537 }
1538 } else
1539 if (strcmp("remote_maxjitter", ast_json_object_iter_key(iter)) == 0) {
1540 int prop_is_valid;
1541 prop_is_valid = ast_ari_validate_double(
1543 if (!prop_is_valid) {
1544 ast_log(LOG_ERROR, "ARI RTPstat field remote_maxjitter failed validation\n");
1545 res = 0;
1546 }
1547 } else
1548 if (strcmp("remote_maxrxploss", ast_json_object_iter_key(iter)) == 0) {
1549 int prop_is_valid;
1550 prop_is_valid = ast_ari_validate_double(
1552 if (!prop_is_valid) {
1553 ast_log(LOG_ERROR, "ARI RTPstat field remote_maxrxploss failed validation\n");
1554 res = 0;
1555 }
1556 } else
1557 if (strcmp("remote_minjitter", ast_json_object_iter_key(iter)) == 0) {
1558 int prop_is_valid;
1559 prop_is_valid = ast_ari_validate_double(
1561 if (!prop_is_valid) {
1562 ast_log(LOG_ERROR, "ARI RTPstat field remote_minjitter failed validation\n");
1563 res = 0;
1564 }
1565 } else
1566 if (strcmp("remote_minrxploss", ast_json_object_iter_key(iter)) == 0) {
1567 int prop_is_valid;
1568 prop_is_valid = ast_ari_validate_double(
1570 if (!prop_is_valid) {
1571 ast_log(LOG_ERROR, "ARI RTPstat field remote_minrxploss failed validation\n");
1572 res = 0;
1573 }
1574 } else
1575 if (strcmp("remote_normdevjitter", ast_json_object_iter_key(iter)) == 0) {
1576 int prop_is_valid;
1577 prop_is_valid = ast_ari_validate_double(
1579 if (!prop_is_valid) {
1580 ast_log(LOG_ERROR, "ARI RTPstat field remote_normdevjitter failed validation\n");
1581 res = 0;
1582 }
1583 } else
1584 if (strcmp("remote_normdevrxploss", ast_json_object_iter_key(iter)) == 0) {
1585 int prop_is_valid;
1586 prop_is_valid = ast_ari_validate_double(
1588 if (!prop_is_valid) {
1589 ast_log(LOG_ERROR, "ARI RTPstat field remote_normdevrxploss failed validation\n");
1590 res = 0;
1591 }
1592 } else
1593 if (strcmp("remote_ssrc", ast_json_object_iter_key(iter)) == 0) {
1594 int prop_is_valid;
1595 has_remote_ssrc = 1;
1596 prop_is_valid = ast_ari_validate_int(
1598 if (!prop_is_valid) {
1599 ast_log(LOG_ERROR, "ARI RTPstat field remote_ssrc failed validation\n");
1600 res = 0;
1601 }
1602 } else
1603 if (strcmp("remote_stdevjitter", ast_json_object_iter_key(iter)) == 0) {
1604 int prop_is_valid;
1605 prop_is_valid = ast_ari_validate_double(
1607 if (!prop_is_valid) {
1608 ast_log(LOG_ERROR, "ARI RTPstat field remote_stdevjitter failed validation\n");
1609 res = 0;
1610 }
1611 } else
1612 if (strcmp("remote_stdevrxploss", ast_json_object_iter_key(iter)) == 0) {
1613 int prop_is_valid;
1614 prop_is_valid = ast_ari_validate_double(
1616 if (!prop_is_valid) {
1617 ast_log(LOG_ERROR, "ARI RTPstat field remote_stdevrxploss failed validation\n");
1618 res = 0;
1619 }
1620 } else
1621 if (strcmp("rtt", ast_json_object_iter_key(iter)) == 0) {
1622 int prop_is_valid;
1623 prop_is_valid = ast_ari_validate_double(
1625 if (!prop_is_valid) {
1626 ast_log(LOG_ERROR, "ARI RTPstat field rtt failed validation\n");
1627 res = 0;
1628 }
1629 } else
1630 if (strcmp("rxcount", ast_json_object_iter_key(iter)) == 0) {
1631 int prop_is_valid;
1632 has_rxcount = 1;
1633 prop_is_valid = ast_ari_validate_int(
1635 if (!prop_is_valid) {
1636 ast_log(LOG_ERROR, "ARI RTPstat field rxcount failed validation\n");
1637 res = 0;
1638 }
1639 } else
1640 if (strcmp("rxjitter", ast_json_object_iter_key(iter)) == 0) {
1641 int prop_is_valid;
1642 prop_is_valid = ast_ari_validate_double(
1644 if (!prop_is_valid) {
1645 ast_log(LOG_ERROR, "ARI RTPstat field rxjitter failed validation\n");
1646 res = 0;
1647 }
1648 } else
1649 if (strcmp("rxoctetcount", ast_json_object_iter_key(iter)) == 0) {
1650 int prop_is_valid;
1651 has_rxoctetcount = 1;
1652 prop_is_valid = ast_ari_validate_int(
1654 if (!prop_is_valid) {
1655 ast_log(LOG_ERROR, "ARI RTPstat field rxoctetcount failed validation\n");
1656 res = 0;
1657 }
1658 } else
1659 if (strcmp("rxploss", ast_json_object_iter_key(iter)) == 0) {
1660 int prop_is_valid;
1661 has_rxploss = 1;
1662 prop_is_valid = ast_ari_validate_int(
1664 if (!prop_is_valid) {
1665 ast_log(LOG_ERROR, "ARI RTPstat field rxploss failed validation\n");
1666 res = 0;
1667 }
1668 } else
1669 if (strcmp("stdevrtt", ast_json_object_iter_key(iter)) == 0) {
1670 int prop_is_valid;
1671 prop_is_valid = ast_ari_validate_double(
1673 if (!prop_is_valid) {
1674 ast_log(LOG_ERROR, "ARI RTPstat field stdevrtt failed validation\n");
1675 res = 0;
1676 }
1677 } else
1678 if (strcmp("txcount", ast_json_object_iter_key(iter)) == 0) {
1679 int prop_is_valid;
1680 has_txcount = 1;
1681 prop_is_valid = ast_ari_validate_int(
1683 if (!prop_is_valid) {
1684 ast_log(LOG_ERROR, "ARI RTPstat field txcount failed validation\n");
1685 res = 0;
1686 }
1687 } else
1688 if (strcmp("txjitter", ast_json_object_iter_key(iter)) == 0) {
1689 int prop_is_valid;
1690 prop_is_valid = ast_ari_validate_double(
1692 if (!prop_is_valid) {
1693 ast_log(LOG_ERROR, "ARI RTPstat field txjitter failed validation\n");
1694 res = 0;
1695 }
1696 } else
1697 if (strcmp("txoctetcount", ast_json_object_iter_key(iter)) == 0) {
1698 int prop_is_valid;
1699 has_txoctetcount = 1;
1700 prop_is_valid = ast_ari_validate_int(
1702 if (!prop_is_valid) {
1703 ast_log(LOG_ERROR, "ARI RTPstat field txoctetcount failed validation\n");
1704 res = 0;
1705 }
1706 } else
1707 if (strcmp("txploss", ast_json_object_iter_key(iter)) == 0) {
1708 int prop_is_valid;
1709 has_txploss = 1;
1710 prop_is_valid = ast_ari_validate_int(
1712 if (!prop_is_valid) {
1713 ast_log(LOG_ERROR, "ARI RTPstat field txploss failed validation\n");
1714 res = 0;
1715 }
1716 } else
1717 {
1719 "ARI RTPstat has undocumented field %s\n",
1721 res = 0;
1722 }
1723 }
1724
1725 if (!has_channel_uniqueid) {
1726 ast_log(LOG_ERROR, "ARI RTPstat missing required field channel_uniqueid\n");
1727 res = 0;
1728 }
1729
1730 if (!has_local_ssrc) {
1731 ast_log(LOG_ERROR, "ARI RTPstat missing required field local_ssrc\n");
1732 res = 0;
1733 }
1734
1735 if (!has_remote_ssrc) {
1736 ast_log(LOG_ERROR, "ARI RTPstat missing required field remote_ssrc\n");
1737 res = 0;
1738 }
1739
1740 if (!has_rxcount) {
1741 ast_log(LOG_ERROR, "ARI RTPstat missing required field rxcount\n");
1742 res = 0;
1743 }
1744
1745 if (!has_rxoctetcount) {
1746 ast_log(LOG_ERROR, "ARI RTPstat missing required field rxoctetcount\n");
1747 res = 0;
1748 }
1749
1750 if (!has_rxploss) {
1751 ast_log(LOG_ERROR, "ARI RTPstat missing required field rxploss\n");
1752 res = 0;
1753 }
1754
1755 if (!has_txcount) {
1756 ast_log(LOG_ERROR, "ARI RTPstat missing required field txcount\n");
1757 res = 0;
1758 }
1759
1760 if (!has_txoctetcount) {
1761 ast_log(LOG_ERROR, "ARI RTPstat missing required field txoctetcount\n");
1762 res = 0;
1763 }
1764
1765 if (!has_txploss) {
1766 ast_log(LOG_ERROR, "ARI RTPstat missing required field txploss\n");
1767 res = 0;
1768 }
1769
1770 return res;
1771}
1772
1777
1779{
1780 int res = 1;
1781 struct ast_json_iter *iter;
1782 int has_bridge_class = 0;
1783 int has_bridge_type = 0;
1784 int has_channels = 0;
1785 int has_creationtime = 0;
1786 int has_creator = 0;
1787 int has_id = 0;
1788 int has_name = 0;
1789 int has_technology = 0;
1790
1791 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1792 if (strcmp("bridge_class", ast_json_object_iter_key(iter)) == 0) {
1793 int prop_is_valid;
1794 has_bridge_class = 1;
1795 prop_is_valid = ast_ari_validate_string(
1797 if (!prop_is_valid) {
1798 ast_log(LOG_ERROR, "ARI Bridge field bridge_class failed validation\n");
1799 res = 0;
1800 }
1801 } else
1802 if (strcmp("bridge_type", ast_json_object_iter_key(iter)) == 0) {
1803 int prop_is_valid;
1804 has_bridge_type = 1;
1805 prop_is_valid = ast_ari_validate_string(
1807 if (!prop_is_valid) {
1808 ast_log(LOG_ERROR, "ARI Bridge field bridge_type failed validation\n");
1809 res = 0;
1810 }
1811 } else
1812 if (strcmp("bridgevars", ast_json_object_iter_key(iter)) == 0) {
1813 int prop_is_valid;
1814 prop_is_valid = ast_ari_validate_object(
1816 if (!prop_is_valid) {
1817 ast_log(LOG_ERROR, "ARI Bridge field bridgevars failed validation\n");
1818 res = 0;
1819 }
1820 } else
1821 if (strcmp("channels", ast_json_object_iter_key(iter)) == 0) {
1822 int prop_is_valid;
1823 has_channels = 1;
1824 prop_is_valid = ast_ari_validate_list(
1827 if (!prop_is_valid) {
1828 ast_log(LOG_ERROR, "ARI Bridge field channels failed validation\n");
1829 res = 0;
1830 }
1831 } else
1832 if (strcmp("creationtime", ast_json_object_iter_key(iter)) == 0) {
1833 int prop_is_valid;
1834 has_creationtime = 1;
1835 prop_is_valid = ast_ari_validate_date(
1837 if (!prop_is_valid) {
1838 ast_log(LOG_ERROR, "ARI Bridge field creationtime failed validation\n");
1839 res = 0;
1840 }
1841 } else
1842 if (strcmp("creator", ast_json_object_iter_key(iter)) == 0) {
1843 int prop_is_valid;
1844 has_creator = 1;
1845 prop_is_valid = ast_ari_validate_string(
1847 if (!prop_is_valid) {
1848 ast_log(LOG_ERROR, "ARI Bridge field creator failed validation\n");
1849 res = 0;
1850 }
1851 } else
1852 if (strcmp("id", ast_json_object_iter_key(iter)) == 0) {
1853 int prop_is_valid;
1854 has_id = 1;
1855 prop_is_valid = ast_ari_validate_string(
1857 if (!prop_is_valid) {
1858 ast_log(LOG_ERROR, "ARI Bridge field id failed validation\n");
1859 res = 0;
1860 }
1861 } else
1862 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
1863 int prop_is_valid;
1864 has_name = 1;
1865 prop_is_valid = ast_ari_validate_string(
1867 if (!prop_is_valid) {
1868 ast_log(LOG_ERROR, "ARI Bridge field name failed validation\n");
1869 res = 0;
1870 }
1871 } else
1872 if (strcmp("technology", ast_json_object_iter_key(iter)) == 0) {
1873 int prop_is_valid;
1874 has_technology = 1;
1875 prop_is_valid = ast_ari_validate_string(
1877 if (!prop_is_valid) {
1878 ast_log(LOG_ERROR, "ARI Bridge field technology failed validation\n");
1879 res = 0;
1880 }
1881 } else
1882 if (strcmp("video_mode", ast_json_object_iter_key(iter)) == 0) {
1883 int prop_is_valid;
1884 prop_is_valid = ast_ari_validate_string(
1886 if (!prop_is_valid) {
1887 ast_log(LOG_ERROR, "ARI Bridge field video_mode failed validation\n");
1888 res = 0;
1889 }
1890 } else
1891 if (strcmp("video_source_id", ast_json_object_iter_key(iter)) == 0) {
1892 int prop_is_valid;
1893 prop_is_valid = ast_ari_validate_string(
1895 if (!prop_is_valid) {
1896 ast_log(LOG_ERROR, "ARI Bridge field video_source_id failed validation\n");
1897 res = 0;
1898 }
1899 } else
1900 {
1902 "ARI Bridge has undocumented field %s\n",
1904 res = 0;
1905 }
1906 }
1907
1908 if (!has_bridge_class) {
1909 ast_log(LOG_ERROR, "ARI Bridge missing required field bridge_class\n");
1910 res = 0;
1911 }
1912
1913 if (!has_bridge_type) {
1914 ast_log(LOG_ERROR, "ARI Bridge missing required field bridge_type\n");
1915 res = 0;
1916 }
1917
1918 if (!has_channels) {
1919 ast_log(LOG_ERROR, "ARI Bridge missing required field channels\n");
1920 res = 0;
1921 }
1922
1923 if (!has_creationtime) {
1924 ast_log(LOG_ERROR, "ARI Bridge missing required field creationtime\n");
1925 res = 0;
1926 }
1927
1928 if (!has_creator) {
1929 ast_log(LOG_ERROR, "ARI Bridge missing required field creator\n");
1930 res = 0;
1931 }
1932
1933 if (!has_id) {
1934 ast_log(LOG_ERROR, "ARI Bridge missing required field id\n");
1935 res = 0;
1936 }
1937
1938 if (!has_name) {
1939 ast_log(LOG_ERROR, "ARI Bridge missing required field name\n");
1940 res = 0;
1941 }
1942
1943 if (!has_technology) {
1944 ast_log(LOG_ERROR, "ARI Bridge missing required field technology\n");
1945 res = 0;
1946 }
1947
1948 return res;
1949}
1950
1955
1957{
1958 int res = 1;
1959 struct ast_json_iter *iter;
1960 int has_format = 0;
1961 int has_name = 0;
1962 int has_state = 0;
1963 int has_target_uri = 0;
1964
1965 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1966 if (strcmp("cause", ast_json_object_iter_key(iter)) == 0) {
1967 int prop_is_valid;
1968 prop_is_valid = ast_ari_validate_string(
1970 if (!prop_is_valid) {
1971 ast_log(LOG_ERROR, "ARI LiveRecording field cause failed validation\n");
1972 res = 0;
1973 }
1974 } else
1975 if (strcmp("duration", ast_json_object_iter_key(iter)) == 0) {
1976 int prop_is_valid;
1977 prop_is_valid = ast_ari_validate_int(
1979 if (!prop_is_valid) {
1980 ast_log(LOG_ERROR, "ARI LiveRecording field duration failed validation\n");
1981 res = 0;
1982 }
1983 } else
1984 if (strcmp("format", ast_json_object_iter_key(iter)) == 0) {
1985 int prop_is_valid;
1986 has_format = 1;
1987 prop_is_valid = ast_ari_validate_string(
1989 if (!prop_is_valid) {
1990 ast_log(LOG_ERROR, "ARI LiveRecording field format failed validation\n");
1991 res = 0;
1992 }
1993 } else
1994 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
1995 int prop_is_valid;
1996 has_name = 1;
1997 prop_is_valid = ast_ari_validate_string(
1999 if (!prop_is_valid) {
2000 ast_log(LOG_ERROR, "ARI LiveRecording field name failed validation\n");
2001 res = 0;
2002 }
2003 } else
2004 if (strcmp("silence_duration", ast_json_object_iter_key(iter)) == 0) {
2005 int prop_is_valid;
2006 prop_is_valid = ast_ari_validate_int(
2008 if (!prop_is_valid) {
2009 ast_log(LOG_ERROR, "ARI LiveRecording field silence_duration failed validation\n");
2010 res = 0;
2011 }
2012 } else
2013 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
2014 int prop_is_valid;
2015 has_state = 1;
2016 prop_is_valid = ast_ari_validate_string(
2018 if (!prop_is_valid) {
2019 ast_log(LOG_ERROR, "ARI LiveRecording field state failed validation\n");
2020 res = 0;
2021 }
2022 } else
2023 if (strcmp("talking_duration", ast_json_object_iter_key(iter)) == 0) {
2024 int prop_is_valid;
2025 prop_is_valid = ast_ari_validate_int(
2027 if (!prop_is_valid) {
2028 ast_log(LOG_ERROR, "ARI LiveRecording field talking_duration failed validation\n");
2029 res = 0;
2030 }
2031 } else
2032 if (strcmp("target_uri", ast_json_object_iter_key(iter)) == 0) {
2033 int prop_is_valid;
2034 has_target_uri = 1;
2035 prop_is_valid = ast_ari_validate_string(
2037 if (!prop_is_valid) {
2038 ast_log(LOG_ERROR, "ARI LiveRecording field target_uri failed validation\n");
2039 res = 0;
2040 }
2041 } else
2042 {
2044 "ARI LiveRecording has undocumented field %s\n",
2046 res = 0;
2047 }
2048 }
2049
2050 if (!has_format) {
2051 ast_log(LOG_ERROR, "ARI LiveRecording missing required field format\n");
2052 res = 0;
2053 }
2054
2055 if (!has_name) {
2056 ast_log(LOG_ERROR, "ARI LiveRecording missing required field name\n");
2057 res = 0;
2058 }
2059
2060 if (!has_state) {
2061 ast_log(LOG_ERROR, "ARI LiveRecording missing required field state\n");
2062 res = 0;
2063 }
2064
2065 if (!has_target_uri) {
2066 ast_log(LOG_ERROR, "ARI LiveRecording missing required field target_uri\n");
2067 res = 0;
2068 }
2069
2070 return res;
2071}
2072
2077
2079{
2080 int res = 1;
2081 struct ast_json_iter *iter;
2082 int has_format = 0;
2083 int has_name = 0;
2084
2085 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2086 if (strcmp("format", ast_json_object_iter_key(iter)) == 0) {
2087 int prop_is_valid;
2088 has_format = 1;
2089 prop_is_valid = ast_ari_validate_string(
2091 if (!prop_is_valid) {
2092 ast_log(LOG_ERROR, "ARI StoredRecording field format failed validation\n");
2093 res = 0;
2094 }
2095 } else
2096 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
2097 int prop_is_valid;
2098 has_name = 1;
2099 prop_is_valid = ast_ari_validate_string(
2101 if (!prop_is_valid) {
2102 ast_log(LOG_ERROR, "ARI StoredRecording field name failed validation\n");
2103 res = 0;
2104 }
2105 } else
2106 {
2108 "ARI StoredRecording has undocumented field %s\n",
2110 res = 0;
2111 }
2112 }
2113
2114 if (!has_format) {
2115 ast_log(LOG_ERROR, "ARI StoredRecording missing required field format\n");
2116 res = 0;
2117 }
2118
2119 if (!has_name) {
2120 ast_log(LOG_ERROR, "ARI StoredRecording missing required field name\n");
2121 res = 0;
2122 }
2123
2124 return res;
2125}
2126
2131
2133{
2134 int res = 1;
2135 struct ast_json_iter *iter;
2136 int has_format = 0;
2137 int has_language = 0;
2138
2139 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2140 if (strcmp("format", ast_json_object_iter_key(iter)) == 0) {
2141 int prop_is_valid;
2142 has_format = 1;
2143 prop_is_valid = ast_ari_validate_string(
2145 if (!prop_is_valid) {
2146 ast_log(LOG_ERROR, "ARI FormatLangPair field format failed validation\n");
2147 res = 0;
2148 }
2149 } else
2150 if (strcmp("language", ast_json_object_iter_key(iter)) == 0) {
2151 int prop_is_valid;
2152 has_language = 1;
2153 prop_is_valid = ast_ari_validate_string(
2155 if (!prop_is_valid) {
2156 ast_log(LOG_ERROR, "ARI FormatLangPair field language failed validation\n");
2157 res = 0;
2158 }
2159 } else
2160 {
2162 "ARI FormatLangPair has undocumented field %s\n",
2164 res = 0;
2165 }
2166 }
2167
2168 if (!has_format) {
2169 ast_log(LOG_ERROR, "ARI FormatLangPair missing required field format\n");
2170 res = 0;
2171 }
2172
2173 if (!has_language) {
2174 ast_log(LOG_ERROR, "ARI FormatLangPair missing required field language\n");
2175 res = 0;
2176 }
2177
2178 return res;
2179}
2180
2185
2187{
2188 int res = 1;
2189 struct ast_json_iter *iter;
2190 int has_formats = 0;
2191 int has_id = 0;
2192
2193 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2194 if (strcmp("formats", ast_json_object_iter_key(iter)) == 0) {
2195 int prop_is_valid;
2196 has_formats = 1;
2197 prop_is_valid = ast_ari_validate_list(
2200 if (!prop_is_valid) {
2201 ast_log(LOG_ERROR, "ARI Sound field formats failed validation\n");
2202 res = 0;
2203 }
2204 } else
2205 if (strcmp("id", ast_json_object_iter_key(iter)) == 0) {
2206 int prop_is_valid;
2207 has_id = 1;
2208 prop_is_valid = ast_ari_validate_string(
2210 if (!prop_is_valid) {
2211 ast_log(LOG_ERROR, "ARI Sound field id failed validation\n");
2212 res = 0;
2213 }
2214 } else
2215 if (strcmp("text", ast_json_object_iter_key(iter)) == 0) {
2216 int prop_is_valid;
2217 prop_is_valid = ast_ari_validate_string(
2219 if (!prop_is_valid) {
2220 ast_log(LOG_ERROR, "ARI Sound field text failed validation\n");
2221 res = 0;
2222 }
2223 } else
2224 {
2226 "ARI Sound has undocumented field %s\n",
2228 res = 0;
2229 }
2230 }
2231
2232 if (!has_formats) {
2233 ast_log(LOG_ERROR, "ARI Sound missing required field formats\n");
2234 res = 0;
2235 }
2236
2237 if (!has_id) {
2238 ast_log(LOG_ERROR, "ARI Sound missing required field id\n");
2239 res = 0;
2240 }
2241
2242 return res;
2243}
2244
2249
2251{
2252 int res = 1;
2253 struct ast_json_iter *iter;
2254 int has_id = 0;
2255 int has_media_uri = 0;
2256 int has_state = 0;
2257 int has_target_uri = 0;
2258
2259 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2260 if (strcmp("id", ast_json_object_iter_key(iter)) == 0) {
2261 int prop_is_valid;
2262 has_id = 1;
2263 prop_is_valid = ast_ari_validate_string(
2265 if (!prop_is_valid) {
2266 ast_log(LOG_ERROR, "ARI Playback field id failed validation\n");
2267 res = 0;
2268 }
2269 } else
2270 if (strcmp("language", ast_json_object_iter_key(iter)) == 0) {
2271 int prop_is_valid;
2272 prop_is_valid = ast_ari_validate_string(
2274 if (!prop_is_valid) {
2275 ast_log(LOG_ERROR, "ARI Playback field language failed validation\n");
2276 res = 0;
2277 }
2278 } else
2279 if (strcmp("media_uri", ast_json_object_iter_key(iter)) == 0) {
2280 int prop_is_valid;
2281 has_media_uri = 1;
2282 prop_is_valid = ast_ari_validate_string(
2284 if (!prop_is_valid) {
2285 ast_log(LOG_ERROR, "ARI Playback field media_uri failed validation\n");
2286 res = 0;
2287 }
2288 } else
2289 if (strcmp("next_media_uri", ast_json_object_iter_key(iter)) == 0) {
2290 int prop_is_valid;
2291 prop_is_valid = ast_ari_validate_string(
2293 if (!prop_is_valid) {
2294 ast_log(LOG_ERROR, "ARI Playback field next_media_uri failed validation\n");
2295 res = 0;
2296 }
2297 } else
2298 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
2299 int prop_is_valid;
2300 has_state = 1;
2301 prop_is_valid = ast_ari_validate_string(
2303 if (!prop_is_valid) {
2304 ast_log(LOG_ERROR, "ARI Playback field state failed validation\n");
2305 res = 0;
2306 }
2307 } else
2308 if (strcmp("target_uri", ast_json_object_iter_key(iter)) == 0) {
2309 int prop_is_valid;
2310 has_target_uri = 1;
2311 prop_is_valid = ast_ari_validate_string(
2313 if (!prop_is_valid) {
2314 ast_log(LOG_ERROR, "ARI Playback field target_uri failed validation\n");
2315 res = 0;
2316 }
2317 } else
2318 {
2320 "ARI Playback has undocumented field %s\n",
2322 res = 0;
2323 }
2324 }
2325
2326 if (!has_id) {
2327 ast_log(LOG_ERROR, "ARI Playback missing required field id\n");
2328 res = 0;
2329 }
2330
2331 if (!has_media_uri) {
2332 ast_log(LOG_ERROR, "ARI Playback missing required field media_uri\n");
2333 res = 0;
2334 }
2335
2336 if (!has_state) {
2337 ast_log(LOG_ERROR, "ARI Playback missing required field state\n");
2338 res = 0;
2339 }
2340
2341 if (!has_target_uri) {
2342 ast_log(LOG_ERROR, "ARI Playback missing required field target_uri\n");
2343 res = 0;
2344 }
2345
2346 return res;
2347}
2348
2353
2355{
2356 int res = 1;
2357 struct ast_json_iter *iter;
2358 int has_name = 0;
2359 int has_state = 0;
2360
2361 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2362 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
2363 int prop_is_valid;
2364 has_name = 1;
2365 prop_is_valid = ast_ari_validate_string(
2367 if (!prop_is_valid) {
2368 ast_log(LOG_ERROR, "ARI DeviceState field name failed validation\n");
2369 res = 0;
2370 }
2371 } else
2372 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
2373 int prop_is_valid;
2374 has_state = 1;
2375 prop_is_valid = ast_ari_validate_string(
2377 if (!prop_is_valid) {
2378 ast_log(LOG_ERROR, "ARI DeviceState field state failed validation\n");
2379 res = 0;
2380 }
2381 } else
2382 {
2384 "ARI DeviceState has undocumented field %s\n",
2386 res = 0;
2387 }
2388 }
2389
2390 if (!has_name) {
2391 ast_log(LOG_ERROR, "ARI DeviceState missing required field name\n");
2392 res = 0;
2393 }
2394
2395 if (!has_state) {
2396 ast_log(LOG_ERROR, "ARI DeviceState missing required field state\n");
2397 res = 0;
2398 }
2399
2400 return res;
2401}
2402
2407
2409{
2410 int res = 1;
2411 struct ast_json_iter *iter;
2412 int has_name = 0;
2413 int has_new_messages = 0;
2414 int has_old_messages = 0;
2415
2416 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2417 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
2418 int prop_is_valid;
2419 has_name = 1;
2420 prop_is_valid = ast_ari_validate_string(
2422 if (!prop_is_valid) {
2423 ast_log(LOG_ERROR, "ARI Mailbox field name failed validation\n");
2424 res = 0;
2425 }
2426 } else
2427 if (strcmp("new_messages", ast_json_object_iter_key(iter)) == 0) {
2428 int prop_is_valid;
2429 has_new_messages = 1;
2430 prop_is_valid = ast_ari_validate_int(
2432 if (!prop_is_valid) {
2433 ast_log(LOG_ERROR, "ARI Mailbox field new_messages failed validation\n");
2434 res = 0;
2435 }
2436 } else
2437 if (strcmp("old_messages", ast_json_object_iter_key(iter)) == 0) {
2438 int prop_is_valid;
2439 has_old_messages = 1;
2440 prop_is_valid = ast_ari_validate_int(
2442 if (!prop_is_valid) {
2443 ast_log(LOG_ERROR, "ARI Mailbox field old_messages failed validation\n");
2444 res = 0;
2445 }
2446 } else
2447 {
2449 "ARI Mailbox has undocumented field %s\n",
2451 res = 0;
2452 }
2453 }
2454
2455 if (!has_name) {
2456 ast_log(LOG_ERROR, "ARI Mailbox missing required field name\n");
2457 res = 0;
2458 }
2459
2460 if (!has_new_messages) {
2461 ast_log(LOG_ERROR, "ARI Mailbox missing required field new_messages\n");
2462 res = 0;
2463 }
2464
2465 if (!has_old_messages) {
2466 ast_log(LOG_ERROR, "ARI Mailbox missing required field old_messages\n");
2467 res = 0;
2468 }
2469
2470 return res;
2471}
2472
2477
2479{
2480 int res = 1;
2481 struct ast_json_iter *iter;
2482 int has_parameter_name = 0;
2483 int has_parameter_value = 0;
2484
2485 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2486 if (strcmp("parameter_name", ast_json_object_iter_key(iter)) == 0) {
2487 int prop_is_valid;
2488 has_parameter_name = 1;
2489 prop_is_valid = ast_ari_validate_string(
2491 if (!prop_is_valid) {
2492 ast_log(LOG_ERROR, "ARI AdditionalParam field parameter_name failed validation\n");
2493 res = 0;
2494 }
2495 } else
2496 if (strcmp("parameter_value", ast_json_object_iter_key(iter)) == 0) {
2497 int prop_is_valid;
2498 has_parameter_value = 1;
2499 prop_is_valid = ast_ari_validate_string(
2501 if (!prop_is_valid) {
2502 ast_log(LOG_ERROR, "ARI AdditionalParam field parameter_value failed validation\n");
2503 res = 0;
2504 }
2505 } else
2506 {
2508 "ARI AdditionalParam has undocumented field %s\n",
2510 res = 0;
2511 }
2512 }
2513
2514 if (!has_parameter_name) {
2515 ast_log(LOG_ERROR, "ARI AdditionalParam missing required field parameter_name\n");
2516 res = 0;
2517 }
2518
2519 if (!has_parameter_value) {
2520 ast_log(LOG_ERROR, "ARI AdditionalParam missing required field parameter_value\n");
2521 res = 0;
2522 }
2523
2524 return res;
2525}
2526
2531
2533{
2534 int res = 1;
2535 struct ast_json_iter *iter;
2536 int has_type = 0;
2537 int has_application = 0;
2538 int has_timestamp = 0;
2539 int has_args = 0;
2540 int has_channel = 0;
2541 int has_destination = 0;
2542
2543 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2544 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2545 int prop_is_valid;
2546 prop_is_valid = ast_ari_validate_string(
2548 if (!prop_is_valid) {
2549 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field asterisk_id failed validation\n");
2550 res = 0;
2551 }
2552 } else
2553 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2554 int prop_is_valid;
2555 has_type = 1;
2556 prop_is_valid = ast_ari_validate_string(
2558 if (!prop_is_valid) {
2559 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field type failed validation\n");
2560 res = 0;
2561 }
2562 } else
2563 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2564 int prop_is_valid;
2565 has_application = 1;
2566 prop_is_valid = ast_ari_validate_string(
2568 if (!prop_is_valid) {
2569 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field application failed validation\n");
2570 res = 0;
2571 }
2572 } else
2573 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2574 int prop_is_valid;
2575 has_timestamp = 1;
2576 prop_is_valid = ast_ari_validate_date(
2578 if (!prop_is_valid) {
2579 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field timestamp failed validation\n");
2580 res = 0;
2581 }
2582 } else
2583 if (strcmp("args", ast_json_object_iter_key(iter)) == 0) {
2584 int prop_is_valid;
2585 has_args = 1;
2586 prop_is_valid = ast_ari_validate_list(
2589 if (!prop_is_valid) {
2590 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field args failed validation\n");
2591 res = 0;
2592 }
2593 } else
2594 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
2595 int prop_is_valid;
2596 has_channel = 1;
2597 prop_is_valid = ast_ari_validate_channel(
2599 if (!prop_is_valid) {
2600 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field channel failed validation\n");
2601 res = 0;
2602 }
2603 } else
2604 if (strcmp("destination", ast_json_object_iter_key(iter)) == 0) {
2605 int prop_is_valid;
2606 has_destination = 1;
2607 prop_is_valid = ast_ari_validate_string(
2609 if (!prop_is_valid) {
2610 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field destination failed validation\n");
2611 res = 0;
2612 }
2613 } else
2614 {
2616 "ARI ApplicationMoveFailed has undocumented field %s\n",
2618 res = 0;
2619 }
2620 }
2621
2622 if (!has_type) {
2623 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field type\n");
2624 res = 0;
2625 }
2626
2627 if (!has_application) {
2628 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field application\n");
2629 res = 0;
2630 }
2631
2632 if (!has_timestamp) {
2633 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field timestamp\n");
2634 res = 0;
2635 }
2636
2637 if (!has_args) {
2638 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field args\n");
2639 res = 0;
2640 }
2641
2642 if (!has_channel) {
2643 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field channel\n");
2644 res = 0;
2645 }
2646
2647 if (!has_destination) {
2648 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field destination\n");
2649 res = 0;
2650 }
2651
2652 return res;
2653}
2654
2659
2661{
2662 int res = 1;
2663 struct ast_json_iter *iter;
2664 int has_type = 0;
2665 int has_application = 0;
2666 int has_timestamp = 0;
2667
2668 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2669 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2670 int prop_is_valid;
2671 prop_is_valid = ast_ari_validate_string(
2673 if (!prop_is_valid) {
2674 ast_log(LOG_ERROR, "ARI ApplicationRegistered field asterisk_id failed validation\n");
2675 res = 0;
2676 }
2677 } else
2678 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2679 int prop_is_valid;
2680 has_type = 1;
2681 prop_is_valid = ast_ari_validate_string(
2683 if (!prop_is_valid) {
2684 ast_log(LOG_ERROR, "ARI ApplicationRegistered field type failed validation\n");
2685 res = 0;
2686 }
2687 } else
2688 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2689 int prop_is_valid;
2690 has_application = 1;
2691 prop_is_valid = ast_ari_validate_string(
2693 if (!prop_is_valid) {
2694 ast_log(LOG_ERROR, "ARI ApplicationRegistered field application failed validation\n");
2695 res = 0;
2696 }
2697 } else
2698 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2699 int prop_is_valid;
2700 has_timestamp = 1;
2701 prop_is_valid = ast_ari_validate_date(
2703 if (!prop_is_valid) {
2704 ast_log(LOG_ERROR, "ARI ApplicationRegistered field timestamp failed validation\n");
2705 res = 0;
2706 }
2707 } else
2708 {
2710 "ARI ApplicationRegistered has undocumented field %s\n",
2712 res = 0;
2713 }
2714 }
2715
2716 if (!has_type) {
2717 ast_log(LOG_ERROR, "ARI ApplicationRegistered missing required field type\n");
2718 res = 0;
2719 }
2720
2721 if (!has_application) {
2722 ast_log(LOG_ERROR, "ARI ApplicationRegistered missing required field application\n");
2723 res = 0;
2724 }
2725
2726 if (!has_timestamp) {
2727 ast_log(LOG_ERROR, "ARI ApplicationRegistered missing required field timestamp\n");
2728 res = 0;
2729 }
2730
2731 return res;
2732}
2733
2738
2740{
2741 int res = 1;
2742 struct ast_json_iter *iter;
2743 int has_type = 0;
2744 int has_application = 0;
2745 int has_timestamp = 0;
2746
2747 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2748 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2749 int prop_is_valid;
2750 prop_is_valid = ast_ari_validate_string(
2752 if (!prop_is_valid) {
2753 ast_log(LOG_ERROR, "ARI ApplicationReplaced field asterisk_id failed validation\n");
2754 res = 0;
2755 }
2756 } else
2757 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2758 int prop_is_valid;
2759 has_type = 1;
2760 prop_is_valid = ast_ari_validate_string(
2762 if (!prop_is_valid) {
2763 ast_log(LOG_ERROR, "ARI ApplicationReplaced field type failed validation\n");
2764 res = 0;
2765 }
2766 } else
2767 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2768 int prop_is_valid;
2769 has_application = 1;
2770 prop_is_valid = ast_ari_validate_string(
2772 if (!prop_is_valid) {
2773 ast_log(LOG_ERROR, "ARI ApplicationReplaced field application failed validation\n");
2774 res = 0;
2775 }
2776 } else
2777 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2778 int prop_is_valid;
2779 has_timestamp = 1;
2780 prop_is_valid = ast_ari_validate_date(
2782 if (!prop_is_valid) {
2783 ast_log(LOG_ERROR, "ARI ApplicationReplaced field timestamp failed validation\n");
2784 res = 0;
2785 }
2786 } else
2787 {
2789 "ARI ApplicationReplaced has undocumented field %s\n",
2791 res = 0;
2792 }
2793 }
2794
2795 if (!has_type) {
2796 ast_log(LOG_ERROR, "ARI ApplicationReplaced missing required field type\n");
2797 res = 0;
2798 }
2799
2800 if (!has_application) {
2801 ast_log(LOG_ERROR, "ARI ApplicationReplaced missing required field application\n");
2802 res = 0;
2803 }
2804
2805 if (!has_timestamp) {
2806 ast_log(LOG_ERROR, "ARI ApplicationReplaced missing required field timestamp\n");
2807 res = 0;
2808 }
2809
2810 return res;
2811}
2812
2817
2819{
2820 int res = 1;
2821 struct ast_json_iter *iter;
2822 int has_type = 0;
2823 int has_application = 0;
2824 int has_timestamp = 0;
2825
2826 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2827 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2828 int prop_is_valid;
2829 prop_is_valid = ast_ari_validate_string(
2831 if (!prop_is_valid) {
2832 ast_log(LOG_ERROR, "ARI ApplicationUnregistered field asterisk_id failed validation\n");
2833 res = 0;
2834 }
2835 } else
2836 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2837 int prop_is_valid;
2838 has_type = 1;
2839 prop_is_valid = ast_ari_validate_string(
2841 if (!prop_is_valid) {
2842 ast_log(LOG_ERROR, "ARI ApplicationUnregistered field type failed validation\n");
2843 res = 0;
2844 }
2845 } else
2846 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2847 int prop_is_valid;
2848 has_application = 1;
2849 prop_is_valid = ast_ari_validate_string(
2851 if (!prop_is_valid) {
2852 ast_log(LOG_ERROR, "ARI ApplicationUnregistered field application failed validation\n");
2853 res = 0;
2854 }
2855 } else
2856 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2857 int prop_is_valid;
2858 has_timestamp = 1;
2859 prop_is_valid = ast_ari_validate_date(
2861 if (!prop_is_valid) {
2862 ast_log(LOG_ERROR, "ARI ApplicationUnregistered field timestamp failed validation\n");
2863 res = 0;
2864 }
2865 } else
2866 {
2868 "ARI ApplicationUnregistered has undocumented field %s\n",
2870 res = 0;
2871 }
2872 }
2873
2874 if (!has_type) {
2875 ast_log(LOG_ERROR, "ARI ApplicationUnregistered missing required field type\n");
2876 res = 0;
2877 }
2878
2879 if (!has_application) {
2880 ast_log(LOG_ERROR, "ARI ApplicationUnregistered missing required field application\n");
2881 res = 0;
2882 }
2883
2884 if (!has_timestamp) {
2885 ast_log(LOG_ERROR, "ARI ApplicationUnregistered missing required field timestamp\n");
2886 res = 0;
2887 }
2888
2889 return res;
2890}
2891
2896
2898{
2899 int res = 1;
2900 struct ast_json_iter *iter;
2901 int has_type = 0;
2902 int has_application = 0;
2903 int has_timestamp = 0;
2904 int has_destination_type = 0;
2905 int has_is_external = 0;
2906 int has_result = 0;
2907 int has_transferer_first_leg = 0;
2908 int has_transferer_second_leg = 0;
2909
2910 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2911 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2912 int prop_is_valid;
2913 prop_is_valid = ast_ari_validate_string(
2915 if (!prop_is_valid) {
2916 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field asterisk_id failed validation\n");
2917 res = 0;
2918 }
2919 } else
2920 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2921 int prop_is_valid;
2922 has_type = 1;
2923 prop_is_valid = ast_ari_validate_string(
2925 if (!prop_is_valid) {
2926 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field type failed validation\n");
2927 res = 0;
2928 }
2929 } else
2930 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2931 int prop_is_valid;
2932 has_application = 1;
2933 prop_is_valid = ast_ari_validate_string(
2935 if (!prop_is_valid) {
2936 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field application failed validation\n");
2937 res = 0;
2938 }
2939 } else
2940 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2941 int prop_is_valid;
2942 has_timestamp = 1;
2943 prop_is_valid = ast_ari_validate_date(
2945 if (!prop_is_valid) {
2946 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field timestamp failed validation\n");
2947 res = 0;
2948 }
2949 } else
2950 if (strcmp("destination_application", ast_json_object_iter_key(iter)) == 0) {
2951 int prop_is_valid;
2952 prop_is_valid = ast_ari_validate_string(
2954 if (!prop_is_valid) {
2955 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_application failed validation\n");
2956 res = 0;
2957 }
2958 } else
2959 if (strcmp("destination_bridge", ast_json_object_iter_key(iter)) == 0) {
2960 int prop_is_valid;
2961 prop_is_valid = ast_ari_validate_string(
2963 if (!prop_is_valid) {
2964 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_bridge failed validation\n");
2965 res = 0;
2966 }
2967 } else
2968 if (strcmp("destination_link_first_leg", ast_json_object_iter_key(iter)) == 0) {
2969 int prop_is_valid;
2970 prop_is_valid = ast_ari_validate_channel(
2972 if (!prop_is_valid) {
2973 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_link_first_leg failed validation\n");
2974 res = 0;
2975 }
2976 } else
2977 if (strcmp("destination_link_second_leg", ast_json_object_iter_key(iter)) == 0) {
2978 int prop_is_valid;
2979 prop_is_valid = ast_ari_validate_channel(
2981 if (!prop_is_valid) {
2982 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_link_second_leg failed validation\n");
2983 res = 0;
2984 }
2985 } else
2986 if (strcmp("destination_threeway_bridge", ast_json_object_iter_key(iter)) == 0) {
2987 int prop_is_valid;
2988 prop_is_valid = ast_ari_validate_bridge(
2990 if (!prop_is_valid) {
2991 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_threeway_bridge failed validation\n");
2992 res = 0;
2993 }
2994 } else
2995 if (strcmp("destination_threeway_channel", ast_json_object_iter_key(iter)) == 0) {
2996 int prop_is_valid;
2997 prop_is_valid = ast_ari_validate_channel(
2999 if (!prop_is_valid) {
3000 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_threeway_channel failed validation\n");
3001 res = 0;
3002 }
3003 } else
3004 if (strcmp("destination_type", ast_json_object_iter_key(iter)) == 0) {
3005 int prop_is_valid;
3006 has_destination_type = 1;
3007 prop_is_valid = ast_ari_validate_string(
3009 if (!prop_is_valid) {
3010 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_type failed validation\n");
3011 res = 0;
3012 }
3013 } else
3014 if (strcmp("is_external", ast_json_object_iter_key(iter)) == 0) {
3015 int prop_is_valid;
3016 has_is_external = 1;
3017 prop_is_valid = ast_ari_validate_boolean(
3019 if (!prop_is_valid) {
3020 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field is_external failed validation\n");
3021 res = 0;
3022 }
3023 } else
3024 if (strcmp("replace_channel", ast_json_object_iter_key(iter)) == 0) {
3025 int prop_is_valid;
3026 prop_is_valid = ast_ari_validate_channel(
3028 if (!prop_is_valid) {
3029 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field replace_channel failed validation\n");
3030 res = 0;
3031 }
3032 } else
3033 if (strcmp("result", ast_json_object_iter_key(iter)) == 0) {
3034 int prop_is_valid;
3035 has_result = 1;
3036 prop_is_valid = ast_ari_validate_string(
3038 if (!prop_is_valid) {
3039 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field result failed validation\n");
3040 res = 0;
3041 }
3042 } else
3043 if (strcmp("transfer_target", ast_json_object_iter_key(iter)) == 0) {
3044 int prop_is_valid;
3045 prop_is_valid = ast_ari_validate_channel(
3047 if (!prop_is_valid) {
3048 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transfer_target failed validation\n");
3049 res = 0;
3050 }
3051 } else
3052 if (strcmp("transferee", ast_json_object_iter_key(iter)) == 0) {
3053 int prop_is_valid;
3054 prop_is_valid = ast_ari_validate_channel(
3056 if (!prop_is_valid) {
3057 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferee failed validation\n");
3058 res = 0;
3059 }
3060 } else
3061 if (strcmp("transferer_first_leg", ast_json_object_iter_key(iter)) == 0) {
3062 int prop_is_valid;
3063 has_transferer_first_leg = 1;
3064 prop_is_valid = ast_ari_validate_channel(
3066 if (!prop_is_valid) {
3067 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferer_first_leg failed validation\n");
3068 res = 0;
3069 }
3070 } else
3071 if (strcmp("transferer_first_leg_bridge", ast_json_object_iter_key(iter)) == 0) {
3072 int prop_is_valid;
3073 prop_is_valid = ast_ari_validate_bridge(
3075 if (!prop_is_valid) {
3076 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferer_first_leg_bridge failed validation\n");
3077 res = 0;
3078 }
3079 } else
3080 if (strcmp("transferer_second_leg", ast_json_object_iter_key(iter)) == 0) {
3081 int prop_is_valid;
3082 has_transferer_second_leg = 1;
3083 prop_is_valid = ast_ari_validate_channel(
3085 if (!prop_is_valid) {
3086 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferer_second_leg failed validation\n");
3087 res = 0;
3088 }
3089 } else
3090 if (strcmp("transferer_second_leg_bridge", ast_json_object_iter_key(iter)) == 0) {
3091 int prop_is_valid;
3092 prop_is_valid = ast_ari_validate_bridge(
3094 if (!prop_is_valid) {
3095 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferer_second_leg_bridge failed validation\n");
3096 res = 0;
3097 }
3098 } else
3099 {
3101 "ARI BridgeAttendedTransfer has undocumented field %s\n",
3103 res = 0;
3104 }
3105 }
3106
3107 if (!has_type) {
3108 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field type\n");
3109 res = 0;
3110 }
3111
3112 if (!has_application) {
3113 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field application\n");
3114 res = 0;
3115 }
3116
3117 if (!has_timestamp) {
3118 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field timestamp\n");
3119 res = 0;
3120 }
3121
3122 if (!has_destination_type) {
3123 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field destination_type\n");
3124 res = 0;
3125 }
3126
3127 if (!has_is_external) {
3128 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field is_external\n");
3129 res = 0;
3130 }
3131
3132 if (!has_result) {
3133 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field result\n");
3134 res = 0;
3135 }
3136
3137 if (!has_transferer_first_leg) {
3138 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field transferer_first_leg\n");
3139 res = 0;
3140 }
3141
3142 if (!has_transferer_second_leg) {
3143 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field transferer_second_leg\n");
3144 res = 0;
3145 }
3146
3147 return res;
3148}
3149
3154
3156{
3157 int res = 1;
3158 struct ast_json_iter *iter;
3159 int has_type = 0;
3160 int has_application = 0;
3161 int has_timestamp = 0;
3162 int has_channel = 0;
3163 int has_context = 0;
3164 int has_exten = 0;
3165 int has_is_external = 0;
3166 int has_result = 0;
3167
3168 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3169 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3170 int prop_is_valid;
3171 prop_is_valid = ast_ari_validate_string(
3173 if (!prop_is_valid) {
3174 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field asterisk_id failed validation\n");
3175 res = 0;
3176 }
3177 } else
3178 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3179 int prop_is_valid;
3180 has_type = 1;
3181 prop_is_valid = ast_ari_validate_string(
3183 if (!prop_is_valid) {
3184 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field type failed validation\n");
3185 res = 0;
3186 }
3187 } else
3188 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3189 int prop_is_valid;
3190 has_application = 1;
3191 prop_is_valid = ast_ari_validate_string(
3193 if (!prop_is_valid) {
3194 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field application failed validation\n");
3195 res = 0;
3196 }
3197 } else
3198 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3199 int prop_is_valid;
3200 has_timestamp = 1;
3201 prop_is_valid = ast_ari_validate_date(
3203 if (!prop_is_valid) {
3204 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field timestamp failed validation\n");
3205 res = 0;
3206 }
3207 } else
3208 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3209 int prop_is_valid;
3210 prop_is_valid = ast_ari_validate_bridge(
3212 if (!prop_is_valid) {
3213 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field bridge failed validation\n");
3214 res = 0;
3215 }
3216 } else
3217 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
3218 int prop_is_valid;
3219 has_channel = 1;
3220 prop_is_valid = ast_ari_validate_channel(
3222 if (!prop_is_valid) {
3223 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field channel failed validation\n");
3224 res = 0;
3225 }
3226 } else
3227 if (strcmp("context", ast_json_object_iter_key(iter)) == 0) {
3228 int prop_is_valid;
3229 has_context = 1;
3230 prop_is_valid = ast_ari_validate_string(
3232 if (!prop_is_valid) {
3233 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field context failed validation\n");
3234 res = 0;
3235 }
3236 } else
3237 if (strcmp("exten", ast_json_object_iter_key(iter)) == 0) {
3238 int prop_is_valid;
3239 has_exten = 1;
3240 prop_is_valid = ast_ari_validate_string(
3242 if (!prop_is_valid) {
3243 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field exten failed validation\n");
3244 res = 0;
3245 }
3246 } else
3247 if (strcmp("is_external", ast_json_object_iter_key(iter)) == 0) {
3248 int prop_is_valid;
3249 has_is_external = 1;
3250 prop_is_valid = ast_ari_validate_boolean(
3252 if (!prop_is_valid) {
3253 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field is_external failed validation\n");
3254 res = 0;
3255 }
3256 } else
3257 if (strcmp("replace_channel", ast_json_object_iter_key(iter)) == 0) {
3258 int prop_is_valid;
3259 prop_is_valid = ast_ari_validate_channel(
3261 if (!prop_is_valid) {
3262 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field replace_channel failed validation\n");
3263 res = 0;
3264 }
3265 } else
3266 if (strcmp("result", ast_json_object_iter_key(iter)) == 0) {
3267 int prop_is_valid;
3268 has_result = 1;
3269 prop_is_valid = ast_ari_validate_string(
3271 if (!prop_is_valid) {
3272 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field result failed validation\n");
3273 res = 0;
3274 }
3275 } else
3276 if (strcmp("transferee", ast_json_object_iter_key(iter)) == 0) {
3277 int prop_is_valid;
3278 prop_is_valid = ast_ari_validate_channel(
3280 if (!prop_is_valid) {
3281 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field transferee failed validation\n");
3282 res = 0;
3283 }
3284 } else
3285 {
3287 "ARI BridgeBlindTransfer has undocumented field %s\n",
3289 res = 0;
3290 }
3291 }
3292
3293 if (!has_type) {
3294 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field type\n");
3295 res = 0;
3296 }
3297
3298 if (!has_application) {
3299 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field application\n");
3300 res = 0;
3301 }
3302
3303 if (!has_timestamp) {
3304 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field timestamp\n");
3305 res = 0;
3306 }
3307
3308 if (!has_channel) {
3309 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field channel\n");
3310 res = 0;
3311 }
3312
3313 if (!has_context) {
3314 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field context\n");
3315 res = 0;
3316 }
3317
3318 if (!has_exten) {
3319 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field exten\n");
3320 res = 0;
3321 }
3322
3323 if (!has_is_external) {
3324 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field is_external\n");
3325 res = 0;
3326 }
3327
3328 if (!has_result) {
3329 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field result\n");
3330 res = 0;
3331 }
3332
3333 return res;
3334}
3335
3340
3342{
3343 int res = 1;
3344 struct ast_json_iter *iter;
3345 int has_type = 0;
3346 int has_application = 0;
3347 int has_timestamp = 0;
3348 int has_bridge = 0;
3349
3350 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3351 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3352 int prop_is_valid;
3353 prop_is_valid = ast_ari_validate_string(
3355 if (!prop_is_valid) {
3356 ast_log(LOG_ERROR, "ARI BridgeCreated field asterisk_id failed validation\n");
3357 res = 0;
3358 }
3359 } else
3360 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3361 int prop_is_valid;
3362 has_type = 1;
3363 prop_is_valid = ast_ari_validate_string(
3365 if (!prop_is_valid) {
3366 ast_log(LOG_ERROR, "ARI BridgeCreated field type failed validation\n");
3367 res = 0;
3368 }
3369 } else
3370 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3371 int prop_is_valid;
3372 has_application = 1;
3373 prop_is_valid = ast_ari_validate_string(
3375 if (!prop_is_valid) {
3376 ast_log(LOG_ERROR, "ARI BridgeCreated field application failed validation\n");
3377 res = 0;
3378 }
3379 } else
3380 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3381 int prop_is_valid;
3382 has_timestamp = 1;
3383 prop_is_valid = ast_ari_validate_date(
3385 if (!prop_is_valid) {
3386 ast_log(LOG_ERROR, "ARI BridgeCreated field timestamp failed validation\n");
3387 res = 0;
3388 }
3389 } else
3390 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3391 int prop_is_valid;
3392 has_bridge = 1;
3393 prop_is_valid = ast_ari_validate_bridge(
3395 if (!prop_is_valid) {
3396 ast_log(LOG_ERROR, "ARI BridgeCreated field bridge failed validation\n");
3397 res = 0;
3398 }
3399 } else
3400 {
3402 "ARI BridgeCreated has undocumented field %s\n",
3404 res = 0;
3405 }
3406 }
3407
3408 if (!has_type) {
3409 ast_log(LOG_ERROR, "ARI BridgeCreated missing required field type\n");
3410 res = 0;
3411 }
3412
3413 if (!has_application) {
3414 ast_log(LOG_ERROR, "ARI BridgeCreated missing required field application\n");
3415 res = 0;
3416 }
3417
3418 if (!has_timestamp) {
3419 ast_log(LOG_ERROR, "ARI BridgeCreated missing required field timestamp\n");
3420 res = 0;
3421 }
3422
3423 if (!has_bridge) {
3424 ast_log(LOG_ERROR, "ARI BridgeCreated missing required field bridge\n");
3425 res = 0;
3426 }
3427
3428 return res;
3429}
3430
3435
3437{
3438 int res = 1;
3439 struct ast_json_iter *iter;
3440 int has_type = 0;
3441 int has_application = 0;
3442 int has_timestamp = 0;
3443 int has_bridge = 0;
3444
3445 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3446 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3447 int prop_is_valid;
3448 prop_is_valid = ast_ari_validate_string(
3450 if (!prop_is_valid) {
3451 ast_log(LOG_ERROR, "ARI BridgeDestroyed field asterisk_id failed validation\n");
3452 res = 0;
3453 }
3454 } else
3455 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3456 int prop_is_valid;
3457 has_type = 1;
3458 prop_is_valid = ast_ari_validate_string(
3460 if (!prop_is_valid) {
3461 ast_log(LOG_ERROR, "ARI BridgeDestroyed field type failed validation\n");
3462 res = 0;
3463 }
3464 } else
3465 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3466 int prop_is_valid;
3467 has_application = 1;
3468 prop_is_valid = ast_ari_validate_string(
3470 if (!prop_is_valid) {
3471 ast_log(LOG_ERROR, "ARI BridgeDestroyed field application failed validation\n");
3472 res = 0;
3473 }
3474 } else
3475 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3476 int prop_is_valid;
3477 has_timestamp = 1;
3478 prop_is_valid = ast_ari_validate_date(
3480 if (!prop_is_valid) {
3481 ast_log(LOG_ERROR, "ARI BridgeDestroyed field timestamp failed validation\n");
3482 res = 0;
3483 }
3484 } else
3485 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3486 int prop_is_valid;
3487 has_bridge = 1;
3488 prop_is_valid = ast_ari_validate_bridge(
3490 if (!prop_is_valid) {
3491 ast_log(LOG_ERROR, "ARI BridgeDestroyed field bridge failed validation\n");
3492 res = 0;
3493 }
3494 } else
3495 {
3497 "ARI BridgeDestroyed has undocumented field %s\n",
3499 res = 0;
3500 }
3501 }
3502
3503 if (!has_type) {
3504 ast_log(LOG_ERROR, "ARI BridgeDestroyed missing required field type\n");
3505 res = 0;
3506 }
3507
3508 if (!has_application) {
3509 ast_log(LOG_ERROR, "ARI BridgeDestroyed missing required field application\n");
3510 res = 0;
3511 }
3512
3513 if (!has_timestamp) {
3514 ast_log(LOG_ERROR, "ARI BridgeDestroyed missing required field timestamp\n");
3515 res = 0;
3516 }
3517
3518 if (!has_bridge) {
3519 ast_log(LOG_ERROR, "ARI BridgeDestroyed missing required field bridge\n");
3520 res = 0;
3521 }
3522
3523 return res;
3524}
3525
3530
3532{
3533 int res = 1;
3534 struct ast_json_iter *iter;
3535 int has_type = 0;
3536 int has_application = 0;
3537 int has_timestamp = 0;
3538 int has_bridge = 0;
3539 int has_bridge_from = 0;
3540
3541 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3542 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3543 int prop_is_valid;
3544 prop_is_valid = ast_ari_validate_string(
3546 if (!prop_is_valid) {
3547 ast_log(LOG_ERROR, "ARI BridgeMerged field asterisk_id failed validation\n");
3548 res = 0;
3549 }
3550 } else
3551 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3552 int prop_is_valid;
3553 has_type = 1;
3554 prop_is_valid = ast_ari_validate_string(
3556 if (!prop_is_valid) {
3557 ast_log(LOG_ERROR, "ARI BridgeMerged field type failed validation\n");
3558 res = 0;
3559 }
3560 } else
3561 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3562 int prop_is_valid;
3563 has_application = 1;
3564 prop_is_valid = ast_ari_validate_string(
3566 if (!prop_is_valid) {
3567 ast_log(LOG_ERROR, "ARI BridgeMerged field application failed validation\n");
3568 res = 0;
3569 }
3570 } else
3571 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3572 int prop_is_valid;
3573 has_timestamp = 1;
3574 prop_is_valid = ast_ari_validate_date(
3576 if (!prop_is_valid) {
3577 ast_log(LOG_ERROR, "ARI BridgeMerged field timestamp failed validation\n");
3578 res = 0;
3579 }
3580 } else
3581 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3582 int prop_is_valid;
3583 has_bridge = 1;
3584 prop_is_valid = ast_ari_validate_bridge(
3586 if (!prop_is_valid) {
3587 ast_log(LOG_ERROR, "ARI BridgeMerged field bridge failed validation\n");
3588 res = 0;
3589 }
3590 } else
3591 if (strcmp("bridge_from", ast_json_object_iter_key(iter)) == 0) {
3592 int prop_is_valid;
3593 has_bridge_from = 1;
3594 prop_is_valid = ast_ari_validate_bridge(
3596 if (!prop_is_valid) {
3597 ast_log(LOG_ERROR, "ARI BridgeMerged field bridge_from failed validation\n");
3598 res = 0;
3599 }
3600 } else
3601 {
3603 "ARI BridgeMerged has undocumented field %s\n",
3605 res = 0;
3606 }
3607 }
3608
3609 if (!has_type) {
3610 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field type\n");
3611 res = 0;
3612 }
3613
3614 if (!has_application) {
3615 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field application\n");
3616 res = 0;
3617 }
3618
3619 if (!has_timestamp) {
3620 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field timestamp\n");
3621 res = 0;
3622 }
3623
3624 if (!has_bridge) {
3625 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field bridge\n");
3626 res = 0;
3627 }
3628
3629 if (!has_bridge_from) {
3630 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field bridge_from\n");
3631 res = 0;
3632 }
3633
3634 return res;
3635}
3636
3641
3643{
3644 int res = 1;
3645 struct ast_json_iter *iter;
3646 int has_type = 0;
3647 int has_application = 0;
3648 int has_timestamp = 0;
3649 int has_bridge = 0;
3650
3651 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3652 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3653 int prop_is_valid;
3654 prop_is_valid = ast_ari_validate_string(
3656 if (!prop_is_valid) {
3657 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field asterisk_id failed validation\n");
3658 res = 0;
3659 }
3660 } else
3661 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3662 int prop_is_valid;
3663 has_type = 1;
3664 prop_is_valid = ast_ari_validate_string(
3666 if (!prop_is_valid) {
3667 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field type failed validation\n");
3668 res = 0;
3669 }
3670 } else
3671 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3672 int prop_is_valid;
3673 has_application = 1;
3674 prop_is_valid = ast_ari_validate_string(
3676 if (!prop_is_valid) {
3677 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field application failed validation\n");
3678 res = 0;
3679 }
3680 } else
3681 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3682 int prop_is_valid;
3683 has_timestamp = 1;
3684 prop_is_valid = ast_ari_validate_date(
3686 if (!prop_is_valid) {
3687 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field timestamp failed validation\n");
3688 res = 0;
3689 }
3690 } else
3691 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3692 int prop_is_valid;
3693 has_bridge = 1;
3694 prop_is_valid = ast_ari_validate_bridge(
3696 if (!prop_is_valid) {
3697 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field bridge failed validation\n");
3698 res = 0;
3699 }
3700 } else
3701 if (strcmp("old_video_source_id", ast_json_object_iter_key(iter)) == 0) {
3702 int prop_is_valid;
3703 prop_is_valid = ast_ari_validate_string(
3705 if (!prop_is_valid) {
3706 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field old_video_source_id failed validation\n");
3707 res = 0;
3708 }
3709 } else
3710 {
3712 "ARI BridgeVideoSourceChanged has undocumented field %s\n",
3714 res = 0;
3715 }
3716 }
3717
3718 if (!has_type) {
3719 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged missing required field type\n");
3720 res = 0;
3721 }
3722
3723 if (!has_application) {
3724 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged missing required field application\n");
3725 res = 0;
3726 }
3727
3728 if (!has_timestamp) {
3729 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged missing required field timestamp\n");
3730 res = 0;
3731 }
3732
3733 if (!has_bridge) {
3734 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged missing required field bridge\n");
3735 res = 0;
3736 }
3737
3738 return res;
3739}
3740
3745
3747{
3748 int res = 1;
3749 struct ast_json_iter *iter;
3750 int has_type = 0;
3751 int has_application = 0;
3752 int has_timestamp = 0;
3753 int has_channel = 0;
3754
3755 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3756 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3757 int prop_is_valid;
3758 prop_is_valid = ast_ari_validate_string(
3760 if (!prop_is_valid) {
3761 ast_log(LOG_ERROR, "ARI CallBroadcast field asterisk_id failed validation\n");
3762 res = 0;
3763 }
3764 } else
3765 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3766 int prop_is_valid;
3767 has_type = 1;
3768 prop_is_valid = ast_ari_validate_string(
3770 if (!prop_is_valid) {
3771 ast_log(LOG_ERROR, "ARI CallBroadcast field type failed validation\n");
3772 res = 0;
3773 }
3774 } else
3775 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3776 int prop_is_valid;
3777 has_application = 1;
3778 prop_is_valid = ast_ari_validate_string(
3780 if (!prop_is_valid) {
3781 ast_log(LOG_ERROR, "ARI CallBroadcast field application failed validation\n");
3782 res = 0;
3783 }
3784 } else
3785 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3786 int prop_is_valid;
3787 has_timestamp = 1;
3788 prop_is_valid = ast_ari_validate_date(
3790 if (!prop_is_valid) {
3791 ast_log(LOG_ERROR, "ARI CallBroadcast field timestamp failed validation\n");
3792 res = 0;
3793 }
3794 } else
3795 if (strcmp("called", ast_json_object_iter_key(iter)) == 0) {
3796 int prop_is_valid;
3797 prop_is_valid = ast_ari_validate_string(
3799 if (!prop_is_valid) {
3800 ast_log(LOG_ERROR, "ARI CallBroadcast field called failed validation\n");
3801 res = 0;
3802 }
3803 } else
3804 if (strcmp("caller", ast_json_object_iter_key(iter)) == 0) {
3805 int prop_is_valid;
3806 prop_is_valid = ast_ari_validate_string(
3808 if (!prop_is_valid) {
3809 ast_log(LOG_ERROR, "ARI CallBroadcast field caller failed validation\n");
3810 res = 0;
3811 }
3812 } else
3813 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
3814 int prop_is_valid;
3815 has_channel = 1;
3816 prop_is_valid = ast_ari_validate_channel(
3818 if (!prop_is_valid) {
3819 ast_log(LOG_ERROR, "ARI CallBroadcast field channel failed validation\n");
3820 res = 0;
3821 }
3822 } else
3823 {
3825 "ARI CallBroadcast has undocumented field %s\n",
3827 res = 0;
3828 }
3829 }
3830
3831 if (!has_type) {
3832 ast_log(LOG_ERROR, "ARI CallBroadcast missing required field type\n");
3833 res = 0;
3834 }
3835
3836 if (!has_application) {
3837 ast_log(LOG_ERROR, "ARI CallBroadcast missing required field application\n");
3838 res = 0;
3839 }
3840
3841 if (!has_timestamp) {
3842 ast_log(LOG_ERROR, "ARI CallBroadcast missing required field timestamp\n");
3843 res = 0;
3844 }
3845
3846 if (!has_channel) {
3847 ast_log(LOG_ERROR, "ARI CallBroadcast missing required field channel\n");
3848 res = 0;
3849 }
3850
3851 return res;
3852}
3853
3858
3860{
3861 int res = 1;
3862 struct ast_json_iter *iter;
3863 int has_type = 0;
3864 int has_application = 0;
3865 int has_timestamp = 0;
3866 int has_channel = 0;
3867 int has_winner_app = 0;
3868
3869 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3870 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3871 int prop_is_valid;
3872 prop_is_valid = ast_ari_validate_string(
3874 if (!prop_is_valid) {
3875 ast_log(LOG_ERROR, "ARI CallClaimed field asterisk_id failed validation\n");
3876 res = 0;
3877 }
3878 } else
3879 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3880 int prop_is_valid;
3881 has_type = 1;
3882 prop_is_valid = ast_ari_validate_string(
3884 if (!prop_is_valid) {
3885 ast_log(LOG_ERROR, "ARI CallClaimed field type failed validation\n");
3886 res = 0;
3887 }
3888 } else
3889 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3890 int prop_is_valid;
3891 has_application = 1;
3892 prop_is_valid = ast_ari_validate_string(
3894 if (!prop_is_valid) {
3895 ast_log(LOG_ERROR, "ARI CallClaimed field application failed validation\n");
3896 res = 0;
3897 }
3898 } else
3899 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3900 int prop_is_valid;
3901 has_timestamp = 1;
3902 prop_is_valid = ast_ari_validate_date(
3904 if (!prop_is_valid) {
3905 ast_log(LOG_ERROR, "ARI CallClaimed field timestamp failed validation\n");
3906 res = 0;
3907 }
3908 } else
3909 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
3910 int prop_is_valid;
3911 has_channel = 1;
3912 prop_is_valid = ast_ari_validate_channel(
3914 if (!prop_is_valid) {
3915 ast_log(LOG_ERROR, "ARI CallClaimed field channel failed validation\n");
3916 res = 0;
3917 }
3918 } else
3919 if (strcmp("winner_app", ast_json_object_iter_key(iter)) == 0) {
3920 int prop_is_valid;
3921 has_winner_app = 1;
3922 prop_is_valid = ast_ari_validate_string(
3924 if (!prop_is_valid) {
3925 ast_log(LOG_ERROR, "ARI CallClaimed field winner_app failed validation\n");
3926 res = 0;
3927 }
3928 } else
3929 {
3931 "ARI CallClaimed has undocumented field %s\n",
3933 res = 0;
3934 }
3935 }
3936
3937 if (!has_type) {
3938 ast_log(LOG_ERROR, "ARI CallClaimed missing required field type\n");
3939 res = 0;
3940 }
3941
3942 if (!has_application) {
3943 ast_log(LOG_ERROR, "ARI CallClaimed missing required field application\n");
3944 res = 0;
3945 }
3946
3947 if (!has_timestamp) {
3948 ast_log(LOG_ERROR, "ARI CallClaimed missing required field timestamp\n");
3949 res = 0;
3950 }
3951
3952 if (!has_channel) {
3953 ast_log(LOG_ERROR, "ARI CallClaimed missing required field channel\n");
3954 res = 0;
3955 }
3956
3957 if (!has_winner_app) {
3958 ast_log(LOG_ERROR, "ARI CallClaimed missing required field winner_app\n");
3959 res = 0;
3960 }
3961
3962 return res;
3963}
3964
3969
3971{
3972 int res = 1;
3973 struct ast_json_iter *iter;
3974 int has_type = 0;
3975 int has_application = 0;
3976 int has_timestamp = 0;
3977 int has_caller_presentation = 0;
3978 int has_caller_presentation_txt = 0;
3979 int has_channel = 0;
3980
3981 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3982 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3983 int prop_is_valid;
3984 prop_is_valid = ast_ari_validate_string(
3986 if (!prop_is_valid) {
3987 ast_log(LOG_ERROR, "ARI ChannelCallerId field asterisk_id failed validation\n");
3988 res = 0;
3989 }
3990 } else
3991 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3992 int prop_is_valid;
3993 has_type = 1;
3994 prop_is_valid = ast_ari_validate_string(
3996 if (!prop_is_valid) {
3997 ast_log(LOG_ERROR, "ARI ChannelCallerId field type failed validation\n");
3998 res = 0;
3999 }
4000 } else
4001 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4002 int prop_is_valid;
4003 has_application = 1;
4004 prop_is_valid = ast_ari_validate_string(
4006 if (!prop_is_valid) {
4007 ast_log(LOG_ERROR, "ARI ChannelCallerId field application failed validation\n");
4008 res = 0;
4009 }
4010 } else
4011 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4012 int prop_is_valid;
4013 has_timestamp = 1;
4014 prop_is_valid = ast_ari_validate_date(
4016 if (!prop_is_valid) {
4017 ast_log(LOG_ERROR, "ARI ChannelCallerId field timestamp failed validation\n");
4018 res = 0;
4019 }
4020 } else
4021 if (strcmp("caller_presentation", ast_json_object_iter_key(iter)) == 0) {
4022 int prop_is_valid;
4023 has_caller_presentation = 1;
4024 prop_is_valid = ast_ari_validate_int(
4026 if (!prop_is_valid) {
4027 ast_log(LOG_ERROR, "ARI ChannelCallerId field caller_presentation failed validation\n");
4028 res = 0;
4029 }
4030 } else
4031 if (strcmp("caller_presentation_txt", ast_json_object_iter_key(iter)) == 0) {
4032 int prop_is_valid;
4033 has_caller_presentation_txt = 1;
4034 prop_is_valid = ast_ari_validate_string(
4036 if (!prop_is_valid) {
4037 ast_log(LOG_ERROR, "ARI ChannelCallerId field caller_presentation_txt failed validation\n");
4038 res = 0;
4039 }
4040 } else
4041 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4042 int prop_is_valid;
4043 has_channel = 1;
4044 prop_is_valid = ast_ari_validate_channel(
4046 if (!prop_is_valid) {
4047 ast_log(LOG_ERROR, "ARI ChannelCallerId field channel failed validation\n");
4048 res = 0;
4049 }
4050 } else
4051 {
4053 "ARI ChannelCallerId has undocumented field %s\n",
4055 res = 0;
4056 }
4057 }
4058
4059 if (!has_type) {
4060 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field type\n");
4061 res = 0;
4062 }
4063
4064 if (!has_application) {
4065 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field application\n");
4066 res = 0;
4067 }
4068
4069 if (!has_timestamp) {
4070 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field timestamp\n");
4071 res = 0;
4072 }
4073
4074 if (!has_caller_presentation) {
4075 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field caller_presentation\n");
4076 res = 0;
4077 }
4078
4079 if (!has_caller_presentation_txt) {
4080 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field caller_presentation_txt\n");
4081 res = 0;
4082 }
4083
4084 if (!has_channel) {
4085 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field channel\n");
4086 res = 0;
4087 }
4088
4089 return res;
4090}
4091
4096
4098{
4099 int res = 1;
4100 struct ast_json_iter *iter;
4101 int has_type = 0;
4102 int has_application = 0;
4103 int has_timestamp = 0;
4104 int has_channel = 0;
4105
4106 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4107 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4108 int prop_is_valid;
4109 prop_is_valid = ast_ari_validate_string(
4111 if (!prop_is_valid) {
4112 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field asterisk_id failed validation\n");
4113 res = 0;
4114 }
4115 } else
4116 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4117 int prop_is_valid;
4118 has_type = 1;
4119 prop_is_valid = ast_ari_validate_string(
4121 if (!prop_is_valid) {
4122 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field type failed validation\n");
4123 res = 0;
4124 }
4125 } else
4126 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4127 int prop_is_valid;
4128 has_application = 1;
4129 prop_is_valid = ast_ari_validate_string(
4131 if (!prop_is_valid) {
4132 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field application failed validation\n");
4133 res = 0;
4134 }
4135 } else
4136 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4137 int prop_is_valid;
4138 has_timestamp = 1;
4139 prop_is_valid = ast_ari_validate_date(
4141 if (!prop_is_valid) {
4142 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field timestamp failed validation\n");
4143 res = 0;
4144 }
4145 } else
4146 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4147 int prop_is_valid;
4148 has_channel = 1;
4149 prop_is_valid = ast_ari_validate_channel(
4151 if (!prop_is_valid) {
4152 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field channel failed validation\n");
4153 res = 0;
4154 }
4155 } else
4156 {
4158 "ARI ChannelConnectedLine has undocumented field %s\n",
4160 res = 0;
4161 }
4162 }
4163
4164 if (!has_type) {
4165 ast_log(LOG_ERROR, "ARI ChannelConnectedLine missing required field type\n");
4166 res = 0;
4167 }
4168
4169 if (!has_application) {
4170 ast_log(LOG_ERROR, "ARI ChannelConnectedLine missing required field application\n");
4171 res = 0;
4172 }
4173
4174 if (!has_timestamp) {
4175 ast_log(LOG_ERROR, "ARI ChannelConnectedLine missing required field timestamp\n");
4176 res = 0;
4177 }
4178
4179 if (!has_channel) {
4180 ast_log(LOG_ERROR, "ARI ChannelConnectedLine missing required field channel\n");
4181 res = 0;
4182 }
4183
4184 return res;
4185}
4186
4191
4193{
4194 int res = 1;
4195 struct ast_json_iter *iter;
4196 int has_type = 0;
4197 int has_application = 0;
4198 int has_timestamp = 0;
4199 int has_channel = 0;
4200
4201 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4202 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4203 int prop_is_valid;
4204 prop_is_valid = ast_ari_validate_string(
4206 if (!prop_is_valid) {
4207 ast_log(LOG_ERROR, "ARI ChannelCreated field asterisk_id failed validation\n");
4208 res = 0;
4209 }
4210 } else
4211 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4212 int prop_is_valid;
4213 has_type = 1;
4214 prop_is_valid = ast_ari_validate_string(
4216 if (!prop_is_valid) {
4217 ast_log(LOG_ERROR, "ARI ChannelCreated field type failed validation\n");
4218 res = 0;
4219 }
4220 } else
4221 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4222 int prop_is_valid;
4223 has_application = 1;
4224 prop_is_valid = ast_ari_validate_string(
4226 if (!prop_is_valid) {
4227 ast_log(LOG_ERROR, "ARI ChannelCreated field application failed validation\n");
4228 res = 0;
4229 }
4230 } else
4231 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4232 int prop_is_valid;
4233 has_timestamp = 1;
4234 prop_is_valid = ast_ari_validate_date(
4236 if (!prop_is_valid) {
4237 ast_log(LOG_ERROR, "ARI ChannelCreated field timestamp failed validation\n");
4238 res = 0;
4239 }
4240 } else
4241 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4242 int prop_is_valid;
4243 has_channel = 1;
4244 prop_is_valid = ast_ari_validate_channel(
4246 if (!prop_is_valid) {
4247 ast_log(LOG_ERROR, "ARI ChannelCreated field channel failed validation\n");
4248 res = 0;
4249 }
4250 } else
4251 {
4253 "ARI ChannelCreated has undocumented field %s\n",
4255 res = 0;
4256 }
4257 }
4258
4259 if (!has_type) {
4260 ast_log(LOG_ERROR, "ARI ChannelCreated missing required field type\n");
4261 res = 0;
4262 }
4263
4264 if (!has_application) {
4265 ast_log(LOG_ERROR, "ARI ChannelCreated missing required field application\n");
4266 res = 0;
4267 }
4268
4269 if (!has_timestamp) {
4270 ast_log(LOG_ERROR, "ARI ChannelCreated missing required field timestamp\n");
4271 res = 0;
4272 }
4273
4274 if (!has_channel) {
4275 ast_log(LOG_ERROR, "ARI ChannelCreated missing required field channel\n");
4276 res = 0;
4277 }
4278
4279 return res;
4280}
4281
4286
4288{
4289 int res = 1;
4290 struct ast_json_iter *iter;
4291 int has_type = 0;
4292 int has_application = 0;
4293 int has_timestamp = 0;
4294 int has_cause = 0;
4295 int has_cause_txt = 0;
4296 int has_channel = 0;
4297
4298 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4299 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4300 int prop_is_valid;
4301 prop_is_valid = ast_ari_validate_string(
4303 if (!prop_is_valid) {
4304 ast_log(LOG_ERROR, "ARI ChannelDestroyed field asterisk_id failed validation\n");
4305 res = 0;
4306 }
4307 } else
4308 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4309 int prop_is_valid;
4310 has_type = 1;
4311 prop_is_valid = ast_ari_validate_string(
4313 if (!prop_is_valid) {
4314 ast_log(LOG_ERROR, "ARI ChannelDestroyed field type failed validation\n");
4315 res = 0;
4316 }
4317 } else
4318 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4319 int prop_is_valid;
4320 has_application = 1;
4321 prop_is_valid = ast_ari_validate_string(
4323 if (!prop_is_valid) {
4324 ast_log(LOG_ERROR, "ARI ChannelDestroyed field application failed validation\n");
4325 res = 0;
4326 }
4327 } else
4328 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4329 int prop_is_valid;
4330 has_timestamp = 1;
4331 prop_is_valid = ast_ari_validate_date(
4333 if (!prop_is_valid) {
4334 ast_log(LOG_ERROR, "ARI ChannelDestroyed field timestamp failed validation\n");
4335 res = 0;
4336 }
4337 } else
4338 if (strcmp("cause", ast_json_object_iter_key(iter)) == 0) {
4339 int prop_is_valid;
4340 has_cause = 1;
4341 prop_is_valid = ast_ari_validate_int(
4343 if (!prop_is_valid) {
4344 ast_log(LOG_ERROR, "ARI ChannelDestroyed field cause failed validation\n");
4345 res = 0;
4346 }
4347 } else
4348 if (strcmp("cause_txt", ast_json_object_iter_key(iter)) == 0) {
4349 int prop_is_valid;
4350 has_cause_txt = 1;
4351 prop_is_valid = ast_ari_validate_string(
4353 if (!prop_is_valid) {
4354 ast_log(LOG_ERROR, "ARI ChannelDestroyed field cause_txt failed validation\n");
4355 res = 0;
4356 }
4357 } else
4358 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4359 int prop_is_valid;
4360 has_channel = 1;
4361 prop_is_valid = ast_ari_validate_channel(
4363 if (!prop_is_valid) {
4364 ast_log(LOG_ERROR, "ARI ChannelDestroyed field channel failed validation\n");
4365 res = 0;
4366 }
4367 } else
4368 if (strcmp("tech_cause", ast_json_object_iter_key(iter)) == 0) {
4369 int prop_is_valid;
4370 prop_is_valid = ast_ari_validate_int(
4372 if (!prop_is_valid) {
4373 ast_log(LOG_ERROR, "ARI ChannelDestroyed field tech_cause failed validation\n");
4374 res = 0;
4375 }
4376 } else
4377 {
4379 "ARI ChannelDestroyed has undocumented field %s\n",
4381 res = 0;
4382 }
4383 }
4384
4385 if (!has_type) {
4386 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field type\n");
4387 res = 0;
4388 }
4389
4390 if (!has_application) {
4391 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field application\n");
4392 res = 0;
4393 }
4394
4395 if (!has_timestamp) {
4396 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field timestamp\n");
4397 res = 0;
4398 }
4399
4400 if (!has_cause) {
4401 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field cause\n");
4402 res = 0;
4403 }
4404
4405 if (!has_cause_txt) {
4406 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field cause_txt\n");
4407 res = 0;
4408 }
4409
4410 if (!has_channel) {
4411 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field channel\n");
4412 res = 0;
4413 }
4414
4415 return res;
4416}
4417
4422
4424{
4425 int res = 1;
4426 struct ast_json_iter *iter;
4427 int has_type = 0;
4428 int has_application = 0;
4429 int has_timestamp = 0;
4430 int has_channel = 0;
4431 int has_dialplan_app = 0;
4432 int has_dialplan_app_data = 0;
4433
4434 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4435 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4436 int prop_is_valid;
4437 prop_is_valid = ast_ari_validate_string(
4439 if (!prop_is_valid) {
4440 ast_log(LOG_ERROR, "ARI ChannelDialplan field asterisk_id failed validation\n");
4441 res = 0;
4442 }
4443 } else
4444 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4445 int prop_is_valid;
4446 has_type = 1;
4447 prop_is_valid = ast_ari_validate_string(
4449 if (!prop_is_valid) {
4450 ast_log(LOG_ERROR, "ARI ChannelDialplan field type failed validation\n");
4451 res = 0;
4452 }
4453 } else
4454 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4455 int prop_is_valid;
4456 has_application = 1;
4457 prop_is_valid = ast_ari_validate_string(
4459 if (!prop_is_valid) {
4460 ast_log(LOG_ERROR, "ARI ChannelDialplan field application failed validation\n");
4461 res = 0;
4462 }
4463 } else
4464 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4465 int prop_is_valid;
4466 has_timestamp = 1;
4467 prop_is_valid = ast_ari_validate_date(
4469 if (!prop_is_valid) {
4470 ast_log(LOG_ERROR, "ARI ChannelDialplan field timestamp failed validation\n");
4471 res = 0;
4472 }
4473 } else
4474 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4475 int prop_is_valid;
4476 has_channel = 1;
4477 prop_is_valid = ast_ari_validate_channel(
4479 if (!prop_is_valid) {
4480 ast_log(LOG_ERROR, "ARI ChannelDialplan field channel failed validation\n");
4481 res = 0;
4482 }
4483 } else
4484 if (strcmp("dialplan_app", ast_json_object_iter_key(iter)) == 0) {
4485 int prop_is_valid;
4486 has_dialplan_app = 1;
4487 prop_is_valid = ast_ari_validate_string(
4489 if (!prop_is_valid) {
4490 ast_log(LOG_ERROR, "ARI ChannelDialplan field dialplan_app failed validation\n");
4491 res = 0;
4492 }
4493 } else
4494 if (strcmp("dialplan_app_data", ast_json_object_iter_key(iter)) == 0) {
4495 int prop_is_valid;
4496 has_dialplan_app_data = 1;
4497 prop_is_valid = ast_ari_validate_string(
4499 if (!prop_is_valid) {
4500 ast_log(LOG_ERROR, "ARI ChannelDialplan field dialplan_app_data failed validation\n");
4501 res = 0;
4502 }
4503 } else
4504 {
4506 "ARI ChannelDialplan has undocumented field %s\n",
4508 res = 0;
4509 }
4510 }
4511
4512 if (!has_type) {
4513 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field type\n");
4514 res = 0;
4515 }
4516
4517 if (!has_application) {
4518 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field application\n");
4519 res = 0;
4520 }
4521
4522 if (!has_timestamp) {
4523 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field timestamp\n");
4524 res = 0;
4525 }
4526
4527 if (!has_channel) {
4528 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field channel\n");
4529 res = 0;
4530 }
4531
4532 if (!has_dialplan_app) {
4533 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field dialplan_app\n");
4534 res = 0;
4535 }
4536
4537 if (!has_dialplan_app_data) {
4538 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field dialplan_app_data\n");
4539 res = 0;
4540 }
4541
4542 return res;
4543}
4544
4549
4551{
4552 int res = 1;
4553 struct ast_json_iter *iter;
4554 int has_type = 0;
4555 int has_application = 0;
4556 int has_timestamp = 0;
4557 int has_channel = 0;
4558 int has_digit = 0;
4559 int has_duration_ms = 0;
4560
4561 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4562 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4563 int prop_is_valid;
4564 prop_is_valid = ast_ari_validate_string(
4566 if (!prop_is_valid) {
4567 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field asterisk_id failed validation\n");
4568 res = 0;
4569 }
4570 } else
4571 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4572 int prop_is_valid;
4573 has_type = 1;
4574 prop_is_valid = ast_ari_validate_string(
4576 if (!prop_is_valid) {
4577 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field type failed validation\n");
4578 res = 0;
4579 }
4580 } else
4581 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4582 int prop_is_valid;
4583 has_application = 1;
4584 prop_is_valid = ast_ari_validate_string(
4586 if (!prop_is_valid) {
4587 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field application failed validation\n");
4588 res = 0;
4589 }
4590 } else
4591 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4592 int prop_is_valid;
4593 has_timestamp = 1;
4594 prop_is_valid = ast_ari_validate_date(
4596 if (!prop_is_valid) {
4597 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field timestamp failed validation\n");
4598 res = 0;
4599 }
4600 } else
4601 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4602 int prop_is_valid;
4603 has_channel = 1;
4604 prop_is_valid = ast_ari_validate_channel(
4606 if (!prop_is_valid) {
4607 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field channel failed validation\n");
4608 res = 0;
4609 }
4610 } else
4611 if (strcmp("digit", ast_json_object_iter_key(iter)) == 0) {
4612 int prop_is_valid;
4613 has_digit = 1;
4614 prop_is_valid = ast_ari_validate_string(
4616 if (!prop_is_valid) {
4617 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field digit failed validation\n");
4618 res = 0;
4619 }
4620 } else
4621 if (strcmp("duration_ms", ast_json_object_iter_key(iter)) == 0) {
4622 int prop_is_valid;
4623 has_duration_ms = 1;
4624 prop_is_valid = ast_ari_validate_int(
4626 if (!prop_is_valid) {
4627 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field duration_ms failed validation\n");
4628 res = 0;
4629 }
4630 } else
4631 {
4633 "ARI ChannelDtmfReceived has undocumented field %s\n",
4635 res = 0;
4636 }
4637 }
4638
4639 if (!has_type) {
4640 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field type\n");
4641 res = 0;
4642 }
4643
4644 if (!has_application) {
4645 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field application\n");
4646 res = 0;
4647 }
4648
4649 if (!has_timestamp) {
4650 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field timestamp\n");
4651 res = 0;
4652 }
4653
4654 if (!has_channel) {
4655 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field channel\n");
4656 res = 0;
4657 }
4658
4659 if (!has_digit) {
4660 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field digit\n");
4661 res = 0;
4662 }
4663
4664 if (!has_duration_ms) {
4665 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field duration_ms\n");
4666 res = 0;
4667 }
4668
4669 return res;
4670}
4671
4676
4678{
4679 int res = 1;
4680 struct ast_json_iter *iter;
4681 int has_type = 0;
4682 int has_application = 0;
4683 int has_timestamp = 0;
4684 int has_bridge = 0;
4685
4686 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4687 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4688 int prop_is_valid;
4689 prop_is_valid = ast_ari_validate_string(
4691 if (!prop_is_valid) {
4692 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field asterisk_id failed validation\n");
4693 res = 0;
4694 }
4695 } else
4696 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4697 int prop_is_valid;
4698 has_type = 1;
4699 prop_is_valid = ast_ari_validate_string(
4701 if (!prop_is_valid) {
4702 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field type failed validation\n");
4703 res = 0;
4704 }
4705 } else
4706 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4707 int prop_is_valid;
4708 has_application = 1;
4709 prop_is_valid = ast_ari_validate_string(
4711 if (!prop_is_valid) {
4712 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field application failed validation\n");
4713 res = 0;
4714 }
4715 } else
4716 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4717 int prop_is_valid;
4718 has_timestamp = 1;
4719 prop_is_valid = ast_ari_validate_date(
4721 if (!prop_is_valid) {
4722 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field timestamp failed validation\n");
4723 res = 0;
4724 }
4725 } else
4726 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
4727 int prop_is_valid;
4728 has_bridge = 1;
4729 prop_is_valid = ast_ari_validate_bridge(
4731 if (!prop_is_valid) {
4732 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field bridge failed validation\n");
4733 res = 0;
4734 }
4735 } else
4736 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4737 int prop_is_valid;
4738 prop_is_valid = ast_ari_validate_channel(
4740 if (!prop_is_valid) {
4741 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field channel failed validation\n");
4742 res = 0;
4743 }
4744 } else
4745 {
4747 "ARI ChannelEnteredBridge has undocumented field %s\n",
4749 res = 0;
4750 }
4751 }
4752
4753 if (!has_type) {
4754 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge missing required field type\n");
4755 res = 0;
4756 }
4757
4758 if (!has_application) {
4759 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge missing required field application\n");
4760 res = 0;
4761 }
4762
4763 if (!has_timestamp) {
4764 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge missing required field timestamp\n");
4765 res = 0;
4766 }
4767
4768 if (!has_bridge) {
4769 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge missing required field bridge\n");
4770 res = 0;
4771 }
4772
4773 return res;
4774}
4775
4780
4782{
4783 int res = 1;
4784 struct ast_json_iter *iter;
4785 int has_type = 0;
4786 int has_application = 0;
4787 int has_timestamp = 0;
4788 int has_channel = 0;
4789
4790 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4791 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4792 int prop_is_valid;
4793 prop_is_valid = ast_ari_validate_string(
4795 if (!prop_is_valid) {
4796 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field asterisk_id failed validation\n");
4797 res = 0;
4798 }
4799 } else
4800 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4801 int prop_is_valid;
4802 has_type = 1;
4803 prop_is_valid = ast_ari_validate_string(
4805 if (!prop_is_valid) {
4806 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field type failed validation\n");
4807 res = 0;
4808 }
4809 } else
4810 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4811 int prop_is_valid;
4812 has_application = 1;
4813 prop_is_valid = ast_ari_validate_string(
4815 if (!prop_is_valid) {
4816 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field application failed validation\n");
4817 res = 0;
4818 }
4819 } else
4820 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4821 int prop_is_valid;
4822 has_timestamp = 1;
4823 prop_is_valid = ast_ari_validate_date(
4825 if (!prop_is_valid) {
4826 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field timestamp failed validation\n");
4827 res = 0;
4828 }
4829 } else
4830 if (strcmp("cause", ast_json_object_iter_key(iter)) == 0) {
4831 int prop_is_valid;
4832 prop_is_valid = ast_ari_validate_int(
4834 if (!prop_is_valid) {
4835 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field cause failed validation\n");
4836 res = 0;
4837 }
4838 } else
4839 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4840 int prop_is_valid;
4841 has_channel = 1;
4842 prop_is_valid = ast_ari_validate_channel(
4844 if (!prop_is_valid) {
4845 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field channel failed validation\n");
4846 res = 0;
4847 }
4848 } else
4849 if (strcmp("soft", ast_json_object_iter_key(iter)) == 0) {
4850 int prop_is_valid;
4851 prop_is_valid = ast_ari_validate_boolean(
4853 if (!prop_is_valid) {
4854 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field soft failed validation\n");
4855 res = 0;
4856 }
4857 } else
4858 if (strcmp("tech_cause", ast_json_object_iter_key(iter)) == 0) {
4859 int prop_is_valid;
4860 prop_is_valid = ast_ari_validate_int(
4862 if (!prop_is_valid) {
4863 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field tech_cause failed validation\n");
4864 res = 0;
4865 }
4866 } else
4867 {
4869 "ARI ChannelHangupRequest has undocumented field %s\n",
4871 res = 0;
4872 }
4873 }
4874
4875 if (!has_type) {
4876 ast_log(LOG_ERROR, "ARI ChannelHangupRequest missing required field type\n");
4877 res = 0;
4878 }
4879
4880 if (!has_application) {
4881 ast_log(LOG_ERROR, "ARI ChannelHangupRequest missing required field application\n");
4882 res = 0;
4883 }
4884
4885 if (!has_timestamp) {
4886 ast_log(LOG_ERROR, "ARI ChannelHangupRequest missing required field timestamp\n");
4887 res = 0;
4888 }
4889
4890 if (!has_channel) {
4891 ast_log(LOG_ERROR, "ARI ChannelHangupRequest missing required field channel\n");
4892 res = 0;
4893 }
4894
4895 return res;
4896}
4897
4902
4904{
4905 int res = 1;
4906 struct ast_json_iter *iter;
4907 int has_type = 0;
4908 int has_application = 0;
4909 int has_timestamp = 0;
4910 int has_channel = 0;
4911
4912 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4913 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4914 int prop_is_valid;
4915 prop_is_valid = ast_ari_validate_string(
4917 if (!prop_is_valid) {
4918 ast_log(LOG_ERROR, "ARI ChannelHold field asterisk_id failed validation\n");
4919 res = 0;
4920 }
4921 } else
4922 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4923 int prop_is_valid;
4924 has_type = 1;
4925 prop_is_valid = ast_ari_validate_string(
4927 if (!prop_is_valid) {
4928 ast_log(LOG_ERROR, "ARI ChannelHold field type failed validation\n");
4929 res = 0;
4930 }
4931 } else
4932 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4933 int prop_is_valid;
4934 has_application = 1;
4935 prop_is_valid = ast_ari_validate_string(
4937 if (!prop_is_valid) {
4938 ast_log(LOG_ERROR, "ARI ChannelHold field application failed validation\n");
4939 res = 0;
4940 }
4941 } else
4942 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4943 int prop_is_valid;
4944 has_timestamp = 1;
4945 prop_is_valid = ast_ari_validate_date(
4947 if (!prop_is_valid) {
4948 ast_log(LOG_ERROR, "ARI ChannelHold field timestamp failed validation\n");
4949 res = 0;
4950 }
4951 } else
4952 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4953 int prop_is_valid;
4954 has_channel = 1;
4955 prop_is_valid = ast_ari_validate_channel(
4957 if (!prop_is_valid) {
4958 ast_log(LOG_ERROR, "ARI ChannelHold field channel failed validation\n");
4959 res = 0;
4960 }
4961 } else
4962 if (strcmp("musicclass", ast_json_object_iter_key(iter)) == 0) {
4963 int prop_is_valid;
4964 prop_is_valid = ast_ari_validate_string(
4966 if (!prop_is_valid) {
4967 ast_log(LOG_ERROR, "ARI ChannelHold field musicclass failed validation\n");
4968 res = 0;
4969 }
4970 } else
4971 {
4973 "ARI ChannelHold has undocumented field %s\n",
4975 res = 0;
4976 }
4977 }
4978
4979 if (!has_type) {
4980 ast_log(LOG_ERROR, "ARI ChannelHold missing required field type\n");
4981 res = 0;
4982 }
4983
4984 if (!has_application) {
4985 ast_log(LOG_ERROR, "ARI ChannelHold missing required field application\n");
4986 res = 0;
4987 }
4988
4989 if (!has_timestamp) {
4990 ast_log(LOG_ERROR, "ARI ChannelHold missing required field timestamp\n");
4991 res = 0;
4992 }
4993
4994 if (!has_channel) {
4995 ast_log(LOG_ERROR, "ARI ChannelHold missing required field channel\n");
4996 res = 0;
4997 }
4998
4999 return res;
5000}
5001
5006
5008{
5009 int res = 1;
5010 struct ast_json_iter *iter;
5011 int has_type = 0;
5012 int has_application = 0;
5013 int has_timestamp = 0;
5014 int has_bridge = 0;
5015 int has_channel = 0;
5016
5017 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5018 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5019 int prop_is_valid;
5020 prop_is_valid = ast_ari_validate_string(
5022 if (!prop_is_valid) {
5023 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field asterisk_id failed validation\n");
5024 res = 0;
5025 }
5026 } else
5027 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5028 int prop_is_valid;
5029 has_type = 1;
5030 prop_is_valid = ast_ari_validate_string(
5032 if (!prop_is_valid) {
5033 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field type failed validation\n");
5034 res = 0;
5035 }
5036 } else
5037 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5038 int prop_is_valid;
5039 has_application = 1;
5040 prop_is_valid = ast_ari_validate_string(
5042 if (!prop_is_valid) {
5043 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field application failed validation\n");
5044 res = 0;
5045 }
5046 } else
5047 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5048 int prop_is_valid;
5049 has_timestamp = 1;
5050 prop_is_valid = ast_ari_validate_date(
5052 if (!prop_is_valid) {
5053 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field timestamp failed validation\n");
5054 res = 0;
5055 }
5056 } else
5057 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
5058 int prop_is_valid;
5059 has_bridge = 1;
5060 prop_is_valid = ast_ari_validate_bridge(
5062 if (!prop_is_valid) {
5063 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field bridge failed validation\n");
5064 res = 0;
5065 }
5066 } else
5067 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5068 int prop_is_valid;
5069 has_channel = 1;
5070 prop_is_valid = ast_ari_validate_channel(
5072 if (!prop_is_valid) {
5073 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field channel failed validation\n");
5074 res = 0;
5075 }
5076 } else
5077 {
5079 "ARI ChannelLeftBridge has undocumented field %s\n",
5081 res = 0;
5082 }
5083 }
5084
5085 if (!has_type) {
5086 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field type\n");
5087 res = 0;
5088 }
5089
5090 if (!has_application) {
5091 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field application\n");
5092 res = 0;
5093 }
5094
5095 if (!has_timestamp) {
5096 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field timestamp\n");
5097 res = 0;
5098 }
5099
5100 if (!has_bridge) {
5101 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field bridge\n");
5102 res = 0;
5103 }
5104
5105 if (!has_channel) {
5106 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field channel\n");
5107 res = 0;
5108 }
5109
5110 return res;
5111}
5112
5117
5119{
5120 int res = 1;
5121 struct ast_json_iter *iter;
5122 int has_type = 0;
5123 int has_application = 0;
5124 int has_timestamp = 0;
5125 int has_channel = 0;
5126
5127 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5128 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5129 int prop_is_valid;
5130 prop_is_valid = ast_ari_validate_string(
5132 if (!prop_is_valid) {
5133 ast_log(LOG_ERROR, "ARI ChannelStateChange field asterisk_id failed validation\n");
5134 res = 0;
5135 }
5136 } else
5137 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5138 int prop_is_valid;
5139 has_type = 1;
5140 prop_is_valid = ast_ari_validate_string(
5142 if (!prop_is_valid) {
5143 ast_log(LOG_ERROR, "ARI ChannelStateChange field type failed validation\n");
5144 res = 0;
5145 }
5146 } else
5147 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5148 int prop_is_valid;
5149 has_application = 1;
5150 prop_is_valid = ast_ari_validate_string(
5152 if (!prop_is_valid) {
5153 ast_log(LOG_ERROR, "ARI ChannelStateChange field application failed validation\n");
5154 res = 0;
5155 }
5156 } else
5157 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5158 int prop_is_valid;
5159 has_timestamp = 1;
5160 prop_is_valid = ast_ari_validate_date(
5162 if (!prop_is_valid) {
5163 ast_log(LOG_ERROR, "ARI ChannelStateChange field timestamp failed validation\n");
5164 res = 0;
5165 }
5166 } else
5167 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5168 int prop_is_valid;
5169 has_channel = 1;
5170 prop_is_valid = ast_ari_validate_channel(
5172 if (!prop_is_valid) {
5173 ast_log(LOG_ERROR, "ARI ChannelStateChange field channel failed validation\n");
5174 res = 0;
5175 }
5176 } else
5177 {
5179 "ARI ChannelStateChange has undocumented field %s\n",
5181 res = 0;
5182 }
5183 }
5184
5185 if (!has_type) {
5186 ast_log(LOG_ERROR, "ARI ChannelStateChange missing required field type\n");
5187 res = 0;
5188 }
5189
5190 if (!has_application) {
5191 ast_log(LOG_ERROR, "ARI ChannelStateChange missing required field application\n");
5192 res = 0;
5193 }
5194
5195 if (!has_timestamp) {
5196 ast_log(LOG_ERROR, "ARI ChannelStateChange missing required field timestamp\n");
5197 res = 0;
5198 }
5199
5200 if (!has_channel) {
5201 ast_log(LOG_ERROR, "ARI ChannelStateChange missing required field channel\n");
5202 res = 0;
5203 }
5204
5205 return res;
5206}
5207
5212
5214{
5215 int res = 1;
5216 struct ast_json_iter *iter;
5217 int has_type = 0;
5218 int has_application = 0;
5219 int has_timestamp = 0;
5220 int has_channel = 0;
5221 int has_duration = 0;
5222
5223 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5224 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5225 int prop_is_valid;
5226 prop_is_valid = ast_ari_validate_string(
5228 if (!prop_is_valid) {
5229 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field asterisk_id failed validation\n");
5230 res = 0;
5231 }
5232 } else
5233 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5234 int prop_is_valid;
5235 has_type = 1;
5236 prop_is_valid = ast_ari_validate_string(
5238 if (!prop_is_valid) {
5239 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field type failed validation\n");
5240 res = 0;
5241 }
5242 } else
5243 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5244 int prop_is_valid;
5245 has_application = 1;
5246 prop_is_valid = ast_ari_validate_string(
5248 if (!prop_is_valid) {
5249 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field application failed validation\n");
5250 res = 0;
5251 }
5252 } else
5253 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5254 int prop_is_valid;
5255 has_timestamp = 1;
5256 prop_is_valid = ast_ari_validate_date(
5258 if (!prop_is_valid) {
5259 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field timestamp failed validation\n");
5260 res = 0;
5261 }
5262 } else
5263 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5264 int prop_is_valid;
5265 has_channel = 1;
5266 prop_is_valid = ast_ari_validate_channel(
5268 if (!prop_is_valid) {
5269 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field channel failed validation\n");
5270 res = 0;
5271 }
5272 } else
5273 if (strcmp("duration", ast_json_object_iter_key(iter)) == 0) {
5274 int prop_is_valid;
5275 has_duration = 1;
5276 prop_is_valid = ast_ari_validate_int(
5278 if (!prop_is_valid) {
5279 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field duration failed validation\n");
5280 res = 0;
5281 }
5282 } else
5283 {
5285 "ARI ChannelTalkingFinished has undocumented field %s\n",
5287 res = 0;
5288 }
5289 }
5290
5291 if (!has_type) {
5292 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field type\n");
5293 res = 0;
5294 }
5295
5296 if (!has_application) {
5297 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field application\n");
5298 res = 0;
5299 }
5300
5301 if (!has_timestamp) {
5302 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field timestamp\n");
5303 res = 0;
5304 }
5305
5306 if (!has_channel) {
5307 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field channel\n");
5308 res = 0;
5309 }
5310
5311 if (!has_duration) {
5312 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field duration\n");
5313 res = 0;
5314 }
5315
5316 return res;
5317}
5318
5323
5325{
5326 int res = 1;
5327 struct ast_json_iter *iter;
5328 int has_type = 0;
5329 int has_application = 0;
5330 int has_timestamp = 0;
5331 int has_channel = 0;
5332
5333 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5334 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5335 int prop_is_valid;
5336 prop_is_valid = ast_ari_validate_string(
5338 if (!prop_is_valid) {
5339 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field asterisk_id failed validation\n");
5340 res = 0;
5341 }
5342 } else
5343 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5344 int prop_is_valid;
5345 has_type = 1;
5346 prop_is_valid = ast_ari_validate_string(
5348 if (!prop_is_valid) {
5349 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field type failed validation\n");
5350 res = 0;
5351 }
5352 } else
5353 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5354 int prop_is_valid;
5355 has_application = 1;
5356 prop_is_valid = ast_ari_validate_string(
5358 if (!prop_is_valid) {
5359 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field application failed validation\n");
5360 res = 0;
5361 }
5362 } else
5363 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5364 int prop_is_valid;
5365 has_timestamp = 1;
5366 prop_is_valid = ast_ari_validate_date(
5368 if (!prop_is_valid) {
5369 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field timestamp failed validation\n");
5370 res = 0;
5371 }
5372 } else
5373 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5374 int prop_is_valid;
5375 has_channel = 1;
5376 prop_is_valid = ast_ari_validate_channel(
5378 if (!prop_is_valid) {
5379 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field channel failed validation\n");
5380 res = 0;
5381 }
5382 } else
5383 {
5385 "ARI ChannelTalkingStarted has undocumented field %s\n",
5387 res = 0;
5388 }
5389 }
5390
5391 if (!has_type) {
5392 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted missing required field type\n");
5393 res = 0;
5394 }
5395
5396 if (!has_application) {
5397 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted missing required field application\n");
5398 res = 0;
5399 }
5400
5401 if (!has_timestamp) {
5402 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted missing required field timestamp\n");
5403 res = 0;
5404 }
5405
5406 if (!has_channel) {
5407 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted missing required field channel\n");
5408 res = 0;
5409 }
5410
5411 return res;
5412}
5413
5418
5420{
5421 int res = 1;
5422 struct ast_json_iter *iter;
5423 int has_type = 0;
5424 int has_application = 0;
5425 int has_timestamp = 0;
5426 int has_channel = 0;
5427
5428 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5429 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5430 int prop_is_valid;
5431 prop_is_valid = ast_ari_validate_string(
5433 if (!prop_is_valid) {
5434 ast_log(LOG_ERROR, "ARI ChannelToneDetected field asterisk_id failed validation\n");
5435 res = 0;
5436 }
5437 } else
5438 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5439 int prop_is_valid;
5440 has_type = 1;
5441 prop_is_valid = ast_ari_validate_string(
5443 if (!prop_is_valid) {
5444 ast_log(LOG_ERROR, "ARI ChannelToneDetected field type failed validation\n");
5445 res = 0;
5446 }
5447 } else
5448 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5449 int prop_is_valid;
5450 has_application = 1;
5451 prop_is_valid = ast_ari_validate_string(
5453 if (!prop_is_valid) {
5454 ast_log(LOG_ERROR, "ARI ChannelToneDetected field application failed validation\n");
5455 res = 0;
5456 }
5457 } else
5458 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5459 int prop_is_valid;
5460 has_timestamp = 1;
5461 prop_is_valid = ast_ari_validate_date(
5463 if (!prop_is_valid) {
5464 ast_log(LOG_ERROR, "ARI ChannelToneDetected field timestamp failed validation\n");
5465 res = 0;
5466 }
5467 } else
5468 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5469 int prop_is_valid;
5470 has_channel = 1;
5471 prop_is_valid = ast_ari_validate_channel(
5473 if (!prop_is_valid) {
5474 ast_log(LOG_ERROR, "ARI ChannelToneDetected field channel failed validation\n");
5475 res = 0;
5476 }
5477 } else
5478 {
5480 "ARI ChannelToneDetected has undocumented field %s\n",
5482 res = 0;
5483 }
5484 }
5485
5486 if (!has_type) {
5487 ast_log(LOG_ERROR, "ARI ChannelToneDetected missing required field type\n");
5488 res = 0;
5489 }
5490
5491 if (!has_application) {
5492 ast_log(LOG_ERROR, "ARI ChannelToneDetected missing required field application\n");
5493 res = 0;
5494 }
5495
5496 if (!has_timestamp) {
5497 ast_log(LOG_ERROR, "ARI ChannelToneDetected missing required field timestamp\n");
5498 res = 0;
5499 }
5500
5501 if (!has_channel) {
5502 ast_log(LOG_ERROR, "ARI ChannelToneDetected missing required field channel\n");
5503 res = 0;
5504 }
5505
5506 return res;
5507}
5508
5513
5515{
5516 int res = 1;
5517 struct ast_json_iter *iter;
5518 int has_type = 0;
5519 int has_application = 0;
5520 int has_timestamp = 0;
5521 int has_refer_to = 0;
5522 int has_referred_by = 0;
5523
5524 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5525 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5526 int prop_is_valid;
5527 prop_is_valid = ast_ari_validate_string(
5529 if (!prop_is_valid) {
5530 ast_log(LOG_ERROR, "ARI ChannelTransfer field asterisk_id failed validation\n");
5531 res = 0;
5532 }
5533 } else
5534 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5535 int prop_is_valid;
5536 has_type = 1;
5537 prop_is_valid = ast_ari_validate_string(
5539 if (!prop_is_valid) {
5540 ast_log(LOG_ERROR, "ARI ChannelTransfer field type failed validation\n");
5541 res = 0;
5542 }
5543 } else
5544 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5545 int prop_is_valid;
5546 has_application = 1;
5547 prop_is_valid = ast_ari_validate_string(
5549 if (!prop_is_valid) {
5550 ast_log(LOG_ERROR, "ARI ChannelTransfer field application failed validation\n");
5551 res = 0;
5552 }
5553 } else
5554 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5555 int prop_is_valid;
5556 has_timestamp = 1;
5557 prop_is_valid = ast_ari_validate_date(
5559 if (!prop_is_valid) {
5560 ast_log(LOG_ERROR, "ARI ChannelTransfer field timestamp failed validation\n");
5561 res = 0;
5562 }
5563 } else
5564 if (strcmp("refer_to", ast_json_object_iter_key(iter)) == 0) {
5565 int prop_is_valid;
5566 has_refer_to = 1;
5567 prop_is_valid = ast_ari_validate_refer_to(
5569 if (!prop_is_valid) {
5570 ast_log(LOG_ERROR, "ARI ChannelTransfer field refer_to failed validation\n");
5571 res = 0;
5572 }
5573 } else
5574 if (strcmp("referred_by", ast_json_object_iter_key(iter)) == 0) {
5575 int prop_is_valid;
5576 has_referred_by = 1;
5577 prop_is_valid = ast_ari_validate_referred_by(
5579 if (!prop_is_valid) {
5580 ast_log(LOG_ERROR, "ARI ChannelTransfer field referred_by failed validation\n");
5581 res = 0;
5582 }
5583 } else
5584 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
5585 int prop_is_valid;
5586 prop_is_valid = ast_ari_validate_string(
5588 if (!prop_is_valid) {
5589 ast_log(LOG_ERROR, "ARI ChannelTransfer field state failed validation\n");
5590 res = 0;
5591 }
5592 } else
5593 {
5595 "ARI ChannelTransfer has undocumented field %s\n",
5597 res = 0;
5598 }
5599 }
5600
5601 if (!has_type) {
5602 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field type\n");
5603 res = 0;
5604 }
5605
5606 if (!has_application) {
5607 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field application\n");
5608 res = 0;
5609 }
5610
5611 if (!has_timestamp) {
5612 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field timestamp\n");
5613 res = 0;
5614 }
5615
5616 if (!has_refer_to) {
5617 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field refer_to\n");
5618 res = 0;
5619 }
5620
5621 if (!has_referred_by) {
5622 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field referred_by\n");
5623 res = 0;
5624 }
5625
5626 return res;
5627}
5628
5633
5635{
5636 int res = 1;
5637 struct ast_json_iter *iter;
5638 int has_type = 0;
5639 int has_application = 0;
5640 int has_timestamp = 0;
5641 int has_channel = 0;
5642
5643 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5644 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5645 int prop_is_valid;
5646 prop_is_valid = ast_ari_validate_string(
5648 if (!prop_is_valid) {
5649 ast_log(LOG_ERROR, "ARI ChannelUnhold field asterisk_id failed validation\n");
5650 res = 0;
5651 }
5652 } else
5653 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5654 int prop_is_valid;
5655 has_type = 1;
5656 prop_is_valid = ast_ari_validate_string(
5658 if (!prop_is_valid) {
5659 ast_log(LOG_ERROR, "ARI ChannelUnhold field type failed validation\n");
5660 res = 0;
5661 }
5662 } else
5663 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5664 int prop_is_valid;
5665 has_application = 1;
5666 prop_is_valid = ast_ari_validate_string(
5668 if (!prop_is_valid) {
5669 ast_log(LOG_ERROR, "ARI ChannelUnhold field application failed validation\n");
5670 res = 0;
5671 }
5672 } else
5673 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5674 int prop_is_valid;
5675 has_timestamp = 1;
5676 prop_is_valid = ast_ari_validate_date(
5678 if (!prop_is_valid) {
5679 ast_log(LOG_ERROR, "ARI ChannelUnhold field timestamp failed validation\n");
5680 res = 0;
5681 }
5682 } else
5683 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5684 int prop_is_valid;
5685 has_channel = 1;
5686 prop_is_valid = ast_ari_validate_channel(
5688 if (!prop_is_valid) {
5689 ast_log(LOG_ERROR, "ARI ChannelUnhold field channel failed validation\n");
5690 res = 0;
5691 }
5692 } else
5693 {
5695 "ARI ChannelUnhold has undocumented field %s\n",
5697 res = 0;
5698 }
5699 }
5700
5701 if (!has_type) {
5702 ast_log(LOG_ERROR, "ARI ChannelUnhold missing required field type\n");
5703 res = 0;
5704 }
5705
5706 if (!has_application) {
5707 ast_log(LOG_ERROR, "ARI ChannelUnhold missing required field application\n");
5708 res = 0;
5709 }
5710
5711 if (!has_timestamp) {
5712 ast_log(LOG_ERROR, "ARI ChannelUnhold missing required field timestamp\n");
5713 res = 0;
5714 }
5715
5716 if (!has_channel) {
5717 ast_log(LOG_ERROR, "ARI ChannelUnhold missing required field channel\n");
5718 res = 0;
5719 }
5720
5721 return res;
5722}
5723
5728
5730{
5731 int res = 1;
5732 struct ast_json_iter *iter;
5733 int has_type = 0;
5734 int has_application = 0;
5735 int has_timestamp = 0;
5736 int has_eventname = 0;
5737 int has_userevent = 0;
5738
5739 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5740 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5741 int prop_is_valid;
5742 prop_is_valid = ast_ari_validate_string(
5744 if (!prop_is_valid) {
5745 ast_log(LOG_ERROR, "ARI ChannelUserevent field asterisk_id failed validation\n");
5746 res = 0;
5747 }
5748 } else
5749 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5750 int prop_is_valid;
5751 has_type = 1;
5752 prop_is_valid = ast_ari_validate_string(
5754 if (!prop_is_valid) {
5755 ast_log(LOG_ERROR, "ARI ChannelUserevent field type failed validation\n");
5756 res = 0;
5757 }
5758 } else
5759 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5760 int prop_is_valid;
5761 has_application = 1;
5762 prop_is_valid = ast_ari_validate_string(
5764 if (!prop_is_valid) {
5765 ast_log(LOG_ERROR, "ARI ChannelUserevent field application failed validation\n");
5766 res = 0;
5767 }
5768 } else
5769 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5770 int prop_is_valid;
5771 has_timestamp = 1;
5772 prop_is_valid = ast_ari_validate_date(
5774 if (!prop_is_valid) {
5775 ast_log(LOG_ERROR, "ARI ChannelUserevent field timestamp failed validation\n");
5776 res = 0;
5777 }
5778 } else
5779 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
5780 int prop_is_valid;
5781 prop_is_valid = ast_ari_validate_bridge(
5783 if (!prop_is_valid) {
5784 ast_log(LOG_ERROR, "ARI ChannelUserevent field bridge failed validation\n");
5785 res = 0;
5786 }
5787 } else
5788 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5789 int prop_is_valid;
5790 prop_is_valid = ast_ari_validate_channel(
5792 if (!prop_is_valid) {
5793 ast_log(LOG_ERROR, "ARI ChannelUserevent field channel failed validation\n");
5794 res = 0;
5795 }
5796 } else
5797 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
5798 int prop_is_valid;
5799 prop_is_valid = ast_ari_validate_endpoint(
5801 if (!prop_is_valid) {
5802 ast_log(LOG_ERROR, "ARI ChannelUserevent field endpoint failed validation\n");
5803 res = 0;
5804 }
5805 } else
5806 if (strcmp("eventname", ast_json_object_iter_key(iter)) == 0) {
5807 int prop_is_valid;
5808 has_eventname = 1;
5809 prop_is_valid = ast_ari_validate_string(
5811 if (!prop_is_valid) {
5812 ast_log(LOG_ERROR, "ARI ChannelUserevent field eventname failed validation\n");
5813 res = 0;
5814 }
5815 } else
5816 if (strcmp("userevent", ast_json_object_iter_key(iter)) == 0) {
5817 int prop_is_valid;
5818 has_userevent = 1;
5819 prop_is_valid = ast_ari_validate_object(
5821 if (!prop_is_valid) {
5822 ast_log(LOG_ERROR, "ARI ChannelUserevent field userevent failed validation\n");
5823 res = 0;
5824 }
5825 } else
5826 {
5828 "ARI ChannelUserevent has undocumented field %s\n",
5830 res = 0;
5831 }
5832 }
5833
5834 if (!has_type) {
5835 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field type\n");
5836 res = 0;
5837 }
5838
5839 if (!has_application) {
5840 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field application\n");
5841 res = 0;
5842 }
5843
5844 if (!has_timestamp) {
5845 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field timestamp\n");
5846 res = 0;
5847 }
5848
5849 if (!has_eventname) {
5850 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field eventname\n");
5851 res = 0;
5852 }
5853
5854 if (!has_userevent) {
5855 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field userevent\n");
5856 res = 0;
5857 }
5858
5859 return res;
5860}
5861
5866
5868{
5869 int res = 1;
5870 struct ast_json_iter *iter;
5871 int has_type = 0;
5872 int has_application = 0;
5873 int has_timestamp = 0;
5874 int has_value = 0;
5875 int has_variable = 0;
5876
5877 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5878 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5879 int prop_is_valid;
5880 prop_is_valid = ast_ari_validate_string(
5882 if (!prop_is_valid) {
5883 ast_log(LOG_ERROR, "ARI ChannelVarset field asterisk_id failed validation\n");
5884 res = 0;
5885 }
5886 } else
5887 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5888 int prop_is_valid;
5889 has_type = 1;
5890 prop_is_valid = ast_ari_validate_string(
5892 if (!prop_is_valid) {
5893 ast_log(LOG_ERROR, "ARI ChannelVarset field type failed validation\n");
5894 res = 0;
5895 }
5896 } else
5897 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5898 int prop_is_valid;
5899 has_application = 1;
5900 prop_is_valid = ast_ari_validate_string(
5902 if (!prop_is_valid) {
5903 ast_log(LOG_ERROR, "ARI ChannelVarset field application failed validation\n");
5904 res = 0;
5905 }
5906 } else
5907 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5908 int prop_is_valid;
5909 has_timestamp = 1;
5910 prop_is_valid = ast_ari_validate_date(
5912 if (!prop_is_valid) {
5913 ast_log(LOG_ERROR, "ARI ChannelVarset field timestamp failed validation\n");
5914 res = 0;
5915 }
5916 } else
5917 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5918 int prop_is_valid;
5919 prop_is_valid = ast_ari_validate_channel(
5921 if (!prop_is_valid) {
5922 ast_log(LOG_ERROR, "ARI ChannelVarset field channel failed validation\n");
5923 res = 0;
5924 }
5925 } else
5926 if (strcmp("value", ast_json_object_iter_key(iter)) == 0) {
5927 int prop_is_valid;
5928 has_value = 1;
5929 prop_is_valid = ast_ari_validate_string(
5931 if (!prop_is_valid) {
5932 ast_log(LOG_ERROR, "ARI ChannelVarset field value failed validation\n");
5933 res = 0;
5934 }
5935 } else
5936 if (strcmp("variable", ast_json_object_iter_key(iter)) == 0) {
5937 int prop_is_valid;
5938 has_variable = 1;
5939 prop_is_valid = ast_ari_validate_string(
5941 if (!prop_is_valid) {
5942 ast_log(LOG_ERROR, "ARI ChannelVarset field variable failed validation\n");
5943 res = 0;
5944 }
5945 } else
5946 {
5948 "ARI ChannelVarset has undocumented field %s\n",
5950 res = 0;
5951 }
5952 }
5953
5954 if (!has_type) {
5955 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field type\n");
5956 res = 0;
5957 }
5958
5959 if (!has_application) {
5960 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field application\n");
5961 res = 0;
5962 }
5963
5964 if (!has_timestamp) {
5965 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field timestamp\n");
5966 res = 0;
5967 }
5968
5969 if (!has_value) {
5970 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field value\n");
5971 res = 0;
5972 }
5973
5974 if (!has_variable) {
5975 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field variable\n");
5976 res = 0;
5977 }
5978
5979 return res;
5980}
5981
5986
5988{
5989 int res = 1;
5990 struct ast_json_iter *iter;
5991 int has_aor = 0;
5992 int has_contact_status = 0;
5993 int has_uri = 0;
5994
5995 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5996 if (strcmp("aor", ast_json_object_iter_key(iter)) == 0) {
5997 int prop_is_valid;
5998 has_aor = 1;
5999 prop_is_valid = ast_ari_validate_string(
6001 if (!prop_is_valid) {
6002 ast_log(LOG_ERROR, "ARI ContactInfo field aor failed validation\n");
6003 res = 0;
6004 }
6005 } else
6006 if (strcmp("contact_status", ast_json_object_iter_key(iter)) == 0) {
6007 int prop_is_valid;
6008 has_contact_status = 1;
6009 prop_is_valid = ast_ari_validate_string(
6011 if (!prop_is_valid) {
6012 ast_log(LOG_ERROR, "ARI ContactInfo field contact_status failed validation\n");
6013 res = 0;
6014 }
6015 } else
6016 if (strcmp("roundtrip_usec", ast_json_object_iter_key(iter)) == 0) {
6017 int prop_is_valid;
6018 prop_is_valid = ast_ari_validate_string(
6020 if (!prop_is_valid) {
6021 ast_log(LOG_ERROR, "ARI ContactInfo field roundtrip_usec failed validation\n");
6022 res = 0;
6023 }
6024 } else
6025 if (strcmp("uri", ast_json_object_iter_key(iter)) == 0) {
6026 int prop_is_valid;
6027 has_uri = 1;
6028 prop_is_valid = ast_ari_validate_string(
6030 if (!prop_is_valid) {
6031 ast_log(LOG_ERROR, "ARI ContactInfo field uri failed validation\n");
6032 res = 0;
6033 }
6034 } else
6035 {
6037 "ARI ContactInfo has undocumented field %s\n",
6039 res = 0;
6040 }
6041 }
6042
6043 if (!has_aor) {
6044 ast_log(LOG_ERROR, "ARI ContactInfo missing required field aor\n");
6045 res = 0;
6046 }
6047
6048 if (!has_contact_status) {
6049 ast_log(LOG_ERROR, "ARI ContactInfo missing required field contact_status\n");
6050 res = 0;
6051 }
6052
6053 if (!has_uri) {
6054 ast_log(LOG_ERROR, "ARI ContactInfo missing required field uri\n");
6055 res = 0;
6056 }
6057
6058 return res;
6059}
6060
6065
6067{
6068 int res = 1;
6069 struct ast_json_iter *iter;
6070 int has_type = 0;
6071 int has_application = 0;
6072 int has_timestamp = 0;
6073 int has_contact_info = 0;
6074 int has_endpoint = 0;
6075
6076 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6077 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6078 int prop_is_valid;
6079 prop_is_valid = ast_ari_validate_string(
6081 if (!prop_is_valid) {
6082 ast_log(LOG_ERROR, "ARI ContactStatusChange field asterisk_id failed validation\n");
6083 res = 0;
6084 }
6085 } else
6086 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6087 int prop_is_valid;
6088 has_type = 1;
6089 prop_is_valid = ast_ari_validate_string(
6091 if (!prop_is_valid) {
6092 ast_log(LOG_ERROR, "ARI ContactStatusChange field type failed validation\n");
6093 res = 0;
6094 }
6095 } else
6096 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6097 int prop_is_valid;
6098 has_application = 1;
6099 prop_is_valid = ast_ari_validate_string(
6101 if (!prop_is_valid) {
6102 ast_log(LOG_ERROR, "ARI ContactStatusChange field application failed validation\n");
6103 res = 0;
6104 }
6105 } else
6106 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6107 int prop_is_valid;
6108 has_timestamp = 1;
6109 prop_is_valid = ast_ari_validate_date(
6111 if (!prop_is_valid) {
6112 ast_log(LOG_ERROR, "ARI ContactStatusChange field timestamp failed validation\n");
6113 res = 0;
6114 }
6115 } else
6116 if (strcmp("contact_info", ast_json_object_iter_key(iter)) == 0) {
6117 int prop_is_valid;
6118 has_contact_info = 1;
6119 prop_is_valid = ast_ari_validate_contact_info(
6121 if (!prop_is_valid) {
6122 ast_log(LOG_ERROR, "ARI ContactStatusChange field contact_info failed validation\n");
6123 res = 0;
6124 }
6125 } else
6126 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
6127 int prop_is_valid;
6128 has_endpoint = 1;
6129 prop_is_valid = ast_ari_validate_endpoint(
6131 if (!prop_is_valid) {
6132 ast_log(LOG_ERROR, "ARI ContactStatusChange field endpoint failed validation\n");
6133 res = 0;
6134 }
6135 } else
6136 {
6138 "ARI ContactStatusChange has undocumented field %s\n",
6140 res = 0;
6141 }
6142 }
6143
6144 if (!has_type) {
6145 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field type\n");
6146 res = 0;
6147 }
6148
6149 if (!has_application) {
6150 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field application\n");
6151 res = 0;
6152 }
6153
6154 if (!has_timestamp) {
6155 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field timestamp\n");
6156 res = 0;
6157 }
6158
6159 if (!has_contact_info) {
6160 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field contact_info\n");
6161 res = 0;
6162 }
6163
6164 if (!has_endpoint) {
6165 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field endpoint\n");
6166 res = 0;
6167 }
6168
6169 return res;
6170}
6171
6176
6178{
6179 int res = 1;
6180 struct ast_json_iter *iter;
6181 int has_type = 0;
6182 int has_application = 0;
6183 int has_timestamp = 0;
6184 int has_device_state = 0;
6185
6186 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6187 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6188 int prop_is_valid;
6189 prop_is_valid = ast_ari_validate_string(
6191 if (!prop_is_valid) {
6192 ast_log(LOG_ERROR, "ARI DeviceStateChanged field asterisk_id failed validation\n");
6193 res = 0;
6194 }
6195 } else
6196 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6197 int prop_is_valid;
6198 has_type = 1;
6199 prop_is_valid = ast_ari_validate_string(
6201 if (!prop_is_valid) {
6202 ast_log(LOG_ERROR, "ARI DeviceStateChanged field type failed validation\n");
6203 res = 0;
6204 }
6205 } else
6206 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6207 int prop_is_valid;
6208 has_application = 1;
6209 prop_is_valid = ast_ari_validate_string(
6211 if (!prop_is_valid) {
6212 ast_log(LOG_ERROR, "ARI DeviceStateChanged field application failed validation\n");
6213 res = 0;
6214 }
6215 } else
6216 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6217 int prop_is_valid;
6218 has_timestamp = 1;
6219 prop_is_valid = ast_ari_validate_date(
6221 if (!prop_is_valid) {
6222 ast_log(LOG_ERROR, "ARI DeviceStateChanged field timestamp failed validation\n");
6223 res = 0;
6224 }
6225 } else
6226 if (strcmp("device_state", ast_json_object_iter_key(iter)) == 0) {
6227 int prop_is_valid;
6228 has_device_state = 1;
6229 prop_is_valid = ast_ari_validate_device_state(
6231 if (!prop_is_valid) {
6232 ast_log(LOG_ERROR, "ARI DeviceStateChanged field device_state failed validation\n");
6233 res = 0;
6234 }
6235 } else
6236 {
6238 "ARI DeviceStateChanged has undocumented field %s\n",
6240 res = 0;
6241 }
6242 }
6243
6244 if (!has_type) {
6245 ast_log(LOG_ERROR, "ARI DeviceStateChanged missing required field type\n");
6246 res = 0;
6247 }
6248
6249 if (!has_application) {
6250 ast_log(LOG_ERROR, "ARI DeviceStateChanged missing required field application\n");
6251 res = 0;
6252 }
6253
6254 if (!has_timestamp) {
6255 ast_log(LOG_ERROR, "ARI DeviceStateChanged missing required field timestamp\n");
6256 res = 0;
6257 }
6258
6259 if (!has_device_state) {
6260 ast_log(LOG_ERROR, "ARI DeviceStateChanged missing required field device_state\n");
6261 res = 0;
6262 }
6263
6264 return res;
6265}
6266
6271
6273{
6274 int res = 1;
6275 struct ast_json_iter *iter;
6276 int has_type = 0;
6277 int has_application = 0;
6278 int has_timestamp = 0;
6279 int has_dialstatus = 0;
6280 int has_peer = 0;
6281
6282 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6283 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6284 int prop_is_valid;
6285 prop_is_valid = ast_ari_validate_string(
6287 if (!prop_is_valid) {
6288 ast_log(LOG_ERROR, "ARI Dial field asterisk_id failed validation\n");
6289 res = 0;
6290 }
6291 } else
6292 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6293 int prop_is_valid;
6294 has_type = 1;
6295 prop_is_valid = ast_ari_validate_string(
6297 if (!prop_is_valid) {
6298 ast_log(LOG_ERROR, "ARI Dial field type failed validation\n");
6299 res = 0;
6300 }
6301 } else
6302 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6303 int prop_is_valid;
6304 has_application = 1;
6305 prop_is_valid = ast_ari_validate_string(
6307 if (!prop_is_valid) {
6308 ast_log(LOG_ERROR, "ARI Dial field application failed validation\n");
6309 res = 0;
6310 }
6311 } else
6312 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6313 int prop_is_valid;
6314 has_timestamp = 1;
6315 prop_is_valid = ast_ari_validate_date(
6317 if (!prop_is_valid) {
6318 ast_log(LOG_ERROR, "ARI Dial field timestamp failed validation\n");
6319 res = 0;
6320 }
6321 } else
6322 if (strcmp("caller", ast_json_object_iter_key(iter)) == 0) {
6323 int prop_is_valid;
6324 prop_is_valid = ast_ari_validate_channel(
6326 if (!prop_is_valid) {
6327 ast_log(LOG_ERROR, "ARI Dial field caller failed validation\n");
6328 res = 0;
6329 }
6330 } else
6331 if (strcmp("dialstatus", ast_json_object_iter_key(iter)) == 0) {
6332 int prop_is_valid;
6333 has_dialstatus = 1;
6334 prop_is_valid = ast_ari_validate_string(
6336 if (!prop_is_valid) {
6337 ast_log(LOG_ERROR, "ARI Dial field dialstatus failed validation\n");
6338 res = 0;
6339 }
6340 } else
6341 if (strcmp("dialstring", ast_json_object_iter_key(iter)) == 0) {
6342 int prop_is_valid;
6343 prop_is_valid = ast_ari_validate_string(
6345 if (!prop_is_valid) {
6346 ast_log(LOG_ERROR, "ARI Dial field dialstring failed validation\n");
6347 res = 0;
6348 }
6349 } else
6350 if (strcmp("forward", ast_json_object_iter_key(iter)) == 0) {
6351 int prop_is_valid;
6352 prop_is_valid = ast_ari_validate_string(
6354 if (!prop_is_valid) {
6355 ast_log(LOG_ERROR, "ARI Dial field forward failed validation\n");
6356 res = 0;
6357 }
6358 } else
6359 if (strcmp("forwarded", ast_json_object_iter_key(iter)) == 0) {
6360 int prop_is_valid;
6361 prop_is_valid = ast_ari_validate_channel(
6363 if (!prop_is_valid) {
6364 ast_log(LOG_ERROR, "ARI Dial field forwarded failed validation\n");
6365 res = 0;
6366 }
6367 } else
6368 if (strcmp("peer", ast_json_object_iter_key(iter)) == 0) {
6369 int prop_is_valid;
6370 has_peer = 1;
6371 prop_is_valid = ast_ari_validate_channel(
6373 if (!prop_is_valid) {
6374 ast_log(LOG_ERROR, "ARI Dial field peer failed validation\n");
6375 res = 0;
6376 }
6377 } else
6378 {
6380 "ARI Dial has undocumented field %s\n",
6382 res = 0;
6383 }
6384 }
6385
6386 if (!has_type) {
6387 ast_log(LOG_ERROR, "ARI Dial missing required field type\n");
6388 res = 0;
6389 }
6390
6391 if (!has_application) {
6392 ast_log(LOG_ERROR, "ARI Dial missing required field application\n");
6393 res = 0;
6394 }
6395
6396 if (!has_timestamp) {
6397 ast_log(LOG_ERROR, "ARI Dial missing required field timestamp\n");
6398 res = 0;
6399 }
6400
6401 if (!has_dialstatus) {
6402 ast_log(LOG_ERROR, "ARI Dial missing required field dialstatus\n");
6403 res = 0;
6404 }
6405
6406 if (!has_peer) {
6407 ast_log(LOG_ERROR, "ARI Dial missing required field peer\n");
6408 res = 0;
6409 }
6410
6411 return res;
6412}
6413
6418
6420{
6421 int res = 1;
6422 struct ast_json_iter *iter;
6423 int has_type = 0;
6424 int has_application = 0;
6425 int has_timestamp = 0;
6426 int has_endpoint = 0;
6427
6428 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6429 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6430 int prop_is_valid;
6431 prop_is_valid = ast_ari_validate_string(
6433 if (!prop_is_valid) {
6434 ast_log(LOG_ERROR, "ARI EndpointStateChange field asterisk_id failed validation\n");
6435 res = 0;
6436 }
6437 } else
6438 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6439 int prop_is_valid;
6440 has_type = 1;
6441 prop_is_valid = ast_ari_validate_string(
6443 if (!prop_is_valid) {
6444 ast_log(LOG_ERROR, "ARI EndpointStateChange field type failed validation\n");
6445 res = 0;
6446 }
6447 } else
6448 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6449 int prop_is_valid;
6450 has_application = 1;
6451 prop_is_valid = ast_ari_validate_string(
6453 if (!prop_is_valid) {
6454 ast_log(LOG_ERROR, "ARI EndpointStateChange field application failed validation\n");
6455 res = 0;
6456 }
6457 } else
6458 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6459 int prop_is_valid;
6460 has_timestamp = 1;
6461 prop_is_valid = ast_ari_validate_date(
6463 if (!prop_is_valid) {
6464 ast_log(LOG_ERROR, "ARI EndpointStateChange field timestamp failed validation\n");
6465 res = 0;
6466 }
6467 } else
6468 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
6469 int prop_is_valid;
6470 has_endpoint = 1;
6471 prop_is_valid = ast_ari_validate_endpoint(
6473 if (!prop_is_valid) {
6474 ast_log(LOG_ERROR, "ARI EndpointStateChange field endpoint failed validation\n");
6475 res = 0;
6476 }
6477 } else
6478 {
6480 "ARI EndpointStateChange has undocumented field %s\n",
6482 res = 0;
6483 }
6484 }
6485
6486 if (!has_type) {
6487 ast_log(LOG_ERROR, "ARI EndpointStateChange missing required field type\n");
6488 res = 0;
6489 }
6490
6491 if (!has_application) {
6492 ast_log(LOG_ERROR, "ARI EndpointStateChange missing required field application\n");
6493 res = 0;
6494 }
6495
6496 if (!has_timestamp) {
6497 ast_log(LOG_ERROR, "ARI EndpointStateChange missing required field timestamp\n");
6498 res = 0;
6499 }
6500
6501 if (!has_endpoint) {
6502 ast_log(LOG_ERROR, "ARI EndpointStateChange missing required field endpoint\n");
6503 res = 0;
6504 }
6505
6506 return res;
6507}
6508
6513
6515{
6516 int res = 1;
6517 struct ast_json_iter *iter;
6518 int has_type = 0;
6519 int has_application = 0;
6520 int has_timestamp = 0;
6521 const char *discriminator;
6522
6523 discriminator = ast_json_string_get(ast_json_object_get(json, "type"));
6524 if (!discriminator) {
6525 ast_log(LOG_ERROR, "ARI Event missing required field type\n");
6526 return 0;
6527 }
6528
6529 if (strcmp("Event", discriminator) == 0) {
6530 /* Self type; fall through */
6531 } else
6532 if (strcmp("ApplicationMoveFailed", discriminator) == 0) {
6534 } else
6535 if (strcmp("ApplicationRegistered", discriminator) == 0) {
6537 } else
6538 if (strcmp("ApplicationReplaced", discriminator) == 0) {
6540 } else
6541 if (strcmp("ApplicationUnregistered", discriminator) == 0) {
6543 } else
6544 if (strcmp("BridgeAttendedTransfer", discriminator) == 0) {
6546 } else
6547 if (strcmp("BridgeBlindTransfer", discriminator) == 0) {
6549 } else
6550 if (strcmp("BridgeCreated", discriminator) == 0) {
6552 } else
6553 if (strcmp("BridgeDestroyed", discriminator) == 0) {
6555 } else
6556 if (strcmp("BridgeMerged", discriminator) == 0) {
6557 return ast_ari_validate_bridge_merged(json);
6558 } else
6559 if (strcmp("BridgeVideoSourceChanged", discriminator) == 0) {
6561 } else
6562 if (strcmp("CallBroadcast", discriminator) == 0) {
6564 } else
6565 if (strcmp("CallClaimed", discriminator) == 0) {
6566 return ast_ari_validate_call_claimed(json);
6567 } else
6568 if (strcmp("ChannelCallerId", discriminator) == 0) {
6570 } else
6571 if (strcmp("ChannelConnectedLine", discriminator) == 0) {
6573 } else
6574 if (strcmp("ChannelCreated", discriminator) == 0) {
6576 } else
6577 if (strcmp("ChannelDestroyed", discriminator) == 0) {
6579 } else
6580 if (strcmp("ChannelDialplan", discriminator) == 0) {
6582 } else
6583 if (strcmp("ChannelDtmfReceived", discriminator) == 0) {
6585 } else
6586 if (strcmp("ChannelEnteredBridge", discriminator) == 0) {
6588 } else
6589 if (strcmp("ChannelHangupRequest", discriminator) == 0) {
6591 } else
6592 if (strcmp("ChannelHold", discriminator) == 0) {
6593 return ast_ari_validate_channel_hold(json);
6594 } else
6595 if (strcmp("ChannelLeftBridge", discriminator) == 0) {
6597 } else
6598 if (strcmp("ChannelStateChange", discriminator) == 0) {
6600 } else
6601 if (strcmp("ChannelTalkingFinished", discriminator) == 0) {
6603 } else
6604 if (strcmp("ChannelTalkingStarted", discriminator) == 0) {
6606 } else
6607 if (strcmp("ChannelToneDetected", discriminator) == 0) {
6609 } else
6610 if (strcmp("ChannelTransfer", discriminator) == 0) {
6612 } else
6613 if (strcmp("ChannelUnhold", discriminator) == 0) {
6615 } else
6616 if (strcmp("ChannelUserevent", discriminator) == 0) {
6618 } else
6619 if (strcmp("ChannelVarset", discriminator) == 0) {
6621 } else
6622 if (strcmp("ContactStatusChange", discriminator) == 0) {
6624 } else
6625 if (strcmp("DeviceStateChanged", discriminator) == 0) {
6627 } else
6628 if (strcmp("Dial", discriminator) == 0) {
6629 return ast_ari_validate_dial(json);
6630 } else
6631 if (strcmp("EndpointStateChange", discriminator) == 0) {
6633 } else
6634 if (strcmp("PeerStatusChange", discriminator) == 0) {
6636 } else
6637 if (strcmp("PlaybackContinuing", discriminator) == 0) {
6639 } else
6640 if (strcmp("PlaybackFinished", discriminator) == 0) {
6642 } else
6643 if (strcmp("PlaybackStarted", discriminator) == 0) {
6645 } else
6646 if (strcmp("RESTResponse", discriminator) == 0) {
6647 return ast_ari_validate_restresponse(json);
6648 } else
6649 if (strcmp("RecordingFailed", discriminator) == 0) {
6651 } else
6652 if (strcmp("RecordingFinished", discriminator) == 0) {
6654 } else
6655 if (strcmp("RecordingStarted", discriminator) == 0) {
6657 } else
6658 if (strcmp("StasisEnd", discriminator) == 0) {
6659 return ast_ari_validate_stasis_end(json);
6660 } else
6661 if (strcmp("StasisStart", discriminator) == 0) {
6662 return ast_ari_validate_stasis_start(json);
6663 } else
6664 if (strcmp("TextMessageReceived", discriminator) == 0) {
6666 } else
6667 {
6668 ast_log(LOG_ERROR, "ARI Event has undocumented subtype %s\n",
6669 discriminator);
6670 res = 0;
6671 }
6672
6673 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6674 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6675 int prop_is_valid;
6676 prop_is_valid = ast_ari_validate_string(
6678 if (!prop_is_valid) {
6679 ast_log(LOG_ERROR, "ARI Event field asterisk_id failed validation\n");
6680 res = 0;
6681 }
6682 } else
6683 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6684 int prop_is_valid;
6685 has_type = 1;
6686 prop_is_valid = ast_ari_validate_string(
6688 if (!prop_is_valid) {
6689 ast_log(LOG_ERROR, "ARI Event field type failed validation\n");
6690 res = 0;
6691 }
6692 } else
6693 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6694 int prop_is_valid;
6695 has_application = 1;
6696 prop_is_valid = ast_ari_validate_string(
6698 if (!prop_is_valid) {
6699 ast_log(LOG_ERROR, "ARI Event field application failed validation\n");
6700 res = 0;
6701 }
6702 } else
6703 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6704 int prop_is_valid;
6705 has_timestamp = 1;
6706 prop_is_valid = ast_ari_validate_date(
6708 if (!prop_is_valid) {
6709 ast_log(LOG_ERROR, "ARI Event field timestamp failed validation\n");
6710 res = 0;
6711 }
6712 } else
6713 {
6715 "ARI Event has undocumented field %s\n",
6717 res = 0;
6718 }
6719 }
6720
6721 if (!has_type) {
6722 ast_log(LOG_ERROR, "ARI Event missing required field type\n");
6723 res = 0;
6724 }
6725
6726 if (!has_application) {
6727 ast_log(LOG_ERROR, "ARI Event missing required field application\n");
6728 res = 0;
6729 }
6730
6731 if (!has_timestamp) {
6732 ast_log(LOG_ERROR, "ARI Event missing required field timestamp\n");
6733 res = 0;
6734 }
6735
6736 return res;
6737}
6738
6743
6745{
6746 int res = 1;
6747 struct ast_json_iter *iter;
6748 int has_type = 0;
6749 const char *discriminator;
6750
6751 discriminator = ast_json_string_get(ast_json_object_get(json, "type"));
6752 if (!discriminator) {
6753 ast_log(LOG_ERROR, "ARI Message missing required field type\n");
6754 return 0;
6755 }
6756
6757 if (strcmp("Message", discriminator) == 0) {
6758 /* Self type; fall through */
6759 } else
6760 if (strcmp("ApplicationMoveFailed", discriminator) == 0) {
6762 } else
6763 if (strcmp("ApplicationRegistered", discriminator) == 0) {
6765 } else
6766 if (strcmp("ApplicationReplaced", discriminator) == 0) {
6768 } else
6769 if (strcmp("ApplicationUnregistered", discriminator) == 0) {
6771 } else
6772 if (strcmp("BridgeAttendedTransfer", discriminator) == 0) {
6774 } else
6775 if (strcmp("BridgeBlindTransfer", discriminator) == 0) {
6777 } else
6778 if (strcmp("BridgeCreated", discriminator) == 0) {
6780 } else
6781 if (strcmp("BridgeDestroyed", discriminator) == 0) {
6783 } else
6784 if (strcmp("BridgeMerged", discriminator) == 0) {
6785 return ast_ari_validate_bridge_merged(json);
6786 } else
6787 if (strcmp("BridgeVideoSourceChanged", discriminator) == 0) {
6789 } else
6790 if (strcmp("CallBroadcast", discriminator) == 0) {
6792 } else
6793 if (strcmp("CallClaimed", discriminator) == 0) {
6794 return ast_ari_validate_call_claimed(json);
6795 } else
6796 if (strcmp("ChannelCallerId", discriminator) == 0) {
6798 } else
6799 if (strcmp("ChannelConnectedLine", discriminator) == 0) {
6801 } else
6802 if (strcmp("ChannelCreated", discriminator) == 0) {
6804 } else
6805 if (strcmp("ChannelDestroyed", discriminator) == 0) {
6807 } else
6808 if (strcmp("ChannelDialplan", discriminator) == 0) {
6810 } else
6811 if (strcmp("ChannelDtmfReceived", discriminator) == 0) {
6813 } else
6814 if (strcmp("ChannelEnteredBridge", discriminator) == 0) {
6816 } else
6817 if (strcmp("ChannelHangupRequest", discriminator) == 0) {
6819 } else
6820 if (strcmp("ChannelHold", discriminator) == 0) {
6821 return ast_ari_validate_channel_hold(json);
6822 } else
6823 if (strcmp("ChannelLeftBridge", discriminator) == 0) {
6825 } else
6826 if (strcmp("ChannelStateChange", discriminator) == 0) {
6828 } else
6829 if (strcmp("ChannelTalkingFinished", discriminator) == 0) {
6831 } else
6832 if (strcmp("ChannelTalkingStarted", discriminator) == 0) {
6834 } else
6835 if (strcmp("ChannelToneDetected", discriminator) == 0) {
6837 } else
6838 if (strcmp("ChannelTransfer", discriminator) == 0) {
6840 } else
6841 if (strcmp("ChannelUnhold", discriminator) == 0) {
6843 } else
6844 if (strcmp("ChannelUserevent", discriminator) == 0) {
6846 } else
6847 if (strcmp("ChannelVarset", discriminator) == 0) {
6849 } else
6850 if (strcmp("ContactStatusChange", discriminator) == 0) {
6852 } else
6853 if (strcmp("DeviceStateChanged", discriminator) == 0) {
6855 } else
6856 if (strcmp("Dial", discriminator) == 0) {
6857 return ast_ari_validate_dial(json);
6858 } else
6859 if (strcmp("EndpointStateChange", discriminator) == 0) {
6861 } else
6862 if (strcmp("Event", discriminator) == 0) {
6863 return ast_ari_validate_event(json);
6864 } else
6865 if (strcmp("MissingParams", discriminator) == 0) {
6867 } else
6868 if (strcmp("PeerStatusChange", discriminator) == 0) {
6870 } else
6871 if (strcmp("PlaybackContinuing", discriminator) == 0) {
6873 } else
6874 if (strcmp("PlaybackFinished", discriminator) == 0) {
6876 } else
6877 if (strcmp("PlaybackStarted", discriminator) == 0) {
6879 } else
6880 if (strcmp("RESTResponse", discriminator) == 0) {
6881 return ast_ari_validate_restresponse(json);
6882 } else
6883 if (strcmp("RecordingFailed", discriminator) == 0) {
6885 } else
6886 if (strcmp("RecordingFinished", discriminator) == 0) {
6888 } else
6889 if (strcmp("RecordingStarted", discriminator) == 0) {
6891 } else
6892 if (strcmp("StasisEnd", discriminator) == 0) {
6893 return ast_ari_validate_stasis_end(json);
6894 } else
6895 if (strcmp("StasisStart", discriminator) == 0) {
6896 return ast_ari_validate_stasis_start(json);
6897 } else
6898 if (strcmp("TextMessageReceived", discriminator) == 0) {
6900 } else
6901 {
6902 ast_log(LOG_ERROR, "ARI Message has undocumented subtype %s\n",
6903 discriminator);
6904 res = 0;
6905 }
6906
6907 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6908 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6909 int prop_is_valid;
6910 prop_is_valid = ast_ari_validate_string(
6912 if (!prop_is_valid) {
6913 ast_log(LOG_ERROR, "ARI Message field asterisk_id failed validation\n");
6914 res = 0;
6915 }
6916 } else
6917 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6918 int prop_is_valid;
6919 has_type = 1;
6920 prop_is_valid = ast_ari_validate_string(
6922 if (!prop_is_valid) {
6923 ast_log(LOG_ERROR, "ARI Message field type failed validation\n");
6924 res = 0;
6925 }
6926 } else
6927 {
6929 "ARI Message has undocumented field %s\n",
6931 res = 0;
6932 }
6933 }
6934
6935 if (!has_type) {
6936 ast_log(LOG_ERROR, "ARI Message missing required field type\n");
6937 res = 0;
6938 }
6939
6940 return res;
6941}
6942
6947
6949{
6950 int res = 1;
6951 struct ast_json_iter *iter;
6952 int has_type = 0;
6953 int has_params = 0;
6954
6955 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6956 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6957 int prop_is_valid;
6958 prop_is_valid = ast_ari_validate_string(
6960 if (!prop_is_valid) {
6961 ast_log(LOG_ERROR, "ARI MissingParams field asterisk_id failed validation\n");
6962 res = 0;
6963 }
6964 } else
6965 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6966 int prop_is_valid;
6967 has_type = 1;
6968 prop_is_valid = ast_ari_validate_string(
6970 if (!prop_is_valid) {
6971 ast_log(LOG_ERROR, "ARI MissingParams field type failed validation\n");
6972 res = 0;
6973 }
6974 } else
6975 if (strcmp("params", ast_json_object_iter_key(iter)) == 0) {
6976 int prop_is_valid;
6977 has_params = 1;
6978 prop_is_valid = ast_ari_validate_list(
6981 if (!prop_is_valid) {
6982 ast_log(LOG_ERROR, "ARI MissingParams field params failed validation\n");
6983 res = 0;
6984 }
6985 } else
6986 {
6988 "ARI MissingParams has undocumented field %s\n",
6990 res = 0;
6991 }
6992 }
6993
6994 if (!has_type) {
6995 ast_log(LOG_ERROR, "ARI MissingParams missing required field type\n");
6996 res = 0;
6997 }
6998
6999 if (!has_params) {
7000 ast_log(LOG_ERROR, "ARI MissingParams missing required field params\n");
7001 res = 0;
7002 }
7003
7004 return res;
7005}
7006
7011
7013{
7014 int res = 1;
7015 struct ast_json_iter *iter;
7016 int has_peer_status = 0;
7017
7018 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7019 if (strcmp("address", ast_json_object_iter_key(iter)) == 0) {
7020 int prop_is_valid;
7021 prop_is_valid = ast_ari_validate_string(
7023 if (!prop_is_valid) {
7024 ast_log(LOG_ERROR, "ARI Peer field address failed validation\n");
7025 res = 0;
7026 }
7027 } else
7028 if (strcmp("cause", ast_json_object_iter_key(iter)) == 0) {
7029 int prop_is_valid;
7030 prop_is_valid = ast_ari_validate_string(
7032 if (!prop_is_valid) {
7033 ast_log(LOG_ERROR, "ARI Peer field cause failed validation\n");
7034 res = 0;
7035 }
7036 } else
7037 if (strcmp("peer_status", ast_json_object_iter_key(iter)) == 0) {
7038 int prop_is_valid;
7039 has_peer_status = 1;
7040 prop_is_valid = ast_ari_validate_string(
7042 if (!prop_is_valid) {
7043 ast_log(LOG_ERROR, "ARI Peer field peer_status failed validation\n");
7044 res = 0;
7045 }
7046 } else
7047 if (strcmp("port", ast_json_object_iter_key(iter)) == 0) {
7048 int prop_is_valid;
7049 prop_is_valid = ast_ari_validate_string(
7051 if (!prop_is_valid) {
7052 ast_log(LOG_ERROR, "ARI Peer field port failed validation\n");
7053 res = 0;
7054 }
7055 } else
7056 if (strcmp("time", ast_json_object_iter_key(iter)) == 0) {
7057 int prop_is_valid;
7058 prop_is_valid = ast_ari_validate_string(
7060 if (!prop_is_valid) {
7061 ast_log(LOG_ERROR, "ARI Peer field time failed validation\n");
7062 res = 0;
7063 }
7064 } else
7065 {
7067 "ARI Peer has undocumented field %s\n",
7069 res = 0;
7070 }
7071 }
7072
7073 if (!has_peer_status) {
7074 ast_log(LOG_ERROR, "ARI Peer missing required field peer_status\n");
7075 res = 0;
7076 }
7077
7078 return res;
7079}
7080
7085
7087{
7088 int res = 1;
7089 struct ast_json_iter *iter;
7090 int has_type = 0;
7091 int has_application = 0;
7092 int has_timestamp = 0;
7093 int has_endpoint = 0;
7094 int has_peer = 0;
7095
7096 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7097 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7098 int prop_is_valid;
7099 prop_is_valid = ast_ari_validate_string(
7101 if (!prop_is_valid) {
7102 ast_log(LOG_ERROR, "ARI PeerStatusChange field asterisk_id failed validation\n");
7103 res = 0;
7104 }
7105 } else
7106 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7107 int prop_is_valid;
7108 has_type = 1;
7109 prop_is_valid = ast_ari_validate_string(
7111 if (!prop_is_valid) {
7112 ast_log(LOG_ERROR, "ARI PeerStatusChange field type failed validation\n");
7113 res = 0;
7114 }
7115 } else
7116 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7117 int prop_is_valid;
7118 has_application = 1;
7119 prop_is_valid = ast_ari_validate_string(
7121 if (!prop_is_valid) {
7122 ast_log(LOG_ERROR, "ARI PeerStatusChange field application failed validation\n");
7123 res = 0;
7124 }
7125 } else
7126 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7127 int prop_is_valid;
7128 has_timestamp = 1;
7129 prop_is_valid = ast_ari_validate_date(
7131 if (!prop_is_valid) {
7132 ast_log(LOG_ERROR, "ARI PeerStatusChange field timestamp failed validation\n");
7133 res = 0;
7134 }
7135 } else
7136 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
7137 int prop_is_valid;
7138 has_endpoint = 1;
7139 prop_is_valid = ast_ari_validate_endpoint(
7141 if (!prop_is_valid) {
7142 ast_log(LOG_ERROR, "ARI PeerStatusChange field endpoint failed validation\n");
7143 res = 0;
7144 }
7145 } else
7146 if (strcmp("peer", ast_json_object_iter_key(iter)) == 0) {
7147 int prop_is_valid;
7148 has_peer = 1;
7149 prop_is_valid = ast_ari_validate_peer(
7151 if (!prop_is_valid) {
7152 ast_log(LOG_ERROR, "ARI PeerStatusChange field peer failed validation\n");
7153 res = 0;
7154 }
7155 } else
7156 {
7158 "ARI PeerStatusChange has undocumented field %s\n",
7160 res = 0;
7161 }
7162 }
7163
7164 if (!has_type) {
7165 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field type\n");
7166 res = 0;
7167 }
7168
7169 if (!has_application) {
7170 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field application\n");
7171 res = 0;
7172 }
7173
7174 if (!has_timestamp) {
7175 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field timestamp\n");
7176 res = 0;
7177 }
7178
7179 if (!has_endpoint) {
7180 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field endpoint\n");
7181 res = 0;
7182 }
7183
7184 if (!has_peer) {
7185 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field peer\n");
7186 res = 0;
7187 }
7188
7189 return res;
7190}
7191
7196
7198{
7199 int res = 1;
7200 struct ast_json_iter *iter;
7201 int has_type = 0;
7202 int has_application = 0;
7203 int has_timestamp = 0;
7204 int has_playback = 0;
7205
7206 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7207 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7208 int prop_is_valid;
7209 prop_is_valid = ast_ari_validate_string(
7211 if (!prop_is_valid) {
7212 ast_log(LOG_ERROR, "ARI PlaybackContinuing field asterisk_id failed validation\n");
7213 res = 0;
7214 }
7215 } else
7216 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7217 int prop_is_valid;
7218 has_type = 1;
7219 prop_is_valid = ast_ari_validate_string(
7221 if (!prop_is_valid) {
7222 ast_log(LOG_ERROR, "ARI PlaybackContinuing field type failed validation\n");
7223 res = 0;
7224 }
7225 } else
7226 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7227 int prop_is_valid;
7228 has_application = 1;
7229 prop_is_valid = ast_ari_validate_string(
7231 if (!prop_is_valid) {
7232 ast_log(LOG_ERROR, "ARI PlaybackContinuing field application failed validation\n");
7233 res = 0;
7234 }
7235 } else
7236 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7237 int prop_is_valid;
7238 has_timestamp = 1;
7239 prop_is_valid = ast_ari_validate_date(
7241 if (!prop_is_valid) {
7242 ast_log(LOG_ERROR, "ARI PlaybackContinuing field timestamp failed validation\n");
7243 res = 0;
7244 }
7245 } else
7246 if (strcmp("playback", ast_json_object_iter_key(iter)) == 0) {
7247 int prop_is_valid;
7248 has_playback = 1;
7249 prop_is_valid = ast_ari_validate_playback(
7251 if (!prop_is_valid) {
7252 ast_log(LOG_ERROR, "ARI PlaybackContinuing field playback failed validation\n");
7253 res = 0;
7254 }
7255 } else
7256 {
7258 "ARI PlaybackContinuing has undocumented field %s\n",
7260 res = 0;
7261 }
7262 }
7263
7264 if (!has_type) {
7265 ast_log(LOG_ERROR, "ARI PlaybackContinuing missing required field type\n");
7266 res = 0;
7267 }
7268
7269 if (!has_application) {
7270 ast_log(LOG_ERROR, "ARI PlaybackContinuing missing required field application\n");
7271 res = 0;
7272 }
7273
7274 if (!has_timestamp) {
7275 ast_log(LOG_ERROR, "ARI PlaybackContinuing missing required field timestamp\n");
7276 res = 0;
7277 }
7278
7279 if (!has_playback) {
7280 ast_log(LOG_ERROR, "ARI PlaybackContinuing missing required field playback\n");
7281 res = 0;
7282 }
7283
7284 return res;
7285}
7286
7291
7293{
7294 int res = 1;
7295 struct ast_json_iter *iter;
7296 int has_type = 0;
7297 int has_application = 0;
7298 int has_timestamp = 0;
7299 int has_playback = 0;
7300
7301 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7302 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7303 int prop_is_valid;
7304 prop_is_valid = ast_ari_validate_string(
7306 if (!prop_is_valid) {
7307 ast_log(LOG_ERROR, "ARI PlaybackFinished field asterisk_id failed validation\n");
7308 res = 0;
7309 }
7310 } else
7311 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7312 int prop_is_valid;
7313 has_type = 1;
7314 prop_is_valid = ast_ari_validate_string(
7316 if (!prop_is_valid) {
7317 ast_log(LOG_ERROR, "ARI PlaybackFinished field type failed validation\n");
7318 res = 0;
7319 }
7320 } else
7321 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7322 int prop_is_valid;
7323 has_application = 1;
7324 prop_is_valid = ast_ari_validate_string(
7326 if (!prop_is_valid) {
7327 ast_log(LOG_ERROR, "ARI PlaybackFinished field application failed validation\n");
7328 res = 0;
7329 }
7330 } else
7331 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7332 int prop_is_valid;
7333 has_timestamp = 1;
7334 prop_is_valid = ast_ari_validate_date(
7336 if (!prop_is_valid) {
7337 ast_log(LOG_ERROR, "ARI PlaybackFinished field timestamp failed validation\n");
7338 res = 0;
7339 }
7340 } else
7341 if (strcmp("playback", ast_json_object_iter_key(iter)) == 0) {
7342 int prop_is_valid;
7343 has_playback = 1;
7344 prop_is_valid = ast_ari_validate_playback(
7346 if (!prop_is_valid) {
7347 ast_log(LOG_ERROR, "ARI PlaybackFinished field playback failed validation\n");
7348 res = 0;
7349 }
7350 } else
7351 {
7353 "ARI PlaybackFinished has undocumented field %s\n",
7355 res = 0;
7356 }
7357 }
7358
7359 if (!has_type) {
7360 ast_log(LOG_ERROR, "ARI PlaybackFinished missing required field type\n");
7361 res = 0;
7362 }
7363
7364 if (!has_application) {
7365 ast_log(LOG_ERROR, "ARI PlaybackFinished missing required field application\n");
7366 res = 0;
7367 }
7368
7369 if (!has_timestamp) {
7370 ast_log(LOG_ERROR, "ARI PlaybackFinished missing required field timestamp\n");
7371 res = 0;
7372 }
7373
7374 if (!has_playback) {
7375 ast_log(LOG_ERROR, "ARI PlaybackFinished missing required field playback\n");
7376 res = 0;
7377 }
7378
7379 return res;
7380}
7381
7386
7388{
7389 int res = 1;
7390 struct ast_json_iter *iter;
7391 int has_type = 0;
7392 int has_application = 0;
7393 int has_timestamp = 0;
7394 int has_playback = 0;
7395
7396 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7397 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7398 int prop_is_valid;
7399 prop_is_valid = ast_ari_validate_string(
7401 if (!prop_is_valid) {
7402 ast_log(LOG_ERROR, "ARI PlaybackStarted field asterisk_id failed validation\n");
7403 res = 0;
7404 }
7405 } else
7406 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7407 int prop_is_valid;
7408 has_type = 1;
7409 prop_is_valid = ast_ari_validate_string(
7411 if (!prop_is_valid) {
7412 ast_log(LOG_ERROR, "ARI PlaybackStarted field type failed validation\n");
7413 res = 0;
7414 }
7415 } else
7416 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7417 int prop_is_valid;
7418 has_application = 1;
7419 prop_is_valid = ast_ari_validate_string(
7421 if (!prop_is_valid) {
7422 ast_log(LOG_ERROR, "ARI PlaybackStarted field application failed validation\n");
7423 res = 0;
7424 }
7425 } else
7426 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7427 int prop_is_valid;
7428 has_timestamp = 1;
7429 prop_is_valid = ast_ari_validate_date(
7431 if (!prop_is_valid) {
7432 ast_log(LOG_ERROR, "ARI PlaybackStarted field timestamp failed validation\n");
7433 res = 0;
7434 }
7435 } else
7436 if (strcmp("playback", ast_json_object_iter_key(iter)) == 0) {
7437 int prop_is_valid;
7438 has_playback = 1;
7439 prop_is_valid = ast_ari_validate_playback(
7441 if (!prop_is_valid) {
7442 ast_log(LOG_ERROR, "ARI PlaybackStarted field playback failed validation\n");
7443 res = 0;
7444 }
7445 } else
7446 {
7448 "ARI PlaybackStarted has undocumented field %s\n",
7450 res = 0;
7451 }
7452 }
7453
7454 if (!has_type) {
7455 ast_log(LOG_ERROR, "ARI PlaybackStarted missing required field type\n");
7456 res = 0;
7457 }
7458
7459 if (!has_application) {
7460 ast_log(LOG_ERROR, "ARI PlaybackStarted missing required field application\n");
7461 res = 0;
7462 }
7463
7464 if (!has_timestamp) {
7465 ast_log(LOG_ERROR, "ARI PlaybackStarted missing required field timestamp\n");
7466 res = 0;
7467 }
7468
7469 if (!has_playback) {
7470 ast_log(LOG_ERROR, "ARI PlaybackStarted missing required field playback\n");
7471 res = 0;
7472 }
7473
7474 return res;
7475}
7476
7481
7483{
7484 int res = 1;
7485 struct ast_json_iter *iter;
7486 int has_name = 0;
7487 int has_value = 0;
7488
7489 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7490 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
7491 int prop_is_valid;
7492 has_name = 1;
7493 prop_is_valid = ast_ari_validate_string(
7495 if (!prop_is_valid) {
7496 ast_log(LOG_ERROR, "ARI RESTHeader field name failed validation\n");
7497 res = 0;
7498 }
7499 } else
7500 if (strcmp("value", ast_json_object_iter_key(iter)) == 0) {
7501 int prop_is_valid;
7502 has_value = 1;
7503 prop_is_valid = ast_ari_validate_string(
7505 if (!prop_is_valid) {
7506 ast_log(LOG_ERROR, "ARI RESTHeader field value failed validation\n");
7507 res = 0;
7508 }
7509 } else
7510 {
7512 "ARI RESTHeader has undocumented field %s\n",
7514 res = 0;
7515 }
7516 }
7517
7518 if (!has_name) {
7519 ast_log(LOG_ERROR, "ARI RESTHeader missing required field name\n");
7520 res = 0;
7521 }
7522
7523 if (!has_value) {
7524 ast_log(LOG_ERROR, "ARI RESTHeader missing required field value\n");
7525 res = 0;
7526 }
7527
7528 return res;
7529}
7530
7535
7537{
7538 int res = 1;
7539 struct ast_json_iter *iter;
7540 int has_name = 0;
7541 int has_value = 0;
7542
7543 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7544 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
7545 int prop_is_valid;
7546 has_name = 1;
7547 prop_is_valid = ast_ari_validate_string(
7549 if (!prop_is_valid) {
7550 ast_log(LOG_ERROR, "ARI RESTQueryStringParameter field name failed validation\n");
7551 res = 0;
7552 }
7553 } else
7554 if (strcmp("value", ast_json_object_iter_key(iter)) == 0) {
7555 int prop_is_valid;
7556 has_value = 1;
7557 prop_is_valid = ast_ari_validate_string(
7559 if (!prop_is_valid) {
7560 ast_log(LOG_ERROR, "ARI RESTQueryStringParameter field value failed validation\n");
7561 res = 0;
7562 }
7563 } else
7564 {
7566 "ARI RESTQueryStringParameter has undocumented field %s\n",
7568 res = 0;
7569 }
7570 }
7571
7572 if (!has_name) {
7573 ast_log(LOG_ERROR, "ARI RESTQueryStringParameter missing required field name\n");
7574 res = 0;
7575 }
7576
7577 if (!has_value) {
7578 ast_log(LOG_ERROR, "ARI RESTQueryStringParameter missing required field value\n");
7579 res = 0;
7580 }
7581
7582 return res;
7583}
7584
7589
7591{
7592 int res = 1;
7593 struct ast_json_iter *iter;
7594 int has_method = 0;
7595 int has_request_id = 0;
7596 int has_transaction_id = 0;
7597 int has_type = 0;
7598 int has_uri = 0;
7599
7600 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7601 if (strcmp("content_type", ast_json_object_iter_key(iter)) == 0) {
7602 int prop_is_valid;
7603 prop_is_valid = ast_ari_validate_string(
7605 if (!prop_is_valid) {
7606 ast_log(LOG_ERROR, "ARI RESTRequest field content_type failed validation\n");
7607 res = 0;
7608 }
7609 } else
7610 if (strcmp("message_body", ast_json_object_iter_key(iter)) == 0) {
7611 int prop_is_valid;
7612 prop_is_valid = ast_ari_validate_string(
7614 if (!prop_is_valid) {
7615 ast_log(LOG_ERROR, "ARI RESTRequest field message_body failed validation\n");
7616 res = 0;
7617 }
7618 } else
7619 if (strcmp("method", ast_json_object_iter_key(iter)) == 0) {
7620 int prop_is_valid;
7621 has_method = 1;
7622 prop_is_valid = ast_ari_validate_string(
7624 if (!prop_is_valid) {
7625 ast_log(LOG_ERROR, "ARI RESTRequest field method failed validation\n");
7626 res = 0;
7627 }
7628 } else
7629 if (strcmp("query_strings", ast_json_object_iter_key(iter)) == 0) {
7630 int prop_is_valid;
7631 prop_is_valid = ast_ari_validate_list(
7634 if (!prop_is_valid) {
7635 ast_log(LOG_ERROR, "ARI RESTRequest field query_strings failed validation\n");
7636 res = 0;
7637 }
7638 } else
7639 if (strcmp("request_id", ast_json_object_iter_key(iter)) == 0) {
7640 int prop_is_valid;
7641 has_request_id = 1;
7642 prop_is_valid = ast_ari_validate_string(
7644 if (!prop_is_valid) {
7645 ast_log(LOG_ERROR, "ARI RESTRequest field request_id failed validation\n");
7646 res = 0;
7647 }
7648 } else
7649 if (strcmp("transaction_id", ast_json_object_iter_key(iter)) == 0) {
7650 int prop_is_valid;
7651 has_transaction_id = 1;
7652 prop_is_valid = ast_ari_validate_string(
7654 if (!prop_is_valid) {
7655 ast_log(LOG_ERROR, "ARI RESTRequest field transaction_id failed validation\n");
7656 res = 0;
7657 }
7658 } else
7659 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7660 int prop_is_valid;
7661 has_type = 1;
7662 prop_is_valid = ast_ari_validate_string(
7664 if (!prop_is_valid) {
7665 ast_log(LOG_ERROR, "ARI RESTRequest field type failed validation\n");
7666 res = 0;
7667 }
7668 } else
7669 if (strcmp("uri", ast_json_object_iter_key(iter)) == 0) {
7670 int prop_is_valid;
7671 has_uri = 1;
7672 prop_is_valid = ast_ari_validate_string(
7674 if (!prop_is_valid) {
7675 ast_log(LOG_ERROR, "ARI RESTRequest field uri failed validation\n");
7676 res = 0;
7677 }
7678 } else
7679 {
7681 "ARI RESTRequest has undocumented field %s\n",
7683 res = 0;
7684 }
7685 }
7686
7687 if (!has_method) {
7688 ast_log(LOG_ERROR, "ARI RESTRequest missing required field method\n");
7689 res = 0;
7690 }
7691
7692 if (!has_request_id) {
7693 ast_log(LOG_ERROR, "ARI RESTRequest missing required field request_id\n");
7694 res = 0;
7695 }
7696
7697 if (!has_transaction_id) {
7698 ast_log(LOG_ERROR, "ARI RESTRequest missing required field transaction_id\n");
7699 res = 0;
7700 }
7701
7702 if (!has_type) {
7703 ast_log(LOG_ERROR, "ARI RESTRequest missing required field type\n");
7704 res = 0;
7705 }
7706
7707 if (!has_uri) {
7708 ast_log(LOG_ERROR, "ARI RESTRequest missing required field uri\n");
7709 res = 0;
7710 }
7711
7712 return res;
7713}
7714
7719
7721{
7722 int res = 1;
7723 struct ast_json_iter *iter;
7724 int has_type = 0;
7725 int has_application = 0;
7726 int has_timestamp = 0;
7727 int has_reason_phrase = 0;
7728 int has_request_id = 0;
7729 int has_status_code = 0;
7730 int has_transaction_id = 0;
7731 int has_uri = 0;
7732
7733 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7734 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7735 int prop_is_valid;
7736 prop_is_valid = ast_ari_validate_string(
7738 if (!prop_is_valid) {
7739 ast_log(LOG_ERROR, "ARI RESTResponse field asterisk_id failed validation\n");
7740 res = 0;
7741 }
7742 } else
7743 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7744 int prop_is_valid;
7745 has_type = 1;
7746 prop_is_valid = ast_ari_validate_string(
7748 if (!prop_is_valid) {
7749 ast_log(LOG_ERROR, "ARI RESTResponse field type failed validation\n");
7750 res = 0;
7751 }
7752 } else
7753 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7754 int prop_is_valid;
7755 has_application = 1;
7756 prop_is_valid = ast_ari_validate_string(
7758 if (!prop_is_valid) {
7759 ast_log(LOG_ERROR, "ARI RESTResponse field application failed validation\n");
7760 res = 0;
7761 }
7762 } else
7763 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7764 int prop_is_valid;
7765 has_timestamp = 1;
7766 prop_is_valid = ast_ari_validate_date(
7768 if (!prop_is_valid) {
7769 ast_log(LOG_ERROR, "ARI RESTResponse field timestamp failed validation\n");
7770 res = 0;
7771 }
7772 } else
7773 if (strcmp("content_type", ast_json_object_iter_key(iter)) == 0) {
7774 int prop_is_valid;
7775 prop_is_valid = ast_ari_validate_string(
7777 if (!prop_is_valid) {
7778 ast_log(LOG_ERROR, "ARI RESTResponse field content_type failed validation\n");
7779 res = 0;
7780 }
7781 } else
7782 if (strcmp("message_body", ast_json_object_iter_key(iter)) == 0) {
7783 int prop_is_valid;
7784 prop_is_valid = ast_ari_validate_string(
7786 if (!prop_is_valid) {
7787 ast_log(LOG_ERROR, "ARI RESTResponse field message_body failed validation\n");
7788 res = 0;
7789 }
7790 } else
7791 if (strcmp("reason_phrase", ast_json_object_iter_key(iter)) == 0) {
7792 int prop_is_valid;
7793 has_reason_phrase = 1;
7794 prop_is_valid = ast_ari_validate_string(
7796 if (!prop_is_valid) {
7797 ast_log(LOG_ERROR, "ARI RESTResponse field reason_phrase failed validation\n");
7798 res = 0;
7799 }
7800 } else
7801 if (strcmp("request_id", ast_json_object_iter_key(iter)) == 0) {
7802 int prop_is_valid;
7803 has_request_id = 1;
7804 prop_is_valid = ast_ari_validate_string(
7806 if (!prop_is_valid) {
7807 ast_log(LOG_ERROR, "ARI RESTResponse field request_id failed validation\n");
7808 res = 0;
7809 }
7810 } else
7811 if (strcmp("status_code", ast_json_object_iter_key(iter)) == 0) {
7812 int prop_is_valid;
7813 has_status_code = 1;
7814 prop_is_valid = ast_ari_validate_int(
7816 if (!prop_is_valid) {
7817 ast_log(LOG_ERROR, "ARI RESTResponse field status_code failed validation\n");
7818 res = 0;
7819 }
7820 } else
7821 if (strcmp("transaction_id", ast_json_object_iter_key(iter)) == 0) {
7822 int prop_is_valid;
7823 has_transaction_id = 1;
7824 prop_is_valid = ast_ari_validate_string(
7826 if (!prop_is_valid) {
7827 ast_log(LOG_ERROR, "ARI RESTResponse field transaction_id failed validation\n");
7828 res = 0;
7829 }
7830 } else
7831 if (strcmp("uri", ast_json_object_iter_key(iter)) == 0) {
7832 int prop_is_valid;
7833 has_uri = 1;
7834 prop_is_valid = ast_ari_validate_string(
7836 if (!prop_is_valid) {
7837 ast_log(LOG_ERROR, "ARI RESTResponse field uri failed validation\n");
7838 res = 0;
7839 }
7840 } else
7841 {
7843 "ARI RESTResponse has undocumented field %s\n",
7845 res = 0;
7846 }
7847 }
7848
7849 if (!has_type) {
7850 ast_log(LOG_ERROR, "ARI RESTResponse missing required field type\n");
7851 res = 0;
7852 }
7853
7854 if (!has_application) {
7855 ast_log(LOG_ERROR, "ARI RESTResponse missing required field application\n");
7856 res = 0;
7857 }
7858
7859 if (!has_timestamp) {
7860 ast_log(LOG_ERROR, "ARI RESTResponse missing required field timestamp\n");
7861 res = 0;
7862 }
7863
7864 if (!has_reason_phrase) {
7865 ast_log(LOG_ERROR, "ARI RESTResponse missing required field reason_phrase\n");
7866 res = 0;
7867 }
7868
7869 if (!has_request_id) {
7870 ast_log(LOG_ERROR, "ARI RESTResponse missing required field request_id\n");
7871 res = 0;
7872 }
7873
7874 if (!has_status_code) {
7875 ast_log(LOG_ERROR, "ARI RESTResponse missing required field status_code\n");
7876 res = 0;
7877 }
7878
7879 if (!has_transaction_id) {
7880 ast_log(LOG_ERROR, "ARI RESTResponse missing required field transaction_id\n");
7881 res = 0;
7882 }
7883
7884 if (!has_uri) {
7885 ast_log(LOG_ERROR, "ARI RESTResponse missing required field uri\n");
7886 res = 0;
7887 }
7888
7889 return res;
7890}
7891
7896
7898{
7899 int res = 1;
7900 struct ast_json_iter *iter;
7901 int has_type = 0;
7902 int has_application = 0;
7903 int has_timestamp = 0;
7904 int has_recording = 0;
7905
7906 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7907 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7908 int prop_is_valid;
7909 prop_is_valid = ast_ari_validate_string(
7911 if (!prop_is_valid) {
7912 ast_log(LOG_ERROR, "ARI RecordingFailed field asterisk_id failed validation\n");
7913 res = 0;
7914 }
7915 } else
7916 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7917 int prop_is_valid;
7918 has_type = 1;
7919 prop_is_valid = ast_ari_validate_string(
7921 if (!prop_is_valid) {
7922 ast_log(LOG_ERROR, "ARI RecordingFailed field type failed validation\n");
7923 res = 0;
7924 }
7925 } else
7926 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7927 int prop_is_valid;
7928 has_application = 1;
7929 prop_is_valid = ast_ari_validate_string(
7931 if (!prop_is_valid) {
7932 ast_log(LOG_ERROR, "ARI RecordingFailed field application failed validation\n");
7933 res = 0;
7934 }
7935 } else
7936 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7937 int prop_is_valid;
7938 has_timestamp = 1;
7939 prop_is_valid = ast_ari_validate_date(
7941 if (!prop_is_valid) {
7942 ast_log(LOG_ERROR, "ARI RecordingFailed field timestamp failed validation\n");
7943 res = 0;
7944 }
7945 } else
7946 if (strcmp("recording", ast_json_object_iter_key(iter)) == 0) {
7947 int prop_is_valid;
7948 has_recording = 1;
7949 prop_is_valid = ast_ari_validate_live_recording(
7951 if (!prop_is_valid) {
7952 ast_log(LOG_ERROR, "ARI RecordingFailed field recording failed validation\n");
7953 res = 0;
7954 }
7955 } else
7956 {
7958 "ARI RecordingFailed has undocumented field %s\n",
7960 res = 0;
7961 }
7962 }
7963
7964 if (!has_type) {
7965 ast_log(LOG_ERROR, "ARI RecordingFailed missing required field type\n");
7966 res = 0;
7967 }
7968
7969 if (!has_application) {
7970 ast_log(LOG_ERROR, "ARI RecordingFailed missing required field application\n");
7971 res = 0;
7972 }
7973
7974 if (!has_timestamp) {
7975 ast_log(LOG_ERROR, "ARI RecordingFailed missing required field timestamp\n");
7976 res = 0;
7977 }
7978
7979 if (!has_recording) {
7980 ast_log(LOG_ERROR, "ARI RecordingFailed missing required field recording\n");
7981 res = 0;
7982 }
7983
7984 return res;
7985}
7986
7991
7993{
7994 int res = 1;
7995 struct ast_json_iter *iter;
7996 int has_type = 0;
7997 int has_application = 0;
7998 int has_timestamp = 0;
7999 int has_recording = 0;
8000
8001 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8002 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8003 int prop_is_valid;
8004 prop_is_valid = ast_ari_validate_string(
8006 if (!prop_is_valid) {
8007 ast_log(LOG_ERROR, "ARI RecordingFinished field asterisk_id failed validation\n");
8008 res = 0;
8009 }
8010 } else
8011 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8012 int prop_is_valid;
8013 has_type = 1;
8014 prop_is_valid = ast_ari_validate_string(
8016 if (!prop_is_valid) {
8017 ast_log(LOG_ERROR, "ARI RecordingFinished field type failed validation\n");
8018 res = 0;
8019 }
8020 } else
8021 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8022 int prop_is_valid;
8023 has_application = 1;
8024 prop_is_valid = ast_ari_validate_string(
8026 if (!prop_is_valid) {
8027 ast_log(LOG_ERROR, "ARI RecordingFinished field application failed validation\n");
8028 res = 0;
8029 }
8030 } else
8031 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8032 int prop_is_valid;
8033 has_timestamp = 1;
8034 prop_is_valid = ast_ari_validate_date(
8036 if (!prop_is_valid) {
8037 ast_log(LOG_ERROR, "ARI RecordingFinished field timestamp failed validation\n");
8038 res = 0;
8039 }
8040 } else
8041 if (strcmp("recording", ast_json_object_iter_key(iter)) == 0) {
8042 int prop_is_valid;
8043 has_recording = 1;
8044 prop_is_valid = ast_ari_validate_live_recording(
8046 if (!prop_is_valid) {
8047 ast_log(LOG_ERROR, "ARI RecordingFinished field recording failed validation\n");
8048 res = 0;
8049 }
8050 } else
8051 {
8053 "ARI RecordingFinished has undocumented field %s\n",
8055 res = 0;
8056 }
8057 }
8058
8059 if (!has_type) {
8060 ast_log(LOG_ERROR, "ARI RecordingFinished missing required field type\n");
8061 res = 0;
8062 }
8063
8064 if (!has_application) {
8065 ast_log(LOG_ERROR, "ARI RecordingFinished missing required field application\n");
8066 res = 0;
8067 }
8068
8069 if (!has_timestamp) {
8070 ast_log(LOG_ERROR, "ARI RecordingFinished missing required field timestamp\n");
8071 res = 0;
8072 }
8073
8074 if (!has_recording) {
8075 ast_log(LOG_ERROR, "ARI RecordingFinished missing required field recording\n");
8076 res = 0;
8077 }
8078
8079 return res;
8080}
8081
8086
8088{
8089 int res = 1;
8090 struct ast_json_iter *iter;
8091 int has_type = 0;
8092 int has_application = 0;
8093 int has_timestamp = 0;
8094 int has_recording = 0;
8095
8096 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8097 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8098 int prop_is_valid;
8099 prop_is_valid = ast_ari_validate_string(
8101 if (!prop_is_valid) {
8102 ast_log(LOG_ERROR, "ARI RecordingStarted field asterisk_id failed validation\n");
8103 res = 0;
8104 }
8105 } else
8106 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8107 int prop_is_valid;
8108 has_type = 1;
8109 prop_is_valid = ast_ari_validate_string(
8111 if (!prop_is_valid) {
8112 ast_log(LOG_ERROR, "ARI RecordingStarted field type failed validation\n");
8113 res = 0;
8114 }
8115 } else
8116 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8117 int prop_is_valid;
8118 has_application = 1;
8119 prop_is_valid = ast_ari_validate_string(
8121 if (!prop_is_valid) {
8122 ast_log(LOG_ERROR, "ARI RecordingStarted field application failed validation\n");
8123 res = 0;
8124 }
8125 } else
8126 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8127 int prop_is_valid;
8128 has_timestamp = 1;
8129 prop_is_valid = ast_ari_validate_date(
8131 if (!prop_is_valid) {
8132 ast_log(LOG_ERROR, "ARI RecordingStarted field timestamp failed validation\n");
8133 res = 0;
8134 }
8135 } else
8136 if (strcmp("recording", ast_json_object_iter_key(iter)) == 0) {
8137 int prop_is_valid;
8138 has_recording = 1;
8139 prop_is_valid = ast_ari_validate_live_recording(
8141 if (!prop_is_valid) {
8142 ast_log(LOG_ERROR, "ARI RecordingStarted field recording failed validation\n");
8143 res = 0;
8144 }
8145 } else
8146 {
8148 "ARI RecordingStarted has undocumented field %s\n",
8150 res = 0;
8151 }
8152 }
8153
8154 if (!has_type) {
8155 ast_log(LOG_ERROR, "ARI RecordingStarted missing required field type\n");
8156 res = 0;
8157 }
8158
8159 if (!has_application) {
8160 ast_log(LOG_ERROR, "ARI RecordingStarted missing required field application\n");
8161 res = 0;
8162 }
8163
8164 if (!has_timestamp) {
8165 ast_log(LOG_ERROR, "ARI RecordingStarted missing required field timestamp\n");
8166 res = 0;
8167 }
8168
8169 if (!has_recording) {
8170 ast_log(LOG_ERROR, "ARI RecordingStarted missing required field recording\n");
8171 res = 0;
8172 }
8173
8174 return res;
8175}
8176
8181
8183{
8184 int res = 1;
8185 struct ast_json_iter *iter;
8186 int has_requested_destination = 0;
8187
8188 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8189 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
8190 int prop_is_valid;
8191 prop_is_valid = ast_ari_validate_bridge(
8193 if (!prop_is_valid) {
8194 ast_log(LOG_ERROR, "ARI ReferTo field bridge failed validation\n");
8195 res = 0;
8196 }
8197 } else
8198 if (strcmp("connected_channel", ast_json_object_iter_key(iter)) == 0) {
8199 int prop_is_valid;
8200 prop_is_valid = ast_ari_validate_channel(
8202 if (!prop_is_valid) {
8203 ast_log(LOG_ERROR, "ARI ReferTo field connected_channel failed validation\n");
8204 res = 0;
8205 }
8206 } else
8207 if (strcmp("destination_channel", ast_json_object_iter_key(iter)) == 0) {
8208 int prop_is_valid;
8209 prop_is_valid = ast_ari_validate_channel(
8211 if (!prop_is_valid) {
8212 ast_log(LOG_ERROR, "ARI ReferTo field destination_channel failed validation\n");
8213 res = 0;
8214 }
8215 } else
8216 if (strcmp("requested_destination", ast_json_object_iter_key(iter)) == 0) {
8217 int prop_is_valid;
8218 has_requested_destination = 1;
8221 if (!prop_is_valid) {
8222 ast_log(LOG_ERROR, "ARI ReferTo field requested_destination failed validation\n");
8223 res = 0;
8224 }
8225 } else
8226 {
8228 "ARI ReferTo has undocumented field %s\n",
8230 res = 0;
8231 }
8232 }
8233
8234 if (!has_requested_destination) {
8235 ast_log(LOG_ERROR, "ARI ReferTo missing required field requested_destination\n");
8236 res = 0;
8237 }
8238
8239 return res;
8240}
8241
8246
8248{
8249 int res = 1;
8250 struct ast_json_iter *iter;
8251 int has_source_channel = 0;
8252
8253 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8254 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
8255 int prop_is_valid;
8256 prop_is_valid = ast_ari_validate_bridge(
8258 if (!prop_is_valid) {
8259 ast_log(LOG_ERROR, "ARI ReferredBy field bridge failed validation\n");
8260 res = 0;
8261 }
8262 } else
8263 if (strcmp("connected_channel", ast_json_object_iter_key(iter)) == 0) {
8264 int prop_is_valid;
8265 prop_is_valid = ast_ari_validate_channel(
8267 if (!prop_is_valid) {
8268 ast_log(LOG_ERROR, "ARI ReferredBy field connected_channel failed validation\n");
8269 res = 0;
8270 }
8271 } else
8272 if (strcmp("source_channel", ast_json_object_iter_key(iter)) == 0) {
8273 int prop_is_valid;
8274 has_source_channel = 1;
8275 prop_is_valid = ast_ari_validate_channel(
8277 if (!prop_is_valid) {
8278 ast_log(LOG_ERROR, "ARI ReferredBy field source_channel failed validation\n");
8279 res = 0;
8280 }
8281 } else
8282 {
8284 "ARI ReferredBy has undocumented field %s\n",
8286 res = 0;
8287 }
8288 }
8289
8290 if (!has_source_channel) {
8291 ast_log(LOG_ERROR, "ARI ReferredBy missing required field source_channel\n");
8292 res = 0;
8293 }
8294
8295 return res;
8296}
8297
8302
8304{
8305 int res = 1;
8306 struct ast_json_iter *iter;
8307
8308 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8309 if (strcmp("additional_protocol_params", ast_json_object_iter_key(iter)) == 0) {
8310 int prop_is_valid;
8311 prop_is_valid = ast_ari_validate_list(
8314 if (!prop_is_valid) {
8315 ast_log(LOG_ERROR, "ARI RequiredDestination field additional_protocol_params failed validation\n");
8316 res = 0;
8317 }
8318 } else
8319 if (strcmp("destination", ast_json_object_iter_key(iter)) == 0) {
8320 int prop_is_valid;
8321 prop_is_valid = ast_ari_validate_string(
8323 if (!prop_is_valid) {
8324 ast_log(LOG_ERROR, "ARI RequiredDestination field destination failed validation\n");
8325 res = 0;
8326 }
8327 } else
8328 if (strcmp("protocol_id", ast_json_object_iter_key(iter)) == 0) {
8329 int prop_is_valid;
8330 prop_is_valid = ast_ari_validate_string(
8332 if (!prop_is_valid) {
8333 ast_log(LOG_ERROR, "ARI RequiredDestination field protocol_id failed validation\n");
8334 res = 0;
8335 }
8336 } else
8337 {
8339 "ARI RequiredDestination has undocumented field %s\n",
8341 res = 0;
8342 }
8343 }
8344
8345 return res;
8346}
8347
8352
8354{
8355 int res = 1;
8356 struct ast_json_iter *iter;
8357 int has_type = 0;
8358 int has_application = 0;
8359 int has_timestamp = 0;
8360 int has_channel = 0;
8361
8362 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8363 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8364 int prop_is_valid;
8365 prop_is_valid = ast_ari_validate_string(
8367 if (!prop_is_valid) {
8368 ast_log(LOG_ERROR, "ARI StasisEnd field asterisk_id failed validation\n");
8369 res = 0;
8370 }
8371 } else
8372 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8373 int prop_is_valid;
8374 has_type = 1;
8375 prop_is_valid = ast_ari_validate_string(
8377 if (!prop_is_valid) {
8378 ast_log(LOG_ERROR, "ARI StasisEnd field type failed validation\n");
8379 res = 0;
8380 }
8381 } else
8382 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8383 int prop_is_valid;
8384 has_application = 1;
8385 prop_is_valid = ast_ari_validate_string(
8387 if (!prop_is_valid) {
8388 ast_log(LOG_ERROR, "ARI StasisEnd field application failed validation\n");
8389 res = 0;
8390 }
8391 } else
8392 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8393 int prop_is_valid;
8394 has_timestamp = 1;
8395 prop_is_valid = ast_ari_validate_date(
8397 if (!prop_is_valid) {
8398 ast_log(LOG_ERROR, "ARI StasisEnd field timestamp failed validation\n");
8399 res = 0;
8400 }
8401 } else
8402 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
8403 int prop_is_valid;
8404 has_channel = 1;
8405 prop_is_valid = ast_ari_validate_channel(
8407 if (!prop_is_valid) {
8408 ast_log(LOG_ERROR, "ARI StasisEnd field channel failed validation\n");
8409 res = 0;
8410 }
8411 } else
8412 {
8414 "ARI StasisEnd has undocumented field %s\n",
8416 res = 0;
8417 }
8418 }
8419
8420 if (!has_type) {
8421 ast_log(LOG_ERROR, "ARI StasisEnd missing required field type\n");
8422 res = 0;
8423 }
8424
8425 if (!has_application) {
8426 ast_log(LOG_ERROR, "ARI StasisEnd missing required field application\n");
8427 res = 0;
8428 }
8429
8430 if (!has_timestamp) {
8431 ast_log(LOG_ERROR, "ARI StasisEnd missing required field timestamp\n");
8432 res = 0;
8433 }
8434
8435 if (!has_channel) {
8436 ast_log(LOG_ERROR, "ARI StasisEnd missing required field channel\n");
8437 res = 0;
8438 }
8439
8440 return res;
8441}
8442
8447
8449{
8450 int res = 1;
8451 struct ast_json_iter *iter;
8452 int has_type = 0;
8453 int has_application = 0;
8454 int has_timestamp = 0;
8455 int has_args = 0;
8456 int has_channel = 0;
8457
8458 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8459 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8460 int prop_is_valid;
8461 prop_is_valid = ast_ari_validate_string(
8463 if (!prop_is_valid) {
8464 ast_log(LOG_ERROR, "ARI StasisStart field asterisk_id failed validation\n");
8465 res = 0;
8466 }
8467 } else
8468 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8469 int prop_is_valid;
8470 has_type = 1;
8471 prop_is_valid = ast_ari_validate_string(
8473 if (!prop_is_valid) {
8474 ast_log(LOG_ERROR, "ARI StasisStart field type failed validation\n");
8475 res = 0;
8476 }
8477 } else
8478 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8479 int prop_is_valid;
8480 has_application = 1;
8481 prop_is_valid = ast_ari_validate_string(
8483 if (!prop_is_valid) {
8484 ast_log(LOG_ERROR, "ARI StasisStart field application failed validation\n");
8485 res = 0;
8486 }
8487 } else
8488 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8489 int prop_is_valid;
8490 has_timestamp = 1;
8491 prop_is_valid = ast_ari_validate_date(
8493 if (!prop_is_valid) {
8494 ast_log(LOG_ERROR, "ARI StasisStart field timestamp failed validation\n");
8495 res = 0;
8496 }
8497 } else
8498 if (strcmp("args", ast_json_object_iter_key(iter)) == 0) {
8499 int prop_is_valid;
8500 has_args = 1;
8501 prop_is_valid = ast_ari_validate_list(
8504 if (!prop_is_valid) {
8505 ast_log(LOG_ERROR, "ARI StasisStart field args failed validation\n");
8506 res = 0;
8507 }
8508 } else
8509 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
8510 int prop_is_valid;
8511 has_channel = 1;
8512 prop_is_valid = ast_ari_validate_channel(
8514 if (!prop_is_valid) {
8515 ast_log(LOG_ERROR, "ARI StasisStart field channel failed validation\n");
8516 res = 0;
8517 }
8518 } else
8519 if (strcmp("replace_channel", ast_json_object_iter_key(iter)) == 0) {
8520 int prop_is_valid;
8521 prop_is_valid = ast_ari_validate_channel(
8523 if (!prop_is_valid) {
8524 ast_log(LOG_ERROR, "ARI StasisStart field replace_channel failed validation\n");
8525 res = 0;
8526 }
8527 } else
8528 {
8530 "ARI StasisStart has undocumented field %s\n",
8532 res = 0;
8533 }
8534 }
8535
8536 if (!has_type) {
8537 ast_log(LOG_ERROR, "ARI StasisStart missing required field type\n");
8538 res = 0;
8539 }
8540
8541 if (!has_application) {
8542 ast_log(LOG_ERROR, "ARI StasisStart missing required field application\n");
8543 res = 0;
8544 }
8545
8546 if (!has_timestamp) {
8547 ast_log(LOG_ERROR, "ARI StasisStart missing required field timestamp\n");
8548 res = 0;
8549 }
8550
8551 if (!has_args) {
8552 ast_log(LOG_ERROR, "ARI StasisStart missing required field args\n");
8553 res = 0;
8554 }
8555
8556 if (!has_channel) {
8557 ast_log(LOG_ERROR, "ARI StasisStart missing required field channel\n");
8558 res = 0;
8559 }
8560
8561 return res;
8562}
8563
8568
8570{
8571 int res = 1;
8572 struct ast_json_iter *iter;
8573 int has_type = 0;
8574 int has_application = 0;
8575 int has_timestamp = 0;
8576 int has_message = 0;
8577
8578 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8579 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8580 int prop_is_valid;
8581 prop_is_valid = ast_ari_validate_string(
8583 if (!prop_is_valid) {
8584 ast_log(LOG_ERROR, "ARI TextMessageReceived field asterisk_id failed validation\n");
8585 res = 0;
8586 }
8587 } else
8588 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8589 int prop_is_valid;
8590 has_type = 1;
8591 prop_is_valid = ast_ari_validate_string(
8593 if (!prop_is_valid) {
8594 ast_log(LOG_ERROR, "ARI TextMessageReceived field type failed validation\n");
8595 res = 0;
8596 }
8597 } else
8598 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8599 int prop_is_valid;
8600 has_application = 1;
8601 prop_is_valid = ast_ari_validate_string(
8603 if (!prop_is_valid) {
8604 ast_log(LOG_ERROR, "ARI TextMessageReceived field application failed validation\n");
8605 res = 0;
8606 }
8607 } else
8608 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8609 int prop_is_valid;
8610 has_timestamp = 1;
8611 prop_is_valid = ast_ari_validate_date(
8613 if (!prop_is_valid) {
8614 ast_log(LOG_ERROR, "ARI TextMessageReceived field timestamp failed validation\n");
8615 res = 0;
8616 }
8617 } else
8618 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
8619 int prop_is_valid;
8620 prop_is_valid = ast_ari_validate_endpoint(
8622 if (!prop_is_valid) {
8623 ast_log(LOG_ERROR, "ARI TextMessageReceived field endpoint failed validation\n");
8624 res = 0;
8625 }
8626 } else
8627 if (strcmp("message", ast_json_object_iter_key(iter)) == 0) {
8628 int prop_is_valid;
8629 has_message = 1;
8630 prop_is_valid = ast_ari_validate_text_message(
8632 if (!prop_is_valid) {
8633 ast_log(LOG_ERROR, "ARI TextMessageReceived field message failed validation\n");
8634 res = 0;
8635 }
8636 } else
8637 {
8639 "ARI TextMessageReceived has undocumented field %s\n",
8641 res = 0;
8642 }
8643 }
8644
8645 if (!has_type) {
8646 ast_log(LOG_ERROR, "ARI TextMessageReceived missing required field type\n");
8647 res = 0;
8648 }
8649
8650 if (!has_application) {
8651 ast_log(LOG_ERROR, "ARI TextMessageReceived missing required field application\n");
8652 res = 0;
8653 }
8654
8655 if (!has_timestamp) {
8656 ast_log(LOG_ERROR, "ARI TextMessageReceived missing required field timestamp\n");
8657 res = 0;
8658 }
8659
8660 if (!has_message) {
8661 ast_log(LOG_ERROR, "ARI TextMessageReceived missing required field message\n");
8662 res = 0;
8663 }
8664
8665 return res;
8666}
8667
8672
8674{
8675 int res = 1;
8676 struct ast_json_iter *iter;
8677 int has_bridge_ids = 0;
8678 int has_channel_ids = 0;
8679 int has_device_names = 0;
8680 int has_endpoint_ids = 0;
8681 int has_events_allowed = 0;
8682 int has_events_disallowed = 0;
8683 int has_name = 0;
8684
8685 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8686 if (strcmp("bridge_ids", ast_json_object_iter_key(iter)) == 0) {
8687 int prop_is_valid;
8688 has_bridge_ids = 1;
8689 prop_is_valid = ast_ari_validate_list(
8692 if (!prop_is_valid) {
8693 ast_log(LOG_ERROR, "ARI Application field bridge_ids failed validation\n");
8694 res = 0;
8695 }
8696 } else
8697 if (strcmp("channel_ids", ast_json_object_iter_key(iter)) == 0) {
8698 int prop_is_valid;
8699 has_channel_ids = 1;
8700 prop_is_valid = ast_ari_validate_list(
8703 if (!prop_is_valid) {
8704 ast_log(LOG_ERROR, "ARI Application field channel_ids failed validation\n");
8705 res = 0;
8706 }
8707 } else
8708 if (strcmp("device_names", ast_json_object_iter_key(iter)) == 0) {
8709 int prop_is_valid;
8710 has_device_names = 1;
8711 prop_is_valid = ast_ari_validate_list(
8714 if (!prop_is_valid) {
8715 ast_log(LOG_ERROR, "ARI Application field device_names failed validation\n");
8716 res = 0;
8717 }
8718 } else
8719 if (strcmp("endpoint_ids", ast_json_object_iter_key(iter)) == 0) {
8720 int prop_is_valid;
8721 has_endpoint_ids = 1;
8722 prop_is_valid = ast_ari_validate_list(
8725 if (!prop_is_valid) {
8726 ast_log(LOG_ERROR, "ARI Application field endpoint_ids failed validation\n");
8727 res = 0;
8728 }
8729 } else
8730 if (strcmp("events_allowed", ast_json_object_iter_key(iter)) == 0) {
8731 int prop_is_valid;
8732 has_events_allowed = 1;
8733 prop_is_valid = ast_ari_validate_list(
8736 if (!prop_is_valid) {
8737 ast_log(LOG_ERROR, "ARI Application field events_allowed failed validation\n");
8738 res = 0;
8739 }
8740 } else
8741 if (strcmp("events_disallowed", ast_json_object_iter_key(iter)) == 0) {
8742 int prop_is_valid;
8743 has_events_disallowed = 1;
8744 prop_is_valid = ast_ari_validate_list(
8747 if (!prop_is_valid) {
8748 ast_log(LOG_ERROR, "ARI Application field events_disallowed failed validation\n");
8749 res = 0;
8750 }
8751 } else
8752 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
8753 int prop_is_valid;
8754 has_name = 1;
8755 prop_is_valid = ast_ari_validate_string(
8757 if (!prop_is_valid) {
8758 ast_log(LOG_ERROR, "ARI Application field name failed validation\n");
8759 res = 0;
8760 }
8761 } else
8762 {
8764 "ARI Application has undocumented field %s\n",
8766 res = 0;
8767 }
8768 }
8769
8770 if (!has_bridge_ids) {
8771 ast_log(LOG_ERROR, "ARI Application missing required field bridge_ids\n");
8772 res = 0;
8773 }
8774
8775 if (!has_channel_ids) {
8776 ast_log(LOG_ERROR, "ARI Application missing required field channel_ids\n");
8777 res = 0;
8778 }
8779
8780 if (!has_device_names) {
8781 ast_log(LOG_ERROR, "ARI Application missing required field device_names\n");
8782 res = 0;
8783 }
8784
8785 if (!has_endpoint_ids) {
8786 ast_log(LOG_ERROR, "ARI Application missing required field endpoint_ids\n");
8787 res = 0;
8788 }
8789
8790 if (!has_events_allowed) {
8791 ast_log(LOG_ERROR, "ARI Application missing required field events_allowed\n");
8792 res = 0;
8793 }
8794
8795 if (!has_events_disallowed) {
8796 ast_log(LOG_ERROR, "ARI Application missing required field events_disallowed\n");
8797 res = 0;
8798 }
8799
8800 if (!has_name) {
8801 ast_log(LOG_ERROR, "ARI Application missing required field name\n");
8802 res = 0;
8803 }
8804
8805 return res;
8806}
8807
ari_validator ast_ari_validate_restheader_fn(void)
Function pointer to ast_ari_validate_restheader().
ari_validator ast_ari_validate_set_id_fn(void)
Function pointer to ast_ari_validate_set_id().
ari_validator ast_ari_validate_config_info_fn(void)
Function pointer to ast_ari_validate_config_info().
ari_validator ast_ari_validate_sound_fn(void)
Function pointer to ast_ari_validate_sound().
int ast_ari_validate_missing_params(struct ast_json *json)
Validator for MissingParams.
int ast_ari_validate_variable(struct ast_json *json)
Validator for Variable.
ari_validator ast_ari_validate_live_recording_fn(void)
Function pointer to ast_ari_validate_live_recording().
int ast_ari_validate_application_replaced(struct ast_json *json)
Validator for ApplicationReplaced.
int ast_ari_validate_log_channel(struct ast_json *json)
Validator for LogChannel.
ari_validator ast_ari_validate_peer_fn(void)
Function pointer to ast_ari_validate_peer().
ari_validator ast_ari_validate_channel_talking_started_fn(void)
Function pointer to ast_ari_validate_channel_talking_started().
ari_validator ast_ari_validate_variables_fn(void)
Function pointer to ast_ari_validate_variables().
ari_validator ast_ari_validate_asterisk_ping_fn(void)
Function pointer to ast_ari_validate_asterisk_ping().
ari_validator ast_ari_validate_application_fn(void)
Function pointer to ast_ari_validate_application().
ari_validator ast_ari_validate_application_replaced_fn(void)
Function pointer to ast_ari_validate_application_replaced().
int ast_ari_validate_text_message_received(struct ast_json *json)
Validator for TextMessageReceived.
ari_validator ast_ari_validate_channel_dtmf_received_fn(void)
Function pointer to ast_ari_validate_channel_dtmf_received().
ari_validator ast_ari_validate_contact_status_change_fn(void)
Function pointer to ast_ari_validate_contact_status_change().
ari_validator ast_ari_validate_bridge_destroyed_fn(void)
Function pointer to ast_ari_validate_bridge_destroyed().
int ast_ari_validate_playback_finished(struct ast_json *json)
Validator for PlaybackFinished.
ari_validator ast_ari_validate_build_info_fn(void)
Function pointer to ast_ari_validate_build_info().
ari_validator ast_ari_validate_recording_started_fn(void)
Function pointer to ast_ari_validate_recording_started().
ari_validator ast_ari_validate_contact_info_fn(void)
Function pointer to ast_ari_validate_contact_info().
int ast_ari_validate_text_message(struct ast_json *json)
Validator for TextMessage.
int ast_ari_validate_bridge_blind_transfer(struct ast_json *json)
Validator for BridgeBlindTransfer.
int ast_ari_validate_call_broadcast(struct ast_json *json)
Validator for CallBroadcast.
int ast_ari_validate_channel_destroyed(struct ast_json *json)
Validator for ChannelDestroyed.
ari_validator ast_ari_validate_playback_started_fn(void)
Function pointer to ast_ari_validate_playback_started().
int ast_ari_validate_endpoint_state_change(struct ast_json *json)
Validator for EndpointStateChange.
int ast_ari_validate_restrequest(struct ast_json *json)
Validator for RESTRequest.
int ast_ari_validate_playback(struct ast_json *json)
Validator for Playback.
ari_validator ast_ari_validate_playback_continuing_fn(void)
Function pointer to ast_ari_validate_playback_continuing().
int ast_ari_validate_channel_tone_detected(struct ast_json *json)
Validator for ChannelToneDetected.
ari_validator ast_ari_validate_application_registered_fn(void)
Function pointer to ast_ari_validate_application_registered().
ari_validator ast_ari_validate_stasis_end_fn(void)
Function pointer to ast_ari_validate_stasis_end().
ari_validator ast_ari_validate_variable_fn(void)
Function pointer to ast_ari_validate_variable().
ari_validator ast_ari_validate_application_unregistered_fn(void)
Function pointer to ast_ari_validate_application_unregistered().
ari_validator ast_ari_validate_channel_left_bridge_fn(void)
Function pointer to ast_ari_validate_channel_left_bridge().
int ast_ari_validate_application(struct ast_json *json)
Validator for Application.
int ast_ari_validate_dialed(struct ast_json *json)
Validator for Dialed.
int ast_ari_validate_live_recording(struct ast_json *json)
Validator for LiveRecording.
ari_validator ast_ari_validate_stored_recording_fn(void)
Function pointer to ast_ari_validate_stored_recording().
int ast_ari_validate_call_claimed(struct ast_json *json)
Validator for CallClaimed.
ari_validator ast_ari_validate_channel_userevent_fn(void)
Function pointer to ast_ari_validate_channel_userevent().
ari_validator ast_ari_validate_channel_created_fn(void)
Function pointer to ast_ari_validate_channel_created().
ari_validator ast_ari_validate_refer_to_fn(void)
Function pointer to ast_ari_validate_refer_to().
int ast_ari_validate_module(struct ast_json *json)
Validator for Module.
int ast_ari_validate_additional_param(struct ast_json *json)
Validator for AdditionalParam.
int ast_ari_validate_stasis_start(struct ast_json *json)
Validator for StasisStart.
ari_validator ast_ari_validate_required_destination_fn(void)
Function pointer to ast_ari_validate_required_destination().
ari_validator ast_ari_validate_channel_talking_finished_fn(void)
Function pointer to ast_ari_validate_channel_talking_finished().
int ast_ari_validate_mailbox(struct ast_json *json)
Validator for Mailbox.
ari_validator ast_ari_validate_playback_finished_fn(void)
Function pointer to ast_ari_validate_playback_finished().
ari_validator ast_ari_validate_channel_tone_detected_fn(void)
Function pointer to ast_ari_validate_channel_tone_detected().
int ast_ari_validate_channel_hangup_request(struct ast_json *json)
Validator for ChannelHangupRequest.
int ast_ari_validate_bridge(struct ast_json *json)
Validator for Bridge.
int ast_ari_validate_message(struct ast_json *json)
Validator for Message.
ari_validator ast_ari_validate_dialed_fn(void)
Function pointer to ast_ari_validate_dialed().
int ast_ari_validate_contact_info(struct ast_json *json)
Validator for ContactInfo.
int ast_ari_validate_refer_to(struct ast_json *json)
Validator for ReferTo.
int ast_ari_validate_dialplan_cep(struct ast_json *json)
Validator for DialplanCEP.
int ast_ari_validate_set_id(struct ast_json *json)
Validator for SetId.
ari_validator ast_ari_validate_channel_varset_fn(void)
Function pointer to ast_ari_validate_channel_varset().
ari_validator ast_ari_validate_playback_fn(void)
Function pointer to ast_ari_validate_playback().
ari_validator ast_ari_validate_system_info_fn(void)
Function pointer to ast_ari_validate_system_info().
ari_validator ast_ari_validate_caller_id_fn(void)
Function pointer to ast_ari_validate_caller_id().
ari_validator ast_ari_validate_call_broadcast_fn(void)
Function pointer to ast_ari_validate_call_broadcast().
int ast_ari_validate_stasis_end(struct ast_json *json)
Validator for StasisEnd.
ari_validator ast_ari_validate_dialplan_cep_fn(void)
Function pointer to ast_ari_validate_dialplan_cep().
int ast_ari_validate_playback_started(struct ast_json *json)
Validator for PlaybackStarted.
ari_validator ast_ari_validate_bridge_blind_transfer_fn(void)
Function pointer to ast_ari_validate_bridge_blind_transfer().
int ast_ari_validate_bridge_attended_transfer(struct ast_json *json)
Validator for BridgeAttendedTransfer.
ari_validator ast_ari_validate_additional_param_fn(void)
Function pointer to ast_ari_validate_additional_param().
int ast_ari_validate_channel_dialplan(struct ast_json *json)
Validator for ChannelDialplan.
int ast_ari_validate_channel_state_change(struct ast_json *json)
Validator for ChannelStateChange.
ari_validator ast_ari_validate_bridge_attended_transfer_fn(void)
Function pointer to ast_ari_validate_bridge_attended_transfer().
int ast_ari_validate_channel_talking_finished(struct ast_json *json)
Validator for ChannelTalkingFinished.
ari_validator ast_ari_validate_missing_params_fn(void)
Function pointer to ast_ari_validate_missing_params().
int ast_ari_validate_channel_dtmf_received(struct ast_json *json)
Validator for ChannelDtmfReceived.
ari_validator ast_ari_validate_restquery_string_parameter_fn(void)
Function pointer to ast_ari_validate_restquery_string_parameter().
ari_validator ast_ari_validate_config_tuple_fn(void)
Function pointer to ast_ari_validate_config_tuple().
int ast_ari_validate_peer_status_change(struct ast_json *json)
Validator for PeerStatusChange.
int ast_ari_validate_restquery_string_parameter(struct ast_json *json)
Validator for RESTQueryStringParameter.
int ast_ari_validate_bridge_created(struct ast_json *json)
Validator for BridgeCreated.
ari_validator ast_ari_validate_dial_fn(void)
Function pointer to ast_ari_validate_dial().
ari_validator ast_ari_validate_bridge_fn(void)
Function pointer to ast_ari_validate_bridge().
ari_validator ast_ari_validate_event_fn(void)
Function pointer to ast_ari_validate_event().
int ast_ari_validate_application_move_failed(struct ast_json *json)
Validator for ApplicationMoveFailed.
ari_validator ast_ari_validate_message_fn(void)
Function pointer to ast_ari_validate_message().
int ast_ari_validate_asterisk_info(struct ast_json *json)
Validator for AsteriskInfo.
int ast_ari_validate_channel_varset(struct ast_json *json)
Validator for ChannelVarset.
int ast_ari_validate_referred_by(struct ast_json *json)
Validator for ReferredBy.
int ast_ari_validate_asterisk_ping(struct ast_json *json)
Validator for AsteriskPing.
ari_validator ast_ari_validate_recording_finished_fn(void)
Function pointer to ast_ari_validate_recording_finished().
int ast_ari_validate_stored_recording(struct ast_json *json)
Validator for StoredRecording.
int ast_ari_validate_bridge_destroyed(struct ast_json *json)
Validator for BridgeDestroyed.
ari_validator ast_ari_validate_mailbox_fn(void)
Function pointer to ast_ari_validate_mailbox().
ari_validator ast_ari_validate_status_info_fn(void)
Function pointer to ast_ari_validate_status_info().
int ast_ari_validate_format_lang_pair(struct ast_json *json)
Validator for FormatLangPair.
int ast_ari_validate_application_registered(struct ast_json *json)
Validator for ApplicationRegistered.
int ast_ari_validate_caller_id(struct ast_json *json)
Validator for CallerID.
int ast_ari_validate_endpoint(struct ast_json *json)
Validator for Endpoint.
int ast_ari_validate_status_info(struct ast_json *json)
Validator for StatusInfo.
ari_validator ast_ari_validate_log_channel_fn(void)
Function pointer to ast_ari_validate_log_channel().
ari_validator ast_ari_validate_rtpstat_fn(void)
Function pointer to ast_ari_validate_rtpstat().
int ast_ari_validate_playback_continuing(struct ast_json *json)
Validator for PlaybackContinuing.
int ast_ari_validate_channel_caller_id(struct ast_json *json)
Validator for ChannelCallerId.
ari_validator ast_ari_validate_peer_status_change_fn(void)
Function pointer to ast_ari_validate_peer_status_change().
ari_validator ast_ari_validate_text_message_fn(void)
Function pointer to ast_ari_validate_text_message().
ari_validator ast_ari_validate_restrequest_fn(void)
Function pointer to ast_ari_validate_restrequest().
int ast_ari_validate_required_destination(struct ast_json *json)
Validator for RequiredDestination.
ari_validator ast_ari_validate_stasis_start_fn(void)
Function pointer to ast_ari_validate_stasis_start().
int ast_ari_validate_recording_finished(struct ast_json *json)
Validator for RecordingFinished.
ari_validator ast_ari_validate_channel_connected_line_fn(void)
Function pointer to ast_ari_validate_channel_connected_line().
ari_validator ast_ari_validate_channel_dialplan_fn(void)
Function pointer to ast_ari_validate_channel_dialplan().
ari_validator ast_ari_validate_text_message_received_fn(void)
Function pointer to ast_ari_validate_text_message_received().
int ast_ari_validate_device_state(struct ast_json *json)
Validator for DeviceState.
int ast_ari_validate_channel_left_bridge(struct ast_json *json)
Validator for ChannelLeftBridge.
int ast_ari_validate_device_state_changed(struct ast_json *json)
Validator for DeviceStateChanged.
int ast_ari_validate_channel_entered_bridge(struct ast_json *json)
Validator for ChannelEnteredBridge.
ari_validator ast_ari_validate_recording_failed_fn(void)
Function pointer to ast_ari_validate_recording_failed().
int ast_ari_validate_restresponse(struct ast_json *json)
Validator for RESTResponse.
int ast_ari_validate_channel_unhold(struct ast_json *json)
Validator for ChannelUnhold.
ari_validator ast_ari_validate_device_state_fn(void)
Function pointer to ast_ari_validate_device_state().
ari_validator ast_ari_validate_bridge_video_source_changed_fn(void)
Function pointer to ast_ari_validate_bridge_video_source_changed().
int ast_ari_validate_event(struct ast_json *json)
Validator for Event.
int ast_ari_validate_bridge_video_source_changed(struct ast_json *json)
Validator for BridgeVideoSourceChanged.
int ast_ari_validate_system_info(struct ast_json *json)
Validator for SystemInfo.
ari_validator ast_ari_validate_channel_hold_fn(void)
Function pointer to ast_ari_validate_channel_hold().
int ast_ari_validate_recording_started(struct ast_json *json)
Validator for RecordingStarted.
int ast_ari_validate_channel(struct ast_json *json)
Validator for Channel.
ari_validator ast_ari_validate_module_fn(void)
Function pointer to ast_ari_validate_module().
int ast_ari_validate_build_info(struct ast_json *json)
Validator for BuildInfo.
int ast_ari_validate_rtpstat(struct ast_json *json)
Validator for RTPstat.
int ast_ari_validate_recording_failed(struct ast_json *json)
Validator for RecordingFailed.
int ast_ari_validate_contact_status_change(struct ast_json *json)
Validator for ContactStatusChange.
ari_validator ast_ari_validate_restresponse_fn(void)
Function pointer to ast_ari_validate_restresponse().
ari_validator ast_ari_validate_channel_caller_id_fn(void)
Function pointer to ast_ari_validate_channel_caller_id().
ari_validator ast_ari_validate_channel_state_change_fn(void)
Function pointer to ast_ari_validate_channel_state_change().
ari_validator ast_ari_validate_referred_by_fn(void)
Function pointer to ast_ari_validate_referred_by().
ari_validator ast_ari_validate_format_lang_pair_fn(void)
Function pointer to ast_ari_validate_format_lang_pair().
ari_validator ast_ari_validate_application_move_failed_fn(void)
Function pointer to ast_ari_validate_application_move_failed().
int ast_ari_validate_config_info(struct ast_json *json)
Validator for ConfigInfo.
ari_validator ast_ari_validate_channel_entered_bridge_fn(void)
Function pointer to ast_ari_validate_channel_entered_bridge().
ari_validator ast_ari_validate_channel_destroyed_fn(void)
Function pointer to ast_ari_validate_channel_destroyed().
ari_validator ast_ari_validate_endpoint_state_change_fn(void)
Function pointer to ast_ari_validate_endpoint_state_change().
int ast_ari_validate_restheader(struct ast_json *json)
Validator for RESTHeader.
ari_validator ast_ari_validate_channel_hangup_request_fn(void)
Function pointer to ast_ari_validate_channel_hangup_request().
int ast_ari_validate_config_tuple(struct ast_json *json)
Validator for ConfigTuple.
int ast_ari_validate_sound(struct ast_json *json)
Validator for Sound.
int ast_ari_validate_dial(struct ast_json *json)
Validator for Dial.
int ast_ari_validate_variables(struct ast_json *json)
Validator for Variables.
ari_validator ast_ari_validate_call_claimed_fn(void)
Function pointer to ast_ari_validate_call_claimed().
int ast_ari_validate_channel_created(struct ast_json *json)
Validator for ChannelCreated.
ari_validator ast_ari_validate_device_state_changed_fn(void)
Function pointer to ast_ari_validate_device_state_changed().
int ast_ari_validate_channel_userevent(struct ast_json *json)
Validator for ChannelUserevent.
int ast_ari_validate_application_unregistered(struct ast_json *json)
Validator for ApplicationUnregistered.
int ast_ari_validate_bridge_merged(struct ast_json *json)
Validator for BridgeMerged.
int ast_ari_validate_channel_talking_started(struct ast_json *json)
Validator for ChannelTalkingStarted.
ari_validator ast_ari_validate_channel_unhold_fn(void)
Function pointer to ast_ari_validate_channel_unhold().
int ast_ari_validate_peer(struct ast_json *json)
Validator for Peer.
int ast_ari_validate_channel_transfer(struct ast_json *json)
Validator for ChannelTransfer.
int ast_ari_validate_channel_connected_line(struct ast_json *json)
Validator for ChannelConnectedLine.
ari_validator ast_ari_validate_channel_transfer_fn(void)
Function pointer to ast_ari_validate_channel_transfer().
ari_validator ast_ari_validate_bridge_merged_fn(void)
Function pointer to ast_ari_validate_bridge_merged().
ari_validator ast_ari_validate_channel_fn(void)
Function pointer to ast_ari_validate_channel().
ari_validator ast_ari_validate_endpoint_fn(void)
Function pointer to ast_ari_validate_endpoint().
ari_validator ast_ari_validate_bridge_created_fn(void)
Function pointer to ast_ari_validate_bridge_created().
ari_validator ast_ari_validate_asterisk_info_fn(void)
Function pointer to ast_ari_validate_asterisk_info().
int ast_ari_validate_channel_hold(struct ast_json *json)
Validator for ChannelHold.
Generated file - Build validators for ARI model objects.
int ast_ari_validate_object(struct ast_json *json)
Validator for native Swagger object.
int ast_ari_validate_int(struct ast_json *json)
Validator for native Swagger int.
int ast_ari_validate_long(struct ast_json *json)
Validator for native Swagger long.
int ast_ari_validate_string(struct ast_json *json)
Validator for native Swagger string.
int ast_ari_validate_boolean(struct ast_json *json)
Validator for native Swagger boolean.
int ast_ari_validate_double(struct ast_json *json)
Validator for native Swagger double.
int ast_ari_validate_date(struct ast_json *json)
Validator for native Swagger date.
int ast_ari_validate_list(struct ast_json *json, int(*fn)(struct ast_json *))
Validator for a Swagger List[]/JSON array.
int(* ari_validator)(struct ast_json *json)
Function type for validator functions. Allows for.
static int has_priority(void)
Check whether we were set to high(er) priority.
Definition asterisk.c:1791
Asterisk main include file. File version handling, generic pbx functions.
#define ast_log
Definition astobj2.c:42
Support for logging to various files, console and syslog Configuration in file logger....
#define LOG_ERROR
struct ast_json * ast_json_object_iter_value(struct ast_json_iter *iter)
Get the value from an iterator.
Definition json.c:455
struct ast_json_iter * ast_json_object_iter_next(struct ast_json *object, struct ast_json_iter *iter)
Get the next iterator.
Definition json.c:447
struct ast_json_iter * ast_json_object_iter(struct ast_json *object)
Get an iterator pointing to the first field in a JSON object.
Definition json.c:439
const char * ast_json_string_get(const struct ast_json *string)
Get the value of a JSON string.
Definition json.c:283
const char * ast_json_object_iter_key(struct ast_json_iter *iter)
Get the key from an iterator.
Definition json.c:451
struct ast_json * ast_json_object_get(struct ast_json *object, const char *key)
Get a field from a JSON object.
Definition json.c:407
Asterisk module definitions.
Iterator for JSON object key/values.
Abstract JSON element (object, array, string, int, ...).