Asterisk - The Open Source Telephony Project GIT-master-590b490
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_channel_ids = 0;
826 int has_resource = 0;
827 int has_technology = 0;
828
829 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
830 if (strcmp("channel_ids", ast_json_object_iter_key(iter)) == 0) {
831 int prop_is_valid;
832 has_channel_ids = 1;
833 prop_is_valid = ast_ari_validate_list(
836 if (!prop_is_valid) {
837 ast_log(LOG_ERROR, "ARI Endpoint field channel_ids failed validation\n");
838 res = 0;
839 }
840 } else
841 if (strcmp("resource", ast_json_object_iter_key(iter)) == 0) {
842 int prop_is_valid;
843 has_resource = 1;
844 prop_is_valid = ast_ari_validate_string(
846 if (!prop_is_valid) {
847 ast_log(LOG_ERROR, "ARI Endpoint field resource failed validation\n");
848 res = 0;
849 }
850 } else
851 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
852 int prop_is_valid;
853 prop_is_valid = ast_ari_validate_string(
855 if (!prop_is_valid) {
856 ast_log(LOG_ERROR, "ARI Endpoint field state failed validation\n");
857 res = 0;
858 }
859 } else
860 if (strcmp("technology", ast_json_object_iter_key(iter)) == 0) {
861 int prop_is_valid;
862 has_technology = 1;
863 prop_is_valid = ast_ari_validate_string(
865 if (!prop_is_valid) {
866 ast_log(LOG_ERROR, "ARI Endpoint field technology failed validation\n");
867 res = 0;
868 }
869 } else
870 {
872 "ARI Endpoint has undocumented field %s\n",
874 res = 0;
875 }
876 }
877
878 if (!has_channel_ids) {
879 ast_log(LOG_ERROR, "ARI Endpoint missing required field channel_ids\n");
880 res = 0;
881 }
882
883 if (!has_resource) {
884 ast_log(LOG_ERROR, "ARI Endpoint missing required field resource\n");
885 res = 0;
886 }
887
888 if (!has_technology) {
889 ast_log(LOG_ERROR, "ARI Endpoint missing required field technology\n");
890 res = 0;
891 }
892
893 return res;
894}
895
900
902{
903 int res = 1;
904 struct ast_json_iter *iter;
905 int has_body = 0;
906 int has_from = 0;
907 int has_to = 0;
908
909 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
910 if (strcmp("body", ast_json_object_iter_key(iter)) == 0) {
911 int prop_is_valid;
912 has_body = 1;
913 prop_is_valid = ast_ari_validate_string(
915 if (!prop_is_valid) {
916 ast_log(LOG_ERROR, "ARI TextMessage field body failed validation\n");
917 res = 0;
918 }
919 } else
920 if (strcmp("from", ast_json_object_iter_key(iter)) == 0) {
921 int prop_is_valid;
922 has_from = 1;
923 prop_is_valid = ast_ari_validate_string(
925 if (!prop_is_valid) {
926 ast_log(LOG_ERROR, "ARI TextMessage field from failed validation\n");
927 res = 0;
928 }
929 } else
930 if (strcmp("to", ast_json_object_iter_key(iter)) == 0) {
931 int prop_is_valid;
932 has_to = 1;
933 prop_is_valid = ast_ari_validate_string(
935 if (!prop_is_valid) {
936 ast_log(LOG_ERROR, "ARI TextMessage field to failed validation\n");
937 res = 0;
938 }
939 } else
940 if (strcmp("variables", ast_json_object_iter_key(iter)) == 0) {
941 int prop_is_valid;
942 prop_is_valid = ast_ari_validate_object(
944 if (!prop_is_valid) {
945 ast_log(LOG_ERROR, "ARI TextMessage field variables failed validation\n");
946 res = 0;
947 }
948 } else
949 {
951 "ARI TextMessage has undocumented field %s\n",
953 res = 0;
954 }
955 }
956
957 if (!has_body) {
958 ast_log(LOG_ERROR, "ARI TextMessage missing required field body\n");
959 res = 0;
960 }
961
962 if (!has_from) {
963 ast_log(LOG_ERROR, "ARI TextMessage missing required field from\n");
964 res = 0;
965 }
966
967 if (!has_to) {
968 ast_log(LOG_ERROR, "ARI TextMessage missing required field to\n");
969 res = 0;
970 }
971
972 return res;
973}
974
979
981{
982 int res = 1;
983 struct ast_json_iter *iter;
984 int has_name = 0;
985 int has_number = 0;
986
987 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
988 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
989 int prop_is_valid;
990 has_name = 1;
991 prop_is_valid = ast_ari_validate_string(
993 if (!prop_is_valid) {
994 ast_log(LOG_ERROR, "ARI CallerID field name failed validation\n");
995 res = 0;
996 }
997 } else
998 if (strcmp("number", ast_json_object_iter_key(iter)) == 0) {
999 int prop_is_valid;
1000 has_number = 1;
1001 prop_is_valid = ast_ari_validate_string(
1003 if (!prop_is_valid) {
1004 ast_log(LOG_ERROR, "ARI CallerID field number failed validation\n");
1005 res = 0;
1006 }
1007 } else
1008 {
1010 "ARI CallerID has undocumented field %s\n",
1012 res = 0;
1013 }
1014 }
1015
1016 if (!has_name) {
1017 ast_log(LOG_ERROR, "ARI CallerID missing required field name\n");
1018 res = 0;
1019 }
1020
1021 if (!has_number) {
1022 ast_log(LOG_ERROR, "ARI CallerID missing required field number\n");
1023 res = 0;
1024 }
1025
1026 return res;
1027}
1028
1033
1035{
1036 int res = 1;
1037 struct ast_json_iter *iter;
1038 int has_accountcode = 0;
1039 int has_caller = 0;
1040 int has_connected = 0;
1041 int has_creationtime = 0;
1042 int has_dialplan = 0;
1043 int has_id = 0;
1044 int has_language = 0;
1045 int has_name = 0;
1046 int has_protocol_id = 0;
1047 int has_state = 0;
1048
1049 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1050 if (strcmp("accountcode", ast_json_object_iter_key(iter)) == 0) {
1051 int prop_is_valid;
1052 has_accountcode = 1;
1053 prop_is_valid = ast_ari_validate_string(
1055 if (!prop_is_valid) {
1056 ast_log(LOG_ERROR, "ARI Channel field accountcode failed validation\n");
1057 res = 0;
1058 }
1059 } else
1060 if (strcmp("caller", ast_json_object_iter_key(iter)) == 0) {
1061 int prop_is_valid;
1062 has_caller = 1;
1063 prop_is_valid = ast_ari_validate_caller_id(
1065 if (!prop_is_valid) {
1066 ast_log(LOG_ERROR, "ARI Channel field caller failed validation\n");
1067 res = 0;
1068 }
1069 } else
1070 if (strcmp("caller_rdnis", ast_json_object_iter_key(iter)) == 0) {
1071 int prop_is_valid;
1072 prop_is_valid = ast_ari_validate_string(
1074 if (!prop_is_valid) {
1075 ast_log(LOG_ERROR, "ARI Channel field caller_rdnis failed validation\n");
1076 res = 0;
1077 }
1078 } else
1079 if (strcmp("channelvars", ast_json_object_iter_key(iter)) == 0) {
1080 int prop_is_valid;
1081 prop_is_valid = ast_ari_validate_object(
1083 if (!prop_is_valid) {
1084 ast_log(LOG_ERROR, "ARI Channel field channelvars failed validation\n");
1085 res = 0;
1086 }
1087 } else
1088 if (strcmp("connected", ast_json_object_iter_key(iter)) == 0) {
1089 int prop_is_valid;
1090 has_connected = 1;
1091 prop_is_valid = ast_ari_validate_caller_id(
1093 if (!prop_is_valid) {
1094 ast_log(LOG_ERROR, "ARI Channel field connected failed validation\n");
1095 res = 0;
1096 }
1097 } else
1098 if (strcmp("creationtime", ast_json_object_iter_key(iter)) == 0) {
1099 int prop_is_valid;
1100 has_creationtime = 1;
1101 prop_is_valid = ast_ari_validate_date(
1103 if (!prop_is_valid) {
1104 ast_log(LOG_ERROR, "ARI Channel field creationtime failed validation\n");
1105 res = 0;
1106 }
1107 } else
1108 if (strcmp("dialplan", ast_json_object_iter_key(iter)) == 0) {
1109 int prop_is_valid;
1110 has_dialplan = 1;
1111 prop_is_valid = ast_ari_validate_dialplan_cep(
1113 if (!prop_is_valid) {
1114 ast_log(LOG_ERROR, "ARI Channel field dialplan failed validation\n");
1115 res = 0;
1116 }
1117 } else
1118 if (strcmp("id", ast_json_object_iter_key(iter)) == 0) {
1119 int prop_is_valid;
1120 has_id = 1;
1121 prop_is_valid = ast_ari_validate_string(
1123 if (!prop_is_valid) {
1124 ast_log(LOG_ERROR, "ARI Channel field id failed validation\n");
1125 res = 0;
1126 }
1127 } else
1128 if (strcmp("language", ast_json_object_iter_key(iter)) == 0) {
1129 int prop_is_valid;
1130 has_language = 1;
1131 prop_is_valid = ast_ari_validate_string(
1133 if (!prop_is_valid) {
1134 ast_log(LOG_ERROR, "ARI Channel field language failed validation\n");
1135 res = 0;
1136 }
1137 } else
1138 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
1139 int prop_is_valid;
1140 has_name = 1;
1141 prop_is_valid = ast_ari_validate_string(
1143 if (!prop_is_valid) {
1144 ast_log(LOG_ERROR, "ARI Channel field name failed validation\n");
1145 res = 0;
1146 }
1147 } else
1148 if (strcmp("protocol_id", ast_json_object_iter_key(iter)) == 0) {
1149 int prop_is_valid;
1150 has_protocol_id = 1;
1151 prop_is_valid = ast_ari_validate_string(
1153 if (!prop_is_valid) {
1154 ast_log(LOG_ERROR, "ARI Channel field protocol_id failed validation\n");
1155 res = 0;
1156 }
1157 } else
1158 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
1159 int prop_is_valid;
1160 has_state = 1;
1161 prop_is_valid = ast_ari_validate_string(
1163 if (!prop_is_valid) {
1164 ast_log(LOG_ERROR, "ARI Channel field state failed validation\n");
1165 res = 0;
1166 }
1167 } else
1168 if (strcmp("tenantid", ast_json_object_iter_key(iter)) == 0) {
1169 int prop_is_valid;
1170 prop_is_valid = ast_ari_validate_string(
1172 if (!prop_is_valid) {
1173 ast_log(LOG_ERROR, "ARI Channel field tenantid failed validation\n");
1174 res = 0;
1175 }
1176 } else
1177 {
1179 "ARI Channel has undocumented field %s\n",
1181 res = 0;
1182 }
1183 }
1184
1185 if (!has_accountcode) {
1186 ast_log(LOG_ERROR, "ARI Channel missing required field accountcode\n");
1187 res = 0;
1188 }
1189
1190 if (!has_caller) {
1191 ast_log(LOG_ERROR, "ARI Channel missing required field caller\n");
1192 res = 0;
1193 }
1194
1195 if (!has_connected) {
1196 ast_log(LOG_ERROR, "ARI Channel missing required field connected\n");
1197 res = 0;
1198 }
1199
1200 if (!has_creationtime) {
1201 ast_log(LOG_ERROR, "ARI Channel missing required field creationtime\n");
1202 res = 0;
1203 }
1204
1205 if (!has_dialplan) {
1206 ast_log(LOG_ERROR, "ARI Channel missing required field dialplan\n");
1207 res = 0;
1208 }
1209
1210 if (!has_id) {
1211 ast_log(LOG_ERROR, "ARI Channel missing required field id\n");
1212 res = 0;
1213 }
1214
1215 if (!has_language) {
1216 ast_log(LOG_ERROR, "ARI Channel missing required field language\n");
1217 res = 0;
1218 }
1219
1220 if (!has_name) {
1221 ast_log(LOG_ERROR, "ARI Channel missing required field name\n");
1222 res = 0;
1223 }
1224
1225 if (!has_protocol_id) {
1226 ast_log(LOG_ERROR, "ARI Channel missing required field protocol_id\n");
1227 res = 0;
1228 }
1229
1230 if (!has_state) {
1231 ast_log(LOG_ERROR, "ARI Channel missing required field state\n");
1232 res = 0;
1233 }
1234
1235 return res;
1236}
1237
1242
1244{
1245 int res = 1;
1246 struct ast_json_iter *iter;
1247
1248 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1249 {
1251 "ARI Dialed has undocumented field %s\n",
1253 res = 0;
1254 }
1255 }
1256
1257 return res;
1258}
1259
1264
1266{
1267 int res = 1;
1268 struct ast_json_iter *iter;
1269 int has_app_data = 0;
1270 int has_app_name = 0;
1271 int has_context = 0;
1272 int has_exten = 0;
1273 int has_priority = 0;
1274
1275 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1276 if (strcmp("app_data", ast_json_object_iter_key(iter)) == 0) {
1277 int prop_is_valid;
1278 has_app_data = 1;
1279 prop_is_valid = ast_ari_validate_string(
1281 if (!prop_is_valid) {
1282 ast_log(LOG_ERROR, "ARI DialplanCEP field app_data failed validation\n");
1283 res = 0;
1284 }
1285 } else
1286 if (strcmp("app_name", ast_json_object_iter_key(iter)) == 0) {
1287 int prop_is_valid;
1288 has_app_name = 1;
1289 prop_is_valid = ast_ari_validate_string(
1291 if (!prop_is_valid) {
1292 ast_log(LOG_ERROR, "ARI DialplanCEP field app_name failed validation\n");
1293 res = 0;
1294 }
1295 } else
1296 if (strcmp("context", ast_json_object_iter_key(iter)) == 0) {
1297 int prop_is_valid;
1298 has_context = 1;
1299 prop_is_valid = ast_ari_validate_string(
1301 if (!prop_is_valid) {
1302 ast_log(LOG_ERROR, "ARI DialplanCEP field context failed validation\n");
1303 res = 0;
1304 }
1305 } else
1306 if (strcmp("exten", ast_json_object_iter_key(iter)) == 0) {
1307 int prop_is_valid;
1308 has_exten = 1;
1309 prop_is_valid = ast_ari_validate_string(
1311 if (!prop_is_valid) {
1312 ast_log(LOG_ERROR, "ARI DialplanCEP field exten failed validation\n");
1313 res = 0;
1314 }
1315 } else
1316 if (strcmp("priority", ast_json_object_iter_key(iter)) == 0) {
1317 int prop_is_valid;
1318 has_priority = 1;
1319 prop_is_valid = ast_ari_validate_long(
1321 if (!prop_is_valid) {
1322 ast_log(LOG_ERROR, "ARI DialplanCEP field priority failed validation\n");
1323 res = 0;
1324 }
1325 } else
1326 {
1328 "ARI DialplanCEP has undocumented field %s\n",
1330 res = 0;
1331 }
1332 }
1333
1334 if (!has_app_data) {
1335 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field app_data\n");
1336 res = 0;
1337 }
1338
1339 if (!has_app_name) {
1340 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field app_name\n");
1341 res = 0;
1342 }
1343
1344 if (!has_context) {
1345 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field context\n");
1346 res = 0;
1347 }
1348
1349 if (!has_exten) {
1350 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field exten\n");
1351 res = 0;
1352 }
1353
1354 if (!has_priority) {
1355 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field priority\n");
1356 res = 0;
1357 }
1358
1359 return res;
1360}
1361
1366
1368{
1369 int res = 1;
1370 struct ast_json_iter *iter;
1371 int has_channel_uniqueid = 0;
1372 int has_local_ssrc = 0;
1373 int has_remote_ssrc = 0;
1374 int has_rxcount = 0;
1375 int has_rxoctetcount = 0;
1376 int has_rxploss = 0;
1377 int has_txcount = 0;
1378 int has_txoctetcount = 0;
1379 int has_txploss = 0;
1380
1381 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1382 if (strcmp("channel_uniqueid", ast_json_object_iter_key(iter)) == 0) {
1383 int prop_is_valid;
1384 has_channel_uniqueid = 1;
1385 prop_is_valid = ast_ari_validate_string(
1387 if (!prop_is_valid) {
1388 ast_log(LOG_ERROR, "ARI RTPstat field channel_uniqueid failed validation\n");
1389 res = 0;
1390 }
1391 } else
1392 if (strcmp("local_maxjitter", ast_json_object_iter_key(iter)) == 0) {
1393 int prop_is_valid;
1394 prop_is_valid = ast_ari_validate_double(
1396 if (!prop_is_valid) {
1397 ast_log(LOG_ERROR, "ARI RTPstat field local_maxjitter failed validation\n");
1398 res = 0;
1399 }
1400 } else
1401 if (strcmp("local_maxrxploss", ast_json_object_iter_key(iter)) == 0) {
1402 int prop_is_valid;
1403 prop_is_valid = ast_ari_validate_double(
1405 if (!prop_is_valid) {
1406 ast_log(LOG_ERROR, "ARI RTPstat field local_maxrxploss failed validation\n");
1407 res = 0;
1408 }
1409 } else
1410 if (strcmp("local_minjitter", ast_json_object_iter_key(iter)) == 0) {
1411 int prop_is_valid;
1412 prop_is_valid = ast_ari_validate_double(
1414 if (!prop_is_valid) {
1415 ast_log(LOG_ERROR, "ARI RTPstat field local_minjitter failed validation\n");
1416 res = 0;
1417 }
1418 } else
1419 if (strcmp("local_minrxploss", ast_json_object_iter_key(iter)) == 0) {
1420 int prop_is_valid;
1421 prop_is_valid = ast_ari_validate_double(
1423 if (!prop_is_valid) {
1424 ast_log(LOG_ERROR, "ARI RTPstat field local_minrxploss failed validation\n");
1425 res = 0;
1426 }
1427 } else
1428 if (strcmp("local_normdevjitter", ast_json_object_iter_key(iter)) == 0) {
1429 int prop_is_valid;
1430 prop_is_valid = ast_ari_validate_double(
1432 if (!prop_is_valid) {
1433 ast_log(LOG_ERROR, "ARI RTPstat field local_normdevjitter failed validation\n");
1434 res = 0;
1435 }
1436 } else
1437 if (strcmp("local_normdevrxploss", ast_json_object_iter_key(iter)) == 0) {
1438 int prop_is_valid;
1439 prop_is_valid = ast_ari_validate_double(
1441 if (!prop_is_valid) {
1442 ast_log(LOG_ERROR, "ARI RTPstat field local_normdevrxploss failed validation\n");
1443 res = 0;
1444 }
1445 } else
1446 if (strcmp("local_ssrc", ast_json_object_iter_key(iter)) == 0) {
1447 int prop_is_valid;
1448 has_local_ssrc = 1;
1449 prop_is_valid = ast_ari_validate_int(
1451 if (!prop_is_valid) {
1452 ast_log(LOG_ERROR, "ARI RTPstat field local_ssrc failed validation\n");
1453 res = 0;
1454 }
1455 } else
1456 if (strcmp("local_stdevjitter", ast_json_object_iter_key(iter)) == 0) {
1457 int prop_is_valid;
1458 prop_is_valid = ast_ari_validate_double(
1460 if (!prop_is_valid) {
1461 ast_log(LOG_ERROR, "ARI RTPstat field local_stdevjitter failed validation\n");
1462 res = 0;
1463 }
1464 } else
1465 if (strcmp("local_stdevrxploss", ast_json_object_iter_key(iter)) == 0) {
1466 int prop_is_valid;
1467 prop_is_valid = ast_ari_validate_double(
1469 if (!prop_is_valid) {
1470 ast_log(LOG_ERROR, "ARI RTPstat field local_stdevrxploss failed validation\n");
1471 res = 0;
1472 }
1473 } else
1474 if (strcmp("maxrtt", ast_json_object_iter_key(iter)) == 0) {
1475 int prop_is_valid;
1476 prop_is_valid = ast_ari_validate_double(
1478 if (!prop_is_valid) {
1479 ast_log(LOG_ERROR, "ARI RTPstat field maxrtt failed validation\n");
1480 res = 0;
1481 }
1482 } else
1483 if (strcmp("minrtt", ast_json_object_iter_key(iter)) == 0) {
1484 int prop_is_valid;
1485 prop_is_valid = ast_ari_validate_double(
1487 if (!prop_is_valid) {
1488 ast_log(LOG_ERROR, "ARI RTPstat field minrtt failed validation\n");
1489 res = 0;
1490 }
1491 } else
1492 if (strcmp("normdevrtt", ast_json_object_iter_key(iter)) == 0) {
1493 int prop_is_valid;
1494 prop_is_valid = ast_ari_validate_double(
1496 if (!prop_is_valid) {
1497 ast_log(LOG_ERROR, "ARI RTPstat field normdevrtt failed validation\n");
1498 res = 0;
1499 }
1500 } else
1501 if (strcmp("remote_maxjitter", ast_json_object_iter_key(iter)) == 0) {
1502 int prop_is_valid;
1503 prop_is_valid = ast_ari_validate_double(
1505 if (!prop_is_valid) {
1506 ast_log(LOG_ERROR, "ARI RTPstat field remote_maxjitter failed validation\n");
1507 res = 0;
1508 }
1509 } else
1510 if (strcmp("remote_maxrxploss", ast_json_object_iter_key(iter)) == 0) {
1511 int prop_is_valid;
1512 prop_is_valid = ast_ari_validate_double(
1514 if (!prop_is_valid) {
1515 ast_log(LOG_ERROR, "ARI RTPstat field remote_maxrxploss failed validation\n");
1516 res = 0;
1517 }
1518 } else
1519 if (strcmp("remote_minjitter", ast_json_object_iter_key(iter)) == 0) {
1520 int prop_is_valid;
1521 prop_is_valid = ast_ari_validate_double(
1523 if (!prop_is_valid) {
1524 ast_log(LOG_ERROR, "ARI RTPstat field remote_minjitter failed validation\n");
1525 res = 0;
1526 }
1527 } else
1528 if (strcmp("remote_minrxploss", ast_json_object_iter_key(iter)) == 0) {
1529 int prop_is_valid;
1530 prop_is_valid = ast_ari_validate_double(
1532 if (!prop_is_valid) {
1533 ast_log(LOG_ERROR, "ARI RTPstat field remote_minrxploss failed validation\n");
1534 res = 0;
1535 }
1536 } else
1537 if (strcmp("remote_normdevjitter", ast_json_object_iter_key(iter)) == 0) {
1538 int prop_is_valid;
1539 prop_is_valid = ast_ari_validate_double(
1541 if (!prop_is_valid) {
1542 ast_log(LOG_ERROR, "ARI RTPstat field remote_normdevjitter failed validation\n");
1543 res = 0;
1544 }
1545 } else
1546 if (strcmp("remote_normdevrxploss", ast_json_object_iter_key(iter)) == 0) {
1547 int prop_is_valid;
1548 prop_is_valid = ast_ari_validate_double(
1550 if (!prop_is_valid) {
1551 ast_log(LOG_ERROR, "ARI RTPstat field remote_normdevrxploss failed validation\n");
1552 res = 0;
1553 }
1554 } else
1555 if (strcmp("remote_ssrc", ast_json_object_iter_key(iter)) == 0) {
1556 int prop_is_valid;
1557 has_remote_ssrc = 1;
1558 prop_is_valid = ast_ari_validate_int(
1560 if (!prop_is_valid) {
1561 ast_log(LOG_ERROR, "ARI RTPstat field remote_ssrc failed validation\n");
1562 res = 0;
1563 }
1564 } else
1565 if (strcmp("remote_stdevjitter", ast_json_object_iter_key(iter)) == 0) {
1566 int prop_is_valid;
1567 prop_is_valid = ast_ari_validate_double(
1569 if (!prop_is_valid) {
1570 ast_log(LOG_ERROR, "ARI RTPstat field remote_stdevjitter failed validation\n");
1571 res = 0;
1572 }
1573 } else
1574 if (strcmp("remote_stdevrxploss", ast_json_object_iter_key(iter)) == 0) {
1575 int prop_is_valid;
1576 prop_is_valid = ast_ari_validate_double(
1578 if (!prop_is_valid) {
1579 ast_log(LOG_ERROR, "ARI RTPstat field remote_stdevrxploss failed validation\n");
1580 res = 0;
1581 }
1582 } else
1583 if (strcmp("rtt", ast_json_object_iter_key(iter)) == 0) {
1584 int prop_is_valid;
1585 prop_is_valid = ast_ari_validate_double(
1587 if (!prop_is_valid) {
1588 ast_log(LOG_ERROR, "ARI RTPstat field rtt failed validation\n");
1589 res = 0;
1590 }
1591 } else
1592 if (strcmp("rxcount", ast_json_object_iter_key(iter)) == 0) {
1593 int prop_is_valid;
1594 has_rxcount = 1;
1595 prop_is_valid = ast_ari_validate_int(
1597 if (!prop_is_valid) {
1598 ast_log(LOG_ERROR, "ARI RTPstat field rxcount failed validation\n");
1599 res = 0;
1600 }
1601 } else
1602 if (strcmp("rxjitter", ast_json_object_iter_key(iter)) == 0) {
1603 int prop_is_valid;
1604 prop_is_valid = ast_ari_validate_double(
1606 if (!prop_is_valid) {
1607 ast_log(LOG_ERROR, "ARI RTPstat field rxjitter failed validation\n");
1608 res = 0;
1609 }
1610 } else
1611 if (strcmp("rxoctetcount", ast_json_object_iter_key(iter)) == 0) {
1612 int prop_is_valid;
1613 has_rxoctetcount = 1;
1614 prop_is_valid = ast_ari_validate_int(
1616 if (!prop_is_valid) {
1617 ast_log(LOG_ERROR, "ARI RTPstat field rxoctetcount failed validation\n");
1618 res = 0;
1619 }
1620 } else
1621 if (strcmp("rxploss", ast_json_object_iter_key(iter)) == 0) {
1622 int prop_is_valid;
1623 has_rxploss = 1;
1624 prop_is_valid = ast_ari_validate_int(
1626 if (!prop_is_valid) {
1627 ast_log(LOG_ERROR, "ARI RTPstat field rxploss failed validation\n");
1628 res = 0;
1629 }
1630 } else
1631 if (strcmp("stdevrtt", ast_json_object_iter_key(iter)) == 0) {
1632 int prop_is_valid;
1633 prop_is_valid = ast_ari_validate_double(
1635 if (!prop_is_valid) {
1636 ast_log(LOG_ERROR, "ARI RTPstat field stdevrtt failed validation\n");
1637 res = 0;
1638 }
1639 } else
1640 if (strcmp("txcount", ast_json_object_iter_key(iter)) == 0) {
1641 int prop_is_valid;
1642 has_txcount = 1;
1643 prop_is_valid = ast_ari_validate_int(
1645 if (!prop_is_valid) {
1646 ast_log(LOG_ERROR, "ARI RTPstat field txcount failed validation\n");
1647 res = 0;
1648 }
1649 } else
1650 if (strcmp("txjitter", ast_json_object_iter_key(iter)) == 0) {
1651 int prop_is_valid;
1652 prop_is_valid = ast_ari_validate_double(
1654 if (!prop_is_valid) {
1655 ast_log(LOG_ERROR, "ARI RTPstat field txjitter failed validation\n");
1656 res = 0;
1657 }
1658 } else
1659 if (strcmp("txoctetcount", ast_json_object_iter_key(iter)) == 0) {
1660 int prop_is_valid;
1661 has_txoctetcount = 1;
1662 prop_is_valid = ast_ari_validate_int(
1664 if (!prop_is_valid) {
1665 ast_log(LOG_ERROR, "ARI RTPstat field txoctetcount failed validation\n");
1666 res = 0;
1667 }
1668 } else
1669 if (strcmp("txploss", ast_json_object_iter_key(iter)) == 0) {
1670 int prop_is_valid;
1671 has_txploss = 1;
1672 prop_is_valid = ast_ari_validate_int(
1674 if (!prop_is_valid) {
1675 ast_log(LOG_ERROR, "ARI RTPstat field txploss failed validation\n");
1676 res = 0;
1677 }
1678 } else
1679 {
1681 "ARI RTPstat has undocumented field %s\n",
1683 res = 0;
1684 }
1685 }
1686
1687 if (!has_channel_uniqueid) {
1688 ast_log(LOG_ERROR, "ARI RTPstat missing required field channel_uniqueid\n");
1689 res = 0;
1690 }
1691
1692 if (!has_local_ssrc) {
1693 ast_log(LOG_ERROR, "ARI RTPstat missing required field local_ssrc\n");
1694 res = 0;
1695 }
1696
1697 if (!has_remote_ssrc) {
1698 ast_log(LOG_ERROR, "ARI RTPstat missing required field remote_ssrc\n");
1699 res = 0;
1700 }
1701
1702 if (!has_rxcount) {
1703 ast_log(LOG_ERROR, "ARI RTPstat missing required field rxcount\n");
1704 res = 0;
1705 }
1706
1707 if (!has_rxoctetcount) {
1708 ast_log(LOG_ERROR, "ARI RTPstat missing required field rxoctetcount\n");
1709 res = 0;
1710 }
1711
1712 if (!has_rxploss) {
1713 ast_log(LOG_ERROR, "ARI RTPstat missing required field rxploss\n");
1714 res = 0;
1715 }
1716
1717 if (!has_txcount) {
1718 ast_log(LOG_ERROR, "ARI RTPstat missing required field txcount\n");
1719 res = 0;
1720 }
1721
1722 if (!has_txoctetcount) {
1723 ast_log(LOG_ERROR, "ARI RTPstat missing required field txoctetcount\n");
1724 res = 0;
1725 }
1726
1727 if (!has_txploss) {
1728 ast_log(LOG_ERROR, "ARI RTPstat missing required field txploss\n");
1729 res = 0;
1730 }
1731
1732 return res;
1733}
1734
1739
1741{
1742 int res = 1;
1743 struct ast_json_iter *iter;
1744 int has_bridge_class = 0;
1745 int has_bridge_type = 0;
1746 int has_channels = 0;
1747 int has_creationtime = 0;
1748 int has_creator = 0;
1749 int has_id = 0;
1750 int has_name = 0;
1751 int has_technology = 0;
1752
1753 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1754 if (strcmp("bridge_class", ast_json_object_iter_key(iter)) == 0) {
1755 int prop_is_valid;
1756 has_bridge_class = 1;
1757 prop_is_valid = ast_ari_validate_string(
1759 if (!prop_is_valid) {
1760 ast_log(LOG_ERROR, "ARI Bridge field bridge_class failed validation\n");
1761 res = 0;
1762 }
1763 } else
1764 if (strcmp("bridge_type", ast_json_object_iter_key(iter)) == 0) {
1765 int prop_is_valid;
1766 has_bridge_type = 1;
1767 prop_is_valid = ast_ari_validate_string(
1769 if (!prop_is_valid) {
1770 ast_log(LOG_ERROR, "ARI Bridge field bridge_type failed validation\n");
1771 res = 0;
1772 }
1773 } else
1774 if (strcmp("channels", ast_json_object_iter_key(iter)) == 0) {
1775 int prop_is_valid;
1776 has_channels = 1;
1777 prop_is_valid = ast_ari_validate_list(
1780 if (!prop_is_valid) {
1781 ast_log(LOG_ERROR, "ARI Bridge field channels failed validation\n");
1782 res = 0;
1783 }
1784 } else
1785 if (strcmp("creationtime", ast_json_object_iter_key(iter)) == 0) {
1786 int prop_is_valid;
1787 has_creationtime = 1;
1788 prop_is_valid = ast_ari_validate_date(
1790 if (!prop_is_valid) {
1791 ast_log(LOG_ERROR, "ARI Bridge field creationtime failed validation\n");
1792 res = 0;
1793 }
1794 } else
1795 if (strcmp("creator", ast_json_object_iter_key(iter)) == 0) {
1796 int prop_is_valid;
1797 has_creator = 1;
1798 prop_is_valid = ast_ari_validate_string(
1800 if (!prop_is_valid) {
1801 ast_log(LOG_ERROR, "ARI Bridge field creator failed validation\n");
1802 res = 0;
1803 }
1804 } else
1805 if (strcmp("id", ast_json_object_iter_key(iter)) == 0) {
1806 int prop_is_valid;
1807 has_id = 1;
1808 prop_is_valid = ast_ari_validate_string(
1810 if (!prop_is_valid) {
1811 ast_log(LOG_ERROR, "ARI Bridge field id failed validation\n");
1812 res = 0;
1813 }
1814 } else
1815 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
1816 int prop_is_valid;
1817 has_name = 1;
1818 prop_is_valid = ast_ari_validate_string(
1820 if (!prop_is_valid) {
1821 ast_log(LOG_ERROR, "ARI Bridge field name failed validation\n");
1822 res = 0;
1823 }
1824 } else
1825 if (strcmp("technology", ast_json_object_iter_key(iter)) == 0) {
1826 int prop_is_valid;
1827 has_technology = 1;
1828 prop_is_valid = ast_ari_validate_string(
1830 if (!prop_is_valid) {
1831 ast_log(LOG_ERROR, "ARI Bridge field technology failed validation\n");
1832 res = 0;
1833 }
1834 } else
1835 if (strcmp("video_mode", ast_json_object_iter_key(iter)) == 0) {
1836 int prop_is_valid;
1837 prop_is_valid = ast_ari_validate_string(
1839 if (!prop_is_valid) {
1840 ast_log(LOG_ERROR, "ARI Bridge field video_mode failed validation\n");
1841 res = 0;
1842 }
1843 } else
1844 if (strcmp("video_source_id", ast_json_object_iter_key(iter)) == 0) {
1845 int prop_is_valid;
1846 prop_is_valid = ast_ari_validate_string(
1848 if (!prop_is_valid) {
1849 ast_log(LOG_ERROR, "ARI Bridge field video_source_id failed validation\n");
1850 res = 0;
1851 }
1852 } else
1853 {
1855 "ARI Bridge has undocumented field %s\n",
1857 res = 0;
1858 }
1859 }
1860
1861 if (!has_bridge_class) {
1862 ast_log(LOG_ERROR, "ARI Bridge missing required field bridge_class\n");
1863 res = 0;
1864 }
1865
1866 if (!has_bridge_type) {
1867 ast_log(LOG_ERROR, "ARI Bridge missing required field bridge_type\n");
1868 res = 0;
1869 }
1870
1871 if (!has_channels) {
1872 ast_log(LOG_ERROR, "ARI Bridge missing required field channels\n");
1873 res = 0;
1874 }
1875
1876 if (!has_creationtime) {
1877 ast_log(LOG_ERROR, "ARI Bridge missing required field creationtime\n");
1878 res = 0;
1879 }
1880
1881 if (!has_creator) {
1882 ast_log(LOG_ERROR, "ARI Bridge missing required field creator\n");
1883 res = 0;
1884 }
1885
1886 if (!has_id) {
1887 ast_log(LOG_ERROR, "ARI Bridge missing required field id\n");
1888 res = 0;
1889 }
1890
1891 if (!has_name) {
1892 ast_log(LOG_ERROR, "ARI Bridge missing required field name\n");
1893 res = 0;
1894 }
1895
1896 if (!has_technology) {
1897 ast_log(LOG_ERROR, "ARI Bridge missing required field technology\n");
1898 res = 0;
1899 }
1900
1901 return res;
1902}
1903
1908
1910{
1911 int res = 1;
1912 struct ast_json_iter *iter;
1913 int has_format = 0;
1914 int has_name = 0;
1915 int has_state = 0;
1916 int has_target_uri = 0;
1917
1918 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1919 if (strcmp("cause", ast_json_object_iter_key(iter)) == 0) {
1920 int prop_is_valid;
1921 prop_is_valid = ast_ari_validate_string(
1923 if (!prop_is_valid) {
1924 ast_log(LOG_ERROR, "ARI LiveRecording field cause failed validation\n");
1925 res = 0;
1926 }
1927 } else
1928 if (strcmp("duration", ast_json_object_iter_key(iter)) == 0) {
1929 int prop_is_valid;
1930 prop_is_valid = ast_ari_validate_int(
1932 if (!prop_is_valid) {
1933 ast_log(LOG_ERROR, "ARI LiveRecording field duration failed validation\n");
1934 res = 0;
1935 }
1936 } else
1937 if (strcmp("format", ast_json_object_iter_key(iter)) == 0) {
1938 int prop_is_valid;
1939 has_format = 1;
1940 prop_is_valid = ast_ari_validate_string(
1942 if (!prop_is_valid) {
1943 ast_log(LOG_ERROR, "ARI LiveRecording field format failed validation\n");
1944 res = 0;
1945 }
1946 } else
1947 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
1948 int prop_is_valid;
1949 has_name = 1;
1950 prop_is_valid = ast_ari_validate_string(
1952 if (!prop_is_valid) {
1953 ast_log(LOG_ERROR, "ARI LiveRecording field name failed validation\n");
1954 res = 0;
1955 }
1956 } else
1957 if (strcmp("silence_duration", ast_json_object_iter_key(iter)) == 0) {
1958 int prop_is_valid;
1959 prop_is_valid = ast_ari_validate_int(
1961 if (!prop_is_valid) {
1962 ast_log(LOG_ERROR, "ARI LiveRecording field silence_duration failed validation\n");
1963 res = 0;
1964 }
1965 } else
1966 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
1967 int prop_is_valid;
1968 has_state = 1;
1969 prop_is_valid = ast_ari_validate_string(
1971 if (!prop_is_valid) {
1972 ast_log(LOG_ERROR, "ARI LiveRecording field state failed validation\n");
1973 res = 0;
1974 }
1975 } else
1976 if (strcmp("talking_duration", ast_json_object_iter_key(iter)) == 0) {
1977 int prop_is_valid;
1978 prop_is_valid = ast_ari_validate_int(
1980 if (!prop_is_valid) {
1981 ast_log(LOG_ERROR, "ARI LiveRecording field talking_duration failed validation\n");
1982 res = 0;
1983 }
1984 } else
1985 if (strcmp("target_uri", ast_json_object_iter_key(iter)) == 0) {
1986 int prop_is_valid;
1987 has_target_uri = 1;
1988 prop_is_valid = ast_ari_validate_string(
1990 if (!prop_is_valid) {
1991 ast_log(LOG_ERROR, "ARI LiveRecording field target_uri failed validation\n");
1992 res = 0;
1993 }
1994 } else
1995 {
1997 "ARI LiveRecording has undocumented field %s\n",
1999 res = 0;
2000 }
2001 }
2002
2003 if (!has_format) {
2004 ast_log(LOG_ERROR, "ARI LiveRecording missing required field format\n");
2005 res = 0;
2006 }
2007
2008 if (!has_name) {
2009 ast_log(LOG_ERROR, "ARI LiveRecording missing required field name\n");
2010 res = 0;
2011 }
2012
2013 if (!has_state) {
2014 ast_log(LOG_ERROR, "ARI LiveRecording missing required field state\n");
2015 res = 0;
2016 }
2017
2018 if (!has_target_uri) {
2019 ast_log(LOG_ERROR, "ARI LiveRecording missing required field target_uri\n");
2020 res = 0;
2021 }
2022
2023 return res;
2024}
2025
2030
2032{
2033 int res = 1;
2034 struct ast_json_iter *iter;
2035 int has_format = 0;
2036 int has_name = 0;
2037
2038 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2039 if (strcmp("format", ast_json_object_iter_key(iter)) == 0) {
2040 int prop_is_valid;
2041 has_format = 1;
2042 prop_is_valid = ast_ari_validate_string(
2044 if (!prop_is_valid) {
2045 ast_log(LOG_ERROR, "ARI StoredRecording field format failed validation\n");
2046 res = 0;
2047 }
2048 } else
2049 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
2050 int prop_is_valid;
2051 has_name = 1;
2052 prop_is_valid = ast_ari_validate_string(
2054 if (!prop_is_valid) {
2055 ast_log(LOG_ERROR, "ARI StoredRecording field name failed validation\n");
2056 res = 0;
2057 }
2058 } else
2059 {
2061 "ARI StoredRecording has undocumented field %s\n",
2063 res = 0;
2064 }
2065 }
2066
2067 if (!has_format) {
2068 ast_log(LOG_ERROR, "ARI StoredRecording missing required field format\n");
2069 res = 0;
2070 }
2071
2072 if (!has_name) {
2073 ast_log(LOG_ERROR, "ARI StoredRecording missing required field name\n");
2074 res = 0;
2075 }
2076
2077 return res;
2078}
2079
2084
2086{
2087 int res = 1;
2088 struct ast_json_iter *iter;
2089 int has_format = 0;
2090 int has_language = 0;
2091
2092 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2093 if (strcmp("format", ast_json_object_iter_key(iter)) == 0) {
2094 int prop_is_valid;
2095 has_format = 1;
2096 prop_is_valid = ast_ari_validate_string(
2098 if (!prop_is_valid) {
2099 ast_log(LOG_ERROR, "ARI FormatLangPair field format failed validation\n");
2100 res = 0;
2101 }
2102 } else
2103 if (strcmp("language", ast_json_object_iter_key(iter)) == 0) {
2104 int prop_is_valid;
2105 has_language = 1;
2106 prop_is_valid = ast_ari_validate_string(
2108 if (!prop_is_valid) {
2109 ast_log(LOG_ERROR, "ARI FormatLangPair field language failed validation\n");
2110 res = 0;
2111 }
2112 } else
2113 {
2115 "ARI FormatLangPair has undocumented field %s\n",
2117 res = 0;
2118 }
2119 }
2120
2121 if (!has_format) {
2122 ast_log(LOG_ERROR, "ARI FormatLangPair missing required field format\n");
2123 res = 0;
2124 }
2125
2126 if (!has_language) {
2127 ast_log(LOG_ERROR, "ARI FormatLangPair missing required field language\n");
2128 res = 0;
2129 }
2130
2131 return res;
2132}
2133
2138
2140{
2141 int res = 1;
2142 struct ast_json_iter *iter;
2143 int has_formats = 0;
2144 int has_id = 0;
2145
2146 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2147 if (strcmp("formats", ast_json_object_iter_key(iter)) == 0) {
2148 int prop_is_valid;
2149 has_formats = 1;
2150 prop_is_valid = ast_ari_validate_list(
2153 if (!prop_is_valid) {
2154 ast_log(LOG_ERROR, "ARI Sound field formats failed validation\n");
2155 res = 0;
2156 }
2157 } else
2158 if (strcmp("id", ast_json_object_iter_key(iter)) == 0) {
2159 int prop_is_valid;
2160 has_id = 1;
2161 prop_is_valid = ast_ari_validate_string(
2163 if (!prop_is_valid) {
2164 ast_log(LOG_ERROR, "ARI Sound field id failed validation\n");
2165 res = 0;
2166 }
2167 } else
2168 if (strcmp("text", ast_json_object_iter_key(iter)) == 0) {
2169 int prop_is_valid;
2170 prop_is_valid = ast_ari_validate_string(
2172 if (!prop_is_valid) {
2173 ast_log(LOG_ERROR, "ARI Sound field text failed validation\n");
2174 res = 0;
2175 }
2176 } else
2177 {
2179 "ARI Sound has undocumented field %s\n",
2181 res = 0;
2182 }
2183 }
2184
2185 if (!has_formats) {
2186 ast_log(LOG_ERROR, "ARI Sound missing required field formats\n");
2187 res = 0;
2188 }
2189
2190 if (!has_id) {
2191 ast_log(LOG_ERROR, "ARI Sound missing required field id\n");
2192 res = 0;
2193 }
2194
2195 return res;
2196}
2197
2202
2204{
2205 int res = 1;
2206 struct ast_json_iter *iter;
2207 int has_id = 0;
2208 int has_media_uri = 0;
2209 int has_state = 0;
2210 int has_target_uri = 0;
2211
2212 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2213 if (strcmp("id", ast_json_object_iter_key(iter)) == 0) {
2214 int prop_is_valid;
2215 has_id = 1;
2216 prop_is_valid = ast_ari_validate_string(
2218 if (!prop_is_valid) {
2219 ast_log(LOG_ERROR, "ARI Playback field id failed validation\n");
2220 res = 0;
2221 }
2222 } else
2223 if (strcmp("language", ast_json_object_iter_key(iter)) == 0) {
2224 int prop_is_valid;
2225 prop_is_valid = ast_ari_validate_string(
2227 if (!prop_is_valid) {
2228 ast_log(LOG_ERROR, "ARI Playback field language failed validation\n");
2229 res = 0;
2230 }
2231 } else
2232 if (strcmp("media_uri", ast_json_object_iter_key(iter)) == 0) {
2233 int prop_is_valid;
2234 has_media_uri = 1;
2235 prop_is_valid = ast_ari_validate_string(
2237 if (!prop_is_valid) {
2238 ast_log(LOG_ERROR, "ARI Playback field media_uri failed validation\n");
2239 res = 0;
2240 }
2241 } else
2242 if (strcmp("next_media_uri", ast_json_object_iter_key(iter)) == 0) {
2243 int prop_is_valid;
2244 prop_is_valid = ast_ari_validate_string(
2246 if (!prop_is_valid) {
2247 ast_log(LOG_ERROR, "ARI Playback field next_media_uri failed validation\n");
2248 res = 0;
2249 }
2250 } else
2251 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
2252 int prop_is_valid;
2253 has_state = 1;
2254 prop_is_valid = ast_ari_validate_string(
2256 if (!prop_is_valid) {
2257 ast_log(LOG_ERROR, "ARI Playback field state failed validation\n");
2258 res = 0;
2259 }
2260 } else
2261 if (strcmp("target_uri", ast_json_object_iter_key(iter)) == 0) {
2262 int prop_is_valid;
2263 has_target_uri = 1;
2264 prop_is_valid = ast_ari_validate_string(
2266 if (!prop_is_valid) {
2267 ast_log(LOG_ERROR, "ARI Playback field target_uri failed validation\n");
2268 res = 0;
2269 }
2270 } else
2271 {
2273 "ARI Playback has undocumented field %s\n",
2275 res = 0;
2276 }
2277 }
2278
2279 if (!has_id) {
2280 ast_log(LOG_ERROR, "ARI Playback missing required field id\n");
2281 res = 0;
2282 }
2283
2284 if (!has_media_uri) {
2285 ast_log(LOG_ERROR, "ARI Playback missing required field media_uri\n");
2286 res = 0;
2287 }
2288
2289 if (!has_state) {
2290 ast_log(LOG_ERROR, "ARI Playback missing required field state\n");
2291 res = 0;
2292 }
2293
2294 if (!has_target_uri) {
2295 ast_log(LOG_ERROR, "ARI Playback missing required field target_uri\n");
2296 res = 0;
2297 }
2298
2299 return res;
2300}
2301
2306
2308{
2309 int res = 1;
2310 struct ast_json_iter *iter;
2311 int has_name = 0;
2312 int has_state = 0;
2313
2314 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2315 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
2316 int prop_is_valid;
2317 has_name = 1;
2318 prop_is_valid = ast_ari_validate_string(
2320 if (!prop_is_valid) {
2321 ast_log(LOG_ERROR, "ARI DeviceState field name failed validation\n");
2322 res = 0;
2323 }
2324 } else
2325 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
2326 int prop_is_valid;
2327 has_state = 1;
2328 prop_is_valid = ast_ari_validate_string(
2330 if (!prop_is_valid) {
2331 ast_log(LOG_ERROR, "ARI DeviceState field state failed validation\n");
2332 res = 0;
2333 }
2334 } else
2335 {
2337 "ARI DeviceState has undocumented field %s\n",
2339 res = 0;
2340 }
2341 }
2342
2343 if (!has_name) {
2344 ast_log(LOG_ERROR, "ARI DeviceState missing required field name\n");
2345 res = 0;
2346 }
2347
2348 if (!has_state) {
2349 ast_log(LOG_ERROR, "ARI DeviceState missing required field state\n");
2350 res = 0;
2351 }
2352
2353 return res;
2354}
2355
2360
2362{
2363 int res = 1;
2364 struct ast_json_iter *iter;
2365 int has_name = 0;
2366 int has_new_messages = 0;
2367 int has_old_messages = 0;
2368
2369 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2370 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
2371 int prop_is_valid;
2372 has_name = 1;
2373 prop_is_valid = ast_ari_validate_string(
2375 if (!prop_is_valid) {
2376 ast_log(LOG_ERROR, "ARI Mailbox field name failed validation\n");
2377 res = 0;
2378 }
2379 } else
2380 if (strcmp("new_messages", ast_json_object_iter_key(iter)) == 0) {
2381 int prop_is_valid;
2382 has_new_messages = 1;
2383 prop_is_valid = ast_ari_validate_int(
2385 if (!prop_is_valid) {
2386 ast_log(LOG_ERROR, "ARI Mailbox field new_messages failed validation\n");
2387 res = 0;
2388 }
2389 } else
2390 if (strcmp("old_messages", ast_json_object_iter_key(iter)) == 0) {
2391 int prop_is_valid;
2392 has_old_messages = 1;
2393 prop_is_valid = ast_ari_validate_int(
2395 if (!prop_is_valid) {
2396 ast_log(LOG_ERROR, "ARI Mailbox field old_messages failed validation\n");
2397 res = 0;
2398 }
2399 } else
2400 {
2402 "ARI Mailbox has undocumented field %s\n",
2404 res = 0;
2405 }
2406 }
2407
2408 if (!has_name) {
2409 ast_log(LOG_ERROR, "ARI Mailbox missing required field name\n");
2410 res = 0;
2411 }
2412
2413 if (!has_new_messages) {
2414 ast_log(LOG_ERROR, "ARI Mailbox missing required field new_messages\n");
2415 res = 0;
2416 }
2417
2418 if (!has_old_messages) {
2419 ast_log(LOG_ERROR, "ARI Mailbox missing required field old_messages\n");
2420 res = 0;
2421 }
2422
2423 return res;
2424}
2425
2430
2432{
2433 int res = 1;
2434 struct ast_json_iter *iter;
2435 int has_parameter_name = 0;
2436 int has_parameter_value = 0;
2437
2438 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2439 if (strcmp("parameter_name", ast_json_object_iter_key(iter)) == 0) {
2440 int prop_is_valid;
2441 has_parameter_name = 1;
2442 prop_is_valid = ast_ari_validate_string(
2444 if (!prop_is_valid) {
2445 ast_log(LOG_ERROR, "ARI AdditionalParam field parameter_name failed validation\n");
2446 res = 0;
2447 }
2448 } else
2449 if (strcmp("parameter_value", ast_json_object_iter_key(iter)) == 0) {
2450 int prop_is_valid;
2451 has_parameter_value = 1;
2452 prop_is_valid = ast_ari_validate_string(
2454 if (!prop_is_valid) {
2455 ast_log(LOG_ERROR, "ARI AdditionalParam field parameter_value failed validation\n");
2456 res = 0;
2457 }
2458 } else
2459 {
2461 "ARI AdditionalParam has undocumented field %s\n",
2463 res = 0;
2464 }
2465 }
2466
2467 if (!has_parameter_name) {
2468 ast_log(LOG_ERROR, "ARI AdditionalParam missing required field parameter_name\n");
2469 res = 0;
2470 }
2471
2472 if (!has_parameter_value) {
2473 ast_log(LOG_ERROR, "ARI AdditionalParam missing required field parameter_value\n");
2474 res = 0;
2475 }
2476
2477 return res;
2478}
2479
2484
2486{
2487 int res = 1;
2488 struct ast_json_iter *iter;
2489 int has_type = 0;
2490 int has_application = 0;
2491 int has_timestamp = 0;
2492 int has_args = 0;
2493 int has_channel = 0;
2494 int has_destination = 0;
2495
2496 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2497 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2498 int prop_is_valid;
2499 prop_is_valid = ast_ari_validate_string(
2501 if (!prop_is_valid) {
2502 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field asterisk_id failed validation\n");
2503 res = 0;
2504 }
2505 } else
2506 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2507 int prop_is_valid;
2508 has_type = 1;
2509 prop_is_valid = ast_ari_validate_string(
2511 if (!prop_is_valid) {
2512 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field type failed validation\n");
2513 res = 0;
2514 }
2515 } else
2516 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2517 int prop_is_valid;
2518 has_application = 1;
2519 prop_is_valid = ast_ari_validate_string(
2521 if (!prop_is_valid) {
2522 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field application failed validation\n");
2523 res = 0;
2524 }
2525 } else
2526 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2527 int prop_is_valid;
2528 has_timestamp = 1;
2529 prop_is_valid = ast_ari_validate_date(
2531 if (!prop_is_valid) {
2532 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field timestamp failed validation\n");
2533 res = 0;
2534 }
2535 } else
2536 if (strcmp("args", ast_json_object_iter_key(iter)) == 0) {
2537 int prop_is_valid;
2538 has_args = 1;
2539 prop_is_valid = ast_ari_validate_list(
2542 if (!prop_is_valid) {
2543 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field args failed validation\n");
2544 res = 0;
2545 }
2546 } else
2547 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
2548 int prop_is_valid;
2549 has_channel = 1;
2550 prop_is_valid = ast_ari_validate_channel(
2552 if (!prop_is_valid) {
2553 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field channel failed validation\n");
2554 res = 0;
2555 }
2556 } else
2557 if (strcmp("destination", ast_json_object_iter_key(iter)) == 0) {
2558 int prop_is_valid;
2559 has_destination = 1;
2560 prop_is_valid = ast_ari_validate_string(
2562 if (!prop_is_valid) {
2563 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field destination failed validation\n");
2564 res = 0;
2565 }
2566 } else
2567 {
2569 "ARI ApplicationMoveFailed has undocumented field %s\n",
2571 res = 0;
2572 }
2573 }
2574
2575 if (!has_type) {
2576 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field type\n");
2577 res = 0;
2578 }
2579
2580 if (!has_application) {
2581 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field application\n");
2582 res = 0;
2583 }
2584
2585 if (!has_timestamp) {
2586 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field timestamp\n");
2587 res = 0;
2588 }
2589
2590 if (!has_args) {
2591 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field args\n");
2592 res = 0;
2593 }
2594
2595 if (!has_channel) {
2596 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field channel\n");
2597 res = 0;
2598 }
2599
2600 if (!has_destination) {
2601 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field destination\n");
2602 res = 0;
2603 }
2604
2605 return res;
2606}
2607
2612
2614{
2615 int res = 1;
2616 struct ast_json_iter *iter;
2617 int has_type = 0;
2618 int has_application = 0;
2619 int has_timestamp = 0;
2620
2621 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2622 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2623 int prop_is_valid;
2624 prop_is_valid = ast_ari_validate_string(
2626 if (!prop_is_valid) {
2627 ast_log(LOG_ERROR, "ARI ApplicationRegistered field asterisk_id failed validation\n");
2628 res = 0;
2629 }
2630 } else
2631 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2632 int prop_is_valid;
2633 has_type = 1;
2634 prop_is_valid = ast_ari_validate_string(
2636 if (!prop_is_valid) {
2637 ast_log(LOG_ERROR, "ARI ApplicationRegistered field type failed validation\n");
2638 res = 0;
2639 }
2640 } else
2641 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2642 int prop_is_valid;
2643 has_application = 1;
2644 prop_is_valid = ast_ari_validate_string(
2646 if (!prop_is_valid) {
2647 ast_log(LOG_ERROR, "ARI ApplicationRegistered field application failed validation\n");
2648 res = 0;
2649 }
2650 } else
2651 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2652 int prop_is_valid;
2653 has_timestamp = 1;
2654 prop_is_valid = ast_ari_validate_date(
2656 if (!prop_is_valid) {
2657 ast_log(LOG_ERROR, "ARI ApplicationRegistered field timestamp failed validation\n");
2658 res = 0;
2659 }
2660 } else
2661 {
2663 "ARI ApplicationRegistered has undocumented field %s\n",
2665 res = 0;
2666 }
2667 }
2668
2669 if (!has_type) {
2670 ast_log(LOG_ERROR, "ARI ApplicationRegistered missing required field type\n");
2671 res = 0;
2672 }
2673
2674 if (!has_application) {
2675 ast_log(LOG_ERROR, "ARI ApplicationRegistered missing required field application\n");
2676 res = 0;
2677 }
2678
2679 if (!has_timestamp) {
2680 ast_log(LOG_ERROR, "ARI ApplicationRegistered missing required field timestamp\n");
2681 res = 0;
2682 }
2683
2684 return res;
2685}
2686
2691
2693{
2694 int res = 1;
2695 struct ast_json_iter *iter;
2696 int has_type = 0;
2697 int has_application = 0;
2698 int has_timestamp = 0;
2699
2700 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2701 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2702 int prop_is_valid;
2703 prop_is_valid = ast_ari_validate_string(
2705 if (!prop_is_valid) {
2706 ast_log(LOG_ERROR, "ARI ApplicationReplaced field asterisk_id failed validation\n");
2707 res = 0;
2708 }
2709 } else
2710 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2711 int prop_is_valid;
2712 has_type = 1;
2713 prop_is_valid = ast_ari_validate_string(
2715 if (!prop_is_valid) {
2716 ast_log(LOG_ERROR, "ARI ApplicationReplaced field type failed validation\n");
2717 res = 0;
2718 }
2719 } else
2720 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2721 int prop_is_valid;
2722 has_application = 1;
2723 prop_is_valid = ast_ari_validate_string(
2725 if (!prop_is_valid) {
2726 ast_log(LOG_ERROR, "ARI ApplicationReplaced field application failed validation\n");
2727 res = 0;
2728 }
2729 } else
2730 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2731 int prop_is_valid;
2732 has_timestamp = 1;
2733 prop_is_valid = ast_ari_validate_date(
2735 if (!prop_is_valid) {
2736 ast_log(LOG_ERROR, "ARI ApplicationReplaced field timestamp failed validation\n");
2737 res = 0;
2738 }
2739 } else
2740 {
2742 "ARI ApplicationReplaced has undocumented field %s\n",
2744 res = 0;
2745 }
2746 }
2747
2748 if (!has_type) {
2749 ast_log(LOG_ERROR, "ARI ApplicationReplaced missing required field type\n");
2750 res = 0;
2751 }
2752
2753 if (!has_application) {
2754 ast_log(LOG_ERROR, "ARI ApplicationReplaced missing required field application\n");
2755 res = 0;
2756 }
2757
2758 if (!has_timestamp) {
2759 ast_log(LOG_ERROR, "ARI ApplicationReplaced missing required field timestamp\n");
2760 res = 0;
2761 }
2762
2763 return res;
2764}
2765
2770
2772{
2773 int res = 1;
2774 struct ast_json_iter *iter;
2775 int has_type = 0;
2776 int has_application = 0;
2777 int has_timestamp = 0;
2778
2779 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2780 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2781 int prop_is_valid;
2782 prop_is_valid = ast_ari_validate_string(
2784 if (!prop_is_valid) {
2785 ast_log(LOG_ERROR, "ARI ApplicationUnregistered field asterisk_id failed validation\n");
2786 res = 0;
2787 }
2788 } else
2789 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2790 int prop_is_valid;
2791 has_type = 1;
2792 prop_is_valid = ast_ari_validate_string(
2794 if (!prop_is_valid) {
2795 ast_log(LOG_ERROR, "ARI ApplicationUnregistered field type failed validation\n");
2796 res = 0;
2797 }
2798 } else
2799 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2800 int prop_is_valid;
2801 has_application = 1;
2802 prop_is_valid = ast_ari_validate_string(
2804 if (!prop_is_valid) {
2805 ast_log(LOG_ERROR, "ARI ApplicationUnregistered field application failed validation\n");
2806 res = 0;
2807 }
2808 } else
2809 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2810 int prop_is_valid;
2811 has_timestamp = 1;
2812 prop_is_valid = ast_ari_validate_date(
2814 if (!prop_is_valid) {
2815 ast_log(LOG_ERROR, "ARI ApplicationUnregistered field timestamp failed validation\n");
2816 res = 0;
2817 }
2818 } else
2819 {
2821 "ARI ApplicationUnregistered has undocumented field %s\n",
2823 res = 0;
2824 }
2825 }
2826
2827 if (!has_type) {
2828 ast_log(LOG_ERROR, "ARI ApplicationUnregistered missing required field type\n");
2829 res = 0;
2830 }
2831
2832 if (!has_application) {
2833 ast_log(LOG_ERROR, "ARI ApplicationUnregistered missing required field application\n");
2834 res = 0;
2835 }
2836
2837 if (!has_timestamp) {
2838 ast_log(LOG_ERROR, "ARI ApplicationUnregistered missing required field timestamp\n");
2839 res = 0;
2840 }
2841
2842 return res;
2843}
2844
2849
2851{
2852 int res = 1;
2853 struct ast_json_iter *iter;
2854 int has_type = 0;
2855 int has_application = 0;
2856 int has_timestamp = 0;
2857 int has_destination_type = 0;
2858 int has_is_external = 0;
2859 int has_result = 0;
2860 int has_transferer_first_leg = 0;
2861 int has_transferer_second_leg = 0;
2862
2863 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2864 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2865 int prop_is_valid;
2866 prop_is_valid = ast_ari_validate_string(
2868 if (!prop_is_valid) {
2869 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field asterisk_id failed validation\n");
2870 res = 0;
2871 }
2872 } else
2873 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2874 int prop_is_valid;
2875 has_type = 1;
2876 prop_is_valid = ast_ari_validate_string(
2878 if (!prop_is_valid) {
2879 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field type failed validation\n");
2880 res = 0;
2881 }
2882 } else
2883 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2884 int prop_is_valid;
2885 has_application = 1;
2886 prop_is_valid = ast_ari_validate_string(
2888 if (!prop_is_valid) {
2889 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field application failed validation\n");
2890 res = 0;
2891 }
2892 } else
2893 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2894 int prop_is_valid;
2895 has_timestamp = 1;
2896 prop_is_valid = ast_ari_validate_date(
2898 if (!prop_is_valid) {
2899 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field timestamp failed validation\n");
2900 res = 0;
2901 }
2902 } else
2903 if (strcmp("destination_application", ast_json_object_iter_key(iter)) == 0) {
2904 int prop_is_valid;
2905 prop_is_valid = ast_ari_validate_string(
2907 if (!prop_is_valid) {
2908 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_application failed validation\n");
2909 res = 0;
2910 }
2911 } else
2912 if (strcmp("destination_bridge", ast_json_object_iter_key(iter)) == 0) {
2913 int prop_is_valid;
2914 prop_is_valid = ast_ari_validate_string(
2916 if (!prop_is_valid) {
2917 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_bridge failed validation\n");
2918 res = 0;
2919 }
2920 } else
2921 if (strcmp("destination_link_first_leg", ast_json_object_iter_key(iter)) == 0) {
2922 int prop_is_valid;
2923 prop_is_valid = ast_ari_validate_channel(
2925 if (!prop_is_valid) {
2926 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_link_first_leg failed validation\n");
2927 res = 0;
2928 }
2929 } else
2930 if (strcmp("destination_link_second_leg", ast_json_object_iter_key(iter)) == 0) {
2931 int prop_is_valid;
2932 prop_is_valid = ast_ari_validate_channel(
2934 if (!prop_is_valid) {
2935 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_link_second_leg failed validation\n");
2936 res = 0;
2937 }
2938 } else
2939 if (strcmp("destination_threeway_bridge", ast_json_object_iter_key(iter)) == 0) {
2940 int prop_is_valid;
2941 prop_is_valid = ast_ari_validate_bridge(
2943 if (!prop_is_valid) {
2944 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_threeway_bridge failed validation\n");
2945 res = 0;
2946 }
2947 } else
2948 if (strcmp("destination_threeway_channel", ast_json_object_iter_key(iter)) == 0) {
2949 int prop_is_valid;
2950 prop_is_valid = ast_ari_validate_channel(
2952 if (!prop_is_valid) {
2953 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_threeway_channel failed validation\n");
2954 res = 0;
2955 }
2956 } else
2957 if (strcmp("destination_type", ast_json_object_iter_key(iter)) == 0) {
2958 int prop_is_valid;
2959 has_destination_type = 1;
2960 prop_is_valid = ast_ari_validate_string(
2962 if (!prop_is_valid) {
2963 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_type failed validation\n");
2964 res = 0;
2965 }
2966 } else
2967 if (strcmp("is_external", ast_json_object_iter_key(iter)) == 0) {
2968 int prop_is_valid;
2969 has_is_external = 1;
2970 prop_is_valid = ast_ari_validate_boolean(
2972 if (!prop_is_valid) {
2973 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field is_external failed validation\n");
2974 res = 0;
2975 }
2976 } else
2977 if (strcmp("replace_channel", 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 replace_channel failed validation\n");
2983 res = 0;
2984 }
2985 } else
2986 if (strcmp("result", ast_json_object_iter_key(iter)) == 0) {
2987 int prop_is_valid;
2988 has_result = 1;
2989 prop_is_valid = ast_ari_validate_string(
2991 if (!prop_is_valid) {
2992 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field result failed validation\n");
2993 res = 0;
2994 }
2995 } else
2996 if (strcmp("transfer_target", ast_json_object_iter_key(iter)) == 0) {
2997 int prop_is_valid;
2998 prop_is_valid = ast_ari_validate_channel(
3000 if (!prop_is_valid) {
3001 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transfer_target failed validation\n");
3002 res = 0;
3003 }
3004 } else
3005 if (strcmp("transferee", ast_json_object_iter_key(iter)) == 0) {
3006 int prop_is_valid;
3007 prop_is_valid = ast_ari_validate_channel(
3009 if (!prop_is_valid) {
3010 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferee failed validation\n");
3011 res = 0;
3012 }
3013 } else
3014 if (strcmp("transferer_first_leg", ast_json_object_iter_key(iter)) == 0) {
3015 int prop_is_valid;
3016 has_transferer_first_leg = 1;
3017 prop_is_valid = ast_ari_validate_channel(
3019 if (!prop_is_valid) {
3020 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferer_first_leg failed validation\n");
3021 res = 0;
3022 }
3023 } else
3024 if (strcmp("transferer_first_leg_bridge", ast_json_object_iter_key(iter)) == 0) {
3025 int prop_is_valid;
3026 prop_is_valid = ast_ari_validate_bridge(
3028 if (!prop_is_valid) {
3029 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferer_first_leg_bridge failed validation\n");
3030 res = 0;
3031 }
3032 } else
3033 if (strcmp("transferer_second_leg", ast_json_object_iter_key(iter)) == 0) {
3034 int prop_is_valid;
3035 has_transferer_second_leg = 1;
3036 prop_is_valid = ast_ari_validate_channel(
3038 if (!prop_is_valid) {
3039 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferer_second_leg failed validation\n");
3040 res = 0;
3041 }
3042 } else
3043 if (strcmp("transferer_second_leg_bridge", ast_json_object_iter_key(iter)) == 0) {
3044 int prop_is_valid;
3045 prop_is_valid = ast_ari_validate_bridge(
3047 if (!prop_is_valid) {
3048 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferer_second_leg_bridge failed validation\n");
3049 res = 0;
3050 }
3051 } else
3052 {
3054 "ARI BridgeAttendedTransfer has undocumented field %s\n",
3056 res = 0;
3057 }
3058 }
3059
3060 if (!has_type) {
3061 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field type\n");
3062 res = 0;
3063 }
3064
3065 if (!has_application) {
3066 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field application\n");
3067 res = 0;
3068 }
3069
3070 if (!has_timestamp) {
3071 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field timestamp\n");
3072 res = 0;
3073 }
3074
3075 if (!has_destination_type) {
3076 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field destination_type\n");
3077 res = 0;
3078 }
3079
3080 if (!has_is_external) {
3081 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field is_external\n");
3082 res = 0;
3083 }
3084
3085 if (!has_result) {
3086 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field result\n");
3087 res = 0;
3088 }
3089
3090 if (!has_transferer_first_leg) {
3091 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field transferer_first_leg\n");
3092 res = 0;
3093 }
3094
3095 if (!has_transferer_second_leg) {
3096 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field transferer_second_leg\n");
3097 res = 0;
3098 }
3099
3100 return res;
3101}
3102
3107
3109{
3110 int res = 1;
3111 struct ast_json_iter *iter;
3112 int has_type = 0;
3113 int has_application = 0;
3114 int has_timestamp = 0;
3115 int has_channel = 0;
3116 int has_context = 0;
3117 int has_exten = 0;
3118 int has_is_external = 0;
3119 int has_result = 0;
3120
3121 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3122 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3123 int prop_is_valid;
3124 prop_is_valid = ast_ari_validate_string(
3126 if (!prop_is_valid) {
3127 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field asterisk_id failed validation\n");
3128 res = 0;
3129 }
3130 } else
3131 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3132 int prop_is_valid;
3133 has_type = 1;
3134 prop_is_valid = ast_ari_validate_string(
3136 if (!prop_is_valid) {
3137 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field type failed validation\n");
3138 res = 0;
3139 }
3140 } else
3141 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3142 int prop_is_valid;
3143 has_application = 1;
3144 prop_is_valid = ast_ari_validate_string(
3146 if (!prop_is_valid) {
3147 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field application failed validation\n");
3148 res = 0;
3149 }
3150 } else
3151 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3152 int prop_is_valid;
3153 has_timestamp = 1;
3154 prop_is_valid = ast_ari_validate_date(
3156 if (!prop_is_valid) {
3157 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field timestamp failed validation\n");
3158 res = 0;
3159 }
3160 } else
3161 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3162 int prop_is_valid;
3163 prop_is_valid = ast_ari_validate_bridge(
3165 if (!prop_is_valid) {
3166 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field bridge failed validation\n");
3167 res = 0;
3168 }
3169 } else
3170 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
3171 int prop_is_valid;
3172 has_channel = 1;
3173 prop_is_valid = ast_ari_validate_channel(
3175 if (!prop_is_valid) {
3176 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field channel failed validation\n");
3177 res = 0;
3178 }
3179 } else
3180 if (strcmp("context", ast_json_object_iter_key(iter)) == 0) {
3181 int prop_is_valid;
3182 has_context = 1;
3183 prop_is_valid = ast_ari_validate_string(
3185 if (!prop_is_valid) {
3186 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field context failed validation\n");
3187 res = 0;
3188 }
3189 } else
3190 if (strcmp("exten", ast_json_object_iter_key(iter)) == 0) {
3191 int prop_is_valid;
3192 has_exten = 1;
3193 prop_is_valid = ast_ari_validate_string(
3195 if (!prop_is_valid) {
3196 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field exten failed validation\n");
3197 res = 0;
3198 }
3199 } else
3200 if (strcmp("is_external", ast_json_object_iter_key(iter)) == 0) {
3201 int prop_is_valid;
3202 has_is_external = 1;
3203 prop_is_valid = ast_ari_validate_boolean(
3205 if (!prop_is_valid) {
3206 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field is_external failed validation\n");
3207 res = 0;
3208 }
3209 } else
3210 if (strcmp("replace_channel", ast_json_object_iter_key(iter)) == 0) {
3211 int prop_is_valid;
3212 prop_is_valid = ast_ari_validate_channel(
3214 if (!prop_is_valid) {
3215 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field replace_channel failed validation\n");
3216 res = 0;
3217 }
3218 } else
3219 if (strcmp("result", ast_json_object_iter_key(iter)) == 0) {
3220 int prop_is_valid;
3221 has_result = 1;
3222 prop_is_valid = ast_ari_validate_string(
3224 if (!prop_is_valid) {
3225 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field result failed validation\n");
3226 res = 0;
3227 }
3228 } else
3229 if (strcmp("transferee", ast_json_object_iter_key(iter)) == 0) {
3230 int prop_is_valid;
3231 prop_is_valid = ast_ari_validate_channel(
3233 if (!prop_is_valid) {
3234 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field transferee failed validation\n");
3235 res = 0;
3236 }
3237 } else
3238 {
3240 "ARI BridgeBlindTransfer has undocumented field %s\n",
3242 res = 0;
3243 }
3244 }
3245
3246 if (!has_type) {
3247 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field type\n");
3248 res = 0;
3249 }
3250
3251 if (!has_application) {
3252 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field application\n");
3253 res = 0;
3254 }
3255
3256 if (!has_timestamp) {
3257 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field timestamp\n");
3258 res = 0;
3259 }
3260
3261 if (!has_channel) {
3262 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field channel\n");
3263 res = 0;
3264 }
3265
3266 if (!has_context) {
3267 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field context\n");
3268 res = 0;
3269 }
3270
3271 if (!has_exten) {
3272 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field exten\n");
3273 res = 0;
3274 }
3275
3276 if (!has_is_external) {
3277 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field is_external\n");
3278 res = 0;
3279 }
3280
3281 if (!has_result) {
3282 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field result\n");
3283 res = 0;
3284 }
3285
3286 return res;
3287}
3288
3293
3295{
3296 int res = 1;
3297 struct ast_json_iter *iter;
3298 int has_type = 0;
3299 int has_application = 0;
3300 int has_timestamp = 0;
3301 int has_bridge = 0;
3302
3303 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3304 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3305 int prop_is_valid;
3306 prop_is_valid = ast_ari_validate_string(
3308 if (!prop_is_valid) {
3309 ast_log(LOG_ERROR, "ARI BridgeCreated field asterisk_id failed validation\n");
3310 res = 0;
3311 }
3312 } else
3313 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3314 int prop_is_valid;
3315 has_type = 1;
3316 prop_is_valid = ast_ari_validate_string(
3318 if (!prop_is_valid) {
3319 ast_log(LOG_ERROR, "ARI BridgeCreated field type failed validation\n");
3320 res = 0;
3321 }
3322 } else
3323 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3324 int prop_is_valid;
3325 has_application = 1;
3326 prop_is_valid = ast_ari_validate_string(
3328 if (!prop_is_valid) {
3329 ast_log(LOG_ERROR, "ARI BridgeCreated field application failed validation\n");
3330 res = 0;
3331 }
3332 } else
3333 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3334 int prop_is_valid;
3335 has_timestamp = 1;
3336 prop_is_valid = ast_ari_validate_date(
3338 if (!prop_is_valid) {
3339 ast_log(LOG_ERROR, "ARI BridgeCreated field timestamp failed validation\n");
3340 res = 0;
3341 }
3342 } else
3343 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3344 int prop_is_valid;
3345 has_bridge = 1;
3346 prop_is_valid = ast_ari_validate_bridge(
3348 if (!prop_is_valid) {
3349 ast_log(LOG_ERROR, "ARI BridgeCreated field bridge failed validation\n");
3350 res = 0;
3351 }
3352 } else
3353 {
3355 "ARI BridgeCreated has undocumented field %s\n",
3357 res = 0;
3358 }
3359 }
3360
3361 if (!has_type) {
3362 ast_log(LOG_ERROR, "ARI BridgeCreated missing required field type\n");
3363 res = 0;
3364 }
3365
3366 if (!has_application) {
3367 ast_log(LOG_ERROR, "ARI BridgeCreated missing required field application\n");
3368 res = 0;
3369 }
3370
3371 if (!has_timestamp) {
3372 ast_log(LOG_ERROR, "ARI BridgeCreated missing required field timestamp\n");
3373 res = 0;
3374 }
3375
3376 if (!has_bridge) {
3377 ast_log(LOG_ERROR, "ARI BridgeCreated missing required field bridge\n");
3378 res = 0;
3379 }
3380
3381 return res;
3382}
3383
3388
3390{
3391 int res = 1;
3392 struct ast_json_iter *iter;
3393 int has_type = 0;
3394 int has_application = 0;
3395 int has_timestamp = 0;
3396 int has_bridge = 0;
3397
3398 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3399 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3400 int prop_is_valid;
3401 prop_is_valid = ast_ari_validate_string(
3403 if (!prop_is_valid) {
3404 ast_log(LOG_ERROR, "ARI BridgeDestroyed field asterisk_id failed validation\n");
3405 res = 0;
3406 }
3407 } else
3408 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3409 int prop_is_valid;
3410 has_type = 1;
3411 prop_is_valid = ast_ari_validate_string(
3413 if (!prop_is_valid) {
3414 ast_log(LOG_ERROR, "ARI BridgeDestroyed field type failed validation\n");
3415 res = 0;
3416 }
3417 } else
3418 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3419 int prop_is_valid;
3420 has_application = 1;
3421 prop_is_valid = ast_ari_validate_string(
3423 if (!prop_is_valid) {
3424 ast_log(LOG_ERROR, "ARI BridgeDestroyed field application failed validation\n");
3425 res = 0;
3426 }
3427 } else
3428 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3429 int prop_is_valid;
3430 has_timestamp = 1;
3431 prop_is_valid = ast_ari_validate_date(
3433 if (!prop_is_valid) {
3434 ast_log(LOG_ERROR, "ARI BridgeDestroyed field timestamp failed validation\n");
3435 res = 0;
3436 }
3437 } else
3438 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3439 int prop_is_valid;
3440 has_bridge = 1;
3441 prop_is_valid = ast_ari_validate_bridge(
3443 if (!prop_is_valid) {
3444 ast_log(LOG_ERROR, "ARI BridgeDestroyed field bridge failed validation\n");
3445 res = 0;
3446 }
3447 } else
3448 {
3450 "ARI BridgeDestroyed has undocumented field %s\n",
3452 res = 0;
3453 }
3454 }
3455
3456 if (!has_type) {
3457 ast_log(LOG_ERROR, "ARI BridgeDestroyed missing required field type\n");
3458 res = 0;
3459 }
3460
3461 if (!has_application) {
3462 ast_log(LOG_ERROR, "ARI BridgeDestroyed missing required field application\n");
3463 res = 0;
3464 }
3465
3466 if (!has_timestamp) {
3467 ast_log(LOG_ERROR, "ARI BridgeDestroyed missing required field timestamp\n");
3468 res = 0;
3469 }
3470
3471 if (!has_bridge) {
3472 ast_log(LOG_ERROR, "ARI BridgeDestroyed missing required field bridge\n");
3473 res = 0;
3474 }
3475
3476 return res;
3477}
3478
3483
3485{
3486 int res = 1;
3487 struct ast_json_iter *iter;
3488 int has_type = 0;
3489 int has_application = 0;
3490 int has_timestamp = 0;
3491 int has_bridge = 0;
3492 int has_bridge_from = 0;
3493
3494 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3495 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3496 int prop_is_valid;
3497 prop_is_valid = ast_ari_validate_string(
3499 if (!prop_is_valid) {
3500 ast_log(LOG_ERROR, "ARI BridgeMerged field asterisk_id failed validation\n");
3501 res = 0;
3502 }
3503 } else
3504 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3505 int prop_is_valid;
3506 has_type = 1;
3507 prop_is_valid = ast_ari_validate_string(
3509 if (!prop_is_valid) {
3510 ast_log(LOG_ERROR, "ARI BridgeMerged field type failed validation\n");
3511 res = 0;
3512 }
3513 } else
3514 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3515 int prop_is_valid;
3516 has_application = 1;
3517 prop_is_valid = ast_ari_validate_string(
3519 if (!prop_is_valid) {
3520 ast_log(LOG_ERROR, "ARI BridgeMerged field application failed validation\n");
3521 res = 0;
3522 }
3523 } else
3524 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3525 int prop_is_valid;
3526 has_timestamp = 1;
3527 prop_is_valid = ast_ari_validate_date(
3529 if (!prop_is_valid) {
3530 ast_log(LOG_ERROR, "ARI BridgeMerged field timestamp failed validation\n");
3531 res = 0;
3532 }
3533 } else
3534 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3535 int prop_is_valid;
3536 has_bridge = 1;
3537 prop_is_valid = ast_ari_validate_bridge(
3539 if (!prop_is_valid) {
3540 ast_log(LOG_ERROR, "ARI BridgeMerged field bridge failed validation\n");
3541 res = 0;
3542 }
3543 } else
3544 if (strcmp("bridge_from", ast_json_object_iter_key(iter)) == 0) {
3545 int prop_is_valid;
3546 has_bridge_from = 1;
3547 prop_is_valid = ast_ari_validate_bridge(
3549 if (!prop_is_valid) {
3550 ast_log(LOG_ERROR, "ARI BridgeMerged field bridge_from failed validation\n");
3551 res = 0;
3552 }
3553 } else
3554 {
3556 "ARI BridgeMerged has undocumented field %s\n",
3558 res = 0;
3559 }
3560 }
3561
3562 if (!has_type) {
3563 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field type\n");
3564 res = 0;
3565 }
3566
3567 if (!has_application) {
3568 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field application\n");
3569 res = 0;
3570 }
3571
3572 if (!has_timestamp) {
3573 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field timestamp\n");
3574 res = 0;
3575 }
3576
3577 if (!has_bridge) {
3578 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field bridge\n");
3579 res = 0;
3580 }
3581
3582 if (!has_bridge_from) {
3583 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field bridge_from\n");
3584 res = 0;
3585 }
3586
3587 return res;
3588}
3589
3594
3596{
3597 int res = 1;
3598 struct ast_json_iter *iter;
3599 int has_type = 0;
3600 int has_application = 0;
3601 int has_timestamp = 0;
3602 int has_bridge = 0;
3603
3604 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3605 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3606 int prop_is_valid;
3607 prop_is_valid = ast_ari_validate_string(
3609 if (!prop_is_valid) {
3610 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field asterisk_id failed validation\n");
3611 res = 0;
3612 }
3613 } else
3614 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3615 int prop_is_valid;
3616 has_type = 1;
3617 prop_is_valid = ast_ari_validate_string(
3619 if (!prop_is_valid) {
3620 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field type failed validation\n");
3621 res = 0;
3622 }
3623 } else
3624 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3625 int prop_is_valid;
3626 has_application = 1;
3627 prop_is_valid = ast_ari_validate_string(
3629 if (!prop_is_valid) {
3630 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field application failed validation\n");
3631 res = 0;
3632 }
3633 } else
3634 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3635 int prop_is_valid;
3636 has_timestamp = 1;
3637 prop_is_valid = ast_ari_validate_date(
3639 if (!prop_is_valid) {
3640 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field timestamp failed validation\n");
3641 res = 0;
3642 }
3643 } else
3644 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3645 int prop_is_valid;
3646 has_bridge = 1;
3647 prop_is_valid = ast_ari_validate_bridge(
3649 if (!prop_is_valid) {
3650 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field bridge failed validation\n");
3651 res = 0;
3652 }
3653 } else
3654 if (strcmp("old_video_source_id", ast_json_object_iter_key(iter)) == 0) {
3655 int prop_is_valid;
3656 prop_is_valid = ast_ari_validate_string(
3658 if (!prop_is_valid) {
3659 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field old_video_source_id failed validation\n");
3660 res = 0;
3661 }
3662 } else
3663 {
3665 "ARI BridgeVideoSourceChanged has undocumented field %s\n",
3667 res = 0;
3668 }
3669 }
3670
3671 if (!has_type) {
3672 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged missing required field type\n");
3673 res = 0;
3674 }
3675
3676 if (!has_application) {
3677 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged missing required field application\n");
3678 res = 0;
3679 }
3680
3681 if (!has_timestamp) {
3682 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged missing required field timestamp\n");
3683 res = 0;
3684 }
3685
3686 if (!has_bridge) {
3687 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged missing required field bridge\n");
3688 res = 0;
3689 }
3690
3691 return res;
3692}
3693
3698
3700{
3701 int res = 1;
3702 struct ast_json_iter *iter;
3703 int has_type = 0;
3704 int has_application = 0;
3705 int has_timestamp = 0;
3706 int has_channel = 0;
3707
3708 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3709 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3710 int prop_is_valid;
3711 prop_is_valid = ast_ari_validate_string(
3713 if (!prop_is_valid) {
3714 ast_log(LOG_ERROR, "ARI CallBroadcast field asterisk_id failed validation\n");
3715 res = 0;
3716 }
3717 } else
3718 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3719 int prop_is_valid;
3720 has_type = 1;
3721 prop_is_valid = ast_ari_validate_string(
3723 if (!prop_is_valid) {
3724 ast_log(LOG_ERROR, "ARI CallBroadcast field type failed validation\n");
3725 res = 0;
3726 }
3727 } else
3728 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3729 int prop_is_valid;
3730 has_application = 1;
3731 prop_is_valid = ast_ari_validate_string(
3733 if (!prop_is_valid) {
3734 ast_log(LOG_ERROR, "ARI CallBroadcast field application failed validation\n");
3735 res = 0;
3736 }
3737 } else
3738 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3739 int prop_is_valid;
3740 has_timestamp = 1;
3741 prop_is_valid = ast_ari_validate_date(
3743 if (!prop_is_valid) {
3744 ast_log(LOG_ERROR, "ARI CallBroadcast field timestamp failed validation\n");
3745 res = 0;
3746 }
3747 } else
3748 if (strcmp("called", ast_json_object_iter_key(iter)) == 0) {
3749 int prop_is_valid;
3750 prop_is_valid = ast_ari_validate_string(
3752 if (!prop_is_valid) {
3753 ast_log(LOG_ERROR, "ARI CallBroadcast field called failed validation\n");
3754 res = 0;
3755 }
3756 } else
3757 if (strcmp("caller", ast_json_object_iter_key(iter)) == 0) {
3758 int prop_is_valid;
3759 prop_is_valid = ast_ari_validate_string(
3761 if (!prop_is_valid) {
3762 ast_log(LOG_ERROR, "ARI CallBroadcast field caller failed validation\n");
3763 res = 0;
3764 }
3765 } else
3766 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
3767 int prop_is_valid;
3768 has_channel = 1;
3769 prop_is_valid = ast_ari_validate_channel(
3771 if (!prop_is_valid) {
3772 ast_log(LOG_ERROR, "ARI CallBroadcast field channel failed validation\n");
3773 res = 0;
3774 }
3775 } else
3776 {
3778 "ARI CallBroadcast has undocumented field %s\n",
3780 res = 0;
3781 }
3782 }
3783
3784 if (!has_type) {
3785 ast_log(LOG_ERROR, "ARI CallBroadcast missing required field type\n");
3786 res = 0;
3787 }
3788
3789 if (!has_application) {
3790 ast_log(LOG_ERROR, "ARI CallBroadcast missing required field application\n");
3791 res = 0;
3792 }
3793
3794 if (!has_timestamp) {
3795 ast_log(LOG_ERROR, "ARI CallBroadcast missing required field timestamp\n");
3796 res = 0;
3797 }
3798
3799 if (!has_channel) {
3800 ast_log(LOG_ERROR, "ARI CallBroadcast missing required field channel\n");
3801 res = 0;
3802 }
3803
3804 return res;
3805}
3806
3811
3813{
3814 int res = 1;
3815 struct ast_json_iter *iter;
3816 int has_type = 0;
3817 int has_application = 0;
3818 int has_timestamp = 0;
3819 int has_channel = 0;
3820 int has_winner_app = 0;
3821
3822 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3823 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3824 int prop_is_valid;
3825 prop_is_valid = ast_ari_validate_string(
3827 if (!prop_is_valid) {
3828 ast_log(LOG_ERROR, "ARI CallClaimed field asterisk_id failed validation\n");
3829 res = 0;
3830 }
3831 } else
3832 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3833 int prop_is_valid;
3834 has_type = 1;
3835 prop_is_valid = ast_ari_validate_string(
3837 if (!prop_is_valid) {
3838 ast_log(LOG_ERROR, "ARI CallClaimed field type failed validation\n");
3839 res = 0;
3840 }
3841 } else
3842 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3843 int prop_is_valid;
3844 has_application = 1;
3845 prop_is_valid = ast_ari_validate_string(
3847 if (!prop_is_valid) {
3848 ast_log(LOG_ERROR, "ARI CallClaimed field application failed validation\n");
3849 res = 0;
3850 }
3851 } else
3852 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3853 int prop_is_valid;
3854 has_timestamp = 1;
3855 prop_is_valid = ast_ari_validate_date(
3857 if (!prop_is_valid) {
3858 ast_log(LOG_ERROR, "ARI CallClaimed field timestamp failed validation\n");
3859 res = 0;
3860 }
3861 } else
3862 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
3863 int prop_is_valid;
3864 has_channel = 1;
3865 prop_is_valid = ast_ari_validate_channel(
3867 if (!prop_is_valid) {
3868 ast_log(LOG_ERROR, "ARI CallClaimed field channel failed validation\n");
3869 res = 0;
3870 }
3871 } else
3872 if (strcmp("winner_app", ast_json_object_iter_key(iter)) == 0) {
3873 int prop_is_valid;
3874 has_winner_app = 1;
3875 prop_is_valid = ast_ari_validate_string(
3877 if (!prop_is_valid) {
3878 ast_log(LOG_ERROR, "ARI CallClaimed field winner_app failed validation\n");
3879 res = 0;
3880 }
3881 } else
3882 {
3884 "ARI CallClaimed has undocumented field %s\n",
3886 res = 0;
3887 }
3888 }
3889
3890 if (!has_type) {
3891 ast_log(LOG_ERROR, "ARI CallClaimed missing required field type\n");
3892 res = 0;
3893 }
3894
3895 if (!has_application) {
3896 ast_log(LOG_ERROR, "ARI CallClaimed missing required field application\n");
3897 res = 0;
3898 }
3899
3900 if (!has_timestamp) {
3901 ast_log(LOG_ERROR, "ARI CallClaimed missing required field timestamp\n");
3902 res = 0;
3903 }
3904
3905 if (!has_channel) {
3906 ast_log(LOG_ERROR, "ARI CallClaimed missing required field channel\n");
3907 res = 0;
3908 }
3909
3910 if (!has_winner_app) {
3911 ast_log(LOG_ERROR, "ARI CallClaimed missing required field winner_app\n");
3912 res = 0;
3913 }
3914
3915 return res;
3916}
3917
3922
3924{
3925 int res = 1;
3926 struct ast_json_iter *iter;
3927 int has_type = 0;
3928 int has_application = 0;
3929 int has_timestamp = 0;
3930 int has_caller_presentation = 0;
3931 int has_caller_presentation_txt = 0;
3932 int has_channel = 0;
3933
3934 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3935 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3936 int prop_is_valid;
3937 prop_is_valid = ast_ari_validate_string(
3939 if (!prop_is_valid) {
3940 ast_log(LOG_ERROR, "ARI ChannelCallerId field asterisk_id failed validation\n");
3941 res = 0;
3942 }
3943 } else
3944 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3945 int prop_is_valid;
3946 has_type = 1;
3947 prop_is_valid = ast_ari_validate_string(
3949 if (!prop_is_valid) {
3950 ast_log(LOG_ERROR, "ARI ChannelCallerId field type failed validation\n");
3951 res = 0;
3952 }
3953 } else
3954 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3955 int prop_is_valid;
3956 has_application = 1;
3957 prop_is_valid = ast_ari_validate_string(
3959 if (!prop_is_valid) {
3960 ast_log(LOG_ERROR, "ARI ChannelCallerId field application failed validation\n");
3961 res = 0;
3962 }
3963 } else
3964 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3965 int prop_is_valid;
3966 has_timestamp = 1;
3967 prop_is_valid = ast_ari_validate_date(
3969 if (!prop_is_valid) {
3970 ast_log(LOG_ERROR, "ARI ChannelCallerId field timestamp failed validation\n");
3971 res = 0;
3972 }
3973 } else
3974 if (strcmp("caller_presentation", ast_json_object_iter_key(iter)) == 0) {
3975 int prop_is_valid;
3976 has_caller_presentation = 1;
3977 prop_is_valid = ast_ari_validate_int(
3979 if (!prop_is_valid) {
3980 ast_log(LOG_ERROR, "ARI ChannelCallerId field caller_presentation failed validation\n");
3981 res = 0;
3982 }
3983 } else
3984 if (strcmp("caller_presentation_txt", ast_json_object_iter_key(iter)) == 0) {
3985 int prop_is_valid;
3986 has_caller_presentation_txt = 1;
3987 prop_is_valid = ast_ari_validate_string(
3989 if (!prop_is_valid) {
3990 ast_log(LOG_ERROR, "ARI ChannelCallerId field caller_presentation_txt failed validation\n");
3991 res = 0;
3992 }
3993 } else
3994 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
3995 int prop_is_valid;
3996 has_channel = 1;
3997 prop_is_valid = ast_ari_validate_channel(
3999 if (!prop_is_valid) {
4000 ast_log(LOG_ERROR, "ARI ChannelCallerId field channel failed validation\n");
4001 res = 0;
4002 }
4003 } else
4004 {
4006 "ARI ChannelCallerId has undocumented field %s\n",
4008 res = 0;
4009 }
4010 }
4011
4012 if (!has_type) {
4013 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field type\n");
4014 res = 0;
4015 }
4016
4017 if (!has_application) {
4018 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field application\n");
4019 res = 0;
4020 }
4021
4022 if (!has_timestamp) {
4023 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field timestamp\n");
4024 res = 0;
4025 }
4026
4027 if (!has_caller_presentation) {
4028 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field caller_presentation\n");
4029 res = 0;
4030 }
4031
4032 if (!has_caller_presentation_txt) {
4033 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field caller_presentation_txt\n");
4034 res = 0;
4035 }
4036
4037 if (!has_channel) {
4038 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field channel\n");
4039 res = 0;
4040 }
4041
4042 return res;
4043}
4044
4049
4051{
4052 int res = 1;
4053 struct ast_json_iter *iter;
4054 int has_type = 0;
4055 int has_application = 0;
4056 int has_timestamp = 0;
4057 int has_channel = 0;
4058
4059 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4060 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4061 int prop_is_valid;
4062 prop_is_valid = ast_ari_validate_string(
4064 if (!prop_is_valid) {
4065 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field asterisk_id failed validation\n");
4066 res = 0;
4067 }
4068 } else
4069 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4070 int prop_is_valid;
4071 has_type = 1;
4072 prop_is_valid = ast_ari_validate_string(
4074 if (!prop_is_valid) {
4075 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field type failed validation\n");
4076 res = 0;
4077 }
4078 } else
4079 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4080 int prop_is_valid;
4081 has_application = 1;
4082 prop_is_valid = ast_ari_validate_string(
4084 if (!prop_is_valid) {
4085 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field application failed validation\n");
4086 res = 0;
4087 }
4088 } else
4089 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4090 int prop_is_valid;
4091 has_timestamp = 1;
4092 prop_is_valid = ast_ari_validate_date(
4094 if (!prop_is_valid) {
4095 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field timestamp failed validation\n");
4096 res = 0;
4097 }
4098 } else
4099 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4100 int prop_is_valid;
4101 has_channel = 1;
4102 prop_is_valid = ast_ari_validate_channel(
4104 if (!prop_is_valid) {
4105 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field channel failed validation\n");
4106 res = 0;
4107 }
4108 } else
4109 {
4111 "ARI ChannelConnectedLine has undocumented field %s\n",
4113 res = 0;
4114 }
4115 }
4116
4117 if (!has_type) {
4118 ast_log(LOG_ERROR, "ARI ChannelConnectedLine missing required field type\n");
4119 res = 0;
4120 }
4121
4122 if (!has_application) {
4123 ast_log(LOG_ERROR, "ARI ChannelConnectedLine missing required field application\n");
4124 res = 0;
4125 }
4126
4127 if (!has_timestamp) {
4128 ast_log(LOG_ERROR, "ARI ChannelConnectedLine missing required field timestamp\n");
4129 res = 0;
4130 }
4131
4132 if (!has_channel) {
4133 ast_log(LOG_ERROR, "ARI ChannelConnectedLine missing required field channel\n");
4134 res = 0;
4135 }
4136
4137 return res;
4138}
4139
4144
4146{
4147 int res = 1;
4148 struct ast_json_iter *iter;
4149 int has_type = 0;
4150 int has_application = 0;
4151 int has_timestamp = 0;
4152 int has_channel = 0;
4153
4154 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4155 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4156 int prop_is_valid;
4157 prop_is_valid = ast_ari_validate_string(
4159 if (!prop_is_valid) {
4160 ast_log(LOG_ERROR, "ARI ChannelCreated field asterisk_id failed validation\n");
4161 res = 0;
4162 }
4163 } else
4164 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4165 int prop_is_valid;
4166 has_type = 1;
4167 prop_is_valid = ast_ari_validate_string(
4169 if (!prop_is_valid) {
4170 ast_log(LOG_ERROR, "ARI ChannelCreated field type failed validation\n");
4171 res = 0;
4172 }
4173 } else
4174 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4175 int prop_is_valid;
4176 has_application = 1;
4177 prop_is_valid = ast_ari_validate_string(
4179 if (!prop_is_valid) {
4180 ast_log(LOG_ERROR, "ARI ChannelCreated field application failed validation\n");
4181 res = 0;
4182 }
4183 } else
4184 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4185 int prop_is_valid;
4186 has_timestamp = 1;
4187 prop_is_valid = ast_ari_validate_date(
4189 if (!prop_is_valid) {
4190 ast_log(LOG_ERROR, "ARI ChannelCreated field timestamp failed validation\n");
4191 res = 0;
4192 }
4193 } else
4194 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4195 int prop_is_valid;
4196 has_channel = 1;
4197 prop_is_valid = ast_ari_validate_channel(
4199 if (!prop_is_valid) {
4200 ast_log(LOG_ERROR, "ARI ChannelCreated field channel failed validation\n");
4201 res = 0;
4202 }
4203 } else
4204 {
4206 "ARI ChannelCreated has undocumented field %s\n",
4208 res = 0;
4209 }
4210 }
4211
4212 if (!has_type) {
4213 ast_log(LOG_ERROR, "ARI ChannelCreated missing required field type\n");
4214 res = 0;
4215 }
4216
4217 if (!has_application) {
4218 ast_log(LOG_ERROR, "ARI ChannelCreated missing required field application\n");
4219 res = 0;
4220 }
4221
4222 if (!has_timestamp) {
4223 ast_log(LOG_ERROR, "ARI ChannelCreated missing required field timestamp\n");
4224 res = 0;
4225 }
4226
4227 if (!has_channel) {
4228 ast_log(LOG_ERROR, "ARI ChannelCreated missing required field channel\n");
4229 res = 0;
4230 }
4231
4232 return res;
4233}
4234
4239
4241{
4242 int res = 1;
4243 struct ast_json_iter *iter;
4244 int has_type = 0;
4245 int has_application = 0;
4246 int has_timestamp = 0;
4247 int has_cause = 0;
4248 int has_cause_txt = 0;
4249 int has_channel = 0;
4250
4251 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4252 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4253 int prop_is_valid;
4254 prop_is_valid = ast_ari_validate_string(
4256 if (!prop_is_valid) {
4257 ast_log(LOG_ERROR, "ARI ChannelDestroyed field asterisk_id failed validation\n");
4258 res = 0;
4259 }
4260 } else
4261 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4262 int prop_is_valid;
4263 has_type = 1;
4264 prop_is_valid = ast_ari_validate_string(
4266 if (!prop_is_valid) {
4267 ast_log(LOG_ERROR, "ARI ChannelDestroyed field type failed validation\n");
4268 res = 0;
4269 }
4270 } else
4271 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4272 int prop_is_valid;
4273 has_application = 1;
4274 prop_is_valid = ast_ari_validate_string(
4276 if (!prop_is_valid) {
4277 ast_log(LOG_ERROR, "ARI ChannelDestroyed field application failed validation\n");
4278 res = 0;
4279 }
4280 } else
4281 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4282 int prop_is_valid;
4283 has_timestamp = 1;
4284 prop_is_valid = ast_ari_validate_date(
4286 if (!prop_is_valid) {
4287 ast_log(LOG_ERROR, "ARI ChannelDestroyed field timestamp failed validation\n");
4288 res = 0;
4289 }
4290 } else
4291 if (strcmp("cause", ast_json_object_iter_key(iter)) == 0) {
4292 int prop_is_valid;
4293 has_cause = 1;
4294 prop_is_valid = ast_ari_validate_int(
4296 if (!prop_is_valid) {
4297 ast_log(LOG_ERROR, "ARI ChannelDestroyed field cause failed validation\n");
4298 res = 0;
4299 }
4300 } else
4301 if (strcmp("cause_txt", ast_json_object_iter_key(iter)) == 0) {
4302 int prop_is_valid;
4303 has_cause_txt = 1;
4304 prop_is_valid = ast_ari_validate_string(
4306 if (!prop_is_valid) {
4307 ast_log(LOG_ERROR, "ARI ChannelDestroyed field cause_txt failed validation\n");
4308 res = 0;
4309 }
4310 } else
4311 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4312 int prop_is_valid;
4313 has_channel = 1;
4314 prop_is_valid = ast_ari_validate_channel(
4316 if (!prop_is_valid) {
4317 ast_log(LOG_ERROR, "ARI ChannelDestroyed field channel failed validation\n");
4318 res = 0;
4319 }
4320 } else
4321 if (strcmp("tech_cause", ast_json_object_iter_key(iter)) == 0) {
4322 int prop_is_valid;
4323 prop_is_valid = ast_ari_validate_int(
4325 if (!prop_is_valid) {
4326 ast_log(LOG_ERROR, "ARI ChannelDestroyed field tech_cause failed validation\n");
4327 res = 0;
4328 }
4329 } else
4330 {
4332 "ARI ChannelDestroyed has undocumented field %s\n",
4334 res = 0;
4335 }
4336 }
4337
4338 if (!has_type) {
4339 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field type\n");
4340 res = 0;
4341 }
4342
4343 if (!has_application) {
4344 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field application\n");
4345 res = 0;
4346 }
4347
4348 if (!has_timestamp) {
4349 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field timestamp\n");
4350 res = 0;
4351 }
4352
4353 if (!has_cause) {
4354 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field cause\n");
4355 res = 0;
4356 }
4357
4358 if (!has_cause_txt) {
4359 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field cause_txt\n");
4360 res = 0;
4361 }
4362
4363 if (!has_channel) {
4364 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field channel\n");
4365 res = 0;
4366 }
4367
4368 return res;
4369}
4370
4375
4377{
4378 int res = 1;
4379 struct ast_json_iter *iter;
4380 int has_type = 0;
4381 int has_application = 0;
4382 int has_timestamp = 0;
4383 int has_channel = 0;
4384 int has_dialplan_app = 0;
4385 int has_dialplan_app_data = 0;
4386
4387 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4388 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4389 int prop_is_valid;
4390 prop_is_valid = ast_ari_validate_string(
4392 if (!prop_is_valid) {
4393 ast_log(LOG_ERROR, "ARI ChannelDialplan field asterisk_id failed validation\n");
4394 res = 0;
4395 }
4396 } else
4397 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4398 int prop_is_valid;
4399 has_type = 1;
4400 prop_is_valid = ast_ari_validate_string(
4402 if (!prop_is_valid) {
4403 ast_log(LOG_ERROR, "ARI ChannelDialplan field type failed validation\n");
4404 res = 0;
4405 }
4406 } else
4407 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4408 int prop_is_valid;
4409 has_application = 1;
4410 prop_is_valid = ast_ari_validate_string(
4412 if (!prop_is_valid) {
4413 ast_log(LOG_ERROR, "ARI ChannelDialplan field application failed validation\n");
4414 res = 0;
4415 }
4416 } else
4417 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4418 int prop_is_valid;
4419 has_timestamp = 1;
4420 prop_is_valid = ast_ari_validate_date(
4422 if (!prop_is_valid) {
4423 ast_log(LOG_ERROR, "ARI ChannelDialplan field timestamp failed validation\n");
4424 res = 0;
4425 }
4426 } else
4427 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4428 int prop_is_valid;
4429 has_channel = 1;
4430 prop_is_valid = ast_ari_validate_channel(
4432 if (!prop_is_valid) {
4433 ast_log(LOG_ERROR, "ARI ChannelDialplan field channel failed validation\n");
4434 res = 0;
4435 }
4436 } else
4437 if (strcmp("dialplan_app", ast_json_object_iter_key(iter)) == 0) {
4438 int prop_is_valid;
4439 has_dialplan_app = 1;
4440 prop_is_valid = ast_ari_validate_string(
4442 if (!prop_is_valid) {
4443 ast_log(LOG_ERROR, "ARI ChannelDialplan field dialplan_app failed validation\n");
4444 res = 0;
4445 }
4446 } else
4447 if (strcmp("dialplan_app_data", ast_json_object_iter_key(iter)) == 0) {
4448 int prop_is_valid;
4449 has_dialplan_app_data = 1;
4450 prop_is_valid = ast_ari_validate_string(
4452 if (!prop_is_valid) {
4453 ast_log(LOG_ERROR, "ARI ChannelDialplan field dialplan_app_data failed validation\n");
4454 res = 0;
4455 }
4456 } else
4457 {
4459 "ARI ChannelDialplan has undocumented field %s\n",
4461 res = 0;
4462 }
4463 }
4464
4465 if (!has_type) {
4466 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field type\n");
4467 res = 0;
4468 }
4469
4470 if (!has_application) {
4471 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field application\n");
4472 res = 0;
4473 }
4474
4475 if (!has_timestamp) {
4476 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field timestamp\n");
4477 res = 0;
4478 }
4479
4480 if (!has_channel) {
4481 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field channel\n");
4482 res = 0;
4483 }
4484
4485 if (!has_dialplan_app) {
4486 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field dialplan_app\n");
4487 res = 0;
4488 }
4489
4490 if (!has_dialplan_app_data) {
4491 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field dialplan_app_data\n");
4492 res = 0;
4493 }
4494
4495 return res;
4496}
4497
4502
4504{
4505 int res = 1;
4506 struct ast_json_iter *iter;
4507 int has_type = 0;
4508 int has_application = 0;
4509 int has_timestamp = 0;
4510 int has_channel = 0;
4511 int has_digit = 0;
4512 int has_duration_ms = 0;
4513
4514 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4515 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4516 int prop_is_valid;
4517 prop_is_valid = ast_ari_validate_string(
4519 if (!prop_is_valid) {
4520 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field asterisk_id failed validation\n");
4521 res = 0;
4522 }
4523 } else
4524 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4525 int prop_is_valid;
4526 has_type = 1;
4527 prop_is_valid = ast_ari_validate_string(
4529 if (!prop_is_valid) {
4530 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field type failed validation\n");
4531 res = 0;
4532 }
4533 } else
4534 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4535 int prop_is_valid;
4536 has_application = 1;
4537 prop_is_valid = ast_ari_validate_string(
4539 if (!prop_is_valid) {
4540 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field application failed validation\n");
4541 res = 0;
4542 }
4543 } else
4544 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4545 int prop_is_valid;
4546 has_timestamp = 1;
4547 prop_is_valid = ast_ari_validate_date(
4549 if (!prop_is_valid) {
4550 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field timestamp failed validation\n");
4551 res = 0;
4552 }
4553 } else
4554 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4555 int prop_is_valid;
4556 has_channel = 1;
4557 prop_is_valid = ast_ari_validate_channel(
4559 if (!prop_is_valid) {
4560 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field channel failed validation\n");
4561 res = 0;
4562 }
4563 } else
4564 if (strcmp("digit", ast_json_object_iter_key(iter)) == 0) {
4565 int prop_is_valid;
4566 has_digit = 1;
4567 prop_is_valid = ast_ari_validate_string(
4569 if (!prop_is_valid) {
4570 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field digit failed validation\n");
4571 res = 0;
4572 }
4573 } else
4574 if (strcmp("duration_ms", ast_json_object_iter_key(iter)) == 0) {
4575 int prop_is_valid;
4576 has_duration_ms = 1;
4577 prop_is_valid = ast_ari_validate_int(
4579 if (!prop_is_valid) {
4580 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field duration_ms failed validation\n");
4581 res = 0;
4582 }
4583 } else
4584 {
4586 "ARI ChannelDtmfReceived has undocumented field %s\n",
4588 res = 0;
4589 }
4590 }
4591
4592 if (!has_type) {
4593 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field type\n");
4594 res = 0;
4595 }
4596
4597 if (!has_application) {
4598 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field application\n");
4599 res = 0;
4600 }
4601
4602 if (!has_timestamp) {
4603 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field timestamp\n");
4604 res = 0;
4605 }
4606
4607 if (!has_channel) {
4608 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field channel\n");
4609 res = 0;
4610 }
4611
4612 if (!has_digit) {
4613 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field digit\n");
4614 res = 0;
4615 }
4616
4617 if (!has_duration_ms) {
4618 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field duration_ms\n");
4619 res = 0;
4620 }
4621
4622 return res;
4623}
4624
4629
4631{
4632 int res = 1;
4633 struct ast_json_iter *iter;
4634 int has_type = 0;
4635 int has_application = 0;
4636 int has_timestamp = 0;
4637 int has_bridge = 0;
4638
4639 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4640 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4641 int prop_is_valid;
4642 prop_is_valid = ast_ari_validate_string(
4644 if (!prop_is_valid) {
4645 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field asterisk_id failed validation\n");
4646 res = 0;
4647 }
4648 } else
4649 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4650 int prop_is_valid;
4651 has_type = 1;
4652 prop_is_valid = ast_ari_validate_string(
4654 if (!prop_is_valid) {
4655 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field type failed validation\n");
4656 res = 0;
4657 }
4658 } else
4659 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4660 int prop_is_valid;
4661 has_application = 1;
4662 prop_is_valid = ast_ari_validate_string(
4664 if (!prop_is_valid) {
4665 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field application failed validation\n");
4666 res = 0;
4667 }
4668 } else
4669 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4670 int prop_is_valid;
4671 has_timestamp = 1;
4672 prop_is_valid = ast_ari_validate_date(
4674 if (!prop_is_valid) {
4675 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field timestamp failed validation\n");
4676 res = 0;
4677 }
4678 } else
4679 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
4680 int prop_is_valid;
4681 has_bridge = 1;
4682 prop_is_valid = ast_ari_validate_bridge(
4684 if (!prop_is_valid) {
4685 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field bridge failed validation\n");
4686 res = 0;
4687 }
4688 } else
4689 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4690 int prop_is_valid;
4691 prop_is_valid = ast_ari_validate_channel(
4693 if (!prop_is_valid) {
4694 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field channel failed validation\n");
4695 res = 0;
4696 }
4697 } else
4698 {
4700 "ARI ChannelEnteredBridge has undocumented field %s\n",
4702 res = 0;
4703 }
4704 }
4705
4706 if (!has_type) {
4707 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge missing required field type\n");
4708 res = 0;
4709 }
4710
4711 if (!has_application) {
4712 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge missing required field application\n");
4713 res = 0;
4714 }
4715
4716 if (!has_timestamp) {
4717 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge missing required field timestamp\n");
4718 res = 0;
4719 }
4720
4721 if (!has_bridge) {
4722 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge missing required field bridge\n");
4723 res = 0;
4724 }
4725
4726 return res;
4727}
4728
4733
4735{
4736 int res = 1;
4737 struct ast_json_iter *iter;
4738 int has_type = 0;
4739 int has_application = 0;
4740 int has_timestamp = 0;
4741 int has_channel = 0;
4742
4743 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4744 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4745 int prop_is_valid;
4746 prop_is_valid = ast_ari_validate_string(
4748 if (!prop_is_valid) {
4749 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field asterisk_id failed validation\n");
4750 res = 0;
4751 }
4752 } else
4753 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4754 int prop_is_valid;
4755 has_type = 1;
4756 prop_is_valid = ast_ari_validate_string(
4758 if (!prop_is_valid) {
4759 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field type failed validation\n");
4760 res = 0;
4761 }
4762 } else
4763 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4764 int prop_is_valid;
4765 has_application = 1;
4766 prop_is_valid = ast_ari_validate_string(
4768 if (!prop_is_valid) {
4769 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field application failed validation\n");
4770 res = 0;
4771 }
4772 } else
4773 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4774 int prop_is_valid;
4775 has_timestamp = 1;
4776 prop_is_valid = ast_ari_validate_date(
4778 if (!prop_is_valid) {
4779 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field timestamp failed validation\n");
4780 res = 0;
4781 }
4782 } else
4783 if (strcmp("cause", ast_json_object_iter_key(iter)) == 0) {
4784 int prop_is_valid;
4785 prop_is_valid = ast_ari_validate_int(
4787 if (!prop_is_valid) {
4788 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field cause failed validation\n");
4789 res = 0;
4790 }
4791 } else
4792 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4793 int prop_is_valid;
4794 has_channel = 1;
4795 prop_is_valid = ast_ari_validate_channel(
4797 if (!prop_is_valid) {
4798 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field channel failed validation\n");
4799 res = 0;
4800 }
4801 } else
4802 if (strcmp("soft", ast_json_object_iter_key(iter)) == 0) {
4803 int prop_is_valid;
4804 prop_is_valid = ast_ari_validate_boolean(
4806 if (!prop_is_valid) {
4807 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field soft failed validation\n");
4808 res = 0;
4809 }
4810 } else
4811 if (strcmp("tech_cause", ast_json_object_iter_key(iter)) == 0) {
4812 int prop_is_valid;
4813 prop_is_valid = ast_ari_validate_int(
4815 if (!prop_is_valid) {
4816 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field tech_cause failed validation\n");
4817 res = 0;
4818 }
4819 } else
4820 {
4822 "ARI ChannelHangupRequest has undocumented field %s\n",
4824 res = 0;
4825 }
4826 }
4827
4828 if (!has_type) {
4829 ast_log(LOG_ERROR, "ARI ChannelHangupRequest missing required field type\n");
4830 res = 0;
4831 }
4832
4833 if (!has_application) {
4834 ast_log(LOG_ERROR, "ARI ChannelHangupRequest missing required field application\n");
4835 res = 0;
4836 }
4837
4838 if (!has_timestamp) {
4839 ast_log(LOG_ERROR, "ARI ChannelHangupRequest missing required field timestamp\n");
4840 res = 0;
4841 }
4842
4843 if (!has_channel) {
4844 ast_log(LOG_ERROR, "ARI ChannelHangupRequest missing required field channel\n");
4845 res = 0;
4846 }
4847
4848 return res;
4849}
4850
4855
4857{
4858 int res = 1;
4859 struct ast_json_iter *iter;
4860 int has_type = 0;
4861 int has_application = 0;
4862 int has_timestamp = 0;
4863 int has_channel = 0;
4864
4865 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4866 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4867 int prop_is_valid;
4868 prop_is_valid = ast_ari_validate_string(
4870 if (!prop_is_valid) {
4871 ast_log(LOG_ERROR, "ARI ChannelHold field asterisk_id failed validation\n");
4872 res = 0;
4873 }
4874 } else
4875 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4876 int prop_is_valid;
4877 has_type = 1;
4878 prop_is_valid = ast_ari_validate_string(
4880 if (!prop_is_valid) {
4881 ast_log(LOG_ERROR, "ARI ChannelHold field type failed validation\n");
4882 res = 0;
4883 }
4884 } else
4885 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4886 int prop_is_valid;
4887 has_application = 1;
4888 prop_is_valid = ast_ari_validate_string(
4890 if (!prop_is_valid) {
4891 ast_log(LOG_ERROR, "ARI ChannelHold field application failed validation\n");
4892 res = 0;
4893 }
4894 } else
4895 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4896 int prop_is_valid;
4897 has_timestamp = 1;
4898 prop_is_valid = ast_ari_validate_date(
4900 if (!prop_is_valid) {
4901 ast_log(LOG_ERROR, "ARI ChannelHold field timestamp failed validation\n");
4902 res = 0;
4903 }
4904 } else
4905 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4906 int prop_is_valid;
4907 has_channel = 1;
4908 prop_is_valid = ast_ari_validate_channel(
4910 if (!prop_is_valid) {
4911 ast_log(LOG_ERROR, "ARI ChannelHold field channel failed validation\n");
4912 res = 0;
4913 }
4914 } else
4915 if (strcmp("musicclass", ast_json_object_iter_key(iter)) == 0) {
4916 int prop_is_valid;
4917 prop_is_valid = ast_ari_validate_string(
4919 if (!prop_is_valid) {
4920 ast_log(LOG_ERROR, "ARI ChannelHold field musicclass failed validation\n");
4921 res = 0;
4922 }
4923 } else
4924 {
4926 "ARI ChannelHold has undocumented field %s\n",
4928 res = 0;
4929 }
4930 }
4931
4932 if (!has_type) {
4933 ast_log(LOG_ERROR, "ARI ChannelHold missing required field type\n");
4934 res = 0;
4935 }
4936
4937 if (!has_application) {
4938 ast_log(LOG_ERROR, "ARI ChannelHold missing required field application\n");
4939 res = 0;
4940 }
4941
4942 if (!has_timestamp) {
4943 ast_log(LOG_ERROR, "ARI ChannelHold missing required field timestamp\n");
4944 res = 0;
4945 }
4946
4947 if (!has_channel) {
4948 ast_log(LOG_ERROR, "ARI ChannelHold missing required field channel\n");
4949 res = 0;
4950 }
4951
4952 return res;
4953}
4954
4959
4961{
4962 int res = 1;
4963 struct ast_json_iter *iter;
4964 int has_type = 0;
4965 int has_application = 0;
4966 int has_timestamp = 0;
4967 int has_bridge = 0;
4968 int has_channel = 0;
4969
4970 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4971 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4972 int prop_is_valid;
4973 prop_is_valid = ast_ari_validate_string(
4975 if (!prop_is_valid) {
4976 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field asterisk_id failed validation\n");
4977 res = 0;
4978 }
4979 } else
4980 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4981 int prop_is_valid;
4982 has_type = 1;
4983 prop_is_valid = ast_ari_validate_string(
4985 if (!prop_is_valid) {
4986 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field type failed validation\n");
4987 res = 0;
4988 }
4989 } else
4990 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4991 int prop_is_valid;
4992 has_application = 1;
4993 prop_is_valid = ast_ari_validate_string(
4995 if (!prop_is_valid) {
4996 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field application failed validation\n");
4997 res = 0;
4998 }
4999 } else
5000 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5001 int prop_is_valid;
5002 has_timestamp = 1;
5003 prop_is_valid = ast_ari_validate_date(
5005 if (!prop_is_valid) {
5006 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field timestamp failed validation\n");
5007 res = 0;
5008 }
5009 } else
5010 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
5011 int prop_is_valid;
5012 has_bridge = 1;
5013 prop_is_valid = ast_ari_validate_bridge(
5015 if (!prop_is_valid) {
5016 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field bridge failed validation\n");
5017 res = 0;
5018 }
5019 } else
5020 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5021 int prop_is_valid;
5022 has_channel = 1;
5023 prop_is_valid = ast_ari_validate_channel(
5025 if (!prop_is_valid) {
5026 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field channel failed validation\n");
5027 res = 0;
5028 }
5029 } else
5030 {
5032 "ARI ChannelLeftBridge has undocumented field %s\n",
5034 res = 0;
5035 }
5036 }
5037
5038 if (!has_type) {
5039 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field type\n");
5040 res = 0;
5041 }
5042
5043 if (!has_application) {
5044 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field application\n");
5045 res = 0;
5046 }
5047
5048 if (!has_timestamp) {
5049 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field timestamp\n");
5050 res = 0;
5051 }
5052
5053 if (!has_bridge) {
5054 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field bridge\n");
5055 res = 0;
5056 }
5057
5058 if (!has_channel) {
5059 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field channel\n");
5060 res = 0;
5061 }
5062
5063 return res;
5064}
5065
5070
5072{
5073 int res = 1;
5074 struct ast_json_iter *iter;
5075 int has_type = 0;
5076 int has_application = 0;
5077 int has_timestamp = 0;
5078 int has_channel = 0;
5079
5080 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5081 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5082 int prop_is_valid;
5083 prop_is_valid = ast_ari_validate_string(
5085 if (!prop_is_valid) {
5086 ast_log(LOG_ERROR, "ARI ChannelStateChange field asterisk_id failed validation\n");
5087 res = 0;
5088 }
5089 } else
5090 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5091 int prop_is_valid;
5092 has_type = 1;
5093 prop_is_valid = ast_ari_validate_string(
5095 if (!prop_is_valid) {
5096 ast_log(LOG_ERROR, "ARI ChannelStateChange field type failed validation\n");
5097 res = 0;
5098 }
5099 } else
5100 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5101 int prop_is_valid;
5102 has_application = 1;
5103 prop_is_valid = ast_ari_validate_string(
5105 if (!prop_is_valid) {
5106 ast_log(LOG_ERROR, "ARI ChannelStateChange field application failed validation\n");
5107 res = 0;
5108 }
5109 } else
5110 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5111 int prop_is_valid;
5112 has_timestamp = 1;
5113 prop_is_valid = ast_ari_validate_date(
5115 if (!prop_is_valid) {
5116 ast_log(LOG_ERROR, "ARI ChannelStateChange field timestamp failed validation\n");
5117 res = 0;
5118 }
5119 } else
5120 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5121 int prop_is_valid;
5122 has_channel = 1;
5123 prop_is_valid = ast_ari_validate_channel(
5125 if (!prop_is_valid) {
5126 ast_log(LOG_ERROR, "ARI ChannelStateChange field channel failed validation\n");
5127 res = 0;
5128 }
5129 } else
5130 {
5132 "ARI ChannelStateChange has undocumented field %s\n",
5134 res = 0;
5135 }
5136 }
5137
5138 if (!has_type) {
5139 ast_log(LOG_ERROR, "ARI ChannelStateChange missing required field type\n");
5140 res = 0;
5141 }
5142
5143 if (!has_application) {
5144 ast_log(LOG_ERROR, "ARI ChannelStateChange missing required field application\n");
5145 res = 0;
5146 }
5147
5148 if (!has_timestamp) {
5149 ast_log(LOG_ERROR, "ARI ChannelStateChange missing required field timestamp\n");
5150 res = 0;
5151 }
5152
5153 if (!has_channel) {
5154 ast_log(LOG_ERROR, "ARI ChannelStateChange missing required field channel\n");
5155 res = 0;
5156 }
5157
5158 return res;
5159}
5160
5165
5167{
5168 int res = 1;
5169 struct ast_json_iter *iter;
5170 int has_type = 0;
5171 int has_application = 0;
5172 int has_timestamp = 0;
5173 int has_channel = 0;
5174 int has_duration = 0;
5175
5176 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5177 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5178 int prop_is_valid;
5179 prop_is_valid = ast_ari_validate_string(
5181 if (!prop_is_valid) {
5182 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field asterisk_id failed validation\n");
5183 res = 0;
5184 }
5185 } else
5186 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5187 int prop_is_valid;
5188 has_type = 1;
5189 prop_is_valid = ast_ari_validate_string(
5191 if (!prop_is_valid) {
5192 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field type failed validation\n");
5193 res = 0;
5194 }
5195 } else
5196 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5197 int prop_is_valid;
5198 has_application = 1;
5199 prop_is_valid = ast_ari_validate_string(
5201 if (!prop_is_valid) {
5202 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field application failed validation\n");
5203 res = 0;
5204 }
5205 } else
5206 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5207 int prop_is_valid;
5208 has_timestamp = 1;
5209 prop_is_valid = ast_ari_validate_date(
5211 if (!prop_is_valid) {
5212 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field timestamp failed validation\n");
5213 res = 0;
5214 }
5215 } else
5216 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5217 int prop_is_valid;
5218 has_channel = 1;
5219 prop_is_valid = ast_ari_validate_channel(
5221 if (!prop_is_valid) {
5222 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field channel failed validation\n");
5223 res = 0;
5224 }
5225 } else
5226 if (strcmp("duration", ast_json_object_iter_key(iter)) == 0) {
5227 int prop_is_valid;
5228 has_duration = 1;
5229 prop_is_valid = ast_ari_validate_int(
5231 if (!prop_is_valid) {
5232 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field duration failed validation\n");
5233 res = 0;
5234 }
5235 } else
5236 {
5238 "ARI ChannelTalkingFinished has undocumented field %s\n",
5240 res = 0;
5241 }
5242 }
5243
5244 if (!has_type) {
5245 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field type\n");
5246 res = 0;
5247 }
5248
5249 if (!has_application) {
5250 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field application\n");
5251 res = 0;
5252 }
5253
5254 if (!has_timestamp) {
5255 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field timestamp\n");
5256 res = 0;
5257 }
5258
5259 if (!has_channel) {
5260 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field channel\n");
5261 res = 0;
5262 }
5263
5264 if (!has_duration) {
5265 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field duration\n");
5266 res = 0;
5267 }
5268
5269 return res;
5270}
5271
5276
5278{
5279 int res = 1;
5280 struct ast_json_iter *iter;
5281 int has_type = 0;
5282 int has_application = 0;
5283 int has_timestamp = 0;
5284 int has_channel = 0;
5285
5286 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5287 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5288 int prop_is_valid;
5289 prop_is_valid = ast_ari_validate_string(
5291 if (!prop_is_valid) {
5292 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field asterisk_id failed validation\n");
5293 res = 0;
5294 }
5295 } else
5296 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5297 int prop_is_valid;
5298 has_type = 1;
5299 prop_is_valid = ast_ari_validate_string(
5301 if (!prop_is_valid) {
5302 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field type failed validation\n");
5303 res = 0;
5304 }
5305 } else
5306 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5307 int prop_is_valid;
5308 has_application = 1;
5309 prop_is_valid = ast_ari_validate_string(
5311 if (!prop_is_valid) {
5312 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field application failed validation\n");
5313 res = 0;
5314 }
5315 } else
5316 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5317 int prop_is_valid;
5318 has_timestamp = 1;
5319 prop_is_valid = ast_ari_validate_date(
5321 if (!prop_is_valid) {
5322 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field timestamp failed validation\n");
5323 res = 0;
5324 }
5325 } else
5326 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5327 int prop_is_valid;
5328 has_channel = 1;
5329 prop_is_valid = ast_ari_validate_channel(
5331 if (!prop_is_valid) {
5332 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field channel failed validation\n");
5333 res = 0;
5334 }
5335 } else
5336 {
5338 "ARI ChannelTalkingStarted has undocumented field %s\n",
5340 res = 0;
5341 }
5342 }
5343
5344 if (!has_type) {
5345 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted missing required field type\n");
5346 res = 0;
5347 }
5348
5349 if (!has_application) {
5350 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted missing required field application\n");
5351 res = 0;
5352 }
5353
5354 if (!has_timestamp) {
5355 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted missing required field timestamp\n");
5356 res = 0;
5357 }
5358
5359 if (!has_channel) {
5360 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted missing required field channel\n");
5361 res = 0;
5362 }
5363
5364 return res;
5365}
5366
5371
5373{
5374 int res = 1;
5375 struct ast_json_iter *iter;
5376 int has_type = 0;
5377 int has_application = 0;
5378 int has_timestamp = 0;
5379 int has_channel = 0;
5380
5381 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5382 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5383 int prop_is_valid;
5384 prop_is_valid = ast_ari_validate_string(
5386 if (!prop_is_valid) {
5387 ast_log(LOG_ERROR, "ARI ChannelToneDetected field asterisk_id failed validation\n");
5388 res = 0;
5389 }
5390 } else
5391 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5392 int prop_is_valid;
5393 has_type = 1;
5394 prop_is_valid = ast_ari_validate_string(
5396 if (!prop_is_valid) {
5397 ast_log(LOG_ERROR, "ARI ChannelToneDetected field type failed validation\n");
5398 res = 0;
5399 }
5400 } else
5401 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5402 int prop_is_valid;
5403 has_application = 1;
5404 prop_is_valid = ast_ari_validate_string(
5406 if (!prop_is_valid) {
5407 ast_log(LOG_ERROR, "ARI ChannelToneDetected field application failed validation\n");
5408 res = 0;
5409 }
5410 } else
5411 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5412 int prop_is_valid;
5413 has_timestamp = 1;
5414 prop_is_valid = ast_ari_validate_date(
5416 if (!prop_is_valid) {
5417 ast_log(LOG_ERROR, "ARI ChannelToneDetected field timestamp failed validation\n");
5418 res = 0;
5419 }
5420 } else
5421 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5422 int prop_is_valid;
5423 has_channel = 1;
5424 prop_is_valid = ast_ari_validate_channel(
5426 if (!prop_is_valid) {
5427 ast_log(LOG_ERROR, "ARI ChannelToneDetected field channel failed validation\n");
5428 res = 0;
5429 }
5430 } else
5431 {
5433 "ARI ChannelToneDetected has undocumented field %s\n",
5435 res = 0;
5436 }
5437 }
5438
5439 if (!has_type) {
5440 ast_log(LOG_ERROR, "ARI ChannelToneDetected missing required field type\n");
5441 res = 0;
5442 }
5443
5444 if (!has_application) {
5445 ast_log(LOG_ERROR, "ARI ChannelToneDetected missing required field application\n");
5446 res = 0;
5447 }
5448
5449 if (!has_timestamp) {
5450 ast_log(LOG_ERROR, "ARI ChannelToneDetected missing required field timestamp\n");
5451 res = 0;
5452 }
5453
5454 if (!has_channel) {
5455 ast_log(LOG_ERROR, "ARI ChannelToneDetected missing required field channel\n");
5456 res = 0;
5457 }
5458
5459 return res;
5460}
5461
5466
5468{
5469 int res = 1;
5470 struct ast_json_iter *iter;
5471 int has_type = 0;
5472 int has_application = 0;
5473 int has_timestamp = 0;
5474 int has_refer_to = 0;
5475 int has_referred_by = 0;
5476
5477 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5478 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5479 int prop_is_valid;
5480 prop_is_valid = ast_ari_validate_string(
5482 if (!prop_is_valid) {
5483 ast_log(LOG_ERROR, "ARI ChannelTransfer field asterisk_id failed validation\n");
5484 res = 0;
5485 }
5486 } else
5487 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5488 int prop_is_valid;
5489 has_type = 1;
5490 prop_is_valid = ast_ari_validate_string(
5492 if (!prop_is_valid) {
5493 ast_log(LOG_ERROR, "ARI ChannelTransfer field type failed validation\n");
5494 res = 0;
5495 }
5496 } else
5497 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5498 int prop_is_valid;
5499 has_application = 1;
5500 prop_is_valid = ast_ari_validate_string(
5502 if (!prop_is_valid) {
5503 ast_log(LOG_ERROR, "ARI ChannelTransfer field application failed validation\n");
5504 res = 0;
5505 }
5506 } else
5507 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5508 int prop_is_valid;
5509 has_timestamp = 1;
5510 prop_is_valid = ast_ari_validate_date(
5512 if (!prop_is_valid) {
5513 ast_log(LOG_ERROR, "ARI ChannelTransfer field timestamp failed validation\n");
5514 res = 0;
5515 }
5516 } else
5517 if (strcmp("refer_to", ast_json_object_iter_key(iter)) == 0) {
5518 int prop_is_valid;
5519 has_refer_to = 1;
5520 prop_is_valid = ast_ari_validate_refer_to(
5522 if (!prop_is_valid) {
5523 ast_log(LOG_ERROR, "ARI ChannelTransfer field refer_to failed validation\n");
5524 res = 0;
5525 }
5526 } else
5527 if (strcmp("referred_by", ast_json_object_iter_key(iter)) == 0) {
5528 int prop_is_valid;
5529 has_referred_by = 1;
5530 prop_is_valid = ast_ari_validate_referred_by(
5532 if (!prop_is_valid) {
5533 ast_log(LOG_ERROR, "ARI ChannelTransfer field referred_by failed validation\n");
5534 res = 0;
5535 }
5536 } else
5537 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
5538 int prop_is_valid;
5539 prop_is_valid = ast_ari_validate_string(
5541 if (!prop_is_valid) {
5542 ast_log(LOG_ERROR, "ARI ChannelTransfer field state failed validation\n");
5543 res = 0;
5544 }
5545 } else
5546 {
5548 "ARI ChannelTransfer has undocumented field %s\n",
5550 res = 0;
5551 }
5552 }
5553
5554 if (!has_type) {
5555 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field type\n");
5556 res = 0;
5557 }
5558
5559 if (!has_application) {
5560 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field application\n");
5561 res = 0;
5562 }
5563
5564 if (!has_timestamp) {
5565 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field timestamp\n");
5566 res = 0;
5567 }
5568
5569 if (!has_refer_to) {
5570 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field refer_to\n");
5571 res = 0;
5572 }
5573
5574 if (!has_referred_by) {
5575 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field referred_by\n");
5576 res = 0;
5577 }
5578
5579 return res;
5580}
5581
5586
5588{
5589 int res = 1;
5590 struct ast_json_iter *iter;
5591 int has_type = 0;
5592 int has_application = 0;
5593 int has_timestamp = 0;
5594 int has_channel = 0;
5595
5596 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5597 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5598 int prop_is_valid;
5599 prop_is_valid = ast_ari_validate_string(
5601 if (!prop_is_valid) {
5602 ast_log(LOG_ERROR, "ARI ChannelUnhold field asterisk_id failed validation\n");
5603 res = 0;
5604 }
5605 } else
5606 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5607 int prop_is_valid;
5608 has_type = 1;
5609 prop_is_valid = ast_ari_validate_string(
5611 if (!prop_is_valid) {
5612 ast_log(LOG_ERROR, "ARI ChannelUnhold field type failed validation\n");
5613 res = 0;
5614 }
5615 } else
5616 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5617 int prop_is_valid;
5618 has_application = 1;
5619 prop_is_valid = ast_ari_validate_string(
5621 if (!prop_is_valid) {
5622 ast_log(LOG_ERROR, "ARI ChannelUnhold field application failed validation\n");
5623 res = 0;
5624 }
5625 } else
5626 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5627 int prop_is_valid;
5628 has_timestamp = 1;
5629 prop_is_valid = ast_ari_validate_date(
5631 if (!prop_is_valid) {
5632 ast_log(LOG_ERROR, "ARI ChannelUnhold field timestamp failed validation\n");
5633 res = 0;
5634 }
5635 } else
5636 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5637 int prop_is_valid;
5638 has_channel = 1;
5639 prop_is_valid = ast_ari_validate_channel(
5641 if (!prop_is_valid) {
5642 ast_log(LOG_ERROR, "ARI ChannelUnhold field channel failed validation\n");
5643 res = 0;
5644 }
5645 } else
5646 {
5648 "ARI ChannelUnhold has undocumented field %s\n",
5650 res = 0;
5651 }
5652 }
5653
5654 if (!has_type) {
5655 ast_log(LOG_ERROR, "ARI ChannelUnhold missing required field type\n");
5656 res = 0;
5657 }
5658
5659 if (!has_application) {
5660 ast_log(LOG_ERROR, "ARI ChannelUnhold missing required field application\n");
5661 res = 0;
5662 }
5663
5664 if (!has_timestamp) {
5665 ast_log(LOG_ERROR, "ARI ChannelUnhold missing required field timestamp\n");
5666 res = 0;
5667 }
5668
5669 if (!has_channel) {
5670 ast_log(LOG_ERROR, "ARI ChannelUnhold missing required field channel\n");
5671 res = 0;
5672 }
5673
5674 return res;
5675}
5676
5681
5683{
5684 int res = 1;
5685 struct ast_json_iter *iter;
5686 int has_type = 0;
5687 int has_application = 0;
5688 int has_timestamp = 0;
5689 int has_eventname = 0;
5690 int has_userevent = 0;
5691
5692 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5693 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5694 int prop_is_valid;
5695 prop_is_valid = ast_ari_validate_string(
5697 if (!prop_is_valid) {
5698 ast_log(LOG_ERROR, "ARI ChannelUserevent field asterisk_id failed validation\n");
5699 res = 0;
5700 }
5701 } else
5702 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5703 int prop_is_valid;
5704 has_type = 1;
5705 prop_is_valid = ast_ari_validate_string(
5707 if (!prop_is_valid) {
5708 ast_log(LOG_ERROR, "ARI ChannelUserevent field type failed validation\n");
5709 res = 0;
5710 }
5711 } else
5712 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5713 int prop_is_valid;
5714 has_application = 1;
5715 prop_is_valid = ast_ari_validate_string(
5717 if (!prop_is_valid) {
5718 ast_log(LOG_ERROR, "ARI ChannelUserevent field application failed validation\n");
5719 res = 0;
5720 }
5721 } else
5722 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5723 int prop_is_valid;
5724 has_timestamp = 1;
5725 prop_is_valid = ast_ari_validate_date(
5727 if (!prop_is_valid) {
5728 ast_log(LOG_ERROR, "ARI ChannelUserevent field timestamp failed validation\n");
5729 res = 0;
5730 }
5731 } else
5732 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
5733 int prop_is_valid;
5734 prop_is_valid = ast_ari_validate_bridge(
5736 if (!prop_is_valid) {
5737 ast_log(LOG_ERROR, "ARI ChannelUserevent field bridge failed validation\n");
5738 res = 0;
5739 }
5740 } else
5741 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5742 int prop_is_valid;
5743 prop_is_valid = ast_ari_validate_channel(
5745 if (!prop_is_valid) {
5746 ast_log(LOG_ERROR, "ARI ChannelUserevent field channel failed validation\n");
5747 res = 0;
5748 }
5749 } else
5750 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
5751 int prop_is_valid;
5752 prop_is_valid = ast_ari_validate_endpoint(
5754 if (!prop_is_valid) {
5755 ast_log(LOG_ERROR, "ARI ChannelUserevent field endpoint failed validation\n");
5756 res = 0;
5757 }
5758 } else
5759 if (strcmp("eventname", ast_json_object_iter_key(iter)) == 0) {
5760 int prop_is_valid;
5761 has_eventname = 1;
5762 prop_is_valid = ast_ari_validate_string(
5764 if (!prop_is_valid) {
5765 ast_log(LOG_ERROR, "ARI ChannelUserevent field eventname failed validation\n");
5766 res = 0;
5767 }
5768 } else
5769 if (strcmp("userevent", ast_json_object_iter_key(iter)) == 0) {
5770 int prop_is_valid;
5771 has_userevent = 1;
5772 prop_is_valid = ast_ari_validate_object(
5774 if (!prop_is_valid) {
5775 ast_log(LOG_ERROR, "ARI ChannelUserevent field userevent failed validation\n");
5776 res = 0;
5777 }
5778 } else
5779 {
5781 "ARI ChannelUserevent has undocumented field %s\n",
5783 res = 0;
5784 }
5785 }
5786
5787 if (!has_type) {
5788 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field type\n");
5789 res = 0;
5790 }
5791
5792 if (!has_application) {
5793 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field application\n");
5794 res = 0;
5795 }
5796
5797 if (!has_timestamp) {
5798 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field timestamp\n");
5799 res = 0;
5800 }
5801
5802 if (!has_eventname) {
5803 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field eventname\n");
5804 res = 0;
5805 }
5806
5807 if (!has_userevent) {
5808 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field userevent\n");
5809 res = 0;
5810 }
5811
5812 return res;
5813}
5814
5819
5821{
5822 int res = 1;
5823 struct ast_json_iter *iter;
5824 int has_type = 0;
5825 int has_application = 0;
5826 int has_timestamp = 0;
5827 int has_value = 0;
5828 int has_variable = 0;
5829
5830 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5831 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5832 int prop_is_valid;
5833 prop_is_valid = ast_ari_validate_string(
5835 if (!prop_is_valid) {
5836 ast_log(LOG_ERROR, "ARI ChannelVarset field asterisk_id failed validation\n");
5837 res = 0;
5838 }
5839 } else
5840 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5841 int prop_is_valid;
5842 has_type = 1;
5843 prop_is_valid = ast_ari_validate_string(
5845 if (!prop_is_valid) {
5846 ast_log(LOG_ERROR, "ARI ChannelVarset field type failed validation\n");
5847 res = 0;
5848 }
5849 } else
5850 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5851 int prop_is_valid;
5852 has_application = 1;
5853 prop_is_valid = ast_ari_validate_string(
5855 if (!prop_is_valid) {
5856 ast_log(LOG_ERROR, "ARI ChannelVarset field application failed validation\n");
5857 res = 0;
5858 }
5859 } else
5860 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5861 int prop_is_valid;
5862 has_timestamp = 1;
5863 prop_is_valid = ast_ari_validate_date(
5865 if (!prop_is_valid) {
5866 ast_log(LOG_ERROR, "ARI ChannelVarset field timestamp failed validation\n");
5867 res = 0;
5868 }
5869 } else
5870 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5871 int prop_is_valid;
5872 prop_is_valid = ast_ari_validate_channel(
5874 if (!prop_is_valid) {
5875 ast_log(LOG_ERROR, "ARI ChannelVarset field channel failed validation\n");
5876 res = 0;
5877 }
5878 } else
5879 if (strcmp("value", ast_json_object_iter_key(iter)) == 0) {
5880 int prop_is_valid;
5881 has_value = 1;
5882 prop_is_valid = ast_ari_validate_string(
5884 if (!prop_is_valid) {
5885 ast_log(LOG_ERROR, "ARI ChannelVarset field value failed validation\n");
5886 res = 0;
5887 }
5888 } else
5889 if (strcmp("variable", ast_json_object_iter_key(iter)) == 0) {
5890 int prop_is_valid;
5891 has_variable = 1;
5892 prop_is_valid = ast_ari_validate_string(
5894 if (!prop_is_valid) {
5895 ast_log(LOG_ERROR, "ARI ChannelVarset field variable failed validation\n");
5896 res = 0;
5897 }
5898 } else
5899 {
5901 "ARI ChannelVarset has undocumented field %s\n",
5903 res = 0;
5904 }
5905 }
5906
5907 if (!has_type) {
5908 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field type\n");
5909 res = 0;
5910 }
5911
5912 if (!has_application) {
5913 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field application\n");
5914 res = 0;
5915 }
5916
5917 if (!has_timestamp) {
5918 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field timestamp\n");
5919 res = 0;
5920 }
5921
5922 if (!has_value) {
5923 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field value\n");
5924 res = 0;
5925 }
5926
5927 if (!has_variable) {
5928 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field variable\n");
5929 res = 0;
5930 }
5931
5932 return res;
5933}
5934
5939
5941{
5942 int res = 1;
5943 struct ast_json_iter *iter;
5944 int has_aor = 0;
5945 int has_contact_status = 0;
5946 int has_uri = 0;
5947
5948 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5949 if (strcmp("aor", ast_json_object_iter_key(iter)) == 0) {
5950 int prop_is_valid;
5951 has_aor = 1;
5952 prop_is_valid = ast_ari_validate_string(
5954 if (!prop_is_valid) {
5955 ast_log(LOG_ERROR, "ARI ContactInfo field aor failed validation\n");
5956 res = 0;
5957 }
5958 } else
5959 if (strcmp("contact_status", ast_json_object_iter_key(iter)) == 0) {
5960 int prop_is_valid;
5961 has_contact_status = 1;
5962 prop_is_valid = ast_ari_validate_string(
5964 if (!prop_is_valid) {
5965 ast_log(LOG_ERROR, "ARI ContactInfo field contact_status failed validation\n");
5966 res = 0;
5967 }
5968 } else
5969 if (strcmp("roundtrip_usec", ast_json_object_iter_key(iter)) == 0) {
5970 int prop_is_valid;
5971 prop_is_valid = ast_ari_validate_string(
5973 if (!prop_is_valid) {
5974 ast_log(LOG_ERROR, "ARI ContactInfo field roundtrip_usec failed validation\n");
5975 res = 0;
5976 }
5977 } else
5978 if (strcmp("uri", ast_json_object_iter_key(iter)) == 0) {
5979 int prop_is_valid;
5980 has_uri = 1;
5981 prop_is_valid = ast_ari_validate_string(
5983 if (!prop_is_valid) {
5984 ast_log(LOG_ERROR, "ARI ContactInfo field uri failed validation\n");
5985 res = 0;
5986 }
5987 } else
5988 {
5990 "ARI ContactInfo has undocumented field %s\n",
5992 res = 0;
5993 }
5994 }
5995
5996 if (!has_aor) {
5997 ast_log(LOG_ERROR, "ARI ContactInfo missing required field aor\n");
5998 res = 0;
5999 }
6000
6001 if (!has_contact_status) {
6002 ast_log(LOG_ERROR, "ARI ContactInfo missing required field contact_status\n");
6003 res = 0;
6004 }
6005
6006 if (!has_uri) {
6007 ast_log(LOG_ERROR, "ARI ContactInfo missing required field uri\n");
6008 res = 0;
6009 }
6010
6011 return res;
6012}
6013
6018
6020{
6021 int res = 1;
6022 struct ast_json_iter *iter;
6023 int has_type = 0;
6024 int has_application = 0;
6025 int has_timestamp = 0;
6026 int has_contact_info = 0;
6027 int has_endpoint = 0;
6028
6029 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6030 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6031 int prop_is_valid;
6032 prop_is_valid = ast_ari_validate_string(
6034 if (!prop_is_valid) {
6035 ast_log(LOG_ERROR, "ARI ContactStatusChange field asterisk_id failed validation\n");
6036 res = 0;
6037 }
6038 } else
6039 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6040 int prop_is_valid;
6041 has_type = 1;
6042 prop_is_valid = ast_ari_validate_string(
6044 if (!prop_is_valid) {
6045 ast_log(LOG_ERROR, "ARI ContactStatusChange field type failed validation\n");
6046 res = 0;
6047 }
6048 } else
6049 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6050 int prop_is_valid;
6051 has_application = 1;
6052 prop_is_valid = ast_ari_validate_string(
6054 if (!prop_is_valid) {
6055 ast_log(LOG_ERROR, "ARI ContactStatusChange field application failed validation\n");
6056 res = 0;
6057 }
6058 } else
6059 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6060 int prop_is_valid;
6061 has_timestamp = 1;
6062 prop_is_valid = ast_ari_validate_date(
6064 if (!prop_is_valid) {
6065 ast_log(LOG_ERROR, "ARI ContactStatusChange field timestamp failed validation\n");
6066 res = 0;
6067 }
6068 } else
6069 if (strcmp("contact_info", ast_json_object_iter_key(iter)) == 0) {
6070 int prop_is_valid;
6071 has_contact_info = 1;
6072 prop_is_valid = ast_ari_validate_contact_info(
6074 if (!prop_is_valid) {
6075 ast_log(LOG_ERROR, "ARI ContactStatusChange field contact_info failed validation\n");
6076 res = 0;
6077 }
6078 } else
6079 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
6080 int prop_is_valid;
6081 has_endpoint = 1;
6082 prop_is_valid = ast_ari_validate_endpoint(
6084 if (!prop_is_valid) {
6085 ast_log(LOG_ERROR, "ARI ContactStatusChange field endpoint failed validation\n");
6086 res = 0;
6087 }
6088 } else
6089 {
6091 "ARI ContactStatusChange has undocumented field %s\n",
6093 res = 0;
6094 }
6095 }
6096
6097 if (!has_type) {
6098 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field type\n");
6099 res = 0;
6100 }
6101
6102 if (!has_application) {
6103 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field application\n");
6104 res = 0;
6105 }
6106
6107 if (!has_timestamp) {
6108 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field timestamp\n");
6109 res = 0;
6110 }
6111
6112 if (!has_contact_info) {
6113 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field contact_info\n");
6114 res = 0;
6115 }
6116
6117 if (!has_endpoint) {
6118 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field endpoint\n");
6119 res = 0;
6120 }
6121
6122 return res;
6123}
6124
6129
6131{
6132 int res = 1;
6133 struct ast_json_iter *iter;
6134 int has_type = 0;
6135 int has_application = 0;
6136 int has_timestamp = 0;
6137 int has_device_state = 0;
6138
6139 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6140 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6141 int prop_is_valid;
6142 prop_is_valid = ast_ari_validate_string(
6144 if (!prop_is_valid) {
6145 ast_log(LOG_ERROR, "ARI DeviceStateChanged field asterisk_id failed validation\n");
6146 res = 0;
6147 }
6148 } else
6149 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6150 int prop_is_valid;
6151 has_type = 1;
6152 prop_is_valid = ast_ari_validate_string(
6154 if (!prop_is_valid) {
6155 ast_log(LOG_ERROR, "ARI DeviceStateChanged field type failed validation\n");
6156 res = 0;
6157 }
6158 } else
6159 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6160 int prop_is_valid;
6161 has_application = 1;
6162 prop_is_valid = ast_ari_validate_string(
6164 if (!prop_is_valid) {
6165 ast_log(LOG_ERROR, "ARI DeviceStateChanged field application failed validation\n");
6166 res = 0;
6167 }
6168 } else
6169 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6170 int prop_is_valid;
6171 has_timestamp = 1;
6172 prop_is_valid = ast_ari_validate_date(
6174 if (!prop_is_valid) {
6175 ast_log(LOG_ERROR, "ARI DeviceStateChanged field timestamp failed validation\n");
6176 res = 0;
6177 }
6178 } else
6179 if (strcmp("device_state", ast_json_object_iter_key(iter)) == 0) {
6180 int prop_is_valid;
6181 has_device_state = 1;
6182 prop_is_valid = ast_ari_validate_device_state(
6184 if (!prop_is_valid) {
6185 ast_log(LOG_ERROR, "ARI DeviceStateChanged field device_state failed validation\n");
6186 res = 0;
6187 }
6188 } else
6189 {
6191 "ARI DeviceStateChanged has undocumented field %s\n",
6193 res = 0;
6194 }
6195 }
6196
6197 if (!has_type) {
6198 ast_log(LOG_ERROR, "ARI DeviceStateChanged missing required field type\n");
6199 res = 0;
6200 }
6201
6202 if (!has_application) {
6203 ast_log(LOG_ERROR, "ARI DeviceStateChanged missing required field application\n");
6204 res = 0;
6205 }
6206
6207 if (!has_timestamp) {
6208 ast_log(LOG_ERROR, "ARI DeviceStateChanged missing required field timestamp\n");
6209 res = 0;
6210 }
6211
6212 if (!has_device_state) {
6213 ast_log(LOG_ERROR, "ARI DeviceStateChanged missing required field device_state\n");
6214 res = 0;
6215 }
6216
6217 return res;
6218}
6219
6224
6226{
6227 int res = 1;
6228 struct ast_json_iter *iter;
6229 int has_type = 0;
6230 int has_application = 0;
6231 int has_timestamp = 0;
6232 int has_dialstatus = 0;
6233 int has_peer = 0;
6234
6235 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6236 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6237 int prop_is_valid;
6238 prop_is_valid = ast_ari_validate_string(
6240 if (!prop_is_valid) {
6241 ast_log(LOG_ERROR, "ARI Dial field asterisk_id failed validation\n");
6242 res = 0;
6243 }
6244 } else
6245 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6246 int prop_is_valid;
6247 has_type = 1;
6248 prop_is_valid = ast_ari_validate_string(
6250 if (!prop_is_valid) {
6251 ast_log(LOG_ERROR, "ARI Dial field type failed validation\n");
6252 res = 0;
6253 }
6254 } else
6255 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6256 int prop_is_valid;
6257 has_application = 1;
6258 prop_is_valid = ast_ari_validate_string(
6260 if (!prop_is_valid) {
6261 ast_log(LOG_ERROR, "ARI Dial field application failed validation\n");
6262 res = 0;
6263 }
6264 } else
6265 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6266 int prop_is_valid;
6267 has_timestamp = 1;
6268 prop_is_valid = ast_ari_validate_date(
6270 if (!prop_is_valid) {
6271 ast_log(LOG_ERROR, "ARI Dial field timestamp failed validation\n");
6272 res = 0;
6273 }
6274 } else
6275 if (strcmp("caller", ast_json_object_iter_key(iter)) == 0) {
6276 int prop_is_valid;
6277 prop_is_valid = ast_ari_validate_channel(
6279 if (!prop_is_valid) {
6280 ast_log(LOG_ERROR, "ARI Dial field caller failed validation\n");
6281 res = 0;
6282 }
6283 } else
6284 if (strcmp("dialstatus", ast_json_object_iter_key(iter)) == 0) {
6285 int prop_is_valid;
6286 has_dialstatus = 1;
6287 prop_is_valid = ast_ari_validate_string(
6289 if (!prop_is_valid) {
6290 ast_log(LOG_ERROR, "ARI Dial field dialstatus failed validation\n");
6291 res = 0;
6292 }
6293 } else
6294 if (strcmp("dialstring", ast_json_object_iter_key(iter)) == 0) {
6295 int prop_is_valid;
6296 prop_is_valid = ast_ari_validate_string(
6298 if (!prop_is_valid) {
6299 ast_log(LOG_ERROR, "ARI Dial field dialstring failed validation\n");
6300 res = 0;
6301 }
6302 } else
6303 if (strcmp("forward", ast_json_object_iter_key(iter)) == 0) {
6304 int prop_is_valid;
6305 prop_is_valid = ast_ari_validate_string(
6307 if (!prop_is_valid) {
6308 ast_log(LOG_ERROR, "ARI Dial field forward failed validation\n");
6309 res = 0;
6310 }
6311 } else
6312 if (strcmp("forwarded", ast_json_object_iter_key(iter)) == 0) {
6313 int prop_is_valid;
6314 prop_is_valid = ast_ari_validate_channel(
6316 if (!prop_is_valid) {
6317 ast_log(LOG_ERROR, "ARI Dial field forwarded failed validation\n");
6318 res = 0;
6319 }
6320 } else
6321 if (strcmp("peer", ast_json_object_iter_key(iter)) == 0) {
6322 int prop_is_valid;
6323 has_peer = 1;
6324 prop_is_valid = ast_ari_validate_channel(
6326 if (!prop_is_valid) {
6327 ast_log(LOG_ERROR, "ARI Dial field peer failed validation\n");
6328 res = 0;
6329 }
6330 } else
6331 {
6333 "ARI Dial has undocumented field %s\n",
6335 res = 0;
6336 }
6337 }
6338
6339 if (!has_type) {
6340 ast_log(LOG_ERROR, "ARI Dial missing required field type\n");
6341 res = 0;
6342 }
6343
6344 if (!has_application) {
6345 ast_log(LOG_ERROR, "ARI Dial missing required field application\n");
6346 res = 0;
6347 }
6348
6349 if (!has_timestamp) {
6350 ast_log(LOG_ERROR, "ARI Dial missing required field timestamp\n");
6351 res = 0;
6352 }
6353
6354 if (!has_dialstatus) {
6355 ast_log(LOG_ERROR, "ARI Dial missing required field dialstatus\n");
6356 res = 0;
6357 }
6358
6359 if (!has_peer) {
6360 ast_log(LOG_ERROR, "ARI Dial missing required field peer\n");
6361 res = 0;
6362 }
6363
6364 return res;
6365}
6366
6371
6373{
6374 int res = 1;
6375 struct ast_json_iter *iter;
6376 int has_type = 0;
6377 int has_application = 0;
6378 int has_timestamp = 0;
6379 int has_endpoint = 0;
6380
6381 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6382 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6383 int prop_is_valid;
6384 prop_is_valid = ast_ari_validate_string(
6386 if (!prop_is_valid) {
6387 ast_log(LOG_ERROR, "ARI EndpointStateChange field asterisk_id failed validation\n");
6388 res = 0;
6389 }
6390 } else
6391 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6392 int prop_is_valid;
6393 has_type = 1;
6394 prop_is_valid = ast_ari_validate_string(
6396 if (!prop_is_valid) {
6397 ast_log(LOG_ERROR, "ARI EndpointStateChange field type failed validation\n");
6398 res = 0;
6399 }
6400 } else
6401 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6402 int prop_is_valid;
6403 has_application = 1;
6404 prop_is_valid = ast_ari_validate_string(
6406 if (!prop_is_valid) {
6407 ast_log(LOG_ERROR, "ARI EndpointStateChange field application failed validation\n");
6408 res = 0;
6409 }
6410 } else
6411 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6412 int prop_is_valid;
6413 has_timestamp = 1;
6414 prop_is_valid = ast_ari_validate_date(
6416 if (!prop_is_valid) {
6417 ast_log(LOG_ERROR, "ARI EndpointStateChange field timestamp failed validation\n");
6418 res = 0;
6419 }
6420 } else
6421 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
6422 int prop_is_valid;
6423 has_endpoint = 1;
6424 prop_is_valid = ast_ari_validate_endpoint(
6426 if (!prop_is_valid) {
6427 ast_log(LOG_ERROR, "ARI EndpointStateChange field endpoint failed validation\n");
6428 res = 0;
6429 }
6430 } else
6431 {
6433 "ARI EndpointStateChange has undocumented field %s\n",
6435 res = 0;
6436 }
6437 }
6438
6439 if (!has_type) {
6440 ast_log(LOG_ERROR, "ARI EndpointStateChange missing required field type\n");
6441 res = 0;
6442 }
6443
6444 if (!has_application) {
6445 ast_log(LOG_ERROR, "ARI EndpointStateChange missing required field application\n");
6446 res = 0;
6447 }
6448
6449 if (!has_timestamp) {
6450 ast_log(LOG_ERROR, "ARI EndpointStateChange missing required field timestamp\n");
6451 res = 0;
6452 }
6453
6454 if (!has_endpoint) {
6455 ast_log(LOG_ERROR, "ARI EndpointStateChange missing required field endpoint\n");
6456 res = 0;
6457 }
6458
6459 return res;
6460}
6461
6466
6468{
6469 int res = 1;
6470 struct ast_json_iter *iter;
6471 int has_type = 0;
6472 int has_application = 0;
6473 int has_timestamp = 0;
6474 const char *discriminator;
6475
6476 discriminator = ast_json_string_get(ast_json_object_get(json, "type"));
6477 if (!discriminator) {
6478 ast_log(LOG_ERROR, "ARI Event missing required field type\n");
6479 return 0;
6480 }
6481
6482 if (strcmp("Event", discriminator) == 0) {
6483 /* Self type; fall through */
6484 } else
6485 if (strcmp("ApplicationMoveFailed", discriminator) == 0) {
6487 } else
6488 if (strcmp("ApplicationRegistered", discriminator) == 0) {
6490 } else
6491 if (strcmp("ApplicationReplaced", discriminator) == 0) {
6493 } else
6494 if (strcmp("ApplicationUnregistered", discriminator) == 0) {
6496 } else
6497 if (strcmp("BridgeAttendedTransfer", discriminator) == 0) {
6499 } else
6500 if (strcmp("BridgeBlindTransfer", discriminator) == 0) {
6502 } else
6503 if (strcmp("BridgeCreated", discriminator) == 0) {
6505 } else
6506 if (strcmp("BridgeDestroyed", discriminator) == 0) {
6508 } else
6509 if (strcmp("BridgeMerged", discriminator) == 0) {
6510 return ast_ari_validate_bridge_merged(json);
6511 } else
6512 if (strcmp("BridgeVideoSourceChanged", discriminator) == 0) {
6514 } else
6515 if (strcmp("CallBroadcast", discriminator) == 0) {
6517 } else
6518 if (strcmp("CallClaimed", discriminator) == 0) {
6519 return ast_ari_validate_call_claimed(json);
6520 } else
6521 if (strcmp("ChannelCallerId", discriminator) == 0) {
6523 } else
6524 if (strcmp("ChannelConnectedLine", discriminator) == 0) {
6526 } else
6527 if (strcmp("ChannelCreated", discriminator) == 0) {
6529 } else
6530 if (strcmp("ChannelDestroyed", discriminator) == 0) {
6532 } else
6533 if (strcmp("ChannelDialplan", discriminator) == 0) {
6535 } else
6536 if (strcmp("ChannelDtmfReceived", discriminator) == 0) {
6538 } else
6539 if (strcmp("ChannelEnteredBridge", discriminator) == 0) {
6541 } else
6542 if (strcmp("ChannelHangupRequest", discriminator) == 0) {
6544 } else
6545 if (strcmp("ChannelHold", discriminator) == 0) {
6546 return ast_ari_validate_channel_hold(json);
6547 } else
6548 if (strcmp("ChannelLeftBridge", discriminator) == 0) {
6550 } else
6551 if (strcmp("ChannelStateChange", discriminator) == 0) {
6553 } else
6554 if (strcmp("ChannelTalkingFinished", discriminator) == 0) {
6556 } else
6557 if (strcmp("ChannelTalkingStarted", discriminator) == 0) {
6559 } else
6560 if (strcmp("ChannelToneDetected", discriminator) == 0) {
6562 } else
6563 if (strcmp("ChannelTransfer", discriminator) == 0) {
6565 } else
6566 if (strcmp("ChannelUnhold", discriminator) == 0) {
6568 } else
6569 if (strcmp("ChannelUserevent", discriminator) == 0) {
6571 } else
6572 if (strcmp("ChannelVarset", discriminator) == 0) {
6574 } else
6575 if (strcmp("ContactStatusChange", discriminator) == 0) {
6577 } else
6578 if (strcmp("DeviceStateChanged", discriminator) == 0) {
6580 } else
6581 if (strcmp("Dial", discriminator) == 0) {
6582 return ast_ari_validate_dial(json);
6583 } else
6584 if (strcmp("EndpointStateChange", discriminator) == 0) {
6586 } else
6587 if (strcmp("PeerStatusChange", discriminator) == 0) {
6589 } else
6590 if (strcmp("PlaybackContinuing", discriminator) == 0) {
6592 } else
6593 if (strcmp("PlaybackFinished", discriminator) == 0) {
6595 } else
6596 if (strcmp("PlaybackStarted", discriminator) == 0) {
6598 } else
6599 if (strcmp("RESTResponse", discriminator) == 0) {
6600 return ast_ari_validate_restresponse(json);
6601 } else
6602 if (strcmp("RecordingFailed", discriminator) == 0) {
6604 } else
6605 if (strcmp("RecordingFinished", discriminator) == 0) {
6607 } else
6608 if (strcmp("RecordingStarted", discriminator) == 0) {
6610 } else
6611 if (strcmp("StasisEnd", discriminator) == 0) {
6612 return ast_ari_validate_stasis_end(json);
6613 } else
6614 if (strcmp("StasisStart", discriminator) == 0) {
6615 return ast_ari_validate_stasis_start(json);
6616 } else
6617 if (strcmp("TextMessageReceived", discriminator) == 0) {
6619 } else
6620 {
6621 ast_log(LOG_ERROR, "ARI Event has undocumented subtype %s\n",
6622 discriminator);
6623 res = 0;
6624 }
6625
6626 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6627 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6628 int prop_is_valid;
6629 prop_is_valid = ast_ari_validate_string(
6631 if (!prop_is_valid) {
6632 ast_log(LOG_ERROR, "ARI Event field asterisk_id failed validation\n");
6633 res = 0;
6634 }
6635 } else
6636 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6637 int prop_is_valid;
6638 has_type = 1;
6639 prop_is_valid = ast_ari_validate_string(
6641 if (!prop_is_valid) {
6642 ast_log(LOG_ERROR, "ARI Event field type failed validation\n");
6643 res = 0;
6644 }
6645 } else
6646 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6647 int prop_is_valid;
6648 has_application = 1;
6649 prop_is_valid = ast_ari_validate_string(
6651 if (!prop_is_valid) {
6652 ast_log(LOG_ERROR, "ARI Event field application failed validation\n");
6653 res = 0;
6654 }
6655 } else
6656 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6657 int prop_is_valid;
6658 has_timestamp = 1;
6659 prop_is_valid = ast_ari_validate_date(
6661 if (!prop_is_valid) {
6662 ast_log(LOG_ERROR, "ARI Event field timestamp failed validation\n");
6663 res = 0;
6664 }
6665 } else
6666 {
6668 "ARI Event has undocumented field %s\n",
6670 res = 0;
6671 }
6672 }
6673
6674 if (!has_type) {
6675 ast_log(LOG_ERROR, "ARI Event missing required field type\n");
6676 res = 0;
6677 }
6678
6679 if (!has_application) {
6680 ast_log(LOG_ERROR, "ARI Event missing required field application\n");
6681 res = 0;
6682 }
6683
6684 if (!has_timestamp) {
6685 ast_log(LOG_ERROR, "ARI Event missing required field timestamp\n");
6686 res = 0;
6687 }
6688
6689 return res;
6690}
6691
6696
6698{
6699 int res = 1;
6700 struct ast_json_iter *iter;
6701 int has_type = 0;
6702 const char *discriminator;
6703
6704 discriminator = ast_json_string_get(ast_json_object_get(json, "type"));
6705 if (!discriminator) {
6706 ast_log(LOG_ERROR, "ARI Message missing required field type\n");
6707 return 0;
6708 }
6709
6710 if (strcmp("Message", discriminator) == 0) {
6711 /* Self type; fall through */
6712 } else
6713 if (strcmp("ApplicationMoveFailed", discriminator) == 0) {
6715 } else
6716 if (strcmp("ApplicationRegistered", discriminator) == 0) {
6718 } else
6719 if (strcmp("ApplicationReplaced", discriminator) == 0) {
6721 } else
6722 if (strcmp("ApplicationUnregistered", discriminator) == 0) {
6724 } else
6725 if (strcmp("BridgeAttendedTransfer", discriminator) == 0) {
6727 } else
6728 if (strcmp("BridgeBlindTransfer", discriminator) == 0) {
6730 } else
6731 if (strcmp("BridgeCreated", discriminator) == 0) {
6733 } else
6734 if (strcmp("BridgeDestroyed", discriminator) == 0) {
6736 } else
6737 if (strcmp("BridgeMerged", discriminator) == 0) {
6738 return ast_ari_validate_bridge_merged(json);
6739 } else
6740 if (strcmp("BridgeVideoSourceChanged", discriminator) == 0) {
6742 } else
6743 if (strcmp("CallBroadcast", discriminator) == 0) {
6745 } else
6746 if (strcmp("CallClaimed", discriminator) == 0) {
6747 return ast_ari_validate_call_claimed(json);
6748 } else
6749 if (strcmp("ChannelCallerId", discriminator) == 0) {
6751 } else
6752 if (strcmp("ChannelConnectedLine", discriminator) == 0) {
6754 } else
6755 if (strcmp("ChannelCreated", discriminator) == 0) {
6757 } else
6758 if (strcmp("ChannelDestroyed", discriminator) == 0) {
6760 } else
6761 if (strcmp("ChannelDialplan", discriminator) == 0) {
6763 } else
6764 if (strcmp("ChannelDtmfReceived", discriminator) == 0) {
6766 } else
6767 if (strcmp("ChannelEnteredBridge", discriminator) == 0) {
6769 } else
6770 if (strcmp("ChannelHangupRequest", discriminator) == 0) {
6772 } else
6773 if (strcmp("ChannelHold", discriminator) == 0) {
6774 return ast_ari_validate_channel_hold(json);
6775 } else
6776 if (strcmp("ChannelLeftBridge", discriminator) == 0) {
6778 } else
6779 if (strcmp("ChannelStateChange", discriminator) == 0) {
6781 } else
6782 if (strcmp("ChannelTalkingFinished", discriminator) == 0) {
6784 } else
6785 if (strcmp("ChannelTalkingStarted", discriminator) == 0) {
6787 } else
6788 if (strcmp("ChannelToneDetected", discriminator) == 0) {
6790 } else
6791 if (strcmp("ChannelTransfer", discriminator) == 0) {
6793 } else
6794 if (strcmp("ChannelUnhold", discriminator) == 0) {
6796 } else
6797 if (strcmp("ChannelUserevent", discriminator) == 0) {
6799 } else
6800 if (strcmp("ChannelVarset", discriminator) == 0) {
6802 } else
6803 if (strcmp("ContactStatusChange", discriminator) == 0) {
6805 } else
6806 if (strcmp("DeviceStateChanged", discriminator) == 0) {
6808 } else
6809 if (strcmp("Dial", discriminator) == 0) {
6810 return ast_ari_validate_dial(json);
6811 } else
6812 if (strcmp("EndpointStateChange", discriminator) == 0) {
6814 } else
6815 if (strcmp("Event", discriminator) == 0) {
6816 return ast_ari_validate_event(json);
6817 } else
6818 if (strcmp("MissingParams", discriminator) == 0) {
6820 } else
6821 if (strcmp("PeerStatusChange", discriminator) == 0) {
6823 } else
6824 if (strcmp("PlaybackContinuing", discriminator) == 0) {
6826 } else
6827 if (strcmp("PlaybackFinished", discriminator) == 0) {
6829 } else
6830 if (strcmp("PlaybackStarted", discriminator) == 0) {
6832 } else
6833 if (strcmp("RESTResponse", discriminator) == 0) {
6834 return ast_ari_validate_restresponse(json);
6835 } else
6836 if (strcmp("RecordingFailed", discriminator) == 0) {
6838 } else
6839 if (strcmp("RecordingFinished", discriminator) == 0) {
6841 } else
6842 if (strcmp("RecordingStarted", discriminator) == 0) {
6844 } else
6845 if (strcmp("StasisEnd", discriminator) == 0) {
6846 return ast_ari_validate_stasis_end(json);
6847 } else
6848 if (strcmp("StasisStart", discriminator) == 0) {
6849 return ast_ari_validate_stasis_start(json);
6850 } else
6851 if (strcmp("TextMessageReceived", discriminator) == 0) {
6853 } else
6854 {
6855 ast_log(LOG_ERROR, "ARI Message has undocumented subtype %s\n",
6856 discriminator);
6857 res = 0;
6858 }
6859
6860 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6861 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6862 int prop_is_valid;
6863 prop_is_valid = ast_ari_validate_string(
6865 if (!prop_is_valid) {
6866 ast_log(LOG_ERROR, "ARI Message field asterisk_id failed validation\n");
6867 res = 0;
6868 }
6869 } else
6870 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6871 int prop_is_valid;
6872 has_type = 1;
6873 prop_is_valid = ast_ari_validate_string(
6875 if (!prop_is_valid) {
6876 ast_log(LOG_ERROR, "ARI Message field type failed validation\n");
6877 res = 0;
6878 }
6879 } else
6880 {
6882 "ARI Message has undocumented field %s\n",
6884 res = 0;
6885 }
6886 }
6887
6888 if (!has_type) {
6889 ast_log(LOG_ERROR, "ARI Message missing required field type\n");
6890 res = 0;
6891 }
6892
6893 return res;
6894}
6895
6900
6902{
6903 int res = 1;
6904 struct ast_json_iter *iter;
6905 int has_type = 0;
6906 int has_params = 0;
6907
6908 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6909 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6910 int prop_is_valid;
6911 prop_is_valid = ast_ari_validate_string(
6913 if (!prop_is_valid) {
6914 ast_log(LOG_ERROR, "ARI MissingParams field asterisk_id failed validation\n");
6915 res = 0;
6916 }
6917 } else
6918 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6919 int prop_is_valid;
6920 has_type = 1;
6921 prop_is_valid = ast_ari_validate_string(
6923 if (!prop_is_valid) {
6924 ast_log(LOG_ERROR, "ARI MissingParams field type failed validation\n");
6925 res = 0;
6926 }
6927 } else
6928 if (strcmp("params", ast_json_object_iter_key(iter)) == 0) {
6929 int prop_is_valid;
6930 has_params = 1;
6931 prop_is_valid = ast_ari_validate_list(
6934 if (!prop_is_valid) {
6935 ast_log(LOG_ERROR, "ARI MissingParams field params failed validation\n");
6936 res = 0;
6937 }
6938 } else
6939 {
6941 "ARI MissingParams has undocumented field %s\n",
6943 res = 0;
6944 }
6945 }
6946
6947 if (!has_type) {
6948 ast_log(LOG_ERROR, "ARI MissingParams missing required field type\n");
6949 res = 0;
6950 }
6951
6952 if (!has_params) {
6953 ast_log(LOG_ERROR, "ARI MissingParams missing required field params\n");
6954 res = 0;
6955 }
6956
6957 return res;
6958}
6959
6964
6966{
6967 int res = 1;
6968 struct ast_json_iter *iter;
6969 int has_peer_status = 0;
6970
6971 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6972 if (strcmp("address", ast_json_object_iter_key(iter)) == 0) {
6973 int prop_is_valid;
6974 prop_is_valid = ast_ari_validate_string(
6976 if (!prop_is_valid) {
6977 ast_log(LOG_ERROR, "ARI Peer field address failed validation\n");
6978 res = 0;
6979 }
6980 } else
6981 if (strcmp("cause", ast_json_object_iter_key(iter)) == 0) {
6982 int prop_is_valid;
6983 prop_is_valid = ast_ari_validate_string(
6985 if (!prop_is_valid) {
6986 ast_log(LOG_ERROR, "ARI Peer field cause failed validation\n");
6987 res = 0;
6988 }
6989 } else
6990 if (strcmp("peer_status", ast_json_object_iter_key(iter)) == 0) {
6991 int prop_is_valid;
6992 has_peer_status = 1;
6993 prop_is_valid = ast_ari_validate_string(
6995 if (!prop_is_valid) {
6996 ast_log(LOG_ERROR, "ARI Peer field peer_status failed validation\n");
6997 res = 0;
6998 }
6999 } else
7000 if (strcmp("port", ast_json_object_iter_key(iter)) == 0) {
7001 int prop_is_valid;
7002 prop_is_valid = ast_ari_validate_string(
7004 if (!prop_is_valid) {
7005 ast_log(LOG_ERROR, "ARI Peer field port failed validation\n");
7006 res = 0;
7007 }
7008 } else
7009 if (strcmp("time", ast_json_object_iter_key(iter)) == 0) {
7010 int prop_is_valid;
7011 prop_is_valid = ast_ari_validate_string(
7013 if (!prop_is_valid) {
7014 ast_log(LOG_ERROR, "ARI Peer field time failed validation\n");
7015 res = 0;
7016 }
7017 } else
7018 {
7020 "ARI Peer has undocumented field %s\n",
7022 res = 0;
7023 }
7024 }
7025
7026 if (!has_peer_status) {
7027 ast_log(LOG_ERROR, "ARI Peer missing required field peer_status\n");
7028 res = 0;
7029 }
7030
7031 return res;
7032}
7033
7038
7040{
7041 int res = 1;
7042 struct ast_json_iter *iter;
7043 int has_type = 0;
7044 int has_application = 0;
7045 int has_timestamp = 0;
7046 int has_endpoint = 0;
7047 int has_peer = 0;
7048
7049 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7050 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7051 int prop_is_valid;
7052 prop_is_valid = ast_ari_validate_string(
7054 if (!prop_is_valid) {
7055 ast_log(LOG_ERROR, "ARI PeerStatusChange field asterisk_id failed validation\n");
7056 res = 0;
7057 }
7058 } else
7059 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7060 int prop_is_valid;
7061 has_type = 1;
7062 prop_is_valid = ast_ari_validate_string(
7064 if (!prop_is_valid) {
7065 ast_log(LOG_ERROR, "ARI PeerStatusChange field type failed validation\n");
7066 res = 0;
7067 }
7068 } else
7069 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7070 int prop_is_valid;
7071 has_application = 1;
7072 prop_is_valid = ast_ari_validate_string(
7074 if (!prop_is_valid) {
7075 ast_log(LOG_ERROR, "ARI PeerStatusChange field application failed validation\n");
7076 res = 0;
7077 }
7078 } else
7079 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7080 int prop_is_valid;
7081 has_timestamp = 1;
7082 prop_is_valid = ast_ari_validate_date(
7084 if (!prop_is_valid) {
7085 ast_log(LOG_ERROR, "ARI PeerStatusChange field timestamp failed validation\n");
7086 res = 0;
7087 }
7088 } else
7089 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
7090 int prop_is_valid;
7091 has_endpoint = 1;
7092 prop_is_valid = ast_ari_validate_endpoint(
7094 if (!prop_is_valid) {
7095 ast_log(LOG_ERROR, "ARI PeerStatusChange field endpoint failed validation\n");
7096 res = 0;
7097 }
7098 } else
7099 if (strcmp("peer", ast_json_object_iter_key(iter)) == 0) {
7100 int prop_is_valid;
7101 has_peer = 1;
7102 prop_is_valid = ast_ari_validate_peer(
7104 if (!prop_is_valid) {
7105 ast_log(LOG_ERROR, "ARI PeerStatusChange field peer failed validation\n");
7106 res = 0;
7107 }
7108 } else
7109 {
7111 "ARI PeerStatusChange has undocumented field %s\n",
7113 res = 0;
7114 }
7115 }
7116
7117 if (!has_type) {
7118 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field type\n");
7119 res = 0;
7120 }
7121
7122 if (!has_application) {
7123 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field application\n");
7124 res = 0;
7125 }
7126
7127 if (!has_timestamp) {
7128 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field timestamp\n");
7129 res = 0;
7130 }
7131
7132 if (!has_endpoint) {
7133 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field endpoint\n");
7134 res = 0;
7135 }
7136
7137 if (!has_peer) {
7138 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field peer\n");
7139 res = 0;
7140 }
7141
7142 return res;
7143}
7144
7149
7151{
7152 int res = 1;
7153 struct ast_json_iter *iter;
7154 int has_type = 0;
7155 int has_application = 0;
7156 int has_timestamp = 0;
7157 int has_playback = 0;
7158
7159 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7160 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7161 int prop_is_valid;
7162 prop_is_valid = ast_ari_validate_string(
7164 if (!prop_is_valid) {
7165 ast_log(LOG_ERROR, "ARI PlaybackContinuing field asterisk_id failed validation\n");
7166 res = 0;
7167 }
7168 } else
7169 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7170 int prop_is_valid;
7171 has_type = 1;
7172 prop_is_valid = ast_ari_validate_string(
7174 if (!prop_is_valid) {
7175 ast_log(LOG_ERROR, "ARI PlaybackContinuing field type failed validation\n");
7176 res = 0;
7177 }
7178 } else
7179 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7180 int prop_is_valid;
7181 has_application = 1;
7182 prop_is_valid = ast_ari_validate_string(
7184 if (!prop_is_valid) {
7185 ast_log(LOG_ERROR, "ARI PlaybackContinuing field application failed validation\n");
7186 res = 0;
7187 }
7188 } else
7189 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7190 int prop_is_valid;
7191 has_timestamp = 1;
7192 prop_is_valid = ast_ari_validate_date(
7194 if (!prop_is_valid) {
7195 ast_log(LOG_ERROR, "ARI PlaybackContinuing field timestamp failed validation\n");
7196 res = 0;
7197 }
7198 } else
7199 if (strcmp("playback", ast_json_object_iter_key(iter)) == 0) {
7200 int prop_is_valid;
7201 has_playback = 1;
7202 prop_is_valid = ast_ari_validate_playback(
7204 if (!prop_is_valid) {
7205 ast_log(LOG_ERROR, "ARI PlaybackContinuing field playback failed validation\n");
7206 res = 0;
7207 }
7208 } else
7209 {
7211 "ARI PlaybackContinuing has undocumented field %s\n",
7213 res = 0;
7214 }
7215 }
7216
7217 if (!has_type) {
7218 ast_log(LOG_ERROR, "ARI PlaybackContinuing missing required field type\n");
7219 res = 0;
7220 }
7221
7222 if (!has_application) {
7223 ast_log(LOG_ERROR, "ARI PlaybackContinuing missing required field application\n");
7224 res = 0;
7225 }
7226
7227 if (!has_timestamp) {
7228 ast_log(LOG_ERROR, "ARI PlaybackContinuing missing required field timestamp\n");
7229 res = 0;
7230 }
7231
7232 if (!has_playback) {
7233 ast_log(LOG_ERROR, "ARI PlaybackContinuing missing required field playback\n");
7234 res = 0;
7235 }
7236
7237 return res;
7238}
7239
7244
7246{
7247 int res = 1;
7248 struct ast_json_iter *iter;
7249 int has_type = 0;
7250 int has_application = 0;
7251 int has_timestamp = 0;
7252 int has_playback = 0;
7253
7254 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7255 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7256 int prop_is_valid;
7257 prop_is_valid = ast_ari_validate_string(
7259 if (!prop_is_valid) {
7260 ast_log(LOG_ERROR, "ARI PlaybackFinished field asterisk_id failed validation\n");
7261 res = 0;
7262 }
7263 } else
7264 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7265 int prop_is_valid;
7266 has_type = 1;
7267 prop_is_valid = ast_ari_validate_string(
7269 if (!prop_is_valid) {
7270 ast_log(LOG_ERROR, "ARI PlaybackFinished field type failed validation\n");
7271 res = 0;
7272 }
7273 } else
7274 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7275 int prop_is_valid;
7276 has_application = 1;
7277 prop_is_valid = ast_ari_validate_string(
7279 if (!prop_is_valid) {
7280 ast_log(LOG_ERROR, "ARI PlaybackFinished field application failed validation\n");
7281 res = 0;
7282 }
7283 } else
7284 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7285 int prop_is_valid;
7286 has_timestamp = 1;
7287 prop_is_valid = ast_ari_validate_date(
7289 if (!prop_is_valid) {
7290 ast_log(LOG_ERROR, "ARI PlaybackFinished field timestamp failed validation\n");
7291 res = 0;
7292 }
7293 } else
7294 if (strcmp("playback", ast_json_object_iter_key(iter)) == 0) {
7295 int prop_is_valid;
7296 has_playback = 1;
7297 prop_is_valid = ast_ari_validate_playback(
7299 if (!prop_is_valid) {
7300 ast_log(LOG_ERROR, "ARI PlaybackFinished field playback failed validation\n");
7301 res = 0;
7302 }
7303 } else
7304 {
7306 "ARI PlaybackFinished has undocumented field %s\n",
7308 res = 0;
7309 }
7310 }
7311
7312 if (!has_type) {
7313 ast_log(LOG_ERROR, "ARI PlaybackFinished missing required field type\n");
7314 res = 0;
7315 }
7316
7317 if (!has_application) {
7318 ast_log(LOG_ERROR, "ARI PlaybackFinished missing required field application\n");
7319 res = 0;
7320 }
7321
7322 if (!has_timestamp) {
7323 ast_log(LOG_ERROR, "ARI PlaybackFinished missing required field timestamp\n");
7324 res = 0;
7325 }
7326
7327 if (!has_playback) {
7328 ast_log(LOG_ERROR, "ARI PlaybackFinished missing required field playback\n");
7329 res = 0;
7330 }
7331
7332 return res;
7333}
7334
7339
7341{
7342 int res = 1;
7343 struct ast_json_iter *iter;
7344 int has_type = 0;
7345 int has_application = 0;
7346 int has_timestamp = 0;
7347 int has_playback = 0;
7348
7349 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7350 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7351 int prop_is_valid;
7352 prop_is_valid = ast_ari_validate_string(
7354 if (!prop_is_valid) {
7355 ast_log(LOG_ERROR, "ARI PlaybackStarted field asterisk_id failed validation\n");
7356 res = 0;
7357 }
7358 } else
7359 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7360 int prop_is_valid;
7361 has_type = 1;
7362 prop_is_valid = ast_ari_validate_string(
7364 if (!prop_is_valid) {
7365 ast_log(LOG_ERROR, "ARI PlaybackStarted field type failed validation\n");
7366 res = 0;
7367 }
7368 } else
7369 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7370 int prop_is_valid;
7371 has_application = 1;
7372 prop_is_valid = ast_ari_validate_string(
7374 if (!prop_is_valid) {
7375 ast_log(LOG_ERROR, "ARI PlaybackStarted field application failed validation\n");
7376 res = 0;
7377 }
7378 } else
7379 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7380 int prop_is_valid;
7381 has_timestamp = 1;
7382 prop_is_valid = ast_ari_validate_date(
7384 if (!prop_is_valid) {
7385 ast_log(LOG_ERROR, "ARI PlaybackStarted field timestamp failed validation\n");
7386 res = 0;
7387 }
7388 } else
7389 if (strcmp("playback", ast_json_object_iter_key(iter)) == 0) {
7390 int prop_is_valid;
7391 has_playback = 1;
7392 prop_is_valid = ast_ari_validate_playback(
7394 if (!prop_is_valid) {
7395 ast_log(LOG_ERROR, "ARI PlaybackStarted field playback failed validation\n");
7396 res = 0;
7397 }
7398 } else
7399 {
7401 "ARI PlaybackStarted has undocumented field %s\n",
7403 res = 0;
7404 }
7405 }
7406
7407 if (!has_type) {
7408 ast_log(LOG_ERROR, "ARI PlaybackStarted missing required field type\n");
7409 res = 0;
7410 }
7411
7412 if (!has_application) {
7413 ast_log(LOG_ERROR, "ARI PlaybackStarted missing required field application\n");
7414 res = 0;
7415 }
7416
7417 if (!has_timestamp) {
7418 ast_log(LOG_ERROR, "ARI PlaybackStarted missing required field timestamp\n");
7419 res = 0;
7420 }
7421
7422 if (!has_playback) {
7423 ast_log(LOG_ERROR, "ARI PlaybackStarted missing required field playback\n");
7424 res = 0;
7425 }
7426
7427 return res;
7428}
7429
7434
7436{
7437 int res = 1;
7438 struct ast_json_iter *iter;
7439 int has_name = 0;
7440 int has_value = 0;
7441
7442 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7443 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
7444 int prop_is_valid;
7445 has_name = 1;
7446 prop_is_valid = ast_ari_validate_string(
7448 if (!prop_is_valid) {
7449 ast_log(LOG_ERROR, "ARI RESTHeader field name failed validation\n");
7450 res = 0;
7451 }
7452 } else
7453 if (strcmp("value", ast_json_object_iter_key(iter)) == 0) {
7454 int prop_is_valid;
7455 has_value = 1;
7456 prop_is_valid = ast_ari_validate_string(
7458 if (!prop_is_valid) {
7459 ast_log(LOG_ERROR, "ARI RESTHeader field value failed validation\n");
7460 res = 0;
7461 }
7462 } else
7463 {
7465 "ARI RESTHeader has undocumented field %s\n",
7467 res = 0;
7468 }
7469 }
7470
7471 if (!has_name) {
7472 ast_log(LOG_ERROR, "ARI RESTHeader missing required field name\n");
7473 res = 0;
7474 }
7475
7476 if (!has_value) {
7477 ast_log(LOG_ERROR, "ARI RESTHeader missing required field value\n");
7478 res = 0;
7479 }
7480
7481 return res;
7482}
7483
7488
7490{
7491 int res = 1;
7492 struct ast_json_iter *iter;
7493 int has_name = 0;
7494 int has_value = 0;
7495
7496 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7497 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
7498 int prop_is_valid;
7499 has_name = 1;
7500 prop_is_valid = ast_ari_validate_string(
7502 if (!prop_is_valid) {
7503 ast_log(LOG_ERROR, "ARI RESTQueryStringParameter field name failed validation\n");
7504 res = 0;
7505 }
7506 } else
7507 if (strcmp("value", ast_json_object_iter_key(iter)) == 0) {
7508 int prop_is_valid;
7509 has_value = 1;
7510 prop_is_valid = ast_ari_validate_string(
7512 if (!prop_is_valid) {
7513 ast_log(LOG_ERROR, "ARI RESTQueryStringParameter field value failed validation\n");
7514 res = 0;
7515 }
7516 } else
7517 {
7519 "ARI RESTQueryStringParameter has undocumented field %s\n",
7521 res = 0;
7522 }
7523 }
7524
7525 if (!has_name) {
7526 ast_log(LOG_ERROR, "ARI RESTQueryStringParameter missing required field name\n");
7527 res = 0;
7528 }
7529
7530 if (!has_value) {
7531 ast_log(LOG_ERROR, "ARI RESTQueryStringParameter missing required field value\n");
7532 res = 0;
7533 }
7534
7535 return res;
7536}
7537
7542
7544{
7545 int res = 1;
7546 struct ast_json_iter *iter;
7547 int has_method = 0;
7548 int has_request_id = 0;
7549 int has_transaction_id = 0;
7550 int has_type = 0;
7551 int has_uri = 0;
7552
7553 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7554 if (strcmp("content_type", ast_json_object_iter_key(iter)) == 0) {
7555 int prop_is_valid;
7556 prop_is_valid = ast_ari_validate_string(
7558 if (!prop_is_valid) {
7559 ast_log(LOG_ERROR, "ARI RESTRequest field content_type failed validation\n");
7560 res = 0;
7561 }
7562 } else
7563 if (strcmp("message_body", ast_json_object_iter_key(iter)) == 0) {
7564 int prop_is_valid;
7565 prop_is_valid = ast_ari_validate_string(
7567 if (!prop_is_valid) {
7568 ast_log(LOG_ERROR, "ARI RESTRequest field message_body failed validation\n");
7569 res = 0;
7570 }
7571 } else
7572 if (strcmp("method", ast_json_object_iter_key(iter)) == 0) {
7573 int prop_is_valid;
7574 has_method = 1;
7575 prop_is_valid = ast_ari_validate_string(
7577 if (!prop_is_valid) {
7578 ast_log(LOG_ERROR, "ARI RESTRequest field method failed validation\n");
7579 res = 0;
7580 }
7581 } else
7582 if (strcmp("query_strings", ast_json_object_iter_key(iter)) == 0) {
7583 int prop_is_valid;
7584 prop_is_valid = ast_ari_validate_list(
7587 if (!prop_is_valid) {
7588 ast_log(LOG_ERROR, "ARI RESTRequest field query_strings failed validation\n");
7589 res = 0;
7590 }
7591 } else
7592 if (strcmp("request_id", ast_json_object_iter_key(iter)) == 0) {
7593 int prop_is_valid;
7594 has_request_id = 1;
7595 prop_is_valid = ast_ari_validate_string(
7597 if (!prop_is_valid) {
7598 ast_log(LOG_ERROR, "ARI RESTRequest field request_id failed validation\n");
7599 res = 0;
7600 }
7601 } else
7602 if (strcmp("transaction_id", ast_json_object_iter_key(iter)) == 0) {
7603 int prop_is_valid;
7604 has_transaction_id = 1;
7605 prop_is_valid = ast_ari_validate_string(
7607 if (!prop_is_valid) {
7608 ast_log(LOG_ERROR, "ARI RESTRequest field transaction_id failed validation\n");
7609 res = 0;
7610 }
7611 } else
7612 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7613 int prop_is_valid;
7614 has_type = 1;
7615 prop_is_valid = ast_ari_validate_string(
7617 if (!prop_is_valid) {
7618 ast_log(LOG_ERROR, "ARI RESTRequest field type failed validation\n");
7619 res = 0;
7620 }
7621 } else
7622 if (strcmp("uri", ast_json_object_iter_key(iter)) == 0) {
7623 int prop_is_valid;
7624 has_uri = 1;
7625 prop_is_valid = ast_ari_validate_string(
7627 if (!prop_is_valid) {
7628 ast_log(LOG_ERROR, "ARI RESTRequest field uri failed validation\n");
7629 res = 0;
7630 }
7631 } else
7632 {
7634 "ARI RESTRequest has undocumented field %s\n",
7636 res = 0;
7637 }
7638 }
7639
7640 if (!has_method) {
7641 ast_log(LOG_ERROR, "ARI RESTRequest missing required field method\n");
7642 res = 0;
7643 }
7644
7645 if (!has_request_id) {
7646 ast_log(LOG_ERROR, "ARI RESTRequest missing required field request_id\n");
7647 res = 0;
7648 }
7649
7650 if (!has_transaction_id) {
7651 ast_log(LOG_ERROR, "ARI RESTRequest missing required field transaction_id\n");
7652 res = 0;
7653 }
7654
7655 if (!has_type) {
7656 ast_log(LOG_ERROR, "ARI RESTRequest missing required field type\n");
7657 res = 0;
7658 }
7659
7660 if (!has_uri) {
7661 ast_log(LOG_ERROR, "ARI RESTRequest missing required field uri\n");
7662 res = 0;
7663 }
7664
7665 return res;
7666}
7667
7672
7674{
7675 int res = 1;
7676 struct ast_json_iter *iter;
7677 int has_type = 0;
7678 int has_application = 0;
7679 int has_timestamp = 0;
7680 int has_reason_phrase = 0;
7681 int has_request_id = 0;
7682 int has_status_code = 0;
7683 int has_transaction_id = 0;
7684 int has_uri = 0;
7685
7686 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7687 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7688 int prop_is_valid;
7689 prop_is_valid = ast_ari_validate_string(
7691 if (!prop_is_valid) {
7692 ast_log(LOG_ERROR, "ARI RESTResponse field asterisk_id failed validation\n");
7693 res = 0;
7694 }
7695 } else
7696 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7697 int prop_is_valid;
7698 has_type = 1;
7699 prop_is_valid = ast_ari_validate_string(
7701 if (!prop_is_valid) {
7702 ast_log(LOG_ERROR, "ARI RESTResponse field type failed validation\n");
7703 res = 0;
7704 }
7705 } else
7706 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7707 int prop_is_valid;
7708 has_application = 1;
7709 prop_is_valid = ast_ari_validate_string(
7711 if (!prop_is_valid) {
7712 ast_log(LOG_ERROR, "ARI RESTResponse field application failed validation\n");
7713 res = 0;
7714 }
7715 } else
7716 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7717 int prop_is_valid;
7718 has_timestamp = 1;
7719 prop_is_valid = ast_ari_validate_date(
7721 if (!prop_is_valid) {
7722 ast_log(LOG_ERROR, "ARI RESTResponse field timestamp failed validation\n");
7723 res = 0;
7724 }
7725 } else
7726 if (strcmp("content_type", ast_json_object_iter_key(iter)) == 0) {
7727 int prop_is_valid;
7728 prop_is_valid = ast_ari_validate_string(
7730 if (!prop_is_valid) {
7731 ast_log(LOG_ERROR, "ARI RESTResponse field content_type failed validation\n");
7732 res = 0;
7733 }
7734 } else
7735 if (strcmp("message_body", ast_json_object_iter_key(iter)) == 0) {
7736 int prop_is_valid;
7737 prop_is_valid = ast_ari_validate_string(
7739 if (!prop_is_valid) {
7740 ast_log(LOG_ERROR, "ARI RESTResponse field message_body failed validation\n");
7741 res = 0;
7742 }
7743 } else
7744 if (strcmp("reason_phrase", ast_json_object_iter_key(iter)) == 0) {
7745 int prop_is_valid;
7746 has_reason_phrase = 1;
7747 prop_is_valid = ast_ari_validate_string(
7749 if (!prop_is_valid) {
7750 ast_log(LOG_ERROR, "ARI RESTResponse field reason_phrase failed validation\n");
7751 res = 0;
7752 }
7753 } else
7754 if (strcmp("request_id", ast_json_object_iter_key(iter)) == 0) {
7755 int prop_is_valid;
7756 has_request_id = 1;
7757 prop_is_valid = ast_ari_validate_string(
7759 if (!prop_is_valid) {
7760 ast_log(LOG_ERROR, "ARI RESTResponse field request_id failed validation\n");
7761 res = 0;
7762 }
7763 } else
7764 if (strcmp("status_code", ast_json_object_iter_key(iter)) == 0) {
7765 int prop_is_valid;
7766 has_status_code = 1;
7767 prop_is_valid = ast_ari_validate_int(
7769 if (!prop_is_valid) {
7770 ast_log(LOG_ERROR, "ARI RESTResponse field status_code failed validation\n");
7771 res = 0;
7772 }
7773 } else
7774 if (strcmp("transaction_id", ast_json_object_iter_key(iter)) == 0) {
7775 int prop_is_valid;
7776 has_transaction_id = 1;
7777 prop_is_valid = ast_ari_validate_string(
7779 if (!prop_is_valid) {
7780 ast_log(LOG_ERROR, "ARI RESTResponse field transaction_id failed validation\n");
7781 res = 0;
7782 }
7783 } else
7784 if (strcmp("uri", ast_json_object_iter_key(iter)) == 0) {
7785 int prop_is_valid;
7786 has_uri = 1;
7787 prop_is_valid = ast_ari_validate_string(
7789 if (!prop_is_valid) {
7790 ast_log(LOG_ERROR, "ARI RESTResponse field uri failed validation\n");
7791 res = 0;
7792 }
7793 } else
7794 {
7796 "ARI RESTResponse has undocumented field %s\n",
7798 res = 0;
7799 }
7800 }
7801
7802 if (!has_type) {
7803 ast_log(LOG_ERROR, "ARI RESTResponse missing required field type\n");
7804 res = 0;
7805 }
7806
7807 if (!has_application) {
7808 ast_log(LOG_ERROR, "ARI RESTResponse missing required field application\n");
7809 res = 0;
7810 }
7811
7812 if (!has_timestamp) {
7813 ast_log(LOG_ERROR, "ARI RESTResponse missing required field timestamp\n");
7814 res = 0;
7815 }
7816
7817 if (!has_reason_phrase) {
7818 ast_log(LOG_ERROR, "ARI RESTResponse missing required field reason_phrase\n");
7819 res = 0;
7820 }
7821
7822 if (!has_request_id) {
7823 ast_log(LOG_ERROR, "ARI RESTResponse missing required field request_id\n");
7824 res = 0;
7825 }
7826
7827 if (!has_status_code) {
7828 ast_log(LOG_ERROR, "ARI RESTResponse missing required field status_code\n");
7829 res = 0;
7830 }
7831
7832 if (!has_transaction_id) {
7833 ast_log(LOG_ERROR, "ARI RESTResponse missing required field transaction_id\n");
7834 res = 0;
7835 }
7836
7837 if (!has_uri) {
7838 ast_log(LOG_ERROR, "ARI RESTResponse missing required field uri\n");
7839 res = 0;
7840 }
7841
7842 return res;
7843}
7844
7849
7851{
7852 int res = 1;
7853 struct ast_json_iter *iter;
7854 int has_type = 0;
7855 int has_application = 0;
7856 int has_timestamp = 0;
7857 int has_recording = 0;
7858
7859 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7860 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7861 int prop_is_valid;
7862 prop_is_valid = ast_ari_validate_string(
7864 if (!prop_is_valid) {
7865 ast_log(LOG_ERROR, "ARI RecordingFailed field asterisk_id failed validation\n");
7866 res = 0;
7867 }
7868 } else
7869 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7870 int prop_is_valid;
7871 has_type = 1;
7872 prop_is_valid = ast_ari_validate_string(
7874 if (!prop_is_valid) {
7875 ast_log(LOG_ERROR, "ARI RecordingFailed field type failed validation\n");
7876 res = 0;
7877 }
7878 } else
7879 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7880 int prop_is_valid;
7881 has_application = 1;
7882 prop_is_valid = ast_ari_validate_string(
7884 if (!prop_is_valid) {
7885 ast_log(LOG_ERROR, "ARI RecordingFailed field application failed validation\n");
7886 res = 0;
7887 }
7888 } else
7889 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7890 int prop_is_valid;
7891 has_timestamp = 1;
7892 prop_is_valid = ast_ari_validate_date(
7894 if (!prop_is_valid) {
7895 ast_log(LOG_ERROR, "ARI RecordingFailed field timestamp failed validation\n");
7896 res = 0;
7897 }
7898 } else
7899 if (strcmp("recording", ast_json_object_iter_key(iter)) == 0) {
7900 int prop_is_valid;
7901 has_recording = 1;
7902 prop_is_valid = ast_ari_validate_live_recording(
7904 if (!prop_is_valid) {
7905 ast_log(LOG_ERROR, "ARI RecordingFailed field recording failed validation\n");
7906 res = 0;
7907 }
7908 } else
7909 {
7911 "ARI RecordingFailed has undocumented field %s\n",
7913 res = 0;
7914 }
7915 }
7916
7917 if (!has_type) {
7918 ast_log(LOG_ERROR, "ARI RecordingFailed missing required field type\n");
7919 res = 0;
7920 }
7921
7922 if (!has_application) {
7923 ast_log(LOG_ERROR, "ARI RecordingFailed missing required field application\n");
7924 res = 0;
7925 }
7926
7927 if (!has_timestamp) {
7928 ast_log(LOG_ERROR, "ARI RecordingFailed missing required field timestamp\n");
7929 res = 0;
7930 }
7931
7932 if (!has_recording) {
7933 ast_log(LOG_ERROR, "ARI RecordingFailed missing required field recording\n");
7934 res = 0;
7935 }
7936
7937 return res;
7938}
7939
7944
7946{
7947 int res = 1;
7948 struct ast_json_iter *iter;
7949 int has_type = 0;
7950 int has_application = 0;
7951 int has_timestamp = 0;
7952 int has_recording = 0;
7953
7954 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7955 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7956 int prop_is_valid;
7957 prop_is_valid = ast_ari_validate_string(
7959 if (!prop_is_valid) {
7960 ast_log(LOG_ERROR, "ARI RecordingFinished field asterisk_id failed validation\n");
7961 res = 0;
7962 }
7963 } else
7964 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7965 int prop_is_valid;
7966 has_type = 1;
7967 prop_is_valid = ast_ari_validate_string(
7969 if (!prop_is_valid) {
7970 ast_log(LOG_ERROR, "ARI RecordingFinished field type failed validation\n");
7971 res = 0;
7972 }
7973 } else
7974 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7975 int prop_is_valid;
7976 has_application = 1;
7977 prop_is_valid = ast_ari_validate_string(
7979 if (!prop_is_valid) {
7980 ast_log(LOG_ERROR, "ARI RecordingFinished field application failed validation\n");
7981 res = 0;
7982 }
7983 } else
7984 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7985 int prop_is_valid;
7986 has_timestamp = 1;
7987 prop_is_valid = ast_ari_validate_date(
7989 if (!prop_is_valid) {
7990 ast_log(LOG_ERROR, "ARI RecordingFinished field timestamp failed validation\n");
7991 res = 0;
7992 }
7993 } else
7994 if (strcmp("recording", ast_json_object_iter_key(iter)) == 0) {
7995 int prop_is_valid;
7996 has_recording = 1;
7997 prop_is_valid = ast_ari_validate_live_recording(
7999 if (!prop_is_valid) {
8000 ast_log(LOG_ERROR, "ARI RecordingFinished field recording failed validation\n");
8001 res = 0;
8002 }
8003 } else
8004 {
8006 "ARI RecordingFinished has undocumented field %s\n",
8008 res = 0;
8009 }
8010 }
8011
8012 if (!has_type) {
8013 ast_log(LOG_ERROR, "ARI RecordingFinished missing required field type\n");
8014 res = 0;
8015 }
8016
8017 if (!has_application) {
8018 ast_log(LOG_ERROR, "ARI RecordingFinished missing required field application\n");
8019 res = 0;
8020 }
8021
8022 if (!has_timestamp) {
8023 ast_log(LOG_ERROR, "ARI RecordingFinished missing required field timestamp\n");
8024 res = 0;
8025 }
8026
8027 if (!has_recording) {
8028 ast_log(LOG_ERROR, "ARI RecordingFinished missing required field recording\n");
8029 res = 0;
8030 }
8031
8032 return res;
8033}
8034
8039
8041{
8042 int res = 1;
8043 struct ast_json_iter *iter;
8044 int has_type = 0;
8045 int has_application = 0;
8046 int has_timestamp = 0;
8047 int has_recording = 0;
8048
8049 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8050 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8051 int prop_is_valid;
8052 prop_is_valid = ast_ari_validate_string(
8054 if (!prop_is_valid) {
8055 ast_log(LOG_ERROR, "ARI RecordingStarted field asterisk_id failed validation\n");
8056 res = 0;
8057 }
8058 } else
8059 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8060 int prop_is_valid;
8061 has_type = 1;
8062 prop_is_valid = ast_ari_validate_string(
8064 if (!prop_is_valid) {
8065 ast_log(LOG_ERROR, "ARI RecordingStarted field type failed validation\n");
8066 res = 0;
8067 }
8068 } else
8069 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8070 int prop_is_valid;
8071 has_application = 1;
8072 prop_is_valid = ast_ari_validate_string(
8074 if (!prop_is_valid) {
8075 ast_log(LOG_ERROR, "ARI RecordingStarted field application failed validation\n");
8076 res = 0;
8077 }
8078 } else
8079 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8080 int prop_is_valid;
8081 has_timestamp = 1;
8082 prop_is_valid = ast_ari_validate_date(
8084 if (!prop_is_valid) {
8085 ast_log(LOG_ERROR, "ARI RecordingStarted field timestamp failed validation\n");
8086 res = 0;
8087 }
8088 } else
8089 if (strcmp("recording", ast_json_object_iter_key(iter)) == 0) {
8090 int prop_is_valid;
8091 has_recording = 1;
8092 prop_is_valid = ast_ari_validate_live_recording(
8094 if (!prop_is_valid) {
8095 ast_log(LOG_ERROR, "ARI RecordingStarted field recording failed validation\n");
8096 res = 0;
8097 }
8098 } else
8099 {
8101 "ARI RecordingStarted has undocumented field %s\n",
8103 res = 0;
8104 }
8105 }
8106
8107 if (!has_type) {
8108 ast_log(LOG_ERROR, "ARI RecordingStarted missing required field type\n");
8109 res = 0;
8110 }
8111
8112 if (!has_application) {
8113 ast_log(LOG_ERROR, "ARI RecordingStarted missing required field application\n");
8114 res = 0;
8115 }
8116
8117 if (!has_timestamp) {
8118 ast_log(LOG_ERROR, "ARI RecordingStarted missing required field timestamp\n");
8119 res = 0;
8120 }
8121
8122 if (!has_recording) {
8123 ast_log(LOG_ERROR, "ARI RecordingStarted missing required field recording\n");
8124 res = 0;
8125 }
8126
8127 return res;
8128}
8129
8134
8136{
8137 int res = 1;
8138 struct ast_json_iter *iter;
8139 int has_requested_destination = 0;
8140
8141 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8142 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
8143 int prop_is_valid;
8144 prop_is_valid = ast_ari_validate_bridge(
8146 if (!prop_is_valid) {
8147 ast_log(LOG_ERROR, "ARI ReferTo field bridge failed validation\n");
8148 res = 0;
8149 }
8150 } else
8151 if (strcmp("connected_channel", ast_json_object_iter_key(iter)) == 0) {
8152 int prop_is_valid;
8153 prop_is_valid = ast_ari_validate_channel(
8155 if (!prop_is_valid) {
8156 ast_log(LOG_ERROR, "ARI ReferTo field connected_channel failed validation\n");
8157 res = 0;
8158 }
8159 } else
8160 if (strcmp("destination_channel", ast_json_object_iter_key(iter)) == 0) {
8161 int prop_is_valid;
8162 prop_is_valid = ast_ari_validate_channel(
8164 if (!prop_is_valid) {
8165 ast_log(LOG_ERROR, "ARI ReferTo field destination_channel failed validation\n");
8166 res = 0;
8167 }
8168 } else
8169 if (strcmp("requested_destination", ast_json_object_iter_key(iter)) == 0) {
8170 int prop_is_valid;
8171 has_requested_destination = 1;
8174 if (!prop_is_valid) {
8175 ast_log(LOG_ERROR, "ARI ReferTo field requested_destination failed validation\n");
8176 res = 0;
8177 }
8178 } else
8179 {
8181 "ARI ReferTo has undocumented field %s\n",
8183 res = 0;
8184 }
8185 }
8186
8187 if (!has_requested_destination) {
8188 ast_log(LOG_ERROR, "ARI ReferTo missing required field requested_destination\n");
8189 res = 0;
8190 }
8191
8192 return res;
8193}
8194
8199
8201{
8202 int res = 1;
8203 struct ast_json_iter *iter;
8204 int has_source_channel = 0;
8205
8206 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8207 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
8208 int prop_is_valid;
8209 prop_is_valid = ast_ari_validate_bridge(
8211 if (!prop_is_valid) {
8212 ast_log(LOG_ERROR, "ARI ReferredBy field bridge failed validation\n");
8213 res = 0;
8214 }
8215 } else
8216 if (strcmp("connected_channel", ast_json_object_iter_key(iter)) == 0) {
8217 int prop_is_valid;
8218 prop_is_valid = ast_ari_validate_channel(
8220 if (!prop_is_valid) {
8221 ast_log(LOG_ERROR, "ARI ReferredBy field connected_channel failed validation\n");
8222 res = 0;
8223 }
8224 } else
8225 if (strcmp("source_channel", ast_json_object_iter_key(iter)) == 0) {
8226 int prop_is_valid;
8227 has_source_channel = 1;
8228 prop_is_valid = ast_ari_validate_channel(
8230 if (!prop_is_valid) {
8231 ast_log(LOG_ERROR, "ARI ReferredBy field source_channel failed validation\n");
8232 res = 0;
8233 }
8234 } else
8235 {
8237 "ARI ReferredBy has undocumented field %s\n",
8239 res = 0;
8240 }
8241 }
8242
8243 if (!has_source_channel) {
8244 ast_log(LOG_ERROR, "ARI ReferredBy missing required field source_channel\n");
8245 res = 0;
8246 }
8247
8248 return res;
8249}
8250
8255
8257{
8258 int res = 1;
8259 struct ast_json_iter *iter;
8260
8261 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8262 if (strcmp("additional_protocol_params", ast_json_object_iter_key(iter)) == 0) {
8263 int prop_is_valid;
8264 prop_is_valid = ast_ari_validate_list(
8267 if (!prop_is_valid) {
8268 ast_log(LOG_ERROR, "ARI RequiredDestination field additional_protocol_params failed validation\n");
8269 res = 0;
8270 }
8271 } else
8272 if (strcmp("destination", ast_json_object_iter_key(iter)) == 0) {
8273 int prop_is_valid;
8274 prop_is_valid = ast_ari_validate_string(
8276 if (!prop_is_valid) {
8277 ast_log(LOG_ERROR, "ARI RequiredDestination field destination failed validation\n");
8278 res = 0;
8279 }
8280 } else
8281 if (strcmp("protocol_id", ast_json_object_iter_key(iter)) == 0) {
8282 int prop_is_valid;
8283 prop_is_valid = ast_ari_validate_string(
8285 if (!prop_is_valid) {
8286 ast_log(LOG_ERROR, "ARI RequiredDestination field protocol_id failed validation\n");
8287 res = 0;
8288 }
8289 } else
8290 {
8292 "ARI RequiredDestination has undocumented field %s\n",
8294 res = 0;
8295 }
8296 }
8297
8298 return res;
8299}
8300
8305
8307{
8308 int res = 1;
8309 struct ast_json_iter *iter;
8310 int has_type = 0;
8311 int has_application = 0;
8312 int has_timestamp = 0;
8313 int has_channel = 0;
8314
8315 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8316 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8317 int prop_is_valid;
8318 prop_is_valid = ast_ari_validate_string(
8320 if (!prop_is_valid) {
8321 ast_log(LOG_ERROR, "ARI StasisEnd field asterisk_id failed validation\n");
8322 res = 0;
8323 }
8324 } else
8325 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8326 int prop_is_valid;
8327 has_type = 1;
8328 prop_is_valid = ast_ari_validate_string(
8330 if (!prop_is_valid) {
8331 ast_log(LOG_ERROR, "ARI StasisEnd field type failed validation\n");
8332 res = 0;
8333 }
8334 } else
8335 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8336 int prop_is_valid;
8337 has_application = 1;
8338 prop_is_valid = ast_ari_validate_string(
8340 if (!prop_is_valid) {
8341 ast_log(LOG_ERROR, "ARI StasisEnd field application failed validation\n");
8342 res = 0;
8343 }
8344 } else
8345 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8346 int prop_is_valid;
8347 has_timestamp = 1;
8348 prop_is_valid = ast_ari_validate_date(
8350 if (!prop_is_valid) {
8351 ast_log(LOG_ERROR, "ARI StasisEnd field timestamp failed validation\n");
8352 res = 0;
8353 }
8354 } else
8355 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
8356 int prop_is_valid;
8357 has_channel = 1;
8358 prop_is_valid = ast_ari_validate_channel(
8360 if (!prop_is_valid) {
8361 ast_log(LOG_ERROR, "ARI StasisEnd field channel failed validation\n");
8362 res = 0;
8363 }
8364 } else
8365 {
8367 "ARI StasisEnd has undocumented field %s\n",
8369 res = 0;
8370 }
8371 }
8372
8373 if (!has_type) {
8374 ast_log(LOG_ERROR, "ARI StasisEnd missing required field type\n");
8375 res = 0;
8376 }
8377
8378 if (!has_application) {
8379 ast_log(LOG_ERROR, "ARI StasisEnd missing required field application\n");
8380 res = 0;
8381 }
8382
8383 if (!has_timestamp) {
8384 ast_log(LOG_ERROR, "ARI StasisEnd missing required field timestamp\n");
8385 res = 0;
8386 }
8387
8388 if (!has_channel) {
8389 ast_log(LOG_ERROR, "ARI StasisEnd missing required field channel\n");
8390 res = 0;
8391 }
8392
8393 return res;
8394}
8395
8400
8402{
8403 int res = 1;
8404 struct ast_json_iter *iter;
8405 int has_type = 0;
8406 int has_application = 0;
8407 int has_timestamp = 0;
8408 int has_args = 0;
8409 int has_channel = 0;
8410
8411 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8412 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8413 int prop_is_valid;
8414 prop_is_valid = ast_ari_validate_string(
8416 if (!prop_is_valid) {
8417 ast_log(LOG_ERROR, "ARI StasisStart field asterisk_id failed validation\n");
8418 res = 0;
8419 }
8420 } else
8421 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8422 int prop_is_valid;
8423 has_type = 1;
8424 prop_is_valid = ast_ari_validate_string(
8426 if (!prop_is_valid) {
8427 ast_log(LOG_ERROR, "ARI StasisStart field type failed validation\n");
8428 res = 0;
8429 }
8430 } else
8431 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8432 int prop_is_valid;
8433 has_application = 1;
8434 prop_is_valid = ast_ari_validate_string(
8436 if (!prop_is_valid) {
8437 ast_log(LOG_ERROR, "ARI StasisStart field application failed validation\n");
8438 res = 0;
8439 }
8440 } else
8441 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8442 int prop_is_valid;
8443 has_timestamp = 1;
8444 prop_is_valid = ast_ari_validate_date(
8446 if (!prop_is_valid) {
8447 ast_log(LOG_ERROR, "ARI StasisStart field timestamp failed validation\n");
8448 res = 0;
8449 }
8450 } else
8451 if (strcmp("args", ast_json_object_iter_key(iter)) == 0) {
8452 int prop_is_valid;
8453 has_args = 1;
8454 prop_is_valid = ast_ari_validate_list(
8457 if (!prop_is_valid) {
8458 ast_log(LOG_ERROR, "ARI StasisStart field args failed validation\n");
8459 res = 0;
8460 }
8461 } else
8462 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
8463 int prop_is_valid;
8464 has_channel = 1;
8465 prop_is_valid = ast_ari_validate_channel(
8467 if (!prop_is_valid) {
8468 ast_log(LOG_ERROR, "ARI StasisStart field channel failed validation\n");
8469 res = 0;
8470 }
8471 } else
8472 if (strcmp("replace_channel", ast_json_object_iter_key(iter)) == 0) {
8473 int prop_is_valid;
8474 prop_is_valid = ast_ari_validate_channel(
8476 if (!prop_is_valid) {
8477 ast_log(LOG_ERROR, "ARI StasisStart field replace_channel failed validation\n");
8478 res = 0;
8479 }
8480 } else
8481 {
8483 "ARI StasisStart has undocumented field %s\n",
8485 res = 0;
8486 }
8487 }
8488
8489 if (!has_type) {
8490 ast_log(LOG_ERROR, "ARI StasisStart missing required field type\n");
8491 res = 0;
8492 }
8493
8494 if (!has_application) {
8495 ast_log(LOG_ERROR, "ARI StasisStart missing required field application\n");
8496 res = 0;
8497 }
8498
8499 if (!has_timestamp) {
8500 ast_log(LOG_ERROR, "ARI StasisStart missing required field timestamp\n");
8501 res = 0;
8502 }
8503
8504 if (!has_args) {
8505 ast_log(LOG_ERROR, "ARI StasisStart missing required field args\n");
8506 res = 0;
8507 }
8508
8509 if (!has_channel) {
8510 ast_log(LOG_ERROR, "ARI StasisStart missing required field channel\n");
8511 res = 0;
8512 }
8513
8514 return res;
8515}
8516
8521
8523{
8524 int res = 1;
8525 struct ast_json_iter *iter;
8526 int has_type = 0;
8527 int has_application = 0;
8528 int has_timestamp = 0;
8529 int has_message = 0;
8530
8531 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8532 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8533 int prop_is_valid;
8534 prop_is_valid = ast_ari_validate_string(
8536 if (!prop_is_valid) {
8537 ast_log(LOG_ERROR, "ARI TextMessageReceived field asterisk_id failed validation\n");
8538 res = 0;
8539 }
8540 } else
8541 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8542 int prop_is_valid;
8543 has_type = 1;
8544 prop_is_valid = ast_ari_validate_string(
8546 if (!prop_is_valid) {
8547 ast_log(LOG_ERROR, "ARI TextMessageReceived field type failed validation\n");
8548 res = 0;
8549 }
8550 } else
8551 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8552 int prop_is_valid;
8553 has_application = 1;
8554 prop_is_valid = ast_ari_validate_string(
8556 if (!prop_is_valid) {
8557 ast_log(LOG_ERROR, "ARI TextMessageReceived field application failed validation\n");
8558 res = 0;
8559 }
8560 } else
8561 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8562 int prop_is_valid;
8563 has_timestamp = 1;
8564 prop_is_valid = ast_ari_validate_date(
8566 if (!prop_is_valid) {
8567 ast_log(LOG_ERROR, "ARI TextMessageReceived field timestamp failed validation\n");
8568 res = 0;
8569 }
8570 } else
8571 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
8572 int prop_is_valid;
8573 prop_is_valid = ast_ari_validate_endpoint(
8575 if (!prop_is_valid) {
8576 ast_log(LOG_ERROR, "ARI TextMessageReceived field endpoint failed validation\n");
8577 res = 0;
8578 }
8579 } else
8580 if (strcmp("message", ast_json_object_iter_key(iter)) == 0) {
8581 int prop_is_valid;
8582 has_message = 1;
8583 prop_is_valid = ast_ari_validate_text_message(
8585 if (!prop_is_valid) {
8586 ast_log(LOG_ERROR, "ARI TextMessageReceived field message failed validation\n");
8587 res = 0;
8588 }
8589 } else
8590 {
8592 "ARI TextMessageReceived has undocumented field %s\n",
8594 res = 0;
8595 }
8596 }
8597
8598 if (!has_type) {
8599 ast_log(LOG_ERROR, "ARI TextMessageReceived missing required field type\n");
8600 res = 0;
8601 }
8602
8603 if (!has_application) {
8604 ast_log(LOG_ERROR, "ARI TextMessageReceived missing required field application\n");
8605 res = 0;
8606 }
8607
8608 if (!has_timestamp) {
8609 ast_log(LOG_ERROR, "ARI TextMessageReceived missing required field timestamp\n");
8610 res = 0;
8611 }
8612
8613 if (!has_message) {
8614 ast_log(LOG_ERROR, "ARI TextMessageReceived missing required field message\n");
8615 res = 0;
8616 }
8617
8618 return res;
8619}
8620
8625
8627{
8628 int res = 1;
8629 struct ast_json_iter *iter;
8630 int has_bridge_ids = 0;
8631 int has_channel_ids = 0;
8632 int has_device_names = 0;
8633 int has_endpoint_ids = 0;
8634 int has_events_allowed = 0;
8635 int has_events_disallowed = 0;
8636 int has_name = 0;
8637
8638 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8639 if (strcmp("bridge_ids", ast_json_object_iter_key(iter)) == 0) {
8640 int prop_is_valid;
8641 has_bridge_ids = 1;
8642 prop_is_valid = ast_ari_validate_list(
8645 if (!prop_is_valid) {
8646 ast_log(LOG_ERROR, "ARI Application field bridge_ids failed validation\n");
8647 res = 0;
8648 }
8649 } else
8650 if (strcmp("channel_ids", ast_json_object_iter_key(iter)) == 0) {
8651 int prop_is_valid;
8652 has_channel_ids = 1;
8653 prop_is_valid = ast_ari_validate_list(
8656 if (!prop_is_valid) {
8657 ast_log(LOG_ERROR, "ARI Application field channel_ids failed validation\n");
8658 res = 0;
8659 }
8660 } else
8661 if (strcmp("device_names", ast_json_object_iter_key(iter)) == 0) {
8662 int prop_is_valid;
8663 has_device_names = 1;
8664 prop_is_valid = ast_ari_validate_list(
8667 if (!prop_is_valid) {
8668 ast_log(LOG_ERROR, "ARI Application field device_names failed validation\n");
8669 res = 0;
8670 }
8671 } else
8672 if (strcmp("endpoint_ids", ast_json_object_iter_key(iter)) == 0) {
8673 int prop_is_valid;
8674 has_endpoint_ids = 1;
8675 prop_is_valid = ast_ari_validate_list(
8678 if (!prop_is_valid) {
8679 ast_log(LOG_ERROR, "ARI Application field endpoint_ids failed validation\n");
8680 res = 0;
8681 }
8682 } else
8683 if (strcmp("events_allowed", ast_json_object_iter_key(iter)) == 0) {
8684 int prop_is_valid;
8685 has_events_allowed = 1;
8686 prop_is_valid = ast_ari_validate_list(
8689 if (!prop_is_valid) {
8690 ast_log(LOG_ERROR, "ARI Application field events_allowed failed validation\n");
8691 res = 0;
8692 }
8693 } else
8694 if (strcmp("events_disallowed", ast_json_object_iter_key(iter)) == 0) {
8695 int prop_is_valid;
8696 has_events_disallowed = 1;
8697 prop_is_valid = ast_ari_validate_list(
8700 if (!prop_is_valid) {
8701 ast_log(LOG_ERROR, "ARI Application field events_disallowed failed validation\n");
8702 res = 0;
8703 }
8704 } else
8705 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
8706 int prop_is_valid;
8707 has_name = 1;
8708 prop_is_valid = ast_ari_validate_string(
8710 if (!prop_is_valid) {
8711 ast_log(LOG_ERROR, "ARI Application field name failed validation\n");
8712 res = 0;
8713 }
8714 } else
8715 {
8717 "ARI Application has undocumented field %s\n",
8719 res = 0;
8720 }
8721 }
8722
8723 if (!has_bridge_ids) {
8724 ast_log(LOG_ERROR, "ARI Application missing required field bridge_ids\n");
8725 res = 0;
8726 }
8727
8728 if (!has_channel_ids) {
8729 ast_log(LOG_ERROR, "ARI Application missing required field channel_ids\n");
8730 res = 0;
8731 }
8732
8733 if (!has_device_names) {
8734 ast_log(LOG_ERROR, "ARI Application missing required field device_names\n");
8735 res = 0;
8736 }
8737
8738 if (!has_endpoint_ids) {
8739 ast_log(LOG_ERROR, "ARI Application missing required field endpoint_ids\n");
8740 res = 0;
8741 }
8742
8743 if (!has_events_allowed) {
8744 ast_log(LOG_ERROR, "ARI Application missing required field events_allowed\n");
8745 res = 0;
8746 }
8747
8748 if (!has_events_disallowed) {
8749 ast_log(LOG_ERROR, "ARI Application missing required field events_disallowed\n");
8750 res = 0;
8751 }
8752
8753 if (!has_name) {
8754 ast_log(LOG_ERROR, "ARI Application missing required field name\n");
8755 res = 0;
8756 }
8757
8758 return res;
8759}
8760
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_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.
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, ...).