Skip to main content
Glama
models.py58.5 kB
# generated by fastapi-codegen: # filename: openapi.yaml # timestamp: 2025-07-07T17:37:22+00:00 from __future__ import annotations from enum import Enum from typing import Any, Dict, List, Optional from pydantic import BaseModel, Field, PositiveFloat, RootModel, confloat, conint class BulkCallParameters(BaseModel): AnswerUrl: str = Field( ..., description='Fully qualified URL which will provide the RestXML once the call connects', examples=['https://example.com/answer/'], ) CallerName: Optional[str] = Field( None, description='Caller Name to be set for the call', examples=['Bulk Test'] ) ConfirmKey: Optional[str] = Field( None, description='DTMF tone the called party must send to accept the call', examples=['1'], ) ConfirmSound: Optional[str] = Field( None, description='Remote URL to fetch with POST HTTP request which must return a RestXML with Play, Wait and/or Speak Elements only (all others are ignored). This RESTXML is played to the called party when he answered', examples=['https://example.com/confirm_sound/'], ) CoreUUID: Optional[str] = Field( None, description='Core UUID of the desired FreeSWITCH instance (an Eqivo extension)', examples=['2e8e6275-7cfe-4e3c-a8d6-25316b4519c7'], ) Delimiter: str = Field( ..., description='Any character, except `/` and `,`, which will be used as a separator within several parameters', examples=['<'], ) ExtraDialString: Optional[str] = Field( None, description='Additional [channel variables](https://freeswitch.org/confluence/display/FREESWITCH/Channel+Variables) to be added to the originate FreeSWITCH API call.', examples=['bridge_early_media=true,hangup_after_bridge=true'], ) From: str = Field( ..., description='Phone number to be used as Caller ID', examples=['15551234567'], ) GatewayCodecs: Optional[str] = Field( None, description='List of codec(s) to be used for each gateway. Enclose codec groups in single quotes', examples=["'PCMA,PCMU','G729,PCMU','PCMA,G729'"], ) GatewayRetries: Optional[str] = Field( None, description='List of maximum retry counts for each gateway', examples=['3,1,2'], ) GatewayTimeouts: Optional[str] = Field( None, description='List of maximum timeout amounts (in seconds) for each gateway', examples=['10,30,20'], ) Gateways: str = Field( ..., description='Comma separated FreeSWITCH gateway strings. When multiple gateways are specified, they will be tried sequentially (failover)', examples=['user/,sofia/gateway/PSTNgateway1/,sofia/gateway/PSTNgateway2/'], ) HangupOnRing: Optional[conint(ge=1)] = Field( None, description="Schedules the call's hangup at a given time offset (in seconds) after the destination starts ringing", examples=[90], ) HangupUrl: Optional[str] = Field( None, description='Fully qualified URL to which the call hangup notification will be POSTed. `HangupCause` is added to the usual call [call notification parameters](#/components/schemas/CallNotificationParameters)', examples=['https://example.com/hangup/'], ) RejectCauses: Optional[str] = Field( 'NO_ANSWER,ORIGINATOR_CANCEL,ALLOTTED_TIMEOUT,NO_USER_RESPONSE,CALL_REJECTED', description='Comma separated reject causes', examples=['USER_BUSY,NO_ANSWER'], ) RingUrl: Optional[str] = Field( None, description='Fully qualified URL to which the call ringing notification will be POSTed. `RequestUUID` and `CallUUID` is added to the usual [call notification parameters](#/components/schemas/CallNotificationParameters)', examples=['https://example.com/ring/'], ) SendDigits: Optional[str] = Field( None, description='DTMF tones to be sent when the call is answered. Each occurrence of `w` implies a 0.5 seconds delay whereas `W` will apply a whole second delay. To alter the tone duration (by default, 2000ms), append `@` and the length in milliseconds at the end of the string', examples=['1w2w3W#*@1500'], ) SendOnPreanswer: Optional[bool] = Field( None, description='When set to `true`, DTMF tones will be sent as early media rather than when the call is answered', examples=[False], ) TimeLimit: Optional[conint(ge=1)] = Field( None, description="Schedules the call's hangup at a given time offset (in seconds) after the call is answered", examples=[90], ) To: str = Field( ..., description='Phone number to be called', examples=['15557654321'] ) class Message(Enum): BulkCalls_Request_Executed = 'BulkCalls Request Executed' Mandatory_Parameters_Missing = 'Mandatory Parameters Missing' This_Delimiter_is_not_allowed = 'This Delimiter is not allowed' BulkCalls_should_be_used_for_at_least_2_numbers = ( 'BulkCalls should be used for at least 2 numbers' ) field_To__parameter_length_does_not_match__Gateways__Length = ( '\'To\' parameter length does not match \'Gateways\' Length' ) AnswerUrl_is_not_Valid = 'AnswerUrl is not Valid' HangupUrl_is_not_Valid = 'HangupUrl is not Valid' RingUrl_is_not_Valid = 'RingUrl is not Valid' Unknown_Core_UUID = 'Unknown Core UUID' class BulkCallResponse(BaseModel): Message_1: Message = Field( ..., alias='Message', description='Response message', examples=['BulkCalls Request Executed'], ) RequestUUID: List[str] = Field( ..., description='Unique identifiers of each Call request (UUIDv4)', examples=[ [ 'fc92f3f4-3777-43ed-b269-5b4a0d474b12', '22f94a34-2890-4f18-ab99-5c47e25dd3c3', 'd1337342-0225-465d-b7bb-1b5d88eb39d2', ] ], ) RestApiServer: str = Field( ..., description='API server which handled this request (an Eqivo extension)', examples=['localhost'], ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class AnsweredBy(Enum): machine_start = 'machine_start' machine_end_beep = 'machine_end_beep' machine_end_other = 'machine_end_other' human = 'human' unknown = 'unknown' class CallStatus(Enum): ringing = 'ringing' early_media = 'early-media' answer = 'answer' in_progress = 'in-progress' completed = 'completed' class Direction(Enum): inbound = 'inbound' outbound = 'outbound' class CallNotificationParameters(BaseModel): ALegRequestUUID: Optional[str] = Field( None, description="A leg call request's unique identifier", examples=['5a4ef7cf-dc08-4cd3-a9d0-6d1555ba3309'], ) ALegUUID: Optional[str] = Field( None, description="A leg call's unique identifier, assigned by FreeSWITCH", examples=['8dd5a1e0-6621-4a07-98b3-e033b014fba7'], ) AnsweredBy_1: Optional[AnsweredBy] = Field( None, alias='AnsweredBy', description='Answering actor, when answering machine detection is enabled', examples=['human'], ) CallStatus_1: CallStatus = Field( ..., alias='CallStatus', description="Call's current status", examples=['in-progress'], ) CallUUID: str = Field( ..., description="Call's unique identifier, assigned by FreeSWITCH", examples=['7ff22856-357e-4b77-812c-22d28cbb8982'], ) CallerName: str = Field( ..., description='Caller name set for the call', examples=['Alice'] ) CoreUUID: str = Field( ..., description="FreeSWITCH's instance unique identifier (Eqivo extension)", examples=['b14e0893-98ef-44b6-8e4b-e4bcf937bfa9'], ) Direction_1: Direction = Field( ..., alias='Direction', description="Call's direction", examples=['outbound'] ) ForwardedFrom: Optional[str] = Field( None, description='Original call destination (before diversion)', examples=['15551239876'], ) From: str = Field( ..., description='Caller ID set for the call', examples=['15557654321'] ) MachineDetectionDuration: Optional[int] = Field( None, description='Actual answering machine detection assessment duration (in milliseconds)', examples=['19'], ) RestApiServer: str = Field( ..., description='Eqivo Rest API server which controls the call (Eqivo extension)', examples=['localhost'], ) ScheduledHangupId: Optional[str] = Field( None, description='Unique identifier of the scheduled hangup task', examples=['8f4a3488-3283-408b-bf6f-b957d5d4cf00'], ) To: str = Field(..., description='Called phone number', examples=['15551234567']) class AsyncAmdStatusCallbackMethod(Enum): POST = 'POST' GET = 'GET' class MachineDetection(Enum): Enable = 'Enable' DetectMessageEnd = 'DetectMessageEnd' class CallParameters(BaseModel): AnswerUrl: str = Field( ..., description='Fully qualified URL which will provide the RestXML once the call connects', examples=['https://example.com/answer/'], ) AsyncAMD: Optional[bool] = Field( False, description='When set to `true`, the call flow execution is blocked until answering machine detection is complete (an Eqivo extension)', examples=[True], ) AsyncAmdStatusCallback: Optional[str] = Field( None, description='Fully qualified URL to which the answering machine detection result will be sent. `AnsweredBy` and `MachineDetectionDuration` are appended to the usual [call notification parameters](#/components/schemas/CallNotificationParameters) (an Eqivo extension)', ) AsyncAmdStatusCallbackMethod_1: Optional[AsyncAmdStatusCallbackMethod] = Field( 'POST', alias='AsyncAmdStatusCallbackMethod', description='HTTP method to be used when answering machine detection is completed (an Eqivo extension)', examples=['GET'], ) CallerName: Optional[str] = Field( None, description='Caller Name to be set for the call', examples=['Test'] ) CoreUUID: Optional[str] = Field( None, description='Core UUID of the desired FreeSWITCH instance (an Eqivo extension)', examples=['45521fc6-a4b3-42b6-96ad-9136256be216'], ) ExtraDialString: Optional[str] = Field( None, description='Additional [channel variables](https://freeswitch.org/confluence/display/FREESWITCH/Channel+Variables) to be added to the originate FreeSWITCH API call.', examples=['bridge_early_media=true,hangup_after_bridge=true'], ) From: str = Field( ..., description='Phone number to be used as Caller ID', examples=['15551234567'], ) GatewayCodecs: Optional[str] = Field( None, description='List of codec(s) to be used for each gateway. Enclose codec groups in single quotes', examples=["'PCMA,PCMU','G729,PCMU','PCMA,G729'"], ) GatewayRetries: Optional[str] = Field( None, description='List of maximum retry counts for each gateway', examples=['3,1,2'], ) GatewayTimeouts: Optional[str] = Field( None, description='List of maximum timeout amounts (in seconds) for each gateway', examples=['10,30,20'], ) Gateways: str = Field( ..., description='Comma separated FreeSWITCH gateway strings. When multiple gateways are specified, they will be tried sequentially (failover)', examples=['user/,sofia/gateway/PSTNgateway1/,sofia/gateway/PSTNgateway2/'], ) HangupOnRing: Optional[conint(ge=1)] = Field( None, description="Schedules the call's hangup at a given time offset (in seconds) after the destination starts ringing", examples=[90], ) HangupUrl: Optional[str] = Field( None, description='Fully qualified URL to which the call hangup notification will be POSTed. `HangupCause` is added to the usual call [call notification parameters](#/components/schemas/CallNotificationParameters)', examples=['https://example.com/hangup/'], ) MachineDetection_1: Optional[MachineDetection] = Field( None, alias='MachineDetection', description='Enables answering machine detection; optionally, it waits until the greeting message has been played back (an Eqivo extension)', examples=['Enable'], ) MachineDetectionSilenceTimeout: Optional[conint(ge=2000, le=10000)] = Field( 5000, description='Initial silence threshold (in milliseconds, an Eqivo extension)', examples=[3000], ) MachineDetectionSpeechEndThreshold: Optional[conint(ge=500, le=5000)] = Field( 1200, description='Silence threshold (in milliseconds, an Eqivo extension)', examples=[1000], ) MachineDetectionSpeechThreshold: Optional[conint(ge=1000, le=6000)] = Field( 2400, description='Speech activity/utterance threshold (in milliseconds, an Eqivo extension)', examples=[2000], ) MachineDetectionTimeout: Optional[conint(ge=3, le=59)] = Field( 30, description='Amount of time (in seconds) allotted for answering machine detection assessment (an Eqivo extension)', examples=[5], ) RingUrl: Optional[str] = Field( None, description='Fully qualified URL to which the call ringing notification will be POSTed. `RequestUUID` and `CallUUID` is added to the usual [call notification parameters](#/components/schemas/CallNotificationParameters)', examples=['https://example.com/ring/'], ) SendDigits: Optional[str] = Field( None, description='DTMF tones to be sent when the call is answered. Each occurrence of `w` implies a 0.5 seconds delay whereas `W` will apply a whole second delay. To alter the tone duration (by default, 2000ms), append `@` and the length in milliseconds at the end of the string', examples=['1w2w3W#*@1500'], ) SendOnPreanswer: Optional[bool] = Field( None, description='When set to `true`, DTMF tones will be sent as early media rather than when the call is answered', examples=[False], ) TimeLimit: Optional[conint(ge=1)] = Field( None, description="Schedules the call's hangup at a given time offset (in seconds) after the call is answered", examples=[90], ) To: str = Field( ..., description='Phone number to be called', examples=['15557654321'] ) class Message1(Enum): Call_Request_Executed = 'Call Request Executed' Mandatory_Parameters_Missing = 'Mandatory Parameters Missing' AnswerUrl_is_not_Valid = 'AnswerUrl is not Valid' HangupUrl_is_not_Valid = 'HangupUrl is not Valid' RingUrl_is_not_Valid = 'RingUrl is not Valid' Unknown_Core_UUID = 'Unknown Core UUID' class CallResponse(BaseModel): Message: Message1 = Field( ..., description='Response message', examples=['Call Request Executed'] ) RequestUUID: str = Field( ..., description='Unique identifier of the Call request (UUIDv4)', examples=['fc92f3f4-3777-43ed-b269-5b4a0d474b12'], ) RestApiServer: str = Field( ..., description='API server which handled this request (an Eqivo extension)', examples=['localhost'], ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class CancelScheduledHangupParameters(BaseModel): SchedHangupId: str = Field( ..., description='Unique identifier returned when scheduled hangup was originally requested', examples=['ea428fbd-ac9b-498c-8bb2-a36ac49f10fd'], ) class Message2(Enum): Scheduled_Hangup_Cancelation_Executed = 'Scheduled Hangup Cancelation Executed' SchedHangupId_Parameter_must_be_present = 'SchedHangupId Parameter must be present' Scheduled_Hangup_Cancelation_Failed____ID_not_found = ( 'Scheduled Hangup Cancelation Failed -- ID not found' ) Scheduled_Hangup_Cancelation_Failed = 'Scheduled Hangup Cancelation Failed' class CancelScheduledHangupResponse(BaseModel): Message: Message2 = Field( ..., description='Response message', examples=['Scheduled Hangup Cancelation Executed'], ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class CancelScheduledPlayParameters(BaseModel): SchedPlayId: str = Field( ..., description='Unique identifier returned when scheduled playback was originally requested', examples=['ea428fbd-ac9b-498c-8bb2-a36ac49f10fd'], ) class Message3(Enum): Scheduled_Play_Cancelation_Executed = 'Scheduled Play Cancelation Executed' SchedPlayId_Parameter_must_be_present = 'SchedPlayId Parameter must be present' Scheduled_Play_Cancelation_Failed____ID_not_found = ( 'Scheduled Play Cancelation Failed -- ID not found' ) Scheduled_Play_Cancelation_Failed = 'Scheduled Play Cancelation Failed' class CancelScheduledPlayResponse(BaseModel): Message: Message3 = Field( ..., description='Response message', examples=['Scheduled Play Cancelation Executed'], ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class ConferenceDeafParameters(BaseModel): ConferenceName: str = Field( ..., description='Name of the conference in question', examples=['Room402'] ) MemberID: str = Field( ..., description='List of comma separated member IDs to be affected; `all` shorthand is available too.', examples=['13,42'], ) class Message4(Enum): Conference_Deaf_Executed = 'Conference Deaf Executed' ConferenceName_Parameter_must_be_present = ( 'ConferenceName Parameter must be present' ) MemberID_Parameter_must_be_present = 'MemberID Parameter must be present' Conference_Deaf_Failed____Conference_not_found = ( 'Conference Deaf Failed -- Conference not found' ) class ConferenceDeafResponse(BaseModel): Members: Optional[List[str]] = Field( None, description='List of affected members', examples=[['13', '42']] ) Message: Message4 = Field( ..., description='Response message', examples=['Conference Deaf Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class ConferenceHangupParameters(BaseModel): ConferenceName: str = Field( ..., description='Name of the conference in question', examples=['Room402'] ) MemberID: str = Field( ..., description='List of comma separated member IDs to be affected; `all` shorthand is available too.', examples=['13,42'], ) class Message5(Enum): Conference_Hangup_Executed = 'Conference Hangup Executed' ConferenceName_Parameter_must_be_present = ( 'ConferenceName Parameter must be present' ) MemberID_Parameter_must_be_present = 'MemberID Parameter must be present' Conference_Hangup_Failed____Conference_not_found = ( 'Conference Hangup Failed -- Conference not found' ) class ConferenceHangupResponse(BaseModel): Members: Optional[List[str]] = Field( None, description='List of affected members', examples=[['13', '42']] ) Message: Message5 = Field( ..., description='Response message', examples=['Conference Hangup Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class ConferenceKickParameters(BaseModel): ConferenceName: str = Field( ..., description='Name of the conference in question', examples=['Room402'] ) MemberID: str = Field( ..., description='List of comma separated member IDs to be affected; `all` shorthand is available too.', examples=['13,42'], ) class Message6(Enum): Conference_Kick_Executed = 'Conference Kick Executed' ConferenceName_Parameter_must_be_present = ( 'ConferenceName Parameter must be present' ) MemberID_Parameter_must_be_present = 'MemberID Parameter must be present' Conference_Kick_Failed____Conference_not_found = ( 'Conference Kick Failed -- Conference not found' ) class ConferenceKickResponse(BaseModel): Members: Optional[List[str]] = Field( None, description='List of affected members', examples=[['13', '42']] ) Message: Message6 = Field( ..., description='Response message', examples=['Conference Kick Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class ConferenceListMembersParameters(BaseModel): CallUUIDFilter: Optional[str] = Field( None, description='Restricts listed calls to the provided values (comma separated call UUID list)', examples=[ '872066e1-fd89-4c57-8733-93c113980bc9,55e4214a-604a-4b56-82e4-97834b0d524e' ], ) ConferenceName: str = Field( ..., description='Name of the conference', examples=['Room402'] ) DeafFilter: Optional[bool] = Field( 'false', description='Restricts listed members to deaf ones', examples=['true'] ) MemberFilter: Optional[str] = Field( None, description='Restricts listed members to the provided values (comma separated member ID list)', examples=['13,42'], ) MutedFilter: Optional[bool] = Field( 'false', description='Restricts listed members to muted ones', examples=['true'] ) class Message7(Enum): Conference_ListMembers_Executed = 'Conference ListMembers Executed' ConferenceName_Parameter_must_be_present = ( 'ConferenceName Parameter must be present' ) Conference_ListMembers_Failed_to_parse_result = ( 'Conference ListMembers Failed to parse result' ) Conference_ListMembers_Failed____Conference_not_found = ( 'Conference ListMembers Failed -- Conference not found' ) class ConferenceListMembersResponse(BaseModel): List: Dict[str, Any] = Field( ..., description='List of established conferences', examples=[ { 'Room402': { 'ConferenceMemberCount': '1', 'ConferenceName': 'Room402', 'ConferenceRunTime': '79', 'ConferenceUUID': '5105acbf-6d43-4d67-8536-19999924eba4', 'Members': [ { 'CallName': 'DeskPhone985', 'CallNumber': '3985', 'CallUUID': '8f72b48e-d97e-425a-a6e6-ae5a6a0dc231', 'Deaf': False, 'JoinTime': '79', 'MemberID': '14', 'Muted': False, } ], } } ], ) Message: Message7 = Field( ..., description='Response message', examples=['Conference ListMembers Executed'], ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class ConferenceListParameters(BaseModel): CallUUIDFilter: Optional[str] = Field( None, description='Restricts listed calls to the provided values (comma separated call UUID list)', examples=[ '872066e1-fd89-4c57-8733-93c113980bc9,55e4214a-604a-4b56-82e4-97834b0d524e' ], ) DeafFilter: Optional[bool] = Field( 'false', description='Restricts listed members to deaf ones', examples=['true'] ) MemberFilter: Optional[str] = Field( None, description='Restricts listed members to the provided values (comma separated member ID list)', examples=['13,42'], ) MutedFilter: Optional[bool] = Field( 'false', description='Restricts listed members to muted ones', examples=['true'] ) class Message8(Enum): Conference_List_Executed = 'Conference List Executed' Conference_List_Failed_to_parse_result = 'Conference List Failed to parse result' class ConferenceListResponse(BaseModel): List: Dict[str, Any] = Field( ..., description='List of established conferences', examples=[ { 'Room402': { 'ConferenceMemberCount': '1', 'ConferenceName': 'Room402', 'ConferenceRunTime': '79', 'ConferenceUUID': '5105acbf-6d43-4d67-8536-19999924eba4', 'Members': [ { 'CallName': 'DeskPhone985', 'CallNumber': '3985', 'CallUUID': '8f72b48e-d97e-425a-a6e6-ae5a6a0dc231', 'Deaf': False, 'JoinTime': '79', 'MemberID': '14', 'Muted': False, } ], }, 'Room555': { 'ConferenceMemberCount': '1', 'ConferenceName': 'Room555', 'ConferenceRunTime': '28', 'ConferenceUUID': '732fab2d-1bff-4b54-8d3e-bd937b8ff662', 'Members': [ { 'CallName': 'GuestCenter2', 'CallNumber': '2002', 'CallUUID': 'f8a79c36-2567-479d-b4d9-08f4165f8767', 'Deaf': False, 'JoinTime': '28', 'MemberID': '14', 'Muted': False, } ], }, } ], ) Message: Message8 = Field( ..., description='Response message', examples=['Conference List Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class ConferenceMuteParameters(BaseModel): ConferenceName: str = Field( ..., description='Name of the conference in question', examples=['Room402'] ) MemberID: str = Field( ..., description='List of comma separated member IDs to be affected; `all` shorthand is available too.', examples=['13,42'], ) class Message9(Enum): Conference_Mute_Executed = 'Conference Mute Executed' ConferenceName_Parameter_must_be_present = ( 'ConferenceName Parameter must be present' ) MemberID_Parameter_must_be_present = 'MemberID Parameter must be present' Conference_Mute_Failed____Conference_not_found = ( 'Conference Mute Failed -- Conference not found' ) class ConferenceMuteResponse(BaseModel): Members: Optional[List[str]] = Field( None, description='List of affected members', examples=[['13', '42']] ) Message: Message9 = Field( ..., description='Response message', examples=['Conference Mute Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class ConferencePlayParameters(BaseModel): ConferenceName: str = Field( ..., description='Name of the conference in question', examples=['Room402'] ) FilePath: str = Field( ..., description='Path/URI of the media file to be played', examples=['/var/local/media/sample.wav'], ) MemberID: str = Field( ..., description='List of comma separated member IDs to be affected; `all` shorthand is available too.', examples=['13,42'], ) class Message10(Enum): Conference_Play_Executed = 'Conference Play Executed' ConferenceName_Parameter_must_be_present = ( 'ConferenceName Parameter must be present' ) FilePath_Parameter_must_be_present = 'FilePath Parameter must be present' MemberID_Parameter_must_be_present = 'MemberID Parameter must be present' Conference_Play_Failed____Conference_not_found = ( 'Conference Play Failed -- Conference not found' ) Conference_Play_Failed = 'Conference Play Failed' class ConferencePlayResponse(BaseModel): Message: Message10 = Field( ..., description='Response message', examples=['Conference Play Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class FileFormat(Enum): wav = 'wav' mp3 = 'mp3' class ConferenceRecordStartParameters(BaseModel): ConferenceName: str = Field( ..., description='Name of the conference in question', examples=['Room402'] ) FileFormat_1: Optional[FileFormat] = Field( 'mp3', alias='FileFormat', description='File format (extension)', examples=['wav'], ) FileName: Optional[str] = Field( '', description='Recording file name (without extension); if empty, a timestamp based file name will be generated', examples=['Room402Rec'], ) FilePath: Optional[str] = Field( '', description='Directory path/URI where the recording file will be saved', examples=['/tmp/recordings'], ) class Message11(Enum): Conference_RecordStart_Executed = 'Conference RecordStart Executed' ConferenceName_Parameter_must_be_present = ( 'ConferenceName Parameter must be present' ) FileFormat_Parameter_must_be = 'FileFormat Parameter must be' Conference_RecordStart_Failed = 'Conference RecordStart Failed' Conference_RecordStart_Failed____Conference_not_found = ( 'Conference RecordStart Failed -- Conference not found' ) class ConferenceRecordStartResponse(BaseModel): Message: Message11 = Field( ..., description='Response message', examples=['Conference RecordStart Executed'], ) RecordFile: str = Field( ..., description='Directory path/URI where the recording file will be saved', examples=['/tmp/recordings/sample.mp3'], ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class ConferenceRecordStopParameters(BaseModel): ConferenceName: str = Field( ..., description='Name of the conference in question', examples=['Room402'] ) RecordFile: str = Field( ..., description='Full path to recording file, as returned by ConferenceRecordStart; `all` shorthand is also available', examples=['/tmp/recording/sample.wav'], ) class Message12(Enum): Conference_RecordStop_Executed = 'Conference RecordStop Executed' ConferenceName_Parameter_must_be_present = ( 'ConferenceName Parameter must be present' ) RecordFile_Parameter_must_be_present = 'RecordFile Parameter must be present' Conference_RecordStop_Failed = 'Conference RecordStop Failed' Conference_RecordStop_Failed____Conference_not_found = ( 'Conference RecordStop Failed -- Conference not found' ) class ConferenceRecordStopResponse(BaseModel): Message: Message12 = Field( ..., description='Response message', examples=['Conference RecordStop Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class ConferenceSpeakParameters(BaseModel): ConferenceName: str = Field( ..., description='Name of the conference in question', examples=['Room402'] ) MemberID: str = Field( ..., description='List of comma separated member IDs to be affected; `all` shorthand is available too.', examples=['13,42'], ) Text: str = Field( ..., description='Text to be synthesized', examples=['The quick brown fox jumps over the lazy dog'], ) class Message13(Enum): Conference_Speak_Executed = 'Conference Speak Executed' ConferenceName_Parameter_must_be_present = ( 'ConferenceName Parameter must be present' ) Text_Parameter_must_be_present = 'Text Parameter must be present' MemberID_Parameter_must_be_present = 'MemberID Parameter must be present' Conference_Speak_Failed____Conference_not_found = ( 'Conference Speak Failed -- Conference not found' ) Conference_Speak_Failed = 'Conference Speak Failed' class ConferenceSpeakResponse(BaseModel): Message: Message13 = Field( ..., description='Response message', examples=['Conference Speak Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class ConferenceUndeafParameters(BaseModel): ConferenceName: str = Field( ..., description='Name of the conference in question', examples=['Room402'] ) MemberID: str = Field( ..., description='List of comma separated member IDs to be affected; `all` shorthand is available too.', examples=['13,42'], ) class Message14(Enum): Conference_Undeaf_Executed = 'Conference Undeaf Executed' ConferenceName_Parameter_must_be_present = ( 'ConferenceName Parameter must be present' ) MemberID_Parameter_must_be_present = 'MemberID Parameter must be present' Conference_Undeaf_Failed____Conference_not_found = ( 'Conference Undeaf Failed -- Conference not found' ) class ConferenceUndeafResponse(BaseModel): Members: Optional[List[str]] = Field( None, description='List of affected members', examples=[['13', '42']] ) Message: Message14 = Field( ..., description='Response message', examples=['Conference Undeaf Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class ConferenceUnmuteParameters(BaseModel): ConferenceName: str = Field( ..., description='Name of the conference in question', examples=['Room402'] ) MemberID: str = Field( ..., description='List of comma separated member IDs to be affected; `all` shorthand is available too.', examples=['13,42'], ) class Message15(Enum): Conference_Unmute_Executed = 'Conference Unmute Executed' ConferenceName_Parameter_must_be_present = ( 'ConferenceName Parameter must be present' ) MemberID_Parameter_must_be_present = 'MemberID Parameter must be present' Conference_Unmute_Failed____Conference_not_found = ( 'Conference Unmute Failed -- Conference not found' ) class ConferenceUnmuteResponse(BaseModel): Members: Optional[List[str]] = Field( None, description='List of affected members', examples=[['13', '42']] ) Message: Message15 = Field( ..., description='Response message', examples=['Conference Unmute Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class GroupCallParameters(BaseModel): AnswerUrl: str = Field( ..., description='Fully qualified URL which will provide the RestXML once the call connects', examples=['https://example.com/answer/'], ) CallerName: Optional[str] = Field( None, description='Caller Name to be set for the call', examples=['Group Test'] ) ConfirmKey: Optional[str] = Field( None, description='DTMF tone the called party must send to accept the call', examples=['1'], ) ConfirmSound: Optional[str] = Field( None, description='Remote URL to fetch with POST HTTP request which must return a RestXML with Play, Wait and/or Speak Elements only (all others are ignored). This RESTXML is played to the called party when he answered', examples=['https://example.com/confirm_sound/'], ) CoreUUID: Optional[str] = Field( None, description='Core UUID of the desired FreeSWITCH instance (an Eqivo extension)', examples=['46ae8cd9-c28e-447d-ba40-a09cba49d474'], ) Delimiter: str = Field( ..., description='Any character, except `/` and `,`, which will be used as a separator within several parameters', examples=['<'], ) ExtraDialString: Optional[str] = Field( None, description='Additional [channel variables](https://freeswitch.org/confluence/display/FREESWITCH/Channel+Variables) to be added to the originate FreeSWITCH API call.', examples=['bridge_early_media=true,hangup_after_bridge=true'], ) From: str = Field( ..., description='Phone number to be used as Caller ID', examples=['15551234567'], ) GatewayCodecs: Optional[str] = Field( None, description='List of codec(s) to be used for each gateway. Enclose codec groups in single quotes', examples=["'PCMA,PCMU','G729,PCMU','PCMA,G729'"], ) GatewayRetries: Optional[str] = Field( None, description='List of maximum retry counts for each gateway', examples=['3,1,2'], ) GatewayTimeouts: Optional[str] = Field( None, description='List of maximum timeout amounts (in seconds) for each gateway', examples=['10,30,20'], ) Gateways: str = Field( ..., description='Comma separated FreeSWITCH gateway strings. When multiple gateways are specified, they will be tried sequentially (failover)', examples=['user/,sofia/gateway/PSTNgateway1/,sofia/gateway/PSTNgateway2/'], ) HangupOnRing: Optional[conint(ge=1)] = Field( None, description="Schedules the call's hangup at a given time offset (in seconds) after the destination starts ringing", examples=[90], ) HangupUrl: Optional[str] = Field( None, description='Fully qualified URL to which the call hangup notification will be POSTed. `HangupCause` is added to the usual call [call notification parameters](#/components/schemas/CallNotificationParameters)', examples=['https://example.com/hangup/'], ) RejectCauses: Optional[str] = Field( 'NO_ANSWER,ORIGINATOR_CANCEL,ALLOTTED_TIMEOUT,NO_USER_RESPONSE,CALL_REJECTED', description='Comma separated reject causes', examples=['USER_BUSY,NO_ANSWER'], ) RingUrl: Optional[str] = Field( None, description='Fully qualified URL to which the call ringing notification will be POSTed. `RequestUUID` and `CallUUID` is added to the usual [call notification parameters](#/components/schemas/CallNotificationParameters)', examples=['https://example.com/ring/'], ) SendDigits: Optional[str] = Field( None, description='DTMF tones to be sent when the call is answered. Each occurrence of `w` implies a 0.5 seconds delay whereas `W` will apply a whole second delay. To alter the tone duration (by default, 2000ms), append `@` and the length in milliseconds at the end of the string', examples=['1w2w3W#*@1500'], ) SendOnPreanswer: Optional[bool] = Field( None, description='When set to `true`, DTMF tones will be sent as early media rather than when the call is answered', examples=[False], ) TimeLimit: Optional[conint(ge=1)] = Field( None, description="Schedules the call's hangup at a given time offset (in seconds) after the call is answered", examples=[90], ) To: str = Field( ..., description='Phone number to be called', examples=['15557654321'] ) class Message16(Enum): GroupCall_Request_Executed = 'GroupCall Request Executed' Mandatory_Parameters_Missing = 'Mandatory Parameters Missing' This_Delimiter_is_not_allowed = 'This Delimiter is not allowed' GroupCall_should_be_used_for_at_least_2_numbers = ( 'GroupCall should be used for at least 2 numbers' ) field_To__parameter_length_does_not_match__Gateways__Length = ( '\'To\' parameter length does not match \'Gateways\' Length' ) AnswerUrl_is_not_Valid = 'AnswerUrl is not Valid' HangupUrl_is_not_Valid = 'HangupUrl is not Valid' RingUrl_is_not_Valid = 'RingUrl is not Valid' ConfirmSound_is_not_Valid = 'ConfirmSound is not Valid' Unknown_Core_UUID = 'Unknown Core UUID' GroupCall_Request_Failed = 'GroupCall Request Failed' class GroupCallResponse(BaseModel): Message: Message16 = Field( ..., description='Response message', examples=['GroupCall Request Executed'] ) RequestUUID: str = Field( ..., description='Unique identifier of the Call request (UUIDv4)', examples=['fc01f3f4-4895-43ed-b269-5b4a0d474b12'], ) RestApiServer: str = Field( ..., description='API server which handled this request (an Eqivo extension)', examples=['localhost'], ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class HangupAllCallsParameters(RootModel[Any]): root: Any class Message17(Enum): All_Calls_Hungup = 'All Calls Hungup' Hangup_Call_Failed = 'Hangup Call Failed' class HangupAllCallsResponse(BaseModel): Message: Message17 = Field( ..., description='Response message', examples=['All Calls Hungup'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class HangupCallParameters(BaseModel): CallUUID: Optional[str] = Field( None, description='Unique identifier of the call (when established); this parameter is mutually exclusive with RequestUUID', examples=['b0519011-6987-47c8-9270-a820e0978acd'], ) RequestUUID: Optional[str] = Field( None, description='Unique identifier of the API request (when the call is not established yet); this parameter is mutually exclusive with CallUUID', examples=['c059b96b-04d8-414b-920c-7b373bff916e'], ) class Message18(Enum): Hangup_Call_Executed = 'Hangup Call Executed' CallUUID_or_RequestUUID_Parameter_must_be_present = ( 'CallUUID or RequestUUID Parameter must be present' ) Both_CallUUID_and_RequestUUID_Parameters_cannot_be_present = ( 'Both CallUUID and RequestUUID Parameters cannot be present' ) Hangup_Call_Failed = 'Hangup Call Failed' class HangupCallResponse(BaseModel): Message: Message18 = Field( ..., description='Response message', examples=['Hangup Call Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class Legs(Enum): aleg = 'aleg' bleg = 'bleg' both = 'both' class PlayParameters(BaseModel): CallUUID: str = Field( ..., description='Unique identifier of the call to play media into', examples=['e69b32da-3243-4ba6-a965-5d2f64a57d48'], ) Legs_1: Optional[Legs] = Field( 'aleg', alias='Legs', description='Call leg(s) for which the media will be played; `aleg` refers to the initial call leg, `bleg` refers to the bridged call leg, if applicable.', examples=['both'], ) Length: Optional[conint(ge=1)] = Field( 3600, description='Maximum amount of time (in seconds) to playback the media', examples=[90], ) Loop: Optional[bool] = Field( False, description='Loops the media file(s) indefinitely', examples=[True] ) Mix: Optional[bool] = Field( True, description="Whether the media should be mixed with the call's audio stream", examples=[False], ) Sounds: str = Field( ..., description='Comma separated list of file paths/URIs to be played', examples=['/tmp/prompt.wav'], ) class Message19(Enum): Play_Executed = 'Play Executed' CallUUID_Parameter_Missing = 'CallUUID Parameter Missing' Sounds_Parameter_Missing = 'Sounds Parameter Missing' Legs_Parameter_is_Invalid = 'Legs Parameter is Invalid' Length_Parameter_must_be_a_positive_integer = ( 'Length Parameter must be a positive integer' ) Sounds_Parameter_is_Invalid = 'Sounds Parameter is Invalid' Play_Failed____Call_not_found = 'Play Failed -- Call not found' Play_Failed = 'Play Failed' class PlayResponse(BaseModel): Message: Message19 = Field( ..., description='Response message', examples=['Play Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class PlayStopParameters(BaseModel): CallUUID: str = Field( ..., description='Unique identifier of the call', examples=['441afb63-85bc-49d4-9ac8-8459f9bf5e6b'], ) class Message20(Enum): PlayStop_Executed = 'PlayStop Executed' CallUUID_Parameter_Missing = 'CallUUID Parameter Missing' PlayStop_Failed____Call_not_found = 'PlayStop Failed -- Call not found' PlayStop_Failed = 'PlayStop Failed' class PlayStopResponse(BaseModel): Message: Message20 = Field( ..., description='Response message', examples=['PlayStop Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class RecordStartParameters(BaseModel): CallUUID: Optional[str] = Field( None, description='Unique identifier of the call to be recorded', examples=['052d04e4-019a-45ff-a562-f74d4ae99ea2'], ) FileFormat_1: Optional[FileFormat] = Field( 'mp3', alias='FileFormat', description='File format (extension)', examples=['wav'], ) FileName: Optional[str] = Field( '', description='Recording file name (without extension); if empty, a timestamp based file name will be generated', examples=['sample_recording'], ) FilePath: Optional[str] = Field( '', description='Directory path/URI where the recording file will be saved', examples=['/tmp/recordings'], ) TimeLimit: Optional[conint(ge=1)] = Field( 60, description='Maximum recording length, in seconds', examples=[89] ) class Message21(Enum): RecordStart_Executed = 'RecordStart Executed' CallUUID_Parameter_must_be_present = 'CallUUID Parameter must be present' FileFormat_Parameter_must_be = 'FileFormat Parameter must be' RecordStart_Failed__invalid_TimeLimit = 'RecordStart Failed: invalid TimeLimit' RecordStart_Failed____Call_not_found = 'RecordStart Failed -- Call not found' RecordStart_Failed = 'RecordStart Failed' class RecordStartResponse(BaseModel): Message: Message21 = Field( ..., description='Response message', examples=['RecordStart Executed'] ) RecordFile: str = Field( ..., description='Directory path/URI where the recording file will be saved', examples=['/tmp/recordings/sample.wav'], ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class RecordStopParameters(BaseModel): CallUUID: str = Field( ..., description='Unique identifier of the call', examples=['eacfa857-4001-4379-b79a-c7ef6d963bcb'], ) RecordFile: str = Field( ..., description='Full path to recording file, as returned by RecordStart; `all` shorthand is also available', examples=['/tmp/recording/sample.wav'], ) class Message22(Enum): RecordStop_Executed = 'RecordStop Executed' CallUUID_Parameter_must_be_present = 'CallUUID Parameter must be present' RecordFile_Parameter_must_be_present = 'RecordFile Parameter must be present' RecordStop_Failed____Call_not_found = 'RecordStop Failed -- Call not found' RecordStop_Failed = 'RecordStop Failed' class RecordStopResponse(BaseModel): Message: Message22 = Field( ..., description='Response message', examples=['RecordStop Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class ScheduleHangupParameters(BaseModel): CallUUID: str = Field( ..., description='Unique identifier of the call', examples=['f84fbadc-5df0-4c02-934b-aac0c1efb8ae'], ) Time: conint(ge=1) = Field( ..., description='Time (in seconds) after which the call in question will be hung up', examples=[59], ) class Message23(Enum): ScheduleHangup_Executed = 'ScheduleHangup Executed' CallUUID_Parameter_must_be_present = 'CallUUID Parameter must be present' Time_Parameter_must_be_present = 'Time Parameter must be present' Time_Parameter_must_be___0_ = 'Time Parameter must be > 0!' ScheduleHangup_Failed____Call_not_found = 'ScheduleHangup Failed -- Call not found' ScheduleHangup_Failed = 'ScheduleHangup Failed' class ScheduleHangupResponse(BaseModel): Message: Message23 = Field( ..., description='Response message', examples=['ScheduleHangup Executed'] ) SchedHangupId: str = Field( ..., description='Unique identifier of the scheduled hangup request (UUIDv4)', examples=['21579000-0dca-4a75-bc1f-6eae8215a611'], ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class SchedulePlayParameters(BaseModel): CallUUID: str = Field( ..., description='Unique identifier of the call to play media into', examples=['e69b32da-3243-4ba6-a965-5d2f64a57d48'], ) Legs_1: Optional[Legs] = Field( 'aleg', alias='Legs', description='Call leg(s) for which the media will be played; `aleg` refers to the initial call leg, `bleg` refers to the bridged call leg, if applicable.', examples=['both'], ) Length: Optional[conint(ge=1)] = Field( 3600, description='Maximum amount of time (in seconds) to playback the media', examples=[90], ) Loop: Optional[bool] = Field( False, description='Loops the media file(s) indefinitely', examples=[True] ) Mix: Optional[bool] = Field( True, description="Whether the media should be mixed with the call's audio stream", examples=[False], ) Sounds: str = Field( ..., description='Comma separated list of file paths/URIs to be played', examples=['/tmp/prompt.wav'], ) Time: conint(ge=1) = Field( ..., description='Time (in seconds) after which the media will be playedback', examples=[29], ) class Message24(Enum): Play_Executed = 'Play Executed' CallUUID_Parameter_Missing = 'CallUUID Parameter Missing' Sounds_Parameter_Missing = 'Sounds Parameter Missing' Time_Parameter_Missing = 'Time Parameter Missing' Time_Parameter_must_be___0 = 'Time Parameter must be > 0' Legs_Parameter_is_Invalid = 'Legs Parameter is Invalid' Length_Parameter_must_be_a_positive_integer = ( 'Length Parameter must be a positive integer' ) Sounds_Parameter_is_Invalid = 'Sounds Parameter is Invalid' Play_Failed____Call_not_found = 'Play Failed -- Call not found' Play_Failed = 'Play Failed' class SchedulePlayResponse(BaseModel): Message: Message24 = Field( ..., description='Response message', examples=['Play Executed'] ) SchedPlayId: str = Field( ..., description='Unique identifier of the scheduled playback request (UUIDv4)', examples=['b2d1da90-c364-42e4-818a-2eb90a474729'], ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class Leg(Enum): aleg = 'aleg' bleg = 'bleg' both = 'both' class SendDigitsParameters(BaseModel): CallUUID: str = Field( ..., description='Unique identifier of the call to send DTMF to', examples=['d4cd08fe-4245-490a-ae39-5b58c6addbe8'], ) Digits: str = Field( ..., description='DTMF tones to be sent; each occurrence of `w` implies a 0.5 seconds delay whereas `W` will apply a whole second delay. To alter the tone duration (by default, 2000ms), append `@` and the length in milliseconds at the end of the string', examples=['1w2w3W#*@1500'], ) Leg_1: Optional[Leg] = Field( 'aleg', alias='Leg', description='Call leg(s) to which DTMFs will be sent; `aleg` refers to the initial call leg, `bleg` refers to the bridged call leg, if applicable.', examples=['both'], ) class Message25(Enum): SendDigits_Executed = 'SendDigits Executed' CallUUID_Parameter_Missing = 'CallUUID Parameter Missing' Digits_Parameter_Missing = 'Digits Parameter Missing' Invalid_Leg_Parameter = 'Invalid Leg Parameter' SendDigits_Failed____Call_not_found = 'SendDigits Failed -- Call not found' SendDigits_Failed = 'SendDigits Failed' class SendDigitsResponse(BaseModel): Message: Message25 = Field( ..., description='Response message', examples=['SendDigits Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class AudioDirection(Enum): in_ = 'in' out = 'out' class SoundTouchParameters(BaseModel): AudioDirection_1: Optional[AudioDirection] = Field( 'out', alias='AudioDirection', description='Media stream to be altered, incoming or outgoing', examples=['in'], ) CallUUID: str = Field( ..., description='Unique identifier of the call to send DTMF to', examples=['b7054b68-0620-455a-8ac7-f8f126853b9d'], ) Pitch: Optional[PositiveFloat] = Field( 1, description='Adjust the pitch', examples=[4] ) PitchOctaves: Optional[confloat(ge=-1.0, le=1.0)] = Field( None, description='Adjust the pitch in octaves', examples=[0.5] ) PitchSemiTones: Optional[confloat(ge=-14.0, le=14.0)] = Field( None, description='Adjust the pitch in semitones', examples=[2] ) Rate: Optional[PositiveFloat] = Field( 1, description='Adjust the rate', examples=[3] ) Tempo: Optional[PositiveFloat] = Field( 1, description='Adjust the tempo', examples=[2] ) class Message26(Enum): SoundTouch_Executed = 'SoundTouch Executed' CallUUID_Parameter_Missing = 'CallUUID Parameter Missing' AudioDirection_Parameter_Must_be__in__or__out_ = ( 'AudioDirection Parameter Must be \'in\' or \'out\'' ) PitchSemiTones_Parameter_must_be_float = 'PitchSemiTones Parameter must be float' PitchSemiTones_Parameter_must_be_between__14_and_14 = ( 'PitchSemiTones Parameter must be between -14 and 14' ) PitchOctaves_Parameter_must_be_float = 'PitchOctaves Parameter must be float' PitchOctaves_Parameter_must_be_between__1_and_1 = ( 'PitchOctaves Parameter must be between -1 and 1' ) Pitch_Parameter_must_be_float = 'Pitch Parameter must be float' Pitch_Parameter_must_be___0 = 'Pitch Parameter must be > 0' Rate_Parameter_must_be_float = 'Rate Parameter must be float' Rate_Parameter_must_be___0 = 'Rate Parameter must be > 0' Tempo_Parameter_must_be_float = 'Tempo Parameter must be float' Tempo_Parameter_must_be___0 = 'Tempo Parameter must be > 0' SoundTouch_Failed____Call_not_found = 'SoundTouch Failed -- Call not found' SoundTouch_Failed = 'SoundTouch Failed' class SoundTouchResponse(BaseModel): Message: Message26 = Field( ..., description='Response message', examples=['SoundTouch Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class SoundTouchStopParameters(BaseModel): CallUUID: str = Field( ..., description='Unique identifier of the call', examples=['fe372011-face-4bc2-bbcc-893d045bf67d'], ) class Message27(Enum): SoundTouchStop_Executed = 'SoundTouchStop Executed' CallUUID_Parameter_Missing = 'CallUUID Parameter Missing' SoundTouchStop_Failed____Call_not_found = 'SoundTouchStop Failed -- Call not found' SoundTouchStop_Failed = 'SoundTouchStop Failed' class SoundTouchStopResponse(BaseModel): Message: Message27 = Field( ..., description='Response message', examples=['SoundTouchStop Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] ) class TransferCallParameters(BaseModel): CallUUID: str = Field( ..., description='Unique identifier of the call', examples=['03694cf6-62b3-4f00-b0fc-6831ddcc2693'], ) Url: str = Field( ..., description='Absolute URL which will return the updated RestXML flow', examples=['https://example.org/restxml/endpoint/'], ) class Message28(Enum): Transfer_Call_Executed = 'Transfer Call Executed' CallUUID_Parameter_must_be_present = 'CallUUID Parameter must be present' Url_Parameter_must_be_present = 'Url Parameter must be present' Url_is_not_Valid = 'Url is not Valid' Transfer_Call_Failed____Call_not_found = 'Transfer Call Failed -- Call not found' Transfer_Call_Failed = 'Transfer Call Failed' class TransferCallResponse(BaseModel): Message: Message28 = Field( ..., description='Response message', examples=['Transfer Call Executed'] ) Success: bool = Field( ..., description='Whether the request was successful or not', examples=[True] )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/qingyun-wu/eqivo-api'

If you have feedback or need assistance with the MCP directory API, please join our Discord server