Asterisk - The Open Source Telephony Project GIT-master-590b490
Loading...
Searching...
No Matches
Typedefs | Functions
ari_model_validators.h File Reference

Generated file - Build validators for ARI model objects. More...

#include "asterisk/json.h"
Include dependency graph for ari_model_validators.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef int(* ari_validator) (struct ast_json *json)
 Function type for validator functions. Allows for.
 

Functions

int ast_ari_validate_additional_param (struct ast_json *json)
 Validator for AdditionalParam.
 
ari_validator ast_ari_validate_additional_param_fn (void)
 Function pointer to ast_ari_validate_additional_param().
 
int ast_ari_validate_application (struct ast_json *json)
 Validator for Application.
 
ari_validator ast_ari_validate_application_fn (void)
 Function pointer to ast_ari_validate_application().
 
int ast_ari_validate_application_move_failed (struct ast_json *json)
 Validator for ApplicationMoveFailed.
 
ari_validator ast_ari_validate_application_move_failed_fn (void)
 Function pointer to ast_ari_validate_application_move_failed().
 
int ast_ari_validate_application_registered (struct ast_json *json)
 Validator for ApplicationRegistered.
 
ari_validator ast_ari_validate_application_registered_fn (void)
 Function pointer to ast_ari_validate_application_registered().
 
int ast_ari_validate_application_replaced (struct ast_json *json)
 Validator for ApplicationReplaced.
 
ari_validator ast_ari_validate_application_replaced_fn (void)
 Function pointer to ast_ari_validate_application_replaced().
 
int ast_ari_validate_application_unregistered (struct ast_json *json)
 Validator for ApplicationUnregistered.
 
ari_validator ast_ari_validate_application_unregistered_fn (void)
 Function pointer to ast_ari_validate_application_unregistered().
 
int ast_ari_validate_asterisk_info (struct ast_json *json)
 Validator for AsteriskInfo.
 
ari_validator ast_ari_validate_asterisk_info_fn (void)
 Function pointer to ast_ari_validate_asterisk_info().
 
int ast_ari_validate_asterisk_ping (struct ast_json *json)
 Validator for AsteriskPing.
 
ari_validator ast_ari_validate_asterisk_ping_fn (void)
 Function pointer to ast_ari_validate_asterisk_ping().
 
int ast_ari_validate_bridge (struct ast_json *json)
 Validator for Bridge.
 
int ast_ari_validate_bridge_attended_transfer (struct ast_json *json)
 Validator for BridgeAttendedTransfer.
 
ari_validator ast_ari_validate_bridge_attended_transfer_fn (void)
 Function pointer to ast_ari_validate_bridge_attended_transfer().
 
int ast_ari_validate_bridge_blind_transfer (struct ast_json *json)
 Validator for BridgeBlindTransfer.
 
ari_validator ast_ari_validate_bridge_blind_transfer_fn (void)
 Function pointer to ast_ari_validate_bridge_blind_transfer().
 
int ast_ari_validate_bridge_created (struct ast_json *json)
 Validator for BridgeCreated.
 
ari_validator ast_ari_validate_bridge_created_fn (void)
 Function pointer to ast_ari_validate_bridge_created().
 
int ast_ari_validate_bridge_destroyed (struct ast_json *json)
 Validator for BridgeDestroyed.
 
ari_validator ast_ari_validate_bridge_destroyed_fn (void)
 Function pointer to ast_ari_validate_bridge_destroyed().
 
ari_validator ast_ari_validate_bridge_fn (void)
 Function pointer to ast_ari_validate_bridge().
 
int ast_ari_validate_bridge_merged (struct ast_json *json)
 Validator for BridgeMerged.
 
ari_validator ast_ari_validate_bridge_merged_fn (void)
 Function pointer to ast_ari_validate_bridge_merged().
 
int ast_ari_validate_bridge_video_source_changed (struct ast_json *json)
 Validator for BridgeVideoSourceChanged.
 
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_build_info (struct ast_json *json)
 Validator for BuildInfo.
 
ari_validator ast_ari_validate_build_info_fn (void)
 Function pointer to ast_ari_validate_build_info().
 
int ast_ari_validate_call_broadcast (struct ast_json *json)
 Validator for CallBroadcast.
 
ari_validator ast_ari_validate_call_broadcast_fn (void)
 Function pointer to ast_ari_validate_call_broadcast().
 
int ast_ari_validate_call_claimed (struct ast_json *json)
 Validator for CallClaimed.
 
ari_validator ast_ari_validate_call_claimed_fn (void)
 Function pointer to ast_ari_validate_call_claimed().
 
int ast_ari_validate_caller_id (struct ast_json *json)
 Validator for CallerID.
 
ari_validator ast_ari_validate_caller_id_fn (void)
 Function pointer to ast_ari_validate_caller_id().
 
int ast_ari_validate_channel (struct ast_json *json)
 Validator for Channel.
 
int ast_ari_validate_channel_caller_id (struct ast_json *json)
 Validator for ChannelCallerId.
 
ari_validator ast_ari_validate_channel_caller_id_fn (void)
 Function pointer to ast_ari_validate_channel_caller_id().
 
int ast_ari_validate_channel_connected_line (struct ast_json *json)
 Validator for ChannelConnectedLine.
 
ari_validator ast_ari_validate_channel_connected_line_fn (void)
 Function pointer to ast_ari_validate_channel_connected_line().
 
int ast_ari_validate_channel_created (struct ast_json *json)
 Validator for ChannelCreated.
 
ari_validator ast_ari_validate_channel_created_fn (void)
 Function pointer to ast_ari_validate_channel_created().
 
int ast_ari_validate_channel_destroyed (struct ast_json *json)
 Validator for ChannelDestroyed.
 
ari_validator ast_ari_validate_channel_destroyed_fn (void)
 Function pointer to ast_ari_validate_channel_destroyed().
 
int ast_ari_validate_channel_dialplan (struct ast_json *json)
 Validator for ChannelDialplan.
 
ari_validator ast_ari_validate_channel_dialplan_fn (void)
 Function pointer to ast_ari_validate_channel_dialplan().
 
int ast_ari_validate_channel_dtmf_received (struct ast_json *json)
 Validator for ChannelDtmfReceived.
 
ari_validator ast_ari_validate_channel_dtmf_received_fn (void)
 Function pointer to ast_ari_validate_channel_dtmf_received().
 
int ast_ari_validate_channel_entered_bridge (struct ast_json *json)
 Validator for ChannelEnteredBridge.
 
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_fn (void)
 Function pointer to ast_ari_validate_channel().
 
int ast_ari_validate_channel_hangup_request (struct ast_json *json)
 Validator for ChannelHangupRequest.
 
ari_validator ast_ari_validate_channel_hangup_request_fn (void)
 Function pointer to ast_ari_validate_channel_hangup_request().
 
int ast_ari_validate_channel_hold (struct ast_json *json)
 Validator for ChannelHold.
 
ari_validator ast_ari_validate_channel_hold_fn (void)
 Function pointer to ast_ari_validate_channel_hold().
 
int ast_ari_validate_channel_left_bridge (struct ast_json *json)
 Validator for ChannelLeftBridge.
 
ari_validator ast_ari_validate_channel_left_bridge_fn (void)
 Function pointer to ast_ari_validate_channel_left_bridge().
 
int ast_ari_validate_channel_state_change (struct ast_json *json)
 Validator for ChannelStateChange.
 
ari_validator ast_ari_validate_channel_state_change_fn (void)
 Function pointer to ast_ari_validate_channel_state_change().
 
int ast_ari_validate_channel_talking_finished (struct ast_json *json)
 Validator for ChannelTalkingFinished.
 
ari_validator ast_ari_validate_channel_talking_finished_fn (void)
 Function pointer to ast_ari_validate_channel_talking_finished().
 
int ast_ari_validate_channel_talking_started (struct ast_json *json)
 Validator for ChannelTalkingStarted.
 
ari_validator ast_ari_validate_channel_talking_started_fn (void)
 Function pointer to ast_ari_validate_channel_talking_started().
 
int ast_ari_validate_channel_tone_detected (struct ast_json *json)
 Validator for ChannelToneDetected.
 
ari_validator ast_ari_validate_channel_tone_detected_fn (void)
 Function pointer to ast_ari_validate_channel_tone_detected().
 
int ast_ari_validate_channel_transfer (struct ast_json *json)
 Validator for ChannelTransfer.
 
ari_validator ast_ari_validate_channel_transfer_fn (void)
 Function pointer to ast_ari_validate_channel_transfer().
 
int ast_ari_validate_channel_unhold (struct ast_json *json)
 Validator for ChannelUnhold.
 
ari_validator ast_ari_validate_channel_unhold_fn (void)
 Function pointer to ast_ari_validate_channel_unhold().
 
int ast_ari_validate_channel_userevent (struct ast_json *json)
 Validator for ChannelUserevent.
 
ari_validator ast_ari_validate_channel_userevent_fn (void)
 Function pointer to ast_ari_validate_channel_userevent().
 
int ast_ari_validate_channel_varset (struct ast_json *json)
 Validator for ChannelVarset.
 
ari_validator ast_ari_validate_channel_varset_fn (void)
 Function pointer to ast_ari_validate_channel_varset().
 
int ast_ari_validate_config_info (struct ast_json *json)
 Validator for ConfigInfo.
 
ari_validator ast_ari_validate_config_info_fn (void)
 Function pointer to ast_ari_validate_config_info().
 
int ast_ari_validate_config_tuple (struct ast_json *json)
 Validator for ConfigTuple.
 
ari_validator ast_ari_validate_config_tuple_fn (void)
 Function pointer to ast_ari_validate_config_tuple().
 
int ast_ari_validate_contact_info (struct ast_json *json)
 Validator for ContactInfo.
 
ari_validator ast_ari_validate_contact_info_fn (void)
 Function pointer to ast_ari_validate_contact_info().
 
int ast_ari_validate_contact_status_change (struct ast_json *json)
 Validator for ContactStatusChange.
 
ari_validator ast_ari_validate_contact_status_change_fn (void)
 Function pointer to ast_ari_validate_contact_status_change().
 
int ast_ari_validate_device_state (struct ast_json *json)
 Validator for DeviceState.
 
int ast_ari_validate_device_state_changed (struct ast_json *json)
 Validator for DeviceStateChanged.
 
ari_validator ast_ari_validate_device_state_changed_fn (void)
 Function pointer to ast_ari_validate_device_state_changed().
 
ari_validator ast_ari_validate_device_state_fn (void)
 Function pointer to ast_ari_validate_device_state().
 
int ast_ari_validate_dial (struct ast_json *json)
 Validator for Dial.
 
ari_validator ast_ari_validate_dial_fn (void)
 Function pointer to ast_ari_validate_dial().
 
int ast_ari_validate_dialed (struct ast_json *json)
 Validator for Dialed.
 
ari_validator ast_ari_validate_dialed_fn (void)
 Function pointer to ast_ari_validate_dialed().
 
int ast_ari_validate_dialplan_cep (struct ast_json *json)
 Validator for DialplanCEP.
 
ari_validator ast_ari_validate_dialplan_cep_fn (void)
 Function pointer to ast_ari_validate_dialplan_cep().
 
int ast_ari_validate_endpoint (struct ast_json *json)
 Validator for Endpoint.
 
ari_validator ast_ari_validate_endpoint_fn (void)
 Function pointer to ast_ari_validate_endpoint().
 
int ast_ari_validate_endpoint_state_change (struct ast_json *json)
 Validator for EndpointStateChange.
 
ari_validator ast_ari_validate_endpoint_state_change_fn (void)
 Function pointer to ast_ari_validate_endpoint_state_change().
 
int ast_ari_validate_event (struct ast_json *json)
 Validator for Event.
 
ari_validator ast_ari_validate_event_fn (void)
 Function pointer to ast_ari_validate_event().
 
int ast_ari_validate_format_lang_pair (struct ast_json *json)
 Validator for FormatLangPair.
 
ari_validator ast_ari_validate_format_lang_pair_fn (void)
 Function pointer to ast_ari_validate_format_lang_pair().
 
int ast_ari_validate_live_recording (struct ast_json *json)
 Validator for LiveRecording.
 
ari_validator ast_ari_validate_live_recording_fn (void)
 Function pointer to ast_ari_validate_live_recording().
 
int ast_ari_validate_log_channel (struct ast_json *json)
 Validator for LogChannel.
 
ari_validator ast_ari_validate_log_channel_fn (void)
 Function pointer to ast_ari_validate_log_channel().
 
int ast_ari_validate_mailbox (struct ast_json *json)
 Validator for Mailbox.
 
ari_validator ast_ari_validate_mailbox_fn (void)
 Function pointer to ast_ari_validate_mailbox().
 
int ast_ari_validate_message (struct ast_json *json)
 Validator for Message.
 
ari_validator ast_ari_validate_message_fn (void)
 Function pointer to ast_ari_validate_message().
 
int ast_ari_validate_missing_params (struct ast_json *json)
 Validator for MissingParams.
 
ari_validator ast_ari_validate_missing_params_fn (void)
 Function pointer to ast_ari_validate_missing_params().
 
int ast_ari_validate_module (struct ast_json *json)
 Validator for Module.
 
ari_validator ast_ari_validate_module_fn (void)
 Function pointer to ast_ari_validate_module().
 
int ast_ari_validate_peer (struct ast_json *json)
 Validator for Peer.
 
ari_validator ast_ari_validate_peer_fn (void)
 Function pointer to ast_ari_validate_peer().
 
int ast_ari_validate_peer_status_change (struct ast_json *json)
 Validator for PeerStatusChange.
 
ari_validator ast_ari_validate_peer_status_change_fn (void)
 Function pointer to ast_ari_validate_peer_status_change().
 
int ast_ari_validate_playback (struct ast_json *json)
 Validator for Playback.
 
int ast_ari_validate_playback_continuing (struct ast_json *json)
 Validator for PlaybackContinuing.
 
ari_validator ast_ari_validate_playback_continuing_fn (void)
 Function pointer to ast_ari_validate_playback_continuing().
 
int ast_ari_validate_playback_finished (struct ast_json *json)
 Validator for PlaybackFinished.
 
ari_validator ast_ari_validate_playback_finished_fn (void)
 Function pointer to ast_ari_validate_playback_finished().
 
ari_validator ast_ari_validate_playback_fn (void)
 Function pointer to ast_ari_validate_playback().
 
int ast_ari_validate_playback_started (struct ast_json *json)
 Validator for PlaybackStarted.
 
ari_validator ast_ari_validate_playback_started_fn (void)
 Function pointer to ast_ari_validate_playback_started().
 
int ast_ari_validate_recording_failed (struct ast_json *json)
 Validator for RecordingFailed.
 
ari_validator ast_ari_validate_recording_failed_fn (void)
 Function pointer to ast_ari_validate_recording_failed().
 
int ast_ari_validate_recording_finished (struct ast_json *json)
 Validator for RecordingFinished.
 
ari_validator ast_ari_validate_recording_finished_fn (void)
 Function pointer to ast_ari_validate_recording_finished().
 
int ast_ari_validate_recording_started (struct ast_json *json)
 Validator for RecordingStarted.
 
ari_validator ast_ari_validate_recording_started_fn (void)
 Function pointer to ast_ari_validate_recording_started().
 
int ast_ari_validate_refer_to (struct ast_json *json)
 Validator for ReferTo.
 
ari_validator ast_ari_validate_refer_to_fn (void)
 Function pointer to ast_ari_validate_refer_to().
 
int ast_ari_validate_referred_by (struct ast_json *json)
 Validator for ReferredBy.
 
ari_validator ast_ari_validate_referred_by_fn (void)
 Function pointer to ast_ari_validate_referred_by().
 
int ast_ari_validate_required_destination (struct ast_json *json)
 Validator for RequiredDestination.
 
ari_validator ast_ari_validate_required_destination_fn (void)
 Function pointer to ast_ari_validate_required_destination().
 
int ast_ari_validate_restheader (struct ast_json *json)
 Validator for RESTHeader.
 
ari_validator ast_ari_validate_restheader_fn (void)
 Function pointer to ast_ari_validate_restheader().
 
int ast_ari_validate_restquery_string_parameter (struct ast_json *json)
 Validator for RESTQueryStringParameter.
 
ari_validator ast_ari_validate_restquery_string_parameter_fn (void)
 Function pointer to ast_ari_validate_restquery_string_parameter().
 
int ast_ari_validate_restrequest (struct ast_json *json)
 Validator for RESTRequest.
 
ari_validator ast_ari_validate_restrequest_fn (void)
 Function pointer to ast_ari_validate_restrequest().
 
int ast_ari_validate_restresponse (struct ast_json *json)
 Validator for RESTResponse.
 
ari_validator ast_ari_validate_restresponse_fn (void)
 Function pointer to ast_ari_validate_restresponse().
 
int ast_ari_validate_rtpstat (struct ast_json *json)
 Validator for RTPstat.
 
ari_validator ast_ari_validate_rtpstat_fn (void)
 Function pointer to ast_ari_validate_rtpstat().
 
int ast_ari_validate_set_id (struct ast_json *json)
 Validator for SetId.
 
ari_validator ast_ari_validate_set_id_fn (void)
 Function pointer to ast_ari_validate_set_id().
 
int ast_ari_validate_sound (struct ast_json *json)
 Validator for Sound.
 
ari_validator ast_ari_validate_sound_fn (void)
 Function pointer to ast_ari_validate_sound().
 
int ast_ari_validate_stasis_end (struct ast_json *json)
 Validator for StasisEnd.
 
ari_validator ast_ari_validate_stasis_end_fn (void)
 Function pointer to ast_ari_validate_stasis_end().
 
int ast_ari_validate_stasis_start (struct ast_json *json)
 Validator for StasisStart.
 
ari_validator ast_ari_validate_stasis_start_fn (void)
 Function pointer to ast_ari_validate_stasis_start().
 
int ast_ari_validate_status_info (struct ast_json *json)
 Validator for StatusInfo.
 
ari_validator ast_ari_validate_status_info_fn (void)
 Function pointer to ast_ari_validate_status_info().
 
int ast_ari_validate_stored_recording (struct ast_json *json)
 Validator for StoredRecording.
 
ari_validator ast_ari_validate_stored_recording_fn (void)
 Function pointer to ast_ari_validate_stored_recording().
 
int ast_ari_validate_system_info (struct ast_json *json)
 Validator for SystemInfo.
 
ari_validator ast_ari_validate_system_info_fn (void)
 Function pointer to ast_ari_validate_system_info().
 
int ast_ari_validate_text_message (struct ast_json *json)
 Validator for TextMessage.
 
ari_validator ast_ari_validate_text_message_fn (void)
 Function pointer to ast_ari_validate_text_message().
 
int ast_ari_validate_text_message_received (struct ast_json *json)
 Validator for TextMessageReceived.
 
ari_validator ast_ari_validate_text_message_received_fn (void)
 Function pointer to ast_ari_validate_text_message_received().
 
int ast_ari_validate_variable (struct ast_json *json)
 Validator for Variable.
 
ari_validator ast_ari_validate_variable_fn (void)
 Function pointer to ast_ari_validate_variable().
 
int ast_ari_validate_boolean (struct ast_json *json)
 Validator for native Swagger boolean.
 
int ast_ari_validate_byte (struct ast_json *json)
 Validator for native Swagger byte.
 
int ast_ari_validate_date (struct ast_json *json)
 Validator for native Swagger date.
 
int ast_ari_validate_double (struct ast_json *json)
 Validator for native Swagger double.
 
int ast_ari_validate_float (struct ast_json *json)
 Validator for native Swagger float.
 
int ast_ari_validate_int (struct ast_json *json)
 Validator for native Swagger int.
 
int ast_ari_validate_list (struct ast_json *json, int(*fn)(struct ast_json *))
 Validator for a Swagger List[]/JSON array.
 
int ast_ari_validate_long (struct ast_json *json)
 Validator for native Swagger long.
 
int ast_ari_validate_object (struct ast_json *json)
 Validator for native Swagger object.
 
int ast_ari_validate_string (struct ast_json *json)
 Validator for native Swagger string.
 
int ast_ari_validate_void (struct ast_json *json)
 Validator for native Swagger void.
 

Detailed Description

Generated file - Build validators for ARI model objects.

In addition to the normal validation functions one would normally expect, each validator has a ast_ari_validate_{id}_fn() companion function that returns the validator's function pointer.

The reason for this seamingly useless indirection is the way function pointers used to interfere with module loading. Previously, Asterisk attempted to dlopen() each module using RTLD_LAZY in order to read some metadata from the module. Using functions to get the function pointer allowed us to be lazy.

Definition in file ari_model_validators.h.

Typedef Documentation

◆ ari_validator

typedef int(* ari_validator) (struct ast_json *json)

Function type for validator functions. Allows for.

Definition at line 152 of file ari_model_validators.h.

Function Documentation

◆ ast_ari_validate_additional_param()

int ast_ari_validate_additional_param ( struct ast_json json)

Validator for AdditionalParam.

Protocol specific additional parameter

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 2431 of file ari_model_validators.c.

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}
int ast_ari_validate_string(struct ast_json *json)
Validator for native Swagger string.
#define ast_log
Definition astobj2.c:42
#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_object_iter_key(struct ast_json_iter *iter)
Get the key from an iterator.
Definition json.c:451
Iterator for JSON object key/values.

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_additional_param_fn(), and ast_ari_validate_required_destination().

◆ ast_ari_validate_additional_param_fn()

ari_validator ast_ari_validate_additional_param_fn ( void  )

Function pointer to ast_ari_validate_additional_param().

Definition at line 2480 of file ari_model_validators.c.

2481{
2483}
int ast_ari_validate_additional_param(struct ast_json *json)
Validator for AdditionalParam.

References ast_ari_validate_additional_param().

◆ ast_ari_validate_application()

int ast_ari_validate_application ( struct ast_json json)

Validator for Application.

Details of a Stasis application

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 8626 of file ari_model_validators.c.

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}
int ast_ari_validate_object(struct ast_json *json)
Validator for native Swagger object.
int ast_ari_validate_list(struct ast_json *json, int(*fn)(struct ast_json *))
Validator for a Swagger List[]/JSON array.

References ast_ari_validate_list(), ast_ari_validate_object(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_applications_filter_cb(), ast_ari_applications_get_cb(), ast_ari_applications_subscribe_cb(), ast_ari_applications_unsubscribe_cb(), and ast_ari_validate_application_fn().

◆ ast_ari_validate_application_fn()

ari_validator ast_ari_validate_application_fn ( void  )

Function pointer to ast_ari_validate_application().

Definition at line 8761 of file ari_model_validators.c.

8762{
8764}
int ast_ari_validate_application(struct ast_json *json)
Validator for Application.

References ast_ari_validate_application().

Referenced by ast_ari_applications_list_cb().

◆ ast_ari_validate_application_move_failed()

int ast_ari_validate_application_move_failed ( struct ast_json json)

Validator for ApplicationMoveFailed.

Notification that trying to move a channel to another Stasis application failed.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 2485 of file ari_model_validators.c.

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}
int ast_ari_validate_channel(struct ast_json *json)
Validator for Channel.
int ast_ari_validate_date(struct ast_json *json)
Validator for native Swagger date.

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_list(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_application_move_failed_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_application_move_failed_fn()

ari_validator ast_ari_validate_application_move_failed_fn ( void  )

Function pointer to ast_ari_validate_application_move_failed().

Definition at line 2608 of file ari_model_validators.c.

2609{
2611}
int ast_ari_validate_application_move_failed(struct ast_json *json)
Validator for ApplicationMoveFailed.

References ast_ari_validate_application_move_failed().

◆ ast_ari_validate_application_registered()

int ast_ari_validate_application_registered ( struct ast_json json)

Validator for ApplicationRegistered.

Notification that a Stasis app has been registered.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 2613 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_application_registered_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_application_registered_fn()

ari_validator ast_ari_validate_application_registered_fn ( void  )

Function pointer to ast_ari_validate_application_registered().

Definition at line 2687 of file ari_model_validators.c.

2688{
2690}
int ast_ari_validate_application_registered(struct ast_json *json)
Validator for ApplicationRegistered.

References ast_ari_validate_application_registered().

◆ ast_ari_validate_application_replaced()

int ast_ari_validate_application_replaced ( struct ast_json json)

Validator for ApplicationReplaced.

Notification that another WebSocket has taken over for an application.

An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 2692 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_application_replaced_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_application_replaced_fn()

ari_validator ast_ari_validate_application_replaced_fn ( void  )

Function pointer to ast_ari_validate_application_replaced().

Definition at line 2766 of file ari_model_validators.c.

2767{
2769}
int ast_ari_validate_application_replaced(struct ast_json *json)
Validator for ApplicationReplaced.

References ast_ari_validate_application_replaced().

◆ ast_ari_validate_application_unregistered()

int ast_ari_validate_application_unregistered ( struct ast_json json)

Validator for ApplicationUnregistered.

Notification that a Stasis app has been unregistered.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 2771 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_application_unregistered_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_application_unregistered_fn()

ari_validator ast_ari_validate_application_unregistered_fn ( void  )

Function pointer to ast_ari_validate_application_unregistered().

Definition at line 2845 of file ari_model_validators.c.

2846{
2848}
int ast_ari_validate_application_unregistered(struct ast_json *json)
Validator for ApplicationUnregistered.

References ast_ari_validate_application_unregistered().

◆ ast_ari_validate_asterisk_info()

int ast_ari_validate_asterisk_info ( struct ast_json json)

Validator for AsteriskInfo.

Asterisk system information

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 36 of file ari_model_validators.c.

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}
int ast_ari_validate_status_info(struct ast_json *json)
Validator for StatusInfo.
int ast_ari_validate_system_info(struct ast_json *json)
Validator for SystemInfo.
int ast_ari_validate_build_info(struct ast_json *json)
Validator for BuildInfo.
int ast_ari_validate_config_info(struct ast_json *json)
Validator for ConfigInfo.

References ast_ari_validate_build_info(), ast_ari_validate_config_info(), ast_ari_validate_status_info(), ast_ari_validate_system_info(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_asterisk_get_info_cb(), and ast_ari_validate_asterisk_info_fn().

◆ ast_ari_validate_asterisk_info_fn()

ari_validator ast_ari_validate_asterisk_info_fn ( void  )

Function pointer to ast_ari_validate_asterisk_info().

Definition at line 89 of file ari_model_validators.c.

90{
92}
int ast_ari_validate_asterisk_info(struct ast_json *json)
Validator for AsteriskInfo.

References ast_ari_validate_asterisk_info().

◆ ast_ari_validate_asterisk_ping()

int ast_ari_validate_asterisk_ping ( struct ast_json json)

Validator for AsteriskPing.

Asterisk ping information

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 94 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_asterisk_ping_cb(), and ast_ari_validate_asterisk_ping_fn().

◆ ast_ari_validate_asterisk_ping_fn()

ari_validator ast_ari_validate_asterisk_ping_fn ( void  )

Function pointer to ast_ari_validate_asterisk_ping().

Definition at line 159 of file ari_model_validators.c.

160{
162}
int ast_ari_validate_asterisk_ping(struct ast_json *json)
Validator for AsteriskPing.

References ast_ari_validate_asterisk_ping().

◆ ast_ari_validate_boolean()

int ast_ari_validate_boolean ( struct ast_json json)

Validator for native Swagger boolean.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 107 of file res_ari_model.c.

108{
109 enum ast_json_type actual = ast_json_typeof(json);
110 switch (actual) {
111 case AST_JSON_TRUE:
112 case AST_JSON_FALSE:
113 return 1;
114 default:
115 ast_log(LOG_ERROR, "Expected type boolean, was %s\n",
116 ast_json_typename(actual));
117 return 0;
118 }
119}
enum ast_json_type ast_json_typeof(const struct ast_json *value)
Get the type of value.
Definition json.c:78
const char * ast_json_typename(enum ast_json_type type)
Get the string name for the given type.
Definition json.c:95
ast_json_type
Valid types of a JSON element.
Definition json.h:163
@ AST_JSON_FALSE
Definition json.h:170
@ AST_JSON_TRUE
Definition json.h:169

References AST_JSON_FALSE, AST_JSON_TRUE, ast_json_typename(), ast_json_typeof(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_bridge_attended_transfer(), ast_ari_validate_bridge_blind_transfer(), ast_ari_validate_channel_hangup_request(), and AST_TEST_DEFINE().

◆ ast_ari_validate_bridge()

int ast_ari_validate_bridge ( struct ast_json json)

Validator for Bridge.

The merging of media from one or more channels.

Everyone on the bridge receives the same audio.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 1740 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_ari_validate_list(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_bridges_create_cb(), ast_ari_bridges_create_with_id_cb(), ast_ari_bridges_get_cb(), ast_ari_validate_bridge_attended_transfer(), ast_ari_validate_bridge_blind_transfer(), ast_ari_validate_bridge_created(), ast_ari_validate_bridge_destroyed(), ast_ari_validate_bridge_fn(), ast_ari_validate_bridge_merged(), ast_ari_validate_bridge_video_source_changed(), ast_ari_validate_channel_entered_bridge(), ast_ari_validate_channel_left_bridge(), ast_ari_validate_channel_userevent(), ast_ari_validate_refer_to(), and ast_ari_validate_referred_by().

◆ ast_ari_validate_bridge_attended_transfer()

int ast_ari_validate_bridge_attended_transfer ( struct ast_json json)

Validator for BridgeAttendedTransfer.

Notification that an attended transfer has occurred.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 2850 of file ari_model_validators.c.

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}
int ast_ari_validate_bridge(struct ast_json *json)
Validator for Bridge.
int ast_ari_validate_boolean(struct ast_json *json)
Validator for native Swagger boolean.

References ast_ari_validate_boolean(), ast_ari_validate_bridge(), ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_bridge_attended_transfer_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_bridge_attended_transfer_fn()

ari_validator ast_ari_validate_bridge_attended_transfer_fn ( void  )

Function pointer to ast_ari_validate_bridge_attended_transfer().

Definition at line 3103 of file ari_model_validators.c.

3104{
3106}
int ast_ari_validate_bridge_attended_transfer(struct ast_json *json)
Validator for BridgeAttendedTransfer.

References ast_ari_validate_bridge_attended_transfer().

◆ ast_ari_validate_bridge_blind_transfer()

int ast_ari_validate_bridge_blind_transfer ( struct ast_json json)

Validator for BridgeBlindTransfer.

Notification that a blind transfer has occurred.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 3108 of file ari_model_validators.c.

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}

References ast_ari_validate_boolean(), ast_ari_validate_bridge(), ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_bridge_blind_transfer_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_bridge_blind_transfer_fn()

ari_validator ast_ari_validate_bridge_blind_transfer_fn ( void  )

Function pointer to ast_ari_validate_bridge_blind_transfer().

Definition at line 3289 of file ari_model_validators.c.

3290{
3292}
int ast_ari_validate_bridge_blind_transfer(struct ast_json *json)
Validator for BridgeBlindTransfer.

References ast_ari_validate_bridge_blind_transfer().

◆ ast_ari_validate_bridge_created()

int ast_ari_validate_bridge_created ( struct ast_json json)

Validator for BridgeCreated.

Notification that a bridge has been created.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 3294 of file ari_model_validators.c.

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}

References ast_ari_validate_bridge(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_bridge_created_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_bridge_created_fn()

ari_validator ast_ari_validate_bridge_created_fn ( void  )

Function pointer to ast_ari_validate_bridge_created().

Definition at line 3384 of file ari_model_validators.c.

3385{
3387}
int ast_ari_validate_bridge_created(struct ast_json *json)
Validator for BridgeCreated.

References ast_ari_validate_bridge_created().

◆ ast_ari_validate_bridge_destroyed()

int ast_ari_validate_bridge_destroyed ( struct ast_json json)

Validator for BridgeDestroyed.

Notification that a bridge has been destroyed.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 3389 of file ari_model_validators.c.

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}

References ast_ari_validate_bridge(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_bridge_destroyed_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_bridge_destroyed_fn()

ari_validator ast_ari_validate_bridge_destroyed_fn ( void  )

Function pointer to ast_ari_validate_bridge_destroyed().

Definition at line 3479 of file ari_model_validators.c.

3480{
3482}
int ast_ari_validate_bridge_destroyed(struct ast_json *json)
Validator for BridgeDestroyed.

References ast_ari_validate_bridge_destroyed().

◆ ast_ari_validate_bridge_fn()

ari_validator ast_ari_validate_bridge_fn ( void  )

Function pointer to ast_ari_validate_bridge().

Definition at line 1904 of file ari_model_validators.c.

1905{
1907}

References ast_ari_validate_bridge().

Referenced by ast_ari_bridges_list_cb().

◆ ast_ari_validate_bridge_merged()

int ast_ari_validate_bridge_merged ( struct ast_json json)

Validator for BridgeMerged.

Notification that one bridge has merged into another.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 3484 of file ari_model_validators.c.

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}

References ast_ari_validate_bridge(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_bridge_merged_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_bridge_merged_fn()

ari_validator ast_ari_validate_bridge_merged_fn ( void  )

Function pointer to ast_ari_validate_bridge_merged().

Definition at line 3590 of file ari_model_validators.c.

3591{
3593}
int ast_ari_validate_bridge_merged(struct ast_json *json)
Validator for BridgeMerged.

References ast_ari_validate_bridge_merged().

◆ ast_ari_validate_bridge_video_source_changed()

int ast_ari_validate_bridge_video_source_changed ( struct ast_json json)

Validator for BridgeVideoSourceChanged.

Notification that the source of video in a bridge has changed.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 3595 of file ari_model_validators.c.

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}

References ast_ari_validate_bridge(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_bridge_video_source_changed_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_bridge_video_source_changed_fn()

ari_validator ast_ari_validate_bridge_video_source_changed_fn ( void  )

Function pointer to ast_ari_validate_bridge_video_source_changed().

Definition at line 3694 of file ari_model_validators.c.

3695{
3697}
int ast_ari_validate_bridge_video_source_changed(struct ast_json *json)
Validator for BridgeVideoSourceChanged.

References ast_ari_validate_bridge_video_source_changed().

◆ ast_ari_validate_build_info()

int ast_ari_validate_build_info ( struct ast_json json)

Validator for BuildInfo.

Info about how Asterisk was built

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 164 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_asterisk_info(), and ast_ari_validate_build_info_fn().

◆ ast_ari_validate_build_info_fn()

ari_validator ast_ari_validate_build_info_fn ( void  )

Function pointer to ast_ari_validate_build_info().

Definition at line 277 of file ari_model_validators.c.

278{
280}

References ast_ari_validate_build_info().

◆ ast_ari_validate_byte()

int ast_ari_validate_byte ( struct ast_json json)

Validator for native Swagger byte.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 101 of file res_ari_model.c.

102{
103 /* Java bytes are signed, which accounts for great fun for all */
104 return check_range(-128, 255, json);
105}
static int check_range(intmax_t minval, intmax_t maxval, struct ast_json *json)

References check_range().

Referenced by AST_TEST_DEFINE().

◆ ast_ari_validate_call_broadcast()

int ast_ari_validate_call_broadcast ( struct ast_json json)

Validator for CallBroadcast.

Notification that a channel is being broadcast to ARI applications for claiming.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 3699 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_call_broadcast_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_call_broadcast_fn()

ari_validator ast_ari_validate_call_broadcast_fn ( void  )

Function pointer to ast_ari_validate_call_broadcast().

Definition at line 3807 of file ari_model_validators.c.

3808{
3810}
int ast_ari_validate_call_broadcast(struct ast_json *json)
Validator for CallBroadcast.

References ast_ari_validate_call_broadcast().

◆ ast_ari_validate_call_claimed()

int ast_ari_validate_call_claimed ( struct ast_json json)

Validator for CallClaimed.

Notification that a broadcast channel has been successfully claimed by an ARI application.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 3812 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_call_claimed_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_call_claimed_fn()

ari_validator ast_ari_validate_call_claimed_fn ( void  )

Function pointer to ast_ari_validate_call_claimed().

Definition at line 3918 of file ari_model_validators.c.

3919{
3921}
int ast_ari_validate_call_claimed(struct ast_json *json)
Validator for CallClaimed.

References ast_ari_validate_call_claimed().

◆ ast_ari_validate_caller_id()

int ast_ari_validate_caller_id ( struct ast_json json)

Validator for CallerID.

Caller identification

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 980 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_caller_id_fn(), and ast_ari_validate_channel().

◆ ast_ari_validate_caller_id_fn()

ari_validator ast_ari_validate_caller_id_fn ( void  )

Function pointer to ast_ari_validate_caller_id().

Definition at line 1029 of file ari_model_validators.c.

1030{
1032}
int ast_ari_validate_caller_id(struct ast_json *json)
Validator for CallerID.

References ast_ari_validate_caller_id().

◆ ast_ari_validate_channel()

int ast_ari_validate_channel ( struct ast_json json)

Validator for Channel.

A specific communication connection between Asterisk and an Endpoint.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 1034 of file ari_model_validators.c.

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}
int ast_ari_validate_dialplan_cep(struct ast_json *json)
Validator for DialplanCEP.

References ast_ari_validate_caller_id(), ast_ari_validate_date(), ast_ari_validate_dialplan_cep(), ast_ari_validate_object(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_channels_create_cb(), ast_ari_channels_external_media_cb(), ast_ari_channels_get_cb(), ast_ari_channels_originate_cb(), ast_ari_channels_originate_with_id_cb(), ast_ari_channels_snoop_channel_cb(), ast_ari_channels_snoop_channel_with_id_cb(), ast_ari_validate_application_move_failed(), ast_ari_validate_bridge_attended_transfer(), ast_ari_validate_bridge_blind_transfer(), ast_ari_validate_call_broadcast(), ast_ari_validate_call_claimed(), ast_ari_validate_channel_caller_id(), ast_ari_validate_channel_connected_line(), ast_ari_validate_channel_created(), ast_ari_validate_channel_destroyed(), ast_ari_validate_channel_dialplan(), ast_ari_validate_channel_dtmf_received(), ast_ari_validate_channel_entered_bridge(), ast_ari_validate_channel_fn(), ast_ari_validate_channel_hangup_request(), ast_ari_validate_channel_hold(), ast_ari_validate_channel_left_bridge(), ast_ari_validate_channel_state_change(), ast_ari_validate_channel_talking_finished(), ast_ari_validate_channel_talking_started(), ast_ari_validate_channel_tone_detected(), ast_ari_validate_channel_unhold(), ast_ari_validate_channel_userevent(), ast_ari_validate_channel_varset(), ast_ari_validate_dial(), ast_ari_validate_refer_to(), ast_ari_validate_referred_by(), ast_ari_validate_stasis_end(), and ast_ari_validate_stasis_start().

◆ ast_ari_validate_channel_caller_id()

int ast_ari_validate_channel_caller_id ( struct ast_json json)

Validator for ChannelCallerId.

Channel changed Caller ID.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 3923 of file ari_model_validators.c.

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}
int ast_ari_validate_int(struct ast_json *json)
Validator for native Swagger int.

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_int(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_caller_id_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_caller_id_fn()

ari_validator ast_ari_validate_channel_caller_id_fn ( void  )

Function pointer to ast_ari_validate_channel_caller_id().

Definition at line 4045 of file ari_model_validators.c.

4046{
4048}
int ast_ari_validate_channel_caller_id(struct ast_json *json)
Validator for ChannelCallerId.

References ast_ari_validate_channel_caller_id().

◆ ast_ari_validate_channel_connected_line()

int ast_ari_validate_channel_connected_line ( struct ast_json json)

Validator for ChannelConnectedLine.

Channel changed Connected Line.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 4050 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_connected_line_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_connected_line_fn()

ari_validator ast_ari_validate_channel_connected_line_fn ( void  )

Function pointer to ast_ari_validate_channel_connected_line().

Definition at line 4140 of file ari_model_validators.c.

4141{
4143}
int ast_ari_validate_channel_connected_line(struct ast_json *json)
Validator for ChannelConnectedLine.

References ast_ari_validate_channel_connected_line().

◆ ast_ari_validate_channel_created()

int ast_ari_validate_channel_created ( struct ast_json json)

Validator for ChannelCreated.

Notification that a channel has been created.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 4145 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_created_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_created_fn()

ari_validator ast_ari_validate_channel_created_fn ( void  )

Function pointer to ast_ari_validate_channel_created().

Definition at line 4235 of file ari_model_validators.c.

4236{
4238}
int ast_ari_validate_channel_created(struct ast_json *json)
Validator for ChannelCreated.

References ast_ari_validate_channel_created().

◆ ast_ari_validate_channel_destroyed()

int ast_ari_validate_channel_destroyed ( struct ast_json json)

Validator for ChannelDestroyed.

Notification that a channel has been destroyed.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 4240 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_int(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_destroyed_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_destroyed_fn()

ari_validator ast_ari_validate_channel_destroyed_fn ( void  )

Function pointer to ast_ari_validate_channel_destroyed().

Definition at line 4371 of file ari_model_validators.c.

4372{
4374}
int ast_ari_validate_channel_destroyed(struct ast_json *json)
Validator for ChannelDestroyed.

References ast_ari_validate_channel_destroyed().

◆ ast_ari_validate_channel_dialplan()

int ast_ari_validate_channel_dialplan ( struct ast_json json)

Validator for ChannelDialplan.

Channel changed location in the dialplan.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 4376 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_dialplan_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_dialplan_fn()

ari_validator ast_ari_validate_channel_dialplan_fn ( void  )

Function pointer to ast_ari_validate_channel_dialplan().

Definition at line 4498 of file ari_model_validators.c.

4499{
4501}
int ast_ari_validate_channel_dialplan(struct ast_json *json)
Validator for ChannelDialplan.

References ast_ari_validate_channel_dialplan().

◆ ast_ari_validate_channel_dtmf_received()

int ast_ari_validate_channel_dtmf_received ( struct ast_json json)

Validator for ChannelDtmfReceived.

DTMF received on a channel.

This event is sent when the DTMF ends. There is no notification about the start of DTMF

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 4503 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_int(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_dtmf_received_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_dtmf_received_fn()

ari_validator ast_ari_validate_channel_dtmf_received_fn ( void  )

Function pointer to ast_ari_validate_channel_dtmf_received().

Definition at line 4625 of file ari_model_validators.c.

4626{
4628}
int ast_ari_validate_channel_dtmf_received(struct ast_json *json)
Validator for ChannelDtmfReceived.

References ast_ari_validate_channel_dtmf_received().

◆ ast_ari_validate_channel_entered_bridge()

int ast_ari_validate_channel_entered_bridge ( struct ast_json json)

Validator for ChannelEnteredBridge.

Notification that a channel has entered a bridge.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 4630 of file ari_model_validators.c.

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}

References ast_ari_validate_bridge(), ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_entered_bridge_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_entered_bridge_fn()

ari_validator ast_ari_validate_channel_entered_bridge_fn ( void  )

Function pointer to ast_ari_validate_channel_entered_bridge().

Definition at line 4729 of file ari_model_validators.c.

4730{
4732}
int ast_ari_validate_channel_entered_bridge(struct ast_json *json)
Validator for ChannelEnteredBridge.

References ast_ari_validate_channel_entered_bridge().

◆ ast_ari_validate_channel_fn()

ari_validator ast_ari_validate_channel_fn ( void  )

Function pointer to ast_ari_validate_channel().

Definition at line 1238 of file ari_model_validators.c.

1239{
1241}

References ast_ari_validate_channel().

Referenced by ast_ari_channels_list_cb().

◆ ast_ari_validate_channel_hangup_request()

int ast_ari_validate_channel_hangup_request ( struct ast_json json)

Validator for ChannelHangupRequest.

A hangup was requested on the channel.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 4734 of file ari_model_validators.c.

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}

References ast_ari_validate_boolean(), ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_int(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_hangup_request_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_hangup_request_fn()

ari_validator ast_ari_validate_channel_hangup_request_fn ( void  )

Function pointer to ast_ari_validate_channel_hangup_request().

Definition at line 4851 of file ari_model_validators.c.

4852{
4854}
int ast_ari_validate_channel_hangup_request(struct ast_json *json)
Validator for ChannelHangupRequest.

References ast_ari_validate_channel_hangup_request().

◆ ast_ari_validate_channel_hold()

int ast_ari_validate_channel_hold ( struct ast_json json)

Validator for ChannelHold.

A channel initiated a media hold.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 4856 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_hold_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_hold_fn()

ari_validator ast_ari_validate_channel_hold_fn ( void  )

Function pointer to ast_ari_validate_channel_hold().

Definition at line 4955 of file ari_model_validators.c.

4956{
4958}
int ast_ari_validate_channel_hold(struct ast_json *json)
Validator for ChannelHold.

References ast_ari_validate_channel_hold().

◆ ast_ari_validate_channel_left_bridge()

int ast_ari_validate_channel_left_bridge ( struct ast_json json)

Validator for ChannelLeftBridge.

Notification that a channel has left a bridge.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 4960 of file ari_model_validators.c.

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}

References ast_ari_validate_bridge(), ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_left_bridge_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_left_bridge_fn()

ari_validator ast_ari_validate_channel_left_bridge_fn ( void  )

Function pointer to ast_ari_validate_channel_left_bridge().

Definition at line 5066 of file ari_model_validators.c.

5067{
5069}
int ast_ari_validate_channel_left_bridge(struct ast_json *json)
Validator for ChannelLeftBridge.

References ast_ari_validate_channel_left_bridge().

◆ ast_ari_validate_channel_state_change()

int ast_ari_validate_channel_state_change ( struct ast_json json)

Validator for ChannelStateChange.

Notification of a channel's state change.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 5071 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_state_change_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_state_change_fn()

ari_validator ast_ari_validate_channel_state_change_fn ( void  )

Function pointer to ast_ari_validate_channel_state_change().

Definition at line 5161 of file ari_model_validators.c.

5162{
5164}
int ast_ari_validate_channel_state_change(struct ast_json *json)
Validator for ChannelStateChange.

References ast_ari_validate_channel_state_change().

◆ ast_ari_validate_channel_talking_finished()

int ast_ari_validate_channel_talking_finished ( struct ast_json json)

Validator for ChannelTalkingFinished.

Talking is no longer detected on the channel.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 5166 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_int(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_talking_finished_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_talking_finished_fn()

ari_validator ast_ari_validate_channel_talking_finished_fn ( void  )

Function pointer to ast_ari_validate_channel_talking_finished().

Definition at line 5272 of file ari_model_validators.c.

5273{
5275}
int ast_ari_validate_channel_talking_finished(struct ast_json *json)
Validator for ChannelTalkingFinished.

References ast_ari_validate_channel_talking_finished().

◆ ast_ari_validate_channel_talking_started()

int ast_ari_validate_channel_talking_started ( struct ast_json json)

Validator for ChannelTalkingStarted.

Talking was detected on the channel.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 5277 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_talking_started_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_talking_started_fn()

ari_validator ast_ari_validate_channel_talking_started_fn ( void  )

Function pointer to ast_ari_validate_channel_talking_started().

Definition at line 5367 of file ari_model_validators.c.

5368{
5370}
int ast_ari_validate_channel_talking_started(struct ast_json *json)
Validator for ChannelTalkingStarted.

References ast_ari_validate_channel_talking_started().

◆ ast_ari_validate_channel_tone_detected()

int ast_ari_validate_channel_tone_detected ( struct ast_json json)

Validator for ChannelToneDetected.

Tone was detected on the channel.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 5372 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_tone_detected_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_tone_detected_fn()

ari_validator ast_ari_validate_channel_tone_detected_fn ( void  )

Function pointer to ast_ari_validate_channel_tone_detected().

Definition at line 5462 of file ari_model_validators.c.

5463{
5465}
int ast_ari_validate_channel_tone_detected(struct ast_json *json)
Validator for ChannelToneDetected.

References ast_ari_validate_channel_tone_detected().

◆ ast_ari_validate_channel_transfer()

int ast_ari_validate_channel_transfer ( struct ast_json json)

Validator for ChannelTransfer.

transfer on a channel.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 5467 of file ari_model_validators.c.

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}
int ast_ari_validate_refer_to(struct ast_json *json)
Validator for ReferTo.
int ast_ari_validate_referred_by(struct ast_json *json)
Validator for ReferredBy.

References ast_ari_validate_date(), ast_ari_validate_refer_to(), ast_ari_validate_referred_by(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_transfer_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_transfer_fn()

ari_validator ast_ari_validate_channel_transfer_fn ( void  )

Function pointer to ast_ari_validate_channel_transfer().

Definition at line 5582 of file ari_model_validators.c.

5583{
5585}
int ast_ari_validate_channel_transfer(struct ast_json *json)
Validator for ChannelTransfer.

References ast_ari_validate_channel_transfer().

◆ ast_ari_validate_channel_unhold()

int ast_ari_validate_channel_unhold ( struct ast_json json)

Validator for ChannelUnhold.

A channel initiated a media unhold.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 5587 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_unhold_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_unhold_fn()

ari_validator ast_ari_validate_channel_unhold_fn ( void  )

Function pointer to ast_ari_validate_channel_unhold().

Definition at line 5677 of file ari_model_validators.c.

5678{
5680}
int ast_ari_validate_channel_unhold(struct ast_json *json)
Validator for ChannelUnhold.

References ast_ari_validate_channel_unhold().

◆ ast_ari_validate_channel_userevent()

int ast_ari_validate_channel_userevent ( struct ast_json json)

Validator for ChannelUserevent.

User-generated event with additional user-defined fields in the object.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 5682 of file ari_model_validators.c.

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}
int ast_ari_validate_endpoint(struct ast_json *json)
Validator for Endpoint.

References ast_ari_validate_bridge(), ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_endpoint(), ast_ari_validate_object(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_userevent_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_userevent_fn()

ari_validator ast_ari_validate_channel_userevent_fn ( void  )

Function pointer to ast_ari_validate_channel_userevent().

Definition at line 5815 of file ari_model_validators.c.

5816{
5818}
int ast_ari_validate_channel_userevent(struct ast_json *json)
Validator for ChannelUserevent.

References ast_ari_validate_channel_userevent().

◆ ast_ari_validate_channel_varset()

int ast_ari_validate_channel_varset ( struct ast_json json)

Validator for ChannelVarset.

Channel variable changed.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 5820 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_varset_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_channel_varset_fn()

ari_validator ast_ari_validate_channel_varset_fn ( void  )

Function pointer to ast_ari_validate_channel_varset().

Definition at line 5935 of file ari_model_validators.c.

5936{
5938}
int ast_ari_validate_channel_varset(struct ast_json *json)
Validator for ChannelVarset.

References ast_ari_validate_channel_varset().

◆ ast_ari_validate_config_info()

int ast_ari_validate_config_info ( struct ast_json json)

Validator for ConfigInfo.

Info about Asterisk configuration

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 282 of file ari_model_validators.c.

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}
int ast_ari_validate_set_id(struct ast_json *json)
Validator for SetId.
int ast_ari_validate_double(struct ast_json *json)
Validator for native Swagger double.

References ast_ari_validate_double(), ast_ari_validate_int(), ast_ari_validate_set_id(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_asterisk_info(), and ast_ari_validate_config_info_fn().

◆ ast_ari_validate_config_info_fn()

ari_validator ast_ari_validate_config_info_fn ( void  )

Function pointer to ast_ari_validate_config_info().

Definition at line 374 of file ari_model_validators.c.

375{
377}

References ast_ari_validate_config_info().

◆ ast_ari_validate_config_tuple()

int ast_ari_validate_config_tuple ( struct ast_json json)

Validator for ConfigTuple.

A key/value pair that makes up part of a configuration object.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 379 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_config_tuple_fn().

◆ ast_ari_validate_config_tuple_fn()

ari_validator ast_ari_validate_config_tuple_fn ( void  )

Function pointer to ast_ari_validate_config_tuple().

Definition at line 428 of file ari_model_validators.c.

429{
431}
int ast_ari_validate_config_tuple(struct ast_json *json)
Validator for ConfigTuple.

References ast_ari_validate_config_tuple().

Referenced by ast_ari_asterisk_get_object_cb(), and ast_ari_asterisk_update_object_cb().

◆ ast_ari_validate_contact_info()

int ast_ari_validate_contact_info ( struct ast_json json)

Validator for ContactInfo.

Detailed information about a contact on an endpoint.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 5940 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_contact_info_fn(), and ast_ari_validate_contact_status_change().

◆ ast_ari_validate_contact_info_fn()

ari_validator ast_ari_validate_contact_info_fn ( void  )

Function pointer to ast_ari_validate_contact_info().

Definition at line 6014 of file ari_model_validators.c.

6015{
6017}
int ast_ari_validate_contact_info(struct ast_json *json)
Validator for ContactInfo.

References ast_ari_validate_contact_info().

◆ ast_ari_validate_contact_status_change()

int ast_ari_validate_contact_status_change ( struct ast_json json)

Validator for ContactStatusChange.

The state of a contact on an endpoint has changed.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 6019 of file ari_model_validators.c.

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}

References ast_ari_validate_contact_info(), ast_ari_validate_date(), ast_ari_validate_endpoint(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_contact_status_change_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_contact_status_change_fn()

ari_validator ast_ari_validate_contact_status_change_fn ( void  )

Function pointer to ast_ari_validate_contact_status_change().

Definition at line 6125 of file ari_model_validators.c.

6126{
6128}
int ast_ari_validate_contact_status_change(struct ast_json *json)
Validator for ContactStatusChange.

References ast_ari_validate_contact_status_change().

◆ ast_ari_validate_date()

int ast_ari_validate_date ( struct ast_json json)

Validator for native Swagger date.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 148 of file res_ari_model.c.

149{
150 /* Dates are ISO-8601 strings */
151 const char *str;
152 if (!check_type(json, AST_JSON_STRING)) {
153 return 0;
154 }
155 str = ast_json_string_get(json);
156 ast_assert(str != NULL);
157 if (regexec(&date_regex, str, 0, NULL, 0) != 0) {
158 ast_log(LOG_ERROR, "Date field is malformed: '%s'\n", str);
159 return 0;
160 }
161 return 1;
162}
const char * str
Definition app_jack.c:150
@ AST_JSON_STRING
Definition json.h:166
const char * ast_json_string_get(const struct ast_json *string)
Get the value of a JSON string.
Definition json.c:283
static regex_t date_regex
static int check_type(struct ast_json *json, enum ast_json_type expected)
#define NULL
Definition resample.c:96
#define ast_assert(a)
Definition utils.h:779

References ast_assert, AST_JSON_STRING, ast_json_string_get(), ast_log, check_type(), date_regex, LOG_ERROR, NULL, and str.

Referenced by ast_ari_validate_application_move_failed(), ast_ari_validate_application_registered(), ast_ari_validate_application_replaced(), ast_ari_validate_application_unregistered(), ast_ari_validate_bridge(), ast_ari_validate_bridge_attended_transfer(), ast_ari_validate_bridge_blind_transfer(), ast_ari_validate_bridge_created(), ast_ari_validate_bridge_destroyed(), ast_ari_validate_bridge_merged(), ast_ari_validate_bridge_video_source_changed(), ast_ari_validate_call_broadcast(), ast_ari_validate_call_claimed(), ast_ari_validate_channel(), ast_ari_validate_channel_caller_id(), ast_ari_validate_channel_connected_line(), ast_ari_validate_channel_created(), ast_ari_validate_channel_destroyed(), ast_ari_validate_channel_dialplan(), ast_ari_validate_channel_dtmf_received(), ast_ari_validate_channel_entered_bridge(), ast_ari_validate_channel_hangup_request(), ast_ari_validate_channel_hold(), ast_ari_validate_channel_left_bridge(), ast_ari_validate_channel_state_change(), ast_ari_validate_channel_talking_finished(), ast_ari_validate_channel_talking_started(), ast_ari_validate_channel_tone_detected(), ast_ari_validate_channel_transfer(), ast_ari_validate_channel_unhold(), ast_ari_validate_channel_userevent(), ast_ari_validate_channel_varset(), ast_ari_validate_contact_status_change(), ast_ari_validate_device_state_changed(), ast_ari_validate_dial(), ast_ari_validate_endpoint_state_change(), ast_ari_validate_event(), ast_ari_validate_peer_status_change(), ast_ari_validate_playback_continuing(), ast_ari_validate_playback_finished(), ast_ari_validate_playback_started(), ast_ari_validate_recording_failed(), ast_ari_validate_recording_finished(), ast_ari_validate_recording_started(), ast_ari_validate_restresponse(), ast_ari_validate_stasis_end(), ast_ari_validate_stasis_start(), ast_ari_validate_status_info(), ast_ari_validate_text_message_received(), and AST_TEST_DEFINE().

◆ ast_ari_validate_device_state()

int ast_ari_validate_device_state ( struct ast_json json)

Validator for DeviceState.

Represents the state of a device.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 2307 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_device_states_get_cb(), ast_ari_validate_device_state_changed(), and ast_ari_validate_device_state_fn().

◆ ast_ari_validate_device_state_changed()

int ast_ari_validate_device_state_changed ( struct ast_json json)

Validator for DeviceStateChanged.

Notification that a device state has changed.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 6130 of file ari_model_validators.c.

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}
int ast_ari_validate_device_state(struct ast_json *json)
Validator for DeviceState.

References ast_ari_validate_date(), ast_ari_validate_device_state(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_device_state_changed_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_device_state_changed_fn()

ari_validator ast_ari_validate_device_state_changed_fn ( void  )

Function pointer to ast_ari_validate_device_state_changed().

Definition at line 6220 of file ari_model_validators.c.

6221{
6223}
int ast_ari_validate_device_state_changed(struct ast_json *json)
Validator for DeviceStateChanged.

References ast_ari_validate_device_state_changed().

◆ ast_ari_validate_device_state_fn()

ari_validator ast_ari_validate_device_state_fn ( void  )

Function pointer to ast_ari_validate_device_state().

Definition at line 2356 of file ari_model_validators.c.

2357{
2359}

References ast_ari_validate_device_state().

Referenced by ast_ari_device_states_list_cb().

◆ ast_ari_validate_dial()

int ast_ari_validate_dial ( struct ast_json json)

Validator for Dial.

Dialing state has changed.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 6225 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_dial_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_dial_fn()

ari_validator ast_ari_validate_dial_fn ( void  )

Function pointer to ast_ari_validate_dial().

Definition at line 6367 of file ari_model_validators.c.

6368{
6369 return ast_ari_validate_dial;
6370}
int ast_ari_validate_dial(struct ast_json *json)
Validator for Dial.

References ast_ari_validate_dial().

◆ ast_ari_validate_dialed()

int ast_ari_validate_dialed ( struct ast_json json)

Validator for Dialed.

Dialed channel information.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 1243 of file ari_model_validators.c.

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}

References ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_dialed_fn().

◆ ast_ari_validate_dialed_fn()

ari_validator ast_ari_validate_dialed_fn ( void  )

Function pointer to ast_ari_validate_dialed().

Definition at line 1260 of file ari_model_validators.c.

1261{
1263}
int ast_ari_validate_dialed(struct ast_json *json)
Validator for Dialed.

References ast_ari_validate_dialed().

◆ ast_ari_validate_dialplan_cep()

int ast_ari_validate_dialplan_cep ( struct ast_json json)

Validator for DialplanCEP.

Dialplan location (context/extension/priority)

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 1265 of file ari_model_validators.c.

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}
int ast_ari_validate_long(struct ast_json *json)
Validator for native Swagger long.
static int has_priority(void)
Check whether we were set to high(er) priority.
Definition asterisk.c:1791

References ast_ari_validate_long(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, has_priority(), and LOG_ERROR.

Referenced by ast_ari_validate_channel(), and ast_ari_validate_dialplan_cep_fn().

◆ ast_ari_validate_dialplan_cep_fn()

ari_validator ast_ari_validate_dialplan_cep_fn ( void  )

Function pointer to ast_ari_validate_dialplan_cep().

Definition at line 1362 of file ari_model_validators.c.

1363{
1365}

References ast_ari_validate_dialplan_cep().

◆ ast_ari_validate_double()

int ast_ari_validate_double ( struct ast_json json)

Validator for native Swagger double.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 138 of file res_ari_model.c.

139{
140 return check_type(json, AST_JSON_REAL);
141}
@ AST_JSON_REAL
Definition json.h:168

References AST_JSON_REAL, and check_type().

Referenced by ast_ari_validate_config_info(), and ast_ari_validate_rtpstat().

◆ ast_ari_validate_endpoint()

int ast_ari_validate_endpoint ( struct ast_json json)

Validator for Endpoint.

An external device that may offer/accept calls to/from Asterisk.

Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 821 of file ari_model_validators.c.

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}

References ast_ari_validate_list(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_endpoints_get_cb(), ast_ari_validate_channel_userevent(), ast_ari_validate_contact_status_change(), ast_ari_validate_endpoint_fn(), ast_ari_validate_endpoint_state_change(), ast_ari_validate_peer_status_change(), and ast_ari_validate_text_message_received().

◆ ast_ari_validate_endpoint_fn()

ari_validator ast_ari_validate_endpoint_fn ( void  )

Function pointer to ast_ari_validate_endpoint().

Definition at line 896 of file ari_model_validators.c.

897{
899}

References ast_ari_validate_endpoint().

Referenced by ast_ari_endpoints_list_by_tech_cb(), and ast_ari_endpoints_list_cb().

◆ ast_ari_validate_endpoint_state_change()

int ast_ari_validate_endpoint_state_change ( struct ast_json json)

Validator for EndpointStateChange.

Endpoint state changed.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 6372 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_ari_validate_endpoint(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_endpoint_state_change_fn(), ast_ari_validate_event(), and ast_ari_validate_message().

◆ ast_ari_validate_endpoint_state_change_fn()

ari_validator ast_ari_validate_endpoint_state_change_fn ( void  )

Function pointer to ast_ari_validate_endpoint_state_change().

Definition at line 6462 of file ari_model_validators.c.

6463{
6465}
int ast_ari_validate_endpoint_state_change(struct ast_json *json)
Validator for EndpointStateChange.

References ast_ari_validate_endpoint_state_change().

◆ ast_ari_validate_event()

int ast_ari_validate_event ( struct ast_json json)

Validator for Event.

Base type for asynchronous events from Asterisk.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 6467 of file ari_model_validators.c.

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}
int ast_ari_validate_text_message_received(struct ast_json *json)
Validator for TextMessageReceived.
int ast_ari_validate_playback_finished(struct ast_json *json)
Validator for PlaybackFinished.
int ast_ari_validate_stasis_start(struct ast_json *json)
Validator for StasisStart.
int ast_ari_validate_stasis_end(struct ast_json *json)
Validator for StasisEnd.
int ast_ari_validate_playback_started(struct ast_json *json)
Validator for PlaybackStarted.
int ast_ari_validate_peer_status_change(struct ast_json *json)
Validator for PeerStatusChange.
int ast_ari_validate_playback_continuing(struct ast_json *json)
Validator for PlaybackContinuing.
int ast_ari_validate_recording_finished(struct ast_json *json)
Validator for RecordingFinished.
int ast_ari_validate_restresponse(struct ast_json *json)
Validator for RESTResponse.
int ast_ari_validate_recording_started(struct ast_json *json)
Validator for RecordingStarted.
int ast_ari_validate_recording_failed(struct ast_json *json)
Validator for RecordingFailed.
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

References ast_ari_validate_application_move_failed(), ast_ari_validate_application_registered(), ast_ari_validate_application_replaced(), ast_ari_validate_application_unregistered(), ast_ari_validate_bridge_attended_transfer(), ast_ari_validate_bridge_blind_transfer(), ast_ari_validate_bridge_created(), ast_ari_validate_bridge_destroyed(), ast_ari_validate_bridge_merged(), ast_ari_validate_bridge_video_source_changed(), ast_ari_validate_call_broadcast(), ast_ari_validate_call_claimed(), ast_ari_validate_channel_caller_id(), ast_ari_validate_channel_connected_line(), ast_ari_validate_channel_created(), ast_ari_validate_channel_destroyed(), ast_ari_validate_channel_dialplan(), ast_ari_validate_channel_dtmf_received(), ast_ari_validate_channel_entered_bridge(), ast_ari_validate_channel_hangup_request(), ast_ari_validate_channel_hold(), ast_ari_validate_channel_left_bridge(), ast_ari_validate_channel_state_change(), ast_ari_validate_channel_talking_finished(), ast_ari_validate_channel_talking_started(), ast_ari_validate_channel_tone_detected(), ast_ari_validate_channel_transfer(), ast_ari_validate_channel_unhold(), ast_ari_validate_channel_userevent(), ast_ari_validate_channel_varset(), ast_ari_validate_contact_status_change(), ast_ari_validate_date(), ast_ari_validate_device_state_changed(), ast_ari_validate_dial(), ast_ari_validate_endpoint_state_change(), ast_ari_validate_peer_status_change(), ast_ari_validate_playback_continuing(), ast_ari_validate_playback_finished(), ast_ari_validate_playback_started(), ast_ari_validate_recording_failed(), ast_ari_validate_recording_finished(), ast_ari_validate_recording_started(), ast_ari_validate_restresponse(), ast_ari_validate_stasis_end(), ast_ari_validate_stasis_start(), ast_ari_validate_string(), ast_ari_validate_text_message_received(), ast_json_object_get(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_json_string_get(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_event_fn(), and ast_ari_validate_message().

◆ ast_ari_validate_event_fn()

ari_validator ast_ari_validate_event_fn ( void  )

Function pointer to ast_ari_validate_event().

Definition at line 6692 of file ari_model_validators.c.

6693{
6695}
int ast_ari_validate_event(struct ast_json *json)
Validator for Event.

References ast_ari_validate_event().

◆ ast_ari_validate_float()

int ast_ari_validate_float ( struct ast_json json)

Validator for native Swagger float.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 133 of file res_ari_model.c.

134{
135 return check_type(json, AST_JSON_REAL);
136}

References AST_JSON_REAL, and check_type().

◆ ast_ari_validate_format_lang_pair()

int ast_ari_validate_format_lang_pair ( struct ast_json json)

Validator for FormatLangPair.

Identifies the format and language of a sound file

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 2085 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_format_lang_pair_fn(), and ast_ari_validate_sound().

◆ ast_ari_validate_format_lang_pair_fn()

ari_validator ast_ari_validate_format_lang_pair_fn ( void  )

Function pointer to ast_ari_validate_format_lang_pair().

Definition at line 2134 of file ari_model_validators.c.

2135{
2137}
int ast_ari_validate_format_lang_pair(struct ast_json *json)
Validator for FormatLangPair.

References ast_ari_validate_format_lang_pair().

◆ ast_ari_validate_int()

int ast_ari_validate_int ( struct ast_json json)

Validator for native Swagger int.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 121 of file res_ari_model.c.

122{
123 /* Swagger int's are 32-bit */
124 return check_range(-2147483648LL, 2147483647LL, json);
125}

References check_range().

Referenced by ast_ari_validate_channel_caller_id(), ast_ari_validate_channel_destroyed(), ast_ari_validate_channel_dtmf_received(), ast_ari_validate_channel_hangup_request(), ast_ari_validate_channel_talking_finished(), ast_ari_validate_config_info(), ast_ari_validate_live_recording(), ast_ari_validate_mailbox(), ast_ari_validate_module(), ast_ari_validate_restresponse(), ast_ari_validate_rtpstat(), and AST_TEST_DEFINE().

◆ ast_ari_validate_list()

int ast_ari_validate_list ( struct ast_json json,
int(*)(struct ast_json *)  fn 
)

Validator for a Swagger List[]/JSON array.

Parameters
jsonJSON object to validate.
fnValidator to call on every element in the array.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 164 of file res_ari_model.c.

165{
166 int res = 1;
167 size_t i;
168
169 if (!check_type(json, AST_JSON_ARRAY)) {
170 return 0;
171 }
172
173 for (i = 0; i < ast_json_array_size(json); ++i) {
174 int member_res;
175 member_res = fn(ast_json_array_get(json, i));
176 if (!member_res) {
178 "Array member %zu failed validation\n", i);
179 res = 0;
180 }
181 }
182
183 return res;
184}
struct ast_json * ast_json_array_get(const struct ast_json *array, size_t index)
Get an element from an array.
Definition json.c:370
@ AST_JSON_ARRAY
Definition json.h:165
size_t ast_json_array_size(const struct ast_json *array)
Get the size of a JSON array.
Definition json.c:366

References AST_JSON_ARRAY, ast_json_array_get(), ast_json_array_size(), ast_log, check_type(), and LOG_ERROR.

Referenced by ast_ari_applications_list_cb(), ast_ari_asterisk_get_object_cb(), ast_ari_asterisk_list_log_channels_cb(), ast_ari_asterisk_list_modules_cb(), ast_ari_asterisk_update_object_cb(), ast_ari_bridges_list_cb(), ast_ari_channels_list_cb(), ast_ari_device_states_list_cb(), ast_ari_endpoints_list_by_tech_cb(), ast_ari_endpoints_list_cb(), ast_ari_mailboxes_list_cb(), ast_ari_recordings_list_stored_cb(), ast_ari_sounds_list_cb(), ast_ari_validate_application(), ast_ari_validate_application_move_failed(), ast_ari_validate_bridge(), ast_ari_validate_endpoint(), ast_ari_validate_missing_params(), ast_ari_validate_required_destination(), ast_ari_validate_restrequest(), ast_ari_validate_sound(), ast_ari_validate_stasis_start(), and AST_TEST_DEFINE().

◆ ast_ari_validate_live_recording()

int ast_ari_validate_live_recording ( struct ast_json json)

Validator for LiveRecording.

A recording that is in progress

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 1909 of file ari_model_validators.c.

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}

References ast_ari_validate_int(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_bridges_record_cb(), ast_ari_channels_record_cb(), ast_ari_recordings_get_live_cb(), ast_ari_validate_live_recording_fn(), ast_ari_validate_recording_failed(), ast_ari_validate_recording_finished(), and ast_ari_validate_recording_started().

◆ ast_ari_validate_live_recording_fn()

ari_validator ast_ari_validate_live_recording_fn ( void  )

Function pointer to ast_ari_validate_live_recording().

Definition at line 2026 of file ari_model_validators.c.

2027{
2029}
int ast_ari_validate_live_recording(struct ast_json *json)
Validator for LiveRecording.

References ast_ari_validate_live_recording().

◆ ast_ari_validate_log_channel()

int ast_ari_validate_log_channel ( struct ast_json json)

Validator for LogChannel.

Details of an Asterisk log channel

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 433 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_log_channel_fn().

◆ ast_ari_validate_log_channel_fn()

ari_validator ast_ari_validate_log_channel_fn ( void  )

Function pointer to ast_ari_validate_log_channel().

Definition at line 514 of file ari_model_validators.c.

515{
517}
int ast_ari_validate_log_channel(struct ast_json *json)
Validator for LogChannel.

References ast_ari_validate_log_channel().

Referenced by ast_ari_asterisk_list_log_channels_cb().

◆ ast_ari_validate_long()

int ast_ari_validate_long ( struct ast_json json)

Validator for native Swagger long.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 127 of file res_ari_model.c.

128{
129 /* All integral values are valid longs. No need for range check. */
130 return check_type(json, AST_JSON_INTEGER);
131}
@ AST_JSON_INTEGER
Definition json.h:167

References AST_JSON_INTEGER, and check_type().

Referenced by ast_ari_validate_dialplan_cep(), and AST_TEST_DEFINE().

◆ ast_ari_validate_mailbox()

int ast_ari_validate_mailbox ( struct ast_json json)

Validator for Mailbox.

Represents the state of a mailbox.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 2361 of file ari_model_validators.c.

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}

References ast_ari_validate_int(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_mailboxes_get_cb(), and ast_ari_validate_mailbox_fn().

◆ ast_ari_validate_mailbox_fn()

ari_validator ast_ari_validate_mailbox_fn ( void  )

Function pointer to ast_ari_validate_mailbox().

Definition at line 2426 of file ari_model_validators.c.

2427{
2429}
int ast_ari_validate_mailbox(struct ast_json *json)
Validator for Mailbox.

References ast_ari_validate_mailbox().

Referenced by ast_ari_mailboxes_list_cb().

◆ ast_ari_validate_message()

int ast_ari_validate_message ( struct ast_json json)

Validator for Message.

Base type for errors and events

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 6697 of file ari_model_validators.c.

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}
int ast_ari_validate_missing_params(struct ast_json *json)
Validator for MissingParams.

References ast_ari_validate_application_move_failed(), ast_ari_validate_application_registered(), ast_ari_validate_application_replaced(), ast_ari_validate_application_unregistered(), ast_ari_validate_bridge_attended_transfer(), ast_ari_validate_bridge_blind_transfer(), ast_ari_validate_bridge_created(), ast_ari_validate_bridge_destroyed(), ast_ari_validate_bridge_merged(), ast_ari_validate_bridge_video_source_changed(), ast_ari_validate_call_broadcast(), ast_ari_validate_call_claimed(), ast_ari_validate_channel_caller_id(), ast_ari_validate_channel_connected_line(), ast_ari_validate_channel_created(), ast_ari_validate_channel_destroyed(), ast_ari_validate_channel_dialplan(), ast_ari_validate_channel_dtmf_received(), ast_ari_validate_channel_entered_bridge(), ast_ari_validate_channel_hangup_request(), ast_ari_validate_channel_hold(), ast_ari_validate_channel_left_bridge(), ast_ari_validate_channel_state_change(), ast_ari_validate_channel_talking_finished(), ast_ari_validate_channel_talking_started(), ast_ari_validate_channel_tone_detected(), ast_ari_validate_channel_transfer(), ast_ari_validate_channel_unhold(), ast_ari_validate_channel_userevent(), ast_ari_validate_channel_varset(), ast_ari_validate_contact_status_change(), ast_ari_validate_device_state_changed(), ast_ari_validate_dial(), ast_ari_validate_endpoint_state_change(), ast_ari_validate_event(), ast_ari_validate_missing_params(), ast_ari_validate_peer_status_change(), ast_ari_validate_playback_continuing(), ast_ari_validate_playback_finished(), ast_ari_validate_playback_started(), ast_ari_validate_recording_failed(), ast_ari_validate_recording_finished(), ast_ari_validate_recording_started(), ast_ari_validate_restresponse(), ast_ari_validate_stasis_end(), ast_ari_validate_stasis_start(), ast_ari_validate_string(), ast_ari_validate_text_message_received(), ast_json_object_get(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_json_string_get(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_message_fn().

◆ ast_ari_validate_message_fn()

ari_validator ast_ari_validate_message_fn ( void  )

Function pointer to ast_ari_validate_message().

Definition at line 6896 of file ari_model_validators.c.

6897{
6899}
int ast_ari_validate_message(struct ast_json *json)
Validator for Message.

References ast_ari_validate_message().

◆ ast_ari_validate_missing_params()

int ast_ari_validate_missing_params ( struct ast_json json)

Validator for MissingParams.

Error event sent when required params are missing.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 6901 of file ari_model_validators.c.

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}

References ast_ari_validate_list(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_message(), and ast_ari_validate_missing_params_fn().

◆ ast_ari_validate_missing_params_fn()

ari_validator ast_ari_validate_missing_params_fn ( void  )

Function pointer to ast_ari_validate_missing_params().

Definition at line 6960 of file ari_model_validators.c.

6961{
6963}

References ast_ari_validate_missing_params().

◆ ast_ari_validate_module()

int ast_ari_validate_module ( struct ast_json json)

Validator for Module.

Details of an Asterisk module

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 519 of file ari_model_validators.c.

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}

References ast_ari_validate_int(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_asterisk_get_module_cb(), and ast_ari_validate_module_fn().

◆ ast_ari_validate_module_fn()

ari_validator ast_ari_validate_module_fn ( void  )

Function pointer to ast_ari_validate_module().

Definition at line 616 of file ari_model_validators.c.

617{
619}
int ast_ari_validate_module(struct ast_json *json)
Validator for Module.

References ast_ari_validate_module().

Referenced by ast_ari_asterisk_list_modules_cb().

◆ ast_ari_validate_object()

int ast_ari_validate_object ( struct ast_json json)

Validator for native Swagger object.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 96 of file res_ari_model.c.

97{
98 return check_type(json, AST_JSON_OBJECT);
99}
@ AST_JSON_OBJECT
Definition json.h:164

References AST_JSON_OBJECT, and check_type().

Referenced by ast_ari_validate_application(), ast_ari_validate_channel(), ast_ari_validate_channel_userevent(), and ast_ari_validate_text_message().

◆ ast_ari_validate_peer()

int ast_ari_validate_peer ( struct ast_json json)

Validator for Peer.

Detailed information about a remote peer that communicates with Asterisk.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 6965 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_peer_fn(), and ast_ari_validate_peer_status_change().

◆ ast_ari_validate_peer_fn()

ari_validator ast_ari_validate_peer_fn ( void  )

Function pointer to ast_ari_validate_peer().

Definition at line 7034 of file ari_model_validators.c.

7035{
7036 return ast_ari_validate_peer;
7037}
int ast_ari_validate_peer(struct ast_json *json)
Validator for Peer.

References ast_ari_validate_peer().

◆ ast_ari_validate_peer_status_change()

int ast_ari_validate_peer_status_change ( struct ast_json json)

Validator for PeerStatusChange.

The state of a peer associated with an endpoint has changed.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 7039 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_ari_validate_endpoint(), ast_ari_validate_peer(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_event(), ast_ari_validate_message(), and ast_ari_validate_peer_status_change_fn().

◆ ast_ari_validate_peer_status_change_fn()

ari_validator ast_ari_validate_peer_status_change_fn ( void  )

Function pointer to ast_ari_validate_peer_status_change().

Definition at line 7145 of file ari_model_validators.c.

7146{
7148}

References ast_ari_validate_peer_status_change().

◆ ast_ari_validate_playback()

int ast_ari_validate_playback ( struct ast_json json)

Validator for Playback.

Object representing the playback of media to a channel

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 2203 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_bridges_play_cb(), ast_ari_bridges_play_with_id_cb(), ast_ari_channels_play_cb(), ast_ari_channels_play_with_id_cb(), ast_ari_playbacks_get_cb(), ast_ari_validate_playback_continuing(), ast_ari_validate_playback_finished(), ast_ari_validate_playback_fn(), and ast_ari_validate_playback_started().

◆ ast_ari_validate_playback_continuing()

int ast_ari_validate_playback_continuing ( struct ast_json json)

Validator for PlaybackContinuing.

Event showing the continuation of a media playback operation from one media URI to the next in the list.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 7150 of file ari_model_validators.c.

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}
int ast_ari_validate_playback(struct ast_json *json)
Validator for Playback.

References ast_ari_validate_date(), ast_ari_validate_playback(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_event(), ast_ari_validate_message(), and ast_ari_validate_playback_continuing_fn().

◆ ast_ari_validate_playback_continuing_fn()

ari_validator ast_ari_validate_playback_continuing_fn ( void  )

Function pointer to ast_ari_validate_playback_continuing().

Definition at line 7240 of file ari_model_validators.c.

7241{
7243}

References ast_ari_validate_playback_continuing().

◆ ast_ari_validate_playback_finished()

int ast_ari_validate_playback_finished ( struct ast_json json)

Validator for PlaybackFinished.

Event showing the completion of a media playback operation.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 7245 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_ari_validate_playback(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_event(), ast_ari_validate_message(), and ast_ari_validate_playback_finished_fn().

◆ ast_ari_validate_playback_finished_fn()

ari_validator ast_ari_validate_playback_finished_fn ( void  )

Function pointer to ast_ari_validate_playback_finished().

Definition at line 7335 of file ari_model_validators.c.

7336{
7338}

References ast_ari_validate_playback_finished().

◆ ast_ari_validate_playback_fn()

ari_validator ast_ari_validate_playback_fn ( void  )

Function pointer to ast_ari_validate_playback().

Definition at line 2302 of file ari_model_validators.c.

2303{
2305}

References ast_ari_validate_playback().

◆ ast_ari_validate_playback_started()

int ast_ari_validate_playback_started ( struct ast_json json)

Validator for PlaybackStarted.

Event showing the start of a media playback operation.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 7340 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_ari_validate_playback(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_event(), ast_ari_validate_message(), and ast_ari_validate_playback_started_fn().

◆ ast_ari_validate_playback_started_fn()

ari_validator ast_ari_validate_playback_started_fn ( void  )

Function pointer to ast_ari_validate_playback_started().

Definition at line 7430 of file ari_model_validators.c.

7431{
7433}

References ast_ari_validate_playback_started().

◆ ast_ari_validate_recording_failed()

int ast_ari_validate_recording_failed ( struct ast_json json)

Validator for RecordingFailed.

Event showing failure of a recording operation.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 7850 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_ari_validate_live_recording(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_event(), ast_ari_validate_message(), and ast_ari_validate_recording_failed_fn().

◆ ast_ari_validate_recording_failed_fn()

ari_validator ast_ari_validate_recording_failed_fn ( void  )

Function pointer to ast_ari_validate_recording_failed().

Definition at line 7940 of file ari_model_validators.c.

7941{
7943}

References ast_ari_validate_recording_failed().

◆ ast_ari_validate_recording_finished()

int ast_ari_validate_recording_finished ( struct ast_json json)

Validator for RecordingFinished.

Event showing the completion of a recording operation.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 7945 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_ari_validate_live_recording(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_event(), ast_ari_validate_message(), and ast_ari_validate_recording_finished_fn().

◆ ast_ari_validate_recording_finished_fn()

ari_validator ast_ari_validate_recording_finished_fn ( void  )

Function pointer to ast_ari_validate_recording_finished().

Definition at line 8035 of file ari_model_validators.c.

8036{
8038}

References ast_ari_validate_recording_finished().

◆ ast_ari_validate_recording_started()

int ast_ari_validate_recording_started ( struct ast_json json)

Validator for RecordingStarted.

Event showing the start of a recording operation.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 8040 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_ari_validate_live_recording(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_event(), ast_ari_validate_message(), and ast_ari_validate_recording_started_fn().

◆ ast_ari_validate_recording_started_fn()

ari_validator ast_ari_validate_recording_started_fn ( void  )

Function pointer to ast_ari_validate_recording_started().

Definition at line 8130 of file ari_model_validators.c.

8131{
8133}

References ast_ari_validate_recording_started().

◆ ast_ari_validate_refer_to()

int ast_ari_validate_refer_to ( struct ast_json json)

Validator for ReferTo.

transfer destination requested by transferee

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 8135 of file ari_model_validators.c.

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}
int ast_ari_validate_required_destination(struct ast_json *json)
Validator for RequiredDestination.

References ast_ari_validate_bridge(), ast_ari_validate_channel(), ast_ari_validate_required_destination(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_transfer(), and ast_ari_validate_refer_to_fn().

◆ ast_ari_validate_refer_to_fn()

ari_validator ast_ari_validate_refer_to_fn ( void  )

Function pointer to ast_ari_validate_refer_to().

Definition at line 8195 of file ari_model_validators.c.

8196{
8198}

References ast_ari_validate_refer_to().

◆ ast_ari_validate_referred_by()

int ast_ari_validate_referred_by ( struct ast_json json)

Validator for ReferredBy.

transfer destination requested by transferee

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 8200 of file ari_model_validators.c.

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}

References ast_ari_validate_bridge(), ast_ari_validate_channel(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_channel_transfer(), and ast_ari_validate_referred_by_fn().

◆ ast_ari_validate_referred_by_fn()

ari_validator ast_ari_validate_referred_by_fn ( void  )

Function pointer to ast_ari_validate_referred_by().

Definition at line 8251 of file ari_model_validators.c.

8252{
8254}

References ast_ari_validate_referred_by().

◆ ast_ari_validate_required_destination()

int ast_ari_validate_required_destination ( struct ast_json json)

Validator for RequiredDestination.

Information about the requested destination

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 8256 of file ari_model_validators.c.

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}

References ast_ari_validate_additional_param(), ast_ari_validate_list(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_refer_to(), and ast_ari_validate_required_destination_fn().

◆ ast_ari_validate_required_destination_fn()

ari_validator ast_ari_validate_required_destination_fn ( void  )

◆ ast_ari_validate_restheader()

int ast_ari_validate_restheader ( struct ast_json json)

Validator for RESTHeader.

REST over Websocket header

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 7435 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_restheader_fn().

◆ ast_ari_validate_restheader_fn()

ari_validator ast_ari_validate_restheader_fn ( void  )

Function pointer to ast_ari_validate_restheader().

Definition at line 7484 of file ari_model_validators.c.

7485{
7487}
int ast_ari_validate_restheader(struct ast_json *json)
Validator for RESTHeader.

References ast_ari_validate_restheader().

◆ ast_ari_validate_restquery_string_parameter()

int ast_ari_validate_restquery_string_parameter ( struct ast_json json)

Validator for RESTQueryStringParameter.

REST over Websocket Query String Parameter

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 7489 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_restquery_string_parameter_fn(), and ast_ari_validate_restrequest().

◆ ast_ari_validate_restquery_string_parameter_fn()

ari_validator ast_ari_validate_restquery_string_parameter_fn ( void  )

Function pointer to ast_ari_validate_restquery_string_parameter().

Definition at line 7538 of file ari_model_validators.c.

7539{
7541}
int ast_ari_validate_restquery_string_parameter(struct ast_json *json)
Validator for RESTQueryStringParameter.

References ast_ari_validate_restquery_string_parameter().

◆ ast_ari_validate_restrequest()

int ast_ari_validate_restrequest ( struct ast_json json)

Validator for RESTRequest.

REST over Websocket Request.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 7543 of file ari_model_validators.c.

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}

References ast_ari_validate_list(), ast_ari_validate_restquery_string_parameter(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_restrequest_fn().

◆ ast_ari_validate_restrequest_fn()

ari_validator ast_ari_validate_restrequest_fn ( void  )

Function pointer to ast_ari_validate_restrequest().

Definition at line 7668 of file ari_model_validators.c.

7669{
7671}
int ast_ari_validate_restrequest(struct ast_json *json)
Validator for RESTRequest.

References ast_ari_validate_restrequest().

◆ ast_ari_validate_restresponse()

int ast_ari_validate_restresponse ( struct ast_json json)

Validator for RESTResponse.

REST over Websocket Response.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 7673 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_ari_validate_int(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_event(), ast_ari_validate_message(), and ast_ari_validate_restresponse_fn().

◆ ast_ari_validate_restresponse_fn()

ari_validator ast_ari_validate_restresponse_fn ( void  )

Function pointer to ast_ari_validate_restresponse().

Definition at line 7845 of file ari_model_validators.c.

7846{
7848}

References ast_ari_validate_restresponse().

◆ ast_ari_validate_rtpstat()

int ast_ari_validate_rtpstat ( struct ast_json json)

Validator for RTPstat.

A statistics of a RTP.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 1367 of file ari_model_validators.c.

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}

References ast_ari_validate_double(), ast_ari_validate_int(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_channels_rtpstatistics_cb(), and ast_ari_validate_rtpstat_fn().

◆ ast_ari_validate_rtpstat_fn()

ari_validator ast_ari_validate_rtpstat_fn ( void  )

Function pointer to ast_ari_validate_rtpstat().

Definition at line 1735 of file ari_model_validators.c.

1736{
1738}
int ast_ari_validate_rtpstat(struct ast_json *json)
Validator for RTPstat.

References ast_ari_validate_rtpstat().

◆ ast_ari_validate_set_id()

int ast_ari_validate_set_id ( struct ast_json json)

Validator for SetId.

Effective user/group id

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 621 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_config_info(), and ast_ari_validate_set_id_fn().

◆ ast_ari_validate_set_id_fn()

ari_validator ast_ari_validate_set_id_fn ( void  )

Function pointer to ast_ari_validate_set_id().

Definition at line 670 of file ari_model_validators.c.

671{
673}

References ast_ari_validate_set_id().

◆ ast_ari_validate_sound()

int ast_ari_validate_sound ( struct ast_json json)

Validator for Sound.

A media file that may be played back.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 2139 of file ari_model_validators.c.

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}

References ast_ari_validate_format_lang_pair(), ast_ari_validate_list(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_sounds_get_cb(), and ast_ari_validate_sound_fn().

◆ ast_ari_validate_sound_fn()

ari_validator ast_ari_validate_sound_fn ( void  )

Function pointer to ast_ari_validate_sound().

Definition at line 2198 of file ari_model_validators.c.

2199{
2201}
int ast_ari_validate_sound(struct ast_json *json)
Validator for Sound.

References ast_ari_validate_sound().

Referenced by ast_ari_sounds_list_cb().

◆ ast_ari_validate_stasis_end()

int ast_ari_validate_stasis_end ( struct ast_json json)

Validator for StasisEnd.

Notification that a channel has left a Stasis application.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 8306 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_event(), ast_ari_validate_message(), and ast_ari_validate_stasis_end_fn().

◆ ast_ari_validate_stasis_end_fn()

ari_validator ast_ari_validate_stasis_end_fn ( void  )

Function pointer to ast_ari_validate_stasis_end().

Definition at line 8396 of file ari_model_validators.c.

8397{
8399}

References ast_ari_validate_stasis_end().

◆ ast_ari_validate_stasis_start()

int ast_ari_validate_stasis_start ( struct ast_json json)

Validator for StasisStart.

Notification that a channel has entered a Stasis application.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 8401 of file ari_model_validators.c.

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}

References ast_ari_validate_channel(), ast_ari_validate_date(), ast_ari_validate_list(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_event(), ast_ari_validate_message(), and ast_ari_validate_stasis_start_fn().

◆ ast_ari_validate_stasis_start_fn()

ari_validator ast_ari_validate_stasis_start_fn ( void  )

Function pointer to ast_ari_validate_stasis_start().

Definition at line 8517 of file ari_model_validators.c.

8518{
8520}

References ast_ari_validate_stasis_start().

◆ ast_ari_validate_status_info()

int ast_ari_validate_status_info ( struct ast_json json)

Validator for StatusInfo.

Info about Asterisk status

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 675 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_asterisk_info(), and ast_ari_validate_status_info_fn().

◆ ast_ari_validate_status_info_fn()

ari_validator ast_ari_validate_status_info_fn ( void  )

Function pointer to ast_ari_validate_status_info().

Definition at line 724 of file ari_model_validators.c.

725{
727}

References ast_ari_validate_status_info().

◆ ast_ari_validate_stored_recording()

int ast_ari_validate_stored_recording ( struct ast_json json)

Validator for StoredRecording.

A past recording that may be played back.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 2031 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_recordings_copy_stored_cb(), ast_ari_recordings_get_stored_cb(), and ast_ari_validate_stored_recording_fn().

◆ ast_ari_validate_stored_recording_fn()

ari_validator ast_ari_validate_stored_recording_fn ( void  )

Function pointer to ast_ari_validate_stored_recording().

Definition at line 2080 of file ari_model_validators.c.

2081{
2083}
int ast_ari_validate_stored_recording(struct ast_json *json)
Validator for StoredRecording.

References ast_ari_validate_stored_recording().

Referenced by ast_ari_recordings_list_stored_cb().

◆ ast_ari_validate_string()

int ast_ari_validate_string ( struct ast_json json)

Validator for native Swagger string.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 143 of file res_ari_model.c.

144{
145 return check_type(json, AST_JSON_STRING);
146}

References AST_JSON_STRING, and check_type().

Referenced by ast_ari_validate_additional_param(), ast_ari_validate_application(), ast_ari_validate_application_move_failed(), ast_ari_validate_application_registered(), ast_ari_validate_application_replaced(), ast_ari_validate_application_unregistered(), ast_ari_validate_asterisk_ping(), ast_ari_validate_bridge(), ast_ari_validate_bridge_attended_transfer(), ast_ari_validate_bridge_blind_transfer(), ast_ari_validate_bridge_created(), ast_ari_validate_bridge_destroyed(), ast_ari_validate_bridge_merged(), ast_ari_validate_bridge_video_source_changed(), ast_ari_validate_build_info(), ast_ari_validate_call_broadcast(), ast_ari_validate_call_claimed(), ast_ari_validate_caller_id(), ast_ari_validate_channel(), ast_ari_validate_channel_caller_id(), ast_ari_validate_channel_connected_line(), ast_ari_validate_channel_created(), ast_ari_validate_channel_destroyed(), ast_ari_validate_channel_dialplan(), ast_ari_validate_channel_dtmf_received(), ast_ari_validate_channel_entered_bridge(), ast_ari_validate_channel_hangup_request(), ast_ari_validate_channel_hold(), ast_ari_validate_channel_left_bridge(), ast_ari_validate_channel_state_change(), ast_ari_validate_channel_talking_finished(), ast_ari_validate_channel_talking_started(), ast_ari_validate_channel_tone_detected(), ast_ari_validate_channel_transfer(), ast_ari_validate_channel_unhold(), ast_ari_validate_channel_userevent(), ast_ari_validate_channel_varset(), ast_ari_validate_config_info(), ast_ari_validate_config_tuple(), ast_ari_validate_contact_info(), ast_ari_validate_contact_status_change(), ast_ari_validate_device_state(), ast_ari_validate_device_state_changed(), ast_ari_validate_dial(), ast_ari_validate_dialplan_cep(), ast_ari_validate_endpoint(), ast_ari_validate_endpoint_state_change(), ast_ari_validate_event(), ast_ari_validate_format_lang_pair(), ast_ari_validate_live_recording(), ast_ari_validate_log_channel(), ast_ari_validate_mailbox(), ast_ari_validate_message(), ast_ari_validate_missing_params(), ast_ari_validate_module(), ast_ari_validate_peer(), ast_ari_validate_peer_status_change(), ast_ari_validate_playback(), ast_ari_validate_playback_continuing(), ast_ari_validate_playback_finished(), ast_ari_validate_playback_started(), ast_ari_validate_recording_failed(), ast_ari_validate_recording_finished(), ast_ari_validate_recording_started(), ast_ari_validate_required_destination(), ast_ari_validate_restheader(), ast_ari_validate_restquery_string_parameter(), ast_ari_validate_restrequest(), ast_ari_validate_restresponse(), ast_ari_validate_rtpstat(), ast_ari_validate_set_id(), ast_ari_validate_sound(), ast_ari_validate_stasis_end(), ast_ari_validate_stasis_start(), ast_ari_validate_stored_recording(), ast_ari_validate_system_info(), ast_ari_validate_text_message(), ast_ari_validate_text_message_received(), ast_ari_validate_variable(), AST_TEST_DEFINE(), and AST_TEST_DEFINE().

◆ ast_ari_validate_system_info()

int ast_ari_validate_system_info ( struct ast_json json)

Validator for SystemInfo.

Info about Asterisk

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 729 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_asterisk_info(), and ast_ari_validate_system_info_fn().

◆ ast_ari_validate_system_info_fn()

ari_validator ast_ari_validate_system_info_fn ( void  )

Function pointer to ast_ari_validate_system_info().

Definition at line 778 of file ari_model_validators.c.

779{
781}

References ast_ari_validate_system_info().

◆ ast_ari_validate_text_message()

int ast_ari_validate_text_message ( struct ast_json json)

Validator for TextMessage.

A text message.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 901 of file ari_model_validators.c.

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}

References ast_ari_validate_object(), ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_text_message_fn(), and ast_ari_validate_text_message_received().

◆ ast_ari_validate_text_message_fn()

ari_validator ast_ari_validate_text_message_fn ( void  )

Function pointer to ast_ari_validate_text_message().

Definition at line 975 of file ari_model_validators.c.

976{
978}
int ast_ari_validate_text_message(struct ast_json *json)
Validator for TextMessage.

References ast_ari_validate_text_message().

◆ ast_ari_validate_text_message_received()

int ast_ari_validate_text_message_received ( struct ast_json json)

Validator for TextMessageReceived.

A text message was received from an endpoint.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 8522 of file ari_model_validators.c.

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}

References ast_ari_validate_date(), ast_ari_validate_endpoint(), ast_ari_validate_string(), ast_ari_validate_text_message(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_validate_event(), ast_ari_validate_message(), and ast_ari_validate_text_message_received_fn().

◆ ast_ari_validate_text_message_received_fn()

ari_validator ast_ari_validate_text_message_received_fn ( void  )

◆ ast_ari_validate_variable()

int ast_ari_validate_variable ( struct ast_json json)

Validator for Variable.

The value of a channel variable

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 783 of file ari_model_validators.c.

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}

References ast_ari_validate_string(), ast_json_object_iter(), ast_json_object_iter_key(), ast_json_object_iter_next(), ast_json_object_iter_value(), ast_log, and LOG_ERROR.

Referenced by ast_ari_asterisk_get_global_var_cb(), ast_ari_channels_get_channel_var_cb(), and ast_ari_validate_variable_fn().

◆ ast_ari_validate_variable_fn()

ari_validator ast_ari_validate_variable_fn ( void  )

Function pointer to ast_ari_validate_variable().

Definition at line 816 of file ari_model_validators.c.

817{
819}
int ast_ari_validate_variable(struct ast_json *json)
Validator for Variable.

References ast_ari_validate_variable().

◆ ast_ari_validate_void()

int ast_ari_validate_void ( struct ast_json json)

Validator for native Swagger void.

Parameters
jsonJSON object to validate.
Return values
True(non-zero) if valid.
False(zero) if invalid.

Definition at line 91 of file res_ari_model.c.

92{
93 return check_type(json, AST_JSON_NULL);
94}
@ AST_JSON_NULL
Definition json.h:171

References AST_JSON_NULL, and check_type().

Referenced by ast_ari_asterisk_add_log_cb(), ast_ari_asterisk_delete_log_cb(), ast_ari_asterisk_delete_object_cb(), ast_ari_asterisk_load_module_cb(), ast_ari_asterisk_reload_module_cb(), ast_ari_asterisk_rotate_log_cb(), ast_ari_asterisk_set_global_var_cb(), ast_ari_asterisk_unload_module_cb(), ast_ari_bridges_add_channel_cb(), ast_ari_bridges_clear_video_source_cb(), ast_ari_bridges_destroy_cb(), ast_ari_bridges_remove_channel_cb(), ast_ari_bridges_set_video_source_cb(), ast_ari_bridges_start_moh_cb(), ast_ari_bridges_stop_moh_cb(), ast_ari_channels_answer_cb(), ast_ari_channels_continue_in_dialplan_cb(), ast_ari_channels_dial_cb(), ast_ari_channels_hangup_cb(), ast_ari_channels_hold_cb(), ast_ari_channels_move_cb(), ast_ari_channels_mute_cb(), ast_ari_channels_progress_cb(), ast_ari_channels_redirect_cb(), ast_ari_channels_ring_cb(), ast_ari_channels_ring_stop_cb(), ast_ari_channels_send_dtmf_cb(), ast_ari_channels_set_channel_var_cb(), ast_ari_channels_start_moh_cb(), ast_ari_channels_start_silence_cb(), ast_ari_channels_stop_moh_cb(), ast_ari_channels_stop_silence_cb(), ast_ari_channels_transfer_progress_cb(), ast_ari_channels_unhold_cb(), ast_ari_channels_unmute_cb(), ast_ari_device_states_delete_cb(), ast_ari_device_states_update_cb(), ast_ari_endpoints_refer_cb(), ast_ari_endpoints_refer_to_endpoint_cb(), ast_ari_endpoints_send_message_cb(), ast_ari_endpoints_send_message_to_endpoint_cb(), ast_ari_events_claim_channel_cb(), ast_ari_events_user_event_cb(), ast_ari_mailboxes_delete_cb(), ast_ari_mailboxes_update_cb(), ast_ari_playbacks_control_cb(), ast_ari_playbacks_stop_cb(), ast_ari_recordings_cancel_cb(), ast_ari_recordings_delete_stored_cb(), ast_ari_recordings_mute_cb(), ast_ari_recordings_pause_cb(), ast_ari_recordings_stop_cb(), ast_ari_recordings_unmute_cb(), and ast_ari_recordings_unpause_cb().