/**
 * GoToWebinar Node - Version 1
 * Discriminator: resource=webinar, operation=update
 */


interface Credentials {
  goToWebinarOAuth2Api: CredentialReference;
}

export type GoToWebinarV1WebinarUpdateParams = {
  resource: 'webinar';
  operation: 'update';
/**
 * Key of the webinar to update
 */
    webinarKey?: string | Expression<string> | PlaceholderValue;
/**
 * Notify Participants
 * @default false
 */
    notifyParticipants?: boolean | Expression<boolean>;
/**
 * Update Fields
 * @default {}
 */
    updateFields?: {
    /** Description
     */
    description?: string | Expression<string> | PlaceholderValue;
    /** Experience Type
     * @default CLASSIC
     */
    experienceType?: 'CLASSIC' | 'BROADCAST' | 'SIMULIVE' | Expression<string>;
    /** Whether the webinar may be watched anytime
     * @default false
     */
    isOnDemand?: boolean | Expression<boolean>;
    /** Whether the webinar requires a password for attendees to join
     * @default false
     */
    isPasswordProtected?: boolean | Expression<boolean>;
    /** Times
     * @default {}
     */
    times?: {
        /** Times Properties
     */
    timesProperties?: Array<{
      /** Start Time
       */
      startTime?: string | Expression<string>;
      /** End Time
       */
      endTime?: string | Expression<string>;
    }>;
  };
    /** Name or topic of the webinar
     */
    subject?: string | Expression<string> | PlaceholderValue;
    /** Timezone where the webinar is to take place. 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>;
    /** Webinar Type
     * @default single_session
     */
    type?: 'single_session' | 'series' | 'sequence' | Expression<string>;
  };
};

export type GoToWebinarV1WebinarUpdateNode = {
  type: 'n8n-nodes-base.goToWebinar';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<GoToWebinarV1WebinarUpdateParams>;
};