/**
 * Zoom Node - Version 1
 * Discriminator: resource=meeting, operation=get
 */


interface Credentials {
  zoomApi: CredentialReference;
  zoomOAuth2Api: CredentialReference;
}

/** Retrieve a meeting */
export type ZoomV1MeetingGetParams = {
  resource: 'meeting';
  operation: 'get';
  authentication?: 'accessToken' | 'oAuth2' | Expression<string>;
/**
 * Meeting ID
 */
    meetingId?: string | Expression<string> | PlaceholderValue;
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** To view meeting details of a particular occurrence of the recurring meeting
     */
    occurrenceId?: string | Expression<string> | PlaceholderValue;
    /** Whether to view meeting details of all previous occurrences of the recurring meeting
     * @default false
     */
    showPreviousOccurrences?: boolean | Expression<boolean>;
  };
};

export type ZoomV1MeetingGetOutput = {
  agenda?: string;
  assistant_id?: string;
  created_at?: string;
  duration?: number;
  host_email?: string;
  host_id?: string;
  id?: number;
  join_url?: string;
  pre_schedule?: boolean;
  settings?: {
    allow_multiple_devices?: boolean;
    alternative_host_update_polls?: boolean;
    alternative_hosts?: string;
    alternative_hosts_email_notification?: boolean;
    approval_type?: number;
    approved_or_denied_countries_or_regions?: {
      enable?: boolean;
    };
    audio?: string;
    auto_recording?: string;
    auto_start_ai_companion_questions?: boolean;
    auto_start_meeting_summary?: boolean;
    breakout_room?: {
      enable?: boolean;
    };
    close_registration?: boolean;
    cn_meeting?: boolean;
    continuous_meeting_chat?: {
      auto_add_invited_external_users?: boolean;
      channel_id?: string;
      enable?: boolean;
    };
    device_testing?: boolean;
    email_in_attendee_report?: boolean;
    email_notification?: boolean;
    enable_dedicated_group_chat?: boolean;
    encryption_type?: string;
    enforce_login?: boolean;
    enforce_login_domains?: string;
    focus_mode?: boolean;
    global_dial_in_countries?: Array<string>;
    global_dial_in_numbers?: Array<{
      city?: string;
      country?: string;
      country_name?: string;
      number?: string;
      type?: string;
    }>;
    host_save_video_order?: boolean;
    host_video?: boolean;
    in_meeting?: boolean;
    internal_meeting?: boolean;
    jbh_time?: number;
    join_before_host?: boolean;
    meeting_authentication?: boolean;
    meeting_invitees?: Array<{
      email?: string;
    }>;
    mute_upon_entry?: boolean;
    participant_focused_meeting?: boolean;
    participant_video?: boolean;
    private_meeting?: boolean;
    push_change_to_calendar?: boolean;
    registrants_confirmation_email?: boolean;
    registrants_email_notification?: boolean;
    request_permission_to_unmute_participants?: boolean;
    show_join_info?: boolean;
    show_share_button?: boolean;
    sign_language_interpretation?: {
      enable?: boolean;
    };
    use_pmi?: boolean;
    waiting_room?: boolean;
    watermark?: boolean;
  };
  start_time?: string;
  start_url?: string;
  status?: string;
  timezone?: string;
  topic?: string;
  type?: number;
  uuid?: string;
};

export type ZoomV1MeetingGetNode = {
  type: 'n8n-nodes-base.zoom';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<ZoomV1MeetingGetParams>;
  output?: Items<ZoomV1MeetingGetOutput>;
};