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


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

/** Update a meeting */
export type ZoomV1MeetingUpdateParams = {
  resource: 'meeting';
  operation: 'update';
  authentication?: 'accessToken' | 'oAuth2' | Expression<string>;
/**
 * Meeting ID
 */
    meetingId?: string | Expression<string> | PlaceholderValue;
/**
 * Update Fields
 * @default {}
 */
    updateFields?: {
    /** Meeting agenda
     */
    agenda?: string | Expression<string> | PlaceholderValue;
    /** Meeting duration (minutes)
     * @default 0
     */
    duration?: number | Expression<number>;
    /** Password to join the meeting with maximum 10 characters
     */
    password?: string | Expression<string> | PlaceholderValue;
    /** Schedule meeting for someone else from your account, provide their email ID
     */
    scheduleFor?: string | Expression<string> | PlaceholderValue;
    /** Settings
     * @default {}
     */
    settings?: {
    /** Determine how participants can join audio portion of the meeting
     * @default both
     */
    audio?: 'both' | 'telephony' | 'voip' | Expression<string>;
    /** Alternative hosts email IDs
     */
    alternativeHosts?: string | Expression<string> | PlaceholderValue;
    /** Auto Recording
     * @default none
     */
    autoRecording?: 'local' | 'cloud' | 'none' | Expression<string>;
    /** Host Meeting in China
     * @default false
     */
    cnMeeting?: boolean | Expression<boolean>;
    /** Host Meeting in India
     * @default false
     */
    inMeeting?: boolean | Expression<boolean>;
    /** Whether to start a video when host joins the meeting
     * @default false
     */
    hostVideo?: boolean | Expression<boolean>;
    /** Whether to allow participants to join the meeting before host starts it
     * @default false
     */
    joinBeforeHost?: boolean | Expression<boolean>;
    /** Whether to mute participants upon entry
     * @default false
     */
    muteUponEntry?: boolean | Expression<boolean>;
    /** Whether to start a video when participant joins the meeting
     * @default false
     */
    participantVideo?: boolean | Expression<boolean>;
    /** Registration type. Used for recurring meetings with fixed time only.
     * @default 1
     */
    registrationType?: 1 | 2 | 3 | Expression<number>;
    /** Whether to add watermark when viewing a shared screen
     * @default false
     */
    watermark?: boolean | Expression<boolean>;
  };
    /** Start time should be used only for scheduled or recurring meetings with fixed time
     */
    startTime?: string | Expression<string>;
    /** Time zone used in the response. The default is the time zone of the calendar. Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     */
    timeZone?: string | Expression<string>;
    /** Meeting topic
     */
    topic?: string | Expression<string> | PlaceholderValue;
    /** Meeting type
     * @default 2
     */
    type?: 1 | 2 | 3 | 8 | Expression<number>;
  };
};

export type ZoomV1MeetingUpdateNode = {
  type: 'n8n-nodes-base.zoom';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<ZoomV1MeetingUpdateParams>;
};