generated: '2026-10-14' method: derived generator: derive-data-model.py source: - openapi/recall-ai-api-openapi.yml notation: has_one = property $ref; has_many = array of $ref; belongs_to = _id field summary: entities: 224 entities_in_spec: 224 relationships: 266 entities: - name: ArtifactStatus fields: 3 - name: AudioMixedArtifact fields: 7 - name: AudioMixedArtifactData fields: 1 - name: AudioMixedArtifactShortcut fields: 6 - name: AudioOutput fields: 2 - name: AudioOutputData fields: 1 - name: AudioOutputDataRequest fields: 2 - name: AudioOutputReplay fields: 3 - name: AudioOutputReplayRequest fields: 3 - name: AudioOutputRequest fields: 2 - name: AudioSeparateArtifact fields: 7 - name: AudioSeparateArtifactData fields: 1 - name: AutomaticAudioOutput fields: 1 - name: AutomaticAudioOutputRequest fields: 1 - name: AutomaticLeave fields: 8 - name: AutomaticLeaveBotDetection fields: 2 - name: AutomaticLeaveBotDetectionRequest fields: 2 - name: AutomaticLeaveBotDetectionUsingParticipantEvents fields: 2 - name: AutomaticLeaveBotDetectionUsingParticipantEventsRequest fields: 2 - name: AutomaticLeaveBotDetectionUsingParticipantNames fields: 3 - name: AutomaticLeaveBotDetectionUsingParticipantNamesRequest fields: 3 - name: AutomaticLeaveEveryoneLeft fields: 2 - name: AutomaticLeaveEveryoneLeftRequest fields: 2 - name: AutomaticLeaveRequest fields: 8 - name: AutomaticLeaveSilenceDetection fields: 2 - name: AutomaticLeaveSilenceDetectionRequest fields: 2 - name: AutomaticVideoOutput fields: 2 - name: AutomaticVideoOutputRequest fields: 2 - name: Bot fields: 20 - name: BotCalendarMeeting fields: 4 - name: BotCalendarUser fields: 2 - name: BotEvent fields: 4 - name: BotGet fields: 20 - name: BotIncludeInRecording fields: 1 - name: BotIncludeInRecordingRequest fields: 1 - name: BotMinimal fields: 2 - name: BotRecordingConfig fields: 19 - name: BotRecordingConfigBaseArtifact fields: 1 - name: BotRecordingConfigBaseArtifactRequest fields: 1 - name: BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointDesktopSdkCallback fields: 0 - name: BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointDesktopSdkCallbackRequest fields: 0 - name: BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointRtmp fields: 0 - name: BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointRtmpRequest fields: 0 - name: BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebhook fields: 0 - name: BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebhookRequest fields: 0 - name: BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebsocket fields: 0 - name: BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebsocketRequest fields: 0 - name: BotRecordingConfigRealtimeEndpointDesktopSdkCallback fields: 1 - name: BotRecordingConfigRealtimeEndpointDesktopSdkCallbackRequest fields: 1 - name: BotRecordingConfigRealtimeEndpointRtmp fields: 2 - name: BotRecordingConfigRealtimeEndpointRtmpRequest fields: 2 - name: BotRecordingConfigRealtimeEndpointShared fields: 2 - name: BotRecordingConfigRealtimeEndpointWebhook fields: 2 - name: BotRecordingConfigRealtimeEndpointWebhookRequest fields: 2 - name: BotRecordingConfigRealtimeEndpointWebsocket fields: 2 - name: BotRecordingConfigRealtimeEndpointWebsocketRequest fields: 2 - name: BotRecordingConfigRequest fields: 19 - name: BotRecordingConfigRetention fields: 2 - name: BotRecordingConfigRetentionRequest fields: 2 - name: BotRecordingConfigTranscriptArtifact fields: 3 - name: BotRecordingConfigTranscriptArtifactRequest fields: 3 - name: BotRecordingConfigTranscriptDiarization fields: 1 - name: BotRecordingConfigTranscriptDiarizationRequest fields: 1 - name: BotRecordingConfigTranscriptProvider fields: 10 - name: BotRecordingConfigTranscriptProviderRequest fields: 10 - name: BotRecordingEmbed fields: 8 - name: BotRequest fields: 15 - name: BotVariant fields: 4 - name: BotVariantRequest fields: 4 - name: Calendar fields: 13 - name: CalendarAccessToken fields: 2 - name: CalendarAccountAccessTokenError fields: 2 - name: CalendarAuthenticateRequestRequest fields: 1 - name: CalendarAuthenticateResponse fields: 1 description: Serializer for calendar authentication token response. - name: CalendarEvent fields: 14 - name: CalendarEventAddBotConfigSchemaRequest fields: 15 - name: CalendarEventAddBotRequest fields: 2 - name: CalendarEventBot fields: 4 - name: CalendarMeeting fields: 26 - name: CalendarMeetingRequest fields: 1 - name: CalendarRecordingPreferences fields: 8 - name: CalendarRequest fields: 9 - name: CalendarStatusChange fields: 3 - name: CalendarUser fields: 4 - name: CalendarUserConnection fields: 4 - name: CalendarUserDisconnectPlatformRequest fields: 1 - name: CalendarUserRequest fields: 2 - name: Chat fields: 2 - name: ChatOnBotJoin fields: 3 - name: ChatOnBotJoinRequest fields: 3 - name: ChatOnParticipantJoin fields: 2 - name: ChatOnParticipantJoinRequest fields: 2 - name: ChatRequest fields: 2 - name: DesktopSdkRecordingConfigRequest fields: 9 - name: DesktopSdkTranscriptArtifactRequest fields: 2 - name: DesktopSdkTranscriptProviderRequest fields: 6 - name: DesktopSdkUpload fields: 6 - name: DesktopSdkUploadMinimal fields: 2 - name: DesktopSdkUploadRequest fields: 3 - name: GmeetMeetingInvite fields: 1 - name: GmeetMeetingInviteMeetingLink fields: 2 - name: GoogleLogin fields: 9 - name: GoogleLoginGroup fields: 6 - name: GoogleLoginGroupRequest fields: 2 - name: GoogleLoginRequest fields: 6 - name: GoogleMeet fields: 1 - name: GoogleMeetRequest fields: 1 - name: GotoMeetingInvite fields: 1 - name: GotoMeetingInviteMeetingLink fields: 2 - name: MeetMedia fields: 2 - name: MeetMediaRequest fields: 2 - name: MeetingAttendee fields: 4 - name: MeetingCaptions fields: 1 - name: MeetingCaptionsRequest fields: 1 - name: MeetingDirectConnect fields: 8 - name: MeetingDirectConnectRecordingConfig fields: 17 - name: MeetingDirectConnectRecordingConfigRequest fields: 17 - name: MeetingDirectConnectRequest fields: 4 - name: MeetingDirectConnectStatus fields: 3 - name: MeetingMetadataArtifact fields: 6 - name: MeetingMetadataArtifactData fields: 2 - name: MeetingMetadataArtifactDataZoom fields: 1 - name: MeetingMetadataArtifactShortcut fields: 5 - name: NewDesktopSdkUploadStatus fields: 3 - name: OutputMedia fields: 2 - name: OutputMediaRequest fields: 2 - name: OutputMediaWebpage fields: 2 - name: OutputMediaWebpageConfig fields: 1 - name: OutputMediaWebpageConfigRequest fields: 1 - name: OutputMediaWebpageRequest fields: 2 - name: PaginatedAudioMixedArtifactList fields: 3 - name: PaginatedAudioSeparateArtifactList fields: 3 - name: PaginatedBotGetList fields: 4 - name: PaginatedCalendarEventList fields: 3 - name: PaginatedCalendarList fields: 3 - name: PaginatedDesktopSdkUploadList fields: 3 - name: PaginatedGoogleLoginGroupList fields: 3 - name: PaginatedGoogleLoginList fields: 3 - name: PaginatedMeetingMetadataArtifactList fields: 3 - name: PaginatedParticipantEventsArtifactList fields: 3 - name: PaginatedRealtimeEndpointList fields: 3 - name: PaginatedRecordingList fields: 3 - name: PaginatedTranscriptArtifactList fields: 3 - name: PaginatedVideoMixedArtifactList fields: 3 - name: PaginatedVideoSeparateArtifactList fields: 3 - name: PaginatedZoomMeetingToCredentialList fields: 3 - name: PaginatedZoomOAuthAppList fields: 3 - name: PaginatedZoomOAuthAppLogList fields: 3 - name: PaginatedZoomOAuthCredentialList fields: 3 - name: PaginatedZoomOAuthCredentialLogList fields: 3 - name: ParticipantEventsArtifact fields: 6 - name: ParticipantEventsArtifactData fields: 3 - name: ParticipantEventsArtifactShortcut fields: 5 - name: PatchedAudioMixedArtifactRequest fields: 1 - name: PatchedAudioSeparateArtifactRequest fields: 1 - name: PatchedBotRequest fields: 15 - name: PatchedCalendarRecordingPreferencesRequest fields: 7 - name: PatchedCalendarRequest fields: 9 - name: PatchedGoogleLoginGroupRequest fields: 2 - name: PatchedGoogleLoginRequest fields: 6 - name: PatchedMeetingMetadataArtifactRequest fields: 1 - name: PatchedParticipantEventsArtifactRequest fields: 1 - name: PatchedRealtimeEndpointRequest fields: 1 - name: PatchedRecordingRequest fields: 1 - name: PatchedTranscriptArtifactRequest fields: 1 - name: PatchedVideoMixedArtifactRequest fields: 1 - name: PatchedVideoSeparateArtifactRequest fields: 1 - name: PatchedZoomOAuthAppPartialUpdateRequest fields: 2 - name: PinParticipantRequest fields: 1 - name: RealtimeEndpoint fields: 8 - name: RealtimeEndpointMinimal fields: 2 - name: RealtimeEndpointStatus fields: 3 - name: RecallaiAsyncTranscriptionRequest fields: 4 - name: RecallaiSpellingEntry fields: 2 - name: RecallaiSpellingEntryRequest fields: 2 - name: RecallaiStreamingTranscription fields: 5 - name: RecallaiStreamingTranscriptionRequest fields: 5 - name: Recording fields: 11 - name: RecordingCreateTranscriptArtifactProviderRequest fields: 9 - name: RecordingCreateTranscriptArtifactRequest fields: 3 - name: RecordingCreateTranscriptDiarizationRequest fields: 1 - name: RecordingMinimal fields: 2 - name: RecordingShortcuts fields: 5 - name: RecordingStatus fields: 3 - name: SendChatMessageInputRequest fields: 3 - name: SlackTeamIntegrationMinimal fields: 2 - name: TeamsLiveMeetingInviteMeetingLink fields: 3 - name: TeamsMeetingInvite fields: 8 - name: TeamsMeetingInviteMeetingLink fields: 9 - name: TranscriptArtifact fields: 8 - name: TranscriptArtifactData fields: 2 - name: TranscriptArtifactDiarization fields: 1 - name: TranscriptArtifactProvider fields: 20 - name: TranscriptArtifactShortcut fields: 7 - name: UsageResponse fields: 1 description: Serializer for usage statistics response. - name: VideoMixedArtifact fields: 7 - name: VideoMixedArtifactData fields: 1 - name: VideoMixedArtifactShortcut fields: 6 - name: VideoOutput fields: 1 - name: VideoOutputRequest fields: 2 - name: VideoSeparateArtifact fields: 7 - name: VideoSeparateArtifactData fields: 1 - name: Webex fields: 1 - name: WebexInvite fields: 4 - name: WebexMeetingInvite fields: 5 - name: WebexRequest fields: 1 - name: Zoom fields: 4 - name: ZoomAccessToken fields: 2 - name: ZoomAuthorizationCodeRequest fields: 3 - name: ZoomMeetingInvite fields: 4 - name: ZoomMeetingInviteMeetingLink fields: 5 - name: ZoomMeetingToCredential fields: 3 - name: ZoomOAuthApp fields: 7 - name: ZoomOAuthAppLog fields: 3 - name: ZoomOAuthAppRequest fields: 4 - name: ZoomOAuthCredential fields: 8 - name: ZoomOAuthCredentialBadRequest fields: 3 - name: ZoomOAuthCredentialLog fields: 3 - name: ZoomOAuthCredentialRequest fields: 3 - name: ZoomRequest fields: 4 - name: ZoomRtms fields: 4 - name: ZoomRtmsRequest fields: 4 - name: _BreakoutRoomSchema fields: 2 - name: _BreakoutRoomSchemaRequest fields: 2 relationships: - from: PaginatedZoomMeetingToCredentialList to: ZoomMeetingToCredential type: has_many via: results - from: AudioMixedArtifactShortcut to: ArtifactStatus type: has_one via: status - from: AudioMixedArtifactShortcut to: AudioMixedArtifactData type: has_one via: data - from: AudioOutput to: AudioOutputData type: has_one via: data - from: AudioOutput to: AudioOutputReplay type: has_one via: replay_on_participant_join - from: AutomaticAudioOutput to: AudioOutput type: has_one via: in_call_recording - from: AutomaticLeave to: AutomaticLeaveEveryoneLeft type: has_one via: everyone_left_timeout - from: AutomaticLeave to: AutomaticLeaveSilenceDetection type: has_one via: silence_detection - from: AutomaticLeave to: AutomaticLeaveBotDetection type: has_one via: bot_detection - from: AutomaticLeaveBotDetection to: AutomaticLeaveBotDetectionUsingParticipantEvents type: has_one via: using_participant_events - from: AutomaticLeaveBotDetection to: AutomaticLeaveBotDetectionUsingParticipantNames type: has_one via: using_participant_names - from: AutomaticVideoOutput to: VideoOutput type: has_one via: in_call_recording - from: AutomaticVideoOutput to: VideoOutput type: has_one via: in_call_not_recording - from: BotCalendarMeeting to: BotCalendarUser type: has_one via: calendar_user - from: BotGet to: BotRecordingConfig type: has_one via: recording_config - from: BotGet to: BotEvent type: has_many via: status_changes - from: BotGet to: BotRecordingEmbed type: has_many via: recordings - from: BotGet to: OutputMedia type: has_one via: output_media - from: BotGet to: AutomaticVideoOutput type: has_one via: automatic_video_output - from: BotGet to: AutomaticAudioOutput type: has_one via: automatic_audio_output - from: BotGet to: Chat type: has_one via: chat - from: BotGet to: AutomaticLeave type: has_one via: automatic_leave - from: BotGet to: BotVariant type: has_one via: variant - from: BotGet to: BotCalendarMeeting type: has_many via: calendar_meetings - from: BotGet to: Zoom type: has_one via: zoom - from: BotGet to: GoogleMeet type: has_one via: google_meet - from: BotGet to: SlackTeamIntegrationMinimal type: has_one via: slack_team - from: BotGet to: Webex type: has_one via: webex - from: BotGet to: _BreakoutRoomSchema type: has_one via: breakout_room - from: BotRecordingConfig to: BotRecordingConfigTranscriptArtifact type: has_one via: transcript - from: BotRecordingConfig to: BotRecordingConfigRetention type: has_one via: retention - from: BotRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: video_mixed_mp4 - from: BotRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: participant_events - from: BotRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: meeting_metadata - from: BotRecordingConfig to: BotIncludeInRecording type: has_one via: include_bot_in_recording - from: BotRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: audio_mixed_raw - from: BotRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: audio_mixed_mp3 - from: BotRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: video_separate_mp4 - from: BotRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: audio_separate_raw - from: BotRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: audio_separate_mp3 - from: BotRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: video_mixed_flv - from: BotRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: video_separate_png - from: BotRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: video_separate_h264 - from: BotRecordingConfigTranscriptArtifact to: BotRecordingConfigTranscriptProvider type: has_one via: provider - from: BotRecordingConfigTranscriptArtifact to: BotRecordingConfigTranscriptDiarization type: has_one via: diarization - from: BotRecordingConfigTranscriptProvider to: RecallaiStreamingTranscription type: has_one via: recallai_streaming - from: BotRecordingConfigTranscriptProvider to: MeetingCaptions type: has_one via: meeting_captions - from: BotRecordingEmbed to: RecordingStatus type: has_one via: status - from: BotRecordingEmbed to: RecordingShortcuts type: has_one via: media_shortcuts - from: Chat to: ChatOnBotJoin type: has_one via: on_bot_join - from: Chat to: ChatOnParticipantJoin type: has_one via: on_participant_join - from: GoogleMeet to: GoogleLoginGroup type: belongs_to via: google_login_group_id - from: MeetingMetadataArtifactData to: MeetingMetadataArtifactDataZoom type: has_one via: zoom - from: MeetingMetadataArtifactShortcut to: ArtifactStatus type: has_one via: status - from: MeetingMetadataArtifactShortcut to: MeetingMetadataArtifactData type: has_one via: data - from: OutputMediaWebpage to: OutputMediaWebpageConfig type: has_one via: config - from: PaginatedBotGetList to: BotGet type: has_many via: results - from: ParticipantEventsArtifactShortcut to: ArtifactStatus type: has_one via: status - from: ParticipantEventsArtifactShortcut to: ParticipantEventsArtifactData type: has_one via: data - from: RecallaiStreamingTranscription to: RecallaiSpellingEntry type: has_many via: spelling - from: RecordingShortcuts to: VideoMixedArtifactShortcut type: has_one via: video_mixed - from: RecordingShortcuts to: TranscriptArtifactShortcut type: has_one via: transcript - from: RecordingShortcuts to: ParticipantEventsArtifactShortcut type: has_one via: participant_events - from: RecordingShortcuts to: MeetingMetadataArtifactShortcut type: has_one via: meeting_metadata - from: RecordingShortcuts to: AudioMixedArtifactShortcut type: has_one via: audio_mixed - from: TranscriptArtifactProvider to: RecallaiStreamingTranscription type: has_one via: recallai_streaming - from: TranscriptArtifactShortcut to: ArtifactStatus type: has_one via: status - from: TranscriptArtifactShortcut to: TranscriptArtifactData type: has_one via: data - from: TranscriptArtifactShortcut to: TranscriptArtifactDiarization type: has_one via: diarization - from: TranscriptArtifactShortcut to: TranscriptArtifactProvider type: has_one via: provider - from: VideoMixedArtifactShortcut to: ArtifactStatus type: has_one via: status - from: VideoMixedArtifactShortcut to: VideoMixedArtifactData type: has_one via: data - from: AudioOutputRequest to: AudioOutputDataRequest type: has_one via: data - from: AudioOutputRequest to: AudioOutputReplayRequest type: has_one via: replay_on_participant_join - from: AutomaticAudioOutputRequest to: AudioOutputRequest type: has_one via: in_call_recording - from: AutomaticLeaveBotDetectionRequest to: AutomaticLeaveBotDetectionUsingParticipantEventsRequest type: has_one via: using_participant_events - from: AutomaticLeaveBotDetectionRequest to: AutomaticLeaveBotDetectionUsingParticipantNamesRequest type: has_one via: using_participant_names - from: AutomaticLeaveRequest to: AutomaticLeaveEveryoneLeftRequest type: has_one via: everyone_left_timeout - from: AutomaticLeaveRequest to: AutomaticLeaveSilenceDetectionRequest type: has_one via: silence_detection - from: AutomaticLeaveRequest to: AutomaticLeaveBotDetectionRequest type: has_one via: bot_detection - from: AutomaticVideoOutputRequest to: VideoOutputRequest type: has_one via: in_call_recording - from: AutomaticVideoOutputRequest to: VideoOutputRequest type: has_one via: in_call_not_recording - from: Bot to: BotRecordingConfig type: has_one via: recording_config - from: Bot to: BotEvent type: has_many via: status_changes - from: Bot to: BotRecordingEmbed type: has_many via: recordings - from: Bot to: OutputMedia type: has_one via: output_media - from: Bot to: AutomaticVideoOutput type: has_one via: automatic_video_output - from: Bot to: AutomaticAudioOutput type: has_one via: automatic_audio_output - from: Bot to: Chat type: has_one via: chat - from: Bot to: AutomaticLeave type: has_one via: automatic_leave - from: Bot to: BotVariant type: has_one via: variant - from: Bot to: BotCalendarMeeting type: has_many via: calendar_meetings - from: Bot to: Zoom type: has_one via: zoom - from: Bot to: GoogleMeet type: has_one via: google_meet - from: Bot to: SlackTeamIntegrationMinimal type: has_one via: slack_team - from: Bot to: Webex type: has_one via: webex - from: Bot to: _BreakoutRoomSchema type: has_one via: breakout_room - from: BotRecordingConfigRequest to: BotRecordingConfigTranscriptArtifactRequest type: has_one via: transcript - from: BotRecordingConfigRequest to: BotRecordingConfigRetentionRequest type: has_one via: retention - from: BotRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: video_mixed_mp4 - from: BotRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: participant_events - from: BotRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: meeting_metadata - from: BotRecordingConfigRequest to: BotIncludeInRecordingRequest type: has_one via: include_bot_in_recording - from: BotRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: audio_mixed_raw - from: BotRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: audio_mixed_mp3 - from: BotRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: video_separate_mp4 - from: BotRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: audio_separate_raw - from: BotRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: audio_separate_mp3 - from: BotRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: video_mixed_flv - from: BotRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: video_separate_png - from: BotRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: video_separate_h264 - from: BotRecordingConfigTranscriptArtifactRequest to: BotRecordingConfigTranscriptProviderRequest type: has_one via: provider - from: BotRecordingConfigTranscriptArtifactRequest to: BotRecordingConfigTranscriptDiarizationRequest type: has_one via: diarization - from: BotRecordingConfigTranscriptProviderRequest to: RecallaiStreamingTranscriptionRequest type: has_one via: recallai_streaming - from: BotRecordingConfigTranscriptProviderRequest to: MeetingCaptionsRequest type: has_one via: meeting_captions - from: BotRequest to: BotRecordingConfigRequest type: has_one via: recording_config - from: BotRequest to: OutputMediaRequest type: has_one via: output_media - from: BotRequest to: AutomaticVideoOutputRequest type: has_one via: automatic_video_output - from: BotRequest to: AutomaticAudioOutputRequest type: has_one via: automatic_audio_output - from: BotRequest to: ChatRequest type: has_one via: chat - from: BotRequest to: AutomaticLeaveRequest type: has_one via: automatic_leave - from: BotRequest to: BotVariantRequest type: has_one via: variant - from: BotRequest to: ZoomRequest type: has_one via: zoom - from: BotRequest to: GoogleMeetRequest type: has_one via: google_meet - from: BotRequest to: WebexRequest type: has_one via: webex - from: BotRequest to: _BreakoutRoomSchemaRequest type: has_one via: breakout_room - from: ChatRequest to: ChatOnBotJoinRequest type: has_one via: on_bot_join - from: ChatRequest to: ChatOnParticipantJoinRequest type: has_one via: on_participant_join - from: GoogleMeetRequest to: GoogleLoginGroup type: belongs_to via: google_login_group_id - from: OutputMediaWebpageRequest to: OutputMediaWebpageConfigRequest type: has_one via: config - from: RecallaiStreamingTranscriptionRequest to: RecallaiSpellingEntryRequest type: has_many via: spelling - from: PatchedBotRequest to: BotRecordingConfigRequest type: has_one via: recording_config - from: PatchedBotRequest to: OutputMediaRequest type: has_one via: output_media - from: PatchedBotRequest to: AutomaticVideoOutputRequest type: has_one via: automatic_video_output - from: PatchedBotRequest to: AutomaticAudioOutputRequest type: has_one via: automatic_audio_output - from: PatchedBotRequest to: ChatRequest type: has_one via: chat - from: PatchedBotRequest to: AutomaticLeaveRequest type: has_one via: automatic_leave - from: PatchedBotRequest to: BotVariantRequest type: has_one via: variant - from: PatchedBotRequest to: ZoomRequest type: has_one via: zoom - from: PatchedBotRequest to: GoogleMeetRequest type: has_one via: google_meet - from: PatchedBotRequest to: WebexRequest type: has_one via: webex - from: PatchedBotRequest to: _BreakoutRoomSchemaRequest type: has_one via: breakout_room - from: DesktopSdkUpload to: NewDesktopSdkUploadStatus type: has_one via: status - from: DesktopSdkUpload to: Recording type: belongs_to via: recording_id - from: PaginatedDesktopSdkUploadList to: DesktopSdkUpload type: has_many via: results - from: DesktopSdkRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: video_mixed_mp4 - from: DesktopSdkRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: audio_mixed_mp3 - from: DesktopSdkRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: audio_separate_raw - from: DesktopSdkRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: participant_events - from: DesktopSdkRecordingConfigRequest to: DesktopSdkTranscriptArtifactRequest type: has_one via: transcript - from: DesktopSdkRecordingConfigRequest to: BotRecordingConfigRetentionRequest type: has_one via: retention - from: DesktopSdkTranscriptArtifactRequest to: DesktopSdkTranscriptProviderRequest type: has_one via: provider - from: DesktopSdkUploadRequest to: DesktopSdkRecordingConfigRequest type: has_one via: recording_config - from: AudioMixedArtifact to: RecordingMinimal type: has_one via: recording - from: AudioMixedArtifact to: ArtifactStatus type: has_one via: status - from: AudioMixedArtifact to: AudioMixedArtifactData type: has_one via: data - from: PaginatedAudioMixedArtifactList to: AudioMixedArtifact type: has_many via: results - from: AudioSeparateArtifact to: RecordingMinimal type: has_one via: recording - from: AudioSeparateArtifact to: ArtifactStatus type: has_one via: status - from: AudioSeparateArtifact to: AudioSeparateArtifactData type: has_one via: data - from: PaginatedAudioSeparateArtifactList to: AudioSeparateArtifact type: has_many via: results - from: MeetingMetadataArtifact to: RecordingMinimal type: has_one via: recording - from: MeetingMetadataArtifact to: ArtifactStatus type: has_one via: status - from: MeetingMetadataArtifact to: MeetingMetadataArtifactData type: has_one via: data - from: PaginatedMeetingMetadataArtifactList to: MeetingMetadataArtifact type: has_many via: results - from: PaginatedRecordingList to: Recording type: has_many via: results - from: Recording to: RecordingStatus type: has_one via: status - from: Recording to: RecordingShortcuts type: has_one via: media_shortcuts - from: Recording to: RealtimeEndpointMinimal type: has_many via: realtime_endpoints - from: Recording to: BotMinimal type: has_one via: bot - from: Recording to: DesktopSdkUploadMinimal type: has_one via: desktop_sdk_upload - from: RecallaiAsyncTranscriptionRequest to: RecallaiSpellingEntryRequest type: has_many via: spelling - from: RecordingCreateTranscriptArtifactProviderRequest to: RecallaiAsyncTranscriptionRequest type: has_one via: recallai_async - from: RecordingCreateTranscriptArtifactRequest to: RecordingCreateTranscriptDiarizationRequest type: has_one via: diarization - from: RecordingCreateTranscriptArtifactRequest to: RecordingCreateTranscriptArtifactProviderRequest type: has_one via: provider - from: TranscriptArtifact to: RecordingMinimal type: has_one via: recording - from: TranscriptArtifact to: ArtifactStatus type: has_one via: status - from: TranscriptArtifact to: TranscriptArtifactData type: has_one via: data - from: TranscriptArtifact to: TranscriptArtifactDiarization type: has_one via: diarization - from: TranscriptArtifact to: TranscriptArtifactProvider type: has_one via: provider - from: PaginatedParticipantEventsArtifactList to: ParticipantEventsArtifact type: has_many via: results - from: ParticipantEventsArtifact to: RecordingMinimal type: has_one via: recording - from: ParticipantEventsArtifact to: ArtifactStatus type: has_one via: status - from: ParticipantEventsArtifact to: ParticipantEventsArtifactData type: has_one via: data - from: PaginatedRealtimeEndpointList to: RealtimeEndpoint type: has_many via: results - from: RealtimeEndpoint to: RecordingMinimal type: has_one via: recording - from: RealtimeEndpoint to: RealtimeEndpointStatus type: has_one via: status - from: PaginatedTranscriptArtifactList to: TranscriptArtifact type: has_many via: results - from: PaginatedVideoMixedArtifactList to: VideoMixedArtifact type: has_many via: results - from: VideoMixedArtifact to: RecordingMinimal type: has_one via: recording - from: VideoMixedArtifact to: ArtifactStatus type: has_one via: status - from: VideoMixedArtifact to: VideoMixedArtifactData type: has_one via: data - from: PaginatedVideoSeparateArtifactList to: VideoSeparateArtifact type: has_many via: results - from: VideoSeparateArtifact to: RecordingMinimal type: has_one via: recording - from: VideoSeparateArtifact to: ArtifactStatus type: has_one via: status - from: VideoSeparateArtifact to: VideoSeparateArtifactData type: has_one via: data - from: CalendarMeeting to: ZoomMeetingInvite type: has_one via: zoom_invite - from: CalendarMeeting to: TeamsMeetingInvite type: has_one via: teams_invite - from: CalendarMeeting to: GmeetMeetingInvite type: has_one via: meet_invite - from: CalendarMeeting to: WebexInvite type: has_one via: webex_invite - from: CalendarMeeting to: GotoMeetingInvite type: has_one via: goto_meeting_invite - from: CalendarMeeting to: Bot type: belongs_to via: bot_id - from: CalendarMeeting to: MeetingAttendee type: has_many via: attendees - from: CalendarUser to: CalendarUserConnection type: has_many via: connections - from: CalendarUser to: CalendarRecordingPreferences type: has_one via: preferences - from: CalendarUserRequest to: PatchedCalendarRecordingPreferencesRequest type: has_one via: preferences - from: CalendarEvent to: Calendar type: belongs_to via: calendar_id - from: CalendarEvent to: CalendarEventBot type: has_many via: bots - from: CalendarEventBot to: Bot type: belongs_to via: bot_id - from: PaginatedCalendarEventList to: CalendarEvent type: has_many via: results - from: CalendarEventAddBotConfigSchemaRequest to: BotRecordingConfigRequest type: has_one via: recording_config - from: CalendarEventAddBotConfigSchemaRequest to: OutputMediaRequest type: has_one via: output_media - from: CalendarEventAddBotConfigSchemaRequest to: AutomaticVideoOutputRequest type: has_one via: automatic_video_output - from: CalendarEventAddBotConfigSchemaRequest to: AutomaticAudioOutputRequest type: has_one via: automatic_audio_output - from: CalendarEventAddBotConfigSchemaRequest to: ChatRequest type: has_one via: chat - from: CalendarEventAddBotConfigSchemaRequest to: AutomaticLeaveRequest type: has_one via: automatic_leave - from: CalendarEventAddBotConfigSchemaRequest to: BotVariantRequest type: has_one via: variant - from: CalendarEventAddBotConfigSchemaRequest to: ZoomRequest type: has_one via: zoom - from: CalendarEventAddBotConfigSchemaRequest to: GoogleMeetRequest type: has_one via: google_meet - from: CalendarEventAddBotConfigSchemaRequest to: WebexRequest type: has_one via: webex - from: CalendarEventAddBotConfigSchemaRequest to: _BreakoutRoomSchemaRequest type: has_one via: breakout_room - from: CalendarEventAddBotRequest to: CalendarEventAddBotConfigSchemaRequest type: has_one via: bot_config - from: Calendar to: CalendarStatusChange type: has_many via: status_changes - from: PaginatedCalendarList to: Calendar type: has_many via: results - from: GoogleLoginGroup to: GoogleLogin type: has_many via: logins - from: PaginatedGoogleLoginGroupList to: GoogleLoginGroup type: has_many via: results - from: PaginatedGoogleLoginList to: GoogleLogin type: has_many via: results - from: MeetingDirectConnect to: MeetingDirectConnectStatus type: has_one via: status - from: MeetingDirectConnect to: ZoomRtms type: has_one via: zoom_rtms - from: MeetingDirectConnect to: MeetMedia type: has_one via: google_meet_media_api - from: MeetingDirectConnect to: MeetingDirectConnectRecordingConfig type: has_one via: recording_config - from: MeetingDirectConnect to: BotRecordingEmbed type: has_many via: recordings - from: MeetingDirectConnectRecordingConfig to: BotRecordingConfigTranscriptArtifact type: has_one via: transcript - from: MeetingDirectConnectRecordingConfig to: BotRecordingConfigRetention type: has_one via: retention - from: MeetingDirectConnectRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: video_mixed_mp4 - from: MeetingDirectConnectRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: participant_events - from: MeetingDirectConnectRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: meeting_metadata - from: MeetingDirectConnectRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: audio_mixed_raw - from: MeetingDirectConnectRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: audio_mixed_mp3 - from: MeetingDirectConnectRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: video_separate_mp4 - from: MeetingDirectConnectRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: audio_separate_raw - from: MeetingDirectConnectRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: audio_separate_mp3 - from: MeetingDirectConnectRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: video_mixed_flv - from: MeetingDirectConnectRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: video_separate_png - from: MeetingDirectConnectRecordingConfig to: BotRecordingConfigBaseArtifact type: has_one via: video_separate_h264 - from: MeetingDirectConnectRecordingConfigRequest to: BotRecordingConfigTranscriptArtifactRequest type: has_one via: transcript - from: MeetingDirectConnectRecordingConfigRequest to: BotRecordingConfigRetentionRequest type: has_one via: retention - from: MeetingDirectConnectRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: video_mixed_mp4 - from: MeetingDirectConnectRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: participant_events - from: MeetingDirectConnectRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: meeting_metadata - from: MeetingDirectConnectRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: audio_mixed_raw - from: MeetingDirectConnectRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: audio_mixed_mp3 - from: MeetingDirectConnectRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: video_separate_mp4 - from: MeetingDirectConnectRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: audio_separate_raw - from: MeetingDirectConnectRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: audio_separate_mp3 - from: MeetingDirectConnectRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: video_mixed_flv - from: MeetingDirectConnectRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: video_separate_png - from: MeetingDirectConnectRecordingConfigRequest to: BotRecordingConfigBaseArtifactRequest type: has_one via: video_separate_h264 - from: MeetingDirectConnectRequest to: ZoomRtmsRequest type: has_one via: zoom_rtms - from: MeetingDirectConnectRequest to: MeetMediaRequest type: has_one via: google_meet_media_api - from: MeetingDirectConnectRequest to: MeetingDirectConnectRecordingConfigRequest type: has_one via: recording_config - from: PaginatedZoomOAuthAppLogList to: ZoomOAuthAppLog type: has_many via: results - from: PaginatedZoomOAuthAppList to: ZoomOAuthApp type: has_many via: results - from: PaginatedZoomOAuthCredentialLogList to: ZoomOAuthCredentialLog type: has_many via: results - from: PaginatedZoomOAuthCredentialList to: ZoomOAuthCredential type: has_many via: results - from: ZoomOAuthCredentialRequest to: ZoomAuthorizationCodeRequest type: has_one via: authorization_code