Asterisk - The Open Source Telephony Project GIT-master-6144b6b
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_variables (struct ast_json *json)
 Validator for Variables.
 
ari_validator ast_ari_validate_variables_fn (void)
 Function pointer to ast_ari_validate_variables().
 
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 2478 of file ari_model_validators.c.

2479{
2480 int res = 1;
2481 struct ast_json_iter *iter;
2482 int has_parameter_name = 0;
2483 int has_parameter_value = 0;
2484
2485 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2486 if (strcmp("parameter_name", ast_json_object_iter_key(iter)) == 0) {
2487 int prop_is_valid;
2488 has_parameter_name = 1;
2489 prop_is_valid = ast_ari_validate_string(
2491 if (!prop_is_valid) {
2492 ast_log(LOG_ERROR, "ARI AdditionalParam field parameter_name failed validation\n");
2493 res = 0;
2494 }
2495 } else
2496 if (strcmp("parameter_value", ast_json_object_iter_key(iter)) == 0) {
2497 int prop_is_valid;
2498 has_parameter_value = 1;
2499 prop_is_valid = ast_ari_validate_string(
2501 if (!prop_is_valid) {
2502 ast_log(LOG_ERROR, "ARI AdditionalParam field parameter_value failed validation\n");
2503 res = 0;
2504 }
2505 } else
2506 {
2508 "ARI AdditionalParam has undocumented field %s\n",
2510 res = 0;
2511 }
2512 }
2513
2514 if (!has_parameter_name) {
2515 ast_log(LOG_ERROR, "ARI AdditionalParam missing required field parameter_name\n");
2516 res = 0;
2517 }
2518
2519 if (!has_parameter_value) {
2520 ast_log(LOG_ERROR, "ARI AdditionalParam missing required field parameter_value\n");
2521 res = 0;
2522 }
2523
2524 return res;
2525}
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 2527 of file ari_model_validators.c.

2528{
2530}
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 8673 of file ari_model_validators.c.

8674{
8675 int res = 1;
8676 struct ast_json_iter *iter;
8677 int has_bridge_ids = 0;
8678 int has_channel_ids = 0;
8679 int has_device_names = 0;
8680 int has_endpoint_ids = 0;
8681 int has_events_allowed = 0;
8682 int has_events_disallowed = 0;
8683 int has_name = 0;
8684
8685 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8686 if (strcmp("bridge_ids", ast_json_object_iter_key(iter)) == 0) {
8687 int prop_is_valid;
8688 has_bridge_ids = 1;
8689 prop_is_valid = ast_ari_validate_list(
8692 if (!prop_is_valid) {
8693 ast_log(LOG_ERROR, "ARI Application field bridge_ids failed validation\n");
8694 res = 0;
8695 }
8696 } else
8697 if (strcmp("channel_ids", ast_json_object_iter_key(iter)) == 0) {
8698 int prop_is_valid;
8699 has_channel_ids = 1;
8700 prop_is_valid = ast_ari_validate_list(
8703 if (!prop_is_valid) {
8704 ast_log(LOG_ERROR, "ARI Application field channel_ids failed validation\n");
8705 res = 0;
8706 }
8707 } else
8708 if (strcmp("device_names", ast_json_object_iter_key(iter)) == 0) {
8709 int prop_is_valid;
8710 has_device_names = 1;
8711 prop_is_valid = ast_ari_validate_list(
8714 if (!prop_is_valid) {
8715 ast_log(LOG_ERROR, "ARI Application field device_names failed validation\n");
8716 res = 0;
8717 }
8718 } else
8719 if (strcmp("endpoint_ids", ast_json_object_iter_key(iter)) == 0) {
8720 int prop_is_valid;
8721 has_endpoint_ids = 1;
8722 prop_is_valid = ast_ari_validate_list(
8725 if (!prop_is_valid) {
8726 ast_log(LOG_ERROR, "ARI Application field endpoint_ids failed validation\n");
8727 res = 0;
8728 }
8729 } else
8730 if (strcmp("events_allowed", ast_json_object_iter_key(iter)) == 0) {
8731 int prop_is_valid;
8732 has_events_allowed = 1;
8733 prop_is_valid = ast_ari_validate_list(
8736 if (!prop_is_valid) {
8737 ast_log(LOG_ERROR, "ARI Application field events_allowed failed validation\n");
8738 res = 0;
8739 }
8740 } else
8741 if (strcmp("events_disallowed", ast_json_object_iter_key(iter)) == 0) {
8742 int prop_is_valid;
8743 has_events_disallowed = 1;
8744 prop_is_valid = ast_ari_validate_list(
8747 if (!prop_is_valid) {
8748 ast_log(LOG_ERROR, "ARI Application field events_disallowed failed validation\n");
8749 res = 0;
8750 }
8751 } else
8752 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
8753 int prop_is_valid;
8754 has_name = 1;
8755 prop_is_valid = ast_ari_validate_string(
8757 if (!prop_is_valid) {
8758 ast_log(LOG_ERROR, "ARI Application field name failed validation\n");
8759 res = 0;
8760 }
8761 } else
8762 {
8764 "ARI Application has undocumented field %s\n",
8766 res = 0;
8767 }
8768 }
8769
8770 if (!has_bridge_ids) {
8771 ast_log(LOG_ERROR, "ARI Application missing required field bridge_ids\n");
8772 res = 0;
8773 }
8774
8775 if (!has_channel_ids) {
8776 ast_log(LOG_ERROR, "ARI Application missing required field channel_ids\n");
8777 res = 0;
8778 }
8779
8780 if (!has_device_names) {
8781 ast_log(LOG_ERROR, "ARI Application missing required field device_names\n");
8782 res = 0;
8783 }
8784
8785 if (!has_endpoint_ids) {
8786 ast_log(LOG_ERROR, "ARI Application missing required field endpoint_ids\n");
8787 res = 0;
8788 }
8789
8790 if (!has_events_allowed) {
8791 ast_log(LOG_ERROR, "ARI Application missing required field events_allowed\n");
8792 res = 0;
8793 }
8794
8795 if (!has_events_disallowed) {
8796 ast_log(LOG_ERROR, "ARI Application missing required field events_disallowed\n");
8797 res = 0;
8798 }
8799
8800 if (!has_name) {
8801 ast_log(LOG_ERROR, "ARI Application missing required field name\n");
8802 res = 0;
8803 }
8804
8805 return res;
8806}
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 8808 of file ari_model_validators.c.

8809{
8811}
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 2532 of file ari_model_validators.c.

2533{
2534 int res = 1;
2535 struct ast_json_iter *iter;
2536 int has_type = 0;
2537 int has_application = 0;
2538 int has_timestamp = 0;
2539 int has_args = 0;
2540 int has_channel = 0;
2541 int has_destination = 0;
2542
2543 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2544 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2545 int prop_is_valid;
2546 prop_is_valid = ast_ari_validate_string(
2548 if (!prop_is_valid) {
2549 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field asterisk_id failed validation\n");
2550 res = 0;
2551 }
2552 } else
2553 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2554 int prop_is_valid;
2555 has_type = 1;
2556 prop_is_valid = ast_ari_validate_string(
2558 if (!prop_is_valid) {
2559 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field type failed validation\n");
2560 res = 0;
2561 }
2562 } else
2563 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2564 int prop_is_valid;
2565 has_application = 1;
2566 prop_is_valid = ast_ari_validate_string(
2568 if (!prop_is_valid) {
2569 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field application failed validation\n");
2570 res = 0;
2571 }
2572 } else
2573 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2574 int prop_is_valid;
2575 has_timestamp = 1;
2576 prop_is_valid = ast_ari_validate_date(
2578 if (!prop_is_valid) {
2579 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field timestamp failed validation\n");
2580 res = 0;
2581 }
2582 } else
2583 if (strcmp("args", ast_json_object_iter_key(iter)) == 0) {
2584 int prop_is_valid;
2585 has_args = 1;
2586 prop_is_valid = ast_ari_validate_list(
2589 if (!prop_is_valid) {
2590 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field args failed validation\n");
2591 res = 0;
2592 }
2593 } else
2594 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
2595 int prop_is_valid;
2596 has_channel = 1;
2597 prop_is_valid = ast_ari_validate_channel(
2599 if (!prop_is_valid) {
2600 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field channel failed validation\n");
2601 res = 0;
2602 }
2603 } else
2604 if (strcmp("destination", ast_json_object_iter_key(iter)) == 0) {
2605 int prop_is_valid;
2606 has_destination = 1;
2607 prop_is_valid = ast_ari_validate_string(
2609 if (!prop_is_valid) {
2610 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed field destination failed validation\n");
2611 res = 0;
2612 }
2613 } else
2614 {
2616 "ARI ApplicationMoveFailed has undocumented field %s\n",
2618 res = 0;
2619 }
2620 }
2621
2622 if (!has_type) {
2623 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field type\n");
2624 res = 0;
2625 }
2626
2627 if (!has_application) {
2628 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field application\n");
2629 res = 0;
2630 }
2631
2632 if (!has_timestamp) {
2633 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field timestamp\n");
2634 res = 0;
2635 }
2636
2637 if (!has_args) {
2638 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field args\n");
2639 res = 0;
2640 }
2641
2642 if (!has_channel) {
2643 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field channel\n");
2644 res = 0;
2645 }
2646
2647 if (!has_destination) {
2648 ast_log(LOG_ERROR, "ARI ApplicationMoveFailed missing required field destination\n");
2649 res = 0;
2650 }
2651
2652 return res;
2653}
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 2655 of file ari_model_validators.c.

2656{
2658}
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 2660 of file ari_model_validators.c.

2661{
2662 int res = 1;
2663 struct ast_json_iter *iter;
2664 int has_type = 0;
2665 int has_application = 0;
2666 int has_timestamp = 0;
2667
2668 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2669 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2670 int prop_is_valid;
2671 prop_is_valid = ast_ari_validate_string(
2673 if (!prop_is_valid) {
2674 ast_log(LOG_ERROR, "ARI ApplicationRegistered field asterisk_id failed validation\n");
2675 res = 0;
2676 }
2677 } else
2678 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2679 int prop_is_valid;
2680 has_type = 1;
2681 prop_is_valid = ast_ari_validate_string(
2683 if (!prop_is_valid) {
2684 ast_log(LOG_ERROR, "ARI ApplicationRegistered field type failed validation\n");
2685 res = 0;
2686 }
2687 } else
2688 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2689 int prop_is_valid;
2690 has_application = 1;
2691 prop_is_valid = ast_ari_validate_string(
2693 if (!prop_is_valid) {
2694 ast_log(LOG_ERROR, "ARI ApplicationRegistered field application failed validation\n");
2695 res = 0;
2696 }
2697 } else
2698 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2699 int prop_is_valid;
2700 has_timestamp = 1;
2701 prop_is_valid = ast_ari_validate_date(
2703 if (!prop_is_valid) {
2704 ast_log(LOG_ERROR, "ARI ApplicationRegistered field timestamp failed validation\n");
2705 res = 0;
2706 }
2707 } else
2708 {
2710 "ARI ApplicationRegistered has undocumented field %s\n",
2712 res = 0;
2713 }
2714 }
2715
2716 if (!has_type) {
2717 ast_log(LOG_ERROR, "ARI ApplicationRegistered missing required field type\n");
2718 res = 0;
2719 }
2720
2721 if (!has_application) {
2722 ast_log(LOG_ERROR, "ARI ApplicationRegistered missing required field application\n");
2723 res = 0;
2724 }
2725
2726 if (!has_timestamp) {
2727 ast_log(LOG_ERROR, "ARI ApplicationRegistered missing required field timestamp\n");
2728 res = 0;
2729 }
2730
2731 return res;
2732}

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 2734 of file ari_model_validators.c.

2735{
2737}
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 2739 of file ari_model_validators.c.

2740{
2741 int res = 1;
2742 struct ast_json_iter *iter;
2743 int has_type = 0;
2744 int has_application = 0;
2745 int has_timestamp = 0;
2746
2747 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2748 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2749 int prop_is_valid;
2750 prop_is_valid = ast_ari_validate_string(
2752 if (!prop_is_valid) {
2753 ast_log(LOG_ERROR, "ARI ApplicationReplaced field asterisk_id failed validation\n");
2754 res = 0;
2755 }
2756 } else
2757 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2758 int prop_is_valid;
2759 has_type = 1;
2760 prop_is_valid = ast_ari_validate_string(
2762 if (!prop_is_valid) {
2763 ast_log(LOG_ERROR, "ARI ApplicationReplaced field type failed validation\n");
2764 res = 0;
2765 }
2766 } else
2767 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2768 int prop_is_valid;
2769 has_application = 1;
2770 prop_is_valid = ast_ari_validate_string(
2772 if (!prop_is_valid) {
2773 ast_log(LOG_ERROR, "ARI ApplicationReplaced field application failed validation\n");
2774 res = 0;
2775 }
2776 } else
2777 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2778 int prop_is_valid;
2779 has_timestamp = 1;
2780 prop_is_valid = ast_ari_validate_date(
2782 if (!prop_is_valid) {
2783 ast_log(LOG_ERROR, "ARI ApplicationReplaced field timestamp failed validation\n");
2784 res = 0;
2785 }
2786 } else
2787 {
2789 "ARI ApplicationReplaced has undocumented field %s\n",
2791 res = 0;
2792 }
2793 }
2794
2795 if (!has_type) {
2796 ast_log(LOG_ERROR, "ARI ApplicationReplaced missing required field type\n");
2797 res = 0;
2798 }
2799
2800 if (!has_application) {
2801 ast_log(LOG_ERROR, "ARI ApplicationReplaced missing required field application\n");
2802 res = 0;
2803 }
2804
2805 if (!has_timestamp) {
2806 ast_log(LOG_ERROR, "ARI ApplicationReplaced missing required field timestamp\n");
2807 res = 0;
2808 }
2809
2810 return res;
2811}

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 2813 of file ari_model_validators.c.

2814{
2816}
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 2818 of file ari_model_validators.c.

2819{
2820 int res = 1;
2821 struct ast_json_iter *iter;
2822 int has_type = 0;
2823 int has_application = 0;
2824 int has_timestamp = 0;
2825
2826 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2827 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2828 int prop_is_valid;
2829 prop_is_valid = ast_ari_validate_string(
2831 if (!prop_is_valid) {
2832 ast_log(LOG_ERROR, "ARI ApplicationUnregistered field asterisk_id failed validation\n");
2833 res = 0;
2834 }
2835 } else
2836 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2837 int prop_is_valid;
2838 has_type = 1;
2839 prop_is_valid = ast_ari_validate_string(
2841 if (!prop_is_valid) {
2842 ast_log(LOG_ERROR, "ARI ApplicationUnregistered field type failed validation\n");
2843 res = 0;
2844 }
2845 } else
2846 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2847 int prop_is_valid;
2848 has_application = 1;
2849 prop_is_valid = ast_ari_validate_string(
2851 if (!prop_is_valid) {
2852 ast_log(LOG_ERROR, "ARI ApplicationUnregistered field application failed validation\n");
2853 res = 0;
2854 }
2855 } else
2856 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2857 int prop_is_valid;
2858 has_timestamp = 1;
2859 prop_is_valid = ast_ari_validate_date(
2861 if (!prop_is_valid) {
2862 ast_log(LOG_ERROR, "ARI ApplicationUnregistered field timestamp failed validation\n");
2863 res = 0;
2864 }
2865 } else
2866 {
2868 "ARI ApplicationUnregistered has undocumented field %s\n",
2870 res = 0;
2871 }
2872 }
2873
2874 if (!has_type) {
2875 ast_log(LOG_ERROR, "ARI ApplicationUnregistered missing required field type\n");
2876 res = 0;
2877 }
2878
2879 if (!has_application) {
2880 ast_log(LOG_ERROR, "ARI ApplicationUnregistered missing required field application\n");
2881 res = 0;
2882 }
2883
2884 if (!has_timestamp) {
2885 ast_log(LOG_ERROR, "ARI ApplicationUnregistered missing required field timestamp\n");
2886 res = 0;
2887 }
2888
2889 return res;
2890}

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 2892 of file ari_model_validators.c.

2893{
2895}
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 1778 of file ari_model_validators.c.

1779{
1780 int res = 1;
1781 struct ast_json_iter *iter;
1782 int has_bridge_class = 0;
1783 int has_bridge_type = 0;
1784 int has_channels = 0;
1785 int has_creationtime = 0;
1786 int has_creator = 0;
1787 int has_id = 0;
1788 int has_name = 0;
1789 int has_technology = 0;
1790
1791 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1792 if (strcmp("bridge_class", ast_json_object_iter_key(iter)) == 0) {
1793 int prop_is_valid;
1794 has_bridge_class = 1;
1795 prop_is_valid = ast_ari_validate_string(
1797 if (!prop_is_valid) {
1798 ast_log(LOG_ERROR, "ARI Bridge field bridge_class failed validation\n");
1799 res = 0;
1800 }
1801 } else
1802 if (strcmp("bridge_type", ast_json_object_iter_key(iter)) == 0) {
1803 int prop_is_valid;
1804 has_bridge_type = 1;
1805 prop_is_valid = ast_ari_validate_string(
1807 if (!prop_is_valid) {
1808 ast_log(LOG_ERROR, "ARI Bridge field bridge_type failed validation\n");
1809 res = 0;
1810 }
1811 } else
1812 if (strcmp("bridgevars", ast_json_object_iter_key(iter)) == 0) {
1813 int prop_is_valid;
1814 prop_is_valid = ast_ari_validate_object(
1816 if (!prop_is_valid) {
1817 ast_log(LOG_ERROR, "ARI Bridge field bridgevars failed validation\n");
1818 res = 0;
1819 }
1820 } else
1821 if (strcmp("channels", ast_json_object_iter_key(iter)) == 0) {
1822 int prop_is_valid;
1823 has_channels = 1;
1824 prop_is_valid = ast_ari_validate_list(
1827 if (!prop_is_valid) {
1828 ast_log(LOG_ERROR, "ARI Bridge field channels failed validation\n");
1829 res = 0;
1830 }
1831 } else
1832 if (strcmp("creationtime", ast_json_object_iter_key(iter)) == 0) {
1833 int prop_is_valid;
1834 has_creationtime = 1;
1835 prop_is_valid = ast_ari_validate_date(
1837 if (!prop_is_valid) {
1838 ast_log(LOG_ERROR, "ARI Bridge field creationtime failed validation\n");
1839 res = 0;
1840 }
1841 } else
1842 if (strcmp("creator", ast_json_object_iter_key(iter)) == 0) {
1843 int prop_is_valid;
1844 has_creator = 1;
1845 prop_is_valid = ast_ari_validate_string(
1847 if (!prop_is_valid) {
1848 ast_log(LOG_ERROR, "ARI Bridge field creator failed validation\n");
1849 res = 0;
1850 }
1851 } else
1852 if (strcmp("id", ast_json_object_iter_key(iter)) == 0) {
1853 int prop_is_valid;
1854 has_id = 1;
1855 prop_is_valid = ast_ari_validate_string(
1857 if (!prop_is_valid) {
1858 ast_log(LOG_ERROR, "ARI Bridge field id failed validation\n");
1859 res = 0;
1860 }
1861 } else
1862 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
1863 int prop_is_valid;
1864 has_name = 1;
1865 prop_is_valid = ast_ari_validate_string(
1867 if (!prop_is_valid) {
1868 ast_log(LOG_ERROR, "ARI Bridge field name failed validation\n");
1869 res = 0;
1870 }
1871 } else
1872 if (strcmp("technology", ast_json_object_iter_key(iter)) == 0) {
1873 int prop_is_valid;
1874 has_technology = 1;
1875 prop_is_valid = ast_ari_validate_string(
1877 if (!prop_is_valid) {
1878 ast_log(LOG_ERROR, "ARI Bridge field technology failed validation\n");
1879 res = 0;
1880 }
1881 } else
1882 if (strcmp("video_mode", ast_json_object_iter_key(iter)) == 0) {
1883 int prop_is_valid;
1884 prop_is_valid = ast_ari_validate_string(
1886 if (!prop_is_valid) {
1887 ast_log(LOG_ERROR, "ARI Bridge field video_mode failed validation\n");
1888 res = 0;
1889 }
1890 } else
1891 if (strcmp("video_source_id", ast_json_object_iter_key(iter)) == 0) {
1892 int prop_is_valid;
1893 prop_is_valid = ast_ari_validate_string(
1895 if (!prop_is_valid) {
1896 ast_log(LOG_ERROR, "ARI Bridge field video_source_id failed validation\n");
1897 res = 0;
1898 }
1899 } else
1900 {
1902 "ARI Bridge has undocumented field %s\n",
1904 res = 0;
1905 }
1906 }
1907
1908 if (!has_bridge_class) {
1909 ast_log(LOG_ERROR, "ARI Bridge missing required field bridge_class\n");
1910 res = 0;
1911 }
1912
1913 if (!has_bridge_type) {
1914 ast_log(LOG_ERROR, "ARI Bridge missing required field bridge_type\n");
1915 res = 0;
1916 }
1917
1918 if (!has_channels) {
1919 ast_log(LOG_ERROR, "ARI Bridge missing required field channels\n");
1920 res = 0;
1921 }
1922
1923 if (!has_creationtime) {
1924 ast_log(LOG_ERROR, "ARI Bridge missing required field creationtime\n");
1925 res = 0;
1926 }
1927
1928 if (!has_creator) {
1929 ast_log(LOG_ERROR, "ARI Bridge missing required field creator\n");
1930 res = 0;
1931 }
1932
1933 if (!has_id) {
1934 ast_log(LOG_ERROR, "ARI Bridge missing required field id\n");
1935 res = 0;
1936 }
1937
1938 if (!has_name) {
1939 ast_log(LOG_ERROR, "ARI Bridge missing required field name\n");
1940 res = 0;
1941 }
1942
1943 if (!has_technology) {
1944 ast_log(LOG_ERROR, "ARI Bridge missing required field technology\n");
1945 res = 0;
1946 }
1947
1948 return res;
1949}

References ast_ari_validate_date(), 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_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 2897 of file ari_model_validators.c.

2898{
2899 int res = 1;
2900 struct ast_json_iter *iter;
2901 int has_type = 0;
2902 int has_application = 0;
2903 int has_timestamp = 0;
2904 int has_destination_type = 0;
2905 int has_is_external = 0;
2906 int has_result = 0;
2907 int has_transferer_first_leg = 0;
2908 int has_transferer_second_leg = 0;
2909
2910 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2911 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
2912 int prop_is_valid;
2913 prop_is_valid = ast_ari_validate_string(
2915 if (!prop_is_valid) {
2916 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field asterisk_id failed validation\n");
2917 res = 0;
2918 }
2919 } else
2920 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
2921 int prop_is_valid;
2922 has_type = 1;
2923 prop_is_valid = ast_ari_validate_string(
2925 if (!prop_is_valid) {
2926 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field type failed validation\n");
2927 res = 0;
2928 }
2929 } else
2930 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
2931 int prop_is_valid;
2932 has_application = 1;
2933 prop_is_valid = ast_ari_validate_string(
2935 if (!prop_is_valid) {
2936 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field application failed validation\n");
2937 res = 0;
2938 }
2939 } else
2940 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
2941 int prop_is_valid;
2942 has_timestamp = 1;
2943 prop_is_valid = ast_ari_validate_date(
2945 if (!prop_is_valid) {
2946 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field timestamp failed validation\n");
2947 res = 0;
2948 }
2949 } else
2950 if (strcmp("destination_application", ast_json_object_iter_key(iter)) == 0) {
2951 int prop_is_valid;
2952 prop_is_valid = ast_ari_validate_string(
2954 if (!prop_is_valid) {
2955 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_application failed validation\n");
2956 res = 0;
2957 }
2958 } else
2959 if (strcmp("destination_bridge", ast_json_object_iter_key(iter)) == 0) {
2960 int prop_is_valid;
2961 prop_is_valid = ast_ari_validate_string(
2963 if (!prop_is_valid) {
2964 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_bridge failed validation\n");
2965 res = 0;
2966 }
2967 } else
2968 if (strcmp("destination_link_first_leg", ast_json_object_iter_key(iter)) == 0) {
2969 int prop_is_valid;
2970 prop_is_valid = ast_ari_validate_channel(
2972 if (!prop_is_valid) {
2973 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_link_first_leg failed validation\n");
2974 res = 0;
2975 }
2976 } else
2977 if (strcmp("destination_link_second_leg", ast_json_object_iter_key(iter)) == 0) {
2978 int prop_is_valid;
2979 prop_is_valid = ast_ari_validate_channel(
2981 if (!prop_is_valid) {
2982 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_link_second_leg failed validation\n");
2983 res = 0;
2984 }
2985 } else
2986 if (strcmp("destination_threeway_bridge", ast_json_object_iter_key(iter)) == 0) {
2987 int prop_is_valid;
2988 prop_is_valid = ast_ari_validate_bridge(
2990 if (!prop_is_valid) {
2991 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_threeway_bridge failed validation\n");
2992 res = 0;
2993 }
2994 } else
2995 if (strcmp("destination_threeway_channel", ast_json_object_iter_key(iter)) == 0) {
2996 int prop_is_valid;
2997 prop_is_valid = ast_ari_validate_channel(
2999 if (!prop_is_valid) {
3000 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_threeway_channel failed validation\n");
3001 res = 0;
3002 }
3003 } else
3004 if (strcmp("destination_type", ast_json_object_iter_key(iter)) == 0) {
3005 int prop_is_valid;
3006 has_destination_type = 1;
3007 prop_is_valid = ast_ari_validate_string(
3009 if (!prop_is_valid) {
3010 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field destination_type failed validation\n");
3011 res = 0;
3012 }
3013 } else
3014 if (strcmp("is_external", ast_json_object_iter_key(iter)) == 0) {
3015 int prop_is_valid;
3016 has_is_external = 1;
3017 prop_is_valid = ast_ari_validate_boolean(
3019 if (!prop_is_valid) {
3020 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field is_external failed validation\n");
3021 res = 0;
3022 }
3023 } else
3024 if (strcmp("replace_channel", ast_json_object_iter_key(iter)) == 0) {
3025 int prop_is_valid;
3026 prop_is_valid = ast_ari_validate_channel(
3028 if (!prop_is_valid) {
3029 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field replace_channel failed validation\n");
3030 res = 0;
3031 }
3032 } else
3033 if (strcmp("result", ast_json_object_iter_key(iter)) == 0) {
3034 int prop_is_valid;
3035 has_result = 1;
3036 prop_is_valid = ast_ari_validate_string(
3038 if (!prop_is_valid) {
3039 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field result failed validation\n");
3040 res = 0;
3041 }
3042 } else
3043 if (strcmp("transfer_target", ast_json_object_iter_key(iter)) == 0) {
3044 int prop_is_valid;
3045 prop_is_valid = ast_ari_validate_channel(
3047 if (!prop_is_valid) {
3048 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transfer_target failed validation\n");
3049 res = 0;
3050 }
3051 } else
3052 if (strcmp("transferee", ast_json_object_iter_key(iter)) == 0) {
3053 int prop_is_valid;
3054 prop_is_valid = ast_ari_validate_channel(
3056 if (!prop_is_valid) {
3057 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferee failed validation\n");
3058 res = 0;
3059 }
3060 } else
3061 if (strcmp("transferer_first_leg", ast_json_object_iter_key(iter)) == 0) {
3062 int prop_is_valid;
3063 has_transferer_first_leg = 1;
3064 prop_is_valid = ast_ari_validate_channel(
3066 if (!prop_is_valid) {
3067 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferer_first_leg failed validation\n");
3068 res = 0;
3069 }
3070 } else
3071 if (strcmp("transferer_first_leg_bridge", ast_json_object_iter_key(iter)) == 0) {
3072 int prop_is_valid;
3073 prop_is_valid = ast_ari_validate_bridge(
3075 if (!prop_is_valid) {
3076 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferer_first_leg_bridge failed validation\n");
3077 res = 0;
3078 }
3079 } else
3080 if (strcmp("transferer_second_leg", ast_json_object_iter_key(iter)) == 0) {
3081 int prop_is_valid;
3082 has_transferer_second_leg = 1;
3083 prop_is_valid = ast_ari_validate_channel(
3085 if (!prop_is_valid) {
3086 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferer_second_leg failed validation\n");
3087 res = 0;
3088 }
3089 } else
3090 if (strcmp("transferer_second_leg_bridge", ast_json_object_iter_key(iter)) == 0) {
3091 int prop_is_valid;
3092 prop_is_valid = ast_ari_validate_bridge(
3094 if (!prop_is_valid) {
3095 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer field transferer_second_leg_bridge failed validation\n");
3096 res = 0;
3097 }
3098 } else
3099 {
3101 "ARI BridgeAttendedTransfer has undocumented field %s\n",
3103 res = 0;
3104 }
3105 }
3106
3107 if (!has_type) {
3108 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field type\n");
3109 res = 0;
3110 }
3111
3112 if (!has_application) {
3113 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field application\n");
3114 res = 0;
3115 }
3116
3117 if (!has_timestamp) {
3118 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field timestamp\n");
3119 res = 0;
3120 }
3121
3122 if (!has_destination_type) {
3123 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field destination_type\n");
3124 res = 0;
3125 }
3126
3127 if (!has_is_external) {
3128 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field is_external\n");
3129 res = 0;
3130 }
3131
3132 if (!has_result) {
3133 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field result\n");
3134 res = 0;
3135 }
3136
3137 if (!has_transferer_first_leg) {
3138 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field transferer_first_leg\n");
3139 res = 0;
3140 }
3141
3142 if (!has_transferer_second_leg) {
3143 ast_log(LOG_ERROR, "ARI BridgeAttendedTransfer missing required field transferer_second_leg\n");
3144 res = 0;
3145 }
3146
3147 return res;
3148}
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 3150 of file ari_model_validators.c.

3151{
3153}
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 3155 of file ari_model_validators.c.

3156{
3157 int res = 1;
3158 struct ast_json_iter *iter;
3159 int has_type = 0;
3160 int has_application = 0;
3161 int has_timestamp = 0;
3162 int has_channel = 0;
3163 int has_context = 0;
3164 int has_exten = 0;
3165 int has_is_external = 0;
3166 int has_result = 0;
3167
3168 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3169 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3170 int prop_is_valid;
3171 prop_is_valid = ast_ari_validate_string(
3173 if (!prop_is_valid) {
3174 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field asterisk_id failed validation\n");
3175 res = 0;
3176 }
3177 } else
3178 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3179 int prop_is_valid;
3180 has_type = 1;
3181 prop_is_valid = ast_ari_validate_string(
3183 if (!prop_is_valid) {
3184 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field type failed validation\n");
3185 res = 0;
3186 }
3187 } else
3188 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3189 int prop_is_valid;
3190 has_application = 1;
3191 prop_is_valid = ast_ari_validate_string(
3193 if (!prop_is_valid) {
3194 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field application failed validation\n");
3195 res = 0;
3196 }
3197 } else
3198 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3199 int prop_is_valid;
3200 has_timestamp = 1;
3201 prop_is_valid = ast_ari_validate_date(
3203 if (!prop_is_valid) {
3204 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field timestamp failed validation\n");
3205 res = 0;
3206 }
3207 } else
3208 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3209 int prop_is_valid;
3210 prop_is_valid = ast_ari_validate_bridge(
3212 if (!prop_is_valid) {
3213 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field bridge failed validation\n");
3214 res = 0;
3215 }
3216 } else
3217 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
3218 int prop_is_valid;
3219 has_channel = 1;
3220 prop_is_valid = ast_ari_validate_channel(
3222 if (!prop_is_valid) {
3223 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field channel failed validation\n");
3224 res = 0;
3225 }
3226 } else
3227 if (strcmp("context", ast_json_object_iter_key(iter)) == 0) {
3228 int prop_is_valid;
3229 has_context = 1;
3230 prop_is_valid = ast_ari_validate_string(
3232 if (!prop_is_valid) {
3233 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field context failed validation\n");
3234 res = 0;
3235 }
3236 } else
3237 if (strcmp("exten", ast_json_object_iter_key(iter)) == 0) {
3238 int prop_is_valid;
3239 has_exten = 1;
3240 prop_is_valid = ast_ari_validate_string(
3242 if (!prop_is_valid) {
3243 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field exten failed validation\n");
3244 res = 0;
3245 }
3246 } else
3247 if (strcmp("is_external", ast_json_object_iter_key(iter)) == 0) {
3248 int prop_is_valid;
3249 has_is_external = 1;
3250 prop_is_valid = ast_ari_validate_boolean(
3252 if (!prop_is_valid) {
3253 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field is_external failed validation\n");
3254 res = 0;
3255 }
3256 } else
3257 if (strcmp("replace_channel", ast_json_object_iter_key(iter)) == 0) {
3258 int prop_is_valid;
3259 prop_is_valid = ast_ari_validate_channel(
3261 if (!prop_is_valid) {
3262 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field replace_channel failed validation\n");
3263 res = 0;
3264 }
3265 } else
3266 if (strcmp("result", ast_json_object_iter_key(iter)) == 0) {
3267 int prop_is_valid;
3268 has_result = 1;
3269 prop_is_valid = ast_ari_validate_string(
3271 if (!prop_is_valid) {
3272 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field result failed validation\n");
3273 res = 0;
3274 }
3275 } else
3276 if (strcmp("transferee", ast_json_object_iter_key(iter)) == 0) {
3277 int prop_is_valid;
3278 prop_is_valid = ast_ari_validate_channel(
3280 if (!prop_is_valid) {
3281 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer field transferee failed validation\n");
3282 res = 0;
3283 }
3284 } else
3285 {
3287 "ARI BridgeBlindTransfer has undocumented field %s\n",
3289 res = 0;
3290 }
3291 }
3292
3293 if (!has_type) {
3294 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field type\n");
3295 res = 0;
3296 }
3297
3298 if (!has_application) {
3299 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field application\n");
3300 res = 0;
3301 }
3302
3303 if (!has_timestamp) {
3304 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field timestamp\n");
3305 res = 0;
3306 }
3307
3308 if (!has_channel) {
3309 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field channel\n");
3310 res = 0;
3311 }
3312
3313 if (!has_context) {
3314 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field context\n");
3315 res = 0;
3316 }
3317
3318 if (!has_exten) {
3319 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field exten\n");
3320 res = 0;
3321 }
3322
3323 if (!has_is_external) {
3324 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field is_external\n");
3325 res = 0;
3326 }
3327
3328 if (!has_result) {
3329 ast_log(LOG_ERROR, "ARI BridgeBlindTransfer missing required field result\n");
3330 res = 0;
3331 }
3332
3333 return res;
3334}

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 3336 of file ari_model_validators.c.

3337{
3339}
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 3341 of file ari_model_validators.c.

3342{
3343 int res = 1;
3344 struct ast_json_iter *iter;
3345 int has_type = 0;
3346 int has_application = 0;
3347 int has_timestamp = 0;
3348 int has_bridge = 0;
3349
3350 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3351 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3352 int prop_is_valid;
3353 prop_is_valid = ast_ari_validate_string(
3355 if (!prop_is_valid) {
3356 ast_log(LOG_ERROR, "ARI BridgeCreated field asterisk_id failed validation\n");
3357 res = 0;
3358 }
3359 } else
3360 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3361 int prop_is_valid;
3362 has_type = 1;
3363 prop_is_valid = ast_ari_validate_string(
3365 if (!prop_is_valid) {
3366 ast_log(LOG_ERROR, "ARI BridgeCreated field type failed validation\n");
3367 res = 0;
3368 }
3369 } else
3370 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3371 int prop_is_valid;
3372 has_application = 1;
3373 prop_is_valid = ast_ari_validate_string(
3375 if (!prop_is_valid) {
3376 ast_log(LOG_ERROR, "ARI BridgeCreated field application failed validation\n");
3377 res = 0;
3378 }
3379 } else
3380 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3381 int prop_is_valid;
3382 has_timestamp = 1;
3383 prop_is_valid = ast_ari_validate_date(
3385 if (!prop_is_valid) {
3386 ast_log(LOG_ERROR, "ARI BridgeCreated field timestamp failed validation\n");
3387 res = 0;
3388 }
3389 } else
3390 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3391 int prop_is_valid;
3392 has_bridge = 1;
3393 prop_is_valid = ast_ari_validate_bridge(
3395 if (!prop_is_valid) {
3396 ast_log(LOG_ERROR, "ARI BridgeCreated field bridge failed validation\n");
3397 res = 0;
3398 }
3399 } else
3400 {
3402 "ARI BridgeCreated has undocumented field %s\n",
3404 res = 0;
3405 }
3406 }
3407
3408 if (!has_type) {
3409 ast_log(LOG_ERROR, "ARI BridgeCreated missing required field type\n");
3410 res = 0;
3411 }
3412
3413 if (!has_application) {
3414 ast_log(LOG_ERROR, "ARI BridgeCreated missing required field application\n");
3415 res = 0;
3416 }
3417
3418 if (!has_timestamp) {
3419 ast_log(LOG_ERROR, "ARI BridgeCreated missing required field timestamp\n");
3420 res = 0;
3421 }
3422
3423 if (!has_bridge) {
3424 ast_log(LOG_ERROR, "ARI BridgeCreated missing required field bridge\n");
3425 res = 0;
3426 }
3427
3428 return res;
3429}

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 3431 of file ari_model_validators.c.

3432{
3434}
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 3436 of file ari_model_validators.c.

3437{
3438 int res = 1;
3439 struct ast_json_iter *iter;
3440 int has_type = 0;
3441 int has_application = 0;
3442 int has_timestamp = 0;
3443 int has_bridge = 0;
3444
3445 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3446 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3447 int prop_is_valid;
3448 prop_is_valid = ast_ari_validate_string(
3450 if (!prop_is_valid) {
3451 ast_log(LOG_ERROR, "ARI BridgeDestroyed field asterisk_id failed validation\n");
3452 res = 0;
3453 }
3454 } else
3455 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3456 int prop_is_valid;
3457 has_type = 1;
3458 prop_is_valid = ast_ari_validate_string(
3460 if (!prop_is_valid) {
3461 ast_log(LOG_ERROR, "ARI BridgeDestroyed field type failed validation\n");
3462 res = 0;
3463 }
3464 } else
3465 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3466 int prop_is_valid;
3467 has_application = 1;
3468 prop_is_valid = ast_ari_validate_string(
3470 if (!prop_is_valid) {
3471 ast_log(LOG_ERROR, "ARI BridgeDestroyed field application failed validation\n");
3472 res = 0;
3473 }
3474 } else
3475 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3476 int prop_is_valid;
3477 has_timestamp = 1;
3478 prop_is_valid = ast_ari_validate_date(
3480 if (!prop_is_valid) {
3481 ast_log(LOG_ERROR, "ARI BridgeDestroyed field timestamp failed validation\n");
3482 res = 0;
3483 }
3484 } else
3485 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3486 int prop_is_valid;
3487 has_bridge = 1;
3488 prop_is_valid = ast_ari_validate_bridge(
3490 if (!prop_is_valid) {
3491 ast_log(LOG_ERROR, "ARI BridgeDestroyed field bridge failed validation\n");
3492 res = 0;
3493 }
3494 } else
3495 {
3497 "ARI BridgeDestroyed has undocumented field %s\n",
3499 res = 0;
3500 }
3501 }
3502
3503 if (!has_type) {
3504 ast_log(LOG_ERROR, "ARI BridgeDestroyed missing required field type\n");
3505 res = 0;
3506 }
3507
3508 if (!has_application) {
3509 ast_log(LOG_ERROR, "ARI BridgeDestroyed missing required field application\n");
3510 res = 0;
3511 }
3512
3513 if (!has_timestamp) {
3514 ast_log(LOG_ERROR, "ARI BridgeDestroyed missing required field timestamp\n");
3515 res = 0;
3516 }
3517
3518 if (!has_bridge) {
3519 ast_log(LOG_ERROR, "ARI BridgeDestroyed missing required field bridge\n");
3520 res = 0;
3521 }
3522
3523 return res;
3524}

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 3526 of file ari_model_validators.c.

3527{
3529}
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 1951 of file ari_model_validators.c.

1952{
1954}

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 3531 of file ari_model_validators.c.

3532{
3533 int res = 1;
3534 struct ast_json_iter *iter;
3535 int has_type = 0;
3536 int has_application = 0;
3537 int has_timestamp = 0;
3538 int has_bridge = 0;
3539 int has_bridge_from = 0;
3540
3541 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3542 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3543 int prop_is_valid;
3544 prop_is_valid = ast_ari_validate_string(
3546 if (!prop_is_valid) {
3547 ast_log(LOG_ERROR, "ARI BridgeMerged field asterisk_id failed validation\n");
3548 res = 0;
3549 }
3550 } else
3551 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3552 int prop_is_valid;
3553 has_type = 1;
3554 prop_is_valid = ast_ari_validate_string(
3556 if (!prop_is_valid) {
3557 ast_log(LOG_ERROR, "ARI BridgeMerged field type failed validation\n");
3558 res = 0;
3559 }
3560 } else
3561 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3562 int prop_is_valid;
3563 has_application = 1;
3564 prop_is_valid = ast_ari_validate_string(
3566 if (!prop_is_valid) {
3567 ast_log(LOG_ERROR, "ARI BridgeMerged field application failed validation\n");
3568 res = 0;
3569 }
3570 } else
3571 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3572 int prop_is_valid;
3573 has_timestamp = 1;
3574 prop_is_valid = ast_ari_validate_date(
3576 if (!prop_is_valid) {
3577 ast_log(LOG_ERROR, "ARI BridgeMerged field timestamp failed validation\n");
3578 res = 0;
3579 }
3580 } else
3581 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3582 int prop_is_valid;
3583 has_bridge = 1;
3584 prop_is_valid = ast_ari_validate_bridge(
3586 if (!prop_is_valid) {
3587 ast_log(LOG_ERROR, "ARI BridgeMerged field bridge failed validation\n");
3588 res = 0;
3589 }
3590 } else
3591 if (strcmp("bridge_from", ast_json_object_iter_key(iter)) == 0) {
3592 int prop_is_valid;
3593 has_bridge_from = 1;
3594 prop_is_valid = ast_ari_validate_bridge(
3596 if (!prop_is_valid) {
3597 ast_log(LOG_ERROR, "ARI BridgeMerged field bridge_from failed validation\n");
3598 res = 0;
3599 }
3600 } else
3601 {
3603 "ARI BridgeMerged has undocumented field %s\n",
3605 res = 0;
3606 }
3607 }
3608
3609 if (!has_type) {
3610 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field type\n");
3611 res = 0;
3612 }
3613
3614 if (!has_application) {
3615 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field application\n");
3616 res = 0;
3617 }
3618
3619 if (!has_timestamp) {
3620 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field timestamp\n");
3621 res = 0;
3622 }
3623
3624 if (!has_bridge) {
3625 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field bridge\n");
3626 res = 0;
3627 }
3628
3629 if (!has_bridge_from) {
3630 ast_log(LOG_ERROR, "ARI BridgeMerged missing required field bridge_from\n");
3631 res = 0;
3632 }
3633
3634 return res;
3635}

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 3637 of file ari_model_validators.c.

3638{
3640}
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 3642 of file ari_model_validators.c.

3643{
3644 int res = 1;
3645 struct ast_json_iter *iter;
3646 int has_type = 0;
3647 int has_application = 0;
3648 int has_timestamp = 0;
3649 int has_bridge = 0;
3650
3651 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3652 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3653 int prop_is_valid;
3654 prop_is_valid = ast_ari_validate_string(
3656 if (!prop_is_valid) {
3657 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field asterisk_id failed validation\n");
3658 res = 0;
3659 }
3660 } else
3661 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3662 int prop_is_valid;
3663 has_type = 1;
3664 prop_is_valid = ast_ari_validate_string(
3666 if (!prop_is_valid) {
3667 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field type failed validation\n");
3668 res = 0;
3669 }
3670 } else
3671 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3672 int prop_is_valid;
3673 has_application = 1;
3674 prop_is_valid = ast_ari_validate_string(
3676 if (!prop_is_valid) {
3677 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field application failed validation\n");
3678 res = 0;
3679 }
3680 } else
3681 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3682 int prop_is_valid;
3683 has_timestamp = 1;
3684 prop_is_valid = ast_ari_validate_date(
3686 if (!prop_is_valid) {
3687 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field timestamp failed validation\n");
3688 res = 0;
3689 }
3690 } else
3691 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
3692 int prop_is_valid;
3693 has_bridge = 1;
3694 prop_is_valid = ast_ari_validate_bridge(
3696 if (!prop_is_valid) {
3697 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field bridge failed validation\n");
3698 res = 0;
3699 }
3700 } else
3701 if (strcmp("old_video_source_id", ast_json_object_iter_key(iter)) == 0) {
3702 int prop_is_valid;
3703 prop_is_valid = ast_ari_validate_string(
3705 if (!prop_is_valid) {
3706 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged field old_video_source_id failed validation\n");
3707 res = 0;
3708 }
3709 } else
3710 {
3712 "ARI BridgeVideoSourceChanged has undocumented field %s\n",
3714 res = 0;
3715 }
3716 }
3717
3718 if (!has_type) {
3719 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged missing required field type\n");
3720 res = 0;
3721 }
3722
3723 if (!has_application) {
3724 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged missing required field application\n");
3725 res = 0;
3726 }
3727
3728 if (!has_timestamp) {
3729 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged missing required field timestamp\n");
3730 res = 0;
3731 }
3732
3733 if (!has_bridge) {
3734 ast_log(LOG_ERROR, "ARI BridgeVideoSourceChanged missing required field bridge\n");
3735 res = 0;
3736 }
3737
3738 return res;
3739}

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 3741 of file ari_model_validators.c.

3742{
3744}
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 3746 of file ari_model_validators.c.

3747{
3748 int res = 1;
3749 struct ast_json_iter *iter;
3750 int has_type = 0;
3751 int has_application = 0;
3752 int has_timestamp = 0;
3753 int has_channel = 0;
3754
3755 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3756 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3757 int prop_is_valid;
3758 prop_is_valid = ast_ari_validate_string(
3760 if (!prop_is_valid) {
3761 ast_log(LOG_ERROR, "ARI CallBroadcast field asterisk_id failed validation\n");
3762 res = 0;
3763 }
3764 } else
3765 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3766 int prop_is_valid;
3767 has_type = 1;
3768 prop_is_valid = ast_ari_validate_string(
3770 if (!prop_is_valid) {
3771 ast_log(LOG_ERROR, "ARI CallBroadcast field type failed validation\n");
3772 res = 0;
3773 }
3774 } else
3775 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3776 int prop_is_valid;
3777 has_application = 1;
3778 prop_is_valid = ast_ari_validate_string(
3780 if (!prop_is_valid) {
3781 ast_log(LOG_ERROR, "ARI CallBroadcast field application failed validation\n");
3782 res = 0;
3783 }
3784 } else
3785 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3786 int prop_is_valid;
3787 has_timestamp = 1;
3788 prop_is_valid = ast_ari_validate_date(
3790 if (!prop_is_valid) {
3791 ast_log(LOG_ERROR, "ARI CallBroadcast field timestamp failed validation\n");
3792 res = 0;
3793 }
3794 } else
3795 if (strcmp("called", ast_json_object_iter_key(iter)) == 0) {
3796 int prop_is_valid;
3797 prop_is_valid = ast_ari_validate_string(
3799 if (!prop_is_valid) {
3800 ast_log(LOG_ERROR, "ARI CallBroadcast field called failed validation\n");
3801 res = 0;
3802 }
3803 } else
3804 if (strcmp("caller", ast_json_object_iter_key(iter)) == 0) {
3805 int prop_is_valid;
3806 prop_is_valid = ast_ari_validate_string(
3808 if (!prop_is_valid) {
3809 ast_log(LOG_ERROR, "ARI CallBroadcast field caller failed validation\n");
3810 res = 0;
3811 }
3812 } else
3813 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
3814 int prop_is_valid;
3815 has_channel = 1;
3816 prop_is_valid = ast_ari_validate_channel(
3818 if (!prop_is_valid) {
3819 ast_log(LOG_ERROR, "ARI CallBroadcast field channel failed validation\n");
3820 res = 0;
3821 }
3822 } else
3823 {
3825 "ARI CallBroadcast has undocumented field %s\n",
3827 res = 0;
3828 }
3829 }
3830
3831 if (!has_type) {
3832 ast_log(LOG_ERROR, "ARI CallBroadcast missing required field type\n");
3833 res = 0;
3834 }
3835
3836 if (!has_application) {
3837 ast_log(LOG_ERROR, "ARI CallBroadcast missing required field application\n");
3838 res = 0;
3839 }
3840
3841 if (!has_timestamp) {
3842 ast_log(LOG_ERROR, "ARI CallBroadcast missing required field timestamp\n");
3843 res = 0;
3844 }
3845
3846 if (!has_channel) {
3847 ast_log(LOG_ERROR, "ARI CallBroadcast missing required field channel\n");
3848 res = 0;
3849 }
3850
3851 return res;
3852}

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 3854 of file ari_model_validators.c.

3855{
3857}
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 3859 of file ari_model_validators.c.

3860{
3861 int res = 1;
3862 struct ast_json_iter *iter;
3863 int has_type = 0;
3864 int has_application = 0;
3865 int has_timestamp = 0;
3866 int has_channel = 0;
3867 int has_winner_app = 0;
3868
3869 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3870 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3871 int prop_is_valid;
3872 prop_is_valid = ast_ari_validate_string(
3874 if (!prop_is_valid) {
3875 ast_log(LOG_ERROR, "ARI CallClaimed field asterisk_id failed validation\n");
3876 res = 0;
3877 }
3878 } else
3879 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3880 int prop_is_valid;
3881 has_type = 1;
3882 prop_is_valid = ast_ari_validate_string(
3884 if (!prop_is_valid) {
3885 ast_log(LOG_ERROR, "ARI CallClaimed field type failed validation\n");
3886 res = 0;
3887 }
3888 } else
3889 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
3890 int prop_is_valid;
3891 has_application = 1;
3892 prop_is_valid = ast_ari_validate_string(
3894 if (!prop_is_valid) {
3895 ast_log(LOG_ERROR, "ARI CallClaimed field application failed validation\n");
3896 res = 0;
3897 }
3898 } else
3899 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
3900 int prop_is_valid;
3901 has_timestamp = 1;
3902 prop_is_valid = ast_ari_validate_date(
3904 if (!prop_is_valid) {
3905 ast_log(LOG_ERROR, "ARI CallClaimed field timestamp failed validation\n");
3906 res = 0;
3907 }
3908 } else
3909 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
3910 int prop_is_valid;
3911 has_channel = 1;
3912 prop_is_valid = ast_ari_validate_channel(
3914 if (!prop_is_valid) {
3915 ast_log(LOG_ERROR, "ARI CallClaimed field channel failed validation\n");
3916 res = 0;
3917 }
3918 } else
3919 if (strcmp("winner_app", ast_json_object_iter_key(iter)) == 0) {
3920 int prop_is_valid;
3921 has_winner_app = 1;
3922 prop_is_valid = ast_ari_validate_string(
3924 if (!prop_is_valid) {
3925 ast_log(LOG_ERROR, "ARI CallClaimed field winner_app failed validation\n");
3926 res = 0;
3927 }
3928 } else
3929 {
3931 "ARI CallClaimed has undocumented field %s\n",
3933 res = 0;
3934 }
3935 }
3936
3937 if (!has_type) {
3938 ast_log(LOG_ERROR, "ARI CallClaimed missing required field type\n");
3939 res = 0;
3940 }
3941
3942 if (!has_application) {
3943 ast_log(LOG_ERROR, "ARI CallClaimed missing required field application\n");
3944 res = 0;
3945 }
3946
3947 if (!has_timestamp) {
3948 ast_log(LOG_ERROR, "ARI CallClaimed missing required field timestamp\n");
3949 res = 0;
3950 }
3951
3952 if (!has_channel) {
3953 ast_log(LOG_ERROR, "ARI CallClaimed missing required field channel\n");
3954 res = 0;
3955 }
3956
3957 if (!has_winner_app) {
3958 ast_log(LOG_ERROR, "ARI CallClaimed missing required field winner_app\n");
3959 res = 0;
3960 }
3961
3962 return res;
3963}

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 3965 of file ari_model_validators.c.

3966{
3968}
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 1018 of file ari_model_validators.c.

1019{
1020 int res = 1;
1021 struct ast_json_iter *iter;
1022 int has_name = 0;
1023 int has_number = 0;
1024
1025 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1026 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
1027 int prop_is_valid;
1028 has_name = 1;
1029 prop_is_valid = ast_ari_validate_string(
1031 if (!prop_is_valid) {
1032 ast_log(LOG_ERROR, "ARI CallerID field name failed validation\n");
1033 res = 0;
1034 }
1035 } else
1036 if (strcmp("number", ast_json_object_iter_key(iter)) == 0) {
1037 int prop_is_valid;
1038 has_number = 1;
1039 prop_is_valid = ast_ari_validate_string(
1041 if (!prop_is_valid) {
1042 ast_log(LOG_ERROR, "ARI CallerID field number failed validation\n");
1043 res = 0;
1044 }
1045 } else
1046 {
1048 "ARI CallerID has undocumented field %s\n",
1050 res = 0;
1051 }
1052 }
1053
1054 if (!has_name) {
1055 ast_log(LOG_ERROR, "ARI CallerID missing required field name\n");
1056 res = 0;
1057 }
1058
1059 if (!has_number) {
1060 ast_log(LOG_ERROR, "ARI CallerID missing required field number\n");
1061 res = 0;
1062 }
1063
1064 return res;
1065}

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 1067 of file ari_model_validators.c.

1068{
1070}
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 1072 of file ari_model_validators.c.

1073{
1074 int res = 1;
1075 struct ast_json_iter *iter;
1076 int has_accountcode = 0;
1077 int has_caller = 0;
1078 int has_connected = 0;
1079 int has_creationtime = 0;
1080 int has_dialplan = 0;
1081 int has_id = 0;
1082 int has_language = 0;
1083 int has_name = 0;
1084 int has_protocol_id = 0;
1085 int has_state = 0;
1086
1087 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1088 if (strcmp("accountcode", ast_json_object_iter_key(iter)) == 0) {
1089 int prop_is_valid;
1090 has_accountcode = 1;
1091 prop_is_valid = ast_ari_validate_string(
1093 if (!prop_is_valid) {
1094 ast_log(LOG_ERROR, "ARI Channel field accountcode failed validation\n");
1095 res = 0;
1096 }
1097 } else
1098 if (strcmp("caller", ast_json_object_iter_key(iter)) == 0) {
1099 int prop_is_valid;
1100 has_caller = 1;
1101 prop_is_valid = ast_ari_validate_caller_id(
1103 if (!prop_is_valid) {
1104 ast_log(LOG_ERROR, "ARI Channel field caller failed validation\n");
1105 res = 0;
1106 }
1107 } else
1108 if (strcmp("caller_rdnis", ast_json_object_iter_key(iter)) == 0) {
1109 int prop_is_valid;
1110 prop_is_valid = ast_ari_validate_string(
1112 if (!prop_is_valid) {
1113 ast_log(LOG_ERROR, "ARI Channel field caller_rdnis failed validation\n");
1114 res = 0;
1115 }
1116 } else
1117 if (strcmp("channelvars", ast_json_object_iter_key(iter)) == 0) {
1118 int prop_is_valid;
1119 prop_is_valid = ast_ari_validate_object(
1121 if (!prop_is_valid) {
1122 ast_log(LOG_ERROR, "ARI Channel field channelvars failed validation\n");
1123 res = 0;
1124 }
1125 } else
1126 if (strcmp("connected", ast_json_object_iter_key(iter)) == 0) {
1127 int prop_is_valid;
1128 has_connected = 1;
1129 prop_is_valid = ast_ari_validate_caller_id(
1131 if (!prop_is_valid) {
1132 ast_log(LOG_ERROR, "ARI Channel field connected failed validation\n");
1133 res = 0;
1134 }
1135 } else
1136 if (strcmp("creationtime", ast_json_object_iter_key(iter)) == 0) {
1137 int prop_is_valid;
1138 has_creationtime = 1;
1139 prop_is_valid = ast_ari_validate_date(
1141 if (!prop_is_valid) {
1142 ast_log(LOG_ERROR, "ARI Channel field creationtime failed validation\n");
1143 res = 0;
1144 }
1145 } else
1146 if (strcmp("dialplan", ast_json_object_iter_key(iter)) == 0) {
1147 int prop_is_valid;
1148 has_dialplan = 1;
1149 prop_is_valid = ast_ari_validate_dialplan_cep(
1151 if (!prop_is_valid) {
1152 ast_log(LOG_ERROR, "ARI Channel field dialplan failed validation\n");
1153 res = 0;
1154 }
1155 } else
1156 if (strcmp("id", ast_json_object_iter_key(iter)) == 0) {
1157 int prop_is_valid;
1158 has_id = 1;
1159 prop_is_valid = ast_ari_validate_string(
1161 if (!prop_is_valid) {
1162 ast_log(LOG_ERROR, "ARI Channel field id failed validation\n");
1163 res = 0;
1164 }
1165 } else
1166 if (strcmp("language", ast_json_object_iter_key(iter)) == 0) {
1167 int prop_is_valid;
1168 has_language = 1;
1169 prop_is_valid = ast_ari_validate_string(
1171 if (!prop_is_valid) {
1172 ast_log(LOG_ERROR, "ARI Channel field language failed validation\n");
1173 res = 0;
1174 }
1175 } else
1176 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
1177 int prop_is_valid;
1178 has_name = 1;
1179 prop_is_valid = ast_ari_validate_string(
1181 if (!prop_is_valid) {
1182 ast_log(LOG_ERROR, "ARI Channel field name failed validation\n");
1183 res = 0;
1184 }
1185 } else
1186 if (strcmp("protocol_id", ast_json_object_iter_key(iter)) == 0) {
1187 int prop_is_valid;
1188 has_protocol_id = 1;
1189 prop_is_valid = ast_ari_validate_string(
1191 if (!prop_is_valid) {
1192 ast_log(LOG_ERROR, "ARI Channel field protocol_id failed validation\n");
1193 res = 0;
1194 }
1195 } else
1196 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
1197 int prop_is_valid;
1198 has_state = 1;
1199 prop_is_valid = ast_ari_validate_string(
1201 if (!prop_is_valid) {
1202 ast_log(LOG_ERROR, "ARI Channel field state failed validation\n");
1203 res = 0;
1204 }
1205 } else
1206 if (strcmp("tenantid", ast_json_object_iter_key(iter)) == 0) {
1207 int prop_is_valid;
1208 prop_is_valid = ast_ari_validate_string(
1210 if (!prop_is_valid) {
1211 ast_log(LOG_ERROR, "ARI Channel field tenantid failed validation\n");
1212 res = 0;
1213 }
1214 } else
1215 {
1217 "ARI Channel has undocumented field %s\n",
1219 res = 0;
1220 }
1221 }
1222
1223 if (!has_accountcode) {
1224 ast_log(LOG_ERROR, "ARI Channel missing required field accountcode\n");
1225 res = 0;
1226 }
1227
1228 if (!has_caller) {
1229 ast_log(LOG_ERROR, "ARI Channel missing required field caller\n");
1230 res = 0;
1231 }
1232
1233 if (!has_connected) {
1234 ast_log(LOG_ERROR, "ARI Channel missing required field connected\n");
1235 res = 0;
1236 }
1237
1238 if (!has_creationtime) {
1239 ast_log(LOG_ERROR, "ARI Channel missing required field creationtime\n");
1240 res = 0;
1241 }
1242
1243 if (!has_dialplan) {
1244 ast_log(LOG_ERROR, "ARI Channel missing required field dialplan\n");
1245 res = 0;
1246 }
1247
1248 if (!has_id) {
1249 ast_log(LOG_ERROR, "ARI Channel missing required field id\n");
1250 res = 0;
1251 }
1252
1253 if (!has_language) {
1254 ast_log(LOG_ERROR, "ARI Channel missing required field language\n");
1255 res = 0;
1256 }
1257
1258 if (!has_name) {
1259 ast_log(LOG_ERROR, "ARI Channel missing required field name\n");
1260 res = 0;
1261 }
1262
1263 if (!has_protocol_id) {
1264 ast_log(LOG_ERROR, "ARI Channel missing required field protocol_id\n");
1265 res = 0;
1266 }
1267
1268 if (!has_state) {
1269 ast_log(LOG_ERROR, "ARI Channel missing required field state\n");
1270 res = 0;
1271 }
1272
1273 return res;
1274}
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 3970 of file ari_model_validators.c.

3971{
3972 int res = 1;
3973 struct ast_json_iter *iter;
3974 int has_type = 0;
3975 int has_application = 0;
3976 int has_timestamp = 0;
3977 int has_caller_presentation = 0;
3978 int has_caller_presentation_txt = 0;
3979 int has_channel = 0;
3980
3981 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
3982 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
3983 int prop_is_valid;
3984 prop_is_valid = ast_ari_validate_string(
3986 if (!prop_is_valid) {
3987 ast_log(LOG_ERROR, "ARI ChannelCallerId field asterisk_id failed validation\n");
3988 res = 0;
3989 }
3990 } else
3991 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
3992 int prop_is_valid;
3993 has_type = 1;
3994 prop_is_valid = ast_ari_validate_string(
3996 if (!prop_is_valid) {
3997 ast_log(LOG_ERROR, "ARI ChannelCallerId field type failed validation\n");
3998 res = 0;
3999 }
4000 } else
4001 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4002 int prop_is_valid;
4003 has_application = 1;
4004 prop_is_valid = ast_ari_validate_string(
4006 if (!prop_is_valid) {
4007 ast_log(LOG_ERROR, "ARI ChannelCallerId field application failed validation\n");
4008 res = 0;
4009 }
4010 } else
4011 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4012 int prop_is_valid;
4013 has_timestamp = 1;
4014 prop_is_valid = ast_ari_validate_date(
4016 if (!prop_is_valid) {
4017 ast_log(LOG_ERROR, "ARI ChannelCallerId field timestamp failed validation\n");
4018 res = 0;
4019 }
4020 } else
4021 if (strcmp("caller_presentation", ast_json_object_iter_key(iter)) == 0) {
4022 int prop_is_valid;
4023 has_caller_presentation = 1;
4024 prop_is_valid = ast_ari_validate_int(
4026 if (!prop_is_valid) {
4027 ast_log(LOG_ERROR, "ARI ChannelCallerId field caller_presentation failed validation\n");
4028 res = 0;
4029 }
4030 } else
4031 if (strcmp("caller_presentation_txt", ast_json_object_iter_key(iter)) == 0) {
4032 int prop_is_valid;
4033 has_caller_presentation_txt = 1;
4034 prop_is_valid = ast_ari_validate_string(
4036 if (!prop_is_valid) {
4037 ast_log(LOG_ERROR, "ARI ChannelCallerId field caller_presentation_txt failed validation\n");
4038 res = 0;
4039 }
4040 } else
4041 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4042 int prop_is_valid;
4043 has_channel = 1;
4044 prop_is_valid = ast_ari_validate_channel(
4046 if (!prop_is_valid) {
4047 ast_log(LOG_ERROR, "ARI ChannelCallerId field channel failed validation\n");
4048 res = 0;
4049 }
4050 } else
4051 {
4053 "ARI ChannelCallerId has undocumented field %s\n",
4055 res = 0;
4056 }
4057 }
4058
4059 if (!has_type) {
4060 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field type\n");
4061 res = 0;
4062 }
4063
4064 if (!has_application) {
4065 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field application\n");
4066 res = 0;
4067 }
4068
4069 if (!has_timestamp) {
4070 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field timestamp\n");
4071 res = 0;
4072 }
4073
4074 if (!has_caller_presentation) {
4075 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field caller_presentation\n");
4076 res = 0;
4077 }
4078
4079 if (!has_caller_presentation_txt) {
4080 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field caller_presentation_txt\n");
4081 res = 0;
4082 }
4083
4084 if (!has_channel) {
4085 ast_log(LOG_ERROR, "ARI ChannelCallerId missing required field channel\n");
4086 res = 0;
4087 }
4088
4089 return res;
4090}
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 4092 of file ari_model_validators.c.

4093{
4095}
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 4097 of file ari_model_validators.c.

4098{
4099 int res = 1;
4100 struct ast_json_iter *iter;
4101 int has_type = 0;
4102 int has_application = 0;
4103 int has_timestamp = 0;
4104 int has_channel = 0;
4105
4106 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4107 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4108 int prop_is_valid;
4109 prop_is_valid = ast_ari_validate_string(
4111 if (!prop_is_valid) {
4112 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field asterisk_id failed validation\n");
4113 res = 0;
4114 }
4115 } else
4116 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4117 int prop_is_valid;
4118 has_type = 1;
4119 prop_is_valid = ast_ari_validate_string(
4121 if (!prop_is_valid) {
4122 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field type failed validation\n");
4123 res = 0;
4124 }
4125 } else
4126 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4127 int prop_is_valid;
4128 has_application = 1;
4129 prop_is_valid = ast_ari_validate_string(
4131 if (!prop_is_valid) {
4132 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field application failed validation\n");
4133 res = 0;
4134 }
4135 } else
4136 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4137 int prop_is_valid;
4138 has_timestamp = 1;
4139 prop_is_valid = ast_ari_validate_date(
4141 if (!prop_is_valid) {
4142 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field timestamp failed validation\n");
4143 res = 0;
4144 }
4145 } else
4146 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4147 int prop_is_valid;
4148 has_channel = 1;
4149 prop_is_valid = ast_ari_validate_channel(
4151 if (!prop_is_valid) {
4152 ast_log(LOG_ERROR, "ARI ChannelConnectedLine field channel failed validation\n");
4153 res = 0;
4154 }
4155 } else
4156 {
4158 "ARI ChannelConnectedLine has undocumented field %s\n",
4160 res = 0;
4161 }
4162 }
4163
4164 if (!has_type) {
4165 ast_log(LOG_ERROR, "ARI ChannelConnectedLine missing required field type\n");
4166 res = 0;
4167 }
4168
4169 if (!has_application) {
4170 ast_log(LOG_ERROR, "ARI ChannelConnectedLine missing required field application\n");
4171 res = 0;
4172 }
4173
4174 if (!has_timestamp) {
4175 ast_log(LOG_ERROR, "ARI ChannelConnectedLine missing required field timestamp\n");
4176 res = 0;
4177 }
4178
4179 if (!has_channel) {
4180 ast_log(LOG_ERROR, "ARI ChannelConnectedLine missing required field channel\n");
4181 res = 0;
4182 }
4183
4184 return res;
4185}

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 4187 of file ari_model_validators.c.

4188{
4190}
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 4192 of file ari_model_validators.c.

4193{
4194 int res = 1;
4195 struct ast_json_iter *iter;
4196 int has_type = 0;
4197 int has_application = 0;
4198 int has_timestamp = 0;
4199 int has_channel = 0;
4200
4201 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4202 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4203 int prop_is_valid;
4204 prop_is_valid = ast_ari_validate_string(
4206 if (!prop_is_valid) {
4207 ast_log(LOG_ERROR, "ARI ChannelCreated field asterisk_id failed validation\n");
4208 res = 0;
4209 }
4210 } else
4211 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4212 int prop_is_valid;
4213 has_type = 1;
4214 prop_is_valid = ast_ari_validate_string(
4216 if (!prop_is_valid) {
4217 ast_log(LOG_ERROR, "ARI ChannelCreated field type failed validation\n");
4218 res = 0;
4219 }
4220 } else
4221 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4222 int prop_is_valid;
4223 has_application = 1;
4224 prop_is_valid = ast_ari_validate_string(
4226 if (!prop_is_valid) {
4227 ast_log(LOG_ERROR, "ARI ChannelCreated field application failed validation\n");
4228 res = 0;
4229 }
4230 } else
4231 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4232 int prop_is_valid;
4233 has_timestamp = 1;
4234 prop_is_valid = ast_ari_validate_date(
4236 if (!prop_is_valid) {
4237 ast_log(LOG_ERROR, "ARI ChannelCreated field timestamp failed validation\n");
4238 res = 0;
4239 }
4240 } else
4241 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4242 int prop_is_valid;
4243 has_channel = 1;
4244 prop_is_valid = ast_ari_validate_channel(
4246 if (!prop_is_valid) {
4247 ast_log(LOG_ERROR, "ARI ChannelCreated field channel failed validation\n");
4248 res = 0;
4249 }
4250 } else
4251 {
4253 "ARI ChannelCreated has undocumented field %s\n",
4255 res = 0;
4256 }
4257 }
4258
4259 if (!has_type) {
4260 ast_log(LOG_ERROR, "ARI ChannelCreated missing required field type\n");
4261 res = 0;
4262 }
4263
4264 if (!has_application) {
4265 ast_log(LOG_ERROR, "ARI ChannelCreated missing required field application\n");
4266 res = 0;
4267 }
4268
4269 if (!has_timestamp) {
4270 ast_log(LOG_ERROR, "ARI ChannelCreated missing required field timestamp\n");
4271 res = 0;
4272 }
4273
4274 if (!has_channel) {
4275 ast_log(LOG_ERROR, "ARI ChannelCreated missing required field channel\n");
4276 res = 0;
4277 }
4278
4279 return res;
4280}

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 4282 of file ari_model_validators.c.

4283{
4285}
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 4287 of file ari_model_validators.c.

4288{
4289 int res = 1;
4290 struct ast_json_iter *iter;
4291 int has_type = 0;
4292 int has_application = 0;
4293 int has_timestamp = 0;
4294 int has_cause = 0;
4295 int has_cause_txt = 0;
4296 int has_channel = 0;
4297
4298 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4299 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4300 int prop_is_valid;
4301 prop_is_valid = ast_ari_validate_string(
4303 if (!prop_is_valid) {
4304 ast_log(LOG_ERROR, "ARI ChannelDestroyed field asterisk_id failed validation\n");
4305 res = 0;
4306 }
4307 } else
4308 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4309 int prop_is_valid;
4310 has_type = 1;
4311 prop_is_valid = ast_ari_validate_string(
4313 if (!prop_is_valid) {
4314 ast_log(LOG_ERROR, "ARI ChannelDestroyed field type failed validation\n");
4315 res = 0;
4316 }
4317 } else
4318 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4319 int prop_is_valid;
4320 has_application = 1;
4321 prop_is_valid = ast_ari_validate_string(
4323 if (!prop_is_valid) {
4324 ast_log(LOG_ERROR, "ARI ChannelDestroyed field application failed validation\n");
4325 res = 0;
4326 }
4327 } else
4328 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4329 int prop_is_valid;
4330 has_timestamp = 1;
4331 prop_is_valid = ast_ari_validate_date(
4333 if (!prop_is_valid) {
4334 ast_log(LOG_ERROR, "ARI ChannelDestroyed field timestamp failed validation\n");
4335 res = 0;
4336 }
4337 } else
4338 if (strcmp("cause", ast_json_object_iter_key(iter)) == 0) {
4339 int prop_is_valid;
4340 has_cause = 1;
4341 prop_is_valid = ast_ari_validate_int(
4343 if (!prop_is_valid) {
4344 ast_log(LOG_ERROR, "ARI ChannelDestroyed field cause failed validation\n");
4345 res = 0;
4346 }
4347 } else
4348 if (strcmp("cause_txt", ast_json_object_iter_key(iter)) == 0) {
4349 int prop_is_valid;
4350 has_cause_txt = 1;
4351 prop_is_valid = ast_ari_validate_string(
4353 if (!prop_is_valid) {
4354 ast_log(LOG_ERROR, "ARI ChannelDestroyed field cause_txt failed validation\n");
4355 res = 0;
4356 }
4357 } else
4358 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4359 int prop_is_valid;
4360 has_channel = 1;
4361 prop_is_valid = ast_ari_validate_channel(
4363 if (!prop_is_valid) {
4364 ast_log(LOG_ERROR, "ARI ChannelDestroyed field channel failed validation\n");
4365 res = 0;
4366 }
4367 } else
4368 if (strcmp("tech_cause", ast_json_object_iter_key(iter)) == 0) {
4369 int prop_is_valid;
4370 prop_is_valid = ast_ari_validate_int(
4372 if (!prop_is_valid) {
4373 ast_log(LOG_ERROR, "ARI ChannelDestroyed field tech_cause failed validation\n");
4374 res = 0;
4375 }
4376 } else
4377 {
4379 "ARI ChannelDestroyed has undocumented field %s\n",
4381 res = 0;
4382 }
4383 }
4384
4385 if (!has_type) {
4386 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field type\n");
4387 res = 0;
4388 }
4389
4390 if (!has_application) {
4391 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field application\n");
4392 res = 0;
4393 }
4394
4395 if (!has_timestamp) {
4396 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field timestamp\n");
4397 res = 0;
4398 }
4399
4400 if (!has_cause) {
4401 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field cause\n");
4402 res = 0;
4403 }
4404
4405 if (!has_cause_txt) {
4406 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field cause_txt\n");
4407 res = 0;
4408 }
4409
4410 if (!has_channel) {
4411 ast_log(LOG_ERROR, "ARI ChannelDestroyed missing required field channel\n");
4412 res = 0;
4413 }
4414
4415 return res;
4416}

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 4418 of file ari_model_validators.c.

4419{
4421}
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 4423 of file ari_model_validators.c.

4424{
4425 int res = 1;
4426 struct ast_json_iter *iter;
4427 int has_type = 0;
4428 int has_application = 0;
4429 int has_timestamp = 0;
4430 int has_channel = 0;
4431 int has_dialplan_app = 0;
4432 int has_dialplan_app_data = 0;
4433
4434 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4435 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4436 int prop_is_valid;
4437 prop_is_valid = ast_ari_validate_string(
4439 if (!prop_is_valid) {
4440 ast_log(LOG_ERROR, "ARI ChannelDialplan field asterisk_id failed validation\n");
4441 res = 0;
4442 }
4443 } else
4444 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4445 int prop_is_valid;
4446 has_type = 1;
4447 prop_is_valid = ast_ari_validate_string(
4449 if (!prop_is_valid) {
4450 ast_log(LOG_ERROR, "ARI ChannelDialplan field type failed validation\n");
4451 res = 0;
4452 }
4453 } else
4454 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4455 int prop_is_valid;
4456 has_application = 1;
4457 prop_is_valid = ast_ari_validate_string(
4459 if (!prop_is_valid) {
4460 ast_log(LOG_ERROR, "ARI ChannelDialplan field application failed validation\n");
4461 res = 0;
4462 }
4463 } else
4464 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4465 int prop_is_valid;
4466 has_timestamp = 1;
4467 prop_is_valid = ast_ari_validate_date(
4469 if (!prop_is_valid) {
4470 ast_log(LOG_ERROR, "ARI ChannelDialplan field timestamp failed validation\n");
4471 res = 0;
4472 }
4473 } else
4474 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4475 int prop_is_valid;
4476 has_channel = 1;
4477 prop_is_valid = ast_ari_validate_channel(
4479 if (!prop_is_valid) {
4480 ast_log(LOG_ERROR, "ARI ChannelDialplan field channel failed validation\n");
4481 res = 0;
4482 }
4483 } else
4484 if (strcmp("dialplan_app", ast_json_object_iter_key(iter)) == 0) {
4485 int prop_is_valid;
4486 has_dialplan_app = 1;
4487 prop_is_valid = ast_ari_validate_string(
4489 if (!prop_is_valid) {
4490 ast_log(LOG_ERROR, "ARI ChannelDialplan field dialplan_app failed validation\n");
4491 res = 0;
4492 }
4493 } else
4494 if (strcmp("dialplan_app_data", ast_json_object_iter_key(iter)) == 0) {
4495 int prop_is_valid;
4496 has_dialplan_app_data = 1;
4497 prop_is_valid = ast_ari_validate_string(
4499 if (!prop_is_valid) {
4500 ast_log(LOG_ERROR, "ARI ChannelDialplan field dialplan_app_data failed validation\n");
4501 res = 0;
4502 }
4503 } else
4504 {
4506 "ARI ChannelDialplan has undocumented field %s\n",
4508 res = 0;
4509 }
4510 }
4511
4512 if (!has_type) {
4513 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field type\n");
4514 res = 0;
4515 }
4516
4517 if (!has_application) {
4518 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field application\n");
4519 res = 0;
4520 }
4521
4522 if (!has_timestamp) {
4523 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field timestamp\n");
4524 res = 0;
4525 }
4526
4527 if (!has_channel) {
4528 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field channel\n");
4529 res = 0;
4530 }
4531
4532 if (!has_dialplan_app) {
4533 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field dialplan_app\n");
4534 res = 0;
4535 }
4536
4537 if (!has_dialplan_app_data) {
4538 ast_log(LOG_ERROR, "ARI ChannelDialplan missing required field dialplan_app_data\n");
4539 res = 0;
4540 }
4541
4542 return res;
4543}

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 4545 of file ari_model_validators.c.

4546{
4548}
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 4550 of file ari_model_validators.c.

4551{
4552 int res = 1;
4553 struct ast_json_iter *iter;
4554 int has_type = 0;
4555 int has_application = 0;
4556 int has_timestamp = 0;
4557 int has_channel = 0;
4558 int has_digit = 0;
4559 int has_duration_ms = 0;
4560
4561 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4562 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4563 int prop_is_valid;
4564 prop_is_valid = ast_ari_validate_string(
4566 if (!prop_is_valid) {
4567 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field asterisk_id failed validation\n");
4568 res = 0;
4569 }
4570 } else
4571 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4572 int prop_is_valid;
4573 has_type = 1;
4574 prop_is_valid = ast_ari_validate_string(
4576 if (!prop_is_valid) {
4577 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field type failed validation\n");
4578 res = 0;
4579 }
4580 } else
4581 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4582 int prop_is_valid;
4583 has_application = 1;
4584 prop_is_valid = ast_ari_validate_string(
4586 if (!prop_is_valid) {
4587 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field application failed validation\n");
4588 res = 0;
4589 }
4590 } else
4591 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4592 int prop_is_valid;
4593 has_timestamp = 1;
4594 prop_is_valid = ast_ari_validate_date(
4596 if (!prop_is_valid) {
4597 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field timestamp failed validation\n");
4598 res = 0;
4599 }
4600 } else
4601 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4602 int prop_is_valid;
4603 has_channel = 1;
4604 prop_is_valid = ast_ari_validate_channel(
4606 if (!prop_is_valid) {
4607 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field channel failed validation\n");
4608 res = 0;
4609 }
4610 } else
4611 if (strcmp("digit", ast_json_object_iter_key(iter)) == 0) {
4612 int prop_is_valid;
4613 has_digit = 1;
4614 prop_is_valid = ast_ari_validate_string(
4616 if (!prop_is_valid) {
4617 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field digit failed validation\n");
4618 res = 0;
4619 }
4620 } else
4621 if (strcmp("duration_ms", ast_json_object_iter_key(iter)) == 0) {
4622 int prop_is_valid;
4623 has_duration_ms = 1;
4624 prop_is_valid = ast_ari_validate_int(
4626 if (!prop_is_valid) {
4627 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived field duration_ms failed validation\n");
4628 res = 0;
4629 }
4630 } else
4631 {
4633 "ARI ChannelDtmfReceived has undocumented field %s\n",
4635 res = 0;
4636 }
4637 }
4638
4639 if (!has_type) {
4640 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field type\n");
4641 res = 0;
4642 }
4643
4644 if (!has_application) {
4645 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field application\n");
4646 res = 0;
4647 }
4648
4649 if (!has_timestamp) {
4650 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field timestamp\n");
4651 res = 0;
4652 }
4653
4654 if (!has_channel) {
4655 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field channel\n");
4656 res = 0;
4657 }
4658
4659 if (!has_digit) {
4660 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field digit\n");
4661 res = 0;
4662 }
4663
4664 if (!has_duration_ms) {
4665 ast_log(LOG_ERROR, "ARI ChannelDtmfReceived missing required field duration_ms\n");
4666 res = 0;
4667 }
4668
4669 return res;
4670}

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 4672 of file ari_model_validators.c.

4673{
4675}
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 4677 of file ari_model_validators.c.

4678{
4679 int res = 1;
4680 struct ast_json_iter *iter;
4681 int has_type = 0;
4682 int has_application = 0;
4683 int has_timestamp = 0;
4684 int has_bridge = 0;
4685
4686 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4687 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4688 int prop_is_valid;
4689 prop_is_valid = ast_ari_validate_string(
4691 if (!prop_is_valid) {
4692 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field asterisk_id failed validation\n");
4693 res = 0;
4694 }
4695 } else
4696 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4697 int prop_is_valid;
4698 has_type = 1;
4699 prop_is_valid = ast_ari_validate_string(
4701 if (!prop_is_valid) {
4702 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field type failed validation\n");
4703 res = 0;
4704 }
4705 } else
4706 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4707 int prop_is_valid;
4708 has_application = 1;
4709 prop_is_valid = ast_ari_validate_string(
4711 if (!prop_is_valid) {
4712 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field application failed validation\n");
4713 res = 0;
4714 }
4715 } else
4716 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4717 int prop_is_valid;
4718 has_timestamp = 1;
4719 prop_is_valid = ast_ari_validate_date(
4721 if (!prop_is_valid) {
4722 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field timestamp failed validation\n");
4723 res = 0;
4724 }
4725 } else
4726 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
4727 int prop_is_valid;
4728 has_bridge = 1;
4729 prop_is_valid = ast_ari_validate_bridge(
4731 if (!prop_is_valid) {
4732 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field bridge failed validation\n");
4733 res = 0;
4734 }
4735 } else
4736 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4737 int prop_is_valid;
4738 prop_is_valid = ast_ari_validate_channel(
4740 if (!prop_is_valid) {
4741 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge field channel failed validation\n");
4742 res = 0;
4743 }
4744 } else
4745 {
4747 "ARI ChannelEnteredBridge has undocumented field %s\n",
4749 res = 0;
4750 }
4751 }
4752
4753 if (!has_type) {
4754 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge missing required field type\n");
4755 res = 0;
4756 }
4757
4758 if (!has_application) {
4759 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge missing required field application\n");
4760 res = 0;
4761 }
4762
4763 if (!has_timestamp) {
4764 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge missing required field timestamp\n");
4765 res = 0;
4766 }
4767
4768 if (!has_bridge) {
4769 ast_log(LOG_ERROR, "ARI ChannelEnteredBridge missing required field bridge\n");
4770 res = 0;
4771 }
4772
4773 return res;
4774}

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 4776 of file ari_model_validators.c.

4777{
4779}
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 1276 of file ari_model_validators.c.

1277{
1279}

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 4781 of file ari_model_validators.c.

4782{
4783 int res = 1;
4784 struct ast_json_iter *iter;
4785 int has_type = 0;
4786 int has_application = 0;
4787 int has_timestamp = 0;
4788 int has_channel = 0;
4789
4790 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4791 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4792 int prop_is_valid;
4793 prop_is_valid = ast_ari_validate_string(
4795 if (!prop_is_valid) {
4796 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field asterisk_id failed validation\n");
4797 res = 0;
4798 }
4799 } else
4800 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4801 int prop_is_valid;
4802 has_type = 1;
4803 prop_is_valid = ast_ari_validate_string(
4805 if (!prop_is_valid) {
4806 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field type failed validation\n");
4807 res = 0;
4808 }
4809 } else
4810 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4811 int prop_is_valid;
4812 has_application = 1;
4813 prop_is_valid = ast_ari_validate_string(
4815 if (!prop_is_valid) {
4816 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field application failed validation\n");
4817 res = 0;
4818 }
4819 } else
4820 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4821 int prop_is_valid;
4822 has_timestamp = 1;
4823 prop_is_valid = ast_ari_validate_date(
4825 if (!prop_is_valid) {
4826 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field timestamp failed validation\n");
4827 res = 0;
4828 }
4829 } else
4830 if (strcmp("cause", ast_json_object_iter_key(iter)) == 0) {
4831 int prop_is_valid;
4832 prop_is_valid = ast_ari_validate_int(
4834 if (!prop_is_valid) {
4835 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field cause failed validation\n");
4836 res = 0;
4837 }
4838 } else
4839 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4840 int prop_is_valid;
4841 has_channel = 1;
4842 prop_is_valid = ast_ari_validate_channel(
4844 if (!prop_is_valid) {
4845 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field channel failed validation\n");
4846 res = 0;
4847 }
4848 } else
4849 if (strcmp("soft", ast_json_object_iter_key(iter)) == 0) {
4850 int prop_is_valid;
4851 prop_is_valid = ast_ari_validate_boolean(
4853 if (!prop_is_valid) {
4854 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field soft failed validation\n");
4855 res = 0;
4856 }
4857 } else
4858 if (strcmp("tech_cause", ast_json_object_iter_key(iter)) == 0) {
4859 int prop_is_valid;
4860 prop_is_valid = ast_ari_validate_int(
4862 if (!prop_is_valid) {
4863 ast_log(LOG_ERROR, "ARI ChannelHangupRequest field tech_cause failed validation\n");
4864 res = 0;
4865 }
4866 } else
4867 {
4869 "ARI ChannelHangupRequest has undocumented field %s\n",
4871 res = 0;
4872 }
4873 }
4874
4875 if (!has_type) {
4876 ast_log(LOG_ERROR, "ARI ChannelHangupRequest missing required field type\n");
4877 res = 0;
4878 }
4879
4880 if (!has_application) {
4881 ast_log(LOG_ERROR, "ARI ChannelHangupRequest missing required field application\n");
4882 res = 0;
4883 }
4884
4885 if (!has_timestamp) {
4886 ast_log(LOG_ERROR, "ARI ChannelHangupRequest missing required field timestamp\n");
4887 res = 0;
4888 }
4889
4890 if (!has_channel) {
4891 ast_log(LOG_ERROR, "ARI ChannelHangupRequest missing required field channel\n");
4892 res = 0;
4893 }
4894
4895 return res;
4896}

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 4898 of file ari_model_validators.c.

4899{
4901}
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 4903 of file ari_model_validators.c.

4904{
4905 int res = 1;
4906 struct ast_json_iter *iter;
4907 int has_type = 0;
4908 int has_application = 0;
4909 int has_timestamp = 0;
4910 int has_channel = 0;
4911
4912 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
4913 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
4914 int prop_is_valid;
4915 prop_is_valid = ast_ari_validate_string(
4917 if (!prop_is_valid) {
4918 ast_log(LOG_ERROR, "ARI ChannelHold field asterisk_id failed validation\n");
4919 res = 0;
4920 }
4921 } else
4922 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
4923 int prop_is_valid;
4924 has_type = 1;
4925 prop_is_valid = ast_ari_validate_string(
4927 if (!prop_is_valid) {
4928 ast_log(LOG_ERROR, "ARI ChannelHold field type failed validation\n");
4929 res = 0;
4930 }
4931 } else
4932 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
4933 int prop_is_valid;
4934 has_application = 1;
4935 prop_is_valid = ast_ari_validate_string(
4937 if (!prop_is_valid) {
4938 ast_log(LOG_ERROR, "ARI ChannelHold field application failed validation\n");
4939 res = 0;
4940 }
4941 } else
4942 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
4943 int prop_is_valid;
4944 has_timestamp = 1;
4945 prop_is_valid = ast_ari_validate_date(
4947 if (!prop_is_valid) {
4948 ast_log(LOG_ERROR, "ARI ChannelHold field timestamp failed validation\n");
4949 res = 0;
4950 }
4951 } else
4952 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
4953 int prop_is_valid;
4954 has_channel = 1;
4955 prop_is_valid = ast_ari_validate_channel(
4957 if (!prop_is_valid) {
4958 ast_log(LOG_ERROR, "ARI ChannelHold field channel failed validation\n");
4959 res = 0;
4960 }
4961 } else
4962 if (strcmp("musicclass", ast_json_object_iter_key(iter)) == 0) {
4963 int prop_is_valid;
4964 prop_is_valid = ast_ari_validate_string(
4966 if (!prop_is_valid) {
4967 ast_log(LOG_ERROR, "ARI ChannelHold field musicclass failed validation\n");
4968 res = 0;
4969 }
4970 } else
4971 {
4973 "ARI ChannelHold has undocumented field %s\n",
4975 res = 0;
4976 }
4977 }
4978
4979 if (!has_type) {
4980 ast_log(LOG_ERROR, "ARI ChannelHold missing required field type\n");
4981 res = 0;
4982 }
4983
4984 if (!has_application) {
4985 ast_log(LOG_ERROR, "ARI ChannelHold missing required field application\n");
4986 res = 0;
4987 }
4988
4989 if (!has_timestamp) {
4990 ast_log(LOG_ERROR, "ARI ChannelHold missing required field timestamp\n");
4991 res = 0;
4992 }
4993
4994 if (!has_channel) {
4995 ast_log(LOG_ERROR, "ARI ChannelHold missing required field channel\n");
4996 res = 0;
4997 }
4998
4999 return res;
5000}

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 5002 of file ari_model_validators.c.

5003{
5005}
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 5007 of file ari_model_validators.c.

5008{
5009 int res = 1;
5010 struct ast_json_iter *iter;
5011 int has_type = 0;
5012 int has_application = 0;
5013 int has_timestamp = 0;
5014 int has_bridge = 0;
5015 int has_channel = 0;
5016
5017 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5018 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5019 int prop_is_valid;
5020 prop_is_valid = ast_ari_validate_string(
5022 if (!prop_is_valid) {
5023 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field asterisk_id failed validation\n");
5024 res = 0;
5025 }
5026 } else
5027 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5028 int prop_is_valid;
5029 has_type = 1;
5030 prop_is_valid = ast_ari_validate_string(
5032 if (!prop_is_valid) {
5033 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field type failed validation\n");
5034 res = 0;
5035 }
5036 } else
5037 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5038 int prop_is_valid;
5039 has_application = 1;
5040 prop_is_valid = ast_ari_validate_string(
5042 if (!prop_is_valid) {
5043 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field application failed validation\n");
5044 res = 0;
5045 }
5046 } else
5047 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5048 int prop_is_valid;
5049 has_timestamp = 1;
5050 prop_is_valid = ast_ari_validate_date(
5052 if (!prop_is_valid) {
5053 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field timestamp failed validation\n");
5054 res = 0;
5055 }
5056 } else
5057 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
5058 int prop_is_valid;
5059 has_bridge = 1;
5060 prop_is_valid = ast_ari_validate_bridge(
5062 if (!prop_is_valid) {
5063 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field bridge failed validation\n");
5064 res = 0;
5065 }
5066 } else
5067 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5068 int prop_is_valid;
5069 has_channel = 1;
5070 prop_is_valid = ast_ari_validate_channel(
5072 if (!prop_is_valid) {
5073 ast_log(LOG_ERROR, "ARI ChannelLeftBridge field channel failed validation\n");
5074 res = 0;
5075 }
5076 } else
5077 {
5079 "ARI ChannelLeftBridge has undocumented field %s\n",
5081 res = 0;
5082 }
5083 }
5084
5085 if (!has_type) {
5086 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field type\n");
5087 res = 0;
5088 }
5089
5090 if (!has_application) {
5091 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field application\n");
5092 res = 0;
5093 }
5094
5095 if (!has_timestamp) {
5096 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field timestamp\n");
5097 res = 0;
5098 }
5099
5100 if (!has_bridge) {
5101 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field bridge\n");
5102 res = 0;
5103 }
5104
5105 if (!has_channel) {
5106 ast_log(LOG_ERROR, "ARI ChannelLeftBridge missing required field channel\n");
5107 res = 0;
5108 }
5109
5110 return res;
5111}

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 5113 of file ari_model_validators.c.

5114{
5116}
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 5118 of file ari_model_validators.c.

5119{
5120 int res = 1;
5121 struct ast_json_iter *iter;
5122 int has_type = 0;
5123 int has_application = 0;
5124 int has_timestamp = 0;
5125 int has_channel = 0;
5126
5127 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5128 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5129 int prop_is_valid;
5130 prop_is_valid = ast_ari_validate_string(
5132 if (!prop_is_valid) {
5133 ast_log(LOG_ERROR, "ARI ChannelStateChange field asterisk_id failed validation\n");
5134 res = 0;
5135 }
5136 } else
5137 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5138 int prop_is_valid;
5139 has_type = 1;
5140 prop_is_valid = ast_ari_validate_string(
5142 if (!prop_is_valid) {
5143 ast_log(LOG_ERROR, "ARI ChannelStateChange field type failed validation\n");
5144 res = 0;
5145 }
5146 } else
5147 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5148 int prop_is_valid;
5149 has_application = 1;
5150 prop_is_valid = ast_ari_validate_string(
5152 if (!prop_is_valid) {
5153 ast_log(LOG_ERROR, "ARI ChannelStateChange field application failed validation\n");
5154 res = 0;
5155 }
5156 } else
5157 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5158 int prop_is_valid;
5159 has_timestamp = 1;
5160 prop_is_valid = ast_ari_validate_date(
5162 if (!prop_is_valid) {
5163 ast_log(LOG_ERROR, "ARI ChannelStateChange field timestamp failed validation\n");
5164 res = 0;
5165 }
5166 } else
5167 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5168 int prop_is_valid;
5169 has_channel = 1;
5170 prop_is_valid = ast_ari_validate_channel(
5172 if (!prop_is_valid) {
5173 ast_log(LOG_ERROR, "ARI ChannelStateChange field channel failed validation\n");
5174 res = 0;
5175 }
5176 } else
5177 {
5179 "ARI ChannelStateChange has undocumented field %s\n",
5181 res = 0;
5182 }
5183 }
5184
5185 if (!has_type) {
5186 ast_log(LOG_ERROR, "ARI ChannelStateChange missing required field type\n");
5187 res = 0;
5188 }
5189
5190 if (!has_application) {
5191 ast_log(LOG_ERROR, "ARI ChannelStateChange missing required field application\n");
5192 res = 0;
5193 }
5194
5195 if (!has_timestamp) {
5196 ast_log(LOG_ERROR, "ARI ChannelStateChange missing required field timestamp\n");
5197 res = 0;
5198 }
5199
5200 if (!has_channel) {
5201 ast_log(LOG_ERROR, "ARI ChannelStateChange missing required field channel\n");
5202 res = 0;
5203 }
5204
5205 return res;
5206}

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 5208 of file ari_model_validators.c.

5209{
5211}
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 5213 of file ari_model_validators.c.

5214{
5215 int res = 1;
5216 struct ast_json_iter *iter;
5217 int has_type = 0;
5218 int has_application = 0;
5219 int has_timestamp = 0;
5220 int has_channel = 0;
5221 int has_duration = 0;
5222
5223 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5224 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5225 int prop_is_valid;
5226 prop_is_valid = ast_ari_validate_string(
5228 if (!prop_is_valid) {
5229 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field asterisk_id failed validation\n");
5230 res = 0;
5231 }
5232 } else
5233 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5234 int prop_is_valid;
5235 has_type = 1;
5236 prop_is_valid = ast_ari_validate_string(
5238 if (!prop_is_valid) {
5239 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field type failed validation\n");
5240 res = 0;
5241 }
5242 } else
5243 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5244 int prop_is_valid;
5245 has_application = 1;
5246 prop_is_valid = ast_ari_validate_string(
5248 if (!prop_is_valid) {
5249 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field application failed validation\n");
5250 res = 0;
5251 }
5252 } else
5253 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5254 int prop_is_valid;
5255 has_timestamp = 1;
5256 prop_is_valid = ast_ari_validate_date(
5258 if (!prop_is_valid) {
5259 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field timestamp failed validation\n");
5260 res = 0;
5261 }
5262 } else
5263 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5264 int prop_is_valid;
5265 has_channel = 1;
5266 prop_is_valid = ast_ari_validate_channel(
5268 if (!prop_is_valid) {
5269 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field channel failed validation\n");
5270 res = 0;
5271 }
5272 } else
5273 if (strcmp("duration", ast_json_object_iter_key(iter)) == 0) {
5274 int prop_is_valid;
5275 has_duration = 1;
5276 prop_is_valid = ast_ari_validate_int(
5278 if (!prop_is_valid) {
5279 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished field duration failed validation\n");
5280 res = 0;
5281 }
5282 } else
5283 {
5285 "ARI ChannelTalkingFinished has undocumented field %s\n",
5287 res = 0;
5288 }
5289 }
5290
5291 if (!has_type) {
5292 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field type\n");
5293 res = 0;
5294 }
5295
5296 if (!has_application) {
5297 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field application\n");
5298 res = 0;
5299 }
5300
5301 if (!has_timestamp) {
5302 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field timestamp\n");
5303 res = 0;
5304 }
5305
5306 if (!has_channel) {
5307 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field channel\n");
5308 res = 0;
5309 }
5310
5311 if (!has_duration) {
5312 ast_log(LOG_ERROR, "ARI ChannelTalkingFinished missing required field duration\n");
5313 res = 0;
5314 }
5315
5316 return res;
5317}

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 5319 of file ari_model_validators.c.

5320{
5322}
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 5324 of file ari_model_validators.c.

5325{
5326 int res = 1;
5327 struct ast_json_iter *iter;
5328 int has_type = 0;
5329 int has_application = 0;
5330 int has_timestamp = 0;
5331 int has_channel = 0;
5332
5333 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5334 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5335 int prop_is_valid;
5336 prop_is_valid = ast_ari_validate_string(
5338 if (!prop_is_valid) {
5339 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field asterisk_id failed validation\n");
5340 res = 0;
5341 }
5342 } else
5343 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5344 int prop_is_valid;
5345 has_type = 1;
5346 prop_is_valid = ast_ari_validate_string(
5348 if (!prop_is_valid) {
5349 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field type failed validation\n");
5350 res = 0;
5351 }
5352 } else
5353 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5354 int prop_is_valid;
5355 has_application = 1;
5356 prop_is_valid = ast_ari_validate_string(
5358 if (!prop_is_valid) {
5359 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field application failed validation\n");
5360 res = 0;
5361 }
5362 } else
5363 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5364 int prop_is_valid;
5365 has_timestamp = 1;
5366 prop_is_valid = ast_ari_validate_date(
5368 if (!prop_is_valid) {
5369 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field timestamp failed validation\n");
5370 res = 0;
5371 }
5372 } else
5373 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5374 int prop_is_valid;
5375 has_channel = 1;
5376 prop_is_valid = ast_ari_validate_channel(
5378 if (!prop_is_valid) {
5379 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted field channel failed validation\n");
5380 res = 0;
5381 }
5382 } else
5383 {
5385 "ARI ChannelTalkingStarted has undocumented field %s\n",
5387 res = 0;
5388 }
5389 }
5390
5391 if (!has_type) {
5392 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted missing required field type\n");
5393 res = 0;
5394 }
5395
5396 if (!has_application) {
5397 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted missing required field application\n");
5398 res = 0;
5399 }
5400
5401 if (!has_timestamp) {
5402 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted missing required field timestamp\n");
5403 res = 0;
5404 }
5405
5406 if (!has_channel) {
5407 ast_log(LOG_ERROR, "ARI ChannelTalkingStarted missing required field channel\n");
5408 res = 0;
5409 }
5410
5411 return res;
5412}

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 5414 of file ari_model_validators.c.

5415{
5417}
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 5419 of file ari_model_validators.c.

5420{
5421 int res = 1;
5422 struct ast_json_iter *iter;
5423 int has_type = 0;
5424 int has_application = 0;
5425 int has_timestamp = 0;
5426 int has_channel = 0;
5427
5428 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5429 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5430 int prop_is_valid;
5431 prop_is_valid = ast_ari_validate_string(
5433 if (!prop_is_valid) {
5434 ast_log(LOG_ERROR, "ARI ChannelToneDetected field asterisk_id failed validation\n");
5435 res = 0;
5436 }
5437 } else
5438 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5439 int prop_is_valid;
5440 has_type = 1;
5441 prop_is_valid = ast_ari_validate_string(
5443 if (!prop_is_valid) {
5444 ast_log(LOG_ERROR, "ARI ChannelToneDetected field type failed validation\n");
5445 res = 0;
5446 }
5447 } else
5448 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5449 int prop_is_valid;
5450 has_application = 1;
5451 prop_is_valid = ast_ari_validate_string(
5453 if (!prop_is_valid) {
5454 ast_log(LOG_ERROR, "ARI ChannelToneDetected field application failed validation\n");
5455 res = 0;
5456 }
5457 } else
5458 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5459 int prop_is_valid;
5460 has_timestamp = 1;
5461 prop_is_valid = ast_ari_validate_date(
5463 if (!prop_is_valid) {
5464 ast_log(LOG_ERROR, "ARI ChannelToneDetected field timestamp failed validation\n");
5465 res = 0;
5466 }
5467 } else
5468 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5469 int prop_is_valid;
5470 has_channel = 1;
5471 prop_is_valid = ast_ari_validate_channel(
5473 if (!prop_is_valid) {
5474 ast_log(LOG_ERROR, "ARI ChannelToneDetected field channel failed validation\n");
5475 res = 0;
5476 }
5477 } else
5478 {
5480 "ARI ChannelToneDetected has undocumented field %s\n",
5482 res = 0;
5483 }
5484 }
5485
5486 if (!has_type) {
5487 ast_log(LOG_ERROR, "ARI ChannelToneDetected missing required field type\n");
5488 res = 0;
5489 }
5490
5491 if (!has_application) {
5492 ast_log(LOG_ERROR, "ARI ChannelToneDetected missing required field application\n");
5493 res = 0;
5494 }
5495
5496 if (!has_timestamp) {
5497 ast_log(LOG_ERROR, "ARI ChannelToneDetected missing required field timestamp\n");
5498 res = 0;
5499 }
5500
5501 if (!has_channel) {
5502 ast_log(LOG_ERROR, "ARI ChannelToneDetected missing required field channel\n");
5503 res = 0;
5504 }
5505
5506 return res;
5507}

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 5509 of file ari_model_validators.c.

5510{
5512}
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 5514 of file ari_model_validators.c.

5515{
5516 int res = 1;
5517 struct ast_json_iter *iter;
5518 int has_type = 0;
5519 int has_application = 0;
5520 int has_timestamp = 0;
5521 int has_refer_to = 0;
5522 int has_referred_by = 0;
5523
5524 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5525 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5526 int prop_is_valid;
5527 prop_is_valid = ast_ari_validate_string(
5529 if (!prop_is_valid) {
5530 ast_log(LOG_ERROR, "ARI ChannelTransfer field asterisk_id failed validation\n");
5531 res = 0;
5532 }
5533 } else
5534 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5535 int prop_is_valid;
5536 has_type = 1;
5537 prop_is_valid = ast_ari_validate_string(
5539 if (!prop_is_valid) {
5540 ast_log(LOG_ERROR, "ARI ChannelTransfer field type failed validation\n");
5541 res = 0;
5542 }
5543 } else
5544 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5545 int prop_is_valid;
5546 has_application = 1;
5547 prop_is_valid = ast_ari_validate_string(
5549 if (!prop_is_valid) {
5550 ast_log(LOG_ERROR, "ARI ChannelTransfer field application failed validation\n");
5551 res = 0;
5552 }
5553 } else
5554 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5555 int prop_is_valid;
5556 has_timestamp = 1;
5557 prop_is_valid = ast_ari_validate_date(
5559 if (!prop_is_valid) {
5560 ast_log(LOG_ERROR, "ARI ChannelTransfer field timestamp failed validation\n");
5561 res = 0;
5562 }
5563 } else
5564 if (strcmp("refer_to", ast_json_object_iter_key(iter)) == 0) {
5565 int prop_is_valid;
5566 has_refer_to = 1;
5567 prop_is_valid = ast_ari_validate_refer_to(
5569 if (!prop_is_valid) {
5570 ast_log(LOG_ERROR, "ARI ChannelTransfer field refer_to failed validation\n");
5571 res = 0;
5572 }
5573 } else
5574 if (strcmp("referred_by", ast_json_object_iter_key(iter)) == 0) {
5575 int prop_is_valid;
5576 has_referred_by = 1;
5577 prop_is_valid = ast_ari_validate_referred_by(
5579 if (!prop_is_valid) {
5580 ast_log(LOG_ERROR, "ARI ChannelTransfer field referred_by failed validation\n");
5581 res = 0;
5582 }
5583 } else
5584 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
5585 int prop_is_valid;
5586 prop_is_valid = ast_ari_validate_string(
5588 if (!prop_is_valid) {
5589 ast_log(LOG_ERROR, "ARI ChannelTransfer field state failed validation\n");
5590 res = 0;
5591 }
5592 } else
5593 {
5595 "ARI ChannelTransfer has undocumented field %s\n",
5597 res = 0;
5598 }
5599 }
5600
5601 if (!has_type) {
5602 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field type\n");
5603 res = 0;
5604 }
5605
5606 if (!has_application) {
5607 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field application\n");
5608 res = 0;
5609 }
5610
5611 if (!has_timestamp) {
5612 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field timestamp\n");
5613 res = 0;
5614 }
5615
5616 if (!has_refer_to) {
5617 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field refer_to\n");
5618 res = 0;
5619 }
5620
5621 if (!has_referred_by) {
5622 ast_log(LOG_ERROR, "ARI ChannelTransfer missing required field referred_by\n");
5623 res = 0;
5624 }
5625
5626 return res;
5627}
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 5629 of file ari_model_validators.c.

5630{
5632}
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 5634 of file ari_model_validators.c.

5635{
5636 int res = 1;
5637 struct ast_json_iter *iter;
5638 int has_type = 0;
5639 int has_application = 0;
5640 int has_timestamp = 0;
5641 int has_channel = 0;
5642
5643 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5644 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5645 int prop_is_valid;
5646 prop_is_valid = ast_ari_validate_string(
5648 if (!prop_is_valid) {
5649 ast_log(LOG_ERROR, "ARI ChannelUnhold field asterisk_id failed validation\n");
5650 res = 0;
5651 }
5652 } else
5653 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5654 int prop_is_valid;
5655 has_type = 1;
5656 prop_is_valid = ast_ari_validate_string(
5658 if (!prop_is_valid) {
5659 ast_log(LOG_ERROR, "ARI ChannelUnhold field type failed validation\n");
5660 res = 0;
5661 }
5662 } else
5663 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5664 int prop_is_valid;
5665 has_application = 1;
5666 prop_is_valid = ast_ari_validate_string(
5668 if (!prop_is_valid) {
5669 ast_log(LOG_ERROR, "ARI ChannelUnhold field application failed validation\n");
5670 res = 0;
5671 }
5672 } else
5673 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5674 int prop_is_valid;
5675 has_timestamp = 1;
5676 prop_is_valid = ast_ari_validate_date(
5678 if (!prop_is_valid) {
5679 ast_log(LOG_ERROR, "ARI ChannelUnhold field timestamp failed validation\n");
5680 res = 0;
5681 }
5682 } else
5683 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5684 int prop_is_valid;
5685 has_channel = 1;
5686 prop_is_valid = ast_ari_validate_channel(
5688 if (!prop_is_valid) {
5689 ast_log(LOG_ERROR, "ARI ChannelUnhold field channel failed validation\n");
5690 res = 0;
5691 }
5692 } else
5693 {
5695 "ARI ChannelUnhold has undocumented field %s\n",
5697 res = 0;
5698 }
5699 }
5700
5701 if (!has_type) {
5702 ast_log(LOG_ERROR, "ARI ChannelUnhold missing required field type\n");
5703 res = 0;
5704 }
5705
5706 if (!has_application) {
5707 ast_log(LOG_ERROR, "ARI ChannelUnhold missing required field application\n");
5708 res = 0;
5709 }
5710
5711 if (!has_timestamp) {
5712 ast_log(LOG_ERROR, "ARI ChannelUnhold missing required field timestamp\n");
5713 res = 0;
5714 }
5715
5716 if (!has_channel) {
5717 ast_log(LOG_ERROR, "ARI ChannelUnhold missing required field channel\n");
5718 res = 0;
5719 }
5720
5721 return res;
5722}

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 5724 of file ari_model_validators.c.

5725{
5727}
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 5729 of file ari_model_validators.c.

5730{
5731 int res = 1;
5732 struct ast_json_iter *iter;
5733 int has_type = 0;
5734 int has_application = 0;
5735 int has_timestamp = 0;
5736 int has_eventname = 0;
5737 int has_userevent = 0;
5738
5739 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5740 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5741 int prop_is_valid;
5742 prop_is_valid = ast_ari_validate_string(
5744 if (!prop_is_valid) {
5745 ast_log(LOG_ERROR, "ARI ChannelUserevent field asterisk_id failed validation\n");
5746 res = 0;
5747 }
5748 } else
5749 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5750 int prop_is_valid;
5751 has_type = 1;
5752 prop_is_valid = ast_ari_validate_string(
5754 if (!prop_is_valid) {
5755 ast_log(LOG_ERROR, "ARI ChannelUserevent field type failed validation\n");
5756 res = 0;
5757 }
5758 } else
5759 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5760 int prop_is_valid;
5761 has_application = 1;
5762 prop_is_valid = ast_ari_validate_string(
5764 if (!prop_is_valid) {
5765 ast_log(LOG_ERROR, "ARI ChannelUserevent field application failed validation\n");
5766 res = 0;
5767 }
5768 } else
5769 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5770 int prop_is_valid;
5771 has_timestamp = 1;
5772 prop_is_valid = ast_ari_validate_date(
5774 if (!prop_is_valid) {
5775 ast_log(LOG_ERROR, "ARI ChannelUserevent field timestamp failed validation\n");
5776 res = 0;
5777 }
5778 } else
5779 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
5780 int prop_is_valid;
5781 prop_is_valid = ast_ari_validate_bridge(
5783 if (!prop_is_valid) {
5784 ast_log(LOG_ERROR, "ARI ChannelUserevent field bridge failed validation\n");
5785 res = 0;
5786 }
5787 } else
5788 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5789 int prop_is_valid;
5790 prop_is_valid = ast_ari_validate_channel(
5792 if (!prop_is_valid) {
5793 ast_log(LOG_ERROR, "ARI ChannelUserevent field channel failed validation\n");
5794 res = 0;
5795 }
5796 } else
5797 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
5798 int prop_is_valid;
5799 prop_is_valid = ast_ari_validate_endpoint(
5801 if (!prop_is_valid) {
5802 ast_log(LOG_ERROR, "ARI ChannelUserevent field endpoint failed validation\n");
5803 res = 0;
5804 }
5805 } else
5806 if (strcmp("eventname", ast_json_object_iter_key(iter)) == 0) {
5807 int prop_is_valid;
5808 has_eventname = 1;
5809 prop_is_valid = ast_ari_validate_string(
5811 if (!prop_is_valid) {
5812 ast_log(LOG_ERROR, "ARI ChannelUserevent field eventname failed validation\n");
5813 res = 0;
5814 }
5815 } else
5816 if (strcmp("userevent", ast_json_object_iter_key(iter)) == 0) {
5817 int prop_is_valid;
5818 has_userevent = 1;
5819 prop_is_valid = ast_ari_validate_object(
5821 if (!prop_is_valid) {
5822 ast_log(LOG_ERROR, "ARI ChannelUserevent field userevent failed validation\n");
5823 res = 0;
5824 }
5825 } else
5826 {
5828 "ARI ChannelUserevent has undocumented field %s\n",
5830 res = 0;
5831 }
5832 }
5833
5834 if (!has_type) {
5835 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field type\n");
5836 res = 0;
5837 }
5838
5839 if (!has_application) {
5840 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field application\n");
5841 res = 0;
5842 }
5843
5844 if (!has_timestamp) {
5845 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field timestamp\n");
5846 res = 0;
5847 }
5848
5849 if (!has_eventname) {
5850 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field eventname\n");
5851 res = 0;
5852 }
5853
5854 if (!has_userevent) {
5855 ast_log(LOG_ERROR, "ARI ChannelUserevent missing required field userevent\n");
5856 res = 0;
5857 }
5858
5859 return res;
5860}
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 5862 of file ari_model_validators.c.

5863{
5865}
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 5867 of file ari_model_validators.c.

5868{
5869 int res = 1;
5870 struct ast_json_iter *iter;
5871 int has_type = 0;
5872 int has_application = 0;
5873 int has_timestamp = 0;
5874 int has_value = 0;
5875 int has_variable = 0;
5876
5877 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5878 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
5879 int prop_is_valid;
5880 prop_is_valid = ast_ari_validate_string(
5882 if (!prop_is_valid) {
5883 ast_log(LOG_ERROR, "ARI ChannelVarset field asterisk_id failed validation\n");
5884 res = 0;
5885 }
5886 } else
5887 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
5888 int prop_is_valid;
5889 has_type = 1;
5890 prop_is_valid = ast_ari_validate_string(
5892 if (!prop_is_valid) {
5893 ast_log(LOG_ERROR, "ARI ChannelVarset field type failed validation\n");
5894 res = 0;
5895 }
5896 } else
5897 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
5898 int prop_is_valid;
5899 has_application = 1;
5900 prop_is_valid = ast_ari_validate_string(
5902 if (!prop_is_valid) {
5903 ast_log(LOG_ERROR, "ARI ChannelVarset field application failed validation\n");
5904 res = 0;
5905 }
5906 } else
5907 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
5908 int prop_is_valid;
5909 has_timestamp = 1;
5910 prop_is_valid = ast_ari_validate_date(
5912 if (!prop_is_valid) {
5913 ast_log(LOG_ERROR, "ARI ChannelVarset field timestamp failed validation\n");
5914 res = 0;
5915 }
5916 } else
5917 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
5918 int prop_is_valid;
5919 prop_is_valid = ast_ari_validate_channel(
5921 if (!prop_is_valid) {
5922 ast_log(LOG_ERROR, "ARI ChannelVarset field channel failed validation\n");
5923 res = 0;
5924 }
5925 } else
5926 if (strcmp("value", ast_json_object_iter_key(iter)) == 0) {
5927 int prop_is_valid;
5928 has_value = 1;
5929 prop_is_valid = ast_ari_validate_string(
5931 if (!prop_is_valid) {
5932 ast_log(LOG_ERROR, "ARI ChannelVarset field value failed validation\n");
5933 res = 0;
5934 }
5935 } else
5936 if (strcmp("variable", ast_json_object_iter_key(iter)) == 0) {
5937 int prop_is_valid;
5938 has_variable = 1;
5939 prop_is_valid = ast_ari_validate_string(
5941 if (!prop_is_valid) {
5942 ast_log(LOG_ERROR, "ARI ChannelVarset field variable failed validation\n");
5943 res = 0;
5944 }
5945 } else
5946 {
5948 "ARI ChannelVarset has undocumented field %s\n",
5950 res = 0;
5951 }
5952 }
5953
5954 if (!has_type) {
5955 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field type\n");
5956 res = 0;
5957 }
5958
5959 if (!has_application) {
5960 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field application\n");
5961 res = 0;
5962 }
5963
5964 if (!has_timestamp) {
5965 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field timestamp\n");
5966 res = 0;
5967 }
5968
5969 if (!has_value) {
5970 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field value\n");
5971 res = 0;
5972 }
5973
5974 if (!has_variable) {
5975 ast_log(LOG_ERROR, "ARI ChannelVarset missing required field variable\n");
5976 res = 0;
5977 }
5978
5979 return res;
5980}

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 5982 of file ari_model_validators.c.

5983{
5985}
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 5987 of file ari_model_validators.c.

5988{
5989 int res = 1;
5990 struct ast_json_iter *iter;
5991 int has_aor = 0;
5992 int has_contact_status = 0;
5993 int has_uri = 0;
5994
5995 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
5996 if (strcmp("aor", ast_json_object_iter_key(iter)) == 0) {
5997 int prop_is_valid;
5998 has_aor = 1;
5999 prop_is_valid = ast_ari_validate_string(
6001 if (!prop_is_valid) {
6002 ast_log(LOG_ERROR, "ARI ContactInfo field aor failed validation\n");
6003 res = 0;
6004 }
6005 } else
6006 if (strcmp("contact_status", ast_json_object_iter_key(iter)) == 0) {
6007 int prop_is_valid;
6008 has_contact_status = 1;
6009 prop_is_valid = ast_ari_validate_string(
6011 if (!prop_is_valid) {
6012 ast_log(LOG_ERROR, "ARI ContactInfo field contact_status failed validation\n");
6013 res = 0;
6014 }
6015 } else
6016 if (strcmp("roundtrip_usec", ast_json_object_iter_key(iter)) == 0) {
6017 int prop_is_valid;
6018 prop_is_valid = ast_ari_validate_string(
6020 if (!prop_is_valid) {
6021 ast_log(LOG_ERROR, "ARI ContactInfo field roundtrip_usec failed validation\n");
6022 res = 0;
6023 }
6024 } else
6025 if (strcmp("uri", ast_json_object_iter_key(iter)) == 0) {
6026 int prop_is_valid;
6027 has_uri = 1;
6028 prop_is_valid = ast_ari_validate_string(
6030 if (!prop_is_valid) {
6031 ast_log(LOG_ERROR, "ARI ContactInfo field uri failed validation\n");
6032 res = 0;
6033 }
6034 } else
6035 {
6037 "ARI ContactInfo has undocumented field %s\n",
6039 res = 0;
6040 }
6041 }
6042
6043 if (!has_aor) {
6044 ast_log(LOG_ERROR, "ARI ContactInfo missing required field aor\n");
6045 res = 0;
6046 }
6047
6048 if (!has_contact_status) {
6049 ast_log(LOG_ERROR, "ARI ContactInfo missing required field contact_status\n");
6050 res = 0;
6051 }
6052
6053 if (!has_uri) {
6054 ast_log(LOG_ERROR, "ARI ContactInfo missing required field uri\n");
6055 res = 0;
6056 }
6057
6058 return res;
6059}

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 6061 of file ari_model_validators.c.

6062{
6064}
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 6066 of file ari_model_validators.c.

6067{
6068 int res = 1;
6069 struct ast_json_iter *iter;
6070 int has_type = 0;
6071 int has_application = 0;
6072 int has_timestamp = 0;
6073 int has_contact_info = 0;
6074 int has_endpoint = 0;
6075
6076 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6077 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6078 int prop_is_valid;
6079 prop_is_valid = ast_ari_validate_string(
6081 if (!prop_is_valid) {
6082 ast_log(LOG_ERROR, "ARI ContactStatusChange field asterisk_id failed validation\n");
6083 res = 0;
6084 }
6085 } else
6086 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6087 int prop_is_valid;
6088 has_type = 1;
6089 prop_is_valid = ast_ari_validate_string(
6091 if (!prop_is_valid) {
6092 ast_log(LOG_ERROR, "ARI ContactStatusChange field type failed validation\n");
6093 res = 0;
6094 }
6095 } else
6096 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6097 int prop_is_valid;
6098 has_application = 1;
6099 prop_is_valid = ast_ari_validate_string(
6101 if (!prop_is_valid) {
6102 ast_log(LOG_ERROR, "ARI ContactStatusChange field application failed validation\n");
6103 res = 0;
6104 }
6105 } else
6106 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6107 int prop_is_valid;
6108 has_timestamp = 1;
6109 prop_is_valid = ast_ari_validate_date(
6111 if (!prop_is_valid) {
6112 ast_log(LOG_ERROR, "ARI ContactStatusChange field timestamp failed validation\n");
6113 res = 0;
6114 }
6115 } else
6116 if (strcmp("contact_info", ast_json_object_iter_key(iter)) == 0) {
6117 int prop_is_valid;
6118 has_contact_info = 1;
6119 prop_is_valid = ast_ari_validate_contact_info(
6121 if (!prop_is_valid) {
6122 ast_log(LOG_ERROR, "ARI ContactStatusChange field contact_info failed validation\n");
6123 res = 0;
6124 }
6125 } else
6126 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
6127 int prop_is_valid;
6128 has_endpoint = 1;
6129 prop_is_valid = ast_ari_validate_endpoint(
6131 if (!prop_is_valid) {
6132 ast_log(LOG_ERROR, "ARI ContactStatusChange field endpoint failed validation\n");
6133 res = 0;
6134 }
6135 } else
6136 {
6138 "ARI ContactStatusChange has undocumented field %s\n",
6140 res = 0;
6141 }
6142 }
6143
6144 if (!has_type) {
6145 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field type\n");
6146 res = 0;
6147 }
6148
6149 if (!has_application) {
6150 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field application\n");
6151 res = 0;
6152 }
6153
6154 if (!has_timestamp) {
6155 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field timestamp\n");
6156 res = 0;
6157 }
6158
6159 if (!has_contact_info) {
6160 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field contact_info\n");
6161 res = 0;
6162 }
6163
6164 if (!has_endpoint) {
6165 ast_log(LOG_ERROR, "ARI ContactStatusChange missing required field endpoint\n");
6166 res = 0;
6167 }
6168
6169 return res;
6170}

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 6172 of file ari_model_validators.c.

6173{
6175}
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 2354 of file ari_model_validators.c.

2355{
2356 int res = 1;
2357 struct ast_json_iter *iter;
2358 int has_name = 0;
2359 int has_state = 0;
2360
2361 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2362 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
2363 int prop_is_valid;
2364 has_name = 1;
2365 prop_is_valid = ast_ari_validate_string(
2367 if (!prop_is_valid) {
2368 ast_log(LOG_ERROR, "ARI DeviceState field name failed validation\n");
2369 res = 0;
2370 }
2371 } else
2372 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
2373 int prop_is_valid;
2374 has_state = 1;
2375 prop_is_valid = ast_ari_validate_string(
2377 if (!prop_is_valid) {
2378 ast_log(LOG_ERROR, "ARI DeviceState field state failed validation\n");
2379 res = 0;
2380 }
2381 } else
2382 {
2384 "ARI DeviceState has undocumented field %s\n",
2386 res = 0;
2387 }
2388 }
2389
2390 if (!has_name) {
2391 ast_log(LOG_ERROR, "ARI DeviceState missing required field name\n");
2392 res = 0;
2393 }
2394
2395 if (!has_state) {
2396 ast_log(LOG_ERROR, "ARI DeviceState missing required field state\n");
2397 res = 0;
2398 }
2399
2400 return res;
2401}

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 6177 of file ari_model_validators.c.

6178{
6179 int res = 1;
6180 struct ast_json_iter *iter;
6181 int has_type = 0;
6182 int has_application = 0;
6183 int has_timestamp = 0;
6184 int has_device_state = 0;
6185
6186 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6187 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6188 int prop_is_valid;
6189 prop_is_valid = ast_ari_validate_string(
6191 if (!prop_is_valid) {
6192 ast_log(LOG_ERROR, "ARI DeviceStateChanged field asterisk_id failed validation\n");
6193 res = 0;
6194 }
6195 } else
6196 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6197 int prop_is_valid;
6198 has_type = 1;
6199 prop_is_valid = ast_ari_validate_string(
6201 if (!prop_is_valid) {
6202 ast_log(LOG_ERROR, "ARI DeviceStateChanged field type failed validation\n");
6203 res = 0;
6204 }
6205 } else
6206 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6207 int prop_is_valid;
6208 has_application = 1;
6209 prop_is_valid = ast_ari_validate_string(
6211 if (!prop_is_valid) {
6212 ast_log(LOG_ERROR, "ARI DeviceStateChanged field application failed validation\n");
6213 res = 0;
6214 }
6215 } else
6216 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6217 int prop_is_valid;
6218 has_timestamp = 1;
6219 prop_is_valid = ast_ari_validate_date(
6221 if (!prop_is_valid) {
6222 ast_log(LOG_ERROR, "ARI DeviceStateChanged field timestamp failed validation\n");
6223 res = 0;
6224 }
6225 } else
6226 if (strcmp("device_state", ast_json_object_iter_key(iter)) == 0) {
6227 int prop_is_valid;
6228 has_device_state = 1;
6229 prop_is_valid = ast_ari_validate_device_state(
6231 if (!prop_is_valid) {
6232 ast_log(LOG_ERROR, "ARI DeviceStateChanged field device_state failed validation\n");
6233 res = 0;
6234 }
6235 } else
6236 {
6238 "ARI DeviceStateChanged has undocumented field %s\n",
6240 res = 0;
6241 }
6242 }
6243
6244 if (!has_type) {
6245 ast_log(LOG_ERROR, "ARI DeviceStateChanged missing required field type\n");
6246 res = 0;
6247 }
6248
6249 if (!has_application) {
6250 ast_log(LOG_ERROR, "ARI DeviceStateChanged missing required field application\n");
6251 res = 0;
6252 }
6253
6254 if (!has_timestamp) {
6255 ast_log(LOG_ERROR, "ARI DeviceStateChanged missing required field timestamp\n");
6256 res = 0;
6257 }
6258
6259 if (!has_device_state) {
6260 ast_log(LOG_ERROR, "ARI DeviceStateChanged missing required field device_state\n");
6261 res = 0;
6262 }
6263
6264 return res;
6265}
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 6267 of file ari_model_validators.c.

6268{
6270}
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 2403 of file ari_model_validators.c.

2404{
2406}

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 6272 of file ari_model_validators.c.

6273{
6274 int res = 1;
6275 struct ast_json_iter *iter;
6276 int has_type = 0;
6277 int has_application = 0;
6278 int has_timestamp = 0;
6279 int has_dialstatus = 0;
6280 int has_peer = 0;
6281
6282 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6283 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6284 int prop_is_valid;
6285 prop_is_valid = ast_ari_validate_string(
6287 if (!prop_is_valid) {
6288 ast_log(LOG_ERROR, "ARI Dial field asterisk_id failed validation\n");
6289 res = 0;
6290 }
6291 } else
6292 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6293 int prop_is_valid;
6294 has_type = 1;
6295 prop_is_valid = ast_ari_validate_string(
6297 if (!prop_is_valid) {
6298 ast_log(LOG_ERROR, "ARI Dial field type failed validation\n");
6299 res = 0;
6300 }
6301 } else
6302 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6303 int prop_is_valid;
6304 has_application = 1;
6305 prop_is_valid = ast_ari_validate_string(
6307 if (!prop_is_valid) {
6308 ast_log(LOG_ERROR, "ARI Dial field application failed validation\n");
6309 res = 0;
6310 }
6311 } else
6312 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6313 int prop_is_valid;
6314 has_timestamp = 1;
6315 prop_is_valid = ast_ari_validate_date(
6317 if (!prop_is_valid) {
6318 ast_log(LOG_ERROR, "ARI Dial field timestamp failed validation\n");
6319 res = 0;
6320 }
6321 } else
6322 if (strcmp("caller", ast_json_object_iter_key(iter)) == 0) {
6323 int prop_is_valid;
6324 prop_is_valid = ast_ari_validate_channel(
6326 if (!prop_is_valid) {
6327 ast_log(LOG_ERROR, "ARI Dial field caller failed validation\n");
6328 res = 0;
6329 }
6330 } else
6331 if (strcmp("dialstatus", ast_json_object_iter_key(iter)) == 0) {
6332 int prop_is_valid;
6333 has_dialstatus = 1;
6334 prop_is_valid = ast_ari_validate_string(
6336 if (!prop_is_valid) {
6337 ast_log(LOG_ERROR, "ARI Dial field dialstatus failed validation\n");
6338 res = 0;
6339 }
6340 } else
6341 if (strcmp("dialstring", ast_json_object_iter_key(iter)) == 0) {
6342 int prop_is_valid;
6343 prop_is_valid = ast_ari_validate_string(
6345 if (!prop_is_valid) {
6346 ast_log(LOG_ERROR, "ARI Dial field dialstring failed validation\n");
6347 res = 0;
6348 }
6349 } else
6350 if (strcmp("forward", ast_json_object_iter_key(iter)) == 0) {
6351 int prop_is_valid;
6352 prop_is_valid = ast_ari_validate_string(
6354 if (!prop_is_valid) {
6355 ast_log(LOG_ERROR, "ARI Dial field forward failed validation\n");
6356 res = 0;
6357 }
6358 } else
6359 if (strcmp("forwarded", ast_json_object_iter_key(iter)) == 0) {
6360 int prop_is_valid;
6361 prop_is_valid = ast_ari_validate_channel(
6363 if (!prop_is_valid) {
6364 ast_log(LOG_ERROR, "ARI Dial field forwarded failed validation\n");
6365 res = 0;
6366 }
6367 } else
6368 if (strcmp("peer", ast_json_object_iter_key(iter)) == 0) {
6369 int prop_is_valid;
6370 has_peer = 1;
6371 prop_is_valid = ast_ari_validate_channel(
6373 if (!prop_is_valid) {
6374 ast_log(LOG_ERROR, "ARI Dial field peer failed validation\n");
6375 res = 0;
6376 }
6377 } else
6378 {
6380 "ARI Dial has undocumented field %s\n",
6382 res = 0;
6383 }
6384 }
6385
6386 if (!has_type) {
6387 ast_log(LOG_ERROR, "ARI Dial missing required field type\n");
6388 res = 0;
6389 }
6390
6391 if (!has_application) {
6392 ast_log(LOG_ERROR, "ARI Dial missing required field application\n");
6393 res = 0;
6394 }
6395
6396 if (!has_timestamp) {
6397 ast_log(LOG_ERROR, "ARI Dial missing required field timestamp\n");
6398 res = 0;
6399 }
6400
6401 if (!has_dialstatus) {
6402 ast_log(LOG_ERROR, "ARI Dial missing required field dialstatus\n");
6403 res = 0;
6404 }
6405
6406 if (!has_peer) {
6407 ast_log(LOG_ERROR, "ARI Dial missing required field peer\n");
6408 res = 0;
6409 }
6410
6411 return res;
6412}

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 6414 of file ari_model_validators.c.

6415{
6416 return ast_ari_validate_dial;
6417}
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 1281 of file ari_model_validators.c.

1282{
1283 int res = 1;
1284 struct ast_json_iter *iter;
1285
1286 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1287 {
1289 "ARI Dialed has undocumented field %s\n",
1291 res = 0;
1292 }
1293 }
1294
1295 return res;
1296}

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 1298 of file ari_model_validators.c.

1299{
1301}
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 1303 of file ari_model_validators.c.

1304{
1305 int res = 1;
1306 struct ast_json_iter *iter;
1307 int has_app_data = 0;
1308 int has_app_name = 0;
1309 int has_context = 0;
1310 int has_exten = 0;
1311 int has_priority = 0;
1312
1313 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1314 if (strcmp("app_data", ast_json_object_iter_key(iter)) == 0) {
1315 int prop_is_valid;
1316 has_app_data = 1;
1317 prop_is_valid = ast_ari_validate_string(
1319 if (!prop_is_valid) {
1320 ast_log(LOG_ERROR, "ARI DialplanCEP field app_data failed validation\n");
1321 res = 0;
1322 }
1323 } else
1324 if (strcmp("app_name", ast_json_object_iter_key(iter)) == 0) {
1325 int prop_is_valid;
1326 has_app_name = 1;
1327 prop_is_valid = ast_ari_validate_string(
1329 if (!prop_is_valid) {
1330 ast_log(LOG_ERROR, "ARI DialplanCEP field app_name failed validation\n");
1331 res = 0;
1332 }
1333 } else
1334 if (strcmp("context", ast_json_object_iter_key(iter)) == 0) {
1335 int prop_is_valid;
1336 has_context = 1;
1337 prop_is_valid = ast_ari_validate_string(
1339 if (!prop_is_valid) {
1340 ast_log(LOG_ERROR, "ARI DialplanCEP field context failed validation\n");
1341 res = 0;
1342 }
1343 } else
1344 if (strcmp("exten", ast_json_object_iter_key(iter)) == 0) {
1345 int prop_is_valid;
1346 has_exten = 1;
1347 prop_is_valid = ast_ari_validate_string(
1349 if (!prop_is_valid) {
1350 ast_log(LOG_ERROR, "ARI DialplanCEP field exten failed validation\n");
1351 res = 0;
1352 }
1353 } else
1354 if (strcmp("priority", ast_json_object_iter_key(iter)) == 0) {
1355 int prop_is_valid;
1356 has_priority = 1;
1357 prop_is_valid = ast_ari_validate_long(
1359 if (!prop_is_valid) {
1360 ast_log(LOG_ERROR, "ARI DialplanCEP field priority failed validation\n");
1361 res = 0;
1362 }
1363 } else
1364 {
1366 "ARI DialplanCEP has undocumented field %s\n",
1368 res = 0;
1369 }
1370 }
1371
1372 if (!has_app_data) {
1373 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field app_data\n");
1374 res = 0;
1375 }
1376
1377 if (!has_app_name) {
1378 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field app_name\n");
1379 res = 0;
1380 }
1381
1382 if (!has_context) {
1383 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field context\n");
1384 res = 0;
1385 }
1386
1387 if (!has_exten) {
1388 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field exten\n");
1389 res = 0;
1390 }
1391
1392 if (!has_priority) {
1393 ast_log(LOG_ERROR, "ARI DialplanCEP missing required field priority\n");
1394 res = 0;
1395 }
1396
1397 return res;
1398}
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 1400 of file ari_model_validators.c.

1401{
1403}

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 859 of file ari_model_validators.c.

860{
861 int res = 1;
862 struct ast_json_iter *iter;
863 int has_channel_ids = 0;
864 int has_resource = 0;
865 int has_technology = 0;
866
867 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
868 if (strcmp("channel_ids", ast_json_object_iter_key(iter)) == 0) {
869 int prop_is_valid;
870 has_channel_ids = 1;
871 prop_is_valid = ast_ari_validate_list(
874 if (!prop_is_valid) {
875 ast_log(LOG_ERROR, "ARI Endpoint field channel_ids failed validation\n");
876 res = 0;
877 }
878 } else
879 if (strcmp("resource", ast_json_object_iter_key(iter)) == 0) {
880 int prop_is_valid;
881 has_resource = 1;
882 prop_is_valid = ast_ari_validate_string(
884 if (!prop_is_valid) {
885 ast_log(LOG_ERROR, "ARI Endpoint field resource failed validation\n");
886 res = 0;
887 }
888 } else
889 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
890 int prop_is_valid;
891 prop_is_valid = ast_ari_validate_string(
893 if (!prop_is_valid) {
894 ast_log(LOG_ERROR, "ARI Endpoint field state failed validation\n");
895 res = 0;
896 }
897 } else
898 if (strcmp("technology", ast_json_object_iter_key(iter)) == 0) {
899 int prop_is_valid;
900 has_technology = 1;
901 prop_is_valid = ast_ari_validate_string(
903 if (!prop_is_valid) {
904 ast_log(LOG_ERROR, "ARI Endpoint field technology failed validation\n");
905 res = 0;
906 }
907 } else
908 {
910 "ARI Endpoint has undocumented field %s\n",
912 res = 0;
913 }
914 }
915
916 if (!has_channel_ids) {
917 ast_log(LOG_ERROR, "ARI Endpoint missing required field channel_ids\n");
918 res = 0;
919 }
920
921 if (!has_resource) {
922 ast_log(LOG_ERROR, "ARI Endpoint missing required field resource\n");
923 res = 0;
924 }
925
926 if (!has_technology) {
927 ast_log(LOG_ERROR, "ARI Endpoint missing required field technology\n");
928 res = 0;
929 }
930
931 return res;
932}

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 934 of file ari_model_validators.c.

935{
937}

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 6419 of file ari_model_validators.c.

6420{
6421 int res = 1;
6422 struct ast_json_iter *iter;
6423 int has_type = 0;
6424 int has_application = 0;
6425 int has_timestamp = 0;
6426 int has_endpoint = 0;
6427
6428 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6429 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6430 int prop_is_valid;
6431 prop_is_valid = ast_ari_validate_string(
6433 if (!prop_is_valid) {
6434 ast_log(LOG_ERROR, "ARI EndpointStateChange field asterisk_id failed validation\n");
6435 res = 0;
6436 }
6437 } else
6438 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6439 int prop_is_valid;
6440 has_type = 1;
6441 prop_is_valid = ast_ari_validate_string(
6443 if (!prop_is_valid) {
6444 ast_log(LOG_ERROR, "ARI EndpointStateChange field type failed validation\n");
6445 res = 0;
6446 }
6447 } else
6448 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6449 int prop_is_valid;
6450 has_application = 1;
6451 prop_is_valid = ast_ari_validate_string(
6453 if (!prop_is_valid) {
6454 ast_log(LOG_ERROR, "ARI EndpointStateChange field application failed validation\n");
6455 res = 0;
6456 }
6457 } else
6458 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6459 int prop_is_valid;
6460 has_timestamp = 1;
6461 prop_is_valid = ast_ari_validate_date(
6463 if (!prop_is_valid) {
6464 ast_log(LOG_ERROR, "ARI EndpointStateChange field timestamp failed validation\n");
6465 res = 0;
6466 }
6467 } else
6468 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
6469 int prop_is_valid;
6470 has_endpoint = 1;
6471 prop_is_valid = ast_ari_validate_endpoint(
6473 if (!prop_is_valid) {
6474 ast_log(LOG_ERROR, "ARI EndpointStateChange field endpoint failed validation\n");
6475 res = 0;
6476 }
6477 } else
6478 {
6480 "ARI EndpointStateChange has undocumented field %s\n",
6482 res = 0;
6483 }
6484 }
6485
6486 if (!has_type) {
6487 ast_log(LOG_ERROR, "ARI EndpointStateChange missing required field type\n");
6488 res = 0;
6489 }
6490
6491 if (!has_application) {
6492 ast_log(LOG_ERROR, "ARI EndpointStateChange missing required field application\n");
6493 res = 0;
6494 }
6495
6496 if (!has_timestamp) {
6497 ast_log(LOG_ERROR, "ARI EndpointStateChange missing required field timestamp\n");
6498 res = 0;
6499 }
6500
6501 if (!has_endpoint) {
6502 ast_log(LOG_ERROR, "ARI EndpointStateChange missing required field endpoint\n");
6503 res = 0;
6504 }
6505
6506 return res;
6507}

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 6509 of file ari_model_validators.c.

6510{
6512}
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 6514 of file ari_model_validators.c.

6515{
6516 int res = 1;
6517 struct ast_json_iter *iter;
6518 int has_type = 0;
6519 int has_application = 0;
6520 int has_timestamp = 0;
6521 const char *discriminator;
6522
6523 discriminator = ast_json_string_get(ast_json_object_get(json, "type"));
6524 if (!discriminator) {
6525 ast_log(LOG_ERROR, "ARI Event missing required field type\n");
6526 return 0;
6527 }
6528
6529 if (strcmp("Event", discriminator) == 0) {
6530 /* Self type; fall through */
6531 } else
6532 if (strcmp("ApplicationMoveFailed", discriminator) == 0) {
6534 } else
6535 if (strcmp("ApplicationRegistered", discriminator) == 0) {
6537 } else
6538 if (strcmp("ApplicationReplaced", discriminator) == 0) {
6540 } else
6541 if (strcmp("ApplicationUnregistered", discriminator) == 0) {
6543 } else
6544 if (strcmp("BridgeAttendedTransfer", discriminator) == 0) {
6546 } else
6547 if (strcmp("BridgeBlindTransfer", discriminator) == 0) {
6549 } else
6550 if (strcmp("BridgeCreated", discriminator) == 0) {
6552 } else
6553 if (strcmp("BridgeDestroyed", discriminator) == 0) {
6555 } else
6556 if (strcmp("BridgeMerged", discriminator) == 0) {
6557 return ast_ari_validate_bridge_merged(json);
6558 } else
6559 if (strcmp("BridgeVideoSourceChanged", discriminator) == 0) {
6561 } else
6562 if (strcmp("CallBroadcast", discriminator) == 0) {
6564 } else
6565 if (strcmp("CallClaimed", discriminator) == 0) {
6566 return ast_ari_validate_call_claimed(json);
6567 } else
6568 if (strcmp("ChannelCallerId", discriminator) == 0) {
6570 } else
6571 if (strcmp("ChannelConnectedLine", discriminator) == 0) {
6573 } else
6574 if (strcmp("ChannelCreated", discriminator) == 0) {
6576 } else
6577 if (strcmp("ChannelDestroyed", discriminator) == 0) {
6579 } else
6580 if (strcmp("ChannelDialplan", discriminator) == 0) {
6582 } else
6583 if (strcmp("ChannelDtmfReceived", discriminator) == 0) {
6585 } else
6586 if (strcmp("ChannelEnteredBridge", discriminator) == 0) {
6588 } else
6589 if (strcmp("ChannelHangupRequest", discriminator) == 0) {
6591 } else
6592 if (strcmp("ChannelHold", discriminator) == 0) {
6593 return ast_ari_validate_channel_hold(json);
6594 } else
6595 if (strcmp("ChannelLeftBridge", discriminator) == 0) {
6597 } else
6598 if (strcmp("ChannelStateChange", discriminator) == 0) {
6600 } else
6601 if (strcmp("ChannelTalkingFinished", discriminator) == 0) {
6603 } else
6604 if (strcmp("ChannelTalkingStarted", discriminator) == 0) {
6606 } else
6607 if (strcmp("ChannelToneDetected", discriminator) == 0) {
6609 } else
6610 if (strcmp("ChannelTransfer", discriminator) == 0) {
6612 } else
6613 if (strcmp("ChannelUnhold", discriminator) == 0) {
6615 } else
6616 if (strcmp("ChannelUserevent", discriminator) == 0) {
6618 } else
6619 if (strcmp("ChannelVarset", discriminator) == 0) {
6621 } else
6622 if (strcmp("ContactStatusChange", discriminator) == 0) {
6624 } else
6625 if (strcmp("DeviceStateChanged", discriminator) == 0) {
6627 } else
6628 if (strcmp("Dial", discriminator) == 0) {
6629 return ast_ari_validate_dial(json);
6630 } else
6631 if (strcmp("EndpointStateChange", discriminator) == 0) {
6633 } else
6634 if (strcmp("PeerStatusChange", discriminator) == 0) {
6636 } else
6637 if (strcmp("PlaybackContinuing", discriminator) == 0) {
6639 } else
6640 if (strcmp("PlaybackFinished", discriminator) == 0) {
6642 } else
6643 if (strcmp("PlaybackStarted", discriminator) == 0) {
6645 } else
6646 if (strcmp("RESTResponse", discriminator) == 0) {
6647 return ast_ari_validate_restresponse(json);
6648 } else
6649 if (strcmp("RecordingFailed", discriminator) == 0) {
6651 } else
6652 if (strcmp("RecordingFinished", discriminator) == 0) {
6654 } else
6655 if (strcmp("RecordingStarted", discriminator) == 0) {
6657 } else
6658 if (strcmp("StasisEnd", discriminator) == 0) {
6659 return ast_ari_validate_stasis_end(json);
6660 } else
6661 if (strcmp("StasisStart", discriminator) == 0) {
6662 return ast_ari_validate_stasis_start(json);
6663 } else
6664 if (strcmp("TextMessageReceived", discriminator) == 0) {
6666 } else
6667 {
6668 ast_log(LOG_ERROR, "ARI Event has undocumented subtype %s\n",
6669 discriminator);
6670 res = 0;
6671 }
6672
6673 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6674 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6675 int prop_is_valid;
6676 prop_is_valid = ast_ari_validate_string(
6678 if (!prop_is_valid) {
6679 ast_log(LOG_ERROR, "ARI Event field asterisk_id failed validation\n");
6680 res = 0;
6681 }
6682 } else
6683 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6684 int prop_is_valid;
6685 has_type = 1;
6686 prop_is_valid = ast_ari_validate_string(
6688 if (!prop_is_valid) {
6689 ast_log(LOG_ERROR, "ARI Event field type failed validation\n");
6690 res = 0;
6691 }
6692 } else
6693 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
6694 int prop_is_valid;
6695 has_application = 1;
6696 prop_is_valid = ast_ari_validate_string(
6698 if (!prop_is_valid) {
6699 ast_log(LOG_ERROR, "ARI Event field application failed validation\n");
6700 res = 0;
6701 }
6702 } else
6703 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
6704 int prop_is_valid;
6705 has_timestamp = 1;
6706 prop_is_valid = ast_ari_validate_date(
6708 if (!prop_is_valid) {
6709 ast_log(LOG_ERROR, "ARI Event field timestamp failed validation\n");
6710 res = 0;
6711 }
6712 } else
6713 {
6715 "ARI Event has undocumented field %s\n",
6717 res = 0;
6718 }
6719 }
6720
6721 if (!has_type) {
6722 ast_log(LOG_ERROR, "ARI Event missing required field type\n");
6723 res = 0;
6724 }
6725
6726 if (!has_application) {
6727 ast_log(LOG_ERROR, "ARI Event missing required field application\n");
6728 res = 0;
6729 }
6730
6731 if (!has_timestamp) {
6732 ast_log(LOG_ERROR, "ARI Event missing required field timestamp\n");
6733 res = 0;
6734 }
6735
6736 return res;
6737}
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 6739 of file ari_model_validators.c.

6740{
6742}
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 2132 of file ari_model_validators.c.

2133{
2134 int res = 1;
2135 struct ast_json_iter *iter;
2136 int has_format = 0;
2137 int has_language = 0;
2138
2139 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2140 if (strcmp("format", ast_json_object_iter_key(iter)) == 0) {
2141 int prop_is_valid;
2142 has_format = 1;
2143 prop_is_valid = ast_ari_validate_string(
2145 if (!prop_is_valid) {
2146 ast_log(LOG_ERROR, "ARI FormatLangPair field format failed validation\n");
2147 res = 0;
2148 }
2149 } else
2150 if (strcmp("language", ast_json_object_iter_key(iter)) == 0) {
2151 int prop_is_valid;
2152 has_language = 1;
2153 prop_is_valid = ast_ari_validate_string(
2155 if (!prop_is_valid) {
2156 ast_log(LOG_ERROR, "ARI FormatLangPair field language failed validation\n");
2157 res = 0;
2158 }
2159 } else
2160 {
2162 "ARI FormatLangPair has undocumented field %s\n",
2164 res = 0;
2165 }
2166 }
2167
2168 if (!has_format) {
2169 ast_log(LOG_ERROR, "ARI FormatLangPair missing required field format\n");
2170 res = 0;
2171 }
2172
2173 if (!has_language) {
2174 ast_log(LOG_ERROR, "ARI FormatLangPair missing required field language\n");
2175 res = 0;
2176 }
2177
2178 return res;
2179}

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 2181 of file ari_model_validators.c.

2182{
2184}
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 1956 of file ari_model_validators.c.

1957{
1958 int res = 1;
1959 struct ast_json_iter *iter;
1960 int has_format = 0;
1961 int has_name = 0;
1962 int has_state = 0;
1963 int has_target_uri = 0;
1964
1965 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1966 if (strcmp("cause", ast_json_object_iter_key(iter)) == 0) {
1967 int prop_is_valid;
1968 prop_is_valid = ast_ari_validate_string(
1970 if (!prop_is_valid) {
1971 ast_log(LOG_ERROR, "ARI LiveRecording field cause failed validation\n");
1972 res = 0;
1973 }
1974 } else
1975 if (strcmp("duration", ast_json_object_iter_key(iter)) == 0) {
1976 int prop_is_valid;
1977 prop_is_valid = ast_ari_validate_int(
1979 if (!prop_is_valid) {
1980 ast_log(LOG_ERROR, "ARI LiveRecording field duration failed validation\n");
1981 res = 0;
1982 }
1983 } else
1984 if (strcmp("format", ast_json_object_iter_key(iter)) == 0) {
1985 int prop_is_valid;
1986 has_format = 1;
1987 prop_is_valid = ast_ari_validate_string(
1989 if (!prop_is_valid) {
1990 ast_log(LOG_ERROR, "ARI LiveRecording field format failed validation\n");
1991 res = 0;
1992 }
1993 } else
1994 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
1995 int prop_is_valid;
1996 has_name = 1;
1997 prop_is_valid = ast_ari_validate_string(
1999 if (!prop_is_valid) {
2000 ast_log(LOG_ERROR, "ARI LiveRecording field name failed validation\n");
2001 res = 0;
2002 }
2003 } else
2004 if (strcmp("silence_duration", ast_json_object_iter_key(iter)) == 0) {
2005 int prop_is_valid;
2006 prop_is_valid = ast_ari_validate_int(
2008 if (!prop_is_valid) {
2009 ast_log(LOG_ERROR, "ARI LiveRecording field silence_duration failed validation\n");
2010 res = 0;
2011 }
2012 } else
2013 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
2014 int prop_is_valid;
2015 has_state = 1;
2016 prop_is_valid = ast_ari_validate_string(
2018 if (!prop_is_valid) {
2019 ast_log(LOG_ERROR, "ARI LiveRecording field state failed validation\n");
2020 res = 0;
2021 }
2022 } else
2023 if (strcmp("talking_duration", ast_json_object_iter_key(iter)) == 0) {
2024 int prop_is_valid;
2025 prop_is_valid = ast_ari_validate_int(
2027 if (!prop_is_valid) {
2028 ast_log(LOG_ERROR, "ARI LiveRecording field talking_duration failed validation\n");
2029 res = 0;
2030 }
2031 } else
2032 if (strcmp("target_uri", ast_json_object_iter_key(iter)) == 0) {
2033 int prop_is_valid;
2034 has_target_uri = 1;
2035 prop_is_valid = ast_ari_validate_string(
2037 if (!prop_is_valid) {
2038 ast_log(LOG_ERROR, "ARI LiveRecording field target_uri failed validation\n");
2039 res = 0;
2040 }
2041 } else
2042 {
2044 "ARI LiveRecording has undocumented field %s\n",
2046 res = 0;
2047 }
2048 }
2049
2050 if (!has_format) {
2051 ast_log(LOG_ERROR, "ARI LiveRecording missing required field format\n");
2052 res = 0;
2053 }
2054
2055 if (!has_name) {
2056 ast_log(LOG_ERROR, "ARI LiveRecording missing required field name\n");
2057 res = 0;
2058 }
2059
2060 if (!has_state) {
2061 ast_log(LOG_ERROR, "ARI LiveRecording missing required field state\n");
2062 res = 0;
2063 }
2064
2065 if (!has_target_uri) {
2066 ast_log(LOG_ERROR, "ARI LiveRecording missing required field target_uri\n");
2067 res = 0;
2068 }
2069
2070 return res;
2071}

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 2073 of file ari_model_validators.c.

2074{
2076}
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 2408 of file ari_model_validators.c.

2409{
2410 int res = 1;
2411 struct ast_json_iter *iter;
2412 int has_name = 0;
2413 int has_new_messages = 0;
2414 int has_old_messages = 0;
2415
2416 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2417 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
2418 int prop_is_valid;
2419 has_name = 1;
2420 prop_is_valid = ast_ari_validate_string(
2422 if (!prop_is_valid) {
2423 ast_log(LOG_ERROR, "ARI Mailbox field name failed validation\n");
2424 res = 0;
2425 }
2426 } else
2427 if (strcmp("new_messages", ast_json_object_iter_key(iter)) == 0) {
2428 int prop_is_valid;
2429 has_new_messages = 1;
2430 prop_is_valid = ast_ari_validate_int(
2432 if (!prop_is_valid) {
2433 ast_log(LOG_ERROR, "ARI Mailbox field new_messages failed validation\n");
2434 res = 0;
2435 }
2436 } else
2437 if (strcmp("old_messages", ast_json_object_iter_key(iter)) == 0) {
2438 int prop_is_valid;
2439 has_old_messages = 1;
2440 prop_is_valid = ast_ari_validate_int(
2442 if (!prop_is_valid) {
2443 ast_log(LOG_ERROR, "ARI Mailbox field old_messages failed validation\n");
2444 res = 0;
2445 }
2446 } else
2447 {
2449 "ARI Mailbox has undocumented field %s\n",
2451 res = 0;
2452 }
2453 }
2454
2455 if (!has_name) {
2456 ast_log(LOG_ERROR, "ARI Mailbox missing required field name\n");
2457 res = 0;
2458 }
2459
2460 if (!has_new_messages) {
2461 ast_log(LOG_ERROR, "ARI Mailbox missing required field new_messages\n");
2462 res = 0;
2463 }
2464
2465 if (!has_old_messages) {
2466 ast_log(LOG_ERROR, "ARI Mailbox missing required field old_messages\n");
2467 res = 0;
2468 }
2469
2470 return res;
2471}

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 2473 of file ari_model_validators.c.

2474{
2476}
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 6744 of file ari_model_validators.c.

6745{
6746 int res = 1;
6747 struct ast_json_iter *iter;
6748 int has_type = 0;
6749 const char *discriminator;
6750
6751 discriminator = ast_json_string_get(ast_json_object_get(json, "type"));
6752 if (!discriminator) {
6753 ast_log(LOG_ERROR, "ARI Message missing required field type\n");
6754 return 0;
6755 }
6756
6757 if (strcmp("Message", discriminator) == 0) {
6758 /* Self type; fall through */
6759 } else
6760 if (strcmp("ApplicationMoveFailed", discriminator) == 0) {
6762 } else
6763 if (strcmp("ApplicationRegistered", discriminator) == 0) {
6765 } else
6766 if (strcmp("ApplicationReplaced", discriminator) == 0) {
6768 } else
6769 if (strcmp("ApplicationUnregistered", discriminator) == 0) {
6771 } else
6772 if (strcmp("BridgeAttendedTransfer", discriminator) == 0) {
6774 } else
6775 if (strcmp("BridgeBlindTransfer", discriminator) == 0) {
6777 } else
6778 if (strcmp("BridgeCreated", discriminator) == 0) {
6780 } else
6781 if (strcmp("BridgeDestroyed", discriminator) == 0) {
6783 } else
6784 if (strcmp("BridgeMerged", discriminator) == 0) {
6785 return ast_ari_validate_bridge_merged(json);
6786 } else
6787 if (strcmp("BridgeVideoSourceChanged", discriminator) == 0) {
6789 } else
6790 if (strcmp("CallBroadcast", discriminator) == 0) {
6792 } else
6793 if (strcmp("CallClaimed", discriminator) == 0) {
6794 return ast_ari_validate_call_claimed(json);
6795 } else
6796 if (strcmp("ChannelCallerId", discriminator) == 0) {
6798 } else
6799 if (strcmp("ChannelConnectedLine", discriminator) == 0) {
6801 } else
6802 if (strcmp("ChannelCreated", discriminator) == 0) {
6804 } else
6805 if (strcmp("ChannelDestroyed", discriminator) == 0) {
6807 } else
6808 if (strcmp("ChannelDialplan", discriminator) == 0) {
6810 } else
6811 if (strcmp("ChannelDtmfReceived", discriminator) == 0) {
6813 } else
6814 if (strcmp("ChannelEnteredBridge", discriminator) == 0) {
6816 } else
6817 if (strcmp("ChannelHangupRequest", discriminator) == 0) {
6819 } else
6820 if (strcmp("ChannelHold", discriminator) == 0) {
6821 return ast_ari_validate_channel_hold(json);
6822 } else
6823 if (strcmp("ChannelLeftBridge", discriminator) == 0) {
6825 } else
6826 if (strcmp("ChannelStateChange", discriminator) == 0) {
6828 } else
6829 if (strcmp("ChannelTalkingFinished", discriminator) == 0) {
6831 } else
6832 if (strcmp("ChannelTalkingStarted", discriminator) == 0) {
6834 } else
6835 if (strcmp("ChannelToneDetected", discriminator) == 0) {
6837 } else
6838 if (strcmp("ChannelTransfer", discriminator) == 0) {
6840 } else
6841 if (strcmp("ChannelUnhold", discriminator) == 0) {
6843 } else
6844 if (strcmp("ChannelUserevent", discriminator) == 0) {
6846 } else
6847 if (strcmp("ChannelVarset", discriminator) == 0) {
6849 } else
6850 if (strcmp("ContactStatusChange", discriminator) == 0) {
6852 } else
6853 if (strcmp("DeviceStateChanged", discriminator) == 0) {
6855 } else
6856 if (strcmp("Dial", discriminator) == 0) {
6857 return ast_ari_validate_dial(json);
6858 } else
6859 if (strcmp("EndpointStateChange", discriminator) == 0) {
6861 } else
6862 if (strcmp("Event", discriminator) == 0) {
6863 return ast_ari_validate_event(json);
6864 } else
6865 if (strcmp("MissingParams", discriminator) == 0) {
6867 } else
6868 if (strcmp("PeerStatusChange", discriminator) == 0) {
6870 } else
6871 if (strcmp("PlaybackContinuing", discriminator) == 0) {
6873 } else
6874 if (strcmp("PlaybackFinished", discriminator) == 0) {
6876 } else
6877 if (strcmp("PlaybackStarted", discriminator) == 0) {
6879 } else
6880 if (strcmp("RESTResponse", discriminator) == 0) {
6881 return ast_ari_validate_restresponse(json);
6882 } else
6883 if (strcmp("RecordingFailed", discriminator) == 0) {
6885 } else
6886 if (strcmp("RecordingFinished", discriminator) == 0) {
6888 } else
6889 if (strcmp("RecordingStarted", discriminator) == 0) {
6891 } else
6892 if (strcmp("StasisEnd", discriminator) == 0) {
6893 return ast_ari_validate_stasis_end(json);
6894 } else
6895 if (strcmp("StasisStart", discriminator) == 0) {
6896 return ast_ari_validate_stasis_start(json);
6897 } else
6898 if (strcmp("TextMessageReceived", discriminator) == 0) {
6900 } else
6901 {
6902 ast_log(LOG_ERROR, "ARI Message has undocumented subtype %s\n",
6903 discriminator);
6904 res = 0;
6905 }
6906
6907 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6908 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6909 int prop_is_valid;
6910 prop_is_valid = ast_ari_validate_string(
6912 if (!prop_is_valid) {
6913 ast_log(LOG_ERROR, "ARI Message field asterisk_id failed validation\n");
6914 res = 0;
6915 }
6916 } else
6917 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6918 int prop_is_valid;
6919 has_type = 1;
6920 prop_is_valid = ast_ari_validate_string(
6922 if (!prop_is_valid) {
6923 ast_log(LOG_ERROR, "ARI Message field type failed validation\n");
6924 res = 0;
6925 }
6926 } else
6927 {
6929 "ARI Message has undocumented field %s\n",
6931 res = 0;
6932 }
6933 }
6934
6935 if (!has_type) {
6936 ast_log(LOG_ERROR, "ARI Message missing required field type\n");
6937 res = 0;
6938 }
6939
6940 return res;
6941}
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 6943 of file ari_model_validators.c.

6944{
6946}
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 6948 of file ari_model_validators.c.

6949{
6950 int res = 1;
6951 struct ast_json_iter *iter;
6952 int has_type = 0;
6953 int has_params = 0;
6954
6955 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
6956 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
6957 int prop_is_valid;
6958 prop_is_valid = ast_ari_validate_string(
6960 if (!prop_is_valid) {
6961 ast_log(LOG_ERROR, "ARI MissingParams field asterisk_id failed validation\n");
6962 res = 0;
6963 }
6964 } else
6965 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
6966 int prop_is_valid;
6967 has_type = 1;
6968 prop_is_valid = ast_ari_validate_string(
6970 if (!prop_is_valid) {
6971 ast_log(LOG_ERROR, "ARI MissingParams field type failed validation\n");
6972 res = 0;
6973 }
6974 } else
6975 if (strcmp("params", ast_json_object_iter_key(iter)) == 0) {
6976 int prop_is_valid;
6977 has_params = 1;
6978 prop_is_valid = ast_ari_validate_list(
6981 if (!prop_is_valid) {
6982 ast_log(LOG_ERROR, "ARI MissingParams field params failed validation\n");
6983 res = 0;
6984 }
6985 } else
6986 {
6988 "ARI MissingParams has undocumented field %s\n",
6990 res = 0;
6991 }
6992 }
6993
6994 if (!has_type) {
6995 ast_log(LOG_ERROR, "ARI MissingParams missing required field type\n");
6996 res = 0;
6997 }
6998
6999 if (!has_params) {
7000 ast_log(LOG_ERROR, "ARI MissingParams missing required field params\n");
7001 res = 0;
7002 }
7003
7004 return res;
7005}

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 7007 of file ari_model_validators.c.

7008{
7010}

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_bridge(), ast_ari_validate_channel(), ast_ari_validate_channel_userevent(), ast_ari_validate_text_message(), and ast_ari_validate_variables().

◆ 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 7012 of file ari_model_validators.c.

7013{
7014 int res = 1;
7015 struct ast_json_iter *iter;
7016 int has_peer_status = 0;
7017
7018 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7019 if (strcmp("address", ast_json_object_iter_key(iter)) == 0) {
7020 int prop_is_valid;
7021 prop_is_valid = ast_ari_validate_string(
7023 if (!prop_is_valid) {
7024 ast_log(LOG_ERROR, "ARI Peer field address failed validation\n");
7025 res = 0;
7026 }
7027 } else
7028 if (strcmp("cause", ast_json_object_iter_key(iter)) == 0) {
7029 int prop_is_valid;
7030 prop_is_valid = ast_ari_validate_string(
7032 if (!prop_is_valid) {
7033 ast_log(LOG_ERROR, "ARI Peer field cause failed validation\n");
7034 res = 0;
7035 }
7036 } else
7037 if (strcmp("peer_status", ast_json_object_iter_key(iter)) == 0) {
7038 int prop_is_valid;
7039 has_peer_status = 1;
7040 prop_is_valid = ast_ari_validate_string(
7042 if (!prop_is_valid) {
7043 ast_log(LOG_ERROR, "ARI Peer field peer_status failed validation\n");
7044 res = 0;
7045 }
7046 } else
7047 if (strcmp("port", ast_json_object_iter_key(iter)) == 0) {
7048 int prop_is_valid;
7049 prop_is_valid = ast_ari_validate_string(
7051 if (!prop_is_valid) {
7052 ast_log(LOG_ERROR, "ARI Peer field port failed validation\n");
7053 res = 0;
7054 }
7055 } else
7056 if (strcmp("time", ast_json_object_iter_key(iter)) == 0) {
7057 int prop_is_valid;
7058 prop_is_valid = ast_ari_validate_string(
7060 if (!prop_is_valid) {
7061 ast_log(LOG_ERROR, "ARI Peer field time failed validation\n");
7062 res = 0;
7063 }
7064 } else
7065 {
7067 "ARI Peer has undocumented field %s\n",
7069 res = 0;
7070 }
7071 }
7072
7073 if (!has_peer_status) {
7074 ast_log(LOG_ERROR, "ARI Peer missing required field peer_status\n");
7075 res = 0;
7076 }
7077
7078 return res;
7079}

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 7081 of file ari_model_validators.c.

7082{
7083 return ast_ari_validate_peer;
7084}
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 7086 of file ari_model_validators.c.

7087{
7088 int res = 1;
7089 struct ast_json_iter *iter;
7090 int has_type = 0;
7091 int has_application = 0;
7092 int has_timestamp = 0;
7093 int has_endpoint = 0;
7094 int has_peer = 0;
7095
7096 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7097 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7098 int prop_is_valid;
7099 prop_is_valid = ast_ari_validate_string(
7101 if (!prop_is_valid) {
7102 ast_log(LOG_ERROR, "ARI PeerStatusChange field asterisk_id failed validation\n");
7103 res = 0;
7104 }
7105 } else
7106 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7107 int prop_is_valid;
7108 has_type = 1;
7109 prop_is_valid = ast_ari_validate_string(
7111 if (!prop_is_valid) {
7112 ast_log(LOG_ERROR, "ARI PeerStatusChange field type failed validation\n");
7113 res = 0;
7114 }
7115 } else
7116 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7117 int prop_is_valid;
7118 has_application = 1;
7119 prop_is_valid = ast_ari_validate_string(
7121 if (!prop_is_valid) {
7122 ast_log(LOG_ERROR, "ARI PeerStatusChange field application failed validation\n");
7123 res = 0;
7124 }
7125 } else
7126 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7127 int prop_is_valid;
7128 has_timestamp = 1;
7129 prop_is_valid = ast_ari_validate_date(
7131 if (!prop_is_valid) {
7132 ast_log(LOG_ERROR, "ARI PeerStatusChange field timestamp failed validation\n");
7133 res = 0;
7134 }
7135 } else
7136 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
7137 int prop_is_valid;
7138 has_endpoint = 1;
7139 prop_is_valid = ast_ari_validate_endpoint(
7141 if (!prop_is_valid) {
7142 ast_log(LOG_ERROR, "ARI PeerStatusChange field endpoint failed validation\n");
7143 res = 0;
7144 }
7145 } else
7146 if (strcmp("peer", ast_json_object_iter_key(iter)) == 0) {
7147 int prop_is_valid;
7148 has_peer = 1;
7149 prop_is_valid = ast_ari_validate_peer(
7151 if (!prop_is_valid) {
7152 ast_log(LOG_ERROR, "ARI PeerStatusChange field peer failed validation\n");
7153 res = 0;
7154 }
7155 } else
7156 {
7158 "ARI PeerStatusChange has undocumented field %s\n",
7160 res = 0;
7161 }
7162 }
7163
7164 if (!has_type) {
7165 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field type\n");
7166 res = 0;
7167 }
7168
7169 if (!has_application) {
7170 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field application\n");
7171 res = 0;
7172 }
7173
7174 if (!has_timestamp) {
7175 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field timestamp\n");
7176 res = 0;
7177 }
7178
7179 if (!has_endpoint) {
7180 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field endpoint\n");
7181 res = 0;
7182 }
7183
7184 if (!has_peer) {
7185 ast_log(LOG_ERROR, "ARI PeerStatusChange missing required field peer\n");
7186 res = 0;
7187 }
7188
7189 return res;
7190}

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 7192 of file ari_model_validators.c.

7193{
7195}

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 2250 of file ari_model_validators.c.

2251{
2252 int res = 1;
2253 struct ast_json_iter *iter;
2254 int has_id = 0;
2255 int has_media_uri = 0;
2256 int has_state = 0;
2257 int has_target_uri = 0;
2258
2259 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2260 if (strcmp("id", ast_json_object_iter_key(iter)) == 0) {
2261 int prop_is_valid;
2262 has_id = 1;
2263 prop_is_valid = ast_ari_validate_string(
2265 if (!prop_is_valid) {
2266 ast_log(LOG_ERROR, "ARI Playback field id failed validation\n");
2267 res = 0;
2268 }
2269 } else
2270 if (strcmp("language", ast_json_object_iter_key(iter)) == 0) {
2271 int prop_is_valid;
2272 prop_is_valid = ast_ari_validate_string(
2274 if (!prop_is_valid) {
2275 ast_log(LOG_ERROR, "ARI Playback field language failed validation\n");
2276 res = 0;
2277 }
2278 } else
2279 if (strcmp("media_uri", ast_json_object_iter_key(iter)) == 0) {
2280 int prop_is_valid;
2281 has_media_uri = 1;
2282 prop_is_valid = ast_ari_validate_string(
2284 if (!prop_is_valid) {
2285 ast_log(LOG_ERROR, "ARI Playback field media_uri failed validation\n");
2286 res = 0;
2287 }
2288 } else
2289 if (strcmp("next_media_uri", ast_json_object_iter_key(iter)) == 0) {
2290 int prop_is_valid;
2291 prop_is_valid = ast_ari_validate_string(
2293 if (!prop_is_valid) {
2294 ast_log(LOG_ERROR, "ARI Playback field next_media_uri failed validation\n");
2295 res = 0;
2296 }
2297 } else
2298 if (strcmp("state", ast_json_object_iter_key(iter)) == 0) {
2299 int prop_is_valid;
2300 has_state = 1;
2301 prop_is_valid = ast_ari_validate_string(
2303 if (!prop_is_valid) {
2304 ast_log(LOG_ERROR, "ARI Playback field state failed validation\n");
2305 res = 0;
2306 }
2307 } else
2308 if (strcmp("target_uri", ast_json_object_iter_key(iter)) == 0) {
2309 int prop_is_valid;
2310 has_target_uri = 1;
2311 prop_is_valid = ast_ari_validate_string(
2313 if (!prop_is_valid) {
2314 ast_log(LOG_ERROR, "ARI Playback field target_uri failed validation\n");
2315 res = 0;
2316 }
2317 } else
2318 {
2320 "ARI Playback has undocumented field %s\n",
2322 res = 0;
2323 }
2324 }
2325
2326 if (!has_id) {
2327 ast_log(LOG_ERROR, "ARI Playback missing required field id\n");
2328 res = 0;
2329 }
2330
2331 if (!has_media_uri) {
2332 ast_log(LOG_ERROR, "ARI Playback missing required field media_uri\n");
2333 res = 0;
2334 }
2335
2336 if (!has_state) {
2337 ast_log(LOG_ERROR, "ARI Playback missing required field state\n");
2338 res = 0;
2339 }
2340
2341 if (!has_target_uri) {
2342 ast_log(LOG_ERROR, "ARI Playback missing required field target_uri\n");
2343 res = 0;
2344 }
2345
2346 return res;
2347}

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 7197 of file ari_model_validators.c.

7198{
7199 int res = 1;
7200 struct ast_json_iter *iter;
7201 int has_type = 0;
7202 int has_application = 0;
7203 int has_timestamp = 0;
7204 int has_playback = 0;
7205
7206 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7207 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7208 int prop_is_valid;
7209 prop_is_valid = ast_ari_validate_string(
7211 if (!prop_is_valid) {
7212 ast_log(LOG_ERROR, "ARI PlaybackContinuing field asterisk_id failed validation\n");
7213 res = 0;
7214 }
7215 } else
7216 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7217 int prop_is_valid;
7218 has_type = 1;
7219 prop_is_valid = ast_ari_validate_string(
7221 if (!prop_is_valid) {
7222 ast_log(LOG_ERROR, "ARI PlaybackContinuing field type failed validation\n");
7223 res = 0;
7224 }
7225 } else
7226 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7227 int prop_is_valid;
7228 has_application = 1;
7229 prop_is_valid = ast_ari_validate_string(
7231 if (!prop_is_valid) {
7232 ast_log(LOG_ERROR, "ARI PlaybackContinuing field application failed validation\n");
7233 res = 0;
7234 }
7235 } else
7236 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7237 int prop_is_valid;
7238 has_timestamp = 1;
7239 prop_is_valid = ast_ari_validate_date(
7241 if (!prop_is_valid) {
7242 ast_log(LOG_ERROR, "ARI PlaybackContinuing field timestamp failed validation\n");
7243 res = 0;
7244 }
7245 } else
7246 if (strcmp("playback", ast_json_object_iter_key(iter)) == 0) {
7247 int prop_is_valid;
7248 has_playback = 1;
7249 prop_is_valid = ast_ari_validate_playback(
7251 if (!prop_is_valid) {
7252 ast_log(LOG_ERROR, "ARI PlaybackContinuing field playback failed validation\n");
7253 res = 0;
7254 }
7255 } else
7256 {
7258 "ARI PlaybackContinuing has undocumented field %s\n",
7260 res = 0;
7261 }
7262 }
7263
7264 if (!has_type) {
7265 ast_log(LOG_ERROR, "ARI PlaybackContinuing missing required field type\n");
7266 res = 0;
7267 }
7268
7269 if (!has_application) {
7270 ast_log(LOG_ERROR, "ARI PlaybackContinuing missing required field application\n");
7271 res = 0;
7272 }
7273
7274 if (!has_timestamp) {
7275 ast_log(LOG_ERROR, "ARI PlaybackContinuing missing required field timestamp\n");
7276 res = 0;
7277 }
7278
7279 if (!has_playback) {
7280 ast_log(LOG_ERROR, "ARI PlaybackContinuing missing required field playback\n");
7281 res = 0;
7282 }
7283
7284 return res;
7285}
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 7287 of file ari_model_validators.c.

7288{
7290}

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 7292 of file ari_model_validators.c.

7293{
7294 int res = 1;
7295 struct ast_json_iter *iter;
7296 int has_type = 0;
7297 int has_application = 0;
7298 int has_timestamp = 0;
7299 int has_playback = 0;
7300
7301 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7302 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7303 int prop_is_valid;
7304 prop_is_valid = ast_ari_validate_string(
7306 if (!prop_is_valid) {
7307 ast_log(LOG_ERROR, "ARI PlaybackFinished field asterisk_id failed validation\n");
7308 res = 0;
7309 }
7310 } else
7311 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7312 int prop_is_valid;
7313 has_type = 1;
7314 prop_is_valid = ast_ari_validate_string(
7316 if (!prop_is_valid) {
7317 ast_log(LOG_ERROR, "ARI PlaybackFinished field type failed validation\n");
7318 res = 0;
7319 }
7320 } else
7321 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7322 int prop_is_valid;
7323 has_application = 1;
7324 prop_is_valid = ast_ari_validate_string(
7326 if (!prop_is_valid) {
7327 ast_log(LOG_ERROR, "ARI PlaybackFinished field application failed validation\n");
7328 res = 0;
7329 }
7330 } else
7331 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7332 int prop_is_valid;
7333 has_timestamp = 1;
7334 prop_is_valid = ast_ari_validate_date(
7336 if (!prop_is_valid) {
7337 ast_log(LOG_ERROR, "ARI PlaybackFinished field timestamp failed validation\n");
7338 res = 0;
7339 }
7340 } else
7341 if (strcmp("playback", ast_json_object_iter_key(iter)) == 0) {
7342 int prop_is_valid;
7343 has_playback = 1;
7344 prop_is_valid = ast_ari_validate_playback(
7346 if (!prop_is_valid) {
7347 ast_log(LOG_ERROR, "ARI PlaybackFinished field playback failed validation\n");
7348 res = 0;
7349 }
7350 } else
7351 {
7353 "ARI PlaybackFinished has undocumented field %s\n",
7355 res = 0;
7356 }
7357 }
7358
7359 if (!has_type) {
7360 ast_log(LOG_ERROR, "ARI PlaybackFinished missing required field type\n");
7361 res = 0;
7362 }
7363
7364 if (!has_application) {
7365 ast_log(LOG_ERROR, "ARI PlaybackFinished missing required field application\n");
7366 res = 0;
7367 }
7368
7369 if (!has_timestamp) {
7370 ast_log(LOG_ERROR, "ARI PlaybackFinished missing required field timestamp\n");
7371 res = 0;
7372 }
7373
7374 if (!has_playback) {
7375 ast_log(LOG_ERROR, "ARI PlaybackFinished missing required field playback\n");
7376 res = 0;
7377 }
7378
7379 return res;
7380}

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 7382 of file ari_model_validators.c.

7383{
7385}

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 2349 of file ari_model_validators.c.

2350{
2352}

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 7387 of file ari_model_validators.c.

7388{
7389 int res = 1;
7390 struct ast_json_iter *iter;
7391 int has_type = 0;
7392 int has_application = 0;
7393 int has_timestamp = 0;
7394 int has_playback = 0;
7395
7396 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7397 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7398 int prop_is_valid;
7399 prop_is_valid = ast_ari_validate_string(
7401 if (!prop_is_valid) {
7402 ast_log(LOG_ERROR, "ARI PlaybackStarted field asterisk_id failed validation\n");
7403 res = 0;
7404 }
7405 } else
7406 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7407 int prop_is_valid;
7408 has_type = 1;
7409 prop_is_valid = ast_ari_validate_string(
7411 if (!prop_is_valid) {
7412 ast_log(LOG_ERROR, "ARI PlaybackStarted field type failed validation\n");
7413 res = 0;
7414 }
7415 } else
7416 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7417 int prop_is_valid;
7418 has_application = 1;
7419 prop_is_valid = ast_ari_validate_string(
7421 if (!prop_is_valid) {
7422 ast_log(LOG_ERROR, "ARI PlaybackStarted field application failed validation\n");
7423 res = 0;
7424 }
7425 } else
7426 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7427 int prop_is_valid;
7428 has_timestamp = 1;
7429 prop_is_valid = ast_ari_validate_date(
7431 if (!prop_is_valid) {
7432 ast_log(LOG_ERROR, "ARI PlaybackStarted field timestamp failed validation\n");
7433 res = 0;
7434 }
7435 } else
7436 if (strcmp("playback", ast_json_object_iter_key(iter)) == 0) {
7437 int prop_is_valid;
7438 has_playback = 1;
7439 prop_is_valid = ast_ari_validate_playback(
7441 if (!prop_is_valid) {
7442 ast_log(LOG_ERROR, "ARI PlaybackStarted field playback failed validation\n");
7443 res = 0;
7444 }
7445 } else
7446 {
7448 "ARI PlaybackStarted has undocumented field %s\n",
7450 res = 0;
7451 }
7452 }
7453
7454 if (!has_type) {
7455 ast_log(LOG_ERROR, "ARI PlaybackStarted missing required field type\n");
7456 res = 0;
7457 }
7458
7459 if (!has_application) {
7460 ast_log(LOG_ERROR, "ARI PlaybackStarted missing required field application\n");
7461 res = 0;
7462 }
7463
7464 if (!has_timestamp) {
7465 ast_log(LOG_ERROR, "ARI PlaybackStarted missing required field timestamp\n");
7466 res = 0;
7467 }
7468
7469 if (!has_playback) {
7470 ast_log(LOG_ERROR, "ARI PlaybackStarted missing required field playback\n");
7471 res = 0;
7472 }
7473
7474 return res;
7475}

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 7477 of file ari_model_validators.c.

7478{
7480}

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 7897 of file ari_model_validators.c.

7898{
7899 int res = 1;
7900 struct ast_json_iter *iter;
7901 int has_type = 0;
7902 int has_application = 0;
7903 int has_timestamp = 0;
7904 int has_recording = 0;
7905
7906 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7907 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7908 int prop_is_valid;
7909 prop_is_valid = ast_ari_validate_string(
7911 if (!prop_is_valid) {
7912 ast_log(LOG_ERROR, "ARI RecordingFailed field asterisk_id failed validation\n");
7913 res = 0;
7914 }
7915 } else
7916 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7917 int prop_is_valid;
7918 has_type = 1;
7919 prop_is_valid = ast_ari_validate_string(
7921 if (!prop_is_valid) {
7922 ast_log(LOG_ERROR, "ARI RecordingFailed field type failed validation\n");
7923 res = 0;
7924 }
7925 } else
7926 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7927 int prop_is_valid;
7928 has_application = 1;
7929 prop_is_valid = ast_ari_validate_string(
7931 if (!prop_is_valid) {
7932 ast_log(LOG_ERROR, "ARI RecordingFailed field application failed validation\n");
7933 res = 0;
7934 }
7935 } else
7936 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7937 int prop_is_valid;
7938 has_timestamp = 1;
7939 prop_is_valid = ast_ari_validate_date(
7941 if (!prop_is_valid) {
7942 ast_log(LOG_ERROR, "ARI RecordingFailed field timestamp failed validation\n");
7943 res = 0;
7944 }
7945 } else
7946 if (strcmp("recording", ast_json_object_iter_key(iter)) == 0) {
7947 int prop_is_valid;
7948 has_recording = 1;
7949 prop_is_valid = ast_ari_validate_live_recording(
7951 if (!prop_is_valid) {
7952 ast_log(LOG_ERROR, "ARI RecordingFailed field recording failed validation\n");
7953 res = 0;
7954 }
7955 } else
7956 {
7958 "ARI RecordingFailed has undocumented field %s\n",
7960 res = 0;
7961 }
7962 }
7963
7964 if (!has_type) {
7965 ast_log(LOG_ERROR, "ARI RecordingFailed missing required field type\n");
7966 res = 0;
7967 }
7968
7969 if (!has_application) {
7970 ast_log(LOG_ERROR, "ARI RecordingFailed missing required field application\n");
7971 res = 0;
7972 }
7973
7974 if (!has_timestamp) {
7975 ast_log(LOG_ERROR, "ARI RecordingFailed missing required field timestamp\n");
7976 res = 0;
7977 }
7978
7979 if (!has_recording) {
7980 ast_log(LOG_ERROR, "ARI RecordingFailed missing required field recording\n");
7981 res = 0;
7982 }
7983
7984 return res;
7985}

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 7987 of file ari_model_validators.c.

7988{
7990}

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 7992 of file ari_model_validators.c.

7993{
7994 int res = 1;
7995 struct ast_json_iter *iter;
7996 int has_type = 0;
7997 int has_application = 0;
7998 int has_timestamp = 0;
7999 int has_recording = 0;
8000
8001 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8002 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8003 int prop_is_valid;
8004 prop_is_valid = ast_ari_validate_string(
8006 if (!prop_is_valid) {
8007 ast_log(LOG_ERROR, "ARI RecordingFinished field asterisk_id failed validation\n");
8008 res = 0;
8009 }
8010 } else
8011 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8012 int prop_is_valid;
8013 has_type = 1;
8014 prop_is_valid = ast_ari_validate_string(
8016 if (!prop_is_valid) {
8017 ast_log(LOG_ERROR, "ARI RecordingFinished field type failed validation\n");
8018 res = 0;
8019 }
8020 } else
8021 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8022 int prop_is_valid;
8023 has_application = 1;
8024 prop_is_valid = ast_ari_validate_string(
8026 if (!prop_is_valid) {
8027 ast_log(LOG_ERROR, "ARI RecordingFinished field application failed validation\n");
8028 res = 0;
8029 }
8030 } else
8031 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8032 int prop_is_valid;
8033 has_timestamp = 1;
8034 prop_is_valid = ast_ari_validate_date(
8036 if (!prop_is_valid) {
8037 ast_log(LOG_ERROR, "ARI RecordingFinished field timestamp failed validation\n");
8038 res = 0;
8039 }
8040 } else
8041 if (strcmp("recording", ast_json_object_iter_key(iter)) == 0) {
8042 int prop_is_valid;
8043 has_recording = 1;
8044 prop_is_valid = ast_ari_validate_live_recording(
8046 if (!prop_is_valid) {
8047 ast_log(LOG_ERROR, "ARI RecordingFinished field recording failed validation\n");
8048 res = 0;
8049 }
8050 } else
8051 {
8053 "ARI RecordingFinished has undocumented field %s\n",
8055 res = 0;
8056 }
8057 }
8058
8059 if (!has_type) {
8060 ast_log(LOG_ERROR, "ARI RecordingFinished missing required field type\n");
8061 res = 0;
8062 }
8063
8064 if (!has_application) {
8065 ast_log(LOG_ERROR, "ARI RecordingFinished missing required field application\n");
8066 res = 0;
8067 }
8068
8069 if (!has_timestamp) {
8070 ast_log(LOG_ERROR, "ARI RecordingFinished missing required field timestamp\n");
8071 res = 0;
8072 }
8073
8074 if (!has_recording) {
8075 ast_log(LOG_ERROR, "ARI RecordingFinished missing required field recording\n");
8076 res = 0;
8077 }
8078
8079 return res;
8080}

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 8082 of file ari_model_validators.c.

8083{
8085}

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 8087 of file ari_model_validators.c.

8088{
8089 int res = 1;
8090 struct ast_json_iter *iter;
8091 int has_type = 0;
8092 int has_application = 0;
8093 int has_timestamp = 0;
8094 int has_recording = 0;
8095
8096 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8097 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8098 int prop_is_valid;
8099 prop_is_valid = ast_ari_validate_string(
8101 if (!prop_is_valid) {
8102 ast_log(LOG_ERROR, "ARI RecordingStarted field asterisk_id failed validation\n");
8103 res = 0;
8104 }
8105 } else
8106 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8107 int prop_is_valid;
8108 has_type = 1;
8109 prop_is_valid = ast_ari_validate_string(
8111 if (!prop_is_valid) {
8112 ast_log(LOG_ERROR, "ARI RecordingStarted field type failed validation\n");
8113 res = 0;
8114 }
8115 } else
8116 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8117 int prop_is_valid;
8118 has_application = 1;
8119 prop_is_valid = ast_ari_validate_string(
8121 if (!prop_is_valid) {
8122 ast_log(LOG_ERROR, "ARI RecordingStarted field application failed validation\n");
8123 res = 0;
8124 }
8125 } else
8126 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8127 int prop_is_valid;
8128 has_timestamp = 1;
8129 prop_is_valid = ast_ari_validate_date(
8131 if (!prop_is_valid) {
8132 ast_log(LOG_ERROR, "ARI RecordingStarted field timestamp failed validation\n");
8133 res = 0;
8134 }
8135 } else
8136 if (strcmp("recording", ast_json_object_iter_key(iter)) == 0) {
8137 int prop_is_valid;
8138 has_recording = 1;
8139 prop_is_valid = ast_ari_validate_live_recording(
8141 if (!prop_is_valid) {
8142 ast_log(LOG_ERROR, "ARI RecordingStarted field recording failed validation\n");
8143 res = 0;
8144 }
8145 } else
8146 {
8148 "ARI RecordingStarted has undocumented field %s\n",
8150 res = 0;
8151 }
8152 }
8153
8154 if (!has_type) {
8155 ast_log(LOG_ERROR, "ARI RecordingStarted missing required field type\n");
8156 res = 0;
8157 }
8158
8159 if (!has_application) {
8160 ast_log(LOG_ERROR, "ARI RecordingStarted missing required field application\n");
8161 res = 0;
8162 }
8163
8164 if (!has_timestamp) {
8165 ast_log(LOG_ERROR, "ARI RecordingStarted missing required field timestamp\n");
8166 res = 0;
8167 }
8168
8169 if (!has_recording) {
8170 ast_log(LOG_ERROR, "ARI RecordingStarted missing required field recording\n");
8171 res = 0;
8172 }
8173
8174 return res;
8175}

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 8177 of file ari_model_validators.c.

8178{
8180}

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 8182 of file ari_model_validators.c.

8183{
8184 int res = 1;
8185 struct ast_json_iter *iter;
8186 int has_requested_destination = 0;
8187
8188 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8189 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
8190 int prop_is_valid;
8191 prop_is_valid = ast_ari_validate_bridge(
8193 if (!prop_is_valid) {
8194 ast_log(LOG_ERROR, "ARI ReferTo field bridge failed validation\n");
8195 res = 0;
8196 }
8197 } else
8198 if (strcmp("connected_channel", ast_json_object_iter_key(iter)) == 0) {
8199 int prop_is_valid;
8200 prop_is_valid = ast_ari_validate_channel(
8202 if (!prop_is_valid) {
8203 ast_log(LOG_ERROR, "ARI ReferTo field connected_channel failed validation\n");
8204 res = 0;
8205 }
8206 } else
8207 if (strcmp("destination_channel", ast_json_object_iter_key(iter)) == 0) {
8208 int prop_is_valid;
8209 prop_is_valid = ast_ari_validate_channel(
8211 if (!prop_is_valid) {
8212 ast_log(LOG_ERROR, "ARI ReferTo field destination_channel failed validation\n");
8213 res = 0;
8214 }
8215 } else
8216 if (strcmp("requested_destination", ast_json_object_iter_key(iter)) == 0) {
8217 int prop_is_valid;
8218 has_requested_destination = 1;
8221 if (!prop_is_valid) {
8222 ast_log(LOG_ERROR, "ARI ReferTo field requested_destination failed validation\n");
8223 res = 0;
8224 }
8225 } else
8226 {
8228 "ARI ReferTo has undocumented field %s\n",
8230 res = 0;
8231 }
8232 }
8233
8234 if (!has_requested_destination) {
8235 ast_log(LOG_ERROR, "ARI ReferTo missing required field requested_destination\n");
8236 res = 0;
8237 }
8238
8239 return res;
8240}
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 8242 of file ari_model_validators.c.

8243{
8245}

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 8247 of file ari_model_validators.c.

8248{
8249 int res = 1;
8250 struct ast_json_iter *iter;
8251 int has_source_channel = 0;
8252
8253 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8254 if (strcmp("bridge", ast_json_object_iter_key(iter)) == 0) {
8255 int prop_is_valid;
8256 prop_is_valid = ast_ari_validate_bridge(
8258 if (!prop_is_valid) {
8259 ast_log(LOG_ERROR, "ARI ReferredBy field bridge failed validation\n");
8260 res = 0;
8261 }
8262 } else
8263 if (strcmp("connected_channel", ast_json_object_iter_key(iter)) == 0) {
8264 int prop_is_valid;
8265 prop_is_valid = ast_ari_validate_channel(
8267 if (!prop_is_valid) {
8268 ast_log(LOG_ERROR, "ARI ReferredBy field connected_channel failed validation\n");
8269 res = 0;
8270 }
8271 } else
8272 if (strcmp("source_channel", ast_json_object_iter_key(iter)) == 0) {
8273 int prop_is_valid;
8274 has_source_channel = 1;
8275 prop_is_valid = ast_ari_validate_channel(
8277 if (!prop_is_valid) {
8278 ast_log(LOG_ERROR, "ARI ReferredBy field source_channel failed validation\n");
8279 res = 0;
8280 }
8281 } else
8282 {
8284 "ARI ReferredBy has undocumented field %s\n",
8286 res = 0;
8287 }
8288 }
8289
8290 if (!has_source_channel) {
8291 ast_log(LOG_ERROR, "ARI ReferredBy missing required field source_channel\n");
8292 res = 0;
8293 }
8294
8295 return res;
8296}

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 8298 of file ari_model_validators.c.

8299{
8301}

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 8303 of file ari_model_validators.c.

8304{
8305 int res = 1;
8306 struct ast_json_iter *iter;
8307
8308 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8309 if (strcmp("additional_protocol_params", ast_json_object_iter_key(iter)) == 0) {
8310 int prop_is_valid;
8311 prop_is_valid = ast_ari_validate_list(
8314 if (!prop_is_valid) {
8315 ast_log(LOG_ERROR, "ARI RequiredDestination field additional_protocol_params failed validation\n");
8316 res = 0;
8317 }
8318 } else
8319 if (strcmp("destination", ast_json_object_iter_key(iter)) == 0) {
8320 int prop_is_valid;
8321 prop_is_valid = ast_ari_validate_string(
8323 if (!prop_is_valid) {
8324 ast_log(LOG_ERROR, "ARI RequiredDestination field destination failed validation\n");
8325 res = 0;
8326 }
8327 } else
8328 if (strcmp("protocol_id", ast_json_object_iter_key(iter)) == 0) {
8329 int prop_is_valid;
8330 prop_is_valid = ast_ari_validate_string(
8332 if (!prop_is_valid) {
8333 ast_log(LOG_ERROR, "ARI RequiredDestination field protocol_id failed validation\n");
8334 res = 0;
8335 }
8336 } else
8337 {
8339 "ARI RequiredDestination has undocumented field %s\n",
8341 res = 0;
8342 }
8343 }
8344
8345 return res;
8346}

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 7482 of file ari_model_validators.c.

7483{
7484 int res = 1;
7485 struct ast_json_iter *iter;
7486 int has_name = 0;
7487 int has_value = 0;
7488
7489 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7490 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
7491 int prop_is_valid;
7492 has_name = 1;
7493 prop_is_valid = ast_ari_validate_string(
7495 if (!prop_is_valid) {
7496 ast_log(LOG_ERROR, "ARI RESTHeader field name failed validation\n");
7497 res = 0;
7498 }
7499 } else
7500 if (strcmp("value", ast_json_object_iter_key(iter)) == 0) {
7501 int prop_is_valid;
7502 has_value = 1;
7503 prop_is_valid = ast_ari_validate_string(
7505 if (!prop_is_valid) {
7506 ast_log(LOG_ERROR, "ARI RESTHeader field value failed validation\n");
7507 res = 0;
7508 }
7509 } else
7510 {
7512 "ARI RESTHeader has undocumented field %s\n",
7514 res = 0;
7515 }
7516 }
7517
7518 if (!has_name) {
7519 ast_log(LOG_ERROR, "ARI RESTHeader missing required field name\n");
7520 res = 0;
7521 }
7522
7523 if (!has_value) {
7524 ast_log(LOG_ERROR, "ARI RESTHeader missing required field value\n");
7525 res = 0;
7526 }
7527
7528 return res;
7529}

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 7531 of file ari_model_validators.c.

7532{
7534}
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 7536 of file ari_model_validators.c.

7537{
7538 int res = 1;
7539 struct ast_json_iter *iter;
7540 int has_name = 0;
7541 int has_value = 0;
7542
7543 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7544 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
7545 int prop_is_valid;
7546 has_name = 1;
7547 prop_is_valid = ast_ari_validate_string(
7549 if (!prop_is_valid) {
7550 ast_log(LOG_ERROR, "ARI RESTQueryStringParameter field name failed validation\n");
7551 res = 0;
7552 }
7553 } else
7554 if (strcmp("value", ast_json_object_iter_key(iter)) == 0) {
7555 int prop_is_valid;
7556 has_value = 1;
7557 prop_is_valid = ast_ari_validate_string(
7559 if (!prop_is_valid) {
7560 ast_log(LOG_ERROR, "ARI RESTQueryStringParameter field value failed validation\n");
7561 res = 0;
7562 }
7563 } else
7564 {
7566 "ARI RESTQueryStringParameter has undocumented field %s\n",
7568 res = 0;
7569 }
7570 }
7571
7572 if (!has_name) {
7573 ast_log(LOG_ERROR, "ARI RESTQueryStringParameter missing required field name\n");
7574 res = 0;
7575 }
7576
7577 if (!has_value) {
7578 ast_log(LOG_ERROR, "ARI RESTQueryStringParameter missing required field value\n");
7579 res = 0;
7580 }
7581
7582 return res;
7583}

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 7585 of file ari_model_validators.c.

7586{
7588}
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 7590 of file ari_model_validators.c.

7591{
7592 int res = 1;
7593 struct ast_json_iter *iter;
7594 int has_method = 0;
7595 int has_request_id = 0;
7596 int has_transaction_id = 0;
7597 int has_type = 0;
7598 int has_uri = 0;
7599
7600 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7601 if (strcmp("content_type", ast_json_object_iter_key(iter)) == 0) {
7602 int prop_is_valid;
7603 prop_is_valid = ast_ari_validate_string(
7605 if (!prop_is_valid) {
7606 ast_log(LOG_ERROR, "ARI RESTRequest field content_type failed validation\n");
7607 res = 0;
7608 }
7609 } else
7610 if (strcmp("message_body", ast_json_object_iter_key(iter)) == 0) {
7611 int prop_is_valid;
7612 prop_is_valid = ast_ari_validate_string(
7614 if (!prop_is_valid) {
7615 ast_log(LOG_ERROR, "ARI RESTRequest field message_body failed validation\n");
7616 res = 0;
7617 }
7618 } else
7619 if (strcmp("method", ast_json_object_iter_key(iter)) == 0) {
7620 int prop_is_valid;
7621 has_method = 1;
7622 prop_is_valid = ast_ari_validate_string(
7624 if (!prop_is_valid) {
7625 ast_log(LOG_ERROR, "ARI RESTRequest field method failed validation\n");
7626 res = 0;
7627 }
7628 } else
7629 if (strcmp("query_strings", ast_json_object_iter_key(iter)) == 0) {
7630 int prop_is_valid;
7631 prop_is_valid = ast_ari_validate_list(
7634 if (!prop_is_valid) {
7635 ast_log(LOG_ERROR, "ARI RESTRequest field query_strings failed validation\n");
7636 res = 0;
7637 }
7638 } else
7639 if (strcmp("request_id", ast_json_object_iter_key(iter)) == 0) {
7640 int prop_is_valid;
7641 has_request_id = 1;
7642 prop_is_valid = ast_ari_validate_string(
7644 if (!prop_is_valid) {
7645 ast_log(LOG_ERROR, "ARI RESTRequest field request_id failed validation\n");
7646 res = 0;
7647 }
7648 } else
7649 if (strcmp("transaction_id", ast_json_object_iter_key(iter)) == 0) {
7650 int prop_is_valid;
7651 has_transaction_id = 1;
7652 prop_is_valid = ast_ari_validate_string(
7654 if (!prop_is_valid) {
7655 ast_log(LOG_ERROR, "ARI RESTRequest field transaction_id failed validation\n");
7656 res = 0;
7657 }
7658 } else
7659 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7660 int prop_is_valid;
7661 has_type = 1;
7662 prop_is_valid = ast_ari_validate_string(
7664 if (!prop_is_valid) {
7665 ast_log(LOG_ERROR, "ARI RESTRequest field type failed validation\n");
7666 res = 0;
7667 }
7668 } else
7669 if (strcmp("uri", ast_json_object_iter_key(iter)) == 0) {
7670 int prop_is_valid;
7671 has_uri = 1;
7672 prop_is_valid = ast_ari_validate_string(
7674 if (!prop_is_valid) {
7675 ast_log(LOG_ERROR, "ARI RESTRequest field uri failed validation\n");
7676 res = 0;
7677 }
7678 } else
7679 {
7681 "ARI RESTRequest has undocumented field %s\n",
7683 res = 0;
7684 }
7685 }
7686
7687 if (!has_method) {
7688 ast_log(LOG_ERROR, "ARI RESTRequest missing required field method\n");
7689 res = 0;
7690 }
7691
7692 if (!has_request_id) {
7693 ast_log(LOG_ERROR, "ARI RESTRequest missing required field request_id\n");
7694 res = 0;
7695 }
7696
7697 if (!has_transaction_id) {
7698 ast_log(LOG_ERROR, "ARI RESTRequest missing required field transaction_id\n");
7699 res = 0;
7700 }
7701
7702 if (!has_type) {
7703 ast_log(LOG_ERROR, "ARI RESTRequest missing required field type\n");
7704 res = 0;
7705 }
7706
7707 if (!has_uri) {
7708 ast_log(LOG_ERROR, "ARI RESTRequest missing required field uri\n");
7709 res = 0;
7710 }
7711
7712 return res;
7713}

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 7715 of file ari_model_validators.c.

7716{
7718}
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 7720 of file ari_model_validators.c.

7721{
7722 int res = 1;
7723 struct ast_json_iter *iter;
7724 int has_type = 0;
7725 int has_application = 0;
7726 int has_timestamp = 0;
7727 int has_reason_phrase = 0;
7728 int has_request_id = 0;
7729 int has_status_code = 0;
7730 int has_transaction_id = 0;
7731 int has_uri = 0;
7732
7733 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
7734 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
7735 int prop_is_valid;
7736 prop_is_valid = ast_ari_validate_string(
7738 if (!prop_is_valid) {
7739 ast_log(LOG_ERROR, "ARI RESTResponse field asterisk_id failed validation\n");
7740 res = 0;
7741 }
7742 } else
7743 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
7744 int prop_is_valid;
7745 has_type = 1;
7746 prop_is_valid = ast_ari_validate_string(
7748 if (!prop_is_valid) {
7749 ast_log(LOG_ERROR, "ARI RESTResponse field type failed validation\n");
7750 res = 0;
7751 }
7752 } else
7753 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
7754 int prop_is_valid;
7755 has_application = 1;
7756 prop_is_valid = ast_ari_validate_string(
7758 if (!prop_is_valid) {
7759 ast_log(LOG_ERROR, "ARI RESTResponse field application failed validation\n");
7760 res = 0;
7761 }
7762 } else
7763 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
7764 int prop_is_valid;
7765 has_timestamp = 1;
7766 prop_is_valid = ast_ari_validate_date(
7768 if (!prop_is_valid) {
7769 ast_log(LOG_ERROR, "ARI RESTResponse field timestamp failed validation\n");
7770 res = 0;
7771 }
7772 } else
7773 if (strcmp("content_type", ast_json_object_iter_key(iter)) == 0) {
7774 int prop_is_valid;
7775 prop_is_valid = ast_ari_validate_string(
7777 if (!prop_is_valid) {
7778 ast_log(LOG_ERROR, "ARI RESTResponse field content_type failed validation\n");
7779 res = 0;
7780 }
7781 } else
7782 if (strcmp("message_body", ast_json_object_iter_key(iter)) == 0) {
7783 int prop_is_valid;
7784 prop_is_valid = ast_ari_validate_string(
7786 if (!prop_is_valid) {
7787 ast_log(LOG_ERROR, "ARI RESTResponse field message_body failed validation\n");
7788 res = 0;
7789 }
7790 } else
7791 if (strcmp("reason_phrase", ast_json_object_iter_key(iter)) == 0) {
7792 int prop_is_valid;
7793 has_reason_phrase = 1;
7794 prop_is_valid = ast_ari_validate_string(
7796 if (!prop_is_valid) {
7797 ast_log(LOG_ERROR, "ARI RESTResponse field reason_phrase failed validation\n");
7798 res = 0;
7799 }
7800 } else
7801 if (strcmp("request_id", ast_json_object_iter_key(iter)) == 0) {
7802 int prop_is_valid;
7803 has_request_id = 1;
7804 prop_is_valid = ast_ari_validate_string(
7806 if (!prop_is_valid) {
7807 ast_log(LOG_ERROR, "ARI RESTResponse field request_id failed validation\n");
7808 res = 0;
7809 }
7810 } else
7811 if (strcmp("status_code", ast_json_object_iter_key(iter)) == 0) {
7812 int prop_is_valid;
7813 has_status_code = 1;
7814 prop_is_valid = ast_ari_validate_int(
7816 if (!prop_is_valid) {
7817 ast_log(LOG_ERROR, "ARI RESTResponse field status_code failed validation\n");
7818 res = 0;
7819 }
7820 } else
7821 if (strcmp("transaction_id", ast_json_object_iter_key(iter)) == 0) {
7822 int prop_is_valid;
7823 has_transaction_id = 1;
7824 prop_is_valid = ast_ari_validate_string(
7826 if (!prop_is_valid) {
7827 ast_log(LOG_ERROR, "ARI RESTResponse field transaction_id failed validation\n");
7828 res = 0;
7829 }
7830 } else
7831 if (strcmp("uri", ast_json_object_iter_key(iter)) == 0) {
7832 int prop_is_valid;
7833 has_uri = 1;
7834 prop_is_valid = ast_ari_validate_string(
7836 if (!prop_is_valid) {
7837 ast_log(LOG_ERROR, "ARI RESTResponse field uri failed validation\n");
7838 res = 0;
7839 }
7840 } else
7841 {
7843 "ARI RESTResponse has undocumented field %s\n",
7845 res = 0;
7846 }
7847 }
7848
7849 if (!has_type) {
7850 ast_log(LOG_ERROR, "ARI RESTResponse missing required field type\n");
7851 res = 0;
7852 }
7853
7854 if (!has_application) {
7855 ast_log(LOG_ERROR, "ARI RESTResponse missing required field application\n");
7856 res = 0;
7857 }
7858
7859 if (!has_timestamp) {
7860 ast_log(LOG_ERROR, "ARI RESTResponse missing required field timestamp\n");
7861 res = 0;
7862 }
7863
7864 if (!has_reason_phrase) {
7865 ast_log(LOG_ERROR, "ARI RESTResponse missing required field reason_phrase\n");
7866 res = 0;
7867 }
7868
7869 if (!has_request_id) {
7870 ast_log(LOG_ERROR, "ARI RESTResponse missing required field request_id\n");
7871 res = 0;
7872 }
7873
7874 if (!has_status_code) {
7875 ast_log(LOG_ERROR, "ARI RESTResponse missing required field status_code\n");
7876 res = 0;
7877 }
7878
7879 if (!has_transaction_id) {
7880 ast_log(LOG_ERROR, "ARI RESTResponse missing required field transaction_id\n");
7881 res = 0;
7882 }
7883
7884 if (!has_uri) {
7885 ast_log(LOG_ERROR, "ARI RESTResponse missing required field uri\n");
7886 res = 0;
7887 }
7888
7889 return res;
7890}

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 7892 of file ari_model_validators.c.

7893{
7895}

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 1405 of file ari_model_validators.c.

1406{
1407 int res = 1;
1408 struct ast_json_iter *iter;
1409 int has_channel_uniqueid = 0;
1410 int has_local_ssrc = 0;
1411 int has_remote_ssrc = 0;
1412 int has_rxcount = 0;
1413 int has_rxoctetcount = 0;
1414 int has_rxploss = 0;
1415 int has_txcount = 0;
1416 int has_txoctetcount = 0;
1417 int has_txploss = 0;
1418
1419 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
1420 if (strcmp("channel_uniqueid", ast_json_object_iter_key(iter)) == 0) {
1421 int prop_is_valid;
1422 has_channel_uniqueid = 1;
1423 prop_is_valid = ast_ari_validate_string(
1425 if (!prop_is_valid) {
1426 ast_log(LOG_ERROR, "ARI RTPstat field channel_uniqueid failed validation\n");
1427 res = 0;
1428 }
1429 } else
1430 if (strcmp("local_maxjitter", ast_json_object_iter_key(iter)) == 0) {
1431 int prop_is_valid;
1432 prop_is_valid = ast_ari_validate_double(
1434 if (!prop_is_valid) {
1435 ast_log(LOG_ERROR, "ARI RTPstat field local_maxjitter failed validation\n");
1436 res = 0;
1437 }
1438 } else
1439 if (strcmp("local_maxrxploss", ast_json_object_iter_key(iter)) == 0) {
1440 int prop_is_valid;
1441 prop_is_valid = ast_ari_validate_double(
1443 if (!prop_is_valid) {
1444 ast_log(LOG_ERROR, "ARI RTPstat field local_maxrxploss failed validation\n");
1445 res = 0;
1446 }
1447 } else
1448 if (strcmp("local_minjitter", ast_json_object_iter_key(iter)) == 0) {
1449 int prop_is_valid;
1450 prop_is_valid = ast_ari_validate_double(
1452 if (!prop_is_valid) {
1453 ast_log(LOG_ERROR, "ARI RTPstat field local_minjitter failed validation\n");
1454 res = 0;
1455 }
1456 } else
1457 if (strcmp("local_minrxploss", ast_json_object_iter_key(iter)) == 0) {
1458 int prop_is_valid;
1459 prop_is_valid = ast_ari_validate_double(
1461 if (!prop_is_valid) {
1462 ast_log(LOG_ERROR, "ARI RTPstat field local_minrxploss failed validation\n");
1463 res = 0;
1464 }
1465 } else
1466 if (strcmp("local_normdevjitter", ast_json_object_iter_key(iter)) == 0) {
1467 int prop_is_valid;
1468 prop_is_valid = ast_ari_validate_double(
1470 if (!prop_is_valid) {
1471 ast_log(LOG_ERROR, "ARI RTPstat field local_normdevjitter failed validation\n");
1472 res = 0;
1473 }
1474 } else
1475 if (strcmp("local_normdevrxploss", ast_json_object_iter_key(iter)) == 0) {
1476 int prop_is_valid;
1477 prop_is_valid = ast_ari_validate_double(
1479 if (!prop_is_valid) {
1480 ast_log(LOG_ERROR, "ARI RTPstat field local_normdevrxploss failed validation\n");
1481 res = 0;
1482 }
1483 } else
1484 if (strcmp("local_ssrc", ast_json_object_iter_key(iter)) == 0) {
1485 int prop_is_valid;
1486 has_local_ssrc = 1;
1487 prop_is_valid = ast_ari_validate_int(
1489 if (!prop_is_valid) {
1490 ast_log(LOG_ERROR, "ARI RTPstat field local_ssrc failed validation\n");
1491 res = 0;
1492 }
1493 } else
1494 if (strcmp("local_stdevjitter", ast_json_object_iter_key(iter)) == 0) {
1495 int prop_is_valid;
1496 prop_is_valid = ast_ari_validate_double(
1498 if (!prop_is_valid) {
1499 ast_log(LOG_ERROR, "ARI RTPstat field local_stdevjitter failed validation\n");
1500 res = 0;
1501 }
1502 } else
1503 if (strcmp("local_stdevrxploss", ast_json_object_iter_key(iter)) == 0) {
1504 int prop_is_valid;
1505 prop_is_valid = ast_ari_validate_double(
1507 if (!prop_is_valid) {
1508 ast_log(LOG_ERROR, "ARI RTPstat field local_stdevrxploss failed validation\n");
1509 res = 0;
1510 }
1511 } else
1512 if (strcmp("maxrtt", ast_json_object_iter_key(iter)) == 0) {
1513 int prop_is_valid;
1514 prop_is_valid = ast_ari_validate_double(
1516 if (!prop_is_valid) {
1517 ast_log(LOG_ERROR, "ARI RTPstat field maxrtt failed validation\n");
1518 res = 0;
1519 }
1520 } else
1521 if (strcmp("minrtt", ast_json_object_iter_key(iter)) == 0) {
1522 int prop_is_valid;
1523 prop_is_valid = ast_ari_validate_double(
1525 if (!prop_is_valid) {
1526 ast_log(LOG_ERROR, "ARI RTPstat field minrtt failed validation\n");
1527 res = 0;
1528 }
1529 } else
1530 if (strcmp("normdevrtt", ast_json_object_iter_key(iter)) == 0) {
1531 int prop_is_valid;
1532 prop_is_valid = ast_ari_validate_double(
1534 if (!prop_is_valid) {
1535 ast_log(LOG_ERROR, "ARI RTPstat field normdevrtt failed validation\n");
1536 res = 0;
1537 }
1538 } else
1539 if (strcmp("remote_maxjitter", ast_json_object_iter_key(iter)) == 0) {
1540 int prop_is_valid;
1541 prop_is_valid = ast_ari_validate_double(
1543 if (!prop_is_valid) {
1544 ast_log(LOG_ERROR, "ARI RTPstat field remote_maxjitter failed validation\n");
1545 res = 0;
1546 }
1547 } else
1548 if (strcmp("remote_maxrxploss", ast_json_object_iter_key(iter)) == 0) {
1549 int prop_is_valid;
1550 prop_is_valid = ast_ari_validate_double(
1552 if (!prop_is_valid) {
1553 ast_log(LOG_ERROR, "ARI RTPstat field remote_maxrxploss failed validation\n");
1554 res = 0;
1555 }
1556 } else
1557 if (strcmp("remote_minjitter", ast_json_object_iter_key(iter)) == 0) {
1558 int prop_is_valid;
1559 prop_is_valid = ast_ari_validate_double(
1561 if (!prop_is_valid) {
1562 ast_log(LOG_ERROR, "ARI RTPstat field remote_minjitter failed validation\n");
1563 res = 0;
1564 }
1565 } else
1566 if (strcmp("remote_minrxploss", ast_json_object_iter_key(iter)) == 0) {
1567 int prop_is_valid;
1568 prop_is_valid = ast_ari_validate_double(
1570 if (!prop_is_valid) {
1571 ast_log(LOG_ERROR, "ARI RTPstat field remote_minrxploss failed validation\n");
1572 res = 0;
1573 }
1574 } else
1575 if (strcmp("remote_normdevjitter", ast_json_object_iter_key(iter)) == 0) {
1576 int prop_is_valid;
1577 prop_is_valid = ast_ari_validate_double(
1579 if (!prop_is_valid) {
1580 ast_log(LOG_ERROR, "ARI RTPstat field remote_normdevjitter failed validation\n");
1581 res = 0;
1582 }
1583 } else
1584 if (strcmp("remote_normdevrxploss", ast_json_object_iter_key(iter)) == 0) {
1585 int prop_is_valid;
1586 prop_is_valid = ast_ari_validate_double(
1588 if (!prop_is_valid) {
1589 ast_log(LOG_ERROR, "ARI RTPstat field remote_normdevrxploss failed validation\n");
1590 res = 0;
1591 }
1592 } else
1593 if (strcmp("remote_ssrc", ast_json_object_iter_key(iter)) == 0) {
1594 int prop_is_valid;
1595 has_remote_ssrc = 1;
1596 prop_is_valid = ast_ari_validate_int(
1598 if (!prop_is_valid) {
1599 ast_log(LOG_ERROR, "ARI RTPstat field remote_ssrc failed validation\n");
1600 res = 0;
1601 }
1602 } else
1603 if (strcmp("remote_stdevjitter", ast_json_object_iter_key(iter)) == 0) {
1604 int prop_is_valid;
1605 prop_is_valid = ast_ari_validate_double(
1607 if (!prop_is_valid) {
1608 ast_log(LOG_ERROR, "ARI RTPstat field remote_stdevjitter failed validation\n");
1609 res = 0;
1610 }
1611 } else
1612 if (strcmp("remote_stdevrxploss", ast_json_object_iter_key(iter)) == 0) {
1613 int prop_is_valid;
1614 prop_is_valid = ast_ari_validate_double(
1616 if (!prop_is_valid) {
1617 ast_log(LOG_ERROR, "ARI RTPstat field remote_stdevrxploss failed validation\n");
1618 res = 0;
1619 }
1620 } else
1621 if (strcmp("rtt", ast_json_object_iter_key(iter)) == 0) {
1622 int prop_is_valid;
1623 prop_is_valid = ast_ari_validate_double(
1625 if (!prop_is_valid) {
1626 ast_log(LOG_ERROR, "ARI RTPstat field rtt failed validation\n");
1627 res = 0;
1628 }
1629 } else
1630 if (strcmp("rxcount", ast_json_object_iter_key(iter)) == 0) {
1631 int prop_is_valid;
1632 has_rxcount = 1;
1633 prop_is_valid = ast_ari_validate_int(
1635 if (!prop_is_valid) {
1636 ast_log(LOG_ERROR, "ARI RTPstat field rxcount failed validation\n");
1637 res = 0;
1638 }
1639 } else
1640 if (strcmp("rxjitter", ast_json_object_iter_key(iter)) == 0) {
1641 int prop_is_valid;
1642 prop_is_valid = ast_ari_validate_double(
1644 if (!prop_is_valid) {
1645 ast_log(LOG_ERROR, "ARI RTPstat field rxjitter failed validation\n");
1646 res = 0;
1647 }
1648 } else
1649 if (strcmp("rxoctetcount", ast_json_object_iter_key(iter)) == 0) {
1650 int prop_is_valid;
1651 has_rxoctetcount = 1;
1652 prop_is_valid = ast_ari_validate_int(
1654 if (!prop_is_valid) {
1655 ast_log(LOG_ERROR, "ARI RTPstat field rxoctetcount failed validation\n");
1656 res = 0;
1657 }
1658 } else
1659 if (strcmp("rxploss", ast_json_object_iter_key(iter)) == 0) {
1660 int prop_is_valid;
1661 has_rxploss = 1;
1662 prop_is_valid = ast_ari_validate_int(
1664 if (!prop_is_valid) {
1665 ast_log(LOG_ERROR, "ARI RTPstat field rxploss failed validation\n");
1666 res = 0;
1667 }
1668 } else
1669 if (strcmp("stdevrtt", ast_json_object_iter_key(iter)) == 0) {
1670 int prop_is_valid;
1671 prop_is_valid = ast_ari_validate_double(
1673 if (!prop_is_valid) {
1674 ast_log(LOG_ERROR, "ARI RTPstat field stdevrtt failed validation\n");
1675 res = 0;
1676 }
1677 } else
1678 if (strcmp("txcount", ast_json_object_iter_key(iter)) == 0) {
1679 int prop_is_valid;
1680 has_txcount = 1;
1681 prop_is_valid = ast_ari_validate_int(
1683 if (!prop_is_valid) {
1684 ast_log(LOG_ERROR, "ARI RTPstat field txcount failed validation\n");
1685 res = 0;
1686 }
1687 } else
1688 if (strcmp("txjitter", ast_json_object_iter_key(iter)) == 0) {
1689 int prop_is_valid;
1690 prop_is_valid = ast_ari_validate_double(
1692 if (!prop_is_valid) {
1693 ast_log(LOG_ERROR, "ARI RTPstat field txjitter failed validation\n");
1694 res = 0;
1695 }
1696 } else
1697 if (strcmp("txoctetcount", ast_json_object_iter_key(iter)) == 0) {
1698 int prop_is_valid;
1699 has_txoctetcount = 1;
1700 prop_is_valid = ast_ari_validate_int(
1702 if (!prop_is_valid) {
1703 ast_log(LOG_ERROR, "ARI RTPstat field txoctetcount failed validation\n");
1704 res = 0;
1705 }
1706 } else
1707 if (strcmp("txploss", ast_json_object_iter_key(iter)) == 0) {
1708 int prop_is_valid;
1709 has_txploss = 1;
1710 prop_is_valid = ast_ari_validate_int(
1712 if (!prop_is_valid) {
1713 ast_log(LOG_ERROR, "ARI RTPstat field txploss failed validation\n");
1714 res = 0;
1715 }
1716 } else
1717 {
1719 "ARI RTPstat has undocumented field %s\n",
1721 res = 0;
1722 }
1723 }
1724
1725 if (!has_channel_uniqueid) {
1726 ast_log(LOG_ERROR, "ARI RTPstat missing required field channel_uniqueid\n");
1727 res = 0;
1728 }
1729
1730 if (!has_local_ssrc) {
1731 ast_log(LOG_ERROR, "ARI RTPstat missing required field local_ssrc\n");
1732 res = 0;
1733 }
1734
1735 if (!has_remote_ssrc) {
1736 ast_log(LOG_ERROR, "ARI RTPstat missing required field remote_ssrc\n");
1737 res = 0;
1738 }
1739
1740 if (!has_rxcount) {
1741 ast_log(LOG_ERROR, "ARI RTPstat missing required field rxcount\n");
1742 res = 0;
1743 }
1744
1745 if (!has_rxoctetcount) {
1746 ast_log(LOG_ERROR, "ARI RTPstat missing required field rxoctetcount\n");
1747 res = 0;
1748 }
1749
1750 if (!has_rxploss) {
1751 ast_log(LOG_ERROR, "ARI RTPstat missing required field rxploss\n");
1752 res = 0;
1753 }
1754
1755 if (!has_txcount) {
1756 ast_log(LOG_ERROR, "ARI RTPstat missing required field txcount\n");
1757 res = 0;
1758 }
1759
1760 if (!has_txoctetcount) {
1761 ast_log(LOG_ERROR, "ARI RTPstat missing required field txoctetcount\n");
1762 res = 0;
1763 }
1764
1765 if (!has_txploss) {
1766 ast_log(LOG_ERROR, "ARI RTPstat missing required field txploss\n");
1767 res = 0;
1768 }
1769
1770 return res;
1771}

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 1773 of file ari_model_validators.c.

1774{
1776}
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 2186 of file ari_model_validators.c.

2187{
2188 int res = 1;
2189 struct ast_json_iter *iter;
2190 int has_formats = 0;
2191 int has_id = 0;
2192
2193 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2194 if (strcmp("formats", ast_json_object_iter_key(iter)) == 0) {
2195 int prop_is_valid;
2196 has_formats = 1;
2197 prop_is_valid = ast_ari_validate_list(
2200 if (!prop_is_valid) {
2201 ast_log(LOG_ERROR, "ARI Sound field formats failed validation\n");
2202 res = 0;
2203 }
2204 } else
2205 if (strcmp("id", ast_json_object_iter_key(iter)) == 0) {
2206 int prop_is_valid;
2207 has_id = 1;
2208 prop_is_valid = ast_ari_validate_string(
2210 if (!prop_is_valid) {
2211 ast_log(LOG_ERROR, "ARI Sound field id failed validation\n");
2212 res = 0;
2213 }
2214 } else
2215 if (strcmp("text", ast_json_object_iter_key(iter)) == 0) {
2216 int prop_is_valid;
2217 prop_is_valid = ast_ari_validate_string(
2219 if (!prop_is_valid) {
2220 ast_log(LOG_ERROR, "ARI Sound field text failed validation\n");
2221 res = 0;
2222 }
2223 } else
2224 {
2226 "ARI Sound has undocumented field %s\n",
2228 res = 0;
2229 }
2230 }
2231
2232 if (!has_formats) {
2233 ast_log(LOG_ERROR, "ARI Sound missing required field formats\n");
2234 res = 0;
2235 }
2236
2237 if (!has_id) {
2238 ast_log(LOG_ERROR, "ARI Sound missing required field id\n");
2239 res = 0;
2240 }
2241
2242 return res;
2243}

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 2245 of file ari_model_validators.c.

2246{
2248}
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 8353 of file ari_model_validators.c.

8354{
8355 int res = 1;
8356 struct ast_json_iter *iter;
8357 int has_type = 0;
8358 int has_application = 0;
8359 int has_timestamp = 0;
8360 int has_channel = 0;
8361
8362 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8363 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8364 int prop_is_valid;
8365 prop_is_valid = ast_ari_validate_string(
8367 if (!prop_is_valid) {
8368 ast_log(LOG_ERROR, "ARI StasisEnd field asterisk_id failed validation\n");
8369 res = 0;
8370 }
8371 } else
8372 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8373 int prop_is_valid;
8374 has_type = 1;
8375 prop_is_valid = ast_ari_validate_string(
8377 if (!prop_is_valid) {
8378 ast_log(LOG_ERROR, "ARI StasisEnd field type failed validation\n");
8379 res = 0;
8380 }
8381 } else
8382 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8383 int prop_is_valid;
8384 has_application = 1;
8385 prop_is_valid = ast_ari_validate_string(
8387 if (!prop_is_valid) {
8388 ast_log(LOG_ERROR, "ARI StasisEnd field application failed validation\n");
8389 res = 0;
8390 }
8391 } else
8392 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8393 int prop_is_valid;
8394 has_timestamp = 1;
8395 prop_is_valid = ast_ari_validate_date(
8397 if (!prop_is_valid) {
8398 ast_log(LOG_ERROR, "ARI StasisEnd field timestamp failed validation\n");
8399 res = 0;
8400 }
8401 } else
8402 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
8403 int prop_is_valid;
8404 has_channel = 1;
8405 prop_is_valid = ast_ari_validate_channel(
8407 if (!prop_is_valid) {
8408 ast_log(LOG_ERROR, "ARI StasisEnd field channel failed validation\n");
8409 res = 0;
8410 }
8411 } else
8412 {
8414 "ARI StasisEnd has undocumented field %s\n",
8416 res = 0;
8417 }
8418 }
8419
8420 if (!has_type) {
8421 ast_log(LOG_ERROR, "ARI StasisEnd missing required field type\n");
8422 res = 0;
8423 }
8424
8425 if (!has_application) {
8426 ast_log(LOG_ERROR, "ARI StasisEnd missing required field application\n");
8427 res = 0;
8428 }
8429
8430 if (!has_timestamp) {
8431 ast_log(LOG_ERROR, "ARI StasisEnd missing required field timestamp\n");
8432 res = 0;
8433 }
8434
8435 if (!has_channel) {
8436 ast_log(LOG_ERROR, "ARI StasisEnd missing required field channel\n");
8437 res = 0;
8438 }
8439
8440 return res;
8441}

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 8443 of file ari_model_validators.c.

8444{
8446}

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 8448 of file ari_model_validators.c.

8449{
8450 int res = 1;
8451 struct ast_json_iter *iter;
8452 int has_type = 0;
8453 int has_application = 0;
8454 int has_timestamp = 0;
8455 int has_args = 0;
8456 int has_channel = 0;
8457
8458 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8459 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8460 int prop_is_valid;
8461 prop_is_valid = ast_ari_validate_string(
8463 if (!prop_is_valid) {
8464 ast_log(LOG_ERROR, "ARI StasisStart field asterisk_id failed validation\n");
8465 res = 0;
8466 }
8467 } else
8468 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8469 int prop_is_valid;
8470 has_type = 1;
8471 prop_is_valid = ast_ari_validate_string(
8473 if (!prop_is_valid) {
8474 ast_log(LOG_ERROR, "ARI StasisStart field type failed validation\n");
8475 res = 0;
8476 }
8477 } else
8478 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8479 int prop_is_valid;
8480 has_application = 1;
8481 prop_is_valid = ast_ari_validate_string(
8483 if (!prop_is_valid) {
8484 ast_log(LOG_ERROR, "ARI StasisStart field application failed validation\n");
8485 res = 0;
8486 }
8487 } else
8488 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8489 int prop_is_valid;
8490 has_timestamp = 1;
8491 prop_is_valid = ast_ari_validate_date(
8493 if (!prop_is_valid) {
8494 ast_log(LOG_ERROR, "ARI StasisStart field timestamp failed validation\n");
8495 res = 0;
8496 }
8497 } else
8498 if (strcmp("args", ast_json_object_iter_key(iter)) == 0) {
8499 int prop_is_valid;
8500 has_args = 1;
8501 prop_is_valid = ast_ari_validate_list(
8504 if (!prop_is_valid) {
8505 ast_log(LOG_ERROR, "ARI StasisStart field args failed validation\n");
8506 res = 0;
8507 }
8508 } else
8509 if (strcmp("channel", ast_json_object_iter_key(iter)) == 0) {
8510 int prop_is_valid;
8511 has_channel = 1;
8512 prop_is_valid = ast_ari_validate_channel(
8514 if (!prop_is_valid) {
8515 ast_log(LOG_ERROR, "ARI StasisStart field channel failed validation\n");
8516 res = 0;
8517 }
8518 } else
8519 if (strcmp("replace_channel", ast_json_object_iter_key(iter)) == 0) {
8520 int prop_is_valid;
8521 prop_is_valid = ast_ari_validate_channel(
8523 if (!prop_is_valid) {
8524 ast_log(LOG_ERROR, "ARI StasisStart field replace_channel failed validation\n");
8525 res = 0;
8526 }
8527 } else
8528 {
8530 "ARI StasisStart has undocumented field %s\n",
8532 res = 0;
8533 }
8534 }
8535
8536 if (!has_type) {
8537 ast_log(LOG_ERROR, "ARI StasisStart missing required field type\n");
8538 res = 0;
8539 }
8540
8541 if (!has_application) {
8542 ast_log(LOG_ERROR, "ARI StasisStart missing required field application\n");
8543 res = 0;
8544 }
8545
8546 if (!has_timestamp) {
8547 ast_log(LOG_ERROR, "ARI StasisStart missing required field timestamp\n");
8548 res = 0;
8549 }
8550
8551 if (!has_args) {
8552 ast_log(LOG_ERROR, "ARI StasisStart missing required field args\n");
8553 res = 0;
8554 }
8555
8556 if (!has_channel) {
8557 ast_log(LOG_ERROR, "ARI StasisStart missing required field channel\n");
8558 res = 0;
8559 }
8560
8561 return res;
8562}

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 8564 of file ari_model_validators.c.

8565{
8567}

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 2078 of file ari_model_validators.c.

2079{
2080 int res = 1;
2081 struct ast_json_iter *iter;
2082 int has_format = 0;
2083 int has_name = 0;
2084
2085 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
2086 if (strcmp("format", ast_json_object_iter_key(iter)) == 0) {
2087 int prop_is_valid;
2088 has_format = 1;
2089 prop_is_valid = ast_ari_validate_string(
2091 if (!prop_is_valid) {
2092 ast_log(LOG_ERROR, "ARI StoredRecording field format failed validation\n");
2093 res = 0;
2094 }
2095 } else
2096 if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
2097 int prop_is_valid;
2098 has_name = 1;
2099 prop_is_valid = ast_ari_validate_string(
2101 if (!prop_is_valid) {
2102 ast_log(LOG_ERROR, "ARI StoredRecording field name failed validation\n");
2103 res = 0;
2104 }
2105 } else
2106 {
2108 "ARI StoredRecording has undocumented field %s\n",
2110 res = 0;
2111 }
2112 }
2113
2114 if (!has_format) {
2115 ast_log(LOG_ERROR, "ARI StoredRecording missing required field format\n");
2116 res = 0;
2117 }
2118
2119 if (!has_name) {
2120 ast_log(LOG_ERROR, "ARI StoredRecording missing required field name\n");
2121 res = 0;
2122 }
2123
2124 return res;
2125}

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 2127 of file ari_model_validators.c.

2128{
2130}
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 939 of file ari_model_validators.c.

940{
941 int res = 1;
942 struct ast_json_iter *iter;
943 int has_body = 0;
944 int has_from = 0;
945 int has_to = 0;
946
947 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
948 if (strcmp("body", ast_json_object_iter_key(iter)) == 0) {
949 int prop_is_valid;
950 has_body = 1;
951 prop_is_valid = ast_ari_validate_string(
953 if (!prop_is_valid) {
954 ast_log(LOG_ERROR, "ARI TextMessage field body failed validation\n");
955 res = 0;
956 }
957 } else
958 if (strcmp("from", ast_json_object_iter_key(iter)) == 0) {
959 int prop_is_valid;
960 has_from = 1;
961 prop_is_valid = ast_ari_validate_string(
963 if (!prop_is_valid) {
964 ast_log(LOG_ERROR, "ARI TextMessage field from failed validation\n");
965 res = 0;
966 }
967 } else
968 if (strcmp("to", ast_json_object_iter_key(iter)) == 0) {
969 int prop_is_valid;
970 has_to = 1;
971 prop_is_valid = ast_ari_validate_string(
973 if (!prop_is_valid) {
974 ast_log(LOG_ERROR, "ARI TextMessage field to failed validation\n");
975 res = 0;
976 }
977 } else
978 if (strcmp("variables", ast_json_object_iter_key(iter)) == 0) {
979 int prop_is_valid;
980 prop_is_valid = ast_ari_validate_object(
982 if (!prop_is_valid) {
983 ast_log(LOG_ERROR, "ARI TextMessage field variables failed validation\n");
984 res = 0;
985 }
986 } else
987 {
989 "ARI TextMessage has undocumented field %s\n",
991 res = 0;
992 }
993 }
994
995 if (!has_body) {
996 ast_log(LOG_ERROR, "ARI TextMessage missing required field body\n");
997 res = 0;
998 }
999
1000 if (!has_from) {
1001 ast_log(LOG_ERROR, "ARI TextMessage missing required field from\n");
1002 res = 0;
1003 }
1004
1005 if (!has_to) {
1006 ast_log(LOG_ERROR, "ARI TextMessage missing required field to\n");
1007 res = 0;
1008 }
1009
1010 return res;
1011}

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 1013 of file ari_model_validators.c.

1014{
1016}
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 8569 of file ari_model_validators.c.

8570{
8571 int res = 1;
8572 struct ast_json_iter *iter;
8573 int has_type = 0;
8574 int has_application = 0;
8575 int has_timestamp = 0;
8576 int has_message = 0;
8577
8578 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
8579 if (strcmp("asterisk_id", ast_json_object_iter_key(iter)) == 0) {
8580 int prop_is_valid;
8581 prop_is_valid = ast_ari_validate_string(
8583 if (!prop_is_valid) {
8584 ast_log(LOG_ERROR, "ARI TextMessageReceived field asterisk_id failed validation\n");
8585 res = 0;
8586 }
8587 } else
8588 if (strcmp("type", ast_json_object_iter_key(iter)) == 0) {
8589 int prop_is_valid;
8590 has_type = 1;
8591 prop_is_valid = ast_ari_validate_string(
8593 if (!prop_is_valid) {
8594 ast_log(LOG_ERROR, "ARI TextMessageReceived field type failed validation\n");
8595 res = 0;
8596 }
8597 } else
8598 if (strcmp("application", ast_json_object_iter_key(iter)) == 0) {
8599 int prop_is_valid;
8600 has_application = 1;
8601 prop_is_valid = ast_ari_validate_string(
8603 if (!prop_is_valid) {
8604 ast_log(LOG_ERROR, "ARI TextMessageReceived field application failed validation\n");
8605 res = 0;
8606 }
8607 } else
8608 if (strcmp("timestamp", ast_json_object_iter_key(iter)) == 0) {
8609 int prop_is_valid;
8610 has_timestamp = 1;
8611 prop_is_valid = ast_ari_validate_date(
8613 if (!prop_is_valid) {
8614 ast_log(LOG_ERROR, "ARI TextMessageReceived field timestamp failed validation\n");
8615 res = 0;
8616 }
8617 } else
8618 if (strcmp("endpoint", ast_json_object_iter_key(iter)) == 0) {
8619 int prop_is_valid;
8620 prop_is_valid = ast_ari_validate_endpoint(
8622 if (!prop_is_valid) {
8623 ast_log(LOG_ERROR, "ARI TextMessageReceived field endpoint failed validation\n");
8624 res = 0;
8625 }
8626 } else
8627 if (strcmp("message", ast_json_object_iter_key(iter)) == 0) {
8628 int prop_is_valid;
8629 has_message = 1;
8630 prop_is_valid = ast_ari_validate_text_message(
8632 if (!prop_is_valid) {
8633 ast_log(LOG_ERROR, "ARI TextMessageReceived field message failed validation\n");
8634 res = 0;
8635 }
8636 } else
8637 {
8639 "ARI TextMessageReceived has undocumented field %s\n",
8641 res = 0;
8642 }
8643 }
8644
8645 if (!has_type) {
8646 ast_log(LOG_ERROR, "ARI TextMessageReceived missing required field type\n");
8647 res = 0;
8648 }
8649
8650 if (!has_application) {
8651 ast_log(LOG_ERROR, "ARI TextMessageReceived missing required field application\n");
8652 res = 0;
8653 }
8654
8655 if (!has_timestamp) {
8656 ast_log(LOG_ERROR, "ARI TextMessageReceived missing required field timestamp\n");
8657 res = 0;
8658 }
8659
8660 if (!has_message) {
8661 ast_log(LOG_ERROR, "ARI TextMessageReceived missing required field message\n");
8662 res = 0;
8663 }
8664
8665 return res;
8666}

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_bridges_get_bridge_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_variables()

int ast_ari_validate_variables ( struct ast_json json)

Validator for Variables.

A dictionary of channel variables

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_variables = 0;
826
827 for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
828 if (strcmp("variables", ast_json_object_iter_key(iter)) == 0) {
829 int prop_is_valid;
830 has_variables = 1;
831 prop_is_valid = ast_ari_validate_object(
833 if (!prop_is_valid) {
834 ast_log(LOG_ERROR, "ARI Variables field variables failed validation\n");
835 res = 0;
836 }
837 } else
838 {
840 "ARI Variables has undocumented field %s\n",
842 res = 0;
843 }
844 }
845
846 if (!has_variables) {
847 ast_log(LOG_ERROR, "ARI Variables missing required field variables\n");
848 res = 0;
849 }
850
851 return res;
852}

References ast_ari_validate_object(), 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_get_bridge_vars_cb(), ast_ari_channels_get_channel_vars_cb(), and ast_ari_validate_variables_fn().

◆ ast_ari_validate_variables_fn()

ari_validator ast_ari_validate_variables_fn ( void  )

Function pointer to ast_ari_validate_variables().

Definition at line 854 of file ari_model_validators.c.

855{
857}
int ast_ari_validate_variables(struct ast_json *json)
Validator for Variables.

References ast_ari_validate_variables().

◆ 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_bridge_var_cb(), ast_ari_bridges_set_bridge_vars_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_set_channel_vars_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().